commit c0d6d88353327300e714726930fdcb4eae3f85d8 Author: Pyogenics Date: Sun Jan 26 09:32:24 2025 +0000 Initial commit diff --git a/src/Preloader.as b/src/Preloader.as new file mode 100644 index 0000000..65720df --- /dev/null +++ b/src/Preloader.as @@ -0,0 +1,138 @@ +package +{ + import flash.display.Bitmap; + import flash.display.BitmapData; + import flash.display.Shape; + import flash.display.Sprite; + import flash.display3D.Context3D; + import flash.events.Event; + import package_28.name_129; + import package_28.name_167; + import package_28.name_93; + + public class Preloader extends Sprite + { + private static const EmbedPreloader:Class = name_166; + + private static const EmbedPreloaderA:Class = name_165; + + private static const EmbedProgress:Class = name_164; + + private var area:Shape = new Shape(); + + private var var_27:Bitmap = new EmbedPreloader(); + + private var var_28:Bitmap = new EmbedPreloaderA(); + + private var progress:Bitmap = new EmbedProgress(); + + private var context:Context3D; + + public var maps:Vector.; + + private var var_31:int; + + private var counter:int; + + private var baseURL:String; + + private var var_30:name_129 = new name_93(new BitmapData(1,1,false,8355711)); + + private var var_29:Number = 0.09803921568627451; + + public function Preloader() + { + super(); + addChild(this.area); + this.area.alpha = 1; + this.progress.alpha = 1; + this.var_27.alpha = 1; + addChild(this.var_27); + addChild(this.var_28); + addChild(this.progress); + addEventListener(Event.ADDED_TO_STAGE,this.method_80); + addEventListener(Event.REMOVED_FROM_STAGE,this.method_81); + this.progress.scaleX = 0.025; + } + + public function name_69(param1:Number) : void + { + this.progress.scaleX = param1; + if(this.progress.scaleX >= 1) + { + this.method_78(); + } + } + + private function method_78() : void + { + addEventListener(Event.ENTER_FRAME,this.method_12); + } + + public function method_82(param1:Number) : void + { + this.progress.scaleX += param1; + if(this.progress.scaleX > 0.5) + { + addEventListener(Event.ENTER_FRAME,this.method_79); + } + if(this.progress.scaleX >= 1) + { + this.method_78(); + } + } + + private function method_80(param1:Event) : void + { + stage.addEventListener(Event.RESIZE,this.method_4); + this.method_4(); + } + + private function method_81(param1:Event) : void + { + stage.removeEventListener(Event.RESIZE,this.method_4); + } + + private function method_12(param1:Event) : void + { + this.area.alpha -= this.var_29; + this.var_27.alpha -= this.var_29; + this.progress.alpha -= this.var_29; + if(this.area.alpha <= 0) + { + removeEventListener(Event.ENTER_FRAME,this.method_12); + if(parent != null) + { + parent.removeChild(this); + dispatchEvent(new Event(Event.COMPLETE)); + } + } + } + + private function method_79(param1:Event) : void + { + this.var_28.alpha -= this.var_29 * 1.5; + if(this.var_28.alpha <= 0) + { + removeEventListener(Event.ENTER_FRAME,this.method_79); + } + } + + private function method_4(param1:Event = null) : void + { + this.area.graphics.clear(); + this.var_27.x = Math.round(stage.stageWidth / 2 - this.var_27.width / 2); + this.var_27.y = Math.round(stage.stageHeight / 2 - this.var_27.height / 2) - 30; + this.var_28.x = this.var_27.x; + this.var_28.y = this.var_27.y; + this.progress.x = this.var_27.x + 2; + this.progress.y = this.var_27.y + 221; + this.area.graphics.beginFill(0); + this.area.graphics.drawRect(0,0,this.var_27.x,stage.stageHeight); + this.area.graphics.drawRect(this.var_27.x,0,this.var_27.width,this.var_27.y); + this.area.graphics.drawRect(this.var_27.x + this.var_27.width,0,stage.stageWidth - this.var_27.width - this.var_27.x,stage.stageHeight); + this.area.graphics.drawRect(this.var_27.x,this.var_27.y + this.var_27.height,this.var_27.width,stage.stageHeight - this.var_27.height - this.var_27.y); + } + } +} + diff --git a/src/TanksTestingTool.as b/src/TanksTestingTool.as new file mode 100644 index 0000000..a01623b --- /dev/null +++ b/src/TanksTestingTool.as @@ -0,0 +1,298 @@ +package +{ + import flash.display.DisplayObject; + import flash.display.Sprite; + import flash.display.Stage3D; + import flash.display.StageAlign; + import flash.display.StageDisplayState; + import flash.display.StageQuality; + import flash.display.StageScaleMode; + import flash.events.Event; + import flash.events.FullScreenEvent; + import flash.events.KeyboardEvent; + import flash.ui.Keyboard; + import package_1.name_1; + import package_1.name_12; + import package_1.name_13; + import package_1.name_22; + import package_10.name_17; + import package_11.name_16; + import package_12.name_15; + import package_13.name_18; + import package_14.name_21; + import package_15.name_19; + import package_16.name_26; + import package_17.name_21; + import package_18.name_44; + import package_2.name_2; + import package_2.name_9; + import package_3.TankMaterial2; + import package_3.name_10; + import package_3.name_29; + import package_3.name_33; + import package_3.name_7; + import package_4.name_11; + import package_4.name_28; + import package_4.name_6; + import package_5.name_3; + import package_6.name_4; + import package_7.name_14; + import package_7.name_43; + import package_8.name_24; + import package_8.name_25; + import package_9.name_20; + import package_9.name_23; + + [SWF(backgroundColor="#333333",frameRate="100",width="1024",height="768")] + public class TanksTestingTool extends Sprite + { + public static var testTask:name_43; + + private var config:name_18; + + private var gameKernel:name_17; + + private var var_1:name_15; + + private var stage3D:Stage3D; + + private var var_2:name_16; + + private var preloader:Preloader = new Preloader(); + + public function TanksTestingTool() + { + super(); + mouseEnabled = false; + mouseChildren = false; + this.method_7(); + this.method_16(); + this.method_6(); + this.method_11(); + name_2.fadeRadius = 7000; + name_2.spotAngle = 140 * Math.PI / 180; + name_2.fallofAngle = 170 * Math.PI / 180; + this.stage3D = stage.stage3Ds[0]; + this.stage3D.addEventListener(Event.CONTEXT3D_CREATE,this.method_10); + this.stage3D.requestContext3D(); + } + + private function method_10(param1:Event) : void + { + switch(name_28.name_35(this.stage3D.context3D)) + { + case name_6.DXT1: + this.method_3("cfg.dxt1.xml"); + break; + case name_6.ETC1: + this.method_3("cfg.etc1.xml"); + break; + case name_6.PVRTC: + this.method_3("cfg.pvrtc.xml"); + } + } + + private function method_11() : void + { + new name_12("fog_mode",0,0,3,this.method_1); + new name_1("fog_near",0,0,1000000,this.method_1); + new name_1("fog_far",5000,0,1000000,this.method_1); + new name_1("fog_density",1,0,1,this.method_1); + new name_1("horizon_offset",0,-1000000,1000000,this.method_1); + new name_1("horizon_size",5000,0,1000000,this.method_1); + new name_13("fog_color","0x0",this.method_1); + var _loc1_:name_4 = name_4(name_3.name_8().name_30(name_4)); + _loc1_.name_45("fog_texture",this.method_18); + new name_1("beam_distance",7000,0,1000000,this.method_2); + new name_1("beam_spot",140,0,180,this.method_2); + new name_1("beam_fallof",170,0,180,this.method_2); + new name_1("beam_fallof",170,0,180,this.method_2); + new name_1("camera_smoothing",20,0,200,this.method_17); + name_9.fogMode = name_9.DISABLED; + name_10.fogMode = name_10.DISABLED; + name_7.fogMode = name_7.DISABLED; + TankMaterial2.fogMode = name_7.DISABLED; + name_29.fogMode = name_11.DISABLED; + name_33.fogMode = name_11.DISABLED; + } + + private function method_17(param1:name_1) : void + { + name_20.smoothing = param1.value; + } + + private function method_2(param1:name_22) : void + { + switch(param1.name_32()) + { + case "beam_distance": + name_2.fadeRadius = name_1(param1).value; + break; + case "beam_spot": + name_2.spotAngle = name_1(param1).value * Math.PI / 180; + break; + case "beam_fallof": + name_2.fallofAngle = name_1(param1).value * Math.PI / 180; + } + } + + private function method_1(param1:name_22) : void + { + var _loc3_:Number = NaN; + var _loc4_:Number = NaN; + var _loc5_:Number = NaN; + var _loc6_:name_44 = this.gameKernel.name_5(); + switch(param1.name_32()) + { + case "fog_mode": + _loc6_.name_41(name_12(param1).value); + break; + case "fog_near": + _loc6_.name_47(name_1(param1).value); + break; + case "fog_far": + _loc6_.name_48(name_1(param1).value); + break; + case "fog_density": + _loc6_.name_49(name_1(param1).value); + break; + case "horizon_size": + _loc6_.name_38(name_1(param1).value); + break; + case "horizon_offset": + _loc6_.name_34(name_1(param1).value); + break; + case "fog_color": + _loc6_.name_40(parseInt(name_13(param1).value,16)); + } + } + + private function method_18(param1:name_4, param2:Array) : void + { + this.gameKernel.name_5().name_36(param2.join(" ")); + } + + private function method_7() : void + { + stage.scaleMode = StageScaleMode.NO_SCALE; + stage.align = StageAlign.TOP_LEFT; + stage.quality = StageQuality.LOW; + } + + private function method_16() : void + { + new name_3(); + this.var_2 = new name_16(); + this.var_2.start(this,new name_19(loaderInfo.parameters),new Vector.(),new name_25(null,null,null),new Vector.()); + new name_26().start(name_3.name_8()); + new package_17.name_21().start(name_3.name_8()); + new package_14.name_21().start(name_3.name_8()); + } + + private function method_6() : void + { + var _loc1_:name_4 = name_4(name_3.name_8().name_30(name_4)); + _loc1_.width = 100; + _loc1_.alpha = 0.8; + _loc1_.height = 30; + } + + private function method_3(param1:String) : void + { + addChild(this.preloader); + this.config = new name_18(); + this.config.addEventListener(Event.COMPLETE,this.method_14); + this.config.load(param1,this.preloader); + } + + private function method_14(param1:Event) : void + { + this.method_8(); + this.method_13(); + } + + private function method_13() : void + { + this.var_1 = new name_15(); + stage.addChild(this.var_1); + this.var_1.mouseChildren = true; + this.var_1.mouseEnabled = true; + this.var_1.addEventListener("CLICK_FULL_SCREEN_BUTTON",this.method_19); + this.var_1.addEventListener("CLICK_NEXT_TANK_BUTTON",this.method_9); + stage.addChild(this.preloader); + stage.addEventListener(KeyboardEvent.KEY_DOWN,this.method_15); + this.gameKernel.name_5().name_27().diagramVerticalMargin = 85; + this.gameKernel.name_5().name_27().diagramHorizontalMargin = 12; + this.method_4(null); + } + + private function method_15(param1:KeyboardEvent) : void + { + var _loc2_:DisplayObject = null; + if(param1.keyCode == Keyboard.G) + { + _loc2_ = this.gameKernel.name_5().name_39(); + if(_loc2_.parent != null) + { + _loc2_.parent.removeChild(_loc2_); + } + else + { + stage.addChild(_loc2_); + } + } + } + + private function method_19(param1:Event) : void + { + stage.displayState = this.var_1.name_31 ? StageDisplayState.FULL_SCREEN : StageDisplayState.NORMAL; + stage.addEventListener(FullScreenEvent.FULL_SCREEN,this.method_5); + } + + private function method_5(param1:Event) : void + { + stage.removeEventListener(FullScreenEvent.FULL_SCREEN,this.method_5); + this.var_1.name_31 = stage.displayState != StageDisplayState.NORMAL; + } + + private function method_9(param1:Event) : void + { + if(testTask != null) + { + testTask.include(); + } + } + + private function method_8() : void + { + this.gameKernel = new name_17(stage,this.config.options); + this.gameKernel.name_5().name_37(this.stage3D); + var _loc1_:name_14 = new name_14(this.gameKernel,this.config,this,this.preloader); + this.gameKernel.addTask(_loc1_); + stage.addEventListener(Event.RESIZE,this.method_4); + this.method_4(null); + stage.addEventListener(Event.ENTER_FRAME,this.method_12); + } + + private function method_12(param1:Event) : void + { + this.gameKernel.name_51(); + } + + private function method_4(param1:Event) : void + { + var _loc2_:name_23 = null; + if(this.gameKernel != null) + { + this.gameKernel.name_5().name_46(0,0,stage.stageWidth,stage.stageHeight); + _loc2_ = this.gameKernel.name_5().name_42(); + _loc2_.y = stage.stageHeight - _loc2_.size; + } + if(this.var_1 != null) + { + this.var_1.name_50(stage.stageWidth,stage.stageHeight); + } + } + } +} + diff --git a/src/_assets/10_alternativa.tanks.game.usertitle.EffectIndicator_iconHealthCls_alternativa.tanks.game.usertitle.EffectIndicator_iconHealthCls.png b/src/_assets/10_alternativa.tanks.game.usertitle.EffectIndicator_iconHealthCls_alternativa.tanks.game.usertitle.EffectIndicator_iconHealthCls.png new file mode 100644 index 0000000..89915dd Binary files /dev/null and b/src/_assets/10_alternativa.tanks.game.usertitle.EffectIndicator_iconHealthCls_alternativa.tanks.game.usertitle.EffectIndicator_iconHealthCls.png differ diff --git a/src/_assets/11_alternativa.tanks.game.usertitle.EffectIndicator_iconNitroCls_alternativa.tanks.game.usertitle.EffectIndicator_iconNitroCls.png b/src/_assets/11_alternativa.tanks.game.usertitle.EffectIndicator_iconNitroCls_alternativa.tanks.game.usertitle.EffectIndicator_iconNitroCls.png new file mode 100644 index 0000000..8f463bb Binary files /dev/null and b/src/_assets/11_alternativa.tanks.game.usertitle.EffectIndicator_iconNitroCls_alternativa.tanks.game.usertitle.EffectIndicator_iconNitroCls.png differ diff --git a/src/_assets/12_alternativa.tanks.game.usertitle.EffectIndicator_iconPowerCls_alternativa.tanks.game.usertitle.EffectIndicator_iconPowerCls.png b/src/_assets/12_alternativa.tanks.game.usertitle.EffectIndicator_iconPowerCls_alternativa.tanks.game.usertitle.EffectIndicator_iconPowerCls.png new file mode 100644 index 0000000..c45c31e Binary files /dev/null and b/src/_assets/12_alternativa.tanks.game.usertitle.EffectIndicator_iconPowerCls_alternativa.tanks.game.usertitle.EffectIndicator_iconPowerCls.png differ diff --git a/src/_assets/13_name_165.jpg b/src/_assets/13_name_165.jpg new file mode 100644 index 0000000..238be0e Binary files /dev/null and b/src/_assets/13_name_165.jpg differ diff --git a/src/_assets/14_name_164.jpg b/src/_assets/14_name_164.jpg new file mode 100644 index 0000000..5fb4893 Binary files /dev/null and b/src/_assets/14_name_164.jpg differ diff --git a/src/_assets/15_package_12.name_221.png b/src/_assets/15_package_12.name_221.png new file mode 100644 index 0000000..14da791 Binary files /dev/null and b/src/_assets/15_package_12.name_221.png differ diff --git a/src/_assets/16_name_166.jpg b/src/_assets/16_name_166.jpg new file mode 100644 index 0000000..c7b2702 Binary files /dev/null and b/src/_assets/16_name_166.jpg differ diff --git a/src/_assets/17_package_12.TanksHudDemo_nextTankState1Class.png b/src/_assets/17_package_12.TanksHudDemo_nextTankState1Class.png new file mode 100644 index 0000000..9844db8 Binary files /dev/null and b/src/_assets/17_package_12.TanksHudDemo_nextTankState1Class.png differ diff --git a/src/_assets/18_package_12.TanksHudDemo_fullScreenState2Class.png b/src/_assets/18_package_12.TanksHudDemo_fullScreenState2Class.png new file mode 100644 index 0000000..41a5696 Binary files /dev/null and b/src/_assets/18_package_12.TanksHudDemo_fullScreenState2Class.png differ diff --git a/src/_assets/19_package_12.name_222.png b/src/_assets/19_package_12.name_222.png new file mode 100644 index 0000000..ea28f0c Binary files /dev/null and b/src/_assets/19_package_12.name_222.png differ diff --git a/src/_assets/1_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenFullCls.png b/src/_assets/1_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenFullCls.png new file mode 100644 index 0000000..4ed4089 Binary files /dev/null and b/src/_assets/1_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenFullCls.png differ diff --git a/src/_assets/20_package_12.TanksHudDemo_nextTankState2Class.png b/src/_assets/20_package_12.TanksHudDemo_nextTankState2Class.png new file mode 100644 index 0000000..45bb021 Binary files /dev/null and b/src/_assets/20_package_12.TanksHudDemo_nextTankState2Class.png differ diff --git a/src/_assets/21_package_12.TanksHudDemo_fullScreenState1Class.png b/src/_assets/21_package_12.TanksHudDemo_fullScreenState1Class.png new file mode 100644 index 0000000..2e44a11 Binary files /dev/null and b/src/_assets/21_package_12.TanksHudDemo_fullScreenState1Class.png differ diff --git a/src/_assets/22_package_12.name_220.png b/src/_assets/22_package_12.name_220.png new file mode 100644 index 0000000..bc0b1d7 Binary files /dev/null and b/src/_assets/22_package_12.name_220.png differ diff --git a/src/_assets/2_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedEmptyCls.png b/src/_assets/2_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedEmptyCls.png new file mode 100644 index 0000000..79064ef Binary files /dev/null and b/src/_assets/2_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedEmptyCls.png differ diff --git a/src/_assets/3_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenEmptyCls.png b/src/_assets/3_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenEmptyCls.png new file mode 100644 index 0000000..46af6f8 Binary files /dev/null and b/src/_assets/3_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenEmptyCls.png differ diff --git a/src/_assets/4_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponFullCls.png b/src/_assets/4_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponFullCls.png new file mode 100644 index 0000000..debdd11 Binary files /dev/null and b/src/_assets/4_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponFullCls.png differ diff --git a/src/_assets/5_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponEmptyCls.png b/src/_assets/5_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponEmptyCls.png new file mode 100644 index 0000000..b6d87f0 Binary files /dev/null and b/src/_assets/5_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponEmptyCls.png differ diff --git a/src/_assets/6_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueEmptyCls.png b/src/_assets/6_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueEmptyCls.png new file mode 100644 index 0000000..abf1437 Binary files /dev/null and b/src/_assets/6_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueEmptyCls.png differ diff --git a/src/_assets/7_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedFullCls.png b/src/_assets/7_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedFullCls.png new file mode 100644 index 0000000..cb35af4 Binary files /dev/null and b/src/_assets/7_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedFullCls.png differ diff --git a/src/_assets/8_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueFullCls.png b/src/_assets/8_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueFullCls.png new file mode 100644 index 0000000..0d9ddb6 Binary files /dev/null and b/src/_assets/8_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueFullCls.png differ diff --git a/src/_assets/9_alternativa.tanks.game.usertitle.EffectIndicator_iconArmorCls_alternativa.tanks.game.usertitle.EffectIndicator_iconArmorCls.png b/src/_assets/9_alternativa.tanks.game.usertitle.EffectIndicator_iconArmorCls_alternativa.tanks.game.usertitle.EffectIndicator_iconArmorCls.png new file mode 100644 index 0000000..2d209c5 Binary files /dev/null and b/src/_assets/9_alternativa.tanks.game.usertitle.EffectIndicator_iconArmorCls_alternativa.tanks.game.usertitle.EffectIndicator_iconArmorCls.png differ diff --git a/src/alternativa/engine3d/alternativa3d.as b/src/alternativa/engine3d/alternativa3d.as new file mode 100644 index 0000000..5b95c81 --- /dev/null +++ b/src/alternativa/engine3d/alternativa3d.as @@ -0,0 +1,5 @@ +package alternativa.engine3d +{ + public namespace alternativa3d = "http://alternativaplatform.com/en/alternativa3d"; +} + diff --git a/src/alternativa/tanks/game/usertitle/EffectIndicator_iconArmorCls.as b/src/alternativa/tanks/game/usertitle/EffectIndicator_iconArmorCls.as new file mode 100644 index 0000000..f2af140 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/EffectIndicator_iconArmorCls.as @@ -0,0 +1,15 @@ +package alternativa.tanks.game.usertitle +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/9_alternativa.tanks.game.usertitle.EffectIndicator_iconArmorCls_alternativa.tanks.game.usertitle.EffectIndicator_iconArmorCls.png")] + public class EffectIndicator_iconArmorCls extends BitmapAsset + { + public function EffectIndicator_iconArmorCls() + { + super(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/EffectIndicator_iconHealthCls.as b/src/alternativa/tanks/game/usertitle/EffectIndicator_iconHealthCls.as new file mode 100644 index 0000000..8c28bb9 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/EffectIndicator_iconHealthCls.as @@ -0,0 +1,15 @@ +package alternativa.tanks.game.usertitle +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/10_alternativa.tanks.game.usertitle.EffectIndicator_iconHealthCls_alternativa.tanks.game.usertitle.EffectIndicator_iconHealthCls.png")] + public class EffectIndicator_iconHealthCls extends BitmapAsset + { + public function EffectIndicator_iconHealthCls() + { + super(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/EffectIndicator_iconNitroCls.as b/src/alternativa/tanks/game/usertitle/EffectIndicator_iconNitroCls.as new file mode 100644 index 0000000..6f605fa --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/EffectIndicator_iconNitroCls.as @@ -0,0 +1,15 @@ +package alternativa.tanks.game.usertitle +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/11_alternativa.tanks.game.usertitle.EffectIndicator_iconNitroCls_alternativa.tanks.game.usertitle.EffectIndicator_iconNitroCls.png")] + public class EffectIndicator_iconNitroCls extends BitmapAsset + { + public function EffectIndicator_iconNitroCls() + { + super(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/EffectIndicator_iconPowerCls.as b/src/alternativa/tanks/game/usertitle/EffectIndicator_iconPowerCls.as new file mode 100644 index 0000000..fdbbc7f --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/EffectIndicator_iconPowerCls.as @@ -0,0 +1,15 @@ +package alternativa.tanks.game.usertitle +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/12_alternativa.tanks.game.usertitle.EffectIndicator_iconPowerCls_alternativa.tanks.game.usertitle.EffectIndicator_iconPowerCls.png")] + public class EffectIndicator_iconPowerCls extends BitmapAsset + { + public function EffectIndicator_iconPowerCls() + { + super(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpBlueEmptyCls.as b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpBlueEmptyCls.as new file mode 100644 index 0000000..42c88f0 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpBlueEmptyCls.as @@ -0,0 +1,15 @@ +package alternativa.tanks.game.usertitle +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/6_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueEmptyCls.png")] + public class ProgressBarSkin_hpBlueEmptyCls extends BitmapAsset + { + public function ProgressBarSkin_hpBlueEmptyCls() + { + super(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpBlueFullCls.as b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpBlueFullCls.as new file mode 100644 index 0000000..2805f2e --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpBlueFullCls.as @@ -0,0 +1,15 @@ +package alternativa.tanks.game.usertitle +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/8_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpBlueFullCls.png")] + public class ProgressBarSkin_hpBlueFullCls extends BitmapAsset + { + public function ProgressBarSkin_hpBlueFullCls() + { + super(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpGreenEmptyCls.as b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpGreenEmptyCls.as new file mode 100644 index 0000000..c76121f --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpGreenEmptyCls.as @@ -0,0 +1,15 @@ +package alternativa.tanks.game.usertitle +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/3_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenEmptyCls.png")] + public class ProgressBarSkin_hpGreenEmptyCls extends BitmapAsset + { + public function ProgressBarSkin_hpGreenEmptyCls() + { + super(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpGreenFullCls.as b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpGreenFullCls.as new file mode 100644 index 0000000..a86285d --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpGreenFullCls.as @@ -0,0 +1,15 @@ +package alternativa.tanks.game.usertitle +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/1_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpGreenFullCls.png")] + public class ProgressBarSkin_hpGreenFullCls extends BitmapAsset + { + public function ProgressBarSkin_hpGreenFullCls() + { + super(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpRedEmptyCls.as b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpRedEmptyCls.as new file mode 100644 index 0000000..0a38a33 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpRedEmptyCls.as @@ -0,0 +1,15 @@ +package alternativa.tanks.game.usertitle +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/2_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedEmptyCls.png")] + public class ProgressBarSkin_hpRedEmptyCls extends BitmapAsset + { + public function ProgressBarSkin_hpRedEmptyCls() + { + super(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpRedFullCls.as b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpRedFullCls.as new file mode 100644 index 0000000..934342f --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_hpRedFullCls.as @@ -0,0 +1,15 @@ +package alternativa.tanks.game.usertitle +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/7_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_hpRedFullCls.png")] + public class ProgressBarSkin_hpRedFullCls extends BitmapAsset + { + public function ProgressBarSkin_hpRedFullCls() + { + super(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/ProgressBarSkin_weaponEmptyCls.as b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_weaponEmptyCls.as new file mode 100644 index 0000000..3f87d79 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_weaponEmptyCls.as @@ -0,0 +1,15 @@ +package alternativa.tanks.game.usertitle +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/5_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponEmptyCls_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponEmptyCls.png")] + public class ProgressBarSkin_weaponEmptyCls extends BitmapAsset + { + public function ProgressBarSkin_weaponEmptyCls() + { + super(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/ProgressBarSkin_weaponFullCls.as b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_weaponFullCls.as new file mode 100644 index 0000000..04e0ad5 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/ProgressBarSkin_weaponFullCls.as @@ -0,0 +1,15 @@ +package alternativa.tanks.game.usertitle +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/4_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponFullCls_alternativa.tanks.game.usertitle.ProgressBarSkin_weaponFullCls.png")] + public class ProgressBarSkin_weaponFullCls extends BitmapAsset + { + public function ProgressBarSkin_weaponFullCls() + { + super(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/component/class_40.as b/src/alternativa/tanks/game/usertitle/component/class_40.as new file mode 100644 index 0000000..49cb834 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/component/class_40.as @@ -0,0 +1,24 @@ +package alternativa.tanks.game.usertitle.component +{ + import package_114.class_35; + + public class class_40 implements class_35 + { + protected var component:name_245; + + public function class_40(component:name_245) + { + super(); + this.component = component; + } + + public function start(data:*) : void + { + } + + public function stop() : void + { + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/component/name_245.as b/src/alternativa/tanks/game/usertitle/component/name_245.as new file mode 100644 index 0000000..f687718 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/component/name_245.as @@ -0,0 +1,166 @@ +package alternativa.tanks.game.usertitle.component +{ + import alternativa.tanks.game.usertitle.name_607; + import alternativa.tanks.game.usertitle.name_610; + import alternativa.tanks.game.usertitle.name_613; + import package_10.class_17; + import package_10.name_17; + import package_114.name_488; + import package_18.name_44; + import package_18.name_82; + import package_45.name_182; + import package_46.name_194; + import package_71.name_252; + import package_74.class_25; + import package_75.name_236; + + public class name_245 extends class_17 implements name_82 + { + private static const REMOTE_LABEL_OFFSET_Z:int = 200; + + private static var position:name_194 = new name_194(); + + private var var_505:name_607; + + private var chassisComponent:name_236; + + private var var_442:class_25; + + private var localPlayer:Boolean; + + private var var_424:name_488; + + private var gameKernel:name_17; + + private var var_426:Boolean; + + private var var_506:name_609; + + private var titleRenderer:name_610; + + public function name_245(maxHealth:int, rankIcon:name_613, name:String, localPlayer:Boolean, label:name_617, configFlags:int, titleRenderer:name_610) + { + super(); + this.var_505 = new name_607(maxHealth,rankIcon,label); + this.localPlayer = localPlayer; + this.titleRenderer = titleRenderer; + this.var_505.name_620(name); + this.var_505.name_619(configFlags); + } + + public function name_328() : Boolean + { + return this.var_426; + } + + public function method_527() : Boolean + { + return this.localPlayer; + } + + public function method_524(maxHealth:int) : void + { + this.var_505.method_524(maxHealth); + } + + public function name_339(indicatorId:int, duration:int) : void + { + this.var_505.name_339(indicatorId,duration); + } + + public function name_330(indicatorId:int) : void + { + this.var_505.name_330(indicatorId); + } + + override public function initComponent() : void + { + this.chassisComponent = name_236(entity.getComponentStrict(name_236)); + this.var_442 = class_25(entity.getComponent(class_25)); + this.var_424 = new name_488(); + this.var_506 = new name_609(this); + this.var_424.name_486(entity,name_252.SET_ACTIVATING_STATE,this.var_506); + this.var_424.name_486(entity,name_252.SET_ACTIVE_STATE,this.var_506); + this.var_424.name_486(entity,name_252.SET_DEAD_STATE,new name_492(this)); + var offSceneState:name_608 = new name_608(this); + this.var_424.name_486(entity,name_252.SET_RESPAWN_STATE,offSceneState); + this.var_424.name_493 = offSceneState; + entity.addEventHandler(name_252.SET_HEALTH,this.method_525); + } + + private function method_525(eventType:String, data:*) : void + { + this.setHealth(Number(data)); + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + this.var_505.name_612(gameKernel.name_5()); + } + + override public function removeFromGame(gameKernel:name_17) : void + { + this.var_424.name_493.stop(); + this.removeFromScene(); + } + + public function addToScene() : void + { + var renderSystem:name_44 = null; + if(!this.var_426) + { + renderSystem = this.gameKernel.name_5(); + if(this.localPlayer) + { + this.var_505.name_615(); + } + this.var_505.name_611(renderSystem.method_46()); + renderSystem.method_63(this); + this.var_426 = true; + } + } + + public function removeFromScene() : void + { + if(this.var_426) + { + this.var_505.name_618(); + this.gameKernel.name_5().method_64(this); + this.var_426 = false; + } + } + + public function setHealth(health:Number) : void + { + this.var_505.setHealth(health); + } + + public function method_526(rankId:int) : void + { + this.var_505.method_526(rankId); + } + + public function render() : void + { + this.chassisComponent.name_503(position); + position.transform4(this.chassisComponent.name_502()); + if(this.localPlayer && this.var_442 != null) + { + this.var_505.name_616(this.var_442.method_396() * 100); + } + else + { + position.z += REMOTE_LABEL_OFFSET_Z; + } + this.titleRenderer.name_614(entity,this); + this.var_505.update(position,name_182.time,name_182.timeDelta); + } + + public function getTitle() : name_607 + { + return this.var_505; + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/component/name_492.as b/src/alternativa/tanks/game/usertitle/component/name_492.as new file mode 100644 index 0000000..543ae79 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/component/name_492.as @@ -0,0 +1,17 @@ +package alternativa.tanks.game.usertitle.component +{ + public class name_492 extends class_40 + { + public function name_492(component:name_245) + { + super(component); + } + + override public function start(data:*) : void + { + component.addToScene(); + component.getTitle().setDeadState(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/component/name_608.as b/src/alternativa/tanks/game/usertitle/component/name_608.as new file mode 100644 index 0000000..0386776 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/component/name_608.as @@ -0,0 +1,16 @@ +package alternativa.tanks.game.usertitle.component +{ + public class name_608 extends class_40 + { + public function name_608(component:name_245) + { + super(component); + } + + override public function start(data:*) : void + { + component.removeFromScene(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/component/name_609.as b/src/alternativa/tanks/game/usertitle/component/name_609.as new file mode 100644 index 0000000..adbc5f2 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/component/name_609.as @@ -0,0 +1,17 @@ +package alternativa.tanks.game.usertitle.component +{ + public class name_609 extends class_40 + { + public function name_609(component:name_245) + { + super(component); + } + + override public function start(data:*) : void + { + component.addToScene(); + component.getTitle().clearDeadState(); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/component/name_617.as b/src/alternativa/tanks/game/usertitle/component/name_617.as new file mode 100644 index 0000000..e843509 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/component/name_617.as @@ -0,0 +1,18 @@ +package alternativa.tanks.game.usertitle.component +{ + import flash.display.IBitmapDrawable; + + public interface name_617 + { + function set text(param1:String) : void; + + function get textWidth() : int; + + function get textHeight() : int; + + function set textColor(param1:uint) : void; + + function method_777() : IBitmapDrawable; + } +} + diff --git a/src/alternativa/tanks/game/usertitle/name_607.as b/src/alternativa/tanks/game/usertitle/name_607.as new file mode 100644 index 0000000..02c392b --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/name_607.as @@ -0,0 +1,624 @@ +package alternativa.tanks.game.usertitle +{ + import alternativa.tanks.game.usertitle.component.name_617; + import flash.display.BitmapData; + import flash.filters.GlowFilter; + import flash.geom.Matrix; + import flash.geom.Point; + import flash.geom.Rectangle; + import flash.utils.Dictionary; + import package_126.name_723; + import package_18.class_3; + import package_19.name_494; + import package_21.name_78; + import package_28.name_93; + import package_39.name_160; + import package_4.class_5; + import package_46.name_194; + import package_5.name_3; + + public class name_607 + { + public static const BIT_LABEL:int = 1; + + public static const BIT_HEALTH:int = 2; + + public static const BIT_WEAPON:int = 4; + + public static const BIT_EFFECTS:int = 8; + + private static const CONFIG_FLAGS:int = BIT_LABEL | BIT_HEALTH | BIT_WEAPON | BIT_EFFECTS; + + private static const DIRTY_MASK:int = CONFIG_FLAGS << 8; + + private static const BIT_STATE_HIDDEN:int = 1 << 16; + + private static const BIT_STATE_DEAD:int = 1 << 17; + + private static const HIDDEN_STATE_FLAGS:int = BIT_STATE_HIDDEN | BIT_STATE_DEAD; + + private static const MAX_PROGRESS:int = 100; + + private static const EFFECT_WARNING_TIME:int = 3000; + + private static const RANK_ICON_SIZE:int = 12; + + private static const RANK_ICON_OFFSET_Y:int = 0; + + private static const EFFECTS_ICON_SIZE:int = 16; + + private static const LABEL_HEIGHT:int = 12; + + private static const LABEL_SPACING:int = 0; + + private static const HEALTH_BAR_SPACING_Y:int = 2; + + private static const WEAPON_BAR_SPACING_Y:int = -1; + + private static const EFFECTS_SPACING_Y:int = 4; + + private static const EFFECTS_SPACING_X:int = 4; + + private static const BAR_WIDTH:int = 100; + + private static const BAR_HEIGHT:int = 13; + + private static const TEXTURE_MARGIN:int = 3; + + private static const TEXTURE_MARGIN_2:int = 2 * TEXTURE_MARGIN; + + private static const ALPHA_SPEED:Number = 0.002; + + private static const matrix:Matrix = new Matrix(); + + private static const filter:GlowFilter = new GlowFilter(0,0.8,4,4,3); + + private static const indicatorTypes:Vector. = Vector.([name_722.TYPE_HEALTH,name_722.TYPE_ARMOR,name_722.TYPE_POWER,name_722.TYPE_NITRO]); + + private static var teamTypeSkin:Dictionary = new Dictionary(); + + teamTypeSkin[name_723.NONE] = name_724.HEALTHBAR_DM; + teamTypeSkin[name_723.BLUE] = name_724.HEALTHBAR_BLUE; + teamTypeSkin[name_723.RED] = name_724.HEALTHBAR_RED; + + private var flags:int; + + private var sprite:name_494; + + private var var_650:Rectangle; + + private var material:class_5; + + private var textureResource:name_93; + + private var texture:BitmapData; + + private var label:name_617; + + private var labelText:String; + + private var rankIcon:name_613; + + private var rankId:int; + + private var var_652:name_725; + + private var var_654:name_725; + + private var var_649:Vector.; + + private var var_651:int; + + private var var_655:int; + + private var var_653:Boolean; + + private var maxHealth:int; + + private var health:Number; + + private var weaponStatus:Number; + + private var teamType:name_723 = name_723.NONE; + + private var resourceManager:class_3; + + public function name_607(maxHealth:int, rankIcon:name_613, label:name_617) + { + super(); + this.maxHealth = maxHealth; + this.rankIcon = rankIcon; + this.label = label; + this.resourceManager = this.resourceManager; + this.textureResource = new name_93(null); + this.material = new class_5(this.textureResource); + this.material.var_21 = true; + this.sprite = new name_494(100,100,this.material); + this.sprite.material = this.material; + this.sprite.perspectiveScale = false; + this.setDeadState(); + } + + public function name_612(resourceManager:class_3) : void + { + this.resourceManager = resourceManager; + } + + public function name_615() : void + { + this.sprite.alwaysOnTop = true; + } + + public function method_524(maxHealth:int) : void + { + this.maxHealth = maxHealth; + } + + public function method_798() : void + { + this.method_782(BIT_STATE_HIDDEN); + } + + public function method_796() : void + { + this.method_781(BIT_STATE_HIDDEN); + } + + public function setDeadState() : void + { + this.method_782(BIT_STATE_DEAD); + } + + public function clearDeadState() : void + { + this.method_781(BIT_STATE_DEAD); + } + + public function method_141() : Boolean + { + return (this.flags & HIDDEN_STATE_FLAGS) == 0; + } + + public function name_619(configFlags:int) : void + { + if(!this.method_778(configFlags)) + { + this.method_782(configFlags); + this.method_783(); + } + } + + public function method_795(teamType:name_723) : void + { + var bit:int = 0; + if(this.teamType != teamType) + { + this.teamType = teamType; + for each(bit in [BIT_LABEL,BIT_HEALTH,BIT_WEAPON]) + { + if(this.method_778(bit)) + { + this.method_779(bit); + } + } + } + } + + public function method_526(rankId:int) : void + { + if(this.rankId != rankId) + { + this.rankId = rankId; + if(this.method_778(BIT_LABEL)) + { + this.method_779(BIT_LABEL | BIT_HEALTH | BIT_WEAPON | BIT_EFFECTS); + } + } + } + + public function name_620(labelText:String) : void + { + if(this.labelText != labelText) + { + this.labelText = labelText; + if(this.method_778(BIT_LABEL)) + { + this.method_783(); + this.method_779(BIT_LABEL | BIT_HEALTH | BIT_WEAPON | BIT_EFFECTS); + } + } + } + + public function setHealth(health:Number) : void + { + if(this.health != health) + { + this.health = health; + if(this.method_778(BIT_HEALTH)) + { + this.method_779(BIT_HEALTH); + } + } + } + + public function name_616(weaponStatus:Number) : void + { + if(this.weaponStatus != weaponStatus) + { + this.weaponStatus = weaponStatus; + if(this.method_778(BIT_WEAPON)) + { + this.method_779(BIT_WEAPON); + } + } + } + + public function name_339(indicatorId:int, duration:int) : void + { + var indicator:name_722 = null; + if(this.method_778(BIT_EFFECTS)) + { + indicator = this.method_785(indicatorId); + if(indicator != null) + { + if(indicator.name_726()) + { + this.method_787(1); + } + indicator.show(duration); + } + } + } + + public function name_330(indicatorId:int) : void + { + var indicator:name_722 = null; + if(this.method_778(BIT_EFFECTS)) + { + indicator = this.method_785(indicatorId); + if(indicator != null) + { + indicator.hide(); + } + } + } + + public function method_797() : void + { + var indicatorId:int = 0; + if(this.var_649 != null && this.method_778(BIT_EFFECTS)) + { + for each(indicatorId in indicatorTypes) + { + this.name_330(indicatorId); + } + } + } + + internal function method_794(indicator:name_722) : void + { + indicator.clear(this.texture); + this.method_787(-1); + } + + public function update(pos:name_194, time:int, timeDelta:int) : void + { + var reloadResource:Boolean = false; + var effectIndicator:name_722 = null; + this.name_201(pos); + this.method_791(timeDelta); + if(this.method_786(DIRTY_MASK)) + { + reloadResource = true; + if(this.method_780(BIT_LABEL)) + { + this.method_789(); + } + if(this.method_780(BIT_HEALTH)) + { + this.var_652.name_727(teamTypeSkin[this.teamType]); + this.var_652.progress = MAX_PROGRESS * this.health / this.maxHealth; + this.var_652.draw(this.texture); + } + if(this.method_780(BIT_WEAPON)) + { + this.var_654.progress = this.weaponStatus; + this.var_654.draw(this.texture); + } + if(this.method_780(BIT_EFFECTS)) + { + for each(effectIndicator in this.var_649) + { + effectIndicator.name_728(); + } + } + this.method_781(DIRTY_MASK); + } + if(this.method_778(BIT_EFFECTS)) + { + reloadResource = this.method_792(time,timeDelta) || reloadResource; + } + if(reloadResource) + { + this.resourceManager.method_30(this.textureResource); + } + } + + private function method_780(bit:int) : Boolean + { + var mask:int = bit | bit << 8; + return (mask & this.flags) == mask; + } + + private function method_792(now:int, delta:int) : Boolean + { + var indicator:name_722 = null; + var i:int = 0; + var wereUpdated:Boolean = false; + var x:int = 0; + var num:int = int(this.var_649.length); + if(this.var_653) + { + this.var_653 = false; + x = this.var_650.width + TEXTURE_MARGIN_2 - this.var_651 * EFFECTS_ICON_SIZE - (this.var_651 - 1) * EFFECTS_SPACING_X >> 1; + for(i = 0; i < num; ) + { + indicator = this.var_649[i]; + if(indicator.method_141()) + { + indicator.clear(this.texture); + } + if(!indicator.name_726()) + { + indicator.name_201(x,this.var_655); + x += EFFECTS_ICON_SIZE + EFFECTS_SPACING_X; + } + i++; + } + wereUpdated = true; + } + for(i = 0; i < num; ) + { + indicator = this.var_649[i]; + wereUpdated = indicator.update(now,delta,this.texture) || wereUpdated; + i++; + } + return wereUpdated; + } + + private function method_787(increment:int) : void + { + this.var_651 += increment; + this.var_653 = true; + } + + private function method_783() : void + { + if(this.method_786(CONFIG_FLAGS)) + { + this.method_788(); + this.method_790(); + } + } + + private function method_788() : void + { + var width:int = 0; + var height:int = 0; + var numEffects:int = 0; + var w:int = 0; + if(this.method_778(BIT_LABEL)) + { + this.label.text = this.labelText || ""; + width = RANK_ICON_SIZE + LABEL_SPACING + this.label.textWidth; + height = LABEL_HEIGHT; + } + if(this.method_778(BIT_HEALTH)) + { + if(width < BAR_WIDTH) + { + width = BAR_WIDTH; + } + if(height > 0) + { + height += HEALTH_BAR_SPACING_Y; + } + height += BAR_HEIGHT; + if(this.method_778(BIT_WEAPON)) + { + height += WEAPON_BAR_SPACING_Y + BAR_HEIGHT; + } + } + if(this.method_778(BIT_EFFECTS)) + { + numEffects = 4; + w = numEffects * EFFECTS_ICON_SIZE + (numEffects - 1) * EFFECTS_SPACING_X; + if(width < w) + { + width = w; + } + if(height > 0) + { + height += EFFECTS_SPACING_Y; + } + height += EFFECTS_ICON_SIZE; + } + width += 2 * TEXTURE_MARGIN; + width = this.method_784(width); + height += 2 * TEXTURE_MARGIN; + height = this.method_784(height); + if(this.texture == null || this.texture.width != width || this.texture.height != height) + { + if(this.texture != null) + { + this.texture.dispose(); + } + this.texture = new BitmapData(width,height,true,0); + this.textureResource.data = this.texture; + this.sprite.width = width; + this.sprite.height = height; + this.var_650 = this.texture.rect; + this.method_779(BIT_LABEL | BIT_HEALTH | BIT_WEAPON | BIT_EFFECTS); + } + } + + private function method_784(value:int) : int + { + for(var power:int = 2; value > power; ) + { + power <<= 1; + } + return power; + } + + private function method_790() : void + { + var left:int = 0; + var top:int = TEXTURE_MARGIN; + if(this.method_778(BIT_LABEL)) + { + top += LABEL_HEIGHT; + } + if(this.method_778(BIT_HEALTH)) + { + if(this.method_778(BIT_LABEL)) + { + top += HEALTH_BAR_SPACING_Y; + } + left = this.var_650.width - BAR_WIDTH >> 1; + this.var_652 = new name_725(left,top,MAX_PROGRESS,BAR_WIDTH,teamTypeSkin[this.teamType]); + top += BAR_HEIGHT; + if(this.method_778(BIT_WEAPON)) + { + top += WEAPON_BAR_SPACING_Y; + this.var_654 = new name_725(left,top,MAX_PROGRESS,BAR_WIDTH,name_724.WEAPONBAR); + top += BAR_HEIGHT; + } + } + if(this.method_778(BIT_EFFECTS)) + { + top += EFFECTS_SPACING_Y; + this.var_655 = top; + this.method_793(); + } + } + + public function name_611(container:name_78) : void + { + if(this.sprite.parent == null) + { + container.addChild(this.sprite); + } + } + + public function name_618() : void + { + if(this.sprite.parent != null) + { + this.sprite.parent.removeChild(this.sprite); + } + } + + public function name_201(pos:name_194) : void + { + this.sprite.x = pos.x; + this.sprite.y = pos.y; + this.sprite.z = pos.z; + } + + private function method_779(configBit:int) : void + { + this.flags |= configBit << 8; + } + + private function method_789() : void + { + var clientLog:name_160 = null; + var tmpBitmapData:BitmapData = this.texture.clone(); + tmpBitmapData.fillRect(this.var_650,0); + var labelWidth:int = RANK_ICON_SIZE + LABEL_SPACING + this.label.textWidth; + var left:int = tmpBitmapData.width - labelWidth >> 1; + matrix.tx = left; + matrix.ty = TEXTURE_MARGIN + RANK_ICON_OFFSET_Y; + var icon:BitmapData = this.rankIcon.method_776(this.rankId); + clientLog = name_160(name_3.name_8().name_30(name_160)); + clientLog.log("icon","UserTitle::updateLabel() icon size: %1x%2",icon.width,icon.height); + clientLog.log("icon","UserTitle::updateLabel() label height: %1",this.label.textHeight); + tmpBitmapData.draw(icon,matrix,null,null,null,true); + matrix.tx = left + RANK_ICON_SIZE + LABEL_SPACING; + matrix.ty = TEXTURE_MARGIN; + var skin:name_724 = teamTypeSkin[this.teamType]; + this.label.textColor = skin.color; + tmpBitmapData.draw(this.label.method_777(),matrix,null,null,null,true); + this.texture.applyFilter(tmpBitmapData,this.var_650,new Point(),filter); + tmpBitmapData.dispose(); + } + + private function method_793() : void + { + var indicatorType:int = 0; + if(this.var_649 != null) + { + return; + } + this.var_649 = new Vector.(); + for each(indicatorType in indicatorTypes) + { + if(indicatorType == name_722.TYPE_HEALTH) + { + this.var_649.push(new name_722(indicatorType,100000,this,300,0)); + } + else + { + this.var_649.push(new name_722(indicatorType,EFFECT_WARNING_TIME,this,300,30)); + } + } + } + + private function method_785(effectId:int) : name_722 + { + var len:int = 0; + var i:int = 0; + var indicator:name_722 = null; + if(this.var_649 != null) + { + len = int(this.var_649.length); + for(i = 0; i < len; ) + { + indicator = this.var_649[i]; + if(indicator.effectId == effectId) + { + return indicator; + } + i++; + } + } + return null; + } + + private function method_791(delta:int) : void + { + } + + private function method_782(mask:int) : void + { + this.flags |= mask; + } + + private function method_781(mask:int) : void + { + this.flags &= ~mask; + } + + private function method_786(mask:int) : Boolean + { + return (this.flags & mask) != 0; + } + + private function method_778(mask:int) : Boolean + { + return (this.flags & mask) == mask; + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/name_610.as b/src/alternativa/tanks/game/usertitle/name_610.as new file mode 100644 index 0000000..bd5170c --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/name_610.as @@ -0,0 +1,11 @@ +package alternativa.tanks.game.usertitle +{ + import alternativa.tanks.game.usertitle.component.name_245; + import package_10.name_54; + + public interface name_610 + { + function name_614(param1:name_54, param2:name_245) : void; + } +} + diff --git a/src/alternativa/tanks/game/usertitle/name_613.as b/src/alternativa/tanks/game/usertitle/name_613.as new file mode 100644 index 0000000..f279428 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/name_613.as @@ -0,0 +1,10 @@ +package alternativa.tanks.game.usertitle +{ + import flash.display.BitmapData; + + public interface name_613 + { + function method_776(param1:int) : BitmapData; + } +} + diff --git a/src/alternativa/tanks/game/usertitle/name_722.as b/src/alternativa/tanks/game/usertitle/name_722.as new file mode 100644 index 0000000..57a094b --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/name_722.as @@ -0,0 +1,224 @@ +package alternativa.tanks.game.usertitle +{ + import flash.display.Bitmap; + import flash.display.BitmapData; + import flash.geom.ColorTransform; + import flash.geom.Matrix; + import flash.geom.Rectangle; + import flash.utils.Dictionary; + import flash.utils.getTimer; + import package_72.name_764; + + public class name_722 + { + public static const TYPE_HEALTH:int = 1; + + public static const TYPE_ARMOR:int = 2; + + public static const TYPE_POWER:int = 3; + + public static const TYPE_NITRO:int = 4; + + private static const STATE_HIDDEN:int = 1; + + private static const STATE_PREPARED:int = 2; + + private static const STATE_VISIBLE:int = 4; + + private static const STATE_HIDING:int = 8; + + private static const iconHealthCls:Class = EffectIndicator_iconHealthCls; + + private static const iconArmorCls:Class = EffectIndicator_iconArmorCls; + + private static const iconPowerCls:Class = EffectIndicator_iconPowerCls; + + private static const iconNitroCls:Class = EffectIndicator_iconNitroCls; + + private static const MIN_ALPHA:Number = 0.2; + + private static var matrix:Matrix = new Matrix(); + + private static var icons:Dictionary = new Dictionary(); + + icons[TYPE_HEALTH] = Bitmap(new iconHealthCls()).bitmapData; + icons[TYPE_ARMOR] = Bitmap(new iconArmorCls()).bitmapData; + icons[TYPE_POWER] = Bitmap(new iconPowerCls()).bitmapData; + icons[TYPE_NITRO] = Bitmap(new iconNitroCls()).bitmapData; + + private static var iconRect:Rectangle = BitmapData(icons[TYPE_HEALTH]).rect; + + private var var_713:int; + + private var icon:BitmapData; + + private var blinkingTime:int; + + private var colorTransform:ColorTransform = new ColorTransform(); + + private var var_712:int; + + private var var_709:name_764; + + private var alpha:Number = 1; + + private var var_710:Boolean; + + private var x:int; + + private var y:int; + + private var userTitle:name_607; + + private var state:int; + + private var var_711:Boolean; + + public function name_722(effectId:int, blinkingTime:int, userTitle:name_607, initialBlinkInterval:int, blinkIntervalDecrement:int) + { + super(); + this.var_713 = effectId; + this.icon = icons[effectId]; + this.blinkingTime = blinkingTime; + this.userTitle = userTitle; + this.var_709 = new name_764(initialBlinkInterval,20,blinkIntervalDecrement,MIN_ALPHA,1,10); + this.state = STATE_HIDDEN; + } + + public function get effectId() : int + { + return this.var_713; + } + + public function method_141() : Boolean + { + return (this.state & STATE_VISIBLE) != 0; + } + + public function name_726() : Boolean + { + return this.state == STATE_HIDDEN; + } + + public function show(duration:int) : void + { + this.state &= ~STATE_HIDING; + if(this.state != STATE_VISIBLE || this.alpha != 1) + { + this.var_710 = true; + } + this.var_712 = getTimer() + duration - this.blinkingTime; + this.var_711 = false; + this.alpha = 1; + if(this.state == STATE_HIDDEN) + { + this.state = STATE_PREPARED; + } + } + + public function hide() : void + { + if(this.state == STATE_PREPARED) + { + this.userTitle.method_794(this); + this.state = STATE_HIDDEN; + return; + } + if((this.state & (STATE_HIDDEN | STATE_HIDING)) != 0) + { + return; + } + this.state |= STATE_HIDING; + this.var_709.name_765(0); + if(!this.var_711) + { + this.var_712 = 0; + this.var_709.init(getTimer()); + this.var_711 = true; + } + } + + public function clear(texture:BitmapData) : void + { + if(this.state == STATE_HIDDEN || this.state == STATE_PREPARED) + { + return; + } + iconRect.x = this.x; + iconRect.y = this.y; + texture.fillRect(iconRect,0); + } + + public function name_201(x:int, y:int) : void + { + this.x = x; + this.y = y; + this.var_710 = true; + } + + public function name_728() : void + { + this.var_710 = true; + } + + public function update(now:int, delta:int, texture:BitmapData) : Boolean + { + var updated:Boolean = false; + if(this.state == STATE_HIDDEN) + { + return false; + } + if(this.var_710) + { + this.draw(texture); + this.var_710 = false; + updated = true; + } + if(now > this.var_712) + { + this.method_884(now,delta,texture); + updated = true; + } + if(this.state == STATE_PREPARED) + { + this.state = STATE_VISIBLE; + } + return updated; + } + + private function method_884(now:int, delta:int, texture:BitmapData) : void + { + var newAlpha:Number = NaN; + if(this.var_711) + { + newAlpha = this.var_709.name_766(now,delta); + if(newAlpha != this.alpha) + { + this.alpha = newAlpha; + this.draw(texture); + } + if((this.state & STATE_HIDING) != 0 && this.alpha == 0) + { + this.userTitle.method_794(this); + this.state = STATE_HIDDEN; + } + } + else + { + this.var_709.name_765(MIN_ALPHA); + this.var_709.init(now); + this.var_711 = true; + } + } + + private function draw(texture:BitmapData) : void + { + this.clear(texture); + matrix.tx = this.x; + matrix.ty = this.y; + this.colorTransform.alphaMultiplier = this.alpha; + texture.draw(this.icon,matrix,this.colorTransform,null,null,true); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/name_724.as b/src/alternativa/tanks/game/usertitle/name_724.as new file mode 100644 index 0000000..534d58c --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/name_724.as @@ -0,0 +1,83 @@ +package alternativa.tanks.game.usertitle +{ + import flash.display.Bitmap; + import flash.display.BitmapData; + + public class name_724 + { + private static var hpGreenEmptyCls:Class = ProgressBarSkin_hpGreenEmptyCls; + + private static var hpGreenEmpty:BitmapData = Bitmap(new hpGreenEmptyCls()).bitmapData; + + private static var hpGreenFullCls:Class = ProgressBarSkin_hpGreenFullCls; + + private static var hpGreenFull:BitmapData = Bitmap(new hpGreenFullCls()).bitmapData; + + private static var hpRedEmptyCls:Class = ProgressBarSkin_hpRedEmptyCls; + + private static var hpRedEmpty:BitmapData = Bitmap(new hpRedEmptyCls()).bitmapData; + + private static var hpRedFullCls:Class = ProgressBarSkin_hpRedFullCls; + + private static var hpRedFull:BitmapData = Bitmap(new hpRedFullCls()).bitmapData; + + private static var hpBlueEmptyCls:Class = ProgressBarSkin_hpBlueEmptyCls; + + private static var hpBlueEmpty:BitmapData = Bitmap(new hpBlueEmptyCls()).bitmapData; + + private static var hpBlueFullCls:Class = ProgressBarSkin_hpBlueFullCls; + + private static var hpBlueFull:BitmapData = Bitmap(new hpBlueFullCls()).bitmapData; + + private static var weaponEmptyCls:Class = ProgressBarSkin_weaponEmptyCls; + + private static var weaponEmpty:BitmapData = Bitmap(new weaponEmptyCls()).bitmapData; + + private static var weaponFullCls:Class = ProgressBarSkin_weaponFullCls; + + private static var weaponFull:BitmapData = Bitmap(new weaponFullCls()).bitmapData; + + private static const COLOR_DM:uint = 4964125; + + private static const COLOR_TEAM_BLUE:uint = 4691967; + + private static const COLOR_TEAM_RED:uint = 15741974; + + public static const HEALTHBAR_DM:name_724 = new name_724(COLOR_DM,hpGreenEmpty,hpGreenFull,4); + + public static const HEALTHBAR_BLUE:name_724 = new name_724(COLOR_TEAM_BLUE,hpBlueEmpty,hpBlueFull,4); + + public static const HEALTHBAR_RED:name_724 = new name_724(COLOR_TEAM_RED,hpRedEmpty,hpRedFull,4); + + public static const WEAPONBAR:name_724 = new name_724(0,weaponEmpty,weaponFull,4); + + public var var_704:BitmapData; + + public var var_703:BitmapData; + + public var var_701:BitmapData; + + public var var_705:BitmapData; + + public var var_700:BitmapData; + + public var var_702:BitmapData; + + public var color:uint; + + public function name_724(color:uint, emptyBitmap:BitmapData, fullBitmap:BitmapData, tipWidth:int) + { + super(); + this.color = color; + var parts:name_763 = new name_763(emptyBitmap,tipWidth); + this.var_704 = parts.left; + this.var_701 = parts.right; + this.var_700 = parts.center; + parts = new name_763(fullBitmap,tipWidth); + this.var_703 = parts.left; + this.var_705 = parts.right; + this.var_702 = parts.center; + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/name_725.as b/src/alternativa/tanks/game/usertitle/name_725.as new file mode 100644 index 0000000..1c929c4 --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/name_725.as @@ -0,0 +1,142 @@ +package alternativa.tanks.game.usertitle +{ + import flash.display.BitmapData; + import flash.display.Graphics; + import flash.display.Shape; + import flash.geom.Matrix; + import flash.geom.Rectangle; + + public class name_725 + { + private static var canvas:Shape = new Shape(); + + private static var matrix:Matrix = new Matrix(); + + private var maxValue:int; + + private var barWidth:int; + + private var skin:name_724; + + private var var_706:int; + + private var var_707:int; + + private var var_708:int; + + private var x:int; + + private var y:int; + + private var rect:Rectangle; + + public function name_725(x:int, y:int, maxValue:int, barWidth:int, skin:name_724) + { + super(); + this.x = x; + this.y = y; + this.maxValue = maxValue; + this.barWidth = barWidth; + this.name_727(skin); + this.rect = new Rectangle(x,y,barWidth,this.var_707); + } + + public function name_727(skin:name_724) : void + { + this.skin = skin; + this.var_706 = skin.var_704.width; + this.var_707 = skin.var_704.height; + } + + public function get progress() : int + { + return this.var_708; + } + + public function set progress(value:int) : void + { + if(value < 0) + { + value = 0; + } + else if(value > this.maxValue) + { + value = this.maxValue; + } + this.var_708 = value; + } + + public function draw(texture:BitmapData) : void + { + var bgStart:int = 0; + var g:Graphics = canvas.graphics; + g.clear(); + matrix.ty = 0; + var displayWidth:int = this.barWidth * this.var_708 / this.maxValue; + var w:int = this.barWidth - this.var_706; + if(displayWidth >= this.var_706) + { + if(displayWidth == this.barWidth) + { + this.method_883(g,this.skin.var_703,this.skin.var_705,this.skin.var_702); + bgStart = displayWidth; + } + else + { + g.beginBitmapFill(this.skin.var_703,null,false); + g.drawRect(0,0,this.var_706,this.var_707); + if(displayWidth > this.var_706) + { + if(displayWidth > w) + { + displayWidth = w; + } + bgStart = displayWidth; + this.method_882(g,this.skin.var_702,this.var_706,displayWidth - this.var_706); + } + else + { + bgStart = this.var_706; + } + } + } + if(bgStart == 0) + { + this.method_883(g,this.skin.var_704,this.skin.var_701,this.skin.var_700); + } + else if(bgStart < this.barWidth) + { + this.method_882(g,this.skin.var_700,bgStart,w - bgStart); + matrix.tx = w; + g.beginBitmapFill(this.skin.var_701,matrix,false); + g.drawRect(w,0,this.var_706,this.var_707); + } + g.endFill(); + texture.fillRect(this.rect,0); + matrix.tx = this.x; + matrix.ty = this.y; + texture.draw(canvas,matrix); + } + + private function method_883(g:Graphics, leftTip:BitmapData, rightTip:BitmapData, center:BitmapData) : void + { + var w:int = this.barWidth - this.var_706; + g.beginBitmapFill(leftTip,null,false); + g.drawRect(0,0,this.var_706,this.var_707); + matrix.tx = this.var_706; + g.beginBitmapFill(center,matrix,true); + g.drawRect(this.var_706,0,w - this.var_706,this.var_707); + matrix.tx = w; + g.beginBitmapFill(rightTip,matrix,false); + g.drawRect(w,0,this.var_706,this.var_707); + } + + private function method_882(g:Graphics, center:BitmapData, x:int, width:int) : void + { + matrix.tx = x; + g.beginBitmapFill(center,matrix,true); + g.drawRect(x,0,width,this.var_707); + } + } +} + diff --git a/src/alternativa/tanks/game/usertitle/name_763.as b/src/alternativa/tanks/game/usertitle/name_763.as new file mode 100644 index 0000000..c42ad0c --- /dev/null +++ b/src/alternativa/tanks/game/usertitle/name_763.as @@ -0,0 +1,29 @@ +package alternativa.tanks.game.usertitle +{ + import flash.display.BitmapData; + import flash.geom.Point; + import flash.geom.Rectangle; + + public class name_763 + { + public var left:BitmapData; + + public var right:BitmapData; + + public var center:BitmapData; + + public function name_763(bar:BitmapData, tipWidth:int) + { + super(); + var h:int = int(bar.height); + var point:Point = new Point(); + this.left = new BitmapData(tipWidth,h,true,0); + this.left.copyPixels(bar,new Rectangle(0,0,tipWidth,h),point); + this.right = new BitmapData(tipWidth,h,true,0); + this.right.copyPixels(bar,new Rectangle(bar.width - tipWidth,0,tipWidth,h),point); + this.center = new BitmapData(1,h,true,0); + this.center.copyPixels(bar,new Rectangle(tipWidth,0,1,h),point); + } + } +} + diff --git a/src/mx/core/BitmapAsset.as b/src/mx/core/BitmapAsset.as new file mode 100644 index 0000000..049f012 --- /dev/null +++ b/src/mx/core/BitmapAsset.as @@ -0,0 +1,465 @@ +package mx.core +{ + import flash.display.BitmapData; + import flash.display.DisplayObjectContainer; + import flash.events.Event; + import flash.geom.Point; + import flash.system.ApplicationDomain; + + use namespace mx_internal; + + public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject, ILayoutDirectionElement + { + private static var FlexVersionClass:Class; + + private static var MatrixUtilClass:Class; + + mx_internal static const VERSION:String = "4.5.0.19786"; + + private var layoutFeaturesClass:Class; + + private var layoutFeatures:IAssetLayoutFeatures; + + private var _height:Number; + + private var _layoutDirection:String = "ltr"; + + public function BitmapAsset(bitmapData:BitmapData = null, pixelSnapping:String = "auto", smoothing:Boolean = false) + { + var appDomain:ApplicationDomain = null; + super(bitmapData,pixelSnapping,smoothing); + if(FlexVersionClass == null) + { + appDomain = ApplicationDomain.currentDomain; + if(appDomain.hasDefinition("mx.core::FlexVersion")) + { + FlexVersionClass = Class(appDomain.getDefinition("mx.core::FlexVersion")); + } + } + if(Boolean(FlexVersionClass) && FlexVersionClass["compatibilityVersion"] >= FlexVersionClass["VERSION_4_0"]) + { + this.addEventListener(Event.ADDED,this.addedHandler); + } + } + + override public function get x() : Number + { + return this.layoutFeatures == null ? super.x : Number(this.layoutFeatures.layoutX); + } + + override public function set x(value:Number) : void + { + if(this.x == value) + { + return; + } + if(this.layoutFeatures == null) + { + super.x = value; + } + else + { + this.layoutFeatures.layoutX = value; + this.validateTransformMatrix(); + } + } + + override public function get y() : Number + { + return this.layoutFeatures == null ? super.y : Number(this.layoutFeatures.layoutY); + } + + override public function set y(value:Number) : void + { + if(this.y == value) + { + return; + } + if(this.layoutFeatures == null) + { + super.y = value; + } + else + { + this.layoutFeatures.layoutY = value; + this.validateTransformMatrix(); + } + } + + override public function get z() : Number + { + return this.layoutFeatures == null ? super.z : Number(this.layoutFeatures.layoutZ); + } + + override public function set z(value:Number) : void + { + if(this.z == value) + { + return; + } + if(this.layoutFeatures == null) + { + super.z = value; + } + else + { + this.layoutFeatures.layoutZ = value; + this.validateTransformMatrix(); + } + } + + override public function get width() : Number + { + var p:Point = null; + if(this.layoutFeatures == null) + { + return super.width; + } + if(MatrixUtilClass != null) + { + p = MatrixUtilClass["transformSize"](this.layoutFeatures.layoutWidth,this._height,transform.matrix); + } + return Boolean(p) ? Number(p.x) : super.width; + } + + override public function set width(value:Number) : void + { + if(this.width == value) + { + return; + } + if(this.layoutFeatures == null) + { + super.width = value; + } + else + { + this.layoutFeatures.layoutWidth = value; + this.layoutFeatures.layoutScaleX = this.measuredWidth != 0 ? value / this.measuredWidth : 0; + this.validateTransformMatrix(); + } + } + + override public function get height() : Number + { + var p:Point = null; + if(this.layoutFeatures == null) + { + return super.height; + } + if(MatrixUtilClass != null) + { + p = MatrixUtilClass["transformSize"](this.layoutFeatures.layoutWidth,this._height,transform.matrix); + } + return Boolean(p) ? Number(p.y) : super.height; + } + + override public function set height(value:Number) : void + { + if(this.height == value) + { + return; + } + if(this.layoutFeatures == null) + { + super.height = value; + } + else + { + this._height = value; + this.layoutFeatures.layoutScaleY = this.measuredHeight != 0 ? value / this.measuredHeight : 0; + this.validateTransformMatrix(); + } + } + + override public function get rotationX() : Number + { + return this.layoutFeatures == null ? super.rotationX : Number(this.layoutFeatures.layoutRotationX); + } + + override public function set rotationX(value:Number) : void + { + if(this.rotationX == value) + { + return; + } + if(this.layoutFeatures == null) + { + super.rotationX = value; + } + else + { + this.layoutFeatures.layoutRotationX = value; + this.validateTransformMatrix(); + } + } + + override public function get rotationY() : Number + { + return this.layoutFeatures == null ? super.rotationY : Number(this.layoutFeatures.layoutRotationY); + } + + override public function set rotationY(value:Number) : void + { + if(this.rotationY == value) + { + return; + } + if(this.layoutFeatures == null) + { + super.rotationY = value; + } + else + { + this.layoutFeatures.layoutRotationY = value; + this.validateTransformMatrix(); + } + } + + override public function get rotationZ() : Number + { + return this.layoutFeatures == null ? super.rotationZ : Number(this.layoutFeatures.layoutRotationZ); + } + + override public function set rotationZ(value:Number) : void + { + if(this.rotationZ == value) + { + return; + } + if(this.layoutFeatures == null) + { + super.rotationZ = value; + } + else + { + this.layoutFeatures.layoutRotationZ = value; + this.validateTransformMatrix(); + } + } + + override public function get rotation() : Number + { + return this.layoutFeatures == null ? super.rotation : Number(this.layoutFeatures.layoutRotationZ); + } + + override public function set rotation(value:Number) : void + { + if(this.rotation == value) + { + return; + } + if(this.layoutFeatures == null) + { + super.rotation = value; + } + else + { + this.layoutFeatures.layoutRotationZ = value; + this.validateTransformMatrix(); + } + } + + override public function get scaleX() : Number + { + return this.layoutFeatures == null ? super.scaleX : Number(this.layoutFeatures.layoutScaleX); + } + + override public function set scaleX(value:Number) : void + { + if(this.scaleX == value) + { + return; + } + if(this.layoutFeatures == null) + { + super.scaleX = value; + } + else + { + this.layoutFeatures.layoutScaleX = value; + this.layoutFeatures.layoutWidth = Math.abs(value) * this.measuredWidth; + this.validateTransformMatrix(); + } + } + + override public function get scaleY() : Number + { + return this.layoutFeatures == null ? super.scaleY : Number(this.layoutFeatures.layoutScaleY); + } + + override public function set scaleY(value:Number) : void + { + if(this.scaleY == value) + { + return; + } + if(this.layoutFeatures == null) + { + super.scaleY = value; + } + else + { + this.layoutFeatures.layoutScaleY = value; + this._height = Math.abs(value) * this.measuredHeight; + this.validateTransformMatrix(); + } + } + + override public function get scaleZ() : Number + { + return this.layoutFeatures == null ? super.scaleZ : Number(this.layoutFeatures.layoutScaleZ); + } + + override public function set scaleZ(value:Number) : void + { + if(this.scaleZ == value) + { + return; + } + if(this.layoutFeatures == null) + { + super.scaleZ = value; + } + else + { + this.layoutFeatures.layoutScaleZ = value; + this.validateTransformMatrix(); + } + } + + [Inspectable(category="General",enumeration="ltr,rtl")] + public function get layoutDirection() : String + { + return this._layoutDirection; + } + + public function set layoutDirection(value:String) : void + { + if(value == this._layoutDirection) + { + return; + } + this._layoutDirection = value; + this.invalidateLayoutDirection(); + } + + public function get measuredHeight() : Number + { + if(Boolean(bitmapData)) + { + return bitmapData.height; + } + return 0; + } + + public function get measuredWidth() : Number + { + if(Boolean(bitmapData)) + { + return bitmapData.width; + } + return 0; + } + + public function invalidateLayoutDirection() : void + { + var mirror:Boolean = false; + for(var p:DisplayObjectContainer = parent; Boolean(p); ) + { + if(p is ILayoutDirectionElement) + { + mirror = this._layoutDirection != null && ILayoutDirectionElement(p).layoutDirection != null && this._layoutDirection != ILayoutDirectionElement(p).layoutDirection; + if(mirror && this.layoutFeatures == null) + { + this.initAdvancedLayoutFeatures(); + if(this.layoutFeatures != null) + { + this.layoutFeatures.mirror = mirror; + this.validateTransformMatrix(); + } + break; + } + if(!mirror && Boolean(this.layoutFeatures)) + { + this.layoutFeatures.mirror = mirror; + this.validateTransformMatrix(); + this.layoutFeatures = null; + } + break; + } + p = p.parent; + } + } + + public function move(x:Number, y:Number) : void + { + this.x = x; + this.y = y; + } + + public function setActualSize(newWidth:Number, newHeight:Number) : void + { + this.width = newWidth; + this.height = newHeight; + } + + private function addedHandler(event:Event) : void + { + this.invalidateLayoutDirection(); + } + + private function initAdvancedLayoutFeatures() : void + { + var appDomain:ApplicationDomain = null; + var features:IAssetLayoutFeatures = null; + if(this.layoutFeaturesClass == null) + { + appDomain = ApplicationDomain.currentDomain; + if(appDomain.hasDefinition("mx.core::AdvancedLayoutFeatures")) + { + this.layoutFeaturesClass = Class(appDomain.getDefinition("mx.core::AdvancedLayoutFeatures")); + } + if(MatrixUtilClass == null) + { + if(appDomain.hasDefinition("mx.utils::MatrixUtil")) + { + MatrixUtilClass = Class(appDomain.getDefinition("mx.utils::MatrixUtil")); + } + } + } + if(this.layoutFeaturesClass != null) + { + features = new this.layoutFeaturesClass(); + features.layoutScaleX = this.scaleX; + features.layoutScaleY = this.scaleY; + features.layoutScaleZ = this.scaleZ; + features.layoutRotationX = this.rotationX; + features.layoutRotationY = this.rotationY; + features.layoutRotationZ = this.rotation; + features.layoutX = this.x; + features.layoutY = this.y; + features.layoutZ = this.z; + features.layoutWidth = this.width; + this._height = this.height; + this.layoutFeatures = features; + } + } + + private function validateTransformMatrix() : void + { + if(this.layoutFeatures != null) + { + if(this.layoutFeatures.is3D) + { + super.transform.matrix3D = this.layoutFeatures.computedMatrix3D; + } + else + { + super.transform.matrix = this.layoutFeatures.computedMatrix; + } + } + } + } +} + diff --git a/src/mx/core/FlexBitmap.as b/src/mx/core/FlexBitmap.as new file mode 100644 index 0000000..a449e54 --- /dev/null +++ b/src/mx/core/FlexBitmap.as @@ -0,0 +1,31 @@ +package mx.core +{ + import flash.display.Bitmap; + import flash.display.BitmapData; + import mx.utils.NameUtil; + + use namespace mx_internal; + + public class FlexBitmap extends Bitmap + { + mx_internal static const VERSION:String = "4.5.0.19786"; + + public function FlexBitmap(bitmapData:BitmapData = null, pixelSnapping:String = "auto", smoothing:Boolean = false) + { + super(bitmapData,pixelSnapping,smoothing); + try + { + name = NameUtil.createUniqueName(this); + } + catch(e:Error) + { + } + } + + override public function toString() : String + { + return NameUtil.displayObjectToString(this); + } + } +} + diff --git a/src/mx/core/IAssetLayoutFeatures.as b/src/mx/core/IAssetLayoutFeatures.as new file mode 100644 index 0000000..6725f0e --- /dev/null +++ b/src/mx/core/IAssetLayoutFeatures.as @@ -0,0 +1,89 @@ +package mx.core +{ + import flash.geom.Matrix; + import flash.geom.Matrix3D; + + public interface IAssetLayoutFeatures + { + function set layoutX(param1:Number) : void; + + function get layoutX() : Number; + + function set layoutY(param1:Number) : void; + + function get layoutY() : Number; + + function set layoutZ(param1:Number) : void; + + function get layoutZ() : Number; + + function get layoutWidth() : Number; + + function set layoutWidth(param1:Number) : void; + + function set transformX(param1:Number) : void; + + function get transformX() : Number; + + function set transformY(param1:Number) : void; + + function get transformY() : Number; + + function set transformZ(param1:Number) : void; + + function get transformZ() : Number; + + function set layoutRotationX(param1:Number) : void; + + function get layoutRotationX() : Number; + + function set layoutRotationY(param1:Number) : void; + + function get layoutRotationY() : Number; + + function set layoutRotationZ(param1:Number) : void; + + function get layoutRotationZ() : Number; + + function set layoutScaleX(param1:Number) : void; + + function get layoutScaleX() : Number; + + function set layoutScaleY(param1:Number) : void; + + function get layoutScaleY() : Number; + + function set layoutScaleZ(param1:Number) : void; + + function get layoutScaleZ() : Number; + + function set layoutMatrix(param1:Matrix) : void; + + function get layoutMatrix() : Matrix; + + function set layoutMatrix3D(param1:Matrix3D) : void; + + function get layoutMatrix3D() : Matrix3D; + + function get is3D() : Boolean; + + function get layoutIs3D() : Boolean; + + function get mirror() : Boolean; + + function set mirror(param1:Boolean) : void; + + function get stretchX() : Number; + + function set stretchX(param1:Number) : void; + + function get stretchY() : Number; + + function set stretchY(param1:Number) : void; + + function get computedMatrix() : Matrix; + + function get computedMatrix3D() : Matrix3D; + } +} + diff --git a/src/mx/core/IFlexAsset.as b/src/mx/core/IFlexAsset.as new file mode 100644 index 0000000..8390e21 --- /dev/null +++ b/src/mx/core/IFlexAsset.as @@ -0,0 +1,8 @@ +package mx.core +{ + public interface IFlexAsset + { + + } +} + diff --git a/src/mx/core/IFlexDisplayObject.as b/src/mx/core/IFlexDisplayObject.as new file mode 100644 index 0000000..29f81f3 --- /dev/null +++ b/src/mx/core/IFlexDisplayObject.as @@ -0,0 +1,125 @@ +package mx.core +{ + import flash.accessibility.AccessibilityProperties; + import flash.display.DisplayObject; + import flash.display.DisplayObjectContainer; + import flash.display.IBitmapDrawable; + import flash.display.LoaderInfo; + import flash.display.Stage; + import flash.events.IEventDispatcher; + import flash.geom.Point; + import flash.geom.Rectangle; + import flash.geom.Transform; + + public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher + { + function get root() : DisplayObject; + + function get stage() : Stage; + + function get name() : String; + + function set name(param1:String) : void; + + function get parent() : DisplayObjectContainer; + + function get mask() : DisplayObject; + + function set mask(param1:DisplayObject) : void; + + function get visible() : Boolean; + + function set visible(param1:Boolean) : void; + + function get x() : Number; + + function set x(param1:Number) : void; + + function get y() : Number; + + function set y(param1:Number) : void; + + function get scaleX() : Number; + + function set scaleX(param1:Number) : void; + + function get scaleY() : Number; + + function set scaleY(param1:Number) : void; + + function get mouseX() : Number; + + function get mouseY() : Number; + + function get rotation() : Number; + + function set rotation(param1:Number) : void; + + function get alpha() : Number; + + function set alpha(param1:Number) : void; + + function get width() : Number; + + function set width(param1:Number) : void; + + function get height() : Number; + + function set height(param1:Number) : void; + + function get cacheAsBitmap() : Boolean; + + function set cacheAsBitmap(param1:Boolean) : void; + + function get opaqueBackground() : Object; + + function set opaqueBackground(param1:Object) : void; + + function get scrollRect() : Rectangle; + + function set scrollRect(param1:Rectangle) : void; + + function get filters() : Array; + + function set filters(param1:Array) : void; + + function get blendMode() : String; + + function set blendMode(param1:String) : void; + + function get transform() : Transform; + + function set transform(param1:Transform) : void; + + function get scale9Grid() : Rectangle; + + function set scale9Grid(param1:Rectangle) : void; + + function globalToLocal(param1:Point) : Point; + + function localToGlobal(param1:Point) : Point; + + function getBounds(param1:DisplayObject) : Rectangle; + + function getRect(param1:DisplayObject) : Rectangle; + + function get loaderInfo() : LoaderInfo; + + function hitTestObject(param1:DisplayObject) : Boolean; + + function hitTestPoint(param1:Number, param2:Number, param3:Boolean = false) : Boolean; + + function get accessibilityProperties() : AccessibilityProperties; + + function set accessibilityProperties(param1:AccessibilityProperties) : void; + + function get measuredHeight() : Number; + + function get measuredWidth() : Number; + + function move(param1:Number, param2:Number) : void; + + function setActualSize(param1:Number, param2:Number) : void; + } +} + diff --git a/src/mx/core/ILayoutDirectionElement.as b/src/mx/core/ILayoutDirectionElement.as new file mode 100644 index 0000000..e386166 --- /dev/null +++ b/src/mx/core/ILayoutDirectionElement.as @@ -0,0 +1,12 @@ +package mx.core +{ + public interface ILayoutDirectionElement + { + function get layoutDirection() : String; + + function set layoutDirection(param1:String) : void; + + function invalidateLayoutDirection() : void; + } +} + diff --git a/src/mx/core/IRepeaterClient.as b/src/mx/core/IRepeaterClient.as new file mode 100644 index 0000000..907dc03 --- /dev/null +++ b/src/mx/core/IRepeaterClient.as @@ -0,0 +1,22 @@ +package mx.core +{ + public interface IRepeaterClient + { + function get instanceIndices() : Array; + + function set instanceIndices(param1:Array) : void; + + function get isDocument() : Boolean; + + function get repeaterIndices() : Array; + + function set repeaterIndices(param1:Array) : void; + + function get repeaters() : Array; + + function set repeaters(param1:Array) : void; + + function initializeRepeaterArrays(param1:IRepeaterClient) : void; + } +} + diff --git a/src/mx/core/mx_internal.as b/src/mx/core/mx_internal.as new file mode 100644 index 0000000..af32887 --- /dev/null +++ b/src/mx/core/mx_internal.as @@ -0,0 +1,5 @@ +package mx.core +{ + public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; +} + diff --git a/src/mx/utils/NameUtil.as b/src/mx/utils/NameUtil.as new file mode 100644 index 0000000..5e8d917 --- /dev/null +++ b/src/mx/utils/NameUtil.as @@ -0,0 +1,94 @@ +package mx.utils +{ + import flash.display.DisplayObject; + import flash.utils.getQualifiedClassName; + import mx.core.IRepeaterClient; + import mx.core.mx_internal; + + use namespace mx_internal; + + public class NameUtil + { + mx_internal static const VERSION:String = "4.5.0.19786"; + + private static var counter:int = 0; + + public function NameUtil() + { + super(); + } + + public static function createUniqueName(object:Object) : String + { + if(!object) + { + return null; + } + var name:String = getQualifiedClassName(object); + var index:int = int(name.indexOf("::")); + if(index != -1) + { + name = name.substr(index + 2); + } + var charCode:int = int(name.charCodeAt(name.length - 1)); + if(charCode >= 48 && charCode <= 57) + { + name += "_"; + } + return name + counter++; + } + + public static function displayObjectToString(displayObject:DisplayObject) : String + { + var result:String = null; + var o:DisplayObject = null; + var s:String = null; + var indices:Array = null; + try + { + for(o = displayObject; o != null; ) + { + if(o.parent && o.stage && o.parent == o.stage) + { + break; + } + s = "id" in o && Boolean(o["id"]) ? o["id"] : o.name; + if(o is IRepeaterClient) + { + indices = IRepeaterClient(o).instanceIndices; + if(Boolean(indices)) + { + s += "[" + indices.join("][") + "]"; + } + } + result = result == null ? s : s + "." + result; + o = o.parent; + } + } + catch(e:SecurityError) + { + } + return result; + } + + public static function getUnqualifiedClassName(object:Object) : String + { + var name:String = null; + if(object is String) + { + name = object as String; + } + else + { + name = getQualifiedClassName(object); + } + var index:int = int(name.indexOf("::")); + if(index != -1) + { + name = name.substr(index + 2); + } + return name; + } + } +} + diff --git a/src/name_164.as b/src/name_164.as new file mode 100644 index 0000000..cdde21f --- /dev/null +++ b/src/name_164.as @@ -0,0 +1,15 @@ +package +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/14_name_164.jpg")] + public class name_164 extends BitmapAsset + { + public function name_164() + { + super(); + } + } +} + diff --git a/src/name_165.as b/src/name_165.as new file mode 100644 index 0000000..f898102 --- /dev/null +++ b/src/name_165.as @@ -0,0 +1,15 @@ +package +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/13_name_165.jpg")] + public class name_165 extends BitmapAsset + { + public function name_165() + { + super(); + } + } +} + diff --git a/src/name_166.as b/src/name_166.as new file mode 100644 index 0000000..9d5c3fa --- /dev/null +++ b/src/name_166.as @@ -0,0 +1,15 @@ +package +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/16_name_166.jpg")] + public class name_166 extends BitmapAsset + { + public function name_166() + { + super(); + } + } +} + diff --git a/src/package_1/name_1.as b/src/package_1/name_1.as new file mode 100644 index 0000000..fc30a22 --- /dev/null +++ b/src/package_1/name_1.as @@ -0,0 +1,40 @@ +package package_1 +{ + public class name_1 extends name_22 + { + public var value:Number; + + private var minValue:Number; + + private var maxValue:Number; + + public function name_1(consoleVarName:String, initialValue:Number, minValue:Number, maxValue:Number, changeListener:Function = null) + { + super(consoleVarName,changeListener); + this.value = initialValue; + this.minValue = minValue; + this.maxValue = maxValue; + } + + override protected function acceptInput(value:String) : String + { + var f:Number = Number(Number(value)); + if(isNaN(f)) + { + return "Incorrect number"; + } + if(f < this.minValue || f > this.maxValue) + { + return "Value is out of bounds [" + this.minValue + ", " + this.maxValue + "]"; + } + this.value = f; + return null; + } + + override public function toString() : String + { + return this.value.toString(); + } + } +} + diff --git a/src/package_1/name_12.as b/src/package_1/name_12.as new file mode 100644 index 0000000..f75023d --- /dev/null +++ b/src/package_1/name_12.as @@ -0,0 +1,36 @@ +package package_1 +{ + public class name_12 extends name_22 + { + public var value:int; + + private var minValue:int; + + private var maxValue:int; + + public function name_12(consoleVarName:String, initialValue:int, minValue:int, maxValue:int, inputListener:Function = null) + { + super(consoleVarName,inputListener); + this.value = initialValue; + this.minValue = minValue; + this.maxValue = maxValue; + } + + override protected function acceptInput(value:String) : String + { + var f:int = int(int(value)); + if(f < this.minValue || f > this.maxValue) + { + return "Value is out of bounds [" + this.minValue + ", " + this.maxValue + "]"; + } + this.value = f; + return null; + } + + override public function toString() : String + { + return this.value.toString(); + } + } +} + diff --git a/src/package_1/name_13.as b/src/package_1/name_13.as new file mode 100644 index 0000000..21cc13e --- /dev/null +++ b/src/package_1/name_13.as @@ -0,0 +1,25 @@ +package package_1 +{ + public class name_13 extends name_22 + { + public var value:String; + + public function name_13(consoleVarName:String, initialValue:String, inputListener:Function = null) + { + super(consoleVarName,inputListener); + this.value = initialValue; + } + + override protected function acceptInput(value:String) : String + { + this.value = value; + return null; + } + + override public function toString() : String + { + return this.value; + } + } +} + diff --git a/src/package_1/name_22.as b/src/package_1/name_22.as new file mode 100644 index 0000000..ffb4461 --- /dev/null +++ b/src/package_1/name_22.as @@ -0,0 +1,77 @@ +package package_1 +{ + import package_5.name_3; + import package_6.name_4; + + public class name_22 + { + protected var varName:String; + + protected var inputListener:Function; + + public function name_22(varName:String, inputListener:Function = null) + { + super(); + this.varName = varName; + this.inputListener = inputListener; + var console:name_4 = name_4(name_3.name_8().name_30(name_4)); + if(console != null) + { + console.name_147(this); + } + } + + public function name_32() : String + { + return this.varName; + } + + public function destroy() : void + { + var console:name_4 = name_4(name_3.name_8().name_30(name_4)); + if(console != null) + { + console.name_146(this.varName); + } + this.inputListener = null; + } + + public function method_77(console:name_4, params:Array) : void + { + var oldValue:String = null; + var errorText:String = null; + if(params.length == 0) + { + console.name_145(this.varName + " = " + this.toString()); + } + else + { + oldValue = this.toString(); + errorText = this.acceptInput(params[0]); + if(errorText == null) + { + console.name_145(this.varName + " is set to " + this.toString() + " (was " + oldValue + ")"); + if(this.inputListener != null) + { + this.inputListener.call(null,this); + } + } + else + { + console.name_145(errorText); + } + } + } + + protected function acceptInput(value:String) : String + { + return "Not implemented"; + } + + public function toString() : String + { + return "Not implemented"; + } + } +} + diff --git a/src/package_10/class_1.as b/src/package_10/class_1.as new file mode 100644 index 0000000..6246e4b --- /dev/null +++ b/src/package_10/class_1.as @@ -0,0 +1,73 @@ +package package_10 +{ + public class class_1 + { + public var var_4:name_52; + + public var priority:int; + + protected var var_3:Boolean; + + public function class_1(priority:int) + { + super(); + this.priority = priority; + } + + public function start() : void + { + } + + public function stop() : void + { + } + + public function run() : void + { + } + + final public function get method_20() : Boolean + { + return this.var_3; + } + + final public function set method_20(value:Boolean) : void + { + if(value) + { + this.method_21(); + } + else + { + this.method_22(); + } + } + + final public function method_21() : void + { + if(!this.var_3) + { + this.var_3 = true; + this.onPause(); + } + } + + final public function method_22() : void + { + if(this.var_3) + { + this.var_3 = false; + this.onResume(); + } + } + + protected function onPause() : void + { + } + + protected function onResume() : void + { + } + } +} + diff --git a/src/package_10/class_17.as b/src/package_10/class_17.as new file mode 100644 index 0000000..bfd9081 --- /dev/null +++ b/src/package_10/class_17.as @@ -0,0 +1,30 @@ +package package_10 +{ + public class class_17 + { + protected var entity:name_54; + + public function class_17() + { + super(); + } + + public function method_197(entity:name_54) : void + { + this.entity = entity; + } + + public function initComponent() : void + { + } + + public function addToGame(gameKernel:name_17) : void + { + } + + public function removeFromGame(gameKernel:name_17) : void + { + } + } +} + diff --git a/src/package_10/class_8.as b/src/package_10/class_8.as new file mode 100644 index 0000000..79d9ec7 --- /dev/null +++ b/src/package_10/class_8.as @@ -0,0 +1,8 @@ +package package_10 +{ + public interface class_8 + { + function log(param1:String, param2:String) : void; + } +} + diff --git a/src/package_10/name_17.as b/src/package_10/name_17.as new file mode 100644 index 0000000..90f905e --- /dev/null +++ b/src/package_10/name_17.as @@ -0,0 +1,216 @@ +package package_10 +{ + import flash.display.Stage; + import package_18.name_44; + import package_20.name_179; + import package_20.name_56; + import package_22.name_181; + import package_22.name_87; + import package_26.name_100; + import package_27.name_180; + import package_42.name_177; + import package_42.name_184; + import package_43.name_183; + import package_43.name_190; + import package_44.name_178; + import package_45.name_182; + + public class name_17 + { + public static const TIME_SYSTEM_PRIORITY:int = 0; + + public static const INPUT_SYSTEM_PRIORITY:int = 1000; + + public static const EVENT_SYSTEM_PRIORITY:int = 2000; + + public static const LOGIC_SYSTEM_1_PRIORITY:int = 3000; + + public static const LOGIC_SYSTEM_2_PRIORITY:int = 3001; + + public static const PHYSICS_SYSTEM_PRIORITY:int = 4000; + + public static const RENDER_SYSTEM_PRIORITY:int = 5000; + + public static const CLEANUP_SYSTEM_PRIORITY:int = 6000; + + public const const_1:name_180 = new name_180(20); + + private var var_43:Stage; + + private var var_36:Object; + + private var var_41:class_8 = new DummyLogger(); + + private var var_4:name_52; + + private var var_44:name_182; + + private var inputSystem:name_181; + + private var eventSystem:name_179; + + private var logicSystem1:name_177; + + private var logicSystem2:name_177; + + private var physicsSystem:name_178; + + private var renderSystem:name_44; + + private var var_42:name_183; + + private var var_39:Vector.; + + private var var_38:int; + + private var var_40:name_100; + + public function name_17(stage:Stage, options:Object) + { + super(); + this.var_43 = stage; + this.var_36 = options || {}; + this.var_39 = new Vector.(); + this.var_40 = new name_100(); + this.var_4 = new name_52(); + this.var_44 = new name_182(TIME_SYSTEM_PRIORITY); + this.var_4.addTask(this.var_44); + this.inputSystem = new name_181(INPUT_SYSTEM_PRIORITY,stage); + this.var_4.addTask(this.inputSystem); + this.eventSystem = new name_179(EVENT_SYSTEM_PRIORITY); + this.var_4.addTask(this.eventSystem); + this.logicSystem1 = new name_177(LOGIC_SYSTEM_1_PRIORITY,this); + this.var_4.addTask(this.logicSystem1); + this.logicSystem2 = new name_177(LOGIC_SYSTEM_2_PRIORITY,this); + this.var_4.addTask(this.logicSystem2); + this.physicsSystem = new name_178(PHYSICS_SYSTEM_PRIORITY,this.var_40); + this.var_4.addTask(this.physicsSystem); + this.renderSystem = new name_44(RENDER_SYSTEM_PRIORITY,stage); + this.var_4.addTask(this.renderSystem); + this.var_42 = new name_183(CLEANUP_SYSTEM_PRIORITY); + this.var_4.addTask(this.var_42); + } + + public function get logger() : class_8 + { + return this.var_41; + } + + public function set logger(value:class_8) : void + { + if(value == null) + { + throw new ArgumentError("Logger is null"); + } + this.var_41 = value; + } + + public function get stage() : Stage + { + return this.var_43; + } + + public function get options() : Object + { + return this.var_36; + } + + public function method_111(command:name_190) : void + { + this.var_42.name_187(command); + } + + public function method_108() : name_100 + { + return this.var_40; + } + + public function addTask(gameTask:class_1) : void + { + this.var_4.addTask(gameTask); + } + + public function name_73(entity:name_54) : void + { + if(entity.index < 0) + { + entity.index = this.var_38; + var _loc2_:* = this.var_38++; + this.var_39[_loc2_] = entity; + entity.addToGame(this); + return; + } + throw new Error("Entity " + entity + " is already in game"); + } + + public function method_109(entity:name_54) : void + { + var index:int = int(entity.index); + if(index < 0) + { + throw new Error("Entity " + entity + " is not in game"); + } + var lastEntity:name_54 = this.var_39[--this.var_38]; + lastEntity.index = index; + this.var_39[index] = lastEntity; + this.var_39[this.var_38] = null; + entity.index = -1; + entity.removeFromGame(this); + } + + public function name_66() : name_87 + { + return this.inputSystem; + } + + public function name_61() : name_56 + { + return this.eventSystem; + } + + public function getLogicSystem1() : name_184 + { + return this.logicSystem1; + } + + public function getLogicSystem2() : name_184 + { + return this.logicSystem2; + } + + public function method_112() : name_178 + { + return this.physicsSystem; + } + + public function name_5() : name_44 + { + return this.renderSystem; + } + + public function name_51() : void + { + this.const_1.name_188(); + this.var_4.name_185(); + this.const_1.name_186(); + } + + public function method_110() : void + { + this.var_4.name_189(); + this.var_4.name_185(); + } + } +} + +class DummyLogger implements class_8 +{ + public function DummyLogger() + { + super(); + } + + public function log(channel:String, text:String) : void + { + } +} diff --git a/src/package_10/name_195.as b/src/package_10/name_195.as new file mode 100644 index 0000000..6bf3db7 --- /dev/null +++ b/src/package_10/name_195.as @@ -0,0 +1,84 @@ +package package_10 +{ + import package_21.name_124; + import package_21.name_78; + import package_46.Matrix3; + import package_46.name_194; + + public class name_195 + { + private static var matrix:Matrix3 = new Matrix3(); + + private static var vector:name_194 = new name_194(); + + private var var_234:name_78; + + public function name_195() + { + super(); + } + + public function get object() : name_78 + { + return this.var_234; + } + + public function set object(value:name_78) : void + { + this.var_234 = value; + } + + public function name_201(x:Number, y:Number, z:Number) : void + { + this.var_234.x = x; + this.var_234.y = y; + this.var_234.z = z; + } + + public function method_368(rx:Number, ry:Number, rz:Number) : void + { + this.var_234.rotationX = rx; + this.var_234.rotationY = ry; + this.var_234.rotationZ = rz; + } + + public function method_367(dx:Number, dy:Number, dz:Number) : void + { + matrix.name_196(this.var_234.rotationX,this.var_234.rotationY,this.var_234.rotationZ); + vector.reset(dx,dy,dz); + vector.transform3(matrix); + this.var_234.x += vector.x; + this.var_234.y += vector.y; + this.var_234.z += vector.z; + } + + public function move(dx:Number, dy:Number, dz:Number) : void + { + this.var_234.x += dx; + this.var_234.y += dy; + this.var_234.z += dz; + } + + public function rotate(rdx:Number, rdy:Number, rdz:Number) : void + { + this.var_234.rotationX += rdx; + this.var_234.rotationY += rdy; + this.var_234.rotationZ += rdz; + } + + public function name_76(x:Number, y:Number, z:Number) : void + { + var dx:Number = x - this.var_234.x; + var dy:Number = y - this.var_234.y; + var dz:Number = z - this.var_234.z; + this.var_234.rotationX = Math.atan2(dz,Math.sqrt(dx * dx + dy * dy)); + if(this.var_234 is name_124) + { + this.var_234.rotationX -= 0.5 * Math.PI; + } + this.var_234.rotationY = 0; + this.var_234.rotationZ = -Math.atan2(dx,dy); + } + } +} + diff --git a/src/package_10/name_52.as b/src/package_10/name_52.as new file mode 100644 index 0000000..bcbd615 --- /dev/null +++ b/src/package_10/name_52.as @@ -0,0 +1,175 @@ +package package_10 +{ + import flash.utils.Dictionary; + import flash.utils.describeType; + import flash.utils.getDefinitionByName; + import package_108.name_373; + import package_108.name_374; + + public class name_52 + { + private var var_85:name_374 = new name_374(); + + private var var_87:TaskArray = new TaskArray(); + + private var var_86:TaskArray = new TaskArray(); + + private var var_88:Dictionary = new Dictionary(); + + public function name_52() + { + super(); + } + + public function addTask(task:class_1) : void + { + if(this.var_85.contains(task)) + { + throw new Error("Task is already active"); + } + if(this.var_87.contains(task)) + { + throw new Error("Task has been already scheduled for addition"); + } + this.var_87.add(task); + } + + public function killTask(task:class_1) : void + { + if(this.var_85.contains(task) && !this.var_86.contains(task)) + { + this.var_86.add(task); + } + } + + public function name_185() : void + { + var task:class_1 = null; + this.method_196(); + var iterator:name_373 = this.var_85.listIterator(); + while(iterator.hasNext()) + { + task = class_1(iterator.next()); + if(!task.method_20) + { + task.run(); + } + } + this.method_195(); + } + + public function getTaskInterface(taskInterface:Class) : Object + { + return this.var_88[taskInterface]; + } + + public function name_189() : void + { + var task:class_1 = null; + var listIterator:name_373 = this.var_85.listIterator(); + while(listIterator.hasNext()) + { + task = class_1(listIterator.next()); + this.killTask(task); + } + } + + private function method_196() : void + { + var task:class_1 = null; + var taskInterfaces:Vector. = null; + var taskInterface:Class = null; + var activeTasksIterator:name_373 = null; + var activeTask:class_1 = null; + for(var i:int = 0; i < this.var_87.numTasks; i++) + { + task = this.var_87.tasks[i]; + task.var_4 = this; + task.start(); + taskInterfaces = this.method_194(task); + for each(taskInterface in taskInterfaces) + { + this.var_88[taskInterface] = task; + } + activeTasksIterator = this.var_85.listIterator(); + while(activeTasksIterator.hasNext()) + { + activeTask = class_1(activeTasksIterator.next()); + if(activeTask.priority > task.priority) + { + activeTasksIterator.name_375(); + break; + } + } + activeTasksIterator.add(task); + } + this.var_87.clear(); + } + + private function method_195() : void + { + var task:class_1 = null; + var taskInterfaces:Vector. = null; + var taskInterface:Class = null; + for(var i:int = 0; i < this.var_86.numTasks; i++) + { + task = this.var_86.tasks[i]; + this.var_85.remove(task); + task.stop(); + taskInterfaces = this.method_194(task); + for each(taskInterface in taskInterfaces) + { + delete this.var_88[taskInterface]; + } + task.var_4 = null; + } + this.var_86.clear(); + } + + private function method_194(object:Object) : Vector. + { + var interfaceXML:XML = null; + var interfaceClass:Object = null; + var result:Vector. = new Vector.(); + var xml:XML = describeType(object); + for each(interfaceXML in xml.implementsInterface) + { + interfaceClass = getDefinitionByName(interfaceXML.@type); + result.push(interfaceClass); + } + return result; + } + } +} + +class TaskArray +{ + public var tasks:Vector. = new Vector.(); + + public var numTasks:int; + + public function TaskArray() + { + super(); + } + + public function add(task:class_1) : void + { + var _loc2_:* = this.numTasks++; + this.tasks[_loc2_] = task; + } + + public function clear() : void + { + for(var i:int = 0; i < this.numTasks; i++) + { + this.tasks[i] = null; + } + this.numTasks = 0; + } + + public function contains(task:class_1) : Boolean + { + return this.tasks.indexOf(task) >= 0; + } +} diff --git a/src/package_10/name_54.as b/src/package_10/name_54.as new file mode 100644 index 0000000..b22c6ca --- /dev/null +++ b/src/package_10/name_54.as @@ -0,0 +1,116 @@ +package package_10 +{ + public class name_54 + { + private static var lastId:int; + + private var var_101:int; + + private var components:Vector.; + + private var var_100:Object; + + internal var index:int = -1; + + public function name_54(id:int) + { + super(); + this.var_101 = id; + this.components = new Vector.(); + this.var_100 = new Object(); + } + + public static function name_74() : int + { + return ++lastId; + } + + public function get id() : int + { + return this.var_101; + } + + public function name_60(component:class_17) : void + { + this.components.push(component); + component.method_197(this); + } + + public function name_64() : void + { + var entityComponent:class_17 = null; + for each(entityComponent in this.components) + { + entityComponent.initComponent(); + } + } + + public function getComponent(cls:Class) : class_17 + { + var component:class_17 = null; + for each(component in this.components) + { + if(component is cls) + { + return component; + } + } + return null; + } + + public function getComponentStrict(cls:Class) : class_17 + { + var component:class_17 = this.getComponent(cls); + if(component == null) + { + throw new Error("Component " + cls + " not found"); + } + return component; + } + + public function addToGame(gameKernel:name_17) : void + { + var entityComponent:class_17 = null; + for each(entityComponent in this.components) + { + entityComponent.addToGame(gameKernel); + } + } + + public function removeFromGame(gameKernel:name_17) : void + { + var entityComponent:class_17 = null; + for each(entityComponent in this.components) + { + entityComponent.removeFromGame(gameKernel); + } + } + + public function dispatchEvent(eventType:String, eventData:* = undefined) : void + { + var numListeners:uint = 0; + var i:int = 0; + var listeners:Vector. = this.var_100[eventType]; + if(listeners != null) + { + numListeners = uint(listeners.length); + for(i = 0; i < numListeners; i++) + { + listeners[i].call(null,eventType,eventData); + } + } + } + + public function addEventHandler(eventType:String, handler:Function) : void + { + var handlers:Vector. = this.var_100[eventType]; + if(handlers == null) + { + handlers = new Vector.(); + this.var_100[eventType] = handlers; + } + handlers.push(handler); + } + } +} + diff --git a/src/package_10/name_57.as b/src/package_10/name_57.as new file mode 100644 index 0000000..e146dcd --- /dev/null +++ b/src/package_10/name_57.as @@ -0,0 +1,15 @@ +package package_10 +{ + public class name_57 + { + public static const MAP_COMPLETE:String = "mapComplete"; + + public static const BATTLE_FINISHED:String = "battleFinished"; + + public function name_57() + { + super(); + } + } +} + diff --git a/src/package_100/name_301.as b/src/package_100/name_301.as new file mode 100644 index 0000000..ef71198 --- /dev/null +++ b/src/package_100/name_301.as @@ -0,0 +1,60 @@ +package package_100 +{ + import flash.geom.ColorTransform; + import package_10.name_17; + import package_4.class_4; + import package_46.name_194; + import package_72.name_239; + import package_91.name_349; + import package_91.name_522; + + public class name_301 implements name_349 + { + private static const EFFECT_SIZE:Number = 300; + + private static const EFFECT_FPS:Number = 30; + + private static const EXPLOSION_EFFECT_SIZE:Number = 600; + + private static const EXPLOSION_FPS:int = 30; + + private var gameKernel:name_17; + + private var roundFrames:Vector.; + + private var explosionFrames:Vector.; + + private var colorTransform:ColorTransform; + + public function name_301(gameKernel:name_17, roundFrames:Vector., explosionFrames:Vector., colorTransform:ColorTransform) + { + super(); + this.gameKernel = gameKernel; + this.roundFrames = roundFrames; + this.explosionFrames = explosionFrames; + this.colorTransform = colorTransform; + } + + public function method_414() : name_522 + { + var effect:name_625 = name_625(this.gameKernel.method_108().name_110(name_625)); + var rotation:Number = Math.random() * Math.PI; + effect.init(EFFECT_SIZE,EFFECT_SIZE,this.roundFrames,name_194.ZERO,rotation,50,EFFECT_FPS,true,0.5,0.5); + this.gameKernel.name_5().method_37(effect); + return effect; + } + + public function method_413(position:name_194) : void + { + var explosionEffect:name_239 = name_239(this.gameKernel.method_108().name_110(name_239)); + var rotation:Number = Math.random() * Math.PI; + explosionEffect.init(EXPLOSION_EFFECT_SIZE,EXPLOSION_EFFECT_SIZE,this.explosionFrames,position,rotation,50,EXPLOSION_FPS,false,0.5,0.5); + this.gameKernel.name_5().method_37(explosionEffect); + } + + public function method_412(position:name_194, normal:name_194, direction:name_194) : void + { + } + } +} + diff --git a/src/package_100/name_625.as b/src/package_100/name_625.as new file mode 100644 index 0000000..6942c58 --- /dev/null +++ b/src/package_100/name_625.as @@ -0,0 +1,15 @@ +package package_100 +{ + import package_26.name_402; + import package_72.name_239; + import package_91.name_522; + + public class name_625 extends name_239 implements name_522 + { + public function name_625(objectPool:name_402) + { + super(objectPool); + } + } +} + diff --git a/src/package_101/name_304.as b/src/package_101/name_304.as new file mode 100644 index 0000000..3e15963 --- /dev/null +++ b/src/package_101/name_304.as @@ -0,0 +1,94 @@ +package package_101 +{ + import package_10.name_17; + import package_119.name_552; + import package_27.name_501; + import package_46.name_194; + import package_72.class_12; + import package_74.name_233; + import package_74.name_327; + import package_74.name_553; + import package_76.name_256; + import package_86.name_257; + import package_86.name_540; + import package_90.name_273; + import package_92.name_271; + + public class name_304 implements name_233 + { + private static const COLLISION_MASK:int = name_257.STATIC | name_257.WEAPON; + + private static var hitPosition:name_194 = new name_194(); + + private static var filter:name_540 = new name_540(); + + private static var rayHit:name_273 = new name_273(); + + private static var hitInfo:name_553 = new name_553(); + + private var impactForce:Number; + + private var weakening:name_327; + + private var effects:class_12; + + private var callback:name_552; + + public function name_304(impactForce:Number, weakening:name_327, effects:class_12) + { + super(); + this.impactForce = impactForce; + this.weakening = weakening; + this.effects = effects; + } + + public function method_383(callback:name_552) : void + { + this.callback = callback; + } + + public function method_372(gameKernel:name_17, shotId:int, shooter:name_271, barrelOrigin:name_194, barrelLength:Number, shotDirection:name_194, muzzlePosition:name_194) : void + { + var distance:Number = NaN; + var weakeningCoefficient:Number = NaN; + var collisionDetector:name_256 = gameKernel.method_112().name_246().collisionDetector; + filter.body = shooter; + if(collisionDetector.raycast(barrelOrigin,shotDirection,COLLISION_MASK,name_501.BIG_VALUE,filter,rayHit)) + { + distance = rayHit.t - barrelLength; + if(distance < 0) + { + distance = 0; + } + weakeningCoefficient = Number(this.weakening.name_554(distance)); + hitInfo.body = rayHit.primitive.body; + hitInfo.direction.copy(shotDirection); + hitInfo.normal.copy(rayHit.normal); + hitInfo.position.copy(rayHit.position); + hitInfo.distance = distance; + this.method_464(hitInfo.body,hitInfo.position,hitInfo.direction,weakeningCoefficient); + if(this.callback != null) + { + this.callback.name_555(shotId,hitInfo,null); + } + } + filter.body = null; + } + + public function method_465(target:name_271, targetHitPosition:name_194, hitDirection:name_194, distance:Number) : void + { + hitPosition.copy(targetHitPosition); + this.method_464(target,hitPosition,hitDirection,this.weakening.name_554(distance)); + } + + private function method_464(target:name_271, hitPosition:name_194, hitDirection:name_194, weakening:Number) : void + { + if(target != null) + { + target.name_556(hitPosition,hitDirection,this.impactForce * weakening); + } + this.effects.createEffects(hitPosition,weakening,0); + } + } +} + diff --git a/src/package_102/name_355.as b/src/package_102/name_355.as new file mode 100644 index 0000000..ad9d876 --- /dev/null +++ b/src/package_102/name_355.as @@ -0,0 +1,18 @@ +package package_102 +{ + import flash.utils.Dictionary; + + public interface name_355 + { + function name_360(param1:name_636) : void; + + function method_591(param1:String) : void; + + function dump(param1:String, param2:Array) : String; + + function get method_590() : Dictionary; + + function get method_592() : Vector.; + } +} + diff --git a/src/package_102/name_359.as b/src/package_102/name_359.as new file mode 100644 index 0000000..6c662a1 --- /dev/null +++ b/src/package_102/name_359.as @@ -0,0 +1,99 @@ +package package_102 +{ + import flash.utils.Dictionary; + import package_5.name_3; + import package_6.name_4; + + public class name_359 implements name_355 + { + private var osgi:name_3; + + private var var_548:Dictionary; + + private var var_547:Vector.; + + public function name_359(osgi:name_3) + { + super(); + this.osgi = osgi; + var console:name_4 = name_4(osgi.name_30(name_4)); + console.name_45("dump",this.method_594); + this.var_548 = new Dictionary(false); + this.var_547 = new Vector.(); + } + + public function name_360(dumper:name_636) : void + { + if(this.var_548[dumper.dumperName] != null) + { + throw new Error("Dumper is already registered"); + } + this.var_548[dumper.dumperName] = dumper; + this.var_547.push(dumper); + } + + public function method_591(dumperName:String) : void + { + var dumper:name_636 = this.var_548[dumperName]; + if(dumper != null) + { + this.var_547.splice(this.var_547.indexOf(dumper),1); + delete this.var_548[dumperName]; + } + } + + public function dump(dumperName:String, params:Array) : String + { + var dumper:name_636 = null; + var index:int = 0; + if(dumperName == null) + { + return this.method_593(); + } + if(dumperName.match(/^\d+$/) != null) + { + index = int(int(dumperName)); + if(index < this.var_547.length) + { + dumper = this.var_547[index]; + } + } + else + { + dumper = this.var_548[dumperName]; + } + if(dumper == null) + { + return "Dumper " + dumperName + " not found. Available dumpers: \n" + this.method_593(); + } + return dumper.dump(params); + } + + public function get method_590() : Dictionary + { + return this.var_548; + } + + public function get method_592() : Vector. + { + return this.var_547; + } + + private function method_593() : String + { + var s:String = ""; + for(var i:int = 0; i < this.var_547.length; i++) + { + s += i.toString() + " " + this.var_547[i].dumperName + "\n"; + } + return s; + } + + private function method_594(console:name_4, params:Array) : void + { + var dumperName:String = params.shift(); + console.name_145(this.dump(dumperName,params)); + } + } +} + diff --git a/src/package_102/name_636.as b/src/package_102/name_636.as new file mode 100644 index 0000000..8b685e7 --- /dev/null +++ b/src/package_102/name_636.as @@ -0,0 +1,10 @@ +package package_102 +{ + public interface name_636 + { + function dump(param1:Array) : String; + + function get dumperName() : String; + } +} + diff --git a/src/package_103/name_361.as b/src/package_103/name_361.as new file mode 100644 index 0000000..25ba2ac --- /dev/null +++ b/src/package_103/name_361.as @@ -0,0 +1,40 @@ +package package_103 +{ + import package_15.name_19; + import package_8.name_24; + + public class name_361 implements name_365 + { + private var urlParams:name_19; + + private var var_553:Vector.; + + public function name_361(urlParams:name_19, startupLibraryInfos:Vector.) + { + super(); + this.urlParams = urlParams; + this.var_553 = startupLibraryInfos; + } + + public function method_608(parameterName:String) : String + { + return this.urlParams.method_24(parameterName); + } + + public function get method_607() : Vector. + { + return this.urlParams.method_26; + } + + public function get startupLibraryInfos() : Vector. + { + return this.var_553; + } + + public function get method_609() : Boolean + { + return Boolean(this.urlParams.method_24("debug")); + } + } +} + diff --git a/src/package_103/name_365.as b/src/package_103/name_365.as new file mode 100644 index 0000000..4e3821b --- /dev/null +++ b/src/package_103/name_365.as @@ -0,0 +1,16 @@ +package package_103 +{ + import package_8.name_24; + + public interface name_365 + { + function method_608(param1:String) : String; + + function get method_607() : Vector.; + + function get startupLibraryInfos() : Vector.; + + function get method_609() : Boolean; + } +} + diff --git a/src/package_104/name_358.as b/src/package_104/name_358.as new file mode 100644 index 0000000..a22d81f --- /dev/null +++ b/src/package_104/name_358.as @@ -0,0 +1,32 @@ +package package_104 +{ + import flash.display.BitmapData; + + public interface name_358 + { + function method_599(param1:String, param2:String) : void; + + function method_601(param1:String, param2:BitmapData) : void; + + function method_595(param1:String, param2:Boolean) : void; + + function method_600(param1:String, param2:Number) : void; + + function method_598(param1:String, param2:int) : void; + + function method_597(param1:String, ... rest) : String; + + function method_604(param1:String) : BitmapData; + + function method_602(param1:String) : Boolean; + + function method_596(param1:String) : Number; + + function method_603(param1:String) : int; + + function get language() : String; + + function get defaultLanguage() : String; + } +} + diff --git a/src/package_104/name_370.as b/src/package_104/name_370.as new file mode 100644 index 0000000..f2f8c5d --- /dev/null +++ b/src/package_104/name_370.as @@ -0,0 +1,102 @@ +package package_104 +{ + import flash.display.BitmapData; + import flash.utils.Dictionary; + + public class name_370 implements name_358 + { + private var strings:Object = {}; + + private var images:Object = {}; + + private var var_550:Object = {}; + + private var numbers:Object = {}; + + private var var_549:Object = {}; + + private var var_552:String; + + private var var_551:String; + + public function name_370(language:String, defaultLanguage:String) + { + super(); + this.var_552 = language; + this.var_551 = defaultLanguage; + this.strings = new Dictionary(); + this.images = new Dictionary(); + } + + public function method_599(id:String, text:String) : void + { + this.strings[id] = text; + } + + public function method_601(id:String, image:BitmapData) : void + { + this.images[id] = image; + } + + public function method_595(id:String, value:Boolean) : void + { + this.var_550[id] = value; + } + + public function method_600(id:String, value:Number) : void + { + this.numbers[id] = value; + } + + public function method_598(id:String, value:int) : void + { + this.var_549[id] = value; + } + + public function method_597(id:String, ... vars) : String + { + var text:String = this.strings[id]; + if(text == null) + { + return id; + } + for(var i:int = 0; i < vars.length; ) + { + text = text.replace("%" + (i + 1),vars[i]); + i++; + } + return text; + } + + public function method_604(id:String) : BitmapData + { + return this.images[id]; + } + + public function method_602(id:String) : Boolean + { + return this.var_550[id]; + } + + public function method_596(id:String) : Number + { + return this.numbers[id]; + } + + public function method_603(id:String) : int + { + return this.var_549[id]; + } + + public function get language() : String + { + return this.var_552; + } + + public function get defaultLanguage() : String + { + return this.var_551; + } + } +} + diff --git a/src/package_105/name_363.as b/src/package_105/name_363.as new file mode 100644 index 0000000..92b658c --- /dev/null +++ b/src/package_105/name_363.as @@ -0,0 +1,29 @@ +package package_105 +{ + import flash.display.DisplayObjectContainer; + import flash.display.Stage; + + public interface name_363 + { + function get stage() : Stage; + + function get method_610() : DisplayObjectContainer; + + function get method_611() : DisplayObjectContainer; + + function get method_614() : DisplayObjectContainer; + + function get method_617() : DisplayObjectContainer; + + function get method_613() : DisplayObjectContainer; + + function get method_616() : DisplayObjectContainer; + + function get method_612() : DisplayObjectContainer; + + function get method_618() : DisplayObjectContainer; + + function get method_615() : DisplayObjectContainer; + } +} + diff --git a/src/package_105/name_364.as b/src/package_105/name_364.as new file mode 100644 index 0000000..83f5541 --- /dev/null +++ b/src/package_105/name_364.as @@ -0,0 +1,104 @@ +package package_105 +{ + import flash.display.DisplayObjectContainer; + import flash.display.Sprite; + import flash.display.Stage; + + public class name_364 implements name_363 + { + private var var_43:Stage; + + private var var_557:DisplayObjectContainer; + + private var var_565:DisplayObjectContainer; + + private var var_559:DisplayObjectContainer; + + private var var_558:DisplayObjectContainer; + + private var var_561:DisplayObjectContainer; + + private var var_564:DisplayObjectContainer; + + private var var_560:DisplayObjectContainer; + + private var var_563:DisplayObjectContainer; + + private var var_562:DisplayObjectContainer; + + public function name_364(rootContainer:DisplayObjectContainer) + { + super(); + this.var_43 = rootContainer.stage; + this.var_557 = rootContainer; + this.var_565 = this.method_619(); + this.var_559 = this.method_619(); + this.var_558 = this.method_619(); + this.var_561 = this.method_619(); + this.var_564 = this.method_619(); + this.var_560 = this.method_619(); + this.var_563 = this.method_619(); + this.var_562 = this.method_619(); + } + + private function method_619() : Sprite + { + var sprite:Sprite = new Sprite(); + sprite.mouseEnabled = false; + sprite.tabEnabled = false; + this.var_557.addChild(sprite); + return sprite; + } + + public function get stage() : Stage + { + return this.var_43; + } + + public function get method_610() : DisplayObjectContainer + { + return this.var_557; + } + + public function get method_611() : DisplayObjectContainer + { + return this.var_565; + } + + public function get method_614() : DisplayObjectContainer + { + return this.var_559; + } + + public function get method_617() : DisplayObjectContainer + { + return this.var_558; + } + + public function get method_613() : DisplayObjectContainer + { + return this.var_561; + } + + public function get method_616() : DisplayObjectContainer + { + return this.var_564; + } + + public function get method_612() : DisplayObjectContainer + { + return this.var_560; + } + + public function get method_618() : DisplayObjectContainer + { + return this.var_563; + } + + public function get method_615() : DisplayObjectContainer + { + return this.var_562; + } + } +} + diff --git a/src/package_106/name_357.as b/src/package_106/name_357.as new file mode 100644 index 0000000..28774d3 --- /dev/null +++ b/src/package_106/name_357.as @@ -0,0 +1,33 @@ +package package_106 +{ + import package_102.name_636; + import package_5.name_3; + + public class name_357 implements name_636 + { + private var osgi:name_3; + + public function name_357(osgi:name_3) + { + super(); + this.osgi = osgi; + } + + public function dump(params:Array) : String + { + var result:String = "Registered services\n"; + var services:Vector. = this.osgi.method_119; + for(var i:int = 0; i < services.length; i++) + { + result += " " + (i + 1).toString() + ": " + services[i] + "\n"; + } + return result; + } + + public function get dumperName() : String + { + return "service"; + } + } +} + diff --git a/src/package_106/name_367.as b/src/package_106/name_367.as new file mode 100644 index 0000000..a216f12 --- /dev/null +++ b/src/package_106/name_367.as @@ -0,0 +1,38 @@ +package package_106 +{ + import package_102.name_636; + import package_31.name_202; + import package_5.name_3; + + public class name_367 implements name_636 + { + private var osgi:name_3; + + public function name_367(osgi:name_3) + { + super(); + this.osgi = osgi; + } + + public function dump(params:Array) : String + { + var result:String = "======= Registered bundles ======\n"; + var bundles:Vector. = this.osgi.method_122; + for(var i:int = 0; i < bundles.length; i++) + { + if(i < 9) + { + result += " "; + } + result += int(i + 1).toString() + ". " + bundles[i].name + "\n"; + } + return result; + } + + public function get dumperName() : String + { + return "bundle"; + } + } +} + diff --git a/src/package_107/name_362.as b/src/package_107/name_362.as new file mode 100644 index 0000000..40bada4 --- /dev/null +++ b/src/package_107/name_362.as @@ -0,0 +1,16 @@ +package package_107 +{ + public interface name_362 + { + function get controlServerAddress() : String; + + function get controlServerPorts() : Vector.; + + function get resourcesRootUrl() : String; + + function method_605(param1:String) : int; + + function method_606(param1:String, param2:int) : void; + } +} + diff --git a/src/package_107/name_369.as b/src/package_107/name_369.as new file mode 100644 index 0000000..f1b9714 --- /dev/null +++ b/src/package_107/name_369.as @@ -0,0 +1,52 @@ +package package_107 +{ + import flash.net.SharedObject; + + public class name_369 implements name_362 + { + private static const SHARED_OBJECT_NAME:String = "connection"; + + private var var_555:String; + + private var var_554:Vector.; + + private var var_556:String; + + public function name_369(controlServerAddress:String, controlServerPorts:Vector., resourcesRootUrl:String) + { + super(); + this.var_555 = controlServerAddress; + this.var_554 = controlServerPorts; + this.var_556 = resourcesRootUrl; + } + + public function get controlServerAddress() : String + { + return this.var_555; + } + + public function get controlServerPorts() : Vector. + { + return this.var_554; + } + + public function get resourcesRootUrl() : String + { + return this.var_556; + } + + public function method_605(host:String) : int + { + var so:SharedObject = SharedObject.getLocal(SHARED_OBJECT_NAME,"/"); + return so.data[host]; + } + + public function method_606(host:String, port:int) : void + { + var so:SharedObject = SharedObject.getLocal(SHARED_OBJECT_NAME,"/"); + so.data[host] = port; + so.flush(); + } + } +} + diff --git a/src/package_108/name_373.as b/src/package_108/name_373.as new file mode 100644 index 0000000..46020a0 --- /dev/null +++ b/src/package_108/name_373.as @@ -0,0 +1,16 @@ +package package_108 +{ + public interface name_373 + { + function add(param1:Object) : void; + + function hasNext() : Boolean; + + function method_626() : Boolean; + + function next() : Object; + + function name_375() : Object; + } +} + diff --git a/src/package_108/name_374.as b/src/package_108/name_374.as new file mode 100644 index 0000000..05b9b6e --- /dev/null +++ b/src/package_108/name_374.as @@ -0,0 +1,106 @@ +package package_108 +{ + public class name_374 + { + internal var head:name_639; + + internal var tail:name_639; + + internal var var_568:int; + + public function name_374() + { + super(); + this.head = new name_639(); + this.tail = new name_639(); + this.head.next = this.tail; + this.tail.prev = this.head; + } + + public function listIterator() : name_373 + { + return new name_640(this); + } + + public function add(data:Object) : void + { + var newItem:name_639 = new name_639(); + newItem.data = data; + newItem.next = this.tail; + newItem.prev = this.tail.prev; + this.tail.prev = newItem; + newItem.prev.next = newItem; + ++this.var_568; + } + + public function remove(data:Object) : Boolean + { + var item:name_639 = this.method_628(data); + if(item != null) + { + this.method_627(item); + return true; + } + return false; + } + + public function contains(data:Object) : Boolean + { + return this.method_628(data) != null; + } + + public function clear() : void + { + var tmp:name_639 = null; + for(var item:name_639 = this.head.next; item != this.tail; ) + { + tmp = item; + item = item.next; + this.method_627(tmp); + } + } + + public function method_629() : Object + { + return this.head.next.data; + } + + public function poll() : Object + { + if(this.head.next == this.tail) + { + return null; + } + var data:Object = this.head.next.data; + this.method_627(this.head.next); + return data; + } + + private function method_628(data:Object) : name_639 + { + for(var item:name_639 = this.head.next; item != this.tail; ) + { + if(item.data == data) + { + return item; + } + item = item.next; + } + return null; + } + + private function method_627(item:name_639) : void + { + if(item == this.head || item == this.tail) + { + throw new Error("Cannot remove sentinels"); + } + item.prev.next = item.next; + item.next.prev = item.prev; + item.next = null; + item.prev = null; + ++this.var_568; + } + } +} + diff --git a/src/package_108/name_639.as b/src/package_108/name_639.as new file mode 100644 index 0000000..f89c629 --- /dev/null +++ b/src/package_108/name_639.as @@ -0,0 +1,17 @@ +package package_108 +{ + internal class name_639 + { + public var data:Object; + + public var next:name_639; + + public var prev:name_639; + + public function name_639() + { + super(); + } + } +} + diff --git a/src/package_108/name_640.as b/src/package_108/name_640.as new file mode 100644 index 0000000..6faf097 --- /dev/null +++ b/src/package_108/name_640.as @@ -0,0 +1,89 @@ +package package_108 +{ + import package_127.name_729; + import package_127.name_730; + + internal class name_640 implements name_373 + { + private var list:name_374; + + private var var_568:int; + + private var var_668:name_639; + + private var var_667:name_639; + + public function name_640(list:name_374) + { + super(); + this.list = list; + this.var_568 = list.var_568; + this.var_667 = list.head; + this.var_668 = this.var_667.next; + } + + public function add(data:Object) : void + { + this.method_811(); + var item:name_639 = new name_639(); + item.data = data; + item.prev = this.var_667; + item.next = this.var_668; + this.var_667.next = item; + this.var_668.prev = item; + this.var_667 = item; + this.method_812(); + } + + public function hasNext() : Boolean + { + this.method_811(); + return this.var_668 != this.list.tail; + } + + public function method_626() : Boolean + { + this.method_811(); + return this.var_667 != this.list.head; + } + + public function next() : Object + { + this.method_811(); + if(this.var_668 == this.list.tail) + { + throw new name_729(); + } + this.var_667 = this.var_668; + this.var_668 = this.var_668.next; + return this.var_667.data; + } + + public function name_375() : Object + { + this.method_811(); + if(this.var_667 == this.list.head) + { + throw new name_729(); + } + this.var_668 = this.var_667; + this.var_667 = this.var_667.prev; + return this.var_668.data; + } + + private function method_811() : void + { + if(this.var_568 != this.list.var_568) + { + throw new name_730(); + } + } + + private function method_812() : void + { + ++this.var_568; + this.list.var_568 = this.var_568; + } + } +} + diff --git a/src/package_109/name_377.as b/src/package_109/name_377.as new file mode 100644 index 0000000..c541977 --- /dev/null +++ b/src/package_109/name_377.as @@ -0,0 +1,223 @@ +package package_109 +{ + import package_46.Matrix4; + import package_46.name_194; + import package_76.name_235; + import package_90.name_386; + + public class name_377 extends name_235 + { + public var hs:name_194 = new name_194(); + + public function name_377(hs:name_194, collisionGroup:int, collisionMask:int) + { + super(BOX,collisionGroup,collisionMask); + this.hs.copy(hs); + } + + override public function calculateAABB() : name_386 + { + var t:Matrix4 = null; + var xx:Number = NaN; + var yy:Number = NaN; + var zz:Number = NaN; + t = transform; + xx = t.a < 0 ? -t.a : t.a; + yy = t.b < 0 ? -t.b : t.b; + zz = t.c < 0 ? -t.c : t.c; + aabb.maxX = this.hs.x * xx + this.hs.y * yy + this.hs.z * zz; + aabb.minX = -aabb.maxX; + xx = t.e < 0 ? -t.e : t.e; + yy = t.f < 0 ? -t.f : t.f; + zz = t.g < 0 ? -t.g : t.g; + aabb.maxY = this.hs.x * xx + this.hs.y * yy + this.hs.z * zz; + aabb.minY = -aabb.maxY; + xx = t.i < 0 ? -t.i : t.i; + yy = t.j < 0 ? -t.j : t.j; + zz = t.k < 0 ? -t.k : t.k; + aabb.maxZ = this.hs.x * xx + this.hs.y * yy + this.hs.z * zz; + aabb.minZ = -aabb.maxZ; + aabb.minX += t.d; + aabb.maxX += t.d; + aabb.minY += t.h; + aabb.maxY += t.h; + aabb.minZ += t.l; + aabb.maxZ += t.l; + return aabb; + } + + override public function copyFrom(source:name_235) : name_235 + { + var box:name_377 = source as name_377; + if(box == null) + { + return this; + } + super.copyFrom(box); + this.hs.copy(box.hs); + return this; + } + + override protected function createPrimitive() : name_235 + { + return new name_377(this.hs,collisionGroup,collisionMask); + } + + override public function raycast(origin:name_194, vector:name_194, epsilon:Number, normal:name_194) : Number + { + var t1:Number = NaN; + var t2:Number = NaN; + var vx:Number = NaN; + var tMin:Number = -1; + var tMax:Number = 1e+308; + vx = origin.x - transform.d; + var vy:Number = origin.y - transform.h; + var vz:Number = origin.z - transform.l; + var ox:Number = transform.a * vx + transform.e * vy + transform.i * vz; + var oy:Number = transform.b * vx + transform.f * vy + transform.j * vz; + var oz:Number = transform.c * vx + transform.g * vy + transform.k * vz; + vx = transform.a * vector.x + transform.e * vector.y + transform.i * vector.z; + vy = transform.b * vector.x + transform.f * vector.y + transform.j * vector.z; + vz = transform.c * vector.x + transform.g * vector.y + transform.k * vector.z; + if(vx < epsilon && vx > -epsilon) + { + if(ox < -this.hs.x || ox > this.hs.x) + { + return -1; + } + } + else + { + t1 = (-this.hs.x - ox) / vx; + t2 = (this.hs.x - ox) / vx; + if(t1 < t2) + { + if(t1 > tMin) + { + tMin = t1; + normal.x = -1; + normal.y = normal.z = 0; + } + if(t2 < tMax) + { + tMax = t2; + } + } + else + { + if(t2 > tMin) + { + tMin = t2; + normal.x = 1; + normal.y = normal.z = 0; + } + if(t1 < tMax) + { + tMax = t1; + } + } + if(tMax < tMin) + { + return -1; + } + } + if(vy < epsilon && vy > -epsilon) + { + if(oy < -this.hs.y || oy > this.hs.y) + { + return -1; + } + } + else + { + t1 = (-this.hs.y - oy) / vy; + t2 = (this.hs.y - oy) / vy; + if(t1 < t2) + { + if(t1 > tMin) + { + tMin = t1; + normal.y = -1; + normal.x = normal.z = 0; + } + if(t2 < tMax) + { + tMax = t2; + } + } + else + { + if(t2 > tMin) + { + tMin = t2; + normal.y = 1; + normal.x = normal.z = 0; + } + if(t1 < tMax) + { + tMax = t1; + } + } + if(tMax < tMin) + { + return -1; + } + } + if(vz < epsilon && vz > -epsilon) + { + if(oz < -this.hs.z || oz > this.hs.z) + { + return -1; + } + } + else + { + t1 = (-this.hs.z - oz) / vz; + t2 = (this.hs.z - oz) / vz; + if(t1 < t2) + { + if(t1 > tMin) + { + tMin = t1; + normal.z = -1; + normal.x = normal.y = 0; + } + if(t2 < tMax) + { + tMax = t2; + } + } + else + { + if(t2 > tMin) + { + tMin = t2; + normal.z = 1; + normal.x = normal.y = 0; + } + if(t1 < tMax) + { + tMax = t1; + } + } + if(tMax < tMin) + { + return -1; + } + } + vx = normal.x; + vy = normal.y; + vz = normal.z; + normal.x = transform.a * vx + transform.b * vy + transform.c * vz; + normal.y = transform.e * vx + transform.f * vy + transform.g * vz; + normal.z = transform.i * vx + transform.j * vy + transform.k * vz; + return tMin; + } + + override public function toString() : String + { + return "[CollisionBox hs=" + this.hs + "]"; + } + } +} + diff --git a/src/package_109/name_378.as b/src/package_109/name_378.as new file mode 100644 index 0000000..7228041 --- /dev/null +++ b/src/package_109/name_378.as @@ -0,0 +1,268 @@ +package package_109 +{ + import package_46.name_194; + import package_76.name_235; + import package_90.name_386; + + public class name_378 extends name_235 + { + public var v0:name_194 = new name_194(); + + public var v1:name_194 = new name_194(); + + public var v2:name_194 = new name_194(); + + public var e0:name_194 = new name_194(); + + public var e1:name_194 = new name_194(); + + public var e2:name_194 = new name_194(); + + public function name_378(v0:name_194, v1:name_194, v2:name_194, collisionGroup:int, collisionMask:int) + { + super(TRIANGLE,collisionGroup,collisionMask); + this.method_630(v0,v1,v2); + } + + override public function calculateAABB() : name_386 + { + var a:Number = NaN; + var b:Number = NaN; + var aa:int = 0; + var eps_c:Number = 0.005 * transform.c; + var eps_g:Number = 0.005 * transform.g; + var eps_k:Number = 0.005 * transform.k; + a = this.v0.x * transform.a + this.v0.y * transform.b; + aabb.minX = aabb.maxX = a + eps_c; + b = a - eps_c; + if(b > aabb.maxX) + { + aabb.maxX = b; + } + else if(b < aabb.minX) + { + aabb.minX = b; + } + a = this.v0.x * transform.e + this.v0.y * transform.f; + aabb.minY = aabb.maxY = a + eps_g; + b = a - eps_g; + if(b > aabb.maxY) + { + aabb.maxY = b; + } + else if(b < aabb.minY) + { + aabb.minY = b; + } + a = this.v0.x * transform.i + this.v0.y * transform.j; + aabb.minZ = aabb.maxZ = a + eps_k; + b = a - eps_k; + if(b > aabb.maxZ) + { + aabb.maxZ = b; + } + else if(b < aabb.minZ) + { + aabb.minZ = b; + } + a = this.v1.x * transform.a + this.v1.y * transform.b; + b = a + eps_c; + if(b > aabb.maxX) + { + aabb.maxX = b; + } + else if(b < aabb.minX) + { + aabb.minX = b; + } + b = a - eps_c; + if(b > aabb.maxX) + { + aabb.maxX = b; + } + else if(b < aabb.minX) + { + aabb.minX = b; + } + a = this.v1.x * transform.e + this.v1.y * transform.f; + b = a + eps_g; + if(b > aabb.maxY) + { + aabb.maxY = b; + } + else if(b < aabb.minY) + { + aabb.minY = b; + } + b = a - eps_g; + if(b > aabb.maxY) + { + aabb.maxY = b; + } + else if(b < aabb.minY) + { + aabb.minY = b; + } + a = this.v1.x * transform.i + this.v1.y * transform.j; + b = a + eps_k; + if(b > aabb.maxZ) + { + aabb.maxZ = b; + } + else if(b < aabb.minZ) + { + aabb.minZ = b; + } + b = a - eps_k; + if(b > aabb.maxZ) + { + aabb.maxZ = b; + } + else if(b < aabb.minZ) + { + aabb.minZ = b; + } + a = this.v2.x * transform.a + this.v2.y * transform.b; + b = a + eps_c; + if(b > aabb.maxX) + { + aabb.maxX = b; + } + else if(b < aabb.minX) + { + aabb.minX = b; + } + b = a - eps_c; + if(b > aabb.maxX) + { + aabb.maxX = b; + } + else if(b < aabb.minX) + { + aabb.minX = b; + } + a = this.v2.x * transform.e + this.v2.y * transform.f; + b = a + eps_g; + if(b > aabb.maxY) + { + aabb.maxY = b; + } + else if(b < aabb.minY) + { + aabb.minY = b; + } + b = a - eps_g; + if(b > aabb.maxY) + { + aabb.maxY = b; + } + else if(b < aabb.minY) + { + aabb.minY = b; + } + a = this.v2.x * transform.i + this.v2.y * transform.j; + b = a + eps_k; + if(b > aabb.maxZ) + { + aabb.maxZ = b; + } + else if(b < aabb.minZ) + { + aabb.minZ = b; + } + b = a - eps_k; + if(b > aabb.maxZ) + { + aabb.maxZ = b; + } + else if(b < aabb.minZ) + { + aabb.minZ = b; + } + aabb.minX += transform.d; + aabb.maxX += transform.d; + aabb.minY += transform.h; + aabb.maxY += transform.h; + aabb.minZ += transform.l; + aabb.maxZ += transform.l; + if(Boolean(isNaN(aabb.minX)) || Boolean(isNaN(aabb.minY)) || Boolean(isNaN(aabb.minZ)) || Boolean(isNaN(aabb.maxX)) || Boolean(isNaN(aabb.maxY)) || Boolean(isNaN(aabb.maxZ))) + { + aa = 1; + trace(aabb); + } + return aabb; + } + + override public function raycast(origin:name_194, vector:name_194, epsilon:Number, normal:name_194) : Number + { + var t:Number = NaN; + var vz:Number = vector.x * transform.c + vector.y * transform.g + vector.z * transform.k; + if(vz < epsilon && vz > -epsilon) + { + return -1; + } + var tx:Number = origin.x - transform.d; + var ty:Number = origin.y - transform.h; + var tz:Number = origin.z - transform.l; + var oz:Number = tx * transform.c + ty * transform.g + tz * transform.k; + t = -oz / vz; + if(t < 0) + { + return -1; + } + var ox:Number = tx * transform.a + ty * transform.e + tz * transform.i; + var oy:Number = tx * transform.b + ty * transform.f + tz * transform.j; + tx = ox + t * (vector.x * transform.a + vector.y * transform.e + vector.z * transform.i); + ty = oy + t * (vector.x * transform.b + vector.y * transform.f + vector.z * transform.j); + tz = oz + t * vz; + if(this.e0.x * (ty - this.v0.y) - this.e0.y * (tx - this.v0.x) < 0 || this.e1.x * (ty - this.v1.y) - this.e1.y * (tx - this.v1.x) < 0 || this.e2.x * (ty - this.v2.y) - this.e2.y * (tx - this.v2.x) < 0) + { + return -1; + } + normal.x = transform.c; + normal.y = transform.g; + normal.z = transform.k; + return t; + } + + override public function copyFrom(source:name_235) : name_235 + { + super.copyFrom(source); + var tri:name_378 = source as name_378; + if(tri != null) + { + this.v0.copy(tri.v0); + this.v1.copy(tri.v1); + this.v2.copy(tri.v2); + this.e0.copy(tri.e0); + this.e1.copy(tri.e1); + this.e2.copy(tri.e2); + } + return this; + } + + override public function toString() : String + { + return "[CollisionTriangle v0=" + this.v0 + ", v1=" + this.v1 + ", v2=" + this.v2 + "]"; + } + + override protected function createPrimitive() : name_235 + { + return new name_378(this.v0,this.v1,this.v2,collisionGroup,collisionMask); + } + + private function method_630(v0:name_194, v1:name_194, v2:name_194) : void + { + this.v0.copy(v0); + this.v1.copy(v1); + this.v2.copy(v2); + this.e0.method_366(v1,v0); + this.e0.normalize(); + this.e1.method_366(v2,v1); + this.e1.normalize(); + this.e2.method_366(v0,v2); + this.e2.normalize(); + } + } +} + diff --git a/src/package_109/name_381.as b/src/package_109/name_381.as new file mode 100644 index 0000000..effd6cf --- /dev/null +++ b/src/package_109/name_381.as @@ -0,0 +1,107 @@ +package package_109 +{ + import package_46.Matrix4; + import package_46.name_194; + import package_76.name_235; + import package_90.name_386; + + public class name_381 extends name_235 + { + private static const EPSILON:Number = 0.005; + + public var hs:name_194 = new name_194(); + + public var var_572:Boolean = true; + + public function name_381(hs:name_194, collisionGroup:int, collisionMask:int) + { + super(RECT,collisionGroup,collisionMask); + this.hs.copy(hs); + } + + override public function calculateAABB() : name_386 + { + var t:Matrix4 = null; + t = transform; + var xx:Number = t.a < 0 ? -t.a : t.a; + var yy:Number = t.b < 0 ? -t.b : t.b; + var zz:Number = t.c < 0 ? -t.c : t.c; + aabb.maxX = this.hs.x * xx + this.hs.y * yy + EPSILON * zz; + aabb.minX = -aabb.maxX; + xx = t.e < 0 ? -t.e : t.e; + yy = t.f < 0 ? -t.f : t.f; + zz = t.g < 0 ? -t.g : t.g; + aabb.maxY = this.hs.x * xx + this.hs.y * yy + EPSILON * zz; + aabb.minY = -aabb.maxY; + xx = t.i < 0 ? -t.i : t.i; + yy = t.j < 0 ? -t.j : t.j; + zz = t.k < 0 ? -t.k : t.k; + aabb.maxZ = this.hs.x * xx + this.hs.y * yy + EPSILON * zz; + aabb.minZ = -aabb.maxZ; + aabb.minX += t.d; + aabb.maxX += t.d; + aabb.minY += t.h; + aabb.maxY += t.h; + aabb.minZ += t.l; + aabb.maxZ += t.l; + return aabb; + } + + override public function copyFrom(source:name_235) : name_235 + { + var rect:name_381 = source as name_381; + if(rect == null) + { + return this; + } + super.copyFrom(rect); + this.hs.copy(rect.hs); + return this; + } + + override public function toString() : String + { + return "[CollisionRect hs=" + this.hs + "]"; + } + + override protected function createPrimitive() : name_235 + { + return new name_381(this.hs,collisionGroup,collisionMask); + } + + override public function raycast(origin:name_194, vector:name_194, threshold:Number, normal:name_194) : Number + { + var t:Number = NaN; + var vx:Number = origin.x - transform.d; + var vy:Number = origin.y - transform.h; + var vz:Number = origin.z - transform.l; + var ox:Number = transform.a * vx + transform.e * vy + transform.i * vz; + var oy:Number = transform.b * vx + transform.f * vy + transform.j * vz; + var oz:Number = transform.c * vx + transform.g * vy + transform.k * vz; + vx = transform.a * vector.x + transform.e * vector.y + transform.i * vector.z; + vy = transform.b * vector.x + transform.f * vector.y + transform.j * vector.z; + vz = transform.c * vector.x + transform.g * vector.y + transform.k * vector.z; + if(vz > -threshold && vz < threshold) + { + return -1; + } + t = -oz / vz; + if(t < 0) + { + return -1; + } + ox += vx * t; + oy += vy * t; + oz = 0; + if(ox < -this.hs.x - threshold || ox > this.hs.x + threshold || oy < -this.hs.y - threshold || oy > this.hs.y + threshold) + { + return -1; + } + normal.x = transform.c; + normal.y = transform.g; + normal.z = transform.k; + return t; + } + } +} + diff --git a/src/package_109/name_767.as b/src/package_109/name_767.as new file mode 100644 index 0000000..01654b2 --- /dev/null +++ b/src/package_109/name_767.as @@ -0,0 +1,65 @@ +package package_109 +{ + import package_46.name_194; + import package_76.name_235; + import package_90.name_386; + + public class name_767 extends name_235 + { + public var r:Number = 0; + + public function name_767(r:Number, collisionGroup:int, collisionMask:int) + { + super(SPHERE,collisionGroup,collisionMask); + this.r = r; + } + + override public function calculateAABB() : name_386 + { + aabb.maxX = transform.d + this.r; + aabb.minX = transform.d - this.r; + aabb.maxY = transform.h + this.r; + aabb.minY = transform.h - this.r; + aabb.maxZ = transform.l + this.r; + aabb.minZ = transform.l - this.r; + return aabb; + } + + override public function raycast(origin:name_194, vector:name_194, threshold:Number, normal:name_194) : Number + { + var px:Number = origin.x - transform.d; + var py:Number = origin.y - transform.h; + var pz:Number = origin.z - transform.l; + var k:Number = vector.x * px + vector.y * py + vector.z * pz; + if(k > 0) + { + return -1; + } + var a:Number = vector.x * vector.x + vector.y * vector.y + vector.z * vector.z; + var D:Number = k * k - a * (px * px + py * py + pz * pz - this.r * this.r); + if(D < 0) + { + return -1; + } + return -(k + Math.sqrt(D)) / a; + } + + override public function copyFrom(source:name_235) : name_235 + { + var sphere:name_767 = source as name_767; + if(sphere == null) + { + return this; + } + super.copyFrom(sphere); + this.r = sphere.r; + return this; + } + + override protected function createPrimitive() : name_235 + { + return new name_767(this.r,collisionGroup,collisionMask); + } + } +} + diff --git a/src/package_11/name_16.as b/src/package_11/name_16.as new file mode 100644 index 0000000..eb6bf16 --- /dev/null +++ b/src/package_11/name_16.as @@ -0,0 +1,209 @@ +package package_11 +{ + import flash.display.DisplayObjectContainer; + import flash.display.Stage; + import flash.events.KeyboardEvent; + import flash.ui.Keyboard; + import package_102.name_355; + import package_102.name_359; + import package_103.name_361; + import package_103.name_365; + import package_104.name_358; + import package_104.name_370; + import package_105.name_363; + import package_105.name_364; + import package_106.name_357; + import package_106.name_367; + import package_107.name_362; + import package_107.name_369; + import package_15.name_19; + import package_31.name_366; + import package_39.name_160; + import package_39.name_368; + import package_5.name_3; + import package_6.name_354; + import package_6.name_356; + import package_6.name_4; + import package_8.class_16; + import package_8.name_24; + import package_8.name_25; + + public class name_16 implements class_16 + { + private var osgi:name_3; + + private var clientLog:name_160; + + private var console:name_354; + + private var var_83:KeyboardShortcut; + + private var var_84:KeyboardShortcut; + + public function name_16() + { + super(); + } + + public function start(rootContainer:DisplayObjectContainer, urlParams:name_19, libraryInfos:Vector., connectionParameters:name_25, startupLogStrings:Vector.) : void + { + var libraryInfo:name_24 = null; + this.osgi = name_3.name_8(); + this.method_191(urlParams,startupLogStrings); + this.method_6(rootContainer.stage,urlParams); + this.osgi.method_116(name_365,new name_361(urlParams,libraryInfos)); + this.osgi.method_116(name_363,new name_364(rootContainer)); + this.osgi.method_116(name_362,new name_369(connectionParameters.serverAddress,connectionParameters.serverPorts,connectionParameters.resourcesRootURL)); + var language:String = urlParams.method_25("lang","ru"); + this.osgi.method_116(name_358,new name_370(language,"en")); + var dumpService:name_355 = new name_359(this.osgi); + this.osgi.method_116(name_355,dumpService); + dumpService.name_360(new name_367(this.osgi)); + dumpService.name_360(new name_357(this.osgi)); + for each(libraryInfo in libraryInfos) + { + this.osgi.method_121(new name_366(libraryInfo.manifestProperties)); + } + } + + private function method_191(urlParams:name_19, startupLogStrings:Vector.) : void + { + var s:String = null; + var logChannelBufferSize:int = int(int(urlParams.method_25("log_channel_buffer_size","1000"))); + this.clientLog = new name_368(logChannelBufferSize); + name_3.clientLog = this.clientLog; + this.osgi.method_116(name_160,this.clientLog); + for each(s in startupLogStrings) + { + this.clientLog.log("startup",s); + } + } + + private function method_6(stage:Stage, urlParams:name_19) : void + { + var channelName:String = null; + this.console = new name_354(stage,50,100,1,1); + this.osgi.method_116(name_4,this.console); + var consoleParams:String = urlParams.method_24("console"); + if(Boolean(consoleParams)) + { + this.method_192(stage,this.console,consoleParams); + } + var clientLogConnector:name_356 = new name_356(this.clientLog,this.console); + this.console.name_45("log",clientLogConnector.name_371); + var logChannels:String = urlParams.method_24("showlog"); + if(Boolean(logChannels)) + { + if(logChannels == "all") + { + this.clientLog.addLogListener(clientLogConnector); + } + else + { + for each(channelName in logChannels.split(",")) + { + this.clientLog.addLogChannelListener(channelName,clientLogConnector); + } + } + } + } + + private function method_192(stage:Stage, console:name_354, consoleParams:String) : void + { + var pair:String = null; + var parts:Array = null; + var pairs:Array = consoleParams.split(","); + var params:Object = {}; + for each(pair in pairs) + { + parts = pair.split(":"); + params[parts[0]] = parts[1]; + } + if(params["show"] != null) + { + console.show(); + } + if(params["ha"] != null) + { + console.method_138 = int(params["ha"]); + } + if(params["va"] != null) + { + console.method_137 = int(params["va"]); + } + if(params["w"] != null) + { + console.width = int(params["w"]); + } + if(params["h"] != null) + { + console.height = int(params["h"]); + } + if(params["alpha"] != null) + { + console.method_139("con_alpha " + params["alpha"]); + } + this.var_83 = this.method_190(params["hsw"],Keyboard.LEFT,false,true,true); + this.var_84 = this.method_190(params["vsw"],Keyboard.UP,false,true,true); + stage.addEventListener(KeyboardEvent.KEY_DOWN,this.method_193,true); + } + + private function method_190(s:String, defKey:int, defAlt:Boolean, defCtrl:Boolean, defShift:Boolean) : KeyboardShortcut + { + if(s == null) + { + return new KeyboardShortcut(defKey,defAlt,defCtrl,defShift); + } + return new KeyboardShortcut(parseInt(s),s.indexOf("a") > -1,s.indexOf("c") > -1,s.indexOf("s") > -1); + } + + private function method_193(e:KeyboardEvent) : void + { + switch(e.keyCode) + { + case this.var_83.keyCode: + if(this.var_83.altKey == e.altKey && this.var_83.shiftKey == e.shiftKey && this.var_83.ctrlKey == e.ctrlKey) + { + if(this.console.method_138 == 1) + { + this.console.method_138 = 2; + break; + } + this.console.method_138 = 1; + } + break; + case this.var_84.keyCode: + if(this.var_84.altKey == e.altKey && this.var_84.shiftKey == e.shiftKey && this.var_84.ctrlKey == e.ctrlKey) + { + if(this.console.method_137 == 1) + { + this.console.method_137 = 2; + break; + } + this.console.method_137 = 1; + break; + } + } + } + } +} + +class KeyboardShortcut +{ + public var keyCode:int; + + public var altKey:Boolean; + + public var ctrlKey:Boolean; + + public var shiftKey:Boolean; + + public function KeyboardShortcut(keyCode:int, altKey:Boolean, ctrlKey:Boolean, shiftKey:Boolean) + { + super(); + this.keyCode = keyCode; + this.altKey = altKey; + this.ctrlKey = ctrlKey; + this.shiftKey = shiftKey; + } +} diff --git a/src/package_11/name_406.as b/src/package_11/name_406.as new file mode 100644 index 0000000..4827ee7 --- /dev/null +++ b/src/package_11/name_406.as @@ -0,0 +1,13 @@ +package package_11 +{ + public class name_406 + { + public static const version:String = "8.16.0"; + + public function name_406() + { + super(); + } + } +} + diff --git a/src/package_110/name_389.as b/src/package_110/name_389.as new file mode 100644 index 0000000..4196f60 --- /dev/null +++ b/src/package_110/name_389.as @@ -0,0 +1,679 @@ +package package_110 +{ + import alternativa.engine3d.alternativa3d; + import flash.geom.Vector3D; + import flash.utils.ByteArray; + import flash.utils.Dictionary; + import package_21.*; + import package_28.name_119; + + use namespace alternativa3d; + + public class name_389 + { + public var radiusX:Number; + + public var radiusY:Number; + + public var radiusZ:Number; + + public var threshold:Number = 0.001; + + private var matrix:name_139 = new name_139(); + + private var var_576:name_139 = new name_139(); + + alternativa3d var geometries:Vector. = new Vector.(); + + alternativa3d var name_400:Vector. = new Vector.(); + + private var vertices:Vector. = new Vector.(); + + private var var_581:Vector. = new Vector.(); + + private var indices:Vector. = new Vector.(); + + private var numTriangles:int; + + private var radius:Number; + + private var src:Vector3D = new Vector3D(); + + private var var_574:Vector3D = new Vector3D(); + + private var dest:Vector3D = new Vector3D(); + + private var var_575:Vector3D = new Vector3D(); + + private var var_573:Vector3D = new Vector3D(); + + alternativa3d var sphere:Vector3D = new Vector3D(); + + private var var_577:Vector3D = new Vector3D(); + + private var var_579:Vector3D = new Vector3D(); + + private var var_580:Vector3D = new Vector3D(); + + private var var_578:Vector3D = new Vector3D(); + + public function name_389(radiusX:Number, radiusY:Number, radiusZ:Number) + { + super(); + this.radiusX = radiusX; + this.radiusY = radiusY; + this.radiusZ = radiusZ; + } + + alternativa3d function name_396(transform:name_139) : void + { + this.alternativa3d::sphere.x = transform.d; + this.alternativa3d::sphere.y = transform.h; + this.alternativa3d::sphere.z = transform.l; + var sax:Number = transform.a * this.var_577.x + transform.b * this.var_577.y + transform.c * this.var_577.z + transform.d; + var say:Number = transform.e * this.var_577.x + transform.f * this.var_577.y + transform.g * this.var_577.z + transform.h; + var saz:Number = transform.i * this.var_577.x + transform.j * this.var_577.y + transform.k * this.var_577.z + transform.l; + var sbx:Number = transform.a * this.var_579.x + transform.b * this.var_579.y + transform.c * this.var_579.z + transform.d; + var sby:Number = transform.e * this.var_579.x + transform.f * this.var_579.y + transform.g * this.var_579.z + transform.h; + var sbz:Number = transform.i * this.var_579.x + transform.j * this.var_579.y + transform.k * this.var_579.z + transform.l; + var scx:Number = transform.a * this.var_580.x + transform.b * this.var_580.y + transform.c * this.var_580.z + transform.d; + var scy:Number = transform.e * this.var_580.x + transform.f * this.var_580.y + transform.g * this.var_580.z + transform.h; + var scz:Number = transform.i * this.var_580.x + transform.j * this.var_580.y + transform.k * this.var_580.z + transform.l; + var sdx:Number = transform.a * this.var_578.x + transform.b * this.var_578.y + transform.c * this.var_578.z + transform.d; + var sdy:Number = transform.e * this.var_578.x + transform.f * this.var_578.y + transform.g * this.var_578.z + transform.h; + var sdz:Number = transform.i * this.var_578.x + transform.j * this.var_578.y + transform.k * this.var_578.z + transform.l; + var dx:Number = sax - this.alternativa3d::sphere.x; + var dy:Number = say - this.alternativa3d::sphere.y; + var dz:Number = saz - this.alternativa3d::sphere.z; + this.alternativa3d::sphere.w = dx * dx + dy * dy + dz * dz; + dx = sbx - this.alternativa3d::sphere.x; + dy = sby - this.alternativa3d::sphere.y; + dz = sbz - this.alternativa3d::sphere.z; + var dxyz:Number = dx * dx + dy * dy + dz * dz; + if(dxyz > this.alternativa3d::sphere.w) + { + this.alternativa3d::sphere.w = dxyz; + } + dx = scx - this.alternativa3d::sphere.x; + dy = scy - this.alternativa3d::sphere.y; + dz = scz - this.alternativa3d::sphere.z; + dxyz = dx * dx + dy * dy + dz * dz; + if(dxyz > this.alternativa3d::sphere.w) + { + this.alternativa3d::sphere.w = dxyz; + } + dx = sdx - this.alternativa3d::sphere.x; + dy = sdy - this.alternativa3d::sphere.y; + dz = sdz - this.alternativa3d::sphere.z; + dxyz = dx * dx + dy * dy + dz * dz; + if(dxyz > this.alternativa3d::sphere.w) + { + this.alternativa3d::sphere.w = dxyz; + } + this.alternativa3d::sphere.w = Math.sqrt(this.alternativa3d::sphere.w); + } + + private function method_639(source:Vector3D, displacement:Vector3D, object:name_78, excludedObjects:Dictionary) : void + { + var j:int = 0; + var intersects:Boolean = false; + var geometry:name_119 = null; + var transform:name_139 = null; + var geometryIndicesLength:int = 0; + var vBuffer:name_432 = null; + var geometryIndices:Vector. = null; + var attributesOffset:int = 0; + var numMappings:int = 0; + var data:ByteArray = null; + var vx:Number = NaN; + var vy:Number = NaN; + var vz:Number = NaN; + var a:int = 0; + var index:int = 0; + var ax:Number = NaN; + var ay:Number = NaN; + var az:Number = NaN; + var b:int = 0; + var bx:Number = NaN; + var by:Number = NaN; + var bz:Number = NaN; + var c:int = 0; + var cx:Number = NaN; + var cy:Number = NaN; + var cz:Number = NaN; + var abx:Number = NaN; + var aby:Number = NaN; + var abz:Number = NaN; + var acx:Number = NaN; + var acy:Number = NaN; + var acz:Number = NaN; + var normalX:Number = NaN; + var normalY:Number = NaN; + var normalZ:Number = NaN; + var len:Number = NaN; + var offset:Number = NaN; + this.radius = this.radiusX; + if(this.radiusY > this.radius) + { + this.radius = this.radiusY; + } + if(this.radiusZ > this.radius) + { + this.radius = this.radiusZ; + } + this.matrix.compose(source.x,source.y,source.z,0,0,0,this.radiusX / this.radius,this.radiusY / this.radius,this.radiusZ / this.radius); + this.var_576.copy(this.matrix); + this.var_576.invert(); + this.src.x = 0; + this.src.y = 0; + this.src.z = 0; + this.var_574.x = this.var_576.a * displacement.x + this.var_576.b * displacement.y + this.var_576.c * displacement.z; + this.var_574.y = this.var_576.e * displacement.x + this.var_576.f * displacement.y + this.var_576.g * displacement.z; + this.var_574.z = this.var_576.i * displacement.x + this.var_576.j * displacement.y + this.var_576.k * displacement.z; + this.dest.x = this.src.x + this.var_574.x; + this.dest.y = this.src.y + this.var_574.y; + this.dest.z = this.src.z + this.var_574.z; + var rad:Number = this.radius + this.var_574.length; + this.var_577.x = -rad; + this.var_577.y = -rad; + this.var_577.z = -rad; + this.var_579.x = rad; + this.var_579.y = -rad; + this.var_579.z = -rad; + this.var_580.x = rad; + this.var_580.y = rad; + this.var_580.z = -rad; + this.var_578.x = -rad; + this.var_578.y = rad; + this.var_578.z = -rad; + if(excludedObjects == null || !excludedObjects[object]) + { + if(object.alternativa3d::transformChanged) + { + object.alternativa3d::composeTransforms(); + } + object.alternativa3d::globalToLocalTransform.combine(object.alternativa3d::inverseTransform,this.matrix); + intersects = true; + if(object.boundBox != null) + { + this.alternativa3d::name_396(object.alternativa3d::globalToLocalTransform); + intersects = Boolean(object.boundBox.alternativa3d::name_395(this.alternativa3d::sphere)); + } + if(intersects) + { + object.alternativa3d::localToGlobalTransform.combine(this.var_576,object.alternativa3d::transform); + object.alternativa3d::collectGeometry(this,excludedObjects); + } + if(object.alternativa3d::childrenList != null) + { + object.alternativa3d::collectChildrenGeometry(this,excludedObjects); + } + } + this.numTriangles = 0; + var indicesLength:int = 0; + var normalsLength:int = 0; + var mapOffset:int = 0; + var verticesLength:int = 0; + var geometriesLength:int = int(this.alternativa3d::geometries.length); + for(var i:int = 0; i < geometriesLength; i++) + { + geometry = this.alternativa3d::geometries[i]; + transform = this.alternativa3d::name_400[i]; + geometryIndicesLength = int(geometry.alternativa3d::_indices.length); + if(!(geometry.alternativa3d::_numVertices == 0 || geometryIndicesLength == 0)) + { + vBuffer = name_126.POSITION < geometry.alternativa3d::var_170.length ? geometry.alternativa3d::var_170[name_126.POSITION] : null; + if(vBuffer != null) + { + attributesOffset = int(geometry.alternativa3d::_attributesOffsets[name_126.POSITION]); + numMappings = int(vBuffer.attributes.length); + data = vBuffer.data; + for(j = 0; j < geometry.alternativa3d::_numVertices; j++) + { + data.position = 4 * (numMappings * j + attributesOffset); + vx = Number(data.readFloat()); + vy = Number(data.readFloat()); + vz = Number(data.readFloat()); + this.vertices[verticesLength] = transform.a * vx + transform.b * vy + transform.c * vz + transform.d; + verticesLength++; + this.vertices[verticesLength] = transform.e * vx + transform.f * vy + transform.g * vz + transform.h; + verticesLength++; + this.vertices[verticesLength] = transform.i * vx + transform.j * vy + transform.k * vz + transform.l; + verticesLength++; + } + } + geometryIndices = geometry.alternativa3d::_indices; + for(j = 0; j < geometryIndicesLength; ) + { + a = geometryIndices[j] + mapOffset; + j++; + index = a * 3; + ax = this.vertices[index]; + index++; + ay = this.vertices[index]; + index++; + az = this.vertices[index]; + b = geometryIndices[j] + mapOffset; + j++; + index = b * 3; + bx = this.vertices[index]; + index++; + by = this.vertices[index]; + index++; + bz = this.vertices[index]; + c = geometryIndices[j] + mapOffset; + j++; + index = c * 3; + cx = this.vertices[index]; + index++; + cy = this.vertices[index]; + index++; + cz = this.vertices[index]; + if(!(ax > rad && bx > rad && cx > rad || ax < -rad && bx < -rad && cx < -rad)) + { + if(!(ay > rad && by > rad && cy > rad || ay < -rad && by < -rad && cy < -rad)) + { + if(!(az > rad && bz > rad && cz > rad || az < -rad && bz < -rad && cz < -rad)) + { + abx = bx - ax; + aby = by - ay; + abz = bz - az; + acx = cx - ax; + acy = cy - ay; + acz = cz - az; + normalX = acz * aby - acy * abz; + normalY = acx * abz - acz * abx; + normalZ = acy * abx - acx * aby; + len = normalX * normalX + normalY * normalY + normalZ * normalZ; + if(len >= 0.001) + { + len = 1 / Math.sqrt(len); + normalX *= len; + normalY *= len; + normalZ *= len; + offset = ax * normalX + ay * normalY + az * normalZ; + if(!(offset > rad || offset < -rad)) + { + this.indices[indicesLength] = a; + indicesLength++; + this.indices[indicesLength] = b; + indicesLength++; + this.indices[indicesLength] = c; + indicesLength++; + this.var_581[normalsLength] = normalX; + normalsLength++; + this.var_581[normalsLength] = normalY; + normalsLength++; + this.var_581[normalsLength] = normalZ; + normalsLength++; + this.var_581[normalsLength] = offset; + normalsLength++; + ++this.numTriangles; + } + } + } + } + } + } + mapOffset += geometry.alternativa3d::_numVertices; + } + } + this.alternativa3d::geometries.length = 0; + this.alternativa3d::name_400.length = 0; + } + + public function method_642(source:Vector3D, displacement:Vector3D, object:name_78, excludedObjects:Dictionary = null) : Vector3D + { + var limit:int = 0; + var i:int = 0; + var offset:Number = NaN; + if(displacement.length <= this.threshold) + { + return source.clone(); + } + this.method_639(source,displacement,object,excludedObjects); + if(this.numTriangles > 0) + { + limit = 50; + for(i = 0; i < limit; ) + { + if(!this.method_640()) + { + break; + } + offset = this.radius + this.threshold + this.var_573.w - this.dest.x * this.var_573.x - this.dest.y * this.var_573.y - this.dest.z * this.var_573.z; + this.dest.x += this.var_573.x * offset; + this.dest.y += this.var_573.y * offset; + this.dest.z += this.var_573.z * offset; + this.src.x = this.var_575.x + this.var_573.x * (this.radius + this.threshold); + this.src.y = this.var_575.y + this.var_573.y * (this.radius + this.threshold); + this.src.z = this.var_575.z + this.var_573.z * (this.radius + this.threshold); + this.var_574.x = this.dest.x - this.src.x; + this.var_574.y = this.dest.y - this.src.y; + this.var_574.z = this.dest.z - this.src.z; + if(this.var_574.length < this.threshold) + { + break; + } + i++; + } + return new Vector3D(this.matrix.a * this.dest.x + this.matrix.b * this.dest.y + this.matrix.c * this.dest.z + this.matrix.d,this.matrix.e * this.dest.x + this.matrix.f * this.dest.y + this.matrix.g * this.dest.z + this.matrix.h,this.matrix.i * this.dest.x + this.matrix.j * this.dest.y + this.matrix.k * this.dest.z + this.matrix.l); + } + return new Vector3D(source.x + displacement.x,source.y + displacement.y,source.z + displacement.z); + } + + public function method_641(source:Vector3D, displacement:Vector3D, resCollisionPoint:Vector3D, resCollisionPlane:Vector3D, object:name_78, excludedObjects:Dictionary = null) : Boolean + { + var abx:Number = NaN; + var aby:Number = NaN; + var abz:Number = NaN; + var acx:Number = NaN; + var acy:Number = NaN; + var acz:Number = NaN; + var abx2:Number = NaN; + var aby2:Number = NaN; + var abz2:Number = NaN; + var acx2:Number = NaN; + var acy2:Number = NaN; + var acz2:Number = NaN; + if(displacement.length <= this.threshold) + { + return false; + } + this.method_639(source,displacement,object,excludedObjects); + if(this.numTriangles > 0) + { + if(this.method_640()) + { + resCollisionPoint.x = this.matrix.a * this.var_575.x + this.matrix.b * this.var_575.y + this.matrix.c * this.var_575.z + this.matrix.d; + resCollisionPoint.y = this.matrix.e * this.var_575.x + this.matrix.f * this.var_575.y + this.matrix.g * this.var_575.z + this.matrix.h; + resCollisionPoint.z = this.matrix.i * this.var_575.x + this.matrix.j * this.var_575.y + this.matrix.k * this.var_575.z + this.matrix.l; + if(this.var_573.x < this.var_573.y) + { + if(this.var_573.x < this.var_573.z) + { + abx = 0; + aby = -this.var_573.z; + abz = Number(this.var_573.y); + } + else + { + abx = -this.var_573.y; + aby = Number(this.var_573.x); + abz = 0; + } + } + else if(this.var_573.y < this.var_573.z) + { + abx = Number(this.var_573.z); + aby = 0; + abz = -this.var_573.x; + } + else + { + abx = -this.var_573.y; + aby = Number(this.var_573.x); + abz = 0; + } + acx = this.var_573.z * aby - this.var_573.y * abz; + acy = this.var_573.x * abz - this.var_573.z * abx; + acz = this.var_573.y * abx - this.var_573.x * aby; + abx2 = this.matrix.a * abx + this.matrix.b * aby + this.matrix.c * abz; + aby2 = this.matrix.e * abx + this.matrix.f * aby + this.matrix.g * abz; + abz2 = this.matrix.i * abx + this.matrix.j * aby + this.matrix.k * abz; + acx2 = this.matrix.a * acx + this.matrix.b * acy + this.matrix.c * acz; + acy2 = this.matrix.e * acx + this.matrix.f * acy + this.matrix.g * acz; + acz2 = this.matrix.i * acx + this.matrix.j * acy + this.matrix.k * acz; + resCollisionPlane.x = abz2 * acy2 - aby2 * acz2; + resCollisionPlane.y = abx2 * acz2 - abz2 * acx2; + resCollisionPlane.z = aby2 * acx2 - abx2 * acy2; + resCollisionPlane.normalize(); + resCollisionPlane.w = resCollisionPoint.x * resCollisionPlane.x + resCollisionPoint.y * resCollisionPlane.y + resCollisionPoint.z * resCollisionPlane.z; + return true; + } + return false; + } + return false; + } + + private function method_640() : Boolean + { + var index:int = 0; + var ax:Number = NaN; + var ay:Number = NaN; + var az:Number = NaN; + var bx:Number = NaN; + var by:Number = NaN; + var bz:Number = NaN; + var cx:Number = NaN; + var cy:Number = NaN; + var cz:Number = NaN; + var normalX:Number = NaN; + var normalY:Number = NaN; + var normalZ:Number = NaN; + var offset:Number = NaN; + var distance:Number = NaN; + var pointX:Number = NaN; + var pointY:Number = NaN; + var pointZ:Number = NaN; + var faceX:Number = NaN; + var faceY:Number = NaN; + var faceZ:Number = NaN; + var min:Number = NaN; + var inside:Boolean = false; + var k:int = 0; + var deltaX:Number = NaN; + var deltaY:Number = NaN; + var deltaZ:Number = NaN; + var t:Number = NaN; + var p1x:Number = NaN; + var p1y:Number = NaN; + var p1z:Number = NaN; + var p2x:Number = NaN; + var p2y:Number = NaN; + var p2z:Number = NaN; + var abx:Number = NaN; + var aby:Number = NaN; + var abz:Number = NaN; + var acx:Number = NaN; + var acy:Number = NaN; + var acz:Number = NaN; + var crx:Number = NaN; + var cry:Number = NaN; + var crz:Number = NaN; + var edgeLength:Number = NaN; + var edgeDistanceSqr:Number = NaN; + var acLen:Number = NaN; + var backX:Number = NaN; + var backY:Number = NaN; + var backZ:Number = NaN; + var deltaLength:Number = NaN; + var projectionLength:Number = NaN; + var projectionInsideLength:Number = NaN; + var time:Number = NaN; + var minTime:Number = 1; + var displacementLength:Number = Number(this.var_574.length); + var indicesLength:int = this.numTriangles * 3; + for(var i:int = 0,var j:int = 0; i < indicesLength; ) + { + index = this.indices[i] * 3; + i++; + ax = this.vertices[index]; + index++; + ay = this.vertices[index]; + index++; + az = this.vertices[index]; + index = this.indices[i] * 3; + i++; + bx = this.vertices[index]; + index++; + by = this.vertices[index]; + index++; + bz = this.vertices[index]; + index = this.indices[i] * 3; + i++; + cx = this.vertices[index]; + index++; + cy = this.vertices[index]; + index++; + cz = this.vertices[index]; + normalX = this.var_581[j]; + j++; + normalY = this.var_581[j]; + j++; + normalZ = this.var_581[j]; + j++; + offset = this.var_581[j]; + j++; + distance = this.src.x * normalX + this.src.y * normalY + this.src.z * normalZ - offset; + if(distance < this.radius) + { + pointX = this.src.x - normalX * distance; + pointY = this.src.y - normalY * distance; + pointZ = this.src.z - normalZ * distance; + } + else + { + t = (distance - this.radius) / (distance - this.dest.x * normalX - this.dest.y * normalY - this.dest.z * normalZ + offset); + pointX = this.src.x + this.var_574.x * t - normalX * this.radius; + pointY = this.src.y + this.var_574.y * t - normalY * this.radius; + pointZ = this.src.z + this.var_574.z * t - normalZ * this.radius; + } + min = 1e+22; + inside = true; + for(k = 0; k < 3; ) + { + if(k == 0) + { + p1x = ax; + p1y = ay; + p1z = az; + p2x = bx; + p2y = by; + p2z = bz; + } + else if(k == 1) + { + p1x = bx; + p1y = by; + p1z = bz; + p2x = cx; + p2y = cy; + p2z = cz; + } + else + { + p1x = cx; + p1y = cy; + p1z = cz; + p2x = ax; + p2y = ay; + p2z = az; + } + abx = p2x - p1x; + aby = p2y - p1y; + abz = p2z - p1z; + acx = pointX - p1x; + acy = pointY - p1y; + acz = pointZ - p1z; + crx = acz * aby - acy * abz; + cry = acx * abz - acz * abx; + crz = acy * abx - acx * aby; + if(crx * normalX + cry * normalY + crz * normalZ < 0) + { + edgeLength = abx * abx + aby * aby + abz * abz; + edgeDistanceSqr = (crx * crx + cry * cry + crz * crz) / edgeLength; + if(edgeDistanceSqr < min) + { + edgeLength = Number(Math.sqrt(edgeLength)); + abx /= edgeLength; + aby /= edgeLength; + abz /= edgeLength; + t = abx * acx + aby * acy + abz * acz; + if(t < 0) + { + acLen = acx * acx + acy * acy + acz * acz; + if(acLen < min) + { + min = acLen; + faceX = p1x; + faceY = p1y; + faceZ = p1z; + } + } + else if(t > edgeLength) + { + acx = pointX - p2x; + acy = pointY - p2y; + acz = pointZ - p2z; + acLen = acx * acx + acy * acy + acz * acz; + if(acLen < min) + { + min = acLen; + faceX = p2x; + faceY = p2y; + faceZ = p2z; + } + } + else + { + min = edgeDistanceSqr; + faceX = p1x + abx * t; + faceY = p1y + aby * t; + faceZ = p1z + abz * t; + } + } + inside = false; + } + k++; + } + if(inside) + { + faceX = pointX; + faceY = pointY; + faceZ = pointZ; + } + deltaX = this.src.x - faceX; + deltaY = this.src.y - faceY; + deltaZ = this.src.z - faceZ; + if(deltaX * this.var_574.x + deltaY * this.var_574.y + deltaZ * this.var_574.z <= 0) + { + backX = -this.var_574.x / displacementLength; + backY = -this.var_574.y / displacementLength; + backZ = -this.var_574.z / displacementLength; + deltaLength = deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ; + projectionLength = deltaX * backX + deltaY * backY + deltaZ * backZ; + projectionInsideLength = this.radius * this.radius - deltaLength + projectionLength * projectionLength; + if(projectionInsideLength > 0) + { + time = (projectionLength - Math.sqrt(projectionInsideLength)) / displacementLength; + if(time < minTime) + { + minTime = time; + this.var_575.x = faceX; + this.var_575.y = faceY; + this.var_575.z = faceZ; + if(inside) + { + this.var_573.x = normalX; + this.var_573.y = normalY; + this.var_573.z = normalZ; + this.var_573.w = offset; + } + else + { + deltaLength = Number(Math.sqrt(deltaLength)); + this.var_573.x = deltaX / deltaLength; + this.var_573.y = deltaY / deltaLength; + this.var_573.z = deltaZ / deltaLength; + this.var_573.w = this.var_575.x * this.var_573.x + this.var_575.y * this.var_573.y + this.var_575.z * this.var_573.z; + } + } + } + } + } + return minTime < 1; + } + } +} + diff --git a/src/package_111/name_456.as b/src/package_111/name_456.as new file mode 100644 index 0000000..e173d3f --- /dev/null +++ b/src/package_111/name_456.as @@ -0,0 +1,36 @@ +package package_111 +{ + import flash.utils.ByteArray; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class name_456 implements name_152 + { + public function name_456() + { + super(); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var bytes:ByteArray = ByteArray(object); + name_443.name_446(protocolBuffer,bytes.length); + protocolBuffer.name_483.writeBytes(bytes); + } + + public function method_296(protocolBuffer:name_442) : Object + { + var size:int = name_443.name_445(protocolBuffer); + var bytes:ByteArray = new ByteArray(); + protocolBuffer.reader.readBytes(bytes,0,size); + return bytes; + } + + public function init(protocol:name_163) : void + { + } + } +} + diff --git a/src/package_111/name_457.as b/src/package_111/name_457.as new file mode 100644 index 0000000..335ad62 --- /dev/null +++ b/src/package_111/name_457.as @@ -0,0 +1,36 @@ +package package_111 +{ + import flash.utils.ByteArray; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class name_457 implements name_152 + { + public function name_457() + { + super(); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var bytes:ByteArray = new ByteArray(); + bytes.writeUTFBytes(String(object)); + var length:int = int(bytes.length); + name_443.name_446(protocolBuffer,length); + protocolBuffer.name_483.writeBytes(bytes,0,length); + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + return protocolBuffer.reader.readUTFBytes(length); + } + + public function init(protocol:name_163) : void + { + } + } +} + diff --git a/src/package_112/class_33.as b/src/package_112/class_33.as new file mode 100644 index 0000000..dfdf961 --- /dev/null +++ b/src/package_112/class_33.as @@ -0,0 +1,10 @@ +package package_112 +{ + import package_71.name_333; + + public interface class_33 + { + function method_648(param1:String, param2:XML, param3:Vector.) : name_651; + } +} + diff --git a/src/package_112/name_463.as b/src/package_112/name_463.as new file mode 100644 index 0000000..ae2269d --- /dev/null +++ b/src/package_112/name_463.as @@ -0,0 +1,18 @@ +package package_112 +{ + import package_71.name_333; + + public class name_463 implements class_33 + { + public function name_463() + { + super(); + } + + public function method_648(param1:String, param2:XML, param3:Vector.) : name_651 + { + return new name_652(param1,param2,param3); + } + } +} + diff --git a/src/package_112/name_464.as b/src/package_112/name_464.as new file mode 100644 index 0000000..3838f41 --- /dev/null +++ b/src/package_112/name_464.as @@ -0,0 +1,18 @@ +package package_112 +{ + import package_71.name_333; + + public class name_464 implements class_33 + { + public function name_464() + { + super(); + } + + public function method_648(param1:String, param2:XML, param3:Vector.) : name_651 + { + return new name_653(param1,param2,param3); + } + } +} + diff --git a/src/package_112/name_651.as b/src/package_112/name_651.as new file mode 100644 index 0000000..b35f456 --- /dev/null +++ b/src/package_112/name_651.as @@ -0,0 +1,105 @@ +package package_112 +{ + import flash.events.Event; + import package_15.name_55; + import package_40.class_7; + import package_40.name_170; + import package_71.name_333; + + public class name_651 extends class_7 + { + public var data:name_333; + + protected var var_673:String; + + private var files:name_55; + + private var var_672:name_170; + + private var baseUrl:String; + + private var partXML:XML; + + private var partsCollector:Vector.; + + public function name_651(param1:String, param2:XML, param3:Vector.) + { + super(); + this.partXML = param2; + this.baseUrl = param1 + param2.@baseUrl + "/"; + this.partsCollector = param3; + } + + override public function run() : void + { + var _loc2_:XML = null; + this.files = new name_55(); + this.var_672 = new name_170(); + var _loc1_:String = this.baseUrl + this.partXML.modelFile[0].toString(); + this.var_673 = "main." + this.partXML.modelFile[0].@type; + this.var_672.addTask(new BlobLoadTask(this.var_673,_loc1_,this.files)); + for each(_loc2_ in this.partXML.texture) + { + this.var_672.addTask(new BlobLoadTask(_loc2_.@id,this.baseUrl + _loc2_.toString(),this.files)); + } + this.var_672.addEventListener(Event.COMPLETE,this.method_817); + this.var_672.run(); + } + + public function parseModelData(param1:name_55) : name_333 + { + throw new Error("Not implemented"); + } + + private function method_817(param1:Event) : void + { + this.var_672 = null; + this.data = this.parseModelData(this.files); + this.data.id = this.partXML.id; + this.partsCollector.push(this.data); + method_102(); + } + } +} + +import flash.events.Event; +import flash.events.EventDispatcher; +import flash.net.URLLoader; +import flash.net.URLLoaderDataFormat; +import flash.net.URLRequest; +import package_15.name_55; +import package_40.class_7; + +class BlobLoadTask extends class_7 +{ + public var blobId:String; + + private var collector:name_55; + + private var blobUrl:String; + + private var loader:URLLoader; + + public function BlobLoadTask(param1:String, param2:String, param3:name_55) + { + super(); + this.collector = param3; + this.blobId = param1; + this.blobUrl = param2; + } + + override public function run() : void + { + this.loader = new URLLoader(); + this.loader.dataFormat = URLLoaderDataFormat.BINARY; + this.loader.addEventListener(Event.COMPLETE,this.onLoadingComplete); + this.loader.load(new URLRequest(this.blobUrl)); + } + + private function onLoadingComplete(param1:Event) : void + { + this.collector.name_59(this.blobId,this.loader.data); + this.loader = null; + method_102(); + } +} diff --git a/src/package_112/name_652.as b/src/package_112/name_652.as new file mode 100644 index 0000000..c931bd9 --- /dev/null +++ b/src/package_112/name_652.as @@ -0,0 +1,21 @@ +package package_112 +{ + import package_15.name_55; + import package_71.name_333; + import package_78.name_243; + + public class name_652 extends name_651 + { + public function name_652(param1:String, param2:XML, param3:Vector.) + { + super(param1,param2,param3); + } + + override public function parseModelData(param1:name_55) : name_333 + { + var _loc2_:name_243 = new name_243(); + return _loc2_.method_314(param1,var_673); + } + } +} + diff --git a/src/package_112/name_653.as b/src/package_112/name_653.as new file mode 100644 index 0000000..0cf8694 --- /dev/null +++ b/src/package_112/name_653.as @@ -0,0 +1,21 @@ +package package_112 +{ + import package_15.name_55; + import package_71.name_333; + import package_78.name_731; + + public class name_653 extends name_651 + { + public function name_653(param1:String, param2:XML, param3:Vector.) + { + super(param1,param2,param3); + } + + override public function parseModelData(param1:name_55) : name_333 + { + var _loc2_:name_731 = new name_731(); + return _loc2_.method_314(param1,var_673); + } + } +} + diff --git a/src/package_113/class_34.as b/src/package_113/class_34.as new file mode 100644 index 0000000..20caad8 --- /dev/null +++ b/src/package_113/class_34.as @@ -0,0 +1,10 @@ +package package_113 +{ + import package_46.name_194; + + public interface class_34 + { + function visitCell(param1:int, param2:int, param3:int, param4:int, param5:Number, param6:Number, param7:int, param8:name_194, param9:name_194) : Boolean; + } +} + diff --git a/src/package_113/name_469.as b/src/package_113/name_469.as new file mode 100644 index 0000000..2bfd80e --- /dev/null +++ b/src/package_113/name_469.as @@ -0,0 +1,1133 @@ +package package_113 +{ + import package_109.name_377; + import package_121.name_666; + import package_121.name_667; + import package_121.name_668; + import package_46.name_194; + import package_76.name_235; + import package_76.name_631; + import package_76.name_665; + import package_86.*; + import package_90.name_273; + import package_90.name_386; + import package_92.name_271; + import package_92.name_630; + + public class name_469 implements name_468 + { + private static var timestamp:int; + + private static const MAX_OBJECTS:int = 200; + + private static var BIG_VALUE:Number = 1000000; + + private static var EPSILON:Number = 0.0001; + + private static var normal:name_194 = new name_194(); + + private static var collisionBox:name_377 = new name_377(new name_194(),4294967295,0); + + private var cellSize:Number; + + private var var_609:name_386 = new name_386(); + + private var denseArray:Vector.; + + private var denseCellIndices:Vector.; + + private var var_613:int; + + private var numCellsX:int; + + private var numCellsY:int; + + private var numCellsZ:int; + + private var var_616:int; + + private var var_615:Vector.; + + private var var_618:int; + + private var var_611:Vector.; + + private var var_612:int; + + private var bodyCellEntries:Vector.; + + private var var_596:Object; + + private var var_610:RaycastCellVisitor; + + private var var_614:OccupiedCellIndex; + + private var var_617:Boolean; + + public function name_469() + { + super(); + this.var_611 = new Vector.(); + this.var_610 = new RaycastCellVisitor(); + this.method_690(); + this.method_686(); + } + + private function method_655(type1:int, type2:int, collider:name_665) : void + { + this.var_596[type1 | type2] = collider; + } + + public function name_591(bodyCollisionData:name_568) : void + { + if(this.method_683(bodyCollisionData.body) >= 0) + { + throw new Error("Body collision data already exists"); + } + var bodyCollisionGridData:name_685 = name_685.create(); + bodyCollisionGridData.body = bodyCollisionData.body; + bodyCollisionGridData.detailedPrimitives = bodyCollisionData.detailedPrimitives; + bodyCollisionGridData.simplePrimitives = bodyCollisionData.simplePrimitives; + bodyCollisionGridData.index = this.var_612; + var _loc3_:* = this.var_612++; + this.var_611[_loc3_] = bodyCollisionGridData; + this.var_617 = true; + } + + public function name_590(bodyCollisionData:name_568) : void + { + var index:int = this.method_683(bodyCollisionData.body); + if(index < 0) + { + throw new Error("Body collision data not found"); + } + --this.var_612; + var lastBodyEntry:name_685 = this.var_611[this.var_612]; + lastBodyEntry.index = index; + name_685(this.var_611[index]).destroy(); + this.var_611[index] = lastBodyEntry; + this.var_611[this.var_612] = null; + this.var_617 = true; + } + + public function name_470() : void + { + this.method_680(); + } + + public function method_696() : Number + { + return this.cellSize; + } + + public function method_700() : name_386 + { + return this.var_609.clone(); + } + + public function method_697() : int + { + return this.numCellsX; + } + + public function method_699() : int + { + return this.numCellsY; + } + + public function method_698() : int + { + return this.numCellsZ; + } + + public function method_701() : int + { + return this.var_616; + } + + public function method_695(x:int, y:int, z:int) : int + { + var cellIndex:int = x * this.numCellsY * this.numCellsZ + y * this.numCellsZ + z; + return this.denseCellIndices[cellIndex] >>> 24; + } + + public function name_472(cellSize:Number, staticPrimitives:Vector.) : void + { + this.method_693(staticPrimitives,cellSize); + this.method_684(staticPrimitives); + this.method_689(); + } + + public function method_651(center:name_194, radius:Number, filter:name_655) : Vector. + { + var result:Vector. = null; + var j:int = 0; + var k:int = 0; + var index:int = 0; + var bodyCellEntry:BodyCellEntry = null; + var data:name_685 = null; + var body:name_271 = null; + var position:name_194 = null; + var dx:Number = NaN; + var dy:Number = NaN; + var dz:Number = NaN; + var d:Number = NaN; + var imin:int = this.clamp((center.x - radius - this.var_609.minX) / this.cellSize,0,this.numCellsX - 1); + var imax:int = this.clamp((center.x + radius - this.var_609.minX) / this.cellSize,0,this.numCellsX - 1); + var jmin:int = this.clamp((center.y - radius - this.var_609.minY) / this.cellSize,0,this.numCellsY - 1); + var jmax:int = this.clamp((center.y + radius - this.var_609.minY) / this.cellSize,0,this.numCellsY - 1); + var kmin:int = this.clamp((center.z - radius - this.var_609.minZ) / this.cellSize,0,this.numCellsZ - 1); + var kmax:int = this.clamp((center.z + radius - this.var_609.minZ) / this.cellSize,0,this.numCellsZ - 1); + var ts:int = int(++timestamp); + var radiusSqr:Number = radius * radius; + for(var i:int = imin; i <= imax; i++) + { + for(j = jmin; j <= jmax; j++) + { + for(k = kmin; k <= kmax; k++) + { + index = i * this.numCellsY * this.numCellsZ + j * this.numCellsZ + k; + for(bodyCellEntry = this.bodyCellEntries[index]; bodyCellEntry != null; ) + { + data = bodyCellEntry.data; + if(data.timestamp != ts) + { + data.timestamp = ts; + body = data.body; + position = body.state.position; + dx = position.x - center.x; + dy = position.y - center.y; + dz = position.z - center.z; + d = dx * dx + dy * dy + dz * dz; + if(d < radiusSqr) + { + if(filter == null || Boolean(filter.name_670(center,body))) + { + if(result == null) + { + result = new Vector.(); + } + result.push(new name_654(body,Math.sqrt(d))); + } + } + } + bodyCellEntry = bodyCellEntry.next; + } + } + } + } + return result; + } + + public function method_553(contacts:name_630) : name_630 + { + var bodyCollisionData:name_685 = null; + this.method_680(); + for(var i:int = 0; i < this.var_612; i++) + { + bodyCollisionData = this.var_611[i]; + contacts = this.method_687(bodyCollisionData,contacts); + } + return this.method_692(contacts); + } + + private function method_689() : void + { + this.var_610.denseArray = this.denseArray; + this.var_610.denseCellIndices = this.denseCellIndices; + this.var_610.numCellsX = this.numCellsX; + this.var_610.numCellsY = this.numCellsY; + this.var_610.numCellsZ = this.numCellsZ; + } + + private function method_693(staticPrimitives:Vector., cellSize:Number) : void + { + var collisionPrimitive:name_235 = null; + this.cellSize = cellSize; + this.var_609.name_584(); + for each(collisionPrimitive in staticPrimitives) + { + this.var_609.name_583(collisionPrimitive.calculateAABB()); + } + this.var_609.name_686(cellSize + EPSILON); + this.numCellsX = int(this.var_609.name_689() / cellSize) + 1; + this.numCellsY = int(this.var_609.name_688() / cellSize) + 1; + this.numCellsZ = int(this.var_609.name_690() / cellSize) + 1; + this.var_613 = this.numCellsX * this.numCellsY * this.numCellsZ; + this.var_609.maxX = this.var_609.minX + this.numCellsX * cellSize; + this.var_609.maxY = this.var_609.minY + this.numCellsY * cellSize; + this.var_609.maxZ = this.var_609.minZ + this.numCellsZ * cellSize; + this.bodyCellEntries = new Vector.(this.var_613); + } + + private function method_684(staticPrimitives:Vector.) : void + { + var index:int = 0; + var denseArraySize:int = 0; + var lastIndex:int = 0; + var numCellPrimitives:int = 0; + var collisionPrimitive:name_235 = null; + var bb:name_386 = null; + var imin:int = 0; + var imax:int = 0; + var jmin:int = 0; + var jmax:int = 0; + var kmin:int = 0; + var kmax:int = 0; + var i:int = 0; + var j:int = 0; + var k:int = 0; + var cellIndex:int = 0; + var denseCellIndex:int = 0; + var cellCounters:Vector. = this.method_685(staticPrimitives); + this.var_616 = 0; + this.denseCellIndices = new Vector.(this.var_613); + for(index = 0; index < this.var_613; index++) + { + numCellPrimitives = cellCounters[index]; + if(numCellPrimitives > this.var_616) + { + this.var_616 = numCellPrimitives; + } + denseArraySize += numCellPrimitives; + this.denseCellIndices[index] = numCellPrimitives << 24 | lastIndex; + lastIndex += numCellPrimitives; + cellCounters[index] = 0; + } + this.denseArray = new Vector.(denseArraySize); + var numPrimitives:int = int(staticPrimitives.length); + for(index = 0; index < numPrimitives; index++) + { + collisionPrimitive = staticPrimitives[index]; + bb = collisionPrimitive.aabb; + imin = (bb.minX - this.var_609.minX) / this.cellSize; + imax = (bb.maxX - this.var_609.minX) / this.cellSize; + jmin = (bb.minY - this.var_609.minY) / this.cellSize; + jmax = (bb.maxY - this.var_609.minY) / this.cellSize; + kmin = (bb.minZ - this.var_609.minZ) / this.cellSize; + kmax = (bb.maxZ - this.var_609.minZ) / this.cellSize; + for(i = imin; i <= imax; i++) + { + for(j = jmin; j <= jmax; j++) + { + for(k = kmin; k <= kmax; k++) + { + cellIndex = i * this.numCellsY * this.numCellsZ + j * this.numCellsZ + k; + denseCellIndex = this.denseCellIndices[cellIndex] & 0xFFFFFF; + this.denseArray[denseCellIndex + cellCounters[cellIndex]] = collisionPrimitive; + ++cellCounters[cellIndex]; + } + } + } + } + } + + private function method_685(staticPrimitives:Vector.) : Vector. + { + var bb:name_386 = null; + var imin:int = 0; + var imax:int = 0; + var jmin:int = 0; + var jmax:int = 0; + var kmin:int = 0; + var kmax:int = 0; + var i:int = 0; + var j:int = 0; + var k:int = 0; + var cellIndex:int = 0; + var cellPrimitiveCounters:Vector. = new Vector.(this.var_613); + var numPrimitives:int = int(staticPrimitives.length); + for(var index:int = 0; index < numPrimitives; index++) + { + bb = staticPrimitives[index].aabb; + imin = (bb.minX - this.var_609.minX) / this.cellSize; + imax = (bb.maxX - this.var_609.minX) / this.cellSize; + jmin = (bb.minY - this.var_609.minY) / this.cellSize; + jmax = (bb.maxY - this.var_609.minY) / this.cellSize; + kmin = (bb.minZ - this.var_609.minZ) / this.cellSize; + kmax = (bb.maxZ - this.var_609.minZ) / this.cellSize; + for(i = imin; i <= imax; i++) + { + for(j = jmin; j <= jmax; j++) + { + for(k = kmin; k <= kmax; k++) + { + cellIndex = i * this.numCellsY * this.numCellsZ + j * this.numCellsZ + k; + ++cellPrimitiveCounters[cellIndex]; + } + } + } + } + return cellPrimitiveCounters; + } + + private function method_692(contacts:name_630) : name_630 + { + var currentBodyCellEntry:BodyCellEntry = null; + var currentBodyData:name_685 = null; + var bodyCollisionGridData:name_685 = null; + var imin:int = 0; + var imax:int = 0; + var jmin:int = 0; + var jmax:int = 0; + var kmin:int = 0; + var kmax:int = 0; + var thisCell:int = 0; + var i:int = 0; + var j:int = 0; + var k:int = 0; + var cellIndex:int = 0; + this.method_694(); + var numBodies:int = int(this.var_611.length); + for(var occupiedCell:OccupiedCellIndex = this.var_614; occupiedCell != null; ) + { + for(currentBodyCellEntry = this.bodyCellEntries[occupiedCell.index]; currentBodyCellEntry != null; ) + { + currentBodyData = currentBodyCellEntry.data; + contacts = this.method_682(currentBodyData.body,currentBodyData.index,currentBodyData.simplePrimitives,currentBodyCellEntry.next,numBodies,contacts); + bodyCollisionGridData = currentBodyCellEntry.data; + imin = bodyCollisionGridData.i & 0xFFFF; + imax = bodyCollisionGridData.i >>> 16; + jmin = bodyCollisionGridData.j & 0xFFFF; + jmax = bodyCollisionGridData.j >>> 16; + kmin = bodyCollisionGridData.k & 0xFFFF; + kmax = bodyCollisionGridData.k >>> 16; + thisCell = imin * this.numCellsY * this.numCellsZ + jmin * this.numCellsZ + kmin; + for(i = imin; i <= imax; i++) + { + for(j = jmin; j <= jmax; j++) + { + for(k = kmin; k <= kmax; ) + { + cellIndex = i * this.numCellsY * this.numCellsZ + j * this.numCellsZ + k; + if(cellIndex != thisCell) + { + contacts = this.method_682(currentBodyData.body,currentBodyData.index,currentBodyData.simplePrimitives,this.bodyCellEntries[cellIndex],numBodies,contacts); + } + k++; + } + } + } + currentBodyCellEntry = currentBodyCellEntry.next; + } + occupiedCell = occupiedCell.next; + } + return contacts; + } + + private function method_682(body:name_271, bodyIndex:int, bodyPrimitives:Vector., cellStartEntry:BodyCellEntry, numBodies:int, contacts:name_630) : name_630 + { + var index2:int = 0; + var min:int = 0; + var max:int = 0; + var bitIndex:int = 0; + var mask:int = 0; + var body2:name_271 = null; + var bodyPrimitives2:Vector. = null; + var numPrimitives2:int = 0; + var i:int = 0; + var collisionPrimitive1:name_235 = null; + var j:int = 0; + var collisionPrimitive2:name_235 = null; + for(var numPrimitives1:int = int(bodyPrimitives.length); cellStartEntry != null; ) + { + if(cellStartEntry.data.body != body) + { + index2 = cellStartEntry.data.index; + min = bodyIndex; + max = index2; + if(bodyIndex > index2) + { + min = index2; + max = bodyIndex; + } + bitIndex = min * (2 * numBodies - min - 3) / 2 + max - 1; + mask = 1 << (bitIndex & 0x1F); + if((this.var_615[bitIndex >>> 5] & mask) == 0) + { + this.var_615[bitIndex >>> 5] |= mask; + body2 = cellStartEntry.data.body; + if(body2.aabb.intersects(body.aabb,EPSILON)) + { + bodyPrimitives2 = cellStartEntry.data.simplePrimitives; + numPrimitives2 = int(bodyPrimitives2.length); + for(i = 0; i < numPrimitives1; i++) + { + collisionPrimitive1 = bodyPrimitives[i]; + for(j = 0; j < numPrimitives2; j++) + { + collisionPrimitive2 = bodyPrimitives2[j]; + if(!((collisionPrimitive1.collisionGroup & collisionPrimitive2.collisionMask) == 0 || (collisionPrimitive1.collisionMask & collisionPrimitive2.collisionGroup) == 0 || !collisionPrimitive1.aabb.intersects(collisionPrimitive2.aabb,EPSILON))) + { + contacts = this.method_691(body,bodyPrimitives,numPrimitives1,body2,bodyPrimitives2,numPrimitives2,contacts); + } + } + } + } + } + } + cellStartEntry = cellStartEntry.next; + } + return contacts; + } + + private function method_691(body1:name_271, primitives1:Vector., numPrimitives1:int, body2:name_271, primitives2:Vector., numPrimitives2:int, contact:name_630) : name_630 + { + var primitive1:name_235 = null; + var j:int = 0; + var primitive2:name_235 = null; + var skipCollision:Boolean = false; + var firstFilterTest:Boolean = true; + for(var i:int = 0; i < numPrimitives1; i++) + { + primitive1 = primitives1[i]; + for(j = 0; j < numPrimitives2; ) + { + primitive2 = primitives2[j]; + if(this.getContact(primitive1,primitive2,contact)) + { + if(firstFilterTest) + { + firstFilterTest = false; + skipCollision = false; + if(body1.postCollisionFilter != null && !body1.postCollisionFilter.acceptBodiesCollision(body1,body2)) + { + skipCollision = true; + } + if(body2.postCollisionFilter != null && !body2.postCollisionFilter.acceptBodiesCollision(body2,body1)) + { + skipCollision = true; + } + if(skipCollision) + { + return contact; + } + } + contact = contact.next; + } + j++; + } + } + return contact; + } + + private function method_694() : void + { + for(var i:int = 0; i < this.var_618; i++) + { + this.var_615[i] = 0; + } + } + + private function method_687(bodyCollisionData:name_685, contacts:name_630) : name_630 + { + var jj:int = 0; + var kk:int = 0; + var cellIndex:int = 0; + var denseIndexStart:int = 0; + var denseIndexEnd:int = 0; + var index:int = 0; + var staticCollisionPrimitive:name_235 = null; + var bpi:int = 0; + var bodyCollisionPrimitive:name_235 = null; + var imin:int = bodyCollisionData.i & 0xFFFF; + var imax:int = bodyCollisionData.i >>> 16; + var jmin:int = bodyCollisionData.j & 0xFFFF; + var jmax:int = bodyCollisionData.j >>> 16; + var kmin:int = bodyCollisionData.k & 0xFFFF; + var kmax:int = bodyCollisionData.k >>> 16; + var tstamp:int = int(++timestamp); + var bodyPrimitives:Vector. = bodyCollisionData.detailedPrimitives; + var numBodyPrimitives:int = int(bodyPrimitives.length); + for(var ii:int = imin; ii <= imax; ii++) + { + for(jj = jmin; jj <= jmax; jj++) + { + for(kk = kmin; kk <= kmax; kk++) + { + cellIndex = ii * this.numCellsY * this.numCellsZ + jj * this.numCellsZ + kk; + denseIndexStart = this.denseCellIndices[cellIndex] & 0xFFFFFF; + denseIndexEnd = denseIndexStart + (this.denseCellIndices[cellIndex] >>> 24); + for(index = denseIndexStart; index < denseIndexEnd; ) + { + staticCollisionPrimitive = this.denseArray[index]; + if(staticCollisionPrimitive.timestamp != tstamp) + { + staticCollisionPrimitive.timestamp = tstamp; + for(bpi = 0; bpi < numBodyPrimitives; ) + { + bodyCollisionPrimitive = bodyPrimitives[bpi]; + if(this.getContact(bodyCollisionPrimitive,staticCollisionPrimitive,contacts)) + { + contacts = contacts.next; + } + bpi++; + } + } + index++; + } + } + } + } + return contacts; + } + + public function raycast(origin:name_194, direction:name_194, collisionMask:int, maxTime:Number, filter:name_631, result:name_273) : Boolean + { + if(this.var_617) + { + this.method_680(); + } + this.var_610.collisionMask = collisionMask; + this.var_610.filter = filter; + this.var_610.result = result; + this.var_610.bodyCellEntries = this.bodyCellEntries; + this.method_681(origin,direction,maxTime,this.var_610); + this.var_610.clear(); + if(this.var_610.hasHit) + { + if(result.t < maxTime) + { + result.position.copy(origin).method_362(result.t,direction); + return true; + } + } + return false; + } + + public function name_324(origin:name_194, direction:name_194, collisionMask:int, maxTime:Number, filter:name_631, result:name_273) : Boolean + { + this.var_610.collisionMask = collisionMask; + this.var_610.filter = filter; + this.var_610.result = result; + this.method_681(origin,direction,maxTime,this.var_610); + this.var_610.clear(); + if(this.var_610.hasHit) + { + if(result.t < maxTime) + { + result.position.copy(origin).method_362(result.t,direction); + return true; + } + } + return false; + } + + public function getContact(prim1:name_235, prim2:name_235, contact:name_630) : Boolean + { + if((prim1.collisionMask & prim2.collisionGroup) == 0 || (prim2.collisionMask & prim1.collisionGroup) == 0 || !prim1.aabb.intersects(prim2.aabb,0.01)) + { + return false; + } + var collider:name_665 = this.var_596[prim1.type | prim2.type]; + if(collider != null && Boolean(collider.getContact(prim1,prim2,contact))) + { + if(prim1.postCollisionFilter != null && !prim1.postCollisionFilter.name_662(prim1,prim2)) + { + return false; + } + return !(prim2.postCollisionFilter != null && !prim2.postCollisionFilter.name_662(prim2,prim1)); + } + return false; + } + + public function method_554(prim1:name_235, prim2:name_235) : Boolean + { + return false; + } + + public function method_681(origin:name_194, direction:name_194, maxTime:Number, visitor:class_34) : void + { + var t:Number = NaN; + var i:int = 0; + var j:int = 0; + var k:int = 0; + var cellMaxTime:Number = NaN; + var tstamp:int = int(++timestamp); + var x1:Number = origin.x - this.var_609.minX; + var y1:Number = origin.y - this.var_609.minY; + var z1:Number = origin.z - this.var_609.minZ; + var x2:Number = x1 + direction.x * maxTime; + var y2:Number = y1 + direction.y * maxTime; + var z2:Number = z1 + direction.z * maxTime; + var axis:int = -1; + var entryTime:Number = 0; + var p:name_194 = new name_194(); + var pointInBounds:Boolean = this.var_609.name_687(origin,EPSILON); + if(!pointInBounds) + { + collisionBox.hs.reset(this.cellSize * this.numCellsX / 2,this.cellSize * this.numCellsY / 2,this.cellSize * this.numCellsZ / 2); + collisionBox.transform.d = this.var_609.minX + collisionBox.hs.x; + collisionBox.transform.h = this.var_609.minY + collisionBox.hs.y; + collisionBox.transform.l = this.var_609.minZ + collisionBox.hs.z; + collisionBox.calculateAABB(); + t = collisionBox.raycast(origin,direction,EPSILON,normal); + if(t < 0 || t >= maxTime) + { + return; + } + p.copy(origin).method_362(t,direction); + if(normal.x > 0.9999 || normal.x < -0.9999) + { + axis = 0; + } + else if(normal.y > 0.9999 || normal.y < -0.9999) + { + axis = 1; + } + else if(normal.z > 0.9999 || normal.z < -0.9999) + { + axis = 2; + } + entryTime = t; + i = this.clamp((p.x - this.var_609.minX) / this.cellSize,0,this.numCellsX - 1); + j = this.clamp((p.y - this.var_609.minY) / this.cellSize,0,this.numCellsY - 1); + k = this.clamp((p.z - this.var_609.minZ) / this.cellSize,0,this.numCellsZ - 1); + } + else + { + i = this.clamp(x1 / this.cellSize,0,this.numCellsX - 1); + j = this.clamp(y1 / this.cellSize,0,this.numCellsY - 1); + k = this.clamp(z1 / this.cellSize,0,this.numCellsZ - 1); + } + var iend:int = this.clamp(x2 / this.cellSize,0,this.numCellsX - 1); + var jend:int = this.clamp(y2 / this.cellSize,0,this.numCellsY - 1); + var kend:int = this.clamp(z2 / this.cellSize,0,this.numCellsZ - 1); + var di:int = x1 < x2 ? 1 : (x1 > x2 ? -1 : 0); + var dj:int = y1 < y2 ? 1 : (y1 > y2 ? -1 : 0); + var dk:int = z1 < z2 ? 1 : (z1 > z2 ? -1 : 0); + var minx:Number = i * this.cellSize; + var maxx:Number = minx + this.cellSize; + var tx:Number = x1 < x2 ? (maxx - x1) / (x2 - x1) : (x1 - minx) / (x1 - x2); + if(isNaN(tx)) + { + tx = BIG_VALUE; + } + var miny:Number = j * this.cellSize; + var maxy:Number = miny + this.cellSize; + var ty:Number = y1 < y2 ? (maxy - y1) / (y2 - y1) : (y1 - miny) / (y1 - y2); + if(isNaN(ty)) + { + ty = BIG_VALUE; + } + var minz:Number = k * this.cellSize; + var maxz:Number = minz + this.cellSize; + var tz:Number = z1 < z2 ? (maxz - z1) / (z2 - z1) : (z1 - minz) / (z1 - z2); + if(isNaN(tz)) + { + tz = BIG_VALUE; + } + var deltatx:Number = this.cellSize / Math.abs(x2 - x1); + var deltaty:Number = this.cellSize / Math.abs(y2 - y1); + var deltatz:Number = this.cellSize / Math.abs(z2 - z1); + while(true) + { + cellMaxTime = tx; + if(cellMaxTime > ty) + { + cellMaxTime = ty; + } + if(cellMaxTime > tz) + { + cellMaxTime = tz; + } + if(!visitor.visitCell(i,j,k,axis,entryTime,cellMaxTime * maxTime,tstamp,origin,direction)) + { + return; + } + if(tx <= ty && tx <= tz) + { + if(i == iend) + { + break; + } + entryTime = tx; + axis = 0; + tx += deltatx; + i += di; + } + else if(ty <= tx && ty <= tz) + { + if(j == jend) + { + break; + } + entryTime = ty; + axis = 1; + ty += deltaty; + j += dj; + } + else + { + if(k == kend) + { + break; + } + entryTime = tz; + axis = 2; + tz += deltatz; + k += dk; + } + } + } + + private function clamp(value:int, min:int, max:int) : int + { + if(value < min) + { + return min; + } + if(value > max) + { + return max; + } + return value; + } + + private function method_688() : void + { + var bodyCellEntry:BodyCellEntry = null; + var nextBodyCellEntry:BodyCellEntry = null; + var nextOccupiedCell:OccupiedCellIndex = null; + for(var cellIndex:int = 0; cellIndex < this.var_613; cellIndex++) + { + bodyCellEntry = this.bodyCellEntries[cellIndex]; + for(this.bodyCellEntries[cellIndex] = null; bodyCellEntry != null; ) + { + nextBodyCellEntry = bodyCellEntry.next; + bodyCellEntry.destroy(); + bodyCellEntry = nextBodyCellEntry; + } + } + var occupiedCell:OccupiedCellIndex = this.var_614; + for(this.var_614 = null; occupiedCell != null; ) + { + nextOccupiedCell = occupiedCell.next; + occupiedCell.destory(); + occupiedCell = nextOccupiedCell; + } + } + + private function method_680() : void + { + var bodyCollisionData:name_685 = null; + var boundBox:name_386 = null; + var imin:int = 0; + var jmin:int = 0; + var kmin:int = 0; + var imax:int = 0; + var jmax:int = 0; + var kmax:int = 0; + var cellIndex:int = 0; + var i:int = 0; + var occupiedCellIndex:OccupiedCellIndex = null; + var j:int = 0; + var k:int = 0; + var index:int = 0; + var newEntry:BodyCellEntry = null; + this.method_688(); + for(var ti:int = 0; ti < this.var_612; ti++) + { + bodyCollisionData = this.var_611[ti]; + boundBox = bodyCollisionData.body.aabb; + imin = (boundBox.minX - this.var_609.minX) / this.cellSize; + if(!(imin < 0 || imin >= this.numCellsX)) + { + jmin = (boundBox.minY - this.var_609.minY) / this.cellSize; + if(!(jmin < 0 || jmin >= this.numCellsY)) + { + kmin = (boundBox.minZ - this.var_609.minZ) / this.cellSize; + if(!(kmin < 0 || kmin >= this.numCellsZ)) + { + imax = (boundBox.maxX - this.var_609.minX) / this.cellSize; + if(imax >= this.numCellsX) + { + imax = this.numCellsX - 1; + } + jmax = (boundBox.maxY - this.var_609.minY) / this.cellSize; + if(jmax >= this.numCellsY) + { + jmax = this.numCellsY - 1; + } + kmax = (boundBox.maxZ - this.var_609.minZ) / this.cellSize; + if(kmax >= this.numCellsZ) + { + kmax = this.numCellsZ - 1; + } + bodyCollisionData.i = imin | imax << 16; + bodyCollisionData.j = jmin | jmax << 16; + bodyCollisionData.k = kmin | kmax << 16; + cellIndex = imin * this.numCellsY * this.numCellsZ + jmin * this.numCellsZ + kmin; + if(this.bodyCellEntries[cellIndex] == null) + { + occupiedCellIndex = OccupiedCellIndex.create(cellIndex); + occupiedCellIndex.next = this.var_614; + this.var_614 = occupiedCellIndex; + } + for(i = imin; i <= imax; ) + { + for(j = jmin; j <= jmax; j++) + { + for(k = kmin; k <= kmax; k++) + { + index = i * this.numCellsY * this.numCellsZ + j * this.numCellsZ + k; + newEntry = BodyCellEntry.create(); + newEntry.next = this.bodyCellEntries[index]; + this.bodyCellEntries[index] = newEntry; + newEntry.data = bodyCollisionData; + } + } + i++; + } + } + } + } + } + this.var_617 = false; + } + + private function method_683(body:name_271) : int + { + var bodyCollisionGridData:name_685 = null; + for(var i:int = 0; i < this.var_612; ) + { + bodyCollisionGridData = this.var_611[i]; + if(bodyCollisionGridData.body == body) + { + return i; + } + i++; + } + return -1; + } + + private function method_686() : void + { + var maxObjectPairs:int = MAX_OBJECTS * (MAX_OBJECTS - 1) / 2; + this.var_618 = (maxObjectPairs + 31) / 32; + this.var_615 = new Vector.(this.var_618); + } + + private function method_690() : void + { + this.var_596 = new Object(); + this.method_655(name_235.BOX,name_235.BOX,new name_666()); + this.method_655(name_235.BOX,name_235.RECT,new name_667()); + this.method_655(name_235.BOX,name_235.TRIANGLE,new name_668()); + } + } +} + +import package_46.name_194; +import package_76.name_235; +import package_76.name_631; +import package_90.name_273; + +class BodyCellEntry +{ + private static var pool:BodyCellEntry; + + public var data:name_685; + + public var next:BodyCellEntry; + + public function BodyCellEntry() + { + super(); + } + + public static function create() : BodyCellEntry + { + if(pool == null) + { + return new BodyCellEntry(); + } + var bodyEntry:BodyCellEntry = pool; + pool = bodyEntry.next; + bodyEntry.next = null; + return bodyEntry; + } + + public function destroy() : void + { + this.data = null; + this.next = pool; + pool = this; + } +} + +class RaycastCellVisitor implements class_34 +{ + public static var EPSILON:Number = 0.0001; + + private static var normal:name_194 = new name_194(); + + public var denseArray:Vector.; + + public var denseCellIndices:Vector.; + + public var numCellsX:int; + + public var numCellsY:int; + + public var numCellsZ:int; + + public var bodyCellEntries:Vector.; + + public var collisionMask:int; + + public var filter:name_631; + + public var result:name_273; + + public var hasHit:Boolean; + + private var nearestPrimitive:name_235; + + private var nearestNormal:name_194 = new name_194(); + + private var nearestTime:Number = 1.7976931348623157e+308; + + public function RaycastCellVisitor() + { + super(); + } + + public function visitCell(celli:int, cellj:int, cellk:int, axis:int, cellEntryTime:Number, cellMaxTime:Number, timestamp:int, rayOrigin:name_194, rayDirection:name_194) : Boolean + { + var collisionPrimitive:name_235 = null; + var time:Number = NaN; + var bodyCellEntry:BodyCellEntry = null; + var data:name_685 = null; + var detailedPrimitives:Vector. = null; + var numPrimitives:uint = 0; + this.hasHit = false; + var cellIndex:int = celli * this.numCellsY * this.numCellsZ + cellj * this.numCellsZ + cellk; + var denseCellIndex:int = int(this.denseCellIndices[cellIndex]); + var startIndex:int = denseCellIndex & 0xFFFFFF; + var endIndex:int = startIndex + (denseCellIndex >>> 24); + var minTime:Number = Number(this.nearestTime); + for(var i:int = startIndex; i < endIndex; ) + { + collisionPrimitive = this.denseArray[i]; + if(collisionPrimitive.timestamp != timestamp) + { + collisionPrimitive.timestamp = timestamp; + if((collisionPrimitive.collisionGroup & this.collisionMask) != 0) + { + time = collisionPrimitive.raycast(rayOrigin,rayDirection,EPSILON,normal); + if(time > 0 && time < minTime && (this.filter == null || Boolean(this.filter.name_664(collisionPrimitive)))) + { + minTime = time; + if(time < cellMaxTime) + { + this.result.normal.copy(normal); + this.result.primitive = collisionPrimitive; + this.result.t = time; + this.hasHit = true; + } + else + { + this.nearestPrimitive = collisionPrimitive; + this.nearestTime = time; + this.nearestNormal.copy(normal); + } + } + } + } + i++; + } + if(this.bodyCellEntries != null) + { + for(bodyCellEntry = this.bodyCellEntries[cellIndex]; bodyCellEntry != null; ) + { + data = bodyCellEntry.data; + if(data.timestamp != timestamp) + { + data.timestamp = timestamp; + detailedPrimitives = data.detailedPrimitives; + numPrimitives = uint(detailedPrimitives.length); + for(i = 0; i < numPrimitives; ) + { + collisionPrimitive = detailedPrimitives[i]; + if((collisionPrimitive.collisionGroup & this.collisionMask) != 0) + { + time = collisionPrimitive.raycast(rayOrigin,rayDirection,EPSILON,normal); + if(time > 0 && time < minTime && (this.filter == null || Boolean(this.filter.name_664(collisionPrimitive)))) + { + minTime = time; + if(time < cellMaxTime) + { + this.result.normal.copy(normal); + this.result.primitive = collisionPrimitive; + this.result.t = time; + this.hasHit = true; + } + else + { + this.nearestPrimitive = collisionPrimitive; + this.nearestTime = time; + this.nearestNormal.copy(normal); + } + } + } + i++; + } + } + bodyCellEntry = bodyCellEntry.next; + } + } + if(!this.hasHit && this.nearestTime < cellMaxTime) + { + this.hasHit = true; + this.result.t = this.nearestTime; + this.result.primitive = this.nearestPrimitive; + this.result.normal.copy(this.nearestNormal); + return false; + } + return !this.hasHit; + } + + public function clear() : void + { + this.filter = null; + this.result = null; + this.nearestPrimitive = null; + this.bodyCellEntries = null; + this.nearestTime = Number.MAX_VALUE; + } +} + +class OccupiedCellIndex +{ + private static var pool:OccupiedCellIndex; + + public var index:int; + + public var next:OccupiedCellIndex; + + public function OccupiedCellIndex(index:int) + { + super(); + this.index = index; + } + + public static function create(index:int) : OccupiedCellIndex + { + if(pool == null) + { + return new OccupiedCellIndex(index); + } + var item:OccupiedCellIndex = pool; + pool = item.next; + item.next = null; + item.index = index; + return item; + } + + public function destory() : void + { + this.next = pool; + pool = this; + } +} diff --git a/src/package_113/name_685.as b/src/package_113/name_685.as new file mode 100644 index 0000000..fdbd8fd --- /dev/null +++ b/src/package_113/name_685.as @@ -0,0 +1,52 @@ +package package_113 +{ + import package_76.name_235; + import package_92.name_271; + + public class name_685 + { + private static var poolSize:int; + + private static var pool:Vector. = new Vector.(); + + public var body:name_271; + + public var simplePrimitives:Vector.; + + public var detailedPrimitives:Vector.; + + public var index:int; + + public var i:int; + + public var j:int; + + public var k:int; + + public var timestamp:int; + + public function name_685() + { + super(); + } + + public static function create() : name_685 + { + if(poolSize == 0) + { + return new name_685(); + } + return pool[--poolSize]; + } + + public function destroy() : void + { + this.body = null; + this.simplePrimitives = null; + this.detailedPrimitives = null; + var _loc1_:* = poolSize++; + pool[_loc1_] = this; + } + } +} + diff --git a/src/package_114/class_35.as b/src/package_114/class_35.as new file mode 100644 index 0000000..927201e --- /dev/null +++ b/src/package_114/class_35.as @@ -0,0 +1,10 @@ +package package_114 +{ + public interface class_35 + { + function start(param1:*) : void; + + function stop() : void; + } +} + diff --git a/src/package_114/name_488.as b/src/package_114/name_488.as new file mode 100644 index 0000000..2a659e9 --- /dev/null +++ b/src/package_114/name_488.as @@ -0,0 +1,39 @@ +package package_114 +{ + import package_10.name_54; + + public class name_488 + { + public var name_493:class_35; + + private var var_619:Object; + + public function name_488() + { + super(); + this.var_619 = new Object(); + } + + public function name_486(entity:name_54, eventType:String, eventState:class_35) : void + { + if(this.var_619[eventType] != null) + { + throw new Error("Duplicate event type: " + eventType); + } + this.var_619[eventType] = eventState; + entity.addEventHandler(eventType,this.method_703); + } + + public function method_703(eventName:String, data:*) : void + { + var newState:class_35 = this.var_619[eventName]; + if(newState != this.name_493) + { + this.name_493.stop(); + this.name_493 = newState; + this.name_493.start(data); + } + } + } +} + diff --git a/src/package_114/name_489.as b/src/package_114/name_489.as new file mode 100644 index 0000000..6edc647 --- /dev/null +++ b/src/package_114/name_489.as @@ -0,0 +1,21 @@ +package package_114 +{ + public class name_489 implements class_35 + { + public static const INSTANCE:name_489 = new name_489(); + + public function name_489() + { + super(); + } + + public function start(data:*) : void + { + } + + public function stop() : void + { + } + } +} + diff --git a/src/package_115/class_26.as b/src/package_115/class_26.as new file mode 100644 index 0000000..c2c90e0 --- /dev/null +++ b/src/package_115/class_26.as @@ -0,0 +1,10 @@ +package package_115 +{ + import package_46.name_194; + + public interface class_26 + { + function method_411(param1:int, param2:name_194, param3:name_194, param4:name_194, param5:name_194) : void; + } +} + diff --git a/src/package_116/name_529.as b/src/package_116/name_529.as new file mode 100644 index 0000000..fbcbda6 --- /dev/null +++ b/src/package_116/name_529.as @@ -0,0 +1,883 @@ +package package_116 +{ + import alternativa.engine3d.alternativa3d; + import flash.geom.Matrix3D; + import flash.geom.Vector3D; + import flash.utils.ByteArray; + import flash.utils.Dictionary; + import flash.utils.Endian; + import package_14.name_21; + import package_16.name_26; + import package_17.name_21; + import package_19.name_380; + import package_19.name_528; + import package_19.name_700; + import package_21.name_126; + import package_21.name_386; + import package_21.name_432; + import package_21.name_78; + import package_24.DirectionalLight; + import package_24.OmniLight; + import package_24.SpotLight; + import package_24.name_376; + import package_28.name_119; + import package_28.name_167; + import package_32.name_148; + import package_33.name_155; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_36.name_648; + import package_38.name_159; + import package_38.name_162; + import package_38.name_453; + import package_39.name_160; + import package_4.name_28; + import package_48.A3D2AmbientLight; + import package_48.A3D2Box; + import package_48.A3D2DirectionalLight; + import package_48.A3D2Joint; + import package_48.A3D2Mesh; + import package_48.A3D2Object; + import package_48.A3D2OmniLight; + import package_48.A3D2Skin; + import package_48.A3D2SpotLight; + import package_48.A3D2Surface; + import package_48.A3D2Transform; + import package_5.name_3; + import package_50.A3DBox; + import package_50.A3DObject; + import package_50.A3DSurface; + import package_51.A3D2Image; + import package_51.A3D2Map; + import package_51.A3D2Material; + import package_52.A3D2IndexBuffer; + import package_52.A3D2VertexAttributes; + import package_52.A3D2VertexBuffer; + import package_53.A3DImage; + import package_53.A3DMap; + import package_53.A3DMaterial; + import package_54.A3DGeometry; + import package_54.A3DIndexBuffer; + import package_54.A3DVertexBuffer; + import package_57.name_213; + import package_57.name_214; + import package_64.name_212; + import package_65.name_210; + import package_66.name_211; + + use namespace alternativa3d; + + public class name_529 + { + public var hierarchy:Vector.; + + public var objects:Vector.; + + private var maps:Dictionary; + + private var materials:Dictionary; + + private var protocol:name_159; + + private var var_628:Object; + + private var var_629:Boolean = false; + + public function name_529() + { + super(); + this.init(); + } + + private static function method_725(source:name_210) : name_211 + { + var i:int = 0; + var count:int = 0; + var sourceBox:A3DBox = null; + var destBox:A3D2Box = null; + var sourceGeometry:A3DGeometry = null; + var sourceImage:A3DImage = null; + var destImage:A3D2Image = null; + var sourceMap:A3DMap = null; + var destMap:A3D2Map = null; + var sourceMaterial:A3DMaterial = null; + var destMaterial:A3D2Material = null; + var sourceObject:A3DObject = null; + var destMesh:A3D2Mesh = null; + var destIndexBufferId:int = 0; + var destVertexBuffersIds:Vector. = null; + var sourceIndexBuffer:A3DIndexBuffer = null; + var sourceVertexBuffers:Vector. = null; + var destIndexBuffer:A3D2IndexBuffer = null; + var j:int = 0; + var inCount:int = 0; + var sourceVertexBuffer:A3DVertexBuffer = null; + var sourceAttributes:Vector. = null; + var destAttributes:Vector. = null; + var k:int = 0; + var kCount:int = 0; + var destVertexBuffer:A3D2VertexBuffer = null; + var attr:int = 0; + var destObject:A3D2Object = null; + var sourceBoxes:Vector. = source.boxes; + var destBoxes:Vector. = null; + if(sourceBoxes != null) + { + destBoxes = new Vector.(); + for(i = 0,count = int(sourceBoxes.length); i < count; i++) + { + sourceBox = sourceBoxes[i]; + destBox = new A3D2Box(sourceBox.box,sourceBox.id.id); + destBoxes[i] = destBox; + } + } + var sourceGeometries:Dictionary = new Dictionary(); + if(source.geometries != null) + { + for each(sourceGeometry in source.geometries) + { + sourceGeometries[sourceGeometry.id.id] = sourceGeometry; + } + } + var sourceImages:Vector. = source.images; + var destImages:Vector. = null; + if(sourceImages != null) + { + destImages = new Vector.(); + for(i = 0,count = int(sourceImages.length); i < count; i++) + { + sourceImage = sourceImages[i]; + destImage = new A3D2Image(sourceImage.id.id,sourceImage.url); + destImages[i] = destImage; + } + } + var sourceMaps:Vector. = source.maps; + var destMaps:Vector. = null; + if(sourceMaps != null) + { + destMaps = new Vector.(); + for(i = 0,count = int(sourceMaps.length); i < count; i++) + { + sourceMap = sourceMaps[i]; + destMap = new A3D2Map(sourceMap.channel,sourceMap.id.id,sourceMap.imageId.id); + destMaps[i] = destMap; + } + } + var sourceMaterials:Vector. = source.materials; + var destMaterials:Vector. = null; + if(sourceMaterials != null) + { + destMaterials = new Vector.(); + for(i = 0,count = int(sourceMaterials.length); i < count; i++) + { + sourceMaterial = sourceMaterials[i]; + destMaterial = new A3D2Material(method_715(sourceMaterial.diffuseMapId),method_715(sourceMaterial.glossinessMapId),method_715(sourceMaterial.id),method_715(sourceMaterial.lightMapId),method_715(sourceMaterial.normalMapId),method_715(sourceMaterial.opacityMapId),-1,method_715(sourceMaterial.specularMapId)); + destMaterials[i] = destMaterial; + } + } + var sourceObjects:Vector. = source.objects; + var destObjects:Vector. = null; + var destMeshes:Vector. = null; + var destVertexBuffers:Vector. = null; + var destIndexBuffers:Vector. = null; + var lastIndexBufferIndex:uint = 0; + var lastVertexBufferIndex:uint = 0; + var objectsMap:Dictionary = new Dictionary(); + if(sourceObjects != null) + { + destMeshes = new Vector.(); + destObjects = new Vector.(); + destVertexBuffers = new Vector.(); + destIndexBuffers = new Vector.(); + for(i = 0,count = int(sourceObjects.length); i < count; i++) + { + sourceObject = sourceObjects[i]; + if(sourceObject.surfaces != null && sourceObject.surfaces.length > 0) + { + destMesh = null; + sourceGeometry = sourceGeometries[sourceObject.geometryId.id]; + destIndexBufferId = -1; + destVertexBuffersIds = new Vector.(); + if(sourceGeometry != null) + { + sourceIndexBuffer = sourceGeometry.indexBuffer; + sourceVertexBuffers = sourceGeometry.vertexBuffers; + destIndexBuffer = new A3D2IndexBuffer(sourceIndexBuffer.byteBuffer,lastIndexBufferIndex++,sourceIndexBuffer.indexCount); + destIndexBufferId = destIndexBuffer.id; + destIndexBuffers.push(destIndexBuffer); + for(j = 0,inCount = int(sourceVertexBuffers.length); j < inCount; j++) + { + sourceVertexBuffer = sourceVertexBuffers[j]; + sourceAttributes = sourceVertexBuffer.attributes; + destAttributes = new Vector.(); + for(k = 0,kCount = int(sourceAttributes.length); k < kCount; ) + { + attr = sourceAttributes[k]; + switch(attr) + { + case 0: + destAttributes[k] = A3D2VertexAttributes.POSITION; + break; + case 1: + destAttributes[k] = A3D2VertexAttributes.NORMAL; + break; + case 2: + destAttributes[k] = A3D2VertexAttributes.TANGENT4; + break; + case 3: + break; + case 4: + break; + case 5: + destAttributes[k] = A3D2VertexAttributes.TEXCOORD; + break; + } + k++; + } + destVertexBuffer = new A3D2VertexBuffer(destAttributes,sourceVertexBuffer.byteBuffer,lastVertexBufferIndex++,sourceVertexBuffer.vertexCount); + destVertexBuffers.push(destVertexBuffer); + destVertexBuffersIds.push(destVertexBuffer.id); + } + } + destMesh = new A3D2Mesh(method_715(sourceObject.boundBoxId),method_719(sourceObject.id),destIndexBufferId,sourceObject.name,method_720(sourceObject.parentId),method_723(sourceObject.surfaces),new A3D2Transform(sourceObject.transformation.matrix),destVertexBuffersIds,sourceObject.visible); + destMeshes.push(destMesh); + objectsMap[sourceObject.id.id] = destMesh; + } + else + { + destObject = new A3D2Object(method_715(sourceObject.boundBoxId),method_719(sourceObject.id),sourceObject.name,method_720(sourceObject.parentId),new A3D2Transform(sourceObject.transformation.matrix),sourceObject.visible); + destObjects.push(destObject); + objectsMap[sourceObject.id.id] = destObject; + } + } + } + return new name_211(null,null,null,destBoxes,null,null,null,destImages,destIndexBuffers,null,destMaps,destMaterials,destMeshes != null && destMeshes.length > 0 ? destMeshes : null,destObjects != null && destObjects.length > 0 ? destObjects : null,null,null,null,null,destVertexBuffers); + } + + private static function method_715(id:name_213) : int + { + return id != null ? int(id.id) : -1; + } + + private static function method_719(id:name_213) : name_155 + { + return id != null ? name_155.method_300(id.id) : name_155.method_300(-1); + } + + private static function method_720(parentId:name_212) : name_155 + { + if(parentId == null) + { + return null; + } + return parentId != null ? name_155.method_300(parentId.id) : null; + } + + private static function method_723(source:Vector.) : Vector. + { + var sourceSurface:A3DSurface = null; + var destSurface:A3D2Surface = null; + var dest:Vector. = new Vector.(); + for(var i:int = 0,var count:int = int(source.length); i < count; i++) + { + sourceSurface = source[i]; + destSurface = new A3D2Surface(sourceSurface.indexBegin,method_715(sourceSurface.materialId),sourceSurface.numTriangles); + dest[i] = destSurface; + } + return dest; + } + + public function method_314(input:ByteArray) : void + { + var version:int = 0; + try + { + input.position = 0; + version = int(input.readByte()); + if(version == 0) + { + this.parseVersion1(input); + } + else + { + this.method_726(input); + } + } + catch(e:Error) + { + throw new Error("parsing failed",0); + } + } + + public function method_729(name:String) : name_78 + { + var object:name_78 = null; + for each(object in this.objects) + { + if(object.name == name) + { + return object; + } + } + return null; + } + + private function init() : void + { + if(this.var_629) + { + return; + } + if(name_3.name_8() != null) + { + this.protocol = name_159(name_3.name_8().name_30(name_163)); + return; + } + name_3.clientLog = new DummyClientLog(); + var osgi:name_3 = new name_3(); + osgi.method_116(name_160,new DummyClientLog()); + new name_26().start(osgi); + new package_14.name_21().start(osgi); + new package_17.name_21().start(osgi); + this.protocol = name_159(osgi.name_30(name_163)); + this.var_629 = true; + } + + private function parseVersion1(input:ByteArray) : void + { + input.position = 4; + var nullMap:name_648 = name_453.name_454(input); + nullMap.name_702(0); + var data:ByteArray = new ByteArray(); + data.writeBytes(input,input.position); + data.position = 0; + var buffer:name_442 = new name_442(data,data,nullMap); + var codec:name_152 = this.protocol.name_448(new name_148(name_210,false)); + var _a3d:name_210 = name_210(codec.method_296(buffer)); + var a3d2:name_211 = method_725(_a3d); + this.method_721(a3d2); + } + + private function method_721(a3d:name_211) : void + { + var a3DObject:A3D2Object = null; + var a3DMesh:A3D2Mesh = null; + var a3DIndexBuffer:A3D2IndexBuffer = null; + var a3DVertexBuffer:A3D2VertexBuffer = null; + var a3DMaterial:A3D2Material = null; + var a3DBox:A3D2Box = null; + var a3DMap:A3D2Map = null; + var a3DImage:A3D2Image = null; + var a3DAmbientLight:A3D2AmbientLight = null; + var a3DOmniLight:A3D2OmniLight = null; + var a3DSpotLight:A3D2SpotLight = null; + var a3DDirLight:A3D2DirectionalLight = null; + var a3DSkin:A3D2Skin = null; + var a3DJoint:A3D2Joint = null; + var parent:name_155 = null; + var p:name_78 = null; + var object:name_78 = null; + var resJoint:name_700 = null; + var resSkin:name_380 = null; + var resAmbientLight:name_376 = null; + var resObject:name_78 = null; + var resOmniLight:OmniLight = null; + var resSpotLight:SpotLight = null; + var resDirLight:DirectionalLight = null; + var resMesh:name_380 = null; + var objectsMap:Dictionary = new Dictionary(); + var a3DIndexBuffers:Dictionary = new Dictionary(); + var a3DVertexBuffers:Dictionary = new Dictionary(); + var a3DMaterials:Dictionary = new Dictionary(); + var a3DBoxes:Dictionary = new Dictionary(); + var a3DMaps:Dictionary = new Dictionary(); + var a3DImages:Dictionary = new Dictionary(); + var parents:Dictionary = new Dictionary(); + for each(a3DIndexBuffer in a3d.indexBuffers) + { + a3DIndexBuffers[a3DIndexBuffer.id] = a3DIndexBuffer; + } + for each(a3DVertexBuffer in a3d.vertexBuffers) + { + a3DVertexBuffers[a3DVertexBuffer.id] = a3DVertexBuffer; + } + for each(a3DBox in a3d.boxes) + { + a3DBoxes[a3DBox.id] = a3DBox; + } + for each(a3DMaterial in a3d.materials) + { + a3DMaterials[a3DMaterial.id] = a3DMaterial; + } + for each(a3DMap in a3d.maps) + { + a3DMaps[a3DMap.id] = a3DMap; + } + for each(a3DImage in a3d.images) + { + a3DImages[a3DImage.id] = a3DImage; + } + this.hierarchy = new Vector.(); + this.objects = new Vector.(); + this.maps = new Dictionary(); + this.materials = new Dictionary(); + this.var_628 = new Dictionary(); + for each(a3DJoint in a3d.joints) + { + resJoint = new name_700(); + resJoint.visible = a3DJoint.visible; + resJoint.name = a3DJoint.name; + parents[resJoint] = a3DJoint.parentId; + objectsMap[a3DJoint.id] = resJoint; + if(a3DJoint.parentId == null) + { + this.hierarchy.push(resJoint); + } + this.objects.push(resJoint); + this.method_716(a3DJoint.transform,resJoint); + a3DBox = a3DBoxes[a3DJoint.boundBoxId]; + if(a3DBox != null) + { + this.method_718(a3DBox.box,resJoint); + } + } + for each(a3DSkin in a3d.skins) + { + resSkin = this.method_429(a3DSkin,a3DIndexBuffers,a3DVertexBuffers,a3DMaterials,a3DMaps,a3DImages); + resSkin.visible = a3DSkin.visible; + resSkin.name = a3DSkin.name; + parents[resSkin] = a3DSkin.parentId; + objectsMap[a3DSkin.id] = resSkin; + if(a3DSkin.parentId == null) + { + this.hierarchy.push(resSkin); + } + this.objects.push(resSkin); + this.method_716(a3DSkin.transform,resSkin); + a3DBox = a3DBoxes[a3DSkin.boundBoxId]; + if(a3DBox != null) + { + this.method_718(a3DBox.box,resSkin); + } + } + for each(a3DAmbientLight in a3d.ambientLights) + { + resAmbientLight = new name_376(a3DAmbientLight.color); + resAmbientLight.intensity = a3DAmbientLight.intensity; + resAmbientLight.visible = a3DAmbientLight.visible; + resAmbientLight.name = a3DAmbientLight.name; + parents[resAmbientLight] = a3DAmbientLight.parentId; + objectsMap[a3DAmbientLight.id] = resAmbientLight; + if(a3DAmbientLight.parentId == null) + { + this.hierarchy.push(resAmbientLight); + } + this.objects.push(resAmbientLight); + this.method_716(a3DAmbientLight.transform,resAmbientLight); + a3DBox = a3DBoxes[a3DAmbientLight.boundBoxId]; + if(a3DBox != null) + { + this.method_718(a3DBox.box,resAmbientLight); + } + } + for each(a3DObject in a3d.objects) + { + resObject = new name_78(); + resObject.visible = a3DObject.visible; + resObject.name = a3DObject.name; + parents[resObject] = a3DObject.parentId; + objectsMap[a3DObject.id] = resObject; + if(a3DObject.parentId == null) + { + this.hierarchy.push(resObject); + } + this.objects.push(resObject); + this.method_716(a3DObject.transform,resObject); + a3DBox = a3DBoxes[a3DObject.boundBoxId]; + if(a3DBox != null) + { + this.method_718(a3DBox.box,resObject); + } + } + for each(a3DOmniLight in a3d.omniLights) + { + resOmniLight = new OmniLight(a3DOmniLight.color,a3DOmniLight.attenuationBegin,a3DOmniLight.attenuationEnd); + resOmniLight.visible = a3DOmniLight.visible; + resOmniLight.name = a3DOmniLight.name; + parents[resOmniLight] = a3DOmniLight.parentId; + objectsMap[a3DOmniLight.id] = resOmniLight; + if(a3DOmniLight.parentId == null) + { + this.hierarchy.push(resOmniLight); + } + this.objects.push(resOmniLight); + this.method_716(a3DOmniLight.transform,resOmniLight); + } + for each(a3DSpotLight in a3d.spotLights) + { + resSpotLight = new SpotLight(a3DSpotLight.color,a3DSpotLight.attenuationBegin,a3DSpotLight.attenuationEnd,a3DSpotLight.hotspot,a3DSpotLight.falloff); + resSpotLight.visible = a3DSpotLight.visible; + resSpotLight.name = a3DSpotLight.name; + parents[resSpotLight] = a3DSpotLight.parentId; + objectsMap[a3DSpotLight.id] = resSpotLight; + if(a3DSpotLight.parentId == null) + { + this.hierarchy.push(resSpotLight); + } + this.objects.push(resSpotLight); + this.method_716(a3DSpotLight.transform,resSpotLight); + } + for each(a3DDirLight in a3d.directionalLights) + { + resDirLight = new DirectionalLight(a3DDirLight.color); + resDirLight.visible = a3DDirLight.visible; + resDirLight.name = a3DDirLight.name; + parents[resDirLight] = a3DDirLight.parentId; + objectsMap[a3DDirLight.id] = resDirLight; + if(a3DDirLight.parentId == null) + { + this.hierarchy.push(resDirLight); + } + this.objects.push(resDirLight); + this.method_716(a3DDirLight.transform,resDirLight); + } + for each(a3DMesh in a3d.meshes) + { + resMesh = this.method_727(a3DMesh,a3DIndexBuffers,a3DVertexBuffers,a3DMaterials,a3DMaps,a3DImages); + resMesh.visible = a3DMesh.visible; + resMesh.name = a3DMesh.name; + parents[resMesh] = a3DMesh.parentId; + objectsMap[a3DMesh.id] = resMesh; + if(a3DMesh.parentId == null) + { + this.hierarchy.push(resMesh); + } + this.objects.push(resMesh); + this.method_716(a3DMesh.transform,resMesh); + a3DBox = a3DBoxes[a3DMesh.boundBoxId]; + if(a3DBox != null) + { + this.method_718(a3DBox.box,resMesh); + } + } + for each(object in objectsMap) + { + parent = parents[object]; + if(parent != null) + { + p = objectsMap[parent]; + p.addChild(object); + } + } + } + + private function method_730(source:Vector.>, objectsMap:Dictionary) : Vector.> + { + var vector:Vector. = null; + var resultVector:Vector. = null; + var j:int = 0; + var jcount:int = 0; + var result:Vector.> = new Vector.>(); + for(var i:int = 0,var count:int = int(source.length); i < count; i++) + { + vector = source[i]; + resultVector = new Vector.(); + for(j = 0,jcount = int(vector.length); j < jcount; j++) + { + resultVector[j] = objectsMap[vector[j]]; + } + result[i] = resultVector; + } + return result; + } + + private function method_726(input:ByteArray) : void + { + input.position = 0; + var data:ByteArray = new ByteArray(); + var buffer:name_442 = new name_442(data,data,new name_648()); + name_162.method_303(input,buffer); + input.position = 0; + var versionMajor:int = int(buffer.reader.readUnsignedShort()); + var versionMinor:int = int(buffer.reader.readUnsignedShort()); + switch(versionMajor) + { + case 2: + this.parseVersion2_0(buffer); + } + } + + private function parseVersion2_0(buffer:name_442) : void + { + var codec:name_152 = this.protocol.name_448(new name_148(name_211,false)); + var a3d:name_211 = name_211(codec.method_296(buffer)); + this.method_721(a3d); + } + + private function method_718(box:Vector., destination:name_78) : void + { + destination.boundBox = new name_386(); + destination.boundBox.minX = box[0]; + destination.boundBox.minY = box[1]; + destination.boundBox.minZ = box[2]; + destination.boundBox.maxX = box[3]; + destination.boundBox.maxY = box[4]; + destination.boundBox.maxZ = box[5]; + } + + private function method_716(transform:A3D2Transform, obj:name_78) : void + { + if(transform == null) + { + return; + } + var matrix:name_214 = transform.matrix; + var mat:Matrix3D = new Matrix3D(Vector.([matrix.a,matrix.e,matrix.i,0,matrix.b,matrix.f,matrix.j,0,matrix.c,matrix.g,matrix.k,0,matrix.d,matrix.h,matrix.l,1])); + var vecs:Vector. = mat.decompose(); + obj.x = vecs[0].x; + obj.y = vecs[0].y; + obj.z = vecs[0].z; + obj.rotationX = vecs[1].x; + obj.rotationY = vecs[1].y; + obj.rotationZ = vecs[1].z; + obj.scaleX = vecs[2].x; + obj.scaleY = vecs[2].y; + obj.scaleZ = vecs[2].z; + } + + private function method_728(transform:A3D2Transform, obj:name_700) : void + { + if(transform == null) + { + return; + } + var matrix:name_214 = transform.matrix; + var mat:Vector. = Vector.([matrix.a,matrix.b,matrix.c,matrix.d,matrix.e,matrix.f,matrix.g,matrix.h,matrix.i,matrix.j,matrix.k,matrix.l]); + obj.alternativa3d::name_701(mat); + } + + private function method_727(a3DMesh:A3D2Mesh, indexBuffers:Dictionary, vertexBuffers:Dictionary, materials:Dictionary, maps:Dictionary, images:Dictionary) : name_380 + { + var s:A3D2Surface = null; + var m:name_641 = null; + var res:name_380 = new name_380(); + res.geometry = this.method_724(a3DMesh.indexBufferId,a3DMesh.vertexBuffers,indexBuffers,vertexBuffers); + var surfaces:Vector. = a3DMesh.surfaces; + for(var i:int = 0; i < surfaces.length; i++) + { + s = surfaces[i]; + m = this.method_722(materials[s.materialId],maps,images); + res.addSurface(m,s.indexBegin,s.numTriangles); + } + return res; + } + + private function method_429(a3DSkin:A3D2Skin, indexBuffers:Dictionary, vertexBuffers:Dictionary, materials:Dictionary, maps:Dictionary, images:Dictionary) : name_528 + { + var s:A3D2Surface = null; + var m:name_641 = null; + var res:name_528 = new name_528(1,a3DSkin.joints.length); + res.geometry = this.method_724(a3DSkin.indexBufferId,a3DSkin.vertexBuffers,indexBuffers,vertexBuffers); + var surfaces:Vector. = a3DSkin.surfaces; + for(var i:int = 0; i < surfaces.length; i++) + { + s = surfaces[i]; + m = this.method_722(materials[s.materialId],maps,images); + res.addSurface(m,s.indexBegin,s.numTriangles); + } + return res; + } + + private function method_731(geometry:name_119) : void + { + var offset:int = 0; + var i:int = 0; + var attr:int = 0; + var vertexStream:name_432 = geometry.alternativa3d::_vertexStreams[0]; + var prev:int = -1; + var stride:int = vertexStream.attributes.length * 4; + var length:int = vertexStream.data.length / stride; + var data:ByteArray = vertexStream.data; + for(var j:int = 0; j < length; j++) + { + offset = -4; + for(i = 0; i < stride; i++) + { + attr = int(vertexStream.attributes[i]); + offset += 4; + if(attr != prev) + { + switch(attr) + { + case name_126.JOINTS[0]: + data.position = j * stride + offset; + trace("JOINT0:",data.readFloat(),data.readFloat(),data.readFloat(),data.readFloat()); + break; + case name_126.JOINTS[1]: + data.position = j * stride + offset; + trace("JOINT1:",data.readFloat(),data.readFloat(),data.readFloat(),data.readFloat()); + } + prev = attr; + } + } + } + } + + private function method_724(indexBufferID:int, vertexBuffersIDs:Vector., indexBuffers:Dictionary, vertexBuffers:Dictionary) : name_119 + { + var id:int = 0; + var geometry:name_119 = null; + var vertexCount:uint = 0; + var buffer:A3D2VertexBuffer = null; + var byteArray:ByteArray = null; + var offset:int = 0; + var attributes:Array = null; + var jointsOffset:int = 0; + var k:int = 0; + var attr:int = 0; + var numFloats:int = 0; + var t:int = 0; + var key:String = "i" + indexBufferID.toString(); + for each(id in vertexBuffersIDs) + { + key += "v" + id.toString(); + } + geometry = this.var_628[key]; + if(geometry != null) + { + return geometry; + } + geometry = new name_119(); + var a3dIB:A3D2IndexBuffer = indexBuffers[indexBufferID]; + var indices:Vector. = name_28.method_99(a3dIB.byteBuffer); + var uvoffset:int = 0; + geometry.alternativa3d::_indices = indices; + var buffers:Vector. = vertexBuffersIDs; + for(var j:int = 0; j < buffers.length; j++) + { + buffer = vertexBuffers[buffers[j]]; + vertexCount = buffer.vertexCount; + byteArray = buffer.byteBuffer; + byteArray.endian = Endian.LITTLE_ENDIAN; + offset = 0; + attributes = new Array(); + jointsOffset = 0; + for(k = 0; k < buffer.attributes.length; k++) + { + switch(buffer.attributes[k]) + { + case A3D2VertexAttributes.POSITION: + attr = int(name_126.POSITION); + break; + case A3D2VertexAttributes.NORMAL: + attr = int(name_126.NORMAL); + break; + case A3D2VertexAttributes.TANGENT4: + attr = int(name_126.TANGENT4); + break; + case A3D2VertexAttributes.TEXCOORD: + attr = int(name_126.TEXCOORDS[uvoffset]); + uvoffset++; + break; + case A3D2VertexAttributes.JOINT: + attr = int(name_126.JOINTS[jointsOffset]); + jointsOffset++; + } + numFloats = name_126.name_433(attr); + numFloats = numFloats < 1 ? 1 : numFloats; + for(t = 0; t < numFloats; t++) + { + attributes[offset] = attr; + offset++; + } + } + geometry.addVertexStream(attributes); + geometry.alternativa3d::_vertexStreams[0].data = byteArray; + } + geometry.alternativa3d::_numVertices = buffers.length > 0 ? int(vertexCount) : 0; + this.var_628[key] = geometry; + return geometry; + } + + private function method_717(source:A3D2Map, images:Dictionary) : name_167 + { + if(source == null) + { + return null; + } + var res:name_167 = this.maps[source.imageId]; + if(res != null) + { + return res; + } + return this.maps[source.imageId] = new name_167(images[source.imageId].url); + } + + private function method_722(source:A3D2Material, a3DMaps:Dictionary, images:Dictionary) : name_641 + { + if(source == null) + { + return null; + } + var res:name_641 = this.materials[source.id]; + if(res != null) + { + return res; + } + res = this.materials[source.id] = new name_641(); + res.textures["diffuse"] = this.method_717(a3DMaps[source.diffuseMapId],images); + res.textures["emission"] = this.method_717(a3DMaps[source.lightMapId],images); + res.textures["bump"] = this.method_717(a3DMaps[source.normalMapId],images); + res.textures["specular"] = this.method_717(a3DMaps[source.specularMapId],images); + res.textures["glossiness"] = this.method_717(a3DMaps[source.glossinessMapId],images); + res.textures["transparent"] = this.method_717(a3DMaps[source.opacityMapId],images); + return res; + } + } +} + +import package_39.name_160; +import package_39.name_450; + +class DummyClientLog implements name_160 +{ + public function DummyClientLog() + { + super(); + } + + public function logError(channelName:String, text:String, ... vars) : void + { + } + + public function log(channelName:String, text:String, ... rest) : void + { + } + + public function getChannelStrings(channelName:String) : Vector. + { + return null; + } + + public function addLogListener(listener:name_450) : void + { + } + + public function removeLogListener(listener:name_450) : void + { + } + + public function addLogChannelListener(channelName:String, listener:name_450) : void + { + } + + public function removeLogChannelListener(channelName:String, listener:name_450) : void + { + } + + public function getChannelNames() : Vector. + { + return null; + } +} diff --git a/src/package_116/name_530.as b/src/package_116/name_530.as new file mode 100644 index 0000000..9a8c01d --- /dev/null +++ b/src/package_116/name_530.as @@ -0,0 +1,440 @@ +package package_116 +{ + import alternativa.engine3d.alternativa3d; + import flash.utils.Dictionary; + import package_123.name_706; + import package_123.name_707; + import package_123.name_711; + import package_123.name_713; + import package_124.name_705; + import package_125.name_709; + import package_21.name_116; + import package_21.name_78; + import package_28.name_167; + + use namespace alternativa3d; + + public class name_530 + { + public var hierarchy:Vector.; + + public var objects:Vector.; + + public var lights:Vector.; + + public var materials:Vector.; + + public var var_635:Vector.; + + private var var_634:Dictionary; + + public function name_530() + { + super(); + } + + public static function method_747(data:XML) : name_705 + { + var document:name_707 = new name_707(data,0); + var clip:name_705 = new name_705(); + method_742(clip,document.scene.nodes); + return clip.numTracks > 0 ? clip : null; + } + + private static function method_742(clip:name_705, nodes:Vector.) : void + { + var node:name_706 = null; + var animation:name_705 = null; + var t:int = 0; + var numTracks:int = 0; + var track:name_709 = null; + for(var i:int = 0,var count:int = int(nodes.length); i < count; i++) + { + node = nodes[i]; + animation = node.method_747(); + if(animation != null) + { + for(t = 0,numTracks = animation.numTracks; t < numTracks; t++) + { + track = animation.name_716(t); + clip.name_712(track); + } + } + else + { + clip.name_712(node.name_715()); + } + method_742(clip,node.nodes); + } + } + + public function method_750() : void + { + this.objects = null; + this.hierarchy = null; + this.lights = null; + this.var_635 = null; + this.materials = null; + this.var_634 = null; + } + + public function method_752(object:name_78) : String + { + return this.var_634[object]; + } + + private function init(data:XML, units:Number) : name_707 + { + this.method_750(); + this.objects = new Vector.(); + this.hierarchy = new Vector.(); + this.lights = new Vector.(); + this.var_635 = new Vector.(); + this.materials = new Vector.(); + this.var_634 = new Dictionary(true); + return new name_707(data,units); + } + + public function method_314(data:XML, baseURL:String = null, trimPaths:Boolean = false) : void + { + var i:int = 0; + var count:int = 0; + var document:name_707 = this.init(data,0); + if(document.scene != null) + { + this.method_743(document.scene.nodes,null,false); + this.method_748(document.materials,baseURL,trimPaths); + for(i = 0,count = int(this.hierarchy.length); i < count; i++) + { + this.hierarchy[i].calculateBoundBox(); + } + } + } + + private function addObject(animatedObject:name_711, parent:name_78, layer:String) : name_78 + { + var object:name_78 = name_78(animatedObject.object); + this.objects.push(object); + if(parent == null) + { + this.hierarchy.push(object); + } + else + { + parent.addChild(object); + } + if(object is name_116) + { + this.lights.push(name_116(object)); + } + if(animatedObject.animation != null) + { + this.var_635.push(animatedObject.animation); + } + if(Boolean(layer)) + { + this.var_634[object] = layer; + } + return object; + } + + private function method_745(animatedObjects:Vector., parent:name_78, layer:String) : name_78 + { + var first:name_78 = this.addObject(animatedObjects[0],parent,layer); + for(var i:int = 1,var count:int = int(animatedObjects.length); i < count; i++) + { + this.addObject(animatedObjects[i],parent,layer); + } + return first; + } + + private function method_746(node:name_706) : Boolean + { + var child:name_706 = null; + var nodes:Vector. = node.nodes; + for(var i:int = 0,var count:int = int(nodes.length); i < count; ) + { + child = nodes[i]; + child.method_314(); + if(child.skins != null) + { + return true; + } + if(this.method_746(child)) + { + return true; + } + i++; + } + return false; + } + + private function method_743(nodes:Vector., parent:name_78, skinsOnly:Boolean = false) : void + { + var node:name_706 = null; + var container:name_78 = null; + for(var i:int = 0,var count:int = int(nodes.length); i < count; ) + { + node = nodes[i]; + node.method_314(); + container = null; + if(node.skins != null) + { + container = this.method_745(node.skins,parent,node.layer); + } + else if(!skinsOnly && !node.skinOrTopmostJoint) + { + if(node.objects != null) + { + container = this.method_745(node.objects,parent,node.layer); + } + else + { + container = new name_78(); + container.name = node.name_708(node.name); + this.addObject(node.name_714(node.name_710(container)),parent,node.layer); + } + } + else if(this.method_746(node)) + { + container = new name_78(); + container.name = node.name_708(node.name); + this.addObject(node.name_714(node.name_710(container)),parent,node.layer); + this.method_743(node.nodes,container,skinsOnly || node.skinOrTopmostJoint); + } + if(container != null) + { + this.method_743(node.nodes,container,skinsOnly || node.skinOrTopmostJoint); + } + i++; + } + } + + private function method_749(path:String) : String + { + var index:int = int(path.lastIndexOf("/")); + return index < 0 ? path : path.substr(index + 1); + } + + private function method_748(materials:Object, baseURL:String, trimPaths:Boolean) : void + { + var tmaterial:name_641 = null; + var material:name_713 = null; + var resource:name_167 = null; + var base:String = null; + var end:int = 0; + for each(material in materials) + { + if(material.used) + { + material.method_314(); + this.materials.push(material.material); + } + } + if(trimPaths) + { + for each(tmaterial in this.materials) + { + for each(resource in tmaterial.textures) + { + if(resource != null && resource.url != null) + { + resource.url = this.method_749(this.method_744(resource.url)); + } + } + } + } + else + { + for each(tmaterial in this.materials) + { + for each(resource in tmaterial.textures) + { + if(resource != null && resource.url != null) + { + resource.url = this.method_744(resource.url); + } + } + } + } + if(baseURL != null) + { + baseURL = this.method_744(baseURL); + end = int(baseURL.lastIndexOf("/")); + base = end < 0 ? "" : baseURL.substr(0,end); + for each(tmaterial in this.materials) + { + for each(resource in tmaterial.textures) + { + if(resource != null && resource.url != null) + { + resource.url = this.method_751(resource.url,base); + } + } + } + } + } + + private function method_744(url:String) : String + { + var pathStart:int = int(url.indexOf("://")); + pathStart = pathStart < 0 ? 0 : pathStart + 3; + var pathEnd:int = int(url.indexOf("?",pathStart)); + pathEnd = pathEnd < 0 ? int(url.indexOf("#",pathStart)) : pathEnd; + var path:String = url.substring(pathStart,pathEnd < 0 ? 2147483647 : pathEnd); + path = path.replace(/\\/g,"/"); + var fileIndex:int = int(url.indexOf("file://")); + if(fileIndex >= 0) + { + if(url.charAt(pathStart) == "/") + { + return "file://" + path + (pathEnd >= 0 ? url.substring(pathEnd) : ""); + } + return "file:///" + path + (pathEnd >= 0 ? url.substring(pathEnd) : ""); + } + return url.substring(0,pathStart) + path + (pathEnd >= 0 ? url.substring(pathEnd) : ""); + } + + private function method_741(path:String, base:String, relative:Boolean = false) : String + { + var part:String = null; + var basePart:String = null; + var baseParts:Array = base.split("/"); + var parts:Array = path.split("/"); + for(var i:int = 0,var count:int = int(parts.length); i < count; i++) + { + part = parts[i]; + if(part == "..") + { + basePart = baseParts.pop(); + while(basePart == "." || basePart == "" && basePart != null) + { + basePart = baseParts.pop(); + } + if(relative) + { + if(basePart == "..") + { + baseParts.push("..",".."); + } + else if(basePart == null) + { + baseParts.push(".."); + } + } + } + else + { + baseParts.push(part); + } + } + return baseParts.join("/"); + } + + private function method_751(url:String, base:String) : String + { + var queryAndFragmentIndex:int = 0; + var path:String = null; + var queryAndFragment:String = null; + var bPath:String = null; + var bSlashIndex:int = 0; + var bShemeIndex:int = 0; + var bAuthorityIndex:int = 0; + var bSheme:String = null; + var bAuthority:String = null; + if(base == "") + { + return url; + } + if(url.charAt(0) == "." && url.charAt(1) == "/") + { + return base + url.substr(1); + } + if(url.charAt(0) == "/") + { + return url; + } + if(url.charAt(0) == "." && url.charAt(1) == ".") + { + queryAndFragmentIndex = int(url.indexOf("?")); + queryAndFragmentIndex = queryAndFragmentIndex < 0 ? int(url.indexOf("#")) : queryAndFragmentIndex; + if(queryAndFragmentIndex < 0) + { + queryAndFragment = ""; + path = url; + } + else + { + queryAndFragment = url.substring(queryAndFragmentIndex); + path = url.substring(0,queryAndFragmentIndex); + } + bSlashIndex = int(base.indexOf("/")); + bShemeIndex = int(base.indexOf(":")); + bAuthorityIndex = int(base.indexOf("//")); + if(bAuthorityIndex < 0 || bAuthorityIndex > bSlashIndex) + { + if(bShemeIndex >= 0 && bShemeIndex < bSlashIndex) + { + bSheme = base.substring(0,bShemeIndex + 1); + bPath = base.substring(bShemeIndex + 1); + if(bPath.charAt(0) == "/") + { + return bSheme + "/" + this.method_741(path,bPath.substring(1),false) + queryAndFragment; + } + return bSheme + this.method_741(path,bPath,false) + queryAndFragment; + } + if(base.charAt(0) == "/") + { + return "/" + this.method_741(path,base.substring(1),false) + queryAndFragment; + } + return this.method_741(path,base,true) + queryAndFragment; + } + bSlashIndex = int(base.indexOf("/",bAuthorityIndex + 2)); + if(bSlashIndex >= 0) + { + bAuthority = base.substring(0,bSlashIndex + 1); + bPath = base.substring(bSlashIndex + 1); + return bAuthority + this.method_741(path,bPath,false) + queryAndFragment; + } + bAuthority = base; + return bAuthority + "/" + this.method_741(path,"",false); + } + var shemeIndex:int = int(url.indexOf(":")); + var slashIndex:int = int(url.indexOf("/")); + if(shemeIndex >= 0 && (shemeIndex < slashIndex || slashIndex < 0)) + { + return url; + } + return base + "/" + url; + } + + public function method_729(name:String) : name_78 + { + var object:name_78 = null; + for each(object in this.objects) + { + if(object.name == name) + { + return object; + } + } + return null; + } + + public function method_753(object:Object) : name_705 + { + var animation:name_705 = null; + var objects:Array = null; + for each(animation in this.var_635) + { + objects = animation.alternativa3d::var_346; + if(objects.indexOf(object) >= 0) + { + return animation; + } + } + return null; + } + } +} + diff --git a/src/package_116/name_641.as b/src/package_116/name_641.as new file mode 100644 index 0000000..f3806cc --- /dev/null +++ b/src/package_116/name_641.as @@ -0,0 +1,86 @@ +package package_116 +{ + import alternativa.engine3d.alternativa3d; + import avmplus.getQualifiedClassName; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_28.name_119; + import package_28.name_129; + import package_28.name_167; + import package_4.*; + + use namespace alternativa3d; + + public class name_641 extends class_4 + { + public var colors:Object; + + public var textures:Object; + + public var transparency:Number = 0; + + public var var_670:String = "diffuse"; + + private var textureMaterial:class_5; + + private var var_669:name_313; + + public function name_641() + { + super(); + this.textures = new Object(); + this.colors = new Object(); + } + + override alternativa3d function fillResources(resources:Dictionary, resourceType:Class) : void + { + var texture:name_129 = null; + super.alternativa3d::fillResources(resources,resourceType); + for each(texture in this.textures) + { + if(texture != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(texture)) as Class,resourceType))) + { + resources[texture] = true; + } + } + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + var map:name_167 = null; + var colorO:Object = this.colors[this.var_670]; + if(colorO != null) + { + if(this.var_669 == null) + { + this.var_669 = new name_313(int(colorO)); + } + else + { + this.var_669.color = int(colorO); + } + this.var_669.alternativa3d::collectDraws(camera,surface,geometry,lights,lightsLength,objectRenderPriority); + } + else + { + map = this.textures[this.var_670]; + if(map != null) + { + if(this.textureMaterial == null) + { + this.textureMaterial = new class_5(map); + } + else + { + this.textureMaterial.diffuseMap = map; + } + this.textureMaterial.alternativa3d::collectDraws(camera,surface,geometry,lights,lightsLength,objectRenderPriority); + } + } + } + } +} + diff --git a/src/package_117/name_542.as b/src/package_117/name_542.as new file mode 100644 index 0000000..2dfedb7 --- /dev/null +++ b/src/package_117/name_542.as @@ -0,0 +1,10 @@ +package package_117 +{ + import package_92.name_271; + + public interface name_542 + { + function name_541(param1:name_271, param2:Number) : Number; + } +} + diff --git a/src/package_118/class_37.as b/src/package_118/class_37.as new file mode 100644 index 0000000..af35c4d --- /dev/null +++ b/src/package_118/class_37.as @@ -0,0 +1,10 @@ +package package_118 +{ + public interface class_37 + { + function get radius() : Number; + + function method_758(param1:Number, param2:Number) : Number; + } +} + diff --git a/src/package_118/class_38.as b/src/package_118/class_38.as new file mode 100644 index 0000000..71f0b5c --- /dev/null +++ b/src/package_118/class_38.as @@ -0,0 +1,11 @@ +package package_118 +{ + import package_86.name_655; + import package_92.name_271; + + public interface class_38 extends name_655 + { + function method_759(param1:name_271) : void; + } +} + diff --git a/src/package_118/name_550.as b/src/package_118/name_550.as new file mode 100644 index 0000000..3df4ebf --- /dev/null +++ b/src/package_118/name_550.as @@ -0,0 +1,146 @@ +package package_118 +{ + import package_10.name_17; + import package_119.name_552; + import package_27.name_501; + import package_46.name_194; + import package_72.class_12; + import package_74.name_233; + import package_74.name_327; + import package_74.name_553; + import package_86.name_257; + import package_86.name_468; + import package_86.name_540; + import package_86.name_654; + import package_90.name_273; + import package_92.name_271; + + public class name_550 implements name_233 + { + private static const HIT_POINT_CORRECTION:Number = 1; + + private static var direction:name_194 = new name_194(); + + private static var force:name_194 = new name_194(); + + private static var splashHits:Vector. = new Vector.(); + + private static var rayHit:name_273 = new name_273(); + + private static var filter:name_540 = new name_540(); + + private static var hitInfo:name_553 = new name_553(); + + private var directImpactForce:Number; + + private var weakening:name_327; + + private var splashDamage:class_37; + + private var effects:class_12; + + private var collisionDetector:name_468; + + private var splashTargetFilter:class_38; + + private var callback:name_552; + + public function name_550(directImpactForce:Number, weakening:name_327, splashDamage:class_37, effects:class_12, collisionDetector:name_468, splashTargetFilter:class_38) + { + super(); + this.directImpactForce = directImpactForce; + this.weakening = weakening; + this.splashDamage = splashDamage; + this.effects = effects; + this.collisionDetector = collisionDetector; + this.splashTargetFilter = splashTargetFilter; + } + + public function method_383(callback:name_552) : void + { + this.callback = callback; + } + + public function method_372(gameKernel:name_17, shotId:int, shooter:name_271, barrelOrigin:name_194, barrelLength:Number, shotDirection:name_194, muzzlePosition:name_194) : void + { + var distance:Number = NaN; + var weakeningCoefficient:Number = NaN; + var impactForce:Number = NaN; + var primaryTarget:name_271 = null; + filter.body = shooter; + if(this.collisionDetector.raycast(barrelOrigin,shotDirection,name_257.WEAPON | name_257.STATIC,name_501.BIG_VALUE,filter,rayHit)) + { + distance = rayHit.t - barrelLength; + if(distance < 0) + { + distance = 0; + } + weakeningCoefficient = Number(this.weakening.name_554(distance)); + impactForce = this.directImpactForce * weakeningCoefficient; + primaryTarget = rayHit.primitive.body; + if(primaryTarget != null) + { + primaryTarget.name_556(rayHit.position,shotDirection,impactForce); + } + rayHit.position.method_362(HIT_POINT_CORRECTION,rayHit.normal); + splashHits.length = 0; + this.method_760(rayHit.position,primaryTarget,impactForce,splashHits); + this.effects.createEffects(rayHit.position,weakeningCoefficient,this.splashDamage.radius); + hitInfo.body = primaryTarget; + hitInfo.direction.copy(shotDirection); + hitInfo.distance = distance; + hitInfo.normal.copy(rayHit.normal); + hitInfo.position.copy(rayHit.position); + if(this.callback != null) + { + this.callback.name_555(shotId,hitInfo,splashHits); + } + splashHits.length = 0; + } + filter.body = null; + } + + public function method_465(hitPosition:name_194, primaryTarget:name_271, muzzlePosition:name_194) : void + { + direction.method_366(hitPosition,muzzlePosition); + var weakeningCoefficient:Number = Number(this.weakening.name_554(direction.length())); + var imactForce:Number = this.directImpactForce * weakeningCoefficient; + if(primaryTarget != null) + { + direction.normalize(); + primaryTarget.name_556(hitPosition,direction,imactForce); + } + this.method_760(hitPosition,primaryTarget,imactForce,null); + this.effects.createEffects(hitPosition,weakeningCoefficient,this.splashDamage.radius); + } + + private function method_760(hitPosition:name_194, primaryTarget:name_271, impactForce:Number, splashHits:Vector.) : void + { + var bodyDistance:name_654 = null; + var targetBody:name_271 = null; + var splashImpactForce:Number = NaN; + var weaponHit:name_553 = null; + this.splashTargetFilter.method_759(primaryTarget); + var objectsInRadius:Vector. = this.collisionDetector.method_651(hitPosition,this.splashDamage.radius,this.splashTargetFilter); + this.splashTargetFilter.method_759(null); + if(objectsInRadius != null) + { + for each(bodyDistance in objectsInRadius) + { + targetBody = bodyDistance.body; + splashImpactForce = Number(this.splashDamage.method_758(impactForce,bodyDistance.distance)); + force.method_366(targetBody.state.position,hitPosition).normalize().scale(splashImpactForce); + targetBody.name_585(force); + if(splashHits != null) + { + weaponHit = new name_553(); + weaponHit.distance = bodyDistance.distance; + weaponHit.body = targetBody; + splashHits.push(weaponHit); + } + } + } + } + } +} + diff --git a/src/package_119/name_552.as b/src/package_119/name_552.as new file mode 100644 index 0000000..58cec0d --- /dev/null +++ b/src/package_119/name_552.as @@ -0,0 +1,10 @@ +package package_119 +{ + import package_74.name_553; + + public interface name_552 + { + function name_555(param1:int, param2:name_553, param3:Vector.) : void; + } +} + diff --git a/src/package_12/TanksHudDemo_fullScreenState1Class.as b/src/package_12/TanksHudDemo_fullScreenState1Class.as new file mode 100644 index 0000000..557699a --- /dev/null +++ b/src/package_12/TanksHudDemo_fullScreenState1Class.as @@ -0,0 +1,15 @@ +package package_12 +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/21_package_12.TanksHudDemo_fullScreenState1Class.png")] + public class TanksHudDemo_fullScreenState1Class extends BitmapAsset + { + public function TanksHudDemo_fullScreenState1Class() + { + super(); + } + } +} + diff --git a/src/package_12/TanksHudDemo_fullScreenState2Class.as b/src/package_12/TanksHudDemo_fullScreenState2Class.as new file mode 100644 index 0000000..30f9b29 --- /dev/null +++ b/src/package_12/TanksHudDemo_fullScreenState2Class.as @@ -0,0 +1,15 @@ +package package_12 +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/18_package_12.TanksHudDemo_fullScreenState2Class.png")] + public class TanksHudDemo_fullScreenState2Class extends BitmapAsset + { + public function TanksHudDemo_fullScreenState2Class() + { + super(); + } + } +} + diff --git a/src/package_12/TanksHudDemo_nextTankState1Class.as b/src/package_12/TanksHudDemo_nextTankState1Class.as new file mode 100644 index 0000000..c4748c1 --- /dev/null +++ b/src/package_12/TanksHudDemo_nextTankState1Class.as @@ -0,0 +1,15 @@ +package package_12 +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/17_package_12.TanksHudDemo_nextTankState1Class.png")] + public class TanksHudDemo_nextTankState1Class extends BitmapAsset + { + public function TanksHudDemo_nextTankState1Class() + { + super(); + } + } +} + diff --git a/src/package_12/TanksHudDemo_nextTankState2Class.as b/src/package_12/TanksHudDemo_nextTankState2Class.as new file mode 100644 index 0000000..3dc9892 --- /dev/null +++ b/src/package_12/TanksHudDemo_nextTankState2Class.as @@ -0,0 +1,15 @@ +package package_12 +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/20_package_12.TanksHudDemo_nextTankState2Class.png")] + public class TanksHudDemo_nextTankState2Class extends BitmapAsset + { + public function TanksHudDemo_nextTankState2Class() + { + super(); + } + } +} + diff --git a/src/package_12/name_15.as b/src/package_12/name_15.as new file mode 100644 index 0000000..30d9c94 --- /dev/null +++ b/src/package_12/name_15.as @@ -0,0 +1,204 @@ +package package_12 +{ + import flash.display.Bitmap; + import flash.display.Sprite; + import flash.events.Event; + import flash.events.MouseEvent; + + public class name_15 extends Sprite + { + private static const topLeftIconClass:Class = name_221; + + private static const topRightIconClass:Class = name_222; + + private static const bottomLeftIconClass:Class = name_220; + + private static const fullScreenState1Class:Class = TanksHudDemo_fullScreenState1Class; + + private static const fullScreenState2Class:Class = TanksHudDemo_fullScreenState2Class; + + private static const nextTankState1Class:Class = TanksHudDemo_nextTankState1Class; + + private static const nextTankState2Class:Class = TanksHudDemo_nextTankState2Class; + + private static const GAP_RIGHT:int = 7; + + private static const GAP_BOTTOM:int = 7; + + private static const GAP_BEEWEN_BUTTON:int = 1; + + private var var_60:Bitmap; + + private var var_57:Bitmap; + + private var var_58:Bitmap; + + private var fullScreenButtonState1:Bitmap; + + private var fullScreenButtonState2:Bitmap; + + private var nextTankButtonState1:Bitmap; + + private var nextTankButtonState2:Bitmap; + + private var var_55:Sprite; + + private var var_56:Sprite; + + private var var_59:Boolean; + + public function name_15() + { + super(); + this.init(); + } + + private function init(param1:Event = null) : void + { + tabEnabled = false; + tabChildren = false; + mouseEnabled = false; + this.var_60 = new topLeftIconClass(); + addChild(this.var_60); + this.var_57 = new topRightIconClass(); + addChild(this.var_57); + this.var_58 = new bottomLeftIconClass(); + addChild(this.var_58); + this.var_55 = new Sprite(); + this.var_55.mouseChildren = false; + addChild(this.var_55); + this.fullScreenButtonState1 = new fullScreenState1Class(); + this.var_55.addChild(this.fullScreenButtonState1); + this.fullScreenButtonState2 = new fullScreenState2Class(); + this.var_55.addChild(this.fullScreenButtonState2); + this.var_55.addEventListener(MouseEvent.ROLL_OVER,this.method_132); + this.var_55.addEventListener(MouseEvent.ROLL_OUT,this.method_131); + this.var_55.addEventListener(MouseEvent.CLICK,this.method_134); + this.name_31 = false; + this.var_56 = new Sprite(); + this.var_56.mouseChildren = false; + addChild(this.var_56); + this.nextTankButtonState1 = new nextTankState1Class(); + this.var_56.addChild(this.nextTankButtonState1); + this.nextTankButtonState2 = new nextTankState2Class(); + this.var_56.addChild(this.nextTankButtonState2); + this.nextTankButtonState2.visible = false; + this.var_56.addEventListener(MouseEvent.ROLL_OVER,this.method_136); + this.var_56.addEventListener(MouseEvent.ROLL_OUT,this.method_133); + this.var_56.addEventListener(MouseEvent.CLICK,this.method_135); + } + + public function destroy() : void + { + if(this.var_60 != null) + { + removeChild(this.var_60); + } + if(this.var_57 != null) + { + removeChild(this.var_57); + } + if(this.var_58 != null) + { + removeChild(this.var_58); + } + if(this.var_55 != null) + { + this.var_55.removeEventListener(MouseEvent.ROLL_OVER,this.method_132); + this.var_55.removeEventListener(MouseEvent.ROLL_OUT,this.method_131); + this.var_55.removeEventListener(MouseEvent.CLICK,this.method_134); + removeChild(this.var_55); + } + if(this.var_56 != null) + { + this.var_56.removeEventListener(MouseEvent.ROLL_OVER,this.method_136); + this.var_56.removeEventListener(MouseEvent.ROLL_OUT,this.method_133); + this.var_56.removeEventListener(MouseEvent.CLICK,this.method_135); + removeChild(this.var_56); + } + this.var_60 = null; + this.var_57 = null; + this.var_58 = null; + this.var_55 = null; + this.var_56 = null; + } + + public function name_50(param1:Number, param2:Number) : void + { + if(this.var_57 != null) + { + this.var_57.x = param1 - this.var_57.width; + } + if(this.var_58 != null) + { + this.var_58.y = param2 - this.var_58.height; + } + if(this.var_55 != null) + { + this.var_55.x = param1 - this.var_55.width - GAP_RIGHT; + this.var_55.y = param2 - this.var_55.height - GAP_BOTTOM; + } + if(this.var_56 != null) + { + this.var_56.x = param1 - this.var_55.width - this.var_56.width - GAP_BEEWEN_BUTTON - GAP_RIGHT; + this.var_56.y = param2 - this.var_56.height - GAP_BOTTOM; + } + } + + public function get name_31() : Boolean + { + return this.var_59; + } + + public function set name_31(param1:Boolean) : void + { + this.var_59 = param1; + if(this.var_59 == false) + { + this.fullScreenButtonState2.visible = false; + } + else + { + this.fullScreenButtonState2.visible = true; + } + } + + private function method_132(param1:MouseEvent) : void + { + if(this.var_59 == false) + { + this.fullScreenButtonState2.visible = true; + } + } + + private function method_131(param1:MouseEvent) : void + { + if(this.var_59 == false) + { + this.fullScreenButtonState2.visible = false; + } + } + + private function method_134(param1:MouseEvent) : void + { + this.name_31 = !this.var_59; + dispatchEvent(new Event("CLICK_FULL_SCREEN_BUTTON")); + } + + private function method_136(param1:MouseEvent) : void + { + this.nextTankButtonState2.visible = true; + } + + private function method_133(param1:MouseEvent) : void + { + this.nextTankButtonState2.visible = false; + } + + private function method_135(param1:MouseEvent) : void + { + dispatchEvent(new Event("CLICK_NEXT_TANK_BUTTON")); + } + } +} + diff --git a/src/package_12/name_220.as b/src/package_12/name_220.as new file mode 100644 index 0000000..eac8e8e --- /dev/null +++ b/src/package_12/name_220.as @@ -0,0 +1,15 @@ +package package_12 +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/22_package_12.name_220.png")] + public class name_220 extends BitmapAsset + { + public function name_220() + { + super(); + } + } +} + diff --git a/src/package_12/name_221.as b/src/package_12/name_221.as new file mode 100644 index 0000000..60762c7 --- /dev/null +++ b/src/package_12/name_221.as @@ -0,0 +1,15 @@ +package package_12 +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/15_package_12.name_221.png")] + public class name_221 extends BitmapAsset + { + public function name_221() + { + super(); + } + } +} + diff --git a/src/package_12/name_222.as b/src/package_12/name_222.as new file mode 100644 index 0000000..675fc79 --- /dev/null +++ b/src/package_12/name_222.as @@ -0,0 +1,15 @@ +package package_12 +{ + import mx.core.BitmapAsset; + + [ExcludeClass] + [Embed(source="/_assets/19_package_12.name_222.png")] + public class name_222 extends BitmapAsset + { + public function name_222() + { + super(); + } + } +} + diff --git a/src/package_120/name_606.as b/src/package_120/name_606.as new file mode 100644 index 0000000..5ff3150 --- /dev/null +++ b/src/package_120/name_606.as @@ -0,0 +1,22 @@ +package package_120 +{ + import flash.utils.Dictionary; + import package_76.name_235; + import package_76.name_631; + + public class name_606 implements name_631 + { + public var name_605:Dictionary = new Dictionary(); + + public function name_606() + { + super(); + } + + public function name_664(primitive:name_235) : Boolean + { + return this.name_605[primitive.body] == null; + } + } +} + diff --git a/src/package_121/class_41.as b/src/package_121/class_41.as new file mode 100644 index 0000000..3ad04c8 --- /dev/null +++ b/src/package_121/class_41.as @@ -0,0 +1,455 @@ +package package_121 +{ + import package_46.name_194; + import package_76.name_235; + import package_76.name_665; + import package_92.name_630; + + public class class_41 implements name_665 + { + public function class_41() + { + super(); + } + + public function getContact(prim1:name_235, prim2:name_235, contact:name_630) : Boolean + { + return false; + } + + public function haveCollision(prim1:name_235, prim2:name_235) : Boolean + { + return false; + } + + protected function method_824(hs:name_194, axisIdx:int, negativeFace:Boolean, result:Vector.) : void + { + var v:name_194 = null; + switch(axisIdx) + { + case 0: + if(negativeFace) + { + v = result[0]; + v.x = -hs.x; + v.y = hs.y; + v.z = -hs.z; + v = result[1]; + v.x = -hs.x; + v.y = -hs.y; + v.z = -hs.z; + v = result[2]; + v.x = -hs.x; + v.y = -hs.y; + v.z = hs.z; + v = result[3]; + v.x = -hs.x; + v.y = hs.y; + v.z = hs.z; + break; + } + v = result[0]; + v.x = hs.x; + v.y = -hs.y; + v.z = -hs.z; + v = result[1]; + v.x = hs.x; + v.y = hs.y; + v.z = -hs.z; + v = result[2]; + v.x = hs.x; + v.y = hs.y; + v.z = hs.z; + v = result[3]; + v.x = hs.x; + v.y = -hs.y; + v.z = hs.z; + break; + case 1: + if(negativeFace) + { + v = result[0]; + v.x = -hs.x; + v.y = -hs.y; + v.z = -hs.z; + v = result[1]; + v.x = hs.x; + v.y = -hs.y; + v.z = -hs.z; + v = result[2]; + v.x = hs.x; + v.y = -hs.y; + v.z = hs.z; + v = result[3]; + v.x = -hs.x; + v.y = -hs.y; + v.z = hs.z; + break; + } + v = result[0]; + v.x = hs.x; + v.y = hs.y; + v.z = -hs.z; + v = result[1]; + v.x = -hs.x; + v.y = hs.y; + v.z = -hs.z; + v = result[2]; + v.x = -hs.x; + v.y = hs.y; + v.z = hs.z; + v = result[3]; + v.x = hs.x; + v.y = hs.y; + v.z = hs.z; + break; + case 2: + if(negativeFace) + { + v = result[0]; + v.x = -hs.x; + v.y = hs.y; + v.z = -hs.z; + v = result[1]; + v.x = hs.x; + v.y = hs.y; + v.z = -hs.z; + v = result[2]; + v.x = hs.x; + v.y = -hs.y; + v.z = -hs.z; + v = result[3]; + v.x = -hs.x; + v.y = -hs.y; + v.z = -hs.z; + break; + } + v = result[0]; + v.x = -hs.x; + v.y = -hs.y; + v.z = hs.z; + v = result[1]; + v.x = hs.x; + v.y = -hs.y; + v.z = hs.z; + v = result[2]; + v.x = hs.x; + v.y = hs.y; + v.z = hs.z; + v = result[3]; + v.x = -hs.x; + v.y = hs.y; + v.z = hs.z; + break; + } + } + + protected function method_822(x:Number, pnum:int, points:Vector., result:Vector., epsilon:Number) : int + { + var x1:Number = NaN; + var p2:name_194 = null; + var dx:Number = NaN; + var dy:Number = NaN; + var dz:Number = NaN; + var t:Number = NaN; + var v:name_194 = null; + x1 = x - epsilon; + var num:int = 0; + var p1:name_194 = points[int(pnum - 1)]; + for(var i:int = 0; i < pnum; i++) + { + p2 = points[i]; + if(p1.x > x1) + { + v = result[num]; + num++; + v.x = p1.x; + v.y = p1.y; + v.z = p1.z; + if(p2.x < x1) + { + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + t = (x - p1.x) / dx; + v = result[num]; + num++; + v.x = p1.x + t * dx; + v.y = p1.y + t * dy; + v.z = p1.z + t * dz; + } + } + else if(p2.x > x1) + { + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + t = (x - p1.x) / dx; + v = result[num]; + num++; + v.x = p1.x + t * dx; + v.y = p1.y + t * dy; + v.z = p1.z + t * dz; + } + p1 = p2; + } + return num; + } + + protected function method_821(x:Number, pnum:int, points:Vector., result:Vector., epsilon:Number) : int + { + var p2:name_194 = null; + var dx:Number = NaN; + var dy:Number = NaN; + var dz:Number = NaN; + var t:Number = NaN; + var v:name_194 = null; + var x1:Number = x + epsilon; + var num:int = 0; + var p1:name_194 = points[int(pnum - 1)]; + for(var i:int = 0; i < pnum; i++) + { + p2 = points[i]; + if(p1.x < x1) + { + v = result[num]; + num++; + v.x = p1.x; + v.y = p1.y; + v.z = p1.z; + if(p2.x > x1) + { + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + t = (x - p1.x) / dx; + v = result[num]; + num++; + v.x = p1.x + t * dx; + v.y = p1.y + t * dy; + v.z = p1.z + t * dz; + } + } + else if(p2.x < x1) + { + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + t = (x - p1.x) / dx; + v = result[num]; + num++; + v.x = p1.x + t * dx; + v.y = p1.y + t * dy; + v.z = p1.z + t * dz; + } + p1 = p2; + } + return num; + } + + protected function method_818(y:Number, pnum:int, points:Vector., result:Vector., epsilon:Number) : int + { + var p2:name_194 = null; + var dx:Number = NaN; + var dy:Number = NaN; + var dz:Number = NaN; + var t:Number = NaN; + var v:name_194 = null; + var y1:Number = y - epsilon; + var num:int = 0; + var p1:name_194 = points[int(pnum - 1)]; + for(var i:int = 0; i < pnum; i++) + { + p2 = points[i]; + if(p1.y > y1) + { + v = result[num]; + num++; + v.x = p1.x; + v.y = p1.y; + v.z = p1.z; + if(p2.y < y1) + { + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + t = (y - p1.y) / dy; + v = result[num]; + num++; + v.x = p1.x + t * dx; + v.y = p1.y + t * dy; + v.z = p1.z + t * dz; + } + } + else if(p2.y > y1) + { + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + t = (y - p1.y) / dy; + v = result[num]; + num++; + v.x = p1.x + t * dx; + v.y = p1.y + t * dy; + v.z = p1.z + t * dz; + } + p1 = p2; + } + return num; + } + + protected function method_823(y:Number, pnum:int, points:Vector., result:Vector., epsilon:Number) : int + { + var p2:name_194 = null; + var dx:Number = NaN; + var dy:Number = NaN; + var dz:Number = NaN; + var t:Number = NaN; + var v:name_194 = null; + var y1:Number = y + epsilon; + var num:int = 0; + var p1:name_194 = points[int(pnum - 1)]; + for(var i:int = 0; i < pnum; i++) + { + p2 = points[i]; + if(p1.y < y1) + { + v = result[num]; + num++; + v.x = p1.x; + v.y = p1.y; + v.z = p1.z; + if(p2.y > y1) + { + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + t = (y - p1.y) / dy; + v = result[num]; + num++; + v.x = p1.x + t * dx; + v.y = p1.y + t * dy; + v.z = p1.z + t * dz; + } + } + else if(p2.y < y1) + { + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + t = (y - p1.y) / dy; + v = result[num]; + num++; + v.x = p1.x + t * dx; + v.y = p1.y + t * dy; + v.z = p1.z + t * dz; + } + p1 = p2; + } + return num; + } + + protected function method_819(z:Number, pnum:int, points:Vector., result:Vector., epsilon:Number) : int + { + var p2:name_194 = null; + var dx:Number = NaN; + var dy:Number = NaN; + var dz:Number = NaN; + var t:Number = NaN; + var v:name_194 = null; + var z1:Number = z - epsilon; + var num:int = 0; + var p1:name_194 = points[int(pnum - 1)]; + for(var i:int = 0; i < pnum; i++) + { + p2 = points[i]; + if(p1.z > z1) + { + v = result[num]; + num++; + v.x = p1.x; + v.y = p1.y; + v.z = p1.z; + if(p2.z < z1) + { + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + t = (z - p1.z) / dz; + v = result[num]; + num++; + v.x = p1.x + t * dx; + v.y = p1.y + t * dy; + v.z = p1.z + t * dz; + } + } + else if(p2.z > z1) + { + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + t = (z - p1.z) / dz; + v = result[num]; + num++; + v.x = p1.x + t * dx; + v.y = p1.y + t * dy; + v.z = p1.z + t * dz; + } + p1 = p2; + } + return num; + } + + protected function method_820(z:Number, pnum:int, points:Vector., result:Vector., epsilon:Number) : int + { + var p2:name_194 = null; + var dx:Number = NaN; + var dy:Number = NaN; + var dz:Number = NaN; + var t:Number = NaN; + var v:name_194 = null; + var z1:Number = z + epsilon; + var num:int = 0; + var p1:name_194 = points[int(pnum - 1)]; + for(var i:int = 0; i < pnum; i++) + { + p2 = points[i]; + if(p1.z < z1) + { + v = result[num]; + num++; + v.x = p1.x; + v.y = p1.y; + v.z = p1.z; + if(p2.z > z1) + { + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + t = (z - p1.z) / dz; + v = result[num]; + num++; + v.x = p1.x + t * dx; + v.y = p1.y + t * dy; + v.z = p1.z + t * dz; + } + } + else if(p2.z < z1) + { + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + t = (z - p1.z) / dz; + v = result[num]; + num++; + v.x = p1.x + t * dx; + v.y = p1.y + t * dy; + v.z = p1.z + t * dz; + } + p1 = p2; + } + return num; + } + } +} + diff --git a/src/package_121/name_666.as b/src/package_121/name_666.as new file mode 100644 index 0000000..6fe0a94 --- /dev/null +++ b/src/package_121/name_666.as @@ -0,0 +1,663 @@ +package package_121 +{ + import package_109.name_377; + import package_46.Matrix4; + import package_46.name_194; + import package_76.name_235; + import package_92.name_630; + import package_92.name_674; + + public class name_666 extends class_41 + { + private var epsilon:Number = 0.001; + + private var vectorToBox1:name_194 = new name_194(); + + private var axis:name_194 = new name_194(); + + private var axis10:name_194 = new name_194(); + + private var axis11:name_194 = new name_194(); + + private var axis12:name_194 = new name_194(); + + private var axis20:name_194 = new name_194(); + + private var axis21:name_194 = new name_194(); + + private var axis22:name_194 = new name_194(); + + private var var_675:int; + + private var var_676:Number; + + private var points1:Vector. = new Vector.(8,true); + + private var points2:Vector. = new Vector.(8,true); + + private var var_683:Vector. = new Vector.(8,true); + + private var name_679:int; + + public function name_666() + { + super(); + for(var i:int = 0; i < 8; i++) + { + this.var_683[i] = new name_674(); + this.points1[i] = new name_194(); + this.points2[i] = new name_194(); + } + } + + override public function getContact(prim1:name_235, prim2:name_235, contact:name_630) : Boolean + { + var box1:name_377 = null; + var box2:name_377 = null; + if(!this.haveCollision(prim1,prim2)) + { + return false; + } + if(prim1.body != null) + { + box1 = prim1 as name_377; + box2 = prim2 as name_377; + } + else + { + box1 = prim2 as name_377; + box2 = prim1 as name_377; + } + if(this.var_675 < 6) + { + if(!this.method_828(box1,box2,this.vectorToBox1,this.var_675,contact)) + { + return false; + } + } + else + { + this.var_675 -= 6; + this.method_831(box1,box2,this.vectorToBox1,int(this.var_675 / 3),this.var_675 % 3,contact); + } + contact.body1 = box1.body; + contact.body2 = box2.body; + return true; + } + + override public function haveCollision(prim1:name_235, prim2:name_235) : Boolean + { + var box1:name_377 = null; + var box2:name_377 = null; + var transform1:Matrix4 = null; + var transform2:Matrix4 = null; + this.var_676 = 10000000000; + if(prim1.body != null) + { + box1 = prim1 as name_377; + box2 = prim2 as name_377; + } + else + { + box1 = prim2 as name_377; + box2 = prim1 as name_377; + } + transform1 = box1.transform; + transform2 = box2.transform; + this.vectorToBox1.x = transform1.d - transform2.d; + this.vectorToBox1.y = transform1.h - transform2.h; + this.vectorToBox1.z = transform1.l - transform2.l; + this.axis10.x = transform1.a; + this.axis10.y = transform1.e; + this.axis10.z = transform1.i; + if(!this.method_826(box1,box2,this.axis10,0,this.vectorToBox1)) + { + return false; + } + this.axis11.x = transform1.b; + this.axis11.y = transform1.f; + this.axis11.z = transform1.j; + if(!this.method_826(box1,box2,this.axis11,1,this.vectorToBox1)) + { + return false; + } + this.axis12.x = transform1.c; + this.axis12.y = transform1.g; + this.axis12.z = transform1.k; + if(!this.method_826(box1,box2,this.axis12,2,this.vectorToBox1)) + { + return false; + } + this.axis20.x = transform2.a; + this.axis20.y = transform2.e; + this.axis20.z = transform2.i; + if(!this.method_826(box1,box2,this.axis20,3,this.vectorToBox1)) + { + return false; + } + this.axis21.x = transform2.b; + this.axis21.y = transform2.f; + this.axis21.z = transform2.j; + if(!this.method_826(box1,box2,this.axis21,4,this.vectorToBox1)) + { + return false; + } + this.axis22.x = transform2.c; + this.axis22.y = transform2.g; + this.axis22.z = transform2.k; + if(!this.method_826(box1,box2,this.axis22,5,this.vectorToBox1)) + { + return false; + } + if(!this.method_825(box1,box2,this.axis10,this.axis20,6,this.vectorToBox1)) + { + return false; + } + if(!this.method_825(box1,box2,this.axis10,this.axis21,7,this.vectorToBox1)) + { + return false; + } + if(!this.method_825(box1,box2,this.axis10,this.axis22,8,this.vectorToBox1)) + { + return false; + } + if(!this.method_825(box1,box2,this.axis11,this.axis20,9,this.vectorToBox1)) + { + return false; + } + if(!this.method_825(box1,box2,this.axis11,this.axis21,10,this.vectorToBox1)) + { + return false; + } + if(!this.method_825(box1,box2,this.axis11,this.axis22,11,this.vectorToBox1)) + { + return false; + } + if(!this.method_825(box1,box2,this.axis12,this.axis20,12,this.vectorToBox1)) + { + return false; + } + if(!this.method_825(box1,box2,this.axis12,this.axis21,13,this.vectorToBox1)) + { + return false; + } + if(!this.method_825(box1,box2,this.axis12,this.axis22,14,this.vectorToBox1)) + { + return false; + } + return true; + } + + private function method_828(box1:name_377, box2:name_377, vectorToBox1:name_194, faceAxisIdx:int, contact:name_630) : Boolean + { + var transform2:Matrix4 = null; + var colAxis:name_194 = null; + var incidentAxisDot:Number = NaN; + var pen:Number = NaN; + var tmpBox:name_377 = null; + var dot:Number = NaN; + var absDot:Number = NaN; + var v:name_194 = null; + var cp:name_674 = null; + var cpPos:name_194 = null; + var r:name_194 = null; + var swapNormal:Boolean = false; + if(faceAxisIdx > 2) + { + tmpBox = box1; + box1 = box2; + box2 = tmpBox; + vectorToBox1.x = -vectorToBox1.x; + vectorToBox1.y = -vectorToBox1.y; + vectorToBox1.z = -vectorToBox1.z; + faceAxisIdx -= 3; + swapNormal = true; + } + var transform1:Matrix4 = box1.transform; + transform2 = box2.transform; + colAxis = contact.normal; + transform1.getAxis(faceAxisIdx,colAxis); + var negativeFace:Boolean = colAxis.x * vectorToBox1.x + colAxis.y * vectorToBox1.y + colAxis.z * vectorToBox1.z > 0; + if(!negativeFace) + { + colAxis.x = -colAxis.x; + colAxis.y = -colAxis.y; + colAxis.z = -colAxis.z; + } + var incidentAxisIdx:int = 0; + var maxDot:Number = 0; + for(var axisIdx:int = 0; axisIdx < 3; ) + { + transform2.getAxis(axisIdx,this.axis); + dot = this.axis.x * colAxis.x + this.axis.y * colAxis.y + this.axis.z * colAxis.z; + absDot = dot < 0 ? -dot : dot; + if(absDot > maxDot) + { + maxDot = absDot; + incidentAxisDot = dot; + incidentAxisIdx = axisIdx; + } + axisIdx++; + } + transform2.getAxis(incidentAxisIdx,this.axis); + method_824(box2.hs,incidentAxisIdx,incidentAxisDot < 0,this.points1); + transform2.method_357(this.points1,this.points2,4); + transform1.method_352(this.points2,this.points1,4); + var pnum:int = this.clip(box1.hs,faceAxisIdx); + this.name_679 = 0; + for(var i:int = 0; i < pnum; ) + { + v = this.points1[i]; + pen = this.method_830(box1.hs,v,faceAxisIdx,negativeFace); + if(pen > -this.epsilon) + { + cp = this.var_683[this.name_679++]; + cpPos = cp.pos; + cpPos.x = transform1.a * v.x + transform1.b * v.y + transform1.c * v.z + transform1.d; + cpPos.y = transform1.e * v.x + transform1.f * v.y + transform1.g * v.z + transform1.h; + cpPos.z = transform1.i * v.x + transform1.j * v.y + transform1.k * v.z + transform1.l; + r = cp.r1; + r.x = cpPos.x - transform1.d; + r.y = cpPos.y - transform1.h; + r.z = cpPos.z - transform1.l; + r = cp.r2; + r.x = cpPos.x - transform2.d; + r.y = cpPos.y - transform2.h; + r.z = cpPos.z - transform2.l; + cp.penetration = pen; + } + i++; + } + if(swapNormal) + { + colAxis.x = -colAxis.x; + colAxis.y = -colAxis.y; + colAxis.z = -colAxis.z; + } + if(this.name_679 > 4) + { + this.method_840(); + } + for(i = 0; i < this.name_679; ) + { + cp = contact.points[i]; + cp.copyFrom(this.var_683[i]); + i++; + } + contact.name_679 = this.name_679; + return true; + } + + private function method_840() : void + { + var i:int = 0; + var minIdx:int = 0; + var cp1:name_674 = null; + var cp2:name_674 = null; + var minLen:Number = NaN; + var p1:name_194 = null; + var p2:name_194 = null; + var ii:int = 0; + var dx:Number = NaN; + var dy:Number = NaN; + var dz:Number = NaN; + var len:Number = NaN; + while(this.name_679 > 4) + { + minLen = 10000000000; + p1 = (this.var_683[int(this.name_679 - 1)] as name_674).pos; + for(i = 0; i < this.name_679; i++) + { + p2 = (this.var_683[i] as name_674).pos; + dx = p2.x - p1.x; + dy = p2.y - p1.y; + dz = p2.z - p1.z; + len = dx * dx + dy * dy + dz * dz; + if(len < minLen) + { + minLen = len; + minIdx = i; + } + p1 = p2; + } + ii = minIdx == 0 ? this.name_679 - 1 : minIdx - 1; + cp1 = this.var_683[ii]; + cp2 = this.var_683[minIdx]; + p1 = cp1.pos; + p2 = cp2.pos; + p2.x = 0.5 * (p1.x + p2.x); + p2.y = 0.5 * (p1.y + p2.y); + p2.z = 0.5 * (p1.z + p2.z); + cp2.penetration = 0.5 * (cp1.penetration + cp2.penetration); + if(minIdx > 0) + { + for(i = minIdx; i < this.name_679; i++) + { + this.var_683[int(i - 1)] = this.var_683[i]; + } + this.var_683[int(this.name_679 - 1)] = cp1; + } + --this.name_679; + } + } + + private function method_830(hs:name_194, p:name_194, faceAxisIdx:int, reverse:Boolean) : Number + { + switch(faceAxisIdx) + { + case 0: + if(reverse) + { + return p.x + hs.x; + } + return hs.x - p.x; + break; + case 1: + if(reverse) + { + return p.y + hs.y; + } + return hs.y - p.y; + break; + case 2: + if(reverse) + { + return p.z + hs.z; + } + return hs.z - p.z; + break; + default: + return 0; + } + } + + private function clip(hs:name_194, faceAxisIdx:int) : int + { + var pnum:int = 4; + switch(faceAxisIdx) + { + case 0: + pnum = method_819(-hs.z,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_820(hs.z,pnum,this.points2,this.points1,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_818(-hs.y,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + return method_823(hs.y,pnum,this.points2,this.points1,this.epsilon); + break; + case 1: + pnum = method_819(-hs.z,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_820(hs.z,pnum,this.points2,this.points1,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_822(-hs.x,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + return method_821(hs.x,pnum,this.points2,this.points1,this.epsilon); + break; + case 2: + pnum = method_822(-hs.x,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_821(hs.x,pnum,this.points2,this.points1,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_818(-hs.y,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + return method_823(hs.y,pnum,this.points2,this.points1,this.epsilon); + break; + default: + return 0; + } + } + + private function method_831(box1:name_377, box2:name_377, vectorToBox1:name_194, axisIdx1:int, axisIdx2:int, contact:name_630) : void + { + var halfLen1:Number = NaN; + var halfLen2:Number = NaN; + var transform1:Matrix4 = box1.transform; + var transform2:Matrix4 = box2.transform; + transform1.getAxis(axisIdx1,this.axis10); + transform2.getAxis(axisIdx2,this.axis20); + var colAxis:name_194 = contact.normal; + colAxis.x = this.axis10.y * this.axis20.z - this.axis10.z * this.axis20.y; + colAxis.y = this.axis10.z * this.axis20.x - this.axis10.x * this.axis20.z; + colAxis.z = this.axis10.x * this.axis20.y - this.axis10.y * this.axis20.x; + var k:Number = 1 / Math.sqrt(colAxis.x * colAxis.x + colAxis.y * colAxis.y + colAxis.z * colAxis.z); + colAxis.x *= k; + colAxis.y *= k; + colAxis.z *= k; + if(colAxis.x * vectorToBox1.x + colAxis.y * vectorToBox1.y + colAxis.z * vectorToBox1.z < 0) + { + colAxis.x = -colAxis.x; + colAxis.y = -colAxis.y; + colAxis.z = -colAxis.z; + } + var tx:Number = box1.hs.x; + var ty:Number = box1.hs.y; + var tz:Number = box1.hs.z; + var x2:Number = box2.hs.x; + var y2:Number = box2.hs.y; + var z2:Number = box2.hs.z; + if(axisIdx1 == 0) + { + tx = 0; + halfLen1 = box1.hs.x; + } + else if(colAxis.x * transform1.a + colAxis.y * transform1.e + colAxis.z * transform1.i > 0) + { + tx = -tx; + } + if(axisIdx2 == 0) + { + x2 = 0; + halfLen2 = box2.hs.x; + } + else if(colAxis.x * transform2.a + colAxis.y * transform2.e + colAxis.z * transform2.i < 0) + { + x2 = -x2; + } + if(axisIdx1 == 1) + { + ty = 0; + halfLen1 = box1.hs.y; + } + else if(colAxis.x * transform1.b + colAxis.y * transform1.f + colAxis.z * transform1.j > 0) + { + ty = -ty; + } + if(axisIdx2 == 1) + { + y2 = 0; + halfLen2 = box2.hs.y; + } + else if(colAxis.x * transform2.b + colAxis.y * transform2.f + colAxis.z * transform2.j < 0) + { + y2 = -y2; + } + if(axisIdx1 == 2) + { + tz = 0; + halfLen1 = box1.hs.z; + } + else if(colAxis.x * transform1.c + colAxis.y * transform1.g + colAxis.z * transform1.k > 0) + { + tz = -tz; + } + if(axisIdx2 == 2) + { + z2 = 0; + halfLen2 = box2.hs.z; + } + else if(colAxis.x * transform2.c + colAxis.y * transform2.g + colAxis.z * transform2.k < 0) + { + z2 = -z2; + } + var x1:Number = transform1.a * tx + transform1.b * ty + transform1.c * tz + transform1.d; + var y1:Number = transform1.e * tx + transform1.f * ty + transform1.g * tz + transform1.h; + var z1:Number = transform1.i * tx + transform1.j * ty + transform1.k * tz + transform1.l; + tx = x2; + ty = y2; + tz = z2; + x2 = transform2.a * tx + transform2.b * ty + transform2.c * tz + transform2.d; + y2 = transform2.e * tx + transform2.f * ty + transform2.g * tz + transform2.h; + z2 = transform2.i * tx + transform2.j * ty + transform2.k * tz + transform2.l; + k = this.axis10.x * this.axis20.x + this.axis10.y * this.axis20.y + this.axis10.z * this.axis20.z; + var det:Number = k * k - 1; + tx = x2 - x1; + ty = y2 - y1; + tz = z2 - z1; + var c1:Number = this.axis10.x * tx + this.axis10.y * ty + this.axis10.z * tz; + var c2:Number = this.axis20.x * tx + this.axis20.y * ty + this.axis20.z * tz; + var t1:Number = (c2 * k - c1) / det; + var t2:Number = (c2 - c1 * k) / det; + contact.name_679 = 1; + var cp:name_674 = contact.points[0]; + var cpPos:name_194 = cp.pos; + cp.pos.x = 0.5 * (x1 + this.axis10.x * t1 + x2 + this.axis20.x * t2); + cp.pos.y = 0.5 * (y1 + this.axis10.y * t1 + y2 + this.axis20.y * t2); + cp.pos.z = 0.5 * (z1 + this.axis10.z * t1 + z2 + this.axis20.z * t2); + var r:name_194 = cp.r1; + r.x = cpPos.x - transform1.d; + r.y = cpPos.y - transform1.h; + r.z = cpPos.z - transform1.l; + r = cp.r2; + r.x = cpPos.x - transform2.d; + r.y = cpPos.y - transform2.h; + r.z = cpPos.z - transform2.l; + cp.penetration = this.var_676; + } + + private function method_826(box1:name_377, box2:name_377, axis:name_194, axisIndex:int, toBox1:name_194) : Boolean + { + var overlap:Number = this.method_827(box1,box2,axis,toBox1); + if(overlap < -this.epsilon) + { + return false; + } + if(overlap + this.epsilon < this.var_676) + { + this.var_676 = overlap; + this.var_675 = axisIndex; + } + return true; + } + + private function method_825(box1:name_377, box2:name_377, axis1:name_194, axis2:name_194, axisIndex:int, toBox1:name_194) : Boolean + { + this.axis.x = axis1.y * axis2.z - axis1.z * axis2.y; + this.axis.y = axis1.z * axis2.x - axis1.x * axis2.z; + this.axis.z = axis1.x * axis2.y - axis1.y * axis2.x; + var lenSqr:Number = this.axis.x * this.axis.x + this.axis.y * this.axis.y + this.axis.z * this.axis.z; + if(lenSqr < 0.0001) + { + return true; + } + var k:Number = 1 / Math.sqrt(lenSqr); + this.axis.x *= k; + this.axis.y *= k; + this.axis.z *= k; + var overlap:Number = this.method_827(box1,box2,this.axis,toBox1); + if(overlap < -this.epsilon) + { + return false; + } + if(overlap + this.epsilon < this.var_676) + { + this.var_676 = overlap; + this.var_675 = axisIndex; + } + return true; + } + + public function method_827(box1:name_377, box2:name_377, axis:name_194, vectorToBox1:name_194) : Number + { + var m:Matrix4 = box1.transform; + var d:Number = (m.a * axis.x + m.e * axis.y + m.i * axis.z) * box1.hs.x; + if(d < 0) + { + d = -d; + } + var projection:Number = d; + d = (m.b * axis.x + m.f * axis.y + m.j * axis.z) * box1.hs.y; + if(d < 0) + { + d = -d; + } + projection += d; + d = (m.c * axis.x + m.g * axis.y + m.k * axis.z) * box1.hs.z; + if(d < 0) + { + d = -d; + } + projection += d; + m = box2.transform; + d = (m.a * axis.x + m.e * axis.y + m.i * axis.z) * box2.hs.x; + if(d < 0) + { + d = -d; + } + projection += d; + d = (m.b * axis.x + m.f * axis.y + m.j * axis.z) * box2.hs.y; + if(d < 0) + { + d = -d; + } + projection += d; + d = (m.c * axis.x + m.g * axis.y + m.k * axis.z) * box2.hs.z; + if(d < 0) + { + d = -d; + } + projection += d; + d = vectorToBox1.x * axis.x + vectorToBox1.y * axis.y + vectorToBox1.z * axis.z; + if(d < 0) + { + d = -d; + } + return projection - d; + } + } +} + +import package_46.name_194; + +class CollisionPointTmp +{ + public var pos:name_194 = new name_194(); + + public var penetration:Number; + + public var feature1:int; + + public var feature2:int; + + public function CollisionPointTmp() + { + super(); + } +} diff --git a/src/package_121/name_667.as b/src/package_121/name_667.as new file mode 100644 index 0000000..073e4b3 --- /dev/null +++ b/src/package_121/name_667.as @@ -0,0 +1,589 @@ +package package_121 +{ + import package_109.name_377; + import package_109.name_381; + import package_46.Matrix4; + import package_46.name_194; + import package_76.name_235; + import package_92.name_630; + import package_92.name_674; + + public class name_667 extends class_41 + { + private var epsilon:Number = 0.001; + + private var vectorToBox:name_194 = new name_194(); + + private var axis:name_194 = new name_194(); + + private var axis10:name_194 = new name_194(); + + private var axis11:name_194 = new name_194(); + + private var axis12:name_194 = new name_194(); + + private var axis20:name_194 = new name_194(); + + private var axis21:name_194 = new name_194(); + + private var axis22:name_194 = new name_194(); + + private var var_675:int; + + private var var_676:Number; + + private var points1:Vector. = new Vector.(8,true); + + private var points2:Vector. = new Vector.(8,true); + + public function name_667() + { + super(); + for(var i:int = 0; i < 8; i++) + { + this.points1[i] = new name_194(); + this.points2[i] = new name_194(); + } + } + + override public function getContact(prim1:name_235, prim2:name_235, contact:name_630) : Boolean + { + var rect:name_381 = null; + if(!this.haveCollision(prim1,prim2)) + { + return false; + } + var box:name_377 = prim1 as name_377; + if(box == null) + { + box = prim2 as name_377; + rect = prim1 as name_381; + } + else + { + rect = prim2 as name_381; + } + if(this.var_675 < 4) + { + if(!this.method_828(box,rect,this.vectorToBox,this.var_675,contact)) + { + return false; + } + } + else + { + this.var_675 -= 4; + if(!this.method_831(box,rect,this.vectorToBox,int(this.var_675 / 2),this.var_675 % 2,contact)) + { + return false; + } + } + contact.body1 = box.body; + contact.body2 = rect.body; + if(rect.transform.k > 0.99999) + { + contact.normal.x = 0; + contact.normal.y = 0; + contact.normal.z = 1; + } + return true; + } + + override public function haveCollision(prim1:name_235, prim2:name_235) : Boolean + { + var box:name_377 = null; + var rect:name_381 = null; + var rectTransform:Matrix4 = null; + this.var_676 = 10000000000; + box = prim1 as name_377; + if(box == null) + { + box = prim2 as name_377; + rect = prim1 as name_381; + } + else + { + rect = prim2 as name_381; + } + var boxTransform:Matrix4 = box.transform; + rectTransform = rect.transform; + this.vectorToBox.x = boxTransform.d - rectTransform.d; + this.vectorToBox.y = boxTransform.h - rectTransform.h; + this.vectorToBox.z = boxTransform.l - rectTransform.l; + rectTransform.getAxis(2,this.axis22); + if(!this.method_826(box,rect,this.axis22,0,this.vectorToBox)) + { + return false; + } + boxTransform.getAxis(0,this.axis10); + if(!this.method_826(box,rect,this.axis10,1,this.vectorToBox)) + { + return false; + } + boxTransform.getAxis(1,this.axis11); + if(!this.method_826(box,rect,this.axis11,2,this.vectorToBox)) + { + return false; + } + boxTransform.getAxis(2,this.axis12); + if(!this.method_826(box,rect,this.axis12,3,this.vectorToBox)) + { + return false; + } + rectTransform.getAxis(0,this.axis20); + rectTransform.getAxis(1,this.axis21); + if(!this.method_825(box,rect,this.axis10,this.axis20,4,this.vectorToBox)) + { + return false; + } + if(!this.method_825(box,rect,this.axis10,this.axis21,5,this.vectorToBox)) + { + return false; + } + if(!this.method_825(box,rect,this.axis11,this.axis20,6,this.vectorToBox)) + { + return false; + } + if(!this.method_825(box,rect,this.axis11,this.axis21,7,this.vectorToBox)) + { + return false; + } + if(!this.method_825(box,rect,this.axis12,this.axis20,8,this.vectorToBox)) + { + return false; + } + if(!this.method_825(box,rect,this.axis12,this.axis21,9,this.vectorToBox)) + { + return false; + } + return true; + } + + private function method_828(box:name_377, rect:name_381, vectorToBox:name_194, faceAxisIdx:int, contact:name_630) : Boolean + { + var pnum:int = 0; + var i:int = 0; + var v:name_194 = null; + var cp:name_674 = null; + var boxTransform:Matrix4 = null; + var rectTransform:Matrix4 = null; + var colAxis:name_194 = null; + var negativeFace:Boolean = false; + var incidentAxisIdx:int = 0; + var incidentAxisDot:Number = NaN; + var maxDot:Number = NaN; + var axisIdx:int = 0; + var dot:Number = NaN; + var absDot:Number = NaN; + var cpPos:name_194 = null; + var pen:Number = NaN; + boxTransform = box.transform; + rectTransform = rect.transform; + colAxis = contact.normal; + if(faceAxisIdx == 0) + { + colAxis.x = rectTransform.c; + colAxis.y = rectTransform.g; + colAxis.z = rectTransform.k; + incidentAxisIdx = 0; + maxDot = 0; + for(axisIdx = 0; axisIdx < 3; ) + { + boxTransform.getAxis(axisIdx,this.axis); + dot = this.axis.x * colAxis.x + this.axis.y * colAxis.y + this.axis.z * colAxis.z; + absDot = dot < 0 ? -dot : dot; + if(absDot > maxDot) + { + maxDot = absDot; + incidentAxisIdx = axisIdx; + incidentAxisDot = dot; + } + axisIdx++; + } + negativeFace = incidentAxisDot > 0; + boxTransform.getAxis(incidentAxisIdx,this.axis); + method_824(box.hs,incidentAxisIdx,negativeFace,this.points1); + boxTransform.method_357(this.points1,this.points2,4); + rectTransform.method_352(this.points2,this.points1,4); + pnum = this.method_829(rect.hs); + contact.name_679 = 0; + for(i = 0; i < pnum; ) + { + v = this.points1[i]; + if(v.z < this.epsilon) + { + cp = contact.points[contact.name_679++]; + cp.penetration = -v.z; + cpPos = cp.pos; + cpPos.x = rectTransform.a * v.x + rectTransform.b * v.y + rectTransform.c * v.z + rectTransform.d; + cpPos.y = rectTransform.e * v.x + rectTransform.f * v.y + rectTransform.g * v.z + rectTransform.h; + cpPos.z = rectTransform.i * v.x + rectTransform.j * v.y + rectTransform.k * v.z + rectTransform.l; + v = cp.r1; + v.x = cpPos.x - boxTransform.d; + v.y = cpPos.y - boxTransform.h; + v.z = cpPos.z - boxTransform.l; + v = cp.r2; + v.x = cpPos.x - rectTransform.d; + v.y = cpPos.y - rectTransform.h; + v.z = cpPos.z - rectTransform.l; + } + i++; + } + } + else + { + faceAxisIdx--; + boxTransform.getAxis(faceAxisIdx,colAxis); + negativeFace = colAxis.x * vectorToBox.x + colAxis.y * vectorToBox.y + colAxis.z * vectorToBox.z > 0; + if(!negativeFace) + { + colAxis.x = -colAxis.x; + colAxis.y = -colAxis.y; + colAxis.z = -colAxis.z; + } + if(rectTransform.c * colAxis.x + rectTransform.g * colAxis.y + rectTransform.k * colAxis.z < 0) + { + return false; + } + method_824(rect.hs,2,false,this.points1); + rectTransform.method_357(this.points1,this.points2,4); + boxTransform.method_352(this.points2,this.points1,4); + pnum = this.method_832(box.hs,faceAxisIdx); + contact.name_679 = 0; + for(i = 0; i < pnum; ) + { + v = this.points1[i]; + pen = this.method_830(box.hs,v,faceAxisIdx,negativeFace); + if(pen > -this.epsilon) + { + cp = contact.points[contact.name_679++]; + cp.penetration = pen; + cpPos = cp.pos; + cpPos.x = boxTransform.a * v.x + boxTransform.b * v.y + boxTransform.c * v.z + boxTransform.d; + cpPos.y = boxTransform.e * v.x + boxTransform.f * v.y + boxTransform.g * v.z + boxTransform.h; + cpPos.z = boxTransform.i * v.x + boxTransform.j * v.y + boxTransform.k * v.z + boxTransform.l; + v = cp.r1; + v.x = cpPos.x - boxTransform.d; + v.y = cpPos.y - boxTransform.h; + v.z = cpPos.z - boxTransform.l; + v = cp.r2; + v.x = cpPos.x - rectTransform.d; + v.y = cpPos.y - rectTransform.h; + v.z = cpPos.z - rectTransform.l; + } + i++; + } + } + return true; + } + + private function method_830(hs:name_194, p:name_194, faceAxisIdx:int, reverse:Boolean) : Number + { + switch(faceAxisIdx) + { + case 0: + if(reverse) + { + return p.x + hs.x; + } + return hs.x - p.x; + break; + case 1: + if(reverse) + { + return p.y + hs.y; + } + return hs.y - p.y; + break; + case 2: + if(reverse) + { + return p.z + hs.z; + } + return hs.z - p.z; + break; + default: + return 0; + } + } + + private function method_832(hs:name_194, faceAxisIdx:int) : int + { + var pnum:int = 4; + switch(faceAxisIdx) + { + case 0: + pnum = method_819(-hs.z,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_820(hs.z,pnum,this.points2,this.points1,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_818(-hs.y,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + return method_823(hs.y,pnum,this.points2,this.points1,this.epsilon); + break; + case 1: + pnum = method_819(-hs.z,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_820(hs.z,pnum,this.points2,this.points1,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_822(-hs.x,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + return method_821(hs.x,pnum,this.points2,this.points1,this.epsilon); + break; + case 2: + pnum = method_822(-hs.x,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_821(hs.x,pnum,this.points2,this.points1,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_818(-hs.y,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + return method_823(hs.y,pnum,this.points2,this.points1,this.epsilon); + break; + default: + return 0; + } + } + + private function method_829(hs:name_194) : int + { + var pnum:int = 4; + pnum = method_822(-hs.x,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_821(hs.x,pnum,this.points2,this.points1,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_818(-hs.y,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + return method_823(hs.y,pnum,this.points2,this.points1,this.epsilon); + } + + private function method_831(box:name_377, rect:name_381, vectorToBox:name_194, axisIdx1:int, axisIdx2:int, contact:name_630) : Boolean + { + var halfLen1:Number = NaN; + var halfLen2:Number = NaN; + var boxTransform:Matrix4 = box.transform; + var rectTransform:Matrix4 = rect.transform; + boxTransform.getAxis(axisIdx1,this.axis10); + rectTransform.getAxis(axisIdx2,this.axis20); + var colAxis:name_194 = contact.normal; + colAxis.x = this.axis10.y * this.axis20.z - this.axis10.z * this.axis20.y; + colAxis.y = this.axis10.z * this.axis20.x - this.axis10.x * this.axis20.z; + colAxis.z = this.axis10.x * this.axis20.y - this.axis10.y * this.axis20.x; + var k:Number = 1 / Math.sqrt(colAxis.x * colAxis.x + colAxis.y * colAxis.y + colAxis.z * colAxis.z); + colAxis.x *= k; + colAxis.y *= k; + colAxis.z *= k; + if(colAxis.x * vectorToBox.x + colAxis.y * vectorToBox.y + colAxis.z * vectorToBox.z < 0) + { + colAxis.x = -colAxis.x; + colAxis.y = -colAxis.y; + colAxis.z = -colAxis.z; + } + var vx:Number = box.hs.x; + var vy:Number = box.hs.y; + var vz:Number = box.hs.z; + var x2:Number = rect.hs.x; + var y2:Number = rect.hs.y; + var z2:Number = rect.hs.z; + if(axisIdx1 == 0) + { + vx = 0; + halfLen1 = box.hs.x; + } + else if(boxTransform.a * colAxis.x + boxTransform.e * colAxis.y + boxTransform.i * colAxis.z > 0) + { + vx = -vx; + } + if(axisIdx2 == 0) + { + x2 = 0; + halfLen2 = rect.hs.x; + } + else if(rectTransform.a * colAxis.x + rectTransform.e * colAxis.y + rectTransform.i * colAxis.z < 0) + { + x2 = -x2; + } + if(axisIdx1 == 1) + { + vy = 0; + halfLen1 = box.hs.y; + } + else if(boxTransform.b * colAxis.x + boxTransform.f * colAxis.y + boxTransform.j * colAxis.z > 0) + { + vy = -vy; + } + if(axisIdx2 == 1) + { + y2 = 0; + halfLen2 = rect.hs.y; + } + else if(rectTransform.b * colAxis.x + rectTransform.f * colAxis.y + rectTransform.j * colAxis.z < 0) + { + y2 = -y2; + } + if(axisIdx1 == 2) + { + vz = 0; + halfLen1 = box.hs.z; + } + else if(boxTransform.c * colAxis.x + boxTransform.g * colAxis.y + boxTransform.k * colAxis.z > 0) + { + vz = -vz; + } + var x1:Number = boxTransform.a * vx + boxTransform.b * vy + boxTransform.c * vz + boxTransform.d; + var y1:Number = boxTransform.e * vx + boxTransform.f * vy + boxTransform.g * vz + boxTransform.h; + var z1:Number = boxTransform.i * vx + boxTransform.j * vy + boxTransform.k * vz + boxTransform.l; + vx = x2; + vy = y2; + vz = z2; + x2 = rectTransform.a * vx + rectTransform.b * vy + rectTransform.c * vz + rectTransform.d; + y2 = rectTransform.e * vx + rectTransform.f * vy + rectTransform.g * vz + rectTransform.h; + z2 = rectTransform.i * vx + rectTransform.j * vy + rectTransform.k * vz + rectTransform.l; + k = this.axis10.x * this.axis20.x + this.axis10.y * this.axis20.y + this.axis10.z * this.axis20.z; + var det:Number = k * k - 1; + vx = x2 - x1; + vy = y2 - y1; + vz = z2 - z1; + var c1:Number = this.axis10.x * vx + this.axis10.y * vy + this.axis10.z * vz; + var c2:Number = this.axis20.x * vx + this.axis20.y * vy + this.axis20.z * vz; + var t1:Number = (c2 * k - c1) / det; + var t2:Number = (c2 - c1 * k) / det; + contact.name_679 = 1; + var cp:name_674 = contact.points[0]; + cp.penetration = this.var_676; + var cpPos:name_194 = cp.pos; + cpPos.x = 0.5 * (x1 + this.axis10.x * t1 + x2 + this.axis20.x * t2); + cpPos.y = 0.5 * (y1 + this.axis10.y * t1 + y2 + this.axis20.y * t2); + cpPos.z = 0.5 * (z1 + this.axis10.z * t1 + z2 + this.axis20.z * t2); + var v:name_194 = cp.r1; + v.x = cpPos.x - boxTransform.d; + v.y = cpPos.y - boxTransform.h; + v.z = cpPos.z - boxTransform.l; + v = cp.r2; + v.x = cpPos.x - rectTransform.d; + v.y = cpPos.y - rectTransform.h; + v.z = cpPos.z - rectTransform.l; + return true; + } + + private function method_826(box:name_377, rect:name_381, axis:name_194, axisIndex:int, vectorToBox:name_194) : Boolean + { + var overlap:Number = this.method_827(box,rect,axis,vectorToBox); + if(overlap < -this.epsilon) + { + return false; + } + if(overlap + this.epsilon < this.var_676) + { + this.var_676 = overlap; + this.var_675 = axisIndex; + } + return true; + } + + private function method_825(box:name_377, rect:name_381, axis1:name_194, axis2:name_194, axisIndex:int, vectorToBox:name_194) : Boolean + { + this.axis.x = axis1.y * axis2.z - axis1.z * axis2.y; + this.axis.y = axis1.z * axis2.x - axis1.x * axis2.z; + this.axis.z = axis1.x * axis2.y - axis1.y * axis2.x; + var lenSqr:Number = this.axis.x * this.axis.x + this.axis.y * this.axis.y + this.axis.z * this.axis.z; + if(lenSqr < 0.0001) + { + return true; + } + var k:Number = 1 / Math.sqrt(lenSqr); + this.axis.x *= k; + this.axis.y *= k; + this.axis.z *= k; + var overlap:Number = this.method_827(box,rect,this.axis,vectorToBox); + if(overlap < -this.epsilon) + { + return false; + } + if(overlap + this.epsilon < this.var_676) + { + this.var_676 = overlap; + this.var_675 = axisIndex; + } + return true; + } + + public function method_827(box:name_377, rect:name_381, axis:name_194, vectorToBox:name_194) : Number + { + var m:Matrix4 = box.transform; + var d:Number = (m.a * axis.x + m.e * axis.y + m.i * axis.z) * box.hs.x; + if(d < 0) + { + d = -d; + } + var projection:Number = d; + d = (m.b * axis.x + m.f * axis.y + m.j * axis.z) * box.hs.y; + if(d < 0) + { + d = -d; + } + projection += d; + d = (m.c * axis.x + m.g * axis.y + m.k * axis.z) * box.hs.z; + if(d < 0) + { + d = -d; + } + projection += d; + m = rect.transform; + d = (m.a * axis.x + m.e * axis.y + m.i * axis.z) * rect.hs.x; + if(d < 0) + { + d = -d; + } + projection += d; + d = (m.b * axis.x + m.f * axis.y + m.j * axis.z) * rect.hs.y; + if(d < 0) + { + d = -d; + } + projection += d; + d = vectorToBox.x * axis.x + vectorToBox.y * axis.y + vectorToBox.z * axis.z; + if(d < 0) + { + d = -d; + } + return projection - d; + } + } +} + diff --git a/src/package_121/name_668.as b/src/package_121/name_668.as new file mode 100644 index 0000000..3de233d --- /dev/null +++ b/src/package_121/name_668.as @@ -0,0 +1,719 @@ +package package_121 +{ + import package_109.name_377; + import package_109.name_378; + import package_46.Matrix4; + import package_46.name_194; + import package_76.name_235; + import package_92.name_630; + import package_92.name_674; + + public class name_668 extends class_41 + { + public var epsilon:Number = 0.001; + + private var var_675:int; + + private var var_676:Number; + + private var toBox:name_194 = new name_194(); + + private var axis:name_194 = new name_194(); + + private var var_682:name_194 = new name_194(); + + private var axis10:name_194 = new name_194(); + + private var axis11:name_194 = new name_194(); + + private var axis12:name_194 = new name_194(); + + private var axis20:name_194 = new name_194(); + + private var axis21:name_194 = new name_194(); + + private var axis22:name_194 = new name_194(); + + private var points1:Vector. = new Vector.(8,true); + + private var points2:Vector. = new Vector.(8,true); + + public function name_668() + { + super(); + for(var i:int = 0; i < 8; i++) + { + this.points1[i] = new name_194(); + this.points2[i] = new name_194(); + } + } + + override public function getContact(prim1:name_235, prim2:name_235, contact:name_630) : Boolean + { + var box:name_377 = null; + if(!this.haveCollision(prim1,prim2)) + { + return false; + } + var tri:name_378 = prim1 as name_378; + if(tri == null) + { + box = name_377(prim1); + tri = name_378(prim2); + } + else + { + box = name_377(prim2); + } + if(this.var_675 < 4) + { + if(!this.method_828(box,tri,this.toBox,this.var_675,contact)) + { + return false; + } + } + else + { + this.var_675 -= 4; + if(!this.method_831(box,tri,this.toBox,this.var_675 % 3,int(this.var_675 / 3),contact)) + { + return false; + } + } + contact.body1 = box.body; + contact.body2 = tri.body; + if(tri.transform.k > 0.99999) + { + contact.normal.x = 0; + contact.normal.y = 0; + contact.normal.z = 1; + } + return true; + } + + override public function haveCollision(prim1:name_235, prim2:name_235) : Boolean + { + var tri:name_378 = null; + var box:name_377 = null; + var triTransform:Matrix4 = null; + var v:name_194 = null; + tri = prim1 as name_378; + if(tri == null) + { + box = name_377(prim1); + tri = name_378(prim2); + } + else + { + box = name_377(prim2); + } + var boxTransform:Matrix4 = box.transform; + triTransform = tri.transform; + this.toBox.x = boxTransform.d - triTransform.d; + this.toBox.y = boxTransform.h - triTransform.h; + this.toBox.z = boxTransform.l - triTransform.l; + this.var_676 = 1e+308; + this.axis.x = triTransform.c; + this.axis.y = triTransform.g; + this.axis.z = triTransform.k; + if(!this.method_826(box,tri,this.axis,0,this.toBox)) + { + return false; + } + this.axis10.x = boxTransform.a; + this.axis10.y = boxTransform.e; + this.axis10.z = boxTransform.i; + if(!this.method_826(box,tri,this.axis10,1,this.toBox)) + { + return false; + } + this.axis11.x = boxTransform.b; + this.axis11.y = boxTransform.f; + this.axis11.z = boxTransform.j; + if(!this.method_826(box,tri,this.axis11,2,this.toBox)) + { + return false; + } + this.axis12.x = boxTransform.c; + this.axis12.y = boxTransform.g; + this.axis12.z = boxTransform.k; + if(!this.method_826(box,tri,this.axis12,3,this.toBox)) + { + return false; + } + v = tri.e0; + this.axis20.x = triTransform.a * v.x + triTransform.b * v.y + triTransform.c * v.z; + this.axis20.y = triTransform.e * v.x + triTransform.f * v.y + triTransform.g * v.z; + this.axis20.z = triTransform.i * v.x + triTransform.j * v.y + triTransform.k * v.z; + if(!this.method_825(box,tri,this.axis10,this.axis20,4,this.toBox)) + { + return false; + } + if(!this.method_825(box,tri,this.axis11,this.axis20,5,this.toBox)) + { + return false; + } + if(!this.method_825(box,tri,this.axis12,this.axis20,6,this.toBox)) + { + return false; + } + v = tri.e1; + this.axis21.x = triTransform.a * v.x + triTransform.b * v.y + triTransform.c * v.z; + this.axis21.y = triTransform.e * v.x + triTransform.f * v.y + triTransform.g * v.z; + this.axis21.z = triTransform.i * v.x + triTransform.j * v.y + triTransform.k * v.z; + if(!this.method_825(box,tri,this.axis10,this.axis21,7,this.toBox)) + { + return false; + } + if(!this.method_825(box,tri,this.axis11,this.axis21,8,this.toBox)) + { + return false; + } + if(!this.method_825(box,tri,this.axis12,this.axis21,9,this.toBox)) + { + return false; + } + v = tri.e2; + this.axis22.x = triTransform.a * v.x + triTransform.b * v.y + triTransform.c * v.z; + this.axis22.y = triTransform.e * v.x + triTransform.f * v.y + triTransform.g * v.z; + this.axis22.z = triTransform.i * v.x + triTransform.j * v.y + triTransform.k * v.z; + if(!this.method_825(box,tri,this.axis10,this.axis22,10,this.toBox)) + { + return false; + } + if(!this.method_825(box,tri,this.axis11,this.axis22,11,this.toBox)) + { + return false; + } + if(!this.method_825(box,tri,this.axis12,this.axis22,12,this.toBox)) + { + return false; + } + return true; + } + + private function method_826(box:name_377, tri:name_378, axis:name_194, axisIndex:int, toBox:name_194) : Boolean + { + var overlap:Number = this.method_827(box,tri,axis,toBox); + if(overlap < -this.epsilon) + { + return false; + } + if(overlap + this.epsilon < this.var_676) + { + this.var_676 = overlap; + this.var_675 = axisIndex; + } + return true; + } + + private function method_825(box:name_377, tri:name_378, axis1:name_194, axis2:name_194, axisIndex:int, toBox:name_194) : Boolean + { + var k:Number = NaN; + this.axis.x = axis1.y * axis2.z - axis1.z * axis2.y; + this.axis.y = axis1.z * axis2.x - axis1.x * axis2.z; + this.axis.z = axis1.x * axis2.y - axis1.y * axis2.x; + var lenSqr:Number = this.axis.x * this.axis.x + this.axis.y * this.axis.y + this.axis.z * this.axis.z; + if(lenSqr < 0.0001) + { + return true; + } + k = 1 / Math.sqrt(lenSqr); + this.axis.x *= k; + this.axis.y *= k; + this.axis.z *= k; + var overlap:Number = this.method_827(box,tri,this.axis,toBox); + if(overlap < -this.epsilon) + { + return false; + } + if(overlap + this.epsilon < this.var_676) + { + this.var_676 = overlap; + this.var_675 = axisIndex; + } + return true; + } + + private function method_827(box:name_377, tri:name_378, axis:name_194, toBox:name_194) : Number + { + var t:Matrix4 = box.transform; + var projection:Number = (t.a * axis.x + t.e * axis.y + t.i * axis.z) * box.hs.x; + if(projection < 0) + { + projection = -projection; + } + var d:Number = (t.b * axis.x + t.f * axis.y + t.j * axis.z) * box.hs.y; + projection += d < 0 ? -d : d; + d = (t.c * axis.x + t.g * axis.y + t.k * axis.z) * box.hs.z; + projection += d < 0 ? -d : d; + var vectorProjection:Number = toBox.x * axis.x + toBox.y * axis.y + toBox.z * axis.z; + t = tri.transform; + var ax:Number = t.a * axis.x + t.e * axis.y + t.i * axis.z; + var ay:Number = t.b * axis.x + t.f * axis.y + t.j * axis.z; + var az:Number = t.c * axis.x + t.g * axis.y + t.k * axis.z; + var max:Number = 0; + if(vectorProjection < 0) + { + vectorProjection = -vectorProjection; + d = tri.v0.x * ax + tri.v0.y * ay + tri.v0.z * az; + if(d < max) + { + max = d; + } + d = tri.v1.x * ax + tri.v1.y * ay + tri.v1.z * az; + if(d < max) + { + max = d; + } + d = tri.v2.x * ax + tri.v2.y * ay + tri.v2.z * az; + if(d < max) + { + max = d; + } + max = -max; + } + else + { + d = tri.v0.x * ax + tri.v0.y * ay + tri.v0.z * az; + if(d > max) + { + max = d; + } + d = tri.v1.x * ax + tri.v1.y * ay + tri.v1.z * az; + if(d > max) + { + max = d; + } + d = tri.v2.x * ax + tri.v2.y * ay + tri.v2.z * az; + if(d > max) + { + max = d; + } + } + return projection + max - vectorProjection; + } + + private function method_828(box:name_377, tri:name_378, toBox:name_194, faceAxisIndex:int, contact:name_630) : Boolean + { + if(faceAxisIndex == 0) + { + return this.method_837(box,tri,toBox,contact); + } + return this.method_838(box,tri,toBox,faceAxisIndex,contact); + } + + private function method_837(box:name_377, tri:name_378, toBox:name_194, contact:name_630) : Boolean + { + var cp:name_674 = null; + var dot:Number = NaN; + var absDot:Number = NaN; + var v:name_194 = null; + var cpPos:name_194 = null; + var r:name_194 = null; + var boxTransform:Matrix4 = box.transform; + var triTransform:Matrix4 = tri.transform; + this.var_682.x = triTransform.c; + this.var_682.y = triTransform.g; + this.var_682.z = triTransform.k; + var over:Boolean = toBox.x * this.var_682.x + toBox.y * this.var_682.y + toBox.z * this.var_682.z > 0; + if(!over) + { + this.var_682.x = -this.var_682.x; + this.var_682.y = -this.var_682.y; + this.var_682.z = -this.var_682.z; + } + var incFaceAxisIdx:int = 0; + var incAxisDot:Number = 0; + var maxDot:Number = 0; + for(var axisIdx:int = 0; axisIdx < 3; ) + { + boxTransform.getAxis(axisIdx,this.axis); + dot = this.axis.x * this.var_682.x + this.axis.y * this.var_682.y + this.axis.z * this.var_682.z; + absDot = dot < 0 ? -dot : dot; + if(absDot > maxDot) + { + maxDot = absDot; + incAxisDot = dot; + incFaceAxisIdx = axisIdx; + } + axisIdx++; + } + var negativeFace:Boolean = incAxisDot > 0; + method_824(box.hs,incFaceAxisIdx,negativeFace,this.points1); + boxTransform.method_357(this.points1,this.points2,4); + triTransform.method_352(this.points2,this.points1,4); + var pnum:int = this.method_839(tri); + contact.name_679 = 0; + for(var i:int = 0; i < pnum; ) + { + v = this.points2[i]; + if(over && v.z < 0 || !over && v.z > 0) + { + cp = contact.points[contact.name_679++]; + cpPos = cp.pos; + cpPos.x = triTransform.a * v.x + triTransform.b * v.y + triTransform.c * v.z + triTransform.d; + cpPos.y = triTransform.e * v.x + triTransform.f * v.y + triTransform.g * v.z + triTransform.h; + cpPos.z = triTransform.i * v.x + triTransform.j * v.y + triTransform.k * v.z + triTransform.l; + r = cp.r1; + r.x = cpPos.x - boxTransform.d; + r.y = cpPos.y - boxTransform.h; + r.z = cpPos.z - boxTransform.l; + r = cp.r2; + r.x = cpPos.x - triTransform.d; + r.y = cpPos.y - triTransform.h; + r.z = cpPos.z - triTransform.l; + cp.penetration = over ? -v.z : v.z; + } + i++; + } + contact.normal.x = this.var_682.x; + contact.normal.y = this.var_682.y; + contact.normal.z = this.var_682.z; + return true; + } + + private function method_838(box:name_377, tri:name_378, toBox:name_194, faceAxisIdx:int, contact:name_630) : Boolean + { + var penetration:Number = NaN; + var cp:name_674 = null; + var cpPos:name_194 = null; + var r:name_194 = null; + faceAxisIdx--; + var boxTransform:Matrix4 = box.transform; + var triTransform:Matrix4 = tri.transform; + boxTransform.getAxis(faceAxisIdx,this.var_682); + var negativeFace:Boolean = toBox.x * this.var_682.x + toBox.y * this.var_682.y + toBox.z * this.var_682.z > 0; + if(!negativeFace) + { + this.var_682.x = -this.var_682.x; + this.var_682.y = -this.var_682.y; + this.var_682.z = -this.var_682.z; + } + var v:name_194 = this.points1[0]; + v.x = tri.v0.x; + v.y = tri.v0.y; + v.z = tri.v0.z; + v = this.points1[1]; + v.x = tri.v1.x; + v.y = tri.v1.y; + v.z = tri.v1.z; + v = this.points1[2]; + v.x = tri.v2.x; + v.y = tri.v2.y; + v.z = tri.v2.z; + triTransform.method_357(this.points1,this.points2,3); + boxTransform.method_352(this.points2,this.points1,3); + var pnum:int = this.method_832(box.hs,faceAxisIdx); + contact.name_679 = 0; + for(var i:int = 0; i < pnum; ) + { + v = this.points1[i]; + penetration = this.method_830(box.hs,v,faceAxisIdx,negativeFace); + if(penetration > -this.epsilon) + { + cp = contact.points[contact.name_679++]; + cpPos = cp.pos; + cpPos.x = boxTransform.a * v.x + boxTransform.b * v.y + boxTransform.c * v.z + boxTransform.d; + cpPos.y = boxTransform.e * v.x + boxTransform.f * v.y + boxTransform.g * v.z + boxTransform.h; + cpPos.z = boxTransform.i * v.x + boxTransform.j * v.y + boxTransform.k * v.z + boxTransform.l; + r = cp.r1; + r.x = cpPos.x - boxTransform.d; + r.y = cpPos.y - boxTransform.h; + r.z = cpPos.z - boxTransform.l; + r = cp.r2; + r.x = cpPos.x - triTransform.d; + r.y = cpPos.y - triTransform.h; + r.z = cpPos.z - triTransform.l; + cp.penetration = penetration; + } + i++; + } + contact.normal.x = this.var_682.x; + contact.normal.y = this.var_682.y; + contact.normal.z = this.var_682.z; + return true; + } + + private function method_830(hs:name_194, p:name_194, faceAxisIdx:int, negativeFace:Boolean) : Number + { + switch(faceAxisIdx) + { + case 0: + if(negativeFace) + { + return p.x + hs.x; + } + return hs.x - p.x; + break; + case 1: + if(negativeFace) + { + return p.y + hs.y; + } + return hs.y - p.y; + break; + case 2: + if(negativeFace) + { + return p.z + hs.z; + } + return hs.z - p.z; + break; + default: + return 0; + } + } + + private function method_832(hs:name_194, faceAxisIdx:int) : int + { + var pnum:int = 3; + switch(faceAxisIdx) + { + case 0: + pnum = method_819(-hs.z,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_820(hs.z,pnum,this.points2,this.points1,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_818(-hs.y,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + return method_823(hs.y,pnum,this.points2,this.points1,this.epsilon); + break; + case 1: + pnum = method_819(-hs.z,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_820(hs.z,pnum,this.points2,this.points1,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_822(-hs.x,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + return method_821(hs.x,pnum,this.points2,this.points1,this.epsilon); + break; + case 2: + pnum = method_822(-hs.x,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_821(hs.x,pnum,this.points2,this.points1,this.epsilon); + if(pnum == 0) + { + return 0; + } + pnum = method_818(-hs.y,pnum,this.points1,this.points2,this.epsilon); + if(pnum == 0) + { + return 0; + } + return method_823(hs.y,pnum,this.points2,this.points1,this.epsilon); + break; + default: + return 0; + } + } + + private function method_839(tri:name_378) : int + { + var vnum:int = 4; + vnum = this.method_836(tri.v0,tri.e0,this.points1,vnum,this.points2); + if(vnum == 0) + { + return 0; + } + vnum = this.method_836(tri.v1,tri.e1,this.points2,vnum,this.points1); + if(vnum == 0) + { + return 0; + } + return this.method_836(tri.v2,tri.e2,this.points1,vnum,this.points2); + } + + private function method_836(linePoint:name_194, lineDir:name_194, verticesIn:Vector., vnum:int, verticesOut:Vector.) : int + { + var t:Number = NaN; + var v:name_194 = null; + var v2:name_194 = null; + var offset2:Number = NaN; + var nx:Number = -lineDir.y; + var ny:Number = lineDir.x; + var offset:Number = linePoint.x * nx + linePoint.y * ny; + var v1:name_194 = verticesIn[int(vnum - 1)]; + var offset1:Number = v1.x * nx + v1.y * ny; + var num:int = 0; + for(var i:int = 0; i < vnum; i++) + { + v2 = verticesIn[i]; + offset2 = v2.x * nx + v2.y * ny; + if(offset1 < offset) + { + if(offset2 > offset) + { + t = (offset - offset1) / (offset2 - offset1); + v = verticesOut[num]; + v.x = v1.x + t * (v2.x - v1.x); + v.y = v1.y + t * (v2.y - v1.y); + v.z = v1.z + t * (v2.z - v1.z); + num++; + } + } + else + { + v = verticesOut[num]; + v.x = v1.x; + v.y = v1.y; + v.z = v1.z; + num++; + if(offset2 < offset) + { + t = (offset - offset1) / (offset2 - offset1); + v = verticesOut[num]; + v.x = v1.x + t * (v2.x - v1.x); + v.y = v1.y + t * (v2.y - v1.y); + v.z = v1.z + t * (v2.z - v1.z); + num++; + } + } + v1 = v2; + offset1 = offset2; + } + return num; + } + + private function method_831(box:name_377, tri:name_378, toBox:name_194, boxAxisIdx:int, triAxisIdx:int, contact:name_630) : Boolean + { + var tmpx1:Number = NaN; + var tmpy1:Number = NaN; + var tmpz1:Number = NaN; + var tmpx2:Number = NaN; + var tmpy2:Number = NaN; + var tmpz2:Number = NaN; + var boxHalfLen:Number = NaN; + var k:Number = NaN; + switch(triAxisIdx) + { + case 0: + tmpx1 = tri.e0.x; + tmpy1 = tri.e0.y; + tmpz1 = tri.e0.z; + tmpx2 = tri.v0.x; + tmpy2 = tri.v0.y; + tmpz2 = tri.v0.z; + break; + case 1: + tmpx1 = tri.e1.x; + tmpy1 = tri.e1.y; + tmpz1 = tri.e1.z; + tmpx2 = tri.v1.x; + tmpy2 = tri.v1.y; + tmpz2 = tri.v1.z; + break; + case 2: + tmpx1 = tri.e2.x; + tmpy1 = tri.e2.y; + tmpz1 = tri.e2.z; + tmpx2 = tri.v2.x; + tmpy2 = tri.v2.y; + tmpz2 = tri.v2.z; + } + var triTransform:Matrix4 = tri.transform; + this.axis20.x = triTransform.a * tmpx1 + triTransform.b * tmpy1 + triTransform.c * tmpz1; + this.axis20.y = triTransform.e * tmpx1 + triTransform.f * tmpy1 + triTransform.g * tmpz1; + this.axis20.z = triTransform.i * tmpx1 + triTransform.j * tmpy1 + triTransform.k * tmpz1; + var x2:Number = triTransform.a * tmpx2 + triTransform.b * tmpy2 + triTransform.c * tmpz2 + triTransform.d; + var y2:Number = triTransform.e * tmpx2 + triTransform.f * tmpy2 + triTransform.g * tmpz2 + triTransform.h; + var z2:Number = triTransform.i * tmpx2 + triTransform.j * tmpy2 + triTransform.k * tmpz2 + triTransform.l; + var boxTransform:Matrix4 = box.transform; + boxTransform.getAxis(boxAxisIdx,this.axis10); + var v:name_194 = contact.normal; + v.x = this.axis10.y * this.axis20.z - this.axis10.z * this.axis20.y; + v.y = this.axis10.z * this.axis20.x - this.axis10.x * this.axis20.z; + v.z = this.axis10.x * this.axis20.y - this.axis10.y * this.axis20.x; + k = 1 / Math.sqrt(v.x * v.x + v.y * v.y + v.z * v.z); + v.x *= k; + v.y *= k; + v.z *= k; + if(v.x * toBox.x + v.y * toBox.y + v.z * toBox.z < 0) + { + v.x = -v.x; + v.y = -v.y; + v.z = -v.z; + } + tmpx1 = box.hs.x; + tmpy1 = box.hs.y; + tmpz1 = box.hs.z; + if(boxAxisIdx == 0) + { + tmpx1 = 0; + boxHalfLen = box.hs.x; + } + else if(boxTransform.a * v.x + boxTransform.e * v.y + boxTransform.i * v.z > 0) + { + tmpx1 = -tmpx1; + } + if(boxAxisIdx == 1) + { + tmpy1 = 0; + boxHalfLen = box.hs.y; + } + else if(boxTransform.b * v.x + boxTransform.f * v.y + boxTransform.j * v.z > 0) + { + tmpy1 = -tmpy1; + } + if(boxAxisIdx == 2) + { + tmpz1 = 0; + boxHalfLen = box.hs.z; + } + else if(boxTransform.c * v.x + boxTransform.g * v.y + boxTransform.k * v.z > 0) + { + tmpz1 = -tmpz1; + } + var x1:Number = boxTransform.a * tmpx1 + boxTransform.b * tmpy1 + boxTransform.c * tmpz1 + boxTransform.d; + var y1:Number = boxTransform.e * tmpx1 + boxTransform.f * tmpy1 + boxTransform.g * tmpz1 + boxTransform.h; + var z1:Number = boxTransform.i * tmpx1 + boxTransform.j * tmpy1 + boxTransform.k * tmpz1 + boxTransform.l; + k = this.axis10.x * this.axis20.x + this.axis10.y * this.axis20.y + this.axis10.z * this.axis20.z; + var det:Number = k * k - 1; + var vx:Number = x2 - x1; + var vy:Number = y2 - y1; + var vz:Number = z2 - z1; + var c1:Number = this.axis10.x * vx + this.axis10.y * vy + this.axis10.z * vz; + var c2:Number = this.axis20.x * vx + this.axis20.y * vy + this.axis20.z * vz; + var t1:Number = (c2 * k - c1) / det; + var t2:Number = (c2 - c1 * k) / det; + contact.name_679 = 1; + var cp:name_674 = contact.points[0]; + cp.penetration = this.var_676; + v = cp.pos; + v.x = 0.5 * (x1 + this.axis10.x * t1 + x2 + this.axis20.x * t2); + v.y = 0.5 * (y1 + this.axis10.y * t1 + y2 + this.axis20.y * t2); + v.z = 0.5 * (z1 + this.axis10.z * t1 + z2 + this.axis20.z * t2); + var r:name_194 = cp.r1; + r.x = v.x - boxTransform.d; + r.y = v.y - boxTransform.h; + r.z = v.z - boxTransform.l; + r = cp.r2; + r.x = v.x - triTransform.d; + r.y = v.y - triTransform.h; + r.z = v.z - triTransform.l; + return true; + } + } +} + diff --git a/src/package_121/name_732.as b/src/package_121/name_732.as new file mode 100644 index 0000000..d9d3ffb --- /dev/null +++ b/src/package_121/name_732.as @@ -0,0 +1,73 @@ +package package_121 +{ + import package_109.name_767; + import package_46.name_194; + import package_76.name_235; + import package_76.name_665; + import package_92.name_630; + import package_92.name_674; + + public class name_732 implements name_665 + { + private var p1:name_194 = new name_194(); + + private var p2:name_194 = new name_194(); + + public function name_732() + { + super(); + } + + public function getContact(prim1:name_235, prim2:name_235, contact:name_630) : Boolean + { + var s1:name_767 = null; + var s2:name_767 = null; + var dz:Number = NaN; + if(prim1.body != null) + { + s1 = prim1 as name_767; + s2 = prim2 as name_767; + } + else + { + s1 = prim2 as name_767; + s2 = prim1 as name_767; + } + s1.transform.getAxis(3,this.p1); + s2.transform.getAxis(3,this.p2); + var dx:Number = this.p1.x - this.p2.x; + var dy:Number = this.p1.y - this.p2.y; + dz = this.p1.z - this.p2.z; + var len:Number = dx * dx + dy * dy + dz * dz; + var sum:Number = s1.r + s2.r; + if(len > sum * sum) + { + return false; + } + len = Number(Math.sqrt(len)); + dx /= len; + dy /= len; + dz /= len; + contact.body1 = s1.body; + contact.body2 = s2.body; + contact.normal.x = dx; + contact.normal.y = dy; + contact.normal.z = dz; + contact.name_679 = 1; + var cp:name_674 = contact.points[0]; + cp.penetration = sum - len; + cp.pos.x = this.p1.x - dx * s1.r; + cp.pos.y = this.p1.y - dy * s1.r; + cp.pos.z = this.p1.z - dz * s1.r; + cp.r1.method_366(cp.pos,this.p1); + cp.r2.method_366(cp.pos,this.p2); + return true; + } + + public function haveCollision(prim1:name_235, prim2:name_235) : Boolean + { + return false; + } + } +} + diff --git a/src/package_121/name_733.as b/src/package_121/name_733.as new file mode 100644 index 0000000..ca7a01e --- /dev/null +++ b/src/package_121/name_733.as @@ -0,0 +1,168 @@ +package package_121 +{ + import package_109.name_377; + import package_109.name_767; + import package_46.name_194; + import package_76.name_235; + import package_76.name_665; + import package_92.name_630; + import package_92.name_674; + + public class name_733 implements name_665 + { + private var center:name_194 = new name_194(); + + private var var_714:name_194 = new name_194(); + + private var bPos:name_194 = new name_194(); + + private var var_715:name_194 = new name_194(); + + public function name_733() + { + super(); + } + + public function getContact(prim1:name_235, prim2:name_235, contact:name_630) : Boolean + { + var box:name_377 = null; + var sphere:name_767 = prim1 as name_767; + if(sphere == null) + { + sphere = prim2 as name_767; + box = prim1 as name_377; + } + else + { + box = prim2 as name_377; + } + sphere.transform.getAxis(3,this.var_715); + box.transform.getAxis(3,this.bPos); + box.transform.transformPointTransposed(this.var_715,this.center); + var hs:name_194 = box.hs; + var sx:Number = hs.x + sphere.r; + var sy:Number = hs.y + sphere.r; + var sz:Number = hs.z + sphere.r; + if(this.center.x > sx || this.center.x < -sx || this.center.y > sy || this.center.y < -sy || this.center.z > sz || this.center.z < -sz) + { + return false; + } + if(this.center.x > hs.x) + { + this.var_714.x = hs.x; + } + else if(this.center.x < -hs.x) + { + this.var_714.x = -hs.x; + } + else + { + this.var_714.x = this.center.x; + } + if(this.center.y > hs.y) + { + this.var_714.y = hs.y; + } + else if(this.center.y < -hs.y) + { + this.var_714.y = -hs.y; + } + else + { + this.var_714.y = this.center.y; + } + if(this.center.z > hs.z) + { + this.var_714.z = hs.z; + } + else if(this.center.z < -hs.z) + { + this.var_714.z = -hs.z; + } + else + { + this.var_714.z = this.center.z; + } + var distSqr:Number = this.center.subtract(this.var_714).method_365(); + if(distSqr > sphere.r * sphere.r) + { + return false; + } + contact.body1 = sphere.body; + contact.body2 = box.body; + contact.normal.copy(this.var_714).transform4(box.transform).subtract(this.var_715).normalize().reverse(); + contact.name_679 = 1; + var cp:name_674 = contact.points[0]; + cp.penetration = sphere.r - Math.sqrt(distSqr); + cp.pos.copy(contact.normal).scale(-sphere.r).add(this.var_715); + cp.r1.method_366(cp.pos,this.var_715); + cp.r2.method_366(cp.pos,this.bPos); + return true; + } + + public function haveCollision(prim1:name_235, prim2:name_235) : Boolean + { + var box:name_377 = null; + var sphere:name_767 = prim1 as name_767; + if(sphere == null) + { + sphere = prim2 as name_767; + box = prim1 as name_377; + } + else + { + box = prim2 as name_377; + } + sphere.transform.getAxis(3,this.var_715); + box.transform.getAxis(3,this.bPos); + box.transform.transformPointTransposed(this.var_715,this.center); + var hs:name_194 = box.hs; + var sx:Number = hs.x + sphere.r; + var sy:Number = hs.y + sphere.r; + var sz:Number = hs.z + sphere.r; + if(this.center.x > sx || this.center.x < -sx || this.center.y > sy || this.center.y < -sy || this.center.z > sz || this.center.z < -sz) + { + return false; + } + if(this.center.x > hs.x) + { + this.var_714.x = hs.x; + } + else if(this.center.x < -hs.x) + { + this.var_714.x = -hs.x; + } + else + { + this.var_714.x = this.center.x; + } + if(this.center.y > hs.y) + { + this.var_714.y = hs.y; + } + else if(this.center.y < -hs.y) + { + this.var_714.y = -hs.y; + } + else + { + this.var_714.y = this.center.y; + } + if(this.center.z > hs.z) + { + this.var_714.z = hs.z; + } + else if(this.center.z < -hs.z) + { + this.var_714.z = -hs.z; + } + else + { + this.var_714.z = this.center.z; + } + var distSqr:Number = this.center.subtract(this.var_714).method_365(); + return distSqr <= sphere.r * sphere.r; + } + } +} + diff --git a/src/package_122/name_672.as b/src/package_122/name_672.as new file mode 100644 index 0000000..8a41f43 --- /dev/null +++ b/src/package_122/name_672.as @@ -0,0 +1,25 @@ +package package_122 +{ + import package_92.name_467; + + public class name_672 + { + public var name_680:Boolean; + + public var world:name_467; + + public function name_672() + { + super(); + } + + public function name_684(dt:Number) : void + { + } + + public function name_683(dt:Number) : void + { + } + } +} + diff --git a/src/package_123/class_43.as b/src/package_123/class_43.as new file mode 100644 index 0000000..a55ce71 --- /dev/null +++ b/src/package_123/class_43.as @@ -0,0 +1,109 @@ +package package_123 +{ + import flash.utils.ByteArray; + + use namespace collada; + + public class class_43 + { + private static var _byteArray:ByteArray = new ByteArray(); + + public var document:name_707; + + public var data:XML; + + private var var_697:int = -1; + + public function class_43(data:XML, document:name_707) + { + super(); + this.document = document; + this.data = data; + } + + public function name_708(str:String) : String + { + if(str == null) + { + return null; + } + _byteArray.position = 0; + _byteArray.writeUTF(str); + _byteArray.position = 0; + return _byteArray.readUTF(); + } + + public function method_314() : Boolean + { + if(this.var_697 < 0) + { + this.var_697 = this.parseImplementation() ? 1 : 0; + return this.var_697 != 0; + } + return this.var_697 != 0; + } + + protected function parseImplementation() : Boolean + { + return true; + } + + protected function name_565(element:XML) : Array + { + return element.text().toString().split(/\s+/); + } + + protected function method_866(element:XML) : Array + { + var value:String = null; + var arr:Array = element.text().toString().split(/\s+/); + for(var i:int = 0,var count:int = int(arr.length); i < count; i++) + { + value = arr[i]; + if(value.indexOf(",") != -1) + { + value = value.replace(/,/,"."); + } + arr[i] = parseFloat(value); + } + return arr; + } + + protected function method_867(element:XML) : Array + { + var value:String = null; + var arr:Array = element.text().toString().split(/\s+/); + for(var i:int = 0,var count:int = int(arr.length); i < count; i++) + { + value = arr[i]; + arr[i] = parseInt(value,10); + } + return arr; + } + + protected function method_761(element:XML) : Number + { + var value:String = element.toString().replace(/,/,"."); + return parseFloat(value); + } + + public function get id() : String + { + var idXML:XML = this.data.@id[0]; + return idXML == null ? null : idXML.toString(); + } + + public function get sid() : String + { + var attr:XML = this.data.@sid[0]; + return attr == null ? null : attr.toString(); + } + + public function get name() : String + { + var nameXML:XML = this.data.@name[0]; + return nameXML == null ? null : nameXML.toString(); + } + } +} + diff --git a/src/package_123/collada.as b/src/package_123/collada.as new file mode 100644 index 0000000..ee705c6 --- /dev/null +++ b/src/package_123/collada.as @@ -0,0 +1,5 @@ +package package_123 +{ + public namespace collada = "http://www.collada.org/2005/11/COLLADASchema"; +} + diff --git a/src/package_123/name_706.as b/src/package_123/name_706.as new file mode 100644 index 0000000..073e610 --- /dev/null +++ b/src/package_123/name_706.as @@ -0,0 +1,567 @@ +package package_123 +{ + import flash.geom.Matrix3D; + import flash.geom.Vector3D; + import package_124.name_705; + import package_125.name_709; + import package_125.name_759; + import package_125.name_760; + import package_19.name_380; + import package_19.name_528; + import package_21.name_116; + import package_21.name_78; + + use namespace collada; + + public class name_706 extends class_43 + { + public var scene:name_737; + + public var parent:name_706; + + public var skinOrTopmostJoint:Boolean = false; + + private var channels:Vector.; + + private var var_699:Vector.; + + public var nodes:Vector.; + + public var objects:Vector.; + + public var skins:Vector.; + + public function name_706(data:XML, document:name_707, scene:name_737 = null, parent:name_706 = null) + { + super(data,document); + this.scene = scene; + this.parent = parent; + this.method_879(); + } + + public function get method_872() : String + { + var n:String = this.name; + return n == null ? this.id : n; + } + + private function method_879() : void + { + var node:name_706 = null; + var nodesList:XMLList = data.node; + var count:int = int(nodesList.length()); + this.nodes = new Vector.(count); + for(var i:int = 0; i < count; i++) + { + node = new name_706(nodesList[i],document,this.scene,this); + if(node.id != null) + { + document.nodes[node.id] = node; + } + this.nodes[i] = node; + } + } + + internal function registerInstanceControllers() : void + { + var i:int = 0; + var instanceControllerXML:XML = null; + var instanceController:name_757 = null; + var jointNodes:Vector. = null; + var numNodes:int = 0; + var jointNode:name_706 = null; + var j:int = 0; + var instanceControllerXMLs:XMLList = data.instance_controller; + var count:int = int(instanceControllerXMLs.length()); + for(i = 0; i < count; ) + { + this.skinOrTopmostJoint = true; + instanceControllerXML = instanceControllerXMLs[i]; + instanceController = new name_757(instanceControllerXML,document,this); + if(instanceController.method_314()) + { + jointNodes = instanceController.topmostJoints; + numNodes = int(jointNodes.length); + if(numNodes > 0) + { + jointNode = jointNodes[0]; + jointNode.method_875(instanceController); + for(j = 0; j < numNodes; j++) + { + jointNodes[j].skinOrTopmostJoint = true; + } + } + } + i++; + } + count = int(this.nodes.length); + for(i = 0; i < count; i++) + { + this.nodes[i].registerInstanceControllers(); + } + } + + public function name_747(channel:name_742) : void + { + if(this.channels == null) + { + this.channels = new Vector.(); + } + this.channels.push(channel); + } + + public function method_875(controller:name_757) : void + { + if(this.var_699 == null) + { + this.var_699 = new Vector.(); + } + this.var_699.push(controller); + } + + override protected function parseImplementation() : Boolean + { + this.skins = this.method_880(); + this.objects = this.method_878(); + return true; + } + + private function method_874(geometry:XML) : Object + { + var instance:name_758 = null; + var instances:Object = new Object(); + var list:XMLList = geometry.bind_material.technique_common.instance_material; + for(var i:int = 0,var count:int = int(list.length()); i < count; i++) + { + instance = new name_758(list[i],document); + instances[instance.symbol] = instance; + } + return instances; + } + + public function getNodeBySid(sid:String) : name_706 + { + var i:int = 0; + var temp:Vector.> = null; + var children:Vector. = null; + var count:int = 0; + var j:int = 0; + var node:name_706 = null; + if(sid == this.sid) + { + return this; + } + var levelNodes:Vector.> = new Vector.>(); + var levelNodes2:Vector.> = new Vector.>(); + levelNodes.push(this.nodes); + for(var len:int = int(levelNodes.length); len > 0; ) + { + for(i = 0; i < len; i++) + { + children = levelNodes[i]; + count = int(children.length); + for(j = 0; j < count; ) + { + node = children[j]; + if(node.sid == sid) + { + return node; + } + if(node.nodes.length > 0) + { + levelNodes2.push(node.nodes); + } + j++; + } + } + temp = levelNodes; + levelNodes = levelNodes2; + levelNodes2 = temp; + levelNodes2.length = 0; + len = int(levelNodes.length); + } + return null; + } + + public function method_880() : Vector. + { + var instanceController:name_757 = null; + var skinAndAnimatedJoints:name_711 = null; + var skin:name_528 = null; + if(this.var_699 == null) + { + return null; + } + var skins:Vector. = new Vector.(); + for(var i:int = 0,var count:int = int(this.var_699.length); i < count; ) + { + instanceController = this.var_699[i]; + instanceController.method_314(); + skinAndAnimatedJoints = instanceController.method_429(this.method_874(instanceController.data)); + if(skinAndAnimatedJoints != null) + { + skin = name_528(skinAndAnimatedJoints.object); + skin.name = name_708(instanceController.node.name); + skins.push(skinAndAnimatedJoints); + } + i++; + } + return skins.length > 0 ? skins : null; + } + + public function method_878() : Vector. + { + var i:int = 0; + var count:int = 0; + var child:XML = null; + var lightInstance:name_741 = null; + var geom:name_736 = null; + var light:name_116 = null; + var rotXMatrix:Matrix3D = null; + var mesh:name_380 = null; + var objects:Vector. = new Vector.(); + var children:XMLList = data.children(); + for(i = 0,count = int(children.length()); i < count; ) + { + child = children[i]; + switch(child.localName()) + { + case "instance_light": + lightInstance = document.findLight(child.@url[0]); + if(lightInstance != null) + { + light = lightInstance.name_762(); + if(light != null) + { + light.name = name_708(name); + if(lightInstance.name_761) + { + rotXMatrix = new Matrix3D(); + rotXMatrix.appendRotation(180,Vector3D.X_AXIS); + objects.push(new name_711(this.name_710(light,rotXMatrix))); + } + else + { + objects.push(this.name_714(this.name_710(light))); + } + } + } + else + { + document.logger.logNotFoundError(child.@url[0]); + } + break; + case "instance_geometry": + geom = document.findGeometry(child.@url[0]); + if(geom != null) + { + geom.method_314(); + mesh = geom.method_727(this.method_874(child)); + if(mesh != null) + { + mesh.name = name_708(name); + objects.push(this.name_714(this.name_710(mesh))); + } + } + else + { + document.logger.logNotFoundError(child.@url[0]); + } + break; + case "instance_node": + document.logger.logInstanceNodeError(child); + break; + } + i++; + } + return objects.length > 0 ? objects : null; + } + + private function method_873(initialMatrix:Matrix3D = null) : Matrix3D + { + var components:Array = null; + var child:XML = null; + var sid:XML = null; + var matrix:Matrix3D = initialMatrix == null ? new Matrix3D() : initialMatrix; + var children:XMLList = data.children(); + for(var i:int = children.length() - 1; i >= 0; i--) + { + child = children[i]; + sid = child.@sid[0]; + if(sid != null && sid.toString() == "post-rotationY") + { + continue; + } + switch(child.localName()) + { + case "scale": + components = method_866(child); + matrix.appendScale(components[0],components[1],components[2]); + break; + case "rotate": + components = method_866(child); + matrix.appendRotation(components[3],new Vector3D(components[0],components[1],components[2])); + break; + case "translate": + components = method_866(child); + matrix.appendTranslation(components[0] * document.unitScaleFactor,components[1] * document.unitScaleFactor,components[2] * document.unitScaleFactor); + break; + case "matrix": + components = method_866(child); + matrix.append(new Matrix3D(Vector.([components[0],components[4],components[8],components[12],components[1],components[5],components[9],components[13],components[2],components[6],components[10],components[14],components[3] * document.unitScaleFactor,components[7] * document.unitScaleFactor,components[11] * document.unitScaleFactor,components[15]]))); + break; + case "lookat": + break; + case "skew": + document.logger.logSkewError(child); + break; + } + } + return matrix; + } + + public function name_710(object:name_78, prepend:Matrix3D = null, append:Matrix3D = null) : name_78 + { + var matrix:Matrix3D = this.method_873(prepend); + if(append != null) + { + matrix.append(append); + } + var vs:Vector. = matrix.decompose(); + var t:Vector3D = vs[0]; + var r:Vector3D = vs[1]; + var s:Vector3D = vs[2]; + object.x = t.x; + object.y = t.y; + object.z = t.z; + object.rotationX = r.x; + object.rotationY = r.y; + object.rotationZ = r.z; + object.scaleX = s.x; + object.scaleY = s.y; + object.scaleZ = s.z; + return object; + } + + public function name_714(object:name_78) : name_711 + { + var animation:name_705 = this.method_747(object); + if(animation == null) + { + return new name_711(object); + } + object.name = this.method_872; + animation.method_861(object,false); + return new name_711(object,animation); + } + + public function method_747(object:name_78 = null) : name_705 + { + if(this.channels == null || !this.method_877()) + { + return null; + } + var channel:name_742 = this.method_620(name_742.PARAM_MATRIX); + if(channel != null) + { + return this.method_876(channel.tracks); + } + var clip:name_705 = new name_705(); + var components:Vector. = object != null ? null : this.method_873().decompose(); + channel = this.method_620(name_742.PARAM_TRANSLATE); + if(channel != null) + { + this.method_870(clip,channel.tracks); + } + else + { + channel = this.method_620(name_742.PARAM_TRANSLATE_X); + if(channel != null) + { + this.method_870(clip,channel.tracks); + } + else + { + clip.name_712(this.method_871("x",object == null ? Number(components[0].x) : object.x)); + } + channel = this.method_620(name_742.PARAM_TRANSLATE_Y); + if(channel != null) + { + this.method_870(clip,channel.tracks); + } + else + { + clip.name_712(this.method_871("y",object == null ? Number(components[0].y) : object.y)); + } + channel = this.method_620(name_742.PARAM_TRANSLATE_Z); + if(channel != null) + { + this.method_870(clip,channel.tracks); + } + else + { + clip.name_712(this.method_871("z",object == null ? Number(components[0].z) : object.z)); + } + } + channel = this.method_620(name_742.PARAM_ROTATION_X); + if(channel != null) + { + this.method_870(clip,channel.tracks); + } + else + { + clip.name_712(this.method_871("rotationX",object == null ? Number(components[1].x) : object.rotationX)); + } + channel = this.method_620(name_742.PARAM_ROTATION_Y); + if(channel != null) + { + this.method_870(clip,channel.tracks); + } + else + { + clip.name_712(this.method_871("rotationY",object == null ? Number(components[1].y) : object.rotationY)); + } + channel = this.method_620(name_742.PARAM_ROTATION_Z); + if(channel != null) + { + this.method_870(clip,channel.tracks); + } + else + { + clip.name_712(this.method_871("rotationZ",object == null ? Number(components[1].z) : object.rotationZ)); + } + channel = this.method_620(name_742.PARAM_SCALE); + if(channel != null) + { + this.method_870(clip,channel.tracks); + } + else + { + channel = this.method_620(name_742.PARAM_SCALE_X); + if(channel != null) + { + this.method_870(clip,channel.tracks); + } + else + { + clip.name_712(this.method_871("scaleX",object == null ? Number(components[2].x) : object.scaleX)); + } + channel = this.method_620(name_742.PARAM_SCALE_Y); + if(channel != null) + { + this.method_870(clip,channel.tracks); + } + else + { + clip.name_712(this.method_871("scaleY",object == null ? Number(components[2].y) : object.scaleY)); + } + channel = this.method_620(name_742.PARAM_SCALE_Z); + if(channel != null) + { + this.method_870(clip,channel.tracks); + } + else + { + clip.name_712(this.method_871("scaleZ",object == null ? Number(components[2].z) : object.scaleZ)); + } + } + if(clip.numTracks > 0) + { + return clip; + } + return null; + } + + private function method_876(tracks:Vector.) : name_705 + { + var clip:name_705 = new name_705(); + for(var i:int = 0,var count:int = int(tracks.length); i < count; i++) + { + clip.name_712(tracks[i]); + } + return clip; + } + + private function method_870(clip:name_705, tracks:Vector.) : void + { + for(var i:int = 0,var count:int = int(tracks.length); i < count; i++) + { + clip.name_712(tracks[i]); + } + } + + private function method_877() : Boolean + { + var channel:name_742 = null; + var result:Boolean = false; + for(var i:int = 0,var count:int = int(this.channels.length); i < count; ) + { + channel = this.channels[i]; + channel.method_314(); + result = channel.name_756 == name_742.PARAM_MATRIX; + result ||= channel.name_756 == name_742.PARAM_TRANSLATE; + result ||= channel.name_756 == name_742.PARAM_TRANSLATE_X; + result ||= channel.name_756 == name_742.PARAM_TRANSLATE_Y; + result ||= channel.name_756 == name_742.PARAM_TRANSLATE_Z; + result ||= channel.name_756 == name_742.PARAM_ROTATION_X; + result ||= channel.name_756 == name_742.PARAM_ROTATION_Y; + result ||= channel.name_756 == name_742.PARAM_ROTATION_Z; + result ||= channel.name_756 == name_742.PARAM_SCALE; + result ||= channel.name_756 == name_742.PARAM_SCALE_X; + result ||= channel.name_756 == name_742.PARAM_SCALE_Y; + result ||= channel.name_756 == name_742.PARAM_SCALE_Z; + if(result) + { + return true; + } + i++; + } + return false; + } + + private function method_620(param:String) : name_742 + { + var channel:name_742 = null; + for(var i:int = 0,var count:int = int(this.channels.length); i < count; ) + { + channel = this.channels[i]; + channel.method_314(); + if(channel.name_756 == param) + { + return channel; + } + i++; + } + return null; + } + + private function method_881(source:Vector., dest:Vector.) : void + { + for(var i:int = 0,var count:int = int(source.length); i < count; i++) + { + dest.push(source[i]); + } + } + + private function method_871(property:String, value:Number) : name_709 + { + var track:name_760 = new name_760(this.method_872,property); + track.method_257(0,value); + return track; + } + + public function name_715() : name_759 + { + var track:name_759 = new name_759(this.method_872); + track.method_257(0,this.method_873()); + return track; + } + + public function get layer() : String + { + var layerXML:XML = data.@layer[0]; + return layerXML == null ? null : layerXML.toString(); + } + } +} + diff --git a/src/package_123/name_707.as b/src/package_123/name_707.as new file mode 100644 index 0000000..6b86c72 --- /dev/null +++ b/src/package_123/name_707.as @@ -0,0 +1,287 @@ +package package_123 +{ + use namespace collada; + + public class name_707 + { + public var scene:name_737; + + private var data:XML; + + internal var var_690:Object; + + internal var arrays:Object; + + internal var vertices:Object; + + public var geometries:Object; + + internal var nodes:Object; + + internal var lights:Object; + + internal var images:Object; + + internal var effects:Object; + + internal var var_692:Object; + + internal var var_691:Object; + + public var materials:Object; + + internal var logger:name_743; + + public var versionMajor:uint; + + public var versionMinor:uint; + + public var unitScaleFactor:Number = 1; + + public function name_707(document:XML, units:Number) + { + super(); + this.data = document; + var versionComponents:Array = this.data.@version[0].toString().split(/[.,]/); + this.versionMajor = parseInt(versionComponents[1],10); + this.versionMinor = parseInt(versionComponents[2],10); + var colladaUnit:Number = Number(parseFloat(this.data.asset[0].unit[0].@meter)); + if(units > 0) + { + this.unitScaleFactor = colladaUnit / units; + } + else + { + this.unitScaleFactor = 1; + } + this.logger = new name_743(); + this.method_848(); + this.method_847(); + this.registerInstanceControllers(); + this.method_846(); + } + + private function method_845(url:XML) : String + { + var path:String = url.toString(); + if(path.charAt(0) == "#") + { + return path.substr(1); + } + this.logger.name_745(url); + return null; + } + + private function method_848() : void + { + var element:XML = null; + var source:name_740 = null; + var light:name_741 = null; + var image:name_734 = null; + var effect:name_738 = null; + var material:name_713 = null; + var geom:name_736 = null; + var controller:name_735 = null; + var node:name_706 = null; + this.var_690 = new Object(); + this.arrays = new Object(); + for each(element in this.data..source) + { + source = new name_740(element,this); + if(source.id != null) + { + this.var_690[source.id] = source; + } + } + this.lights = new Object(); + for each(element in this.data.library_lights.light) + { + light = new name_741(element,this); + if(light.id != null) + { + this.lights[light.id] = light; + } + } + this.images = new Object(); + for each(element in this.data.library_images.image) + { + image = new name_734(element,this); + if(image.id != null) + { + this.images[image.id] = image; + } + } + this.effects = new Object(); + for each(element in this.data.library_effects.effect) + { + effect = new name_738(element,this); + if(effect.id != null) + { + this.effects[effect.id] = effect; + } + } + this.materials = new Object(); + for each(element in this.data.library_materials.material) + { + material = new name_713(element,this); + if(material.id != null) + { + this.materials[material.id] = material; + } + } + this.geometries = new Object(); + this.vertices = new Object(); + for each(element in this.data.library_geometries.geometry) + { + geom = new name_736(element,this); + if(geom.id != null) + { + this.geometries[geom.id] = geom; + } + } + this.var_692 = new Object(); + for each(element in this.data.library_controllers.controller) + { + controller = new name_735(element,this); + if(controller.id != null) + { + this.var_692[controller.id] = controller; + } + } + this.nodes = new Object(); + for each(element in this.data.library_nodes.node) + { + node = new name_706(element,this); + if(node.id != null) + { + this.nodes[node.id] = node; + } + } + } + + private function method_847() : void + { + var element:XML = null; + var vscene:name_737 = null; + var vsceneURL:XML = this.data.scene.instance_visual_scene.@url[0]; + var vsceneID:String = this.method_845(vsceneURL); + for each(element in this.data.library_visual_scenes.visual_scene) + { + vscene = new name_737(element,this); + if(vscene.id == vsceneID) + { + this.scene = vscene; + } + } + if(vsceneID != null && this.scene == null) + { + this.logger.logNotFoundError(vsceneURL); + } + } + + private function registerInstanceControllers() : void + { + var i:int = 0; + var count:int = 0; + if(this.scene != null) + { + for(i = 0,count = int(this.scene.nodes.length); i < count; i++) + { + this.scene.nodes[i].registerInstanceControllers(); + } + } + } + + private function method_846() : void + { + var element:XML = null; + var sampler:name_739 = null; + var channel:name_742 = null; + var node:name_706 = null; + this.var_691 = new Object(); + for each(element in this.data.library_animations..sampler) + { + sampler = new name_739(element,this); + if(sampler.id != null) + { + this.var_691[sampler.id] = sampler; + } + } + for each(element in this.data.library_animations..channel) + { + channel = new name_742(element,this); + node = channel.node; + if(node != null) + { + node.name_747(channel); + } + } + } + + public function findArray(url:XML) : name_746 + { + return this.arrays[this.method_845(url)]; + } + + public function findSource(url:XML) : name_740 + { + return this.var_690[this.method_845(url)]; + } + + public function findLight(url:XML) : name_741 + { + return this.lights[this.method_845(url)]; + } + + public function findImage(url:XML) : name_734 + { + return this.images[this.method_845(url)]; + } + + public function findImageByID(id:String) : name_734 + { + return this.images[id]; + } + + public function findEffect(url:XML) : name_738 + { + return this.effects[this.method_845(url)]; + } + + public function findMaterial(url:XML) : name_713 + { + return this.materials[this.method_845(url)]; + } + + public function findVertices(url:XML) : name_744 + { + return this.vertices[this.method_845(url)]; + } + + public function findGeometry(url:XML) : name_736 + { + return this.geometries[this.method_845(url)]; + } + + public function findNode(url:XML) : name_706 + { + return this.nodes[this.method_845(url)]; + } + + public function findNodeByID(id:String) : name_706 + { + return this.nodes[id]; + } + + public function findController(url:XML) : name_735 + { + return this.var_692[this.method_845(url)]; + } + + public function findSampler(url:XML) : name_739 + { + return this.var_691[this.method_845(url)]; + } + } +} + diff --git a/src/package_123/name_711.as b/src/package_123/name_711.as new file mode 100644 index 0000000..2dba1c2 --- /dev/null +++ b/src/package_123/name_711.as @@ -0,0 +1,22 @@ +package package_123 +{ + import package_124.name_705; + import package_21.name_78; + + public class name_711 + { + public var object:name_78; + + public var animation:name_705; + + public var jointNode:name_706; + + public function name_711(object:name_78, animation:name_705 = null) + { + super(); + this.object = object; + this.animation = animation; + } + } +} + diff --git a/src/package_123/name_713.as b/src/package_123/name_713.as new file mode 100644 index 0000000..71ae77a --- /dev/null +++ b/src/package_123/name_713.as @@ -0,0 +1,57 @@ +package package_123 +{ + import package_116.name_641; + + use namespace collada; + + public class name_713 extends class_43 + { + public var material:name_641; + + public var var_698:String; + + public var used:Boolean = false; + + public function name_713(data:XML, document:name_707) + { + super(data,document); + } + + private function method_869() : Object + { + var element:XML = null; + var param:name_754 = null; + var params:Object = new Object(); + var list:XMLList = data.instance_effect.setparam; + for each(element in list) + { + param = new name_754(element,document); + params[param.ref] = param; + } + return params; + } + + private function get method_868() : XML + { + return data.instance_effect.@url[0]; + } + + override protected function parseImplementation() : Boolean + { + var effect:name_738 = document.findEffect(this.method_868); + if(effect != null) + { + effect.method_314(); + this.material = effect.name_755(this.method_869()); + this.var_698 = effect.var_698; + if(this.material != null) + { + this.material.name = name_708(name); + } + return true; + } + return false; + } + } +} + diff --git a/src/package_123/name_734.as b/src/package_123/name_734.as new file mode 100644 index 0000000..1733805 --- /dev/null +++ b/src/package_123/name_734.as @@ -0,0 +1,29 @@ +package package_123 +{ + use namespace collada; + + public class name_734 extends class_43 + { + public function name_734(data:XML, document:name_707) + { + super(data,document); + } + + public function get init_from() : String + { + var refXML:XML = null; + var element:XML = data.init_from[0]; + if(element != null) + { + if(document.versionMajor > 4) + { + refXML = element.ref[0]; + return refXML == null ? null : refXML.text().toString(); + } + return element.text().toString(); + } + return null; + } + } +} + diff --git a/src/package_123/name_735.as b/src/package_123/name_735.as new file mode 100644 index 0000000..2560375 --- /dev/null +++ b/src/package_123/name_735.as @@ -0,0 +1,634 @@ +package package_123 +{ + import alternativa.engine3d.*; + import flash.utils.ByteArray; + import flash.utils.Dictionary; + import flash.utils.Endian; + import package_116.name_641; + import package_124.name_705; + import package_19.name_528; + import package_19.name_700; + import package_21.name_126; + import package_21.name_78; + import package_28.name_119; + + use namespace collada; + use namespace alternativa3d; + + public class name_735 extends class_43 + { + private var var_726:Vector.>; + + private var var_725:Array; + + private var indices:Array; + + private var var_728:name_784; + + private var var_727:name_784; + + private var var_729:int; + + private var geometry:name_119; + + private var primitives:Vector.; + + private var var_724:int = 0; + + private var var_723:Vector.; + + public function name_735(data:XML, document:name_707) + { + super(data,document); + } + + private function get method_912() : name_736 + { + var geom:name_736 = document.findGeometry(data.skin.@source[0]); + if(geom == null) + { + document.logger.logNotFoundError(data.@source[0]); + } + return geom; + } + + override protected function parseImplementation() : Boolean + { + var i:int = 0; + var j:int = 0; + var count:int = 0; + var vertices:Vector. = null; + var source:name_119 = null; + var localMaxJointsPerVertex:int = 0; + var attributes:Array = null; + var numSourceAttributes:int = 0; + var index:int = 0; + var numMappings:int = 0; + var sourceData:ByteArray = null; + var data:ByteArray = null; + var byteArray:ByteArray = null; + var attribute:int = 0; + var vertexWeightsXML:XML = this.data.skin.vertex_weights[0]; + if(vertexWeightsXML == null) + { + return false; + } + var vcountsXML:XML = vertexWeightsXML.vcount[0]; + if(vcountsXML == null) + { + return false; + } + this.var_725 = method_867(vcountsXML); + var indicesXML:XML = vertexWeightsXML.v[0]; + if(indicesXML == null) + { + return false; + } + this.indices = method_867(indicesXML); + this.method_909(); + this.method_906(); + for(i = 0; i < this.var_725.length; ) + { + count = int(this.var_725[i]); + if(this.var_724 < count) + { + this.var_724 = count; + } + i++; + } + var geom:name_736 = this.method_912; + this.var_723 = this.method_904(); + if(geom != null) + { + geom.method_314(); + vertices = geom.var_716; + source = geom.geometry; + localMaxJointsPerVertex = this.var_724 % 2 != 0 ? this.var_724 + 1 : this.var_724; + this.geometry = new name_119(); + this.geometry.alternativa3d::_indices = source.alternativa3d::_indices.slice(); + attributes = source.method_279(0); + numSourceAttributes = int(attributes.length); + index = numSourceAttributes; + for(i = 0; i < localMaxJointsPerVertex; i += 2) + { + attribute = int(name_126.JOINTS[int(i / 2)]); + attributes[int(index++)] = attribute; + attributes[int(index++)] = attribute; + attributes[int(index++)] = attribute; + attributes[int(index++)] = attribute; + } + numMappings = int(attributes.length); + sourceData = source.alternativa3d::_vertexStreams[0].data; + data = new ByteArray(); + data.endian = Endian.LITTLE_ENDIAN; + data.length = 4 * numMappings * source.alternativa3d::_numVertices; + sourceData.position = 0; + for(i = 0; i < source.alternativa3d::_numVertices; i++) + { + data.position = 4 * numMappings * i; + for(j = 0; j < numSourceAttributes; j++) + { + data.writeFloat(sourceData.readFloat()); + } + } + byteArray = this.createVertexBuffer(vertices,localMaxJointsPerVertex); + byteArray.position = 0; + for(i = 0; i < source.alternativa3d::_numVertices; i++) + { + data.position = 4 * (numMappings * i + numSourceAttributes); + for(j = 0; j < localMaxJointsPerVertex; j++) + { + data.writeFloat(byteArray.readFloat()); + data.writeFloat(byteArray.readFloat()); + } + } + this.geometry.addVertexStream(attributes); + this.geometry.alternativa3d::_vertexStreams[0].data = data; + this.geometry.alternativa3d::_numVertices = source.alternativa3d::_numVertices; + this.method_908(this.geometry); + this.primitives = geom.primitives; + } + return true; + } + + private function method_908(geometry:name_119) : void + { + var x:Number = NaN; + var y:Number = NaN; + var z:Number = NaN; + var data:ByteArray = geometry.alternativa3d::_vertexStreams[0].data; + var numMappings:int = int(geometry.alternativa3d::_vertexStreams[0].attributes.length); + for(var i:int = 0; i < geometry.alternativa3d::_numVertices; i++) + { + data.position = 4 * numMappings * i; + x = Number(data.readFloat()); + y = Number(data.readFloat()); + z = Number(data.readFloat()); + data.position -= 12; + data.writeFloat(x * this.var_723[0] + y * this.var_723[1] + z * this.var_723[2] + this.var_723[3]); + data.writeFloat(x * this.var_723[4] + y * this.var_723[5] + z * this.var_723[6] + this.var_723[7]); + data.writeFloat(x * this.var_723[8] + y * this.var_723[9] + z * this.var_723[10] + this.var_723[11]); + } + } + + private function createVertexBuffer(vertices:Vector., localMaxJointsPerVertex:int) : ByteArray + { + var i:int = 0; + var count:int = 0; + var vertexOutIndices:Vector. = null; + var vertex:name_770 = null; + var vec:Vector. = null; + var jointsPerVertex:int = 0; + var j:int = 0; + var k:int = 0; + var index:int = 0; + var jointIndex:int = 0; + var weightIndex:int = 0; + var jointsOffset:int = this.var_728.offset; + var weightsOffset:int = this.var_727.offset; + var weightsSource:name_740 = this.var_727.prepareSource(1); + var weights:Vector. = weightsSource.numbers; + var weightsStride:int = weightsSource.stride; + var verticesDict:Dictionary = new Dictionary(); + var byteArray:ByteArray = new ByteArray(); + byteArray.length = vertices.length * localMaxJointsPerVertex * 8; + byteArray.endian = Endian.LITTLE_ENDIAN; + for(i = 0,count = int(vertices.length); i < count; i++) + { + vertex = vertices[i]; + if(vertex != null) + { + vec = verticesDict[vertex.name_785]; + if(vec == null) + { + vec = verticesDict[vertex.name_785] = new Vector.(); + } + vec.push(vertex.name_786); + } + } + var vertexIndex:int = 0; + for(i = 0,count = int(this.var_725.length); i < count; i++) + { + jointsPerVertex = int(this.var_725[i]); + vertexOutIndices = verticesDict[i]; + for(j = 0; j < vertexOutIndices.length; j++) + { + byteArray.position = vertexOutIndices[j] * localMaxJointsPerVertex * 8; + for(k = 0; k < jointsPerVertex; k++) + { + index = this.var_729 * (vertexIndex + k); + jointIndex = int(this.indices[int(index + jointsOffset)]); + if(jointIndex >= 0) + { + byteArray.writeFloat(jointIndex * 3); + weightIndex = int(this.indices[int(index + weightsOffset)]); + byteArray.writeFloat(weights[int(weightsStride * weightIndex)]); + } + else + { + byteArray.position += 8; + } + } + } + vertexIndex += jointsPerVertex; + } + byteArray.position = 0; + return byteArray; + } + + private function method_909() : void + { + var input:name_784 = null; + var semantic:String = null; + var offset:int = 0; + var inputsList:XMLList = data.skin.vertex_weights.input; + var maxInputOffset:int = 0; + for(var i:int = 0,var count:int = int(inputsList.length()); i < count; offset = input.offset,maxInputOffset = offset > maxInputOffset ? offset : maxInputOffset,i++) + { + input = new name_784(inputsList[i],document); + semantic = input.semantic; + if(semantic == null) + { + continue; + } + switch(semantic) + { + case "JOINT": + if(this.var_728 == null) + { + this.var_728 = input; + } + break; + case "WEIGHT": + if(this.var_727 == null) + { + this.var_727 = input; + } + break; + } + } + this.var_729 = maxInputOffset + 1; + } + + private function method_906() : void + { + var jointsXML:XML = null; + var jointsSource:name_740 = null; + var stride:int = 0; + var count:int = 0; + var i:int = 0; + var index:int = 0; + var matrix:Vector. = null; + var j:int = 0; + jointsXML = data.skin.joints.input.(@semantic == "INV_BIND_MATRIX")[0]; + if(jointsXML != null) + { + jointsSource = document.findSource(jointsXML.@source[0]); + if(jointsSource != null) + { + if(jointsSource.method_314() && jointsSource.numbers != null && jointsSource.stride >= 16) + { + stride = jointsSource.stride; + count = jointsSource.numbers.length / stride; + this.var_726 = new Vector.>(count); + for(i = 0; i < count; i++) + { + index = stride * i; + matrix = new Vector.(16); + this.var_726[i] = matrix; + for(j = 0; j < 16; j++) + { + matrix[j] = jointsSource.numbers[int(index + j)]; + } + } + } + } + else + { + document.logger.logNotFoundError(jointsXML.@source[0]); + } + } + } + + public function method_429(materials:Object, topmostJoints:Vector., skeletons:Vector.) : name_711 + { + var numJoints:int = 0; + var skin:name_528 = null; + var joints:Vector. = null; + var i:int = 0; + var p:name_768 = null; + var instanceMaterial:name_758 = null; + var material:name_641 = null; + var daeMaterial:name_713 = null; + var skinXML:XML = data.skin[0]; + if(skinXML != null) + { + this.var_723 = this.method_904(); + numJoints = int(this.var_726.length); + skin = new name_528(this.var_724,numJoints); + skin.geometry = this.geometry; + joints = this.method_915(skin,topmostJoints,this.method_902(skeletons)); + this.method_910(joints); + skin.var_631 = this.method_905(joints,numJoints); + if(this.primitives != null) + { + for(i = 0; i < this.primitives.length; i++) + { + p = this.primitives[i]; + instanceMaterial = materials[p.name_774]; + if(instanceMaterial != null) + { + daeMaterial = instanceMaterial.material; + if(daeMaterial != null) + { + daeMaterial.method_314(); + material = daeMaterial.material; + daeMaterial.used = true; + } + } + skin.addSurface(material,p.indexBegin,p.numTriangles); + } + } + return new name_711(skin,this.method_913(skin,joints)); + } + return null; + } + + private function method_905(joints:Vector., numJoints:int) : Vector. + { + var result:Vector. = new Vector.(); + for(var i:int = 0; i < numJoints; i++) + { + result[i] = name_700(joints[i].object); + } + return result; + } + + private function method_913(skin:name_528, joints:Vector.) : name_705 + { + var animatedObject:name_711 = null; + var clip:name_705 = null; + var object:name_78 = null; + var t:int = 0; + if(!this.method_911(joints)) + { + return null; + } + var result:name_705 = new name_705(); + var resultObjects:Array = [skin]; + for(var i:int = 0,var count:int = int(joints.length); i < count; i++) + { + animatedObject = joints[i]; + clip = animatedObject.animation; + if(clip != null) + { + for(t = 0; t < clip.numTracks; t++) + { + result.name_712(clip.name_716(t)); + } + } + else + { + result.name_712(animatedObject.jointNode.name_715()); + } + object = animatedObject.object; + object.name = animatedObject.jointNode.method_872; + resultObjects.push(object); + } + result.alternativa3d::var_346 = resultObjects; + return result; + } + + private function method_911(joints:Vector.) : Boolean + { + var object:name_711 = null; + for(var i:int = 0,var count:int = int(joints.length); i < count; ) + { + object = joints[i]; + if(object.animation != null) + { + return true; + } + i++; + } + return false; + } + + private function method_910(animatedJoints:Vector.) : void + { + var animatedJoint:name_711 = null; + var bindMatrix:Vector. = null; + for(var i:int = 0,var count:int = int(this.var_726.length); i < count; i++) + { + animatedJoint = animatedJoints[i]; + bindMatrix = this.var_726[i]; + name_700(animatedJoint.object).alternativa3d::name_701(bindMatrix); + } + } + + private function method_915(skin:name_528, topmostJoints:Vector., nodes:Vector.) : Vector. + { + var i:int = 0; + var topmostJoint:name_706 = null; + var animatedJoint:name_711 = null; + var nodesDictionary:Dictionary = new Dictionary(); + var count:int = int(nodes.length); + for(i = 0; i < count; i++) + { + nodesDictionary[nodes[i]] = i; + } + var animatedJoints:Vector. = new Vector.(count); + var numTopmostJoints:int = int(topmostJoints.length); + for(i = 0; i < numTopmostJoints; i++) + { + topmostJoint = topmostJoints[i]; + animatedJoint = this.method_914(skin,topmostJoint,animatedJoints,nodesDictionary); + this.method_901(name_700(animatedJoint.object),animatedJoints,topmostJoint,nodesDictionary); + } + return animatedJoints; + } + + private function method_914(skin:name_528, node:name_706, animatedJoints:Vector., nodes:Dictionary) : name_711 + { + var joint:name_700 = new name_700(); + joint.name = name_708(node.name); + skin.addChild(joint); + var animatedJoint:name_711 = node.name_714(node.name_710(joint)); + animatedJoint.jointNode = node; + if(node in nodes) + { + animatedJoints[nodes[node]] = animatedJoint; + } + else + { + animatedJoints.push(animatedJoint); + } + return animatedJoint; + } + + private function method_901(parent:name_700, animatedJoints:Vector., parentNode:name_706, nodes:Dictionary) : void + { + var object:name_711 = null; + var child:name_706 = null; + var joint:name_700 = null; + var children:Vector. = parentNode.nodes; + for(var i:int = 0,var count:int = int(children.length); i < count; ) + { + child = children[i]; + if(child in nodes) + { + joint = new name_700(); + joint.name = name_708(child.name); + object = child.name_714(child.name_710(joint)); + object.jointNode = child; + animatedJoints[nodes[child]] = object; + parent.addChild(joint); + this.method_901(joint,animatedJoints,child,nodes); + } + else if(this.method_903(child,nodes)) + { + joint = new name_700(); + joint.name = name_708(child.name); + object = child.name_714(child.name_710(joint)); + object.jointNode = child; + animatedJoints.push(object); + parent.addChild(joint); + this.method_901(joint,animatedJoints,child,nodes); + } + i++; + } + } + + private function method_903(parentNode:name_706, nodes:Dictionary) : Boolean + { + var child:name_706 = null; + var children:Vector. = parentNode.nodes; + for(var i:int = 0,var count:int = int(children.length); i < count; ) + { + child = children[i]; + if(child in nodes || this.method_903(child,nodes)) + { + return true; + } + i++; + } + return false; + } + + private function method_904() : Vector. + { + var matrix:Array = null; + var i:int = 0; + var matrixXML:XML = data.skin.bind_shape_matrix[0]; + var res:Vector. = new Vector.(16,true); + if(matrixXML != null) + { + matrix = name_565(matrixXML); + for(i = 0; i < matrix.length; i++) + { + res[i] = Number(matrix[i]); + } + } + return res; + } + + private function method_907(node:name_706, nodes:Dictionary) : Boolean + { + for(var parent:name_706 = node.parent; parent != null; ) + { + if(parent in nodes) + { + return false; + } + parent = parent.parent; + } + return true; + } + + public function method_916(skeletons:Vector.) : Vector. + { + var nodesDictionary:Dictionary = null; + var rootNodes:Vector. = null; + var node:name_706 = null; + var nodes:Vector. = this.method_902(skeletons); + var i:int = 0; + var count:int = int(nodes.length); + if(count > 0) + { + nodesDictionary = new Dictionary(); + for(i = 0; i < count; i++) + { + nodesDictionary[nodes[i]] = i; + } + rootNodes = new Vector.(); + for(i = 0; i < count; ) + { + node = nodes[i]; + if(this.method_907(node,nodesDictionary)) + { + rootNodes.push(node); + } + i++; + } + return rootNodes; + } + return null; + } + + private function findNode(nodeName:String, skeletons:Vector.) : name_706 + { + var node:name_706 = null; + var count:int = int(skeletons.length); + for(var i:int = 0; i < count; ) + { + node = skeletons[i].getNodeBySid(nodeName); + if(node != null) + { + return node; + } + i++; + } + return null; + } + + private function method_902(skeletons:Vector.) : Vector. + { + var jointsXML:XML = null; + var jointsSource:name_740 = null; + var stride:int = 0; + var count:int = 0; + var nodes:Vector. = null; + var i:int = 0; + var node:name_706 = null; + jointsXML = data.skin.joints.input.(@semantic == "JOINT")[0]; + if(jointsXML != null) + { + jointsSource = document.findSource(jointsXML.@source[0]); + if(jointsSource != null) + { + if(jointsSource.method_314() && jointsSource.names != null) + { + stride = jointsSource.stride; + count = jointsSource.names.length / stride; + nodes = new Vector.(count); + for(i = 0; i < count; i++) + { + node = this.findNode(jointsSource.names[int(stride * i)],skeletons); + if(node == null) + { + } + nodes[i] = node; + } + return nodes; + } + } + else + { + document.logger.logNotFoundError(jointsXML.@source[0]); + } + } + return null; + } + } +} + diff --git a/src/package_123/name_736.as b/src/package_123/name_736.as new file mode 100644 index 0000000..0686a78 --- /dev/null +++ b/src/package_123/name_736.as @@ -0,0 +1,209 @@ +package package_123 +{ + import alternativa.engine3d.alternativa3d; + import flash.utils.ByteArray; + import flash.utils.Endian; + import package_116.name_641; + import package_19.name_380; + import package_21.name_126; + import package_28.name_119; + + use namespace collada; + use namespace alternativa3d; + + public class name_736 extends class_43 + { + internal var var_716:Vector.; + + internal var primitives:Vector.; + + internal var geometry:name_119; + + private var vertices:name_744; + + public function name_736(data:XML, document:name_707) + { + super(data,document); + this.method_888(); + } + + private function method_888() : void + { + var verticesXML:XML = data.mesh.vertices[0]; + if(verticesXML != null) + { + this.vertices = new name_744(verticesXML,document); + document.vertices[this.vertices.id] = this.vertices; + } + } + + override protected function parseImplementation() : Boolean + { + var numVertices:int = 0; + var i:int = 0; + var p:name_768 = null; + var channels:uint = 0; + var attributes:Array = null; + var index:int = 0; + var data:ByteArray = null; + var numMappings:int = 0; + var vertex:name_770 = null; + var j:int = 0; + if(this.vertices != null) + { + this.method_889(); + this.vertices.method_314(); + numVertices = this.vertices.name_771.numbers.length / this.vertices.name_771.stride; + this.geometry = new name_119(); + this.var_716 = new Vector.(numVertices); + channels = 0; + for(i = 0; i < this.primitives.length; ) + { + p = this.primitives[i]; + p.method_314(); + if(p.name_772(this.vertices)) + { + numVertices = int(this.var_716.length); + channels |= p.name_773(this.geometry,this.var_716); + } + i++; + } + attributes = new Array(3); + attributes[0] = name_126.POSITION; + attributes[1] = name_126.POSITION; + attributes[2] = name_126.POSITION; + index = 3; + if(Boolean(channels & name_768.NORMALS)) + { + var _loc11_:* = index++; + attributes[_loc11_] = name_126.NORMAL; + var _loc12_:* = index++; + attributes[_loc12_] = name_126.NORMAL; + var _loc13_:* = index++; + attributes[_loc13_] = name_126.NORMAL; + } + if(Boolean(channels & name_768.TANGENT4)) + { + _loc11_ = index++; + attributes[_loc11_] = name_126.TANGENT4; + _loc12_ = index++; + attributes[_loc12_] = name_126.TANGENT4; + _loc13_ = index++; + attributes[_loc13_] = name_126.TANGENT4; + var _loc14_:* = index++; + attributes[_loc14_] = name_126.TANGENT4; + } + for(i = 0; i < 8; ) + { + if(Boolean(channels & name_768.TEXCOORDS[i])) + { + _loc11_ = index++; + attributes[_loc11_] = name_126.TEXCOORDS[i]; + _loc12_ = index++; + attributes[_loc12_] = name_126.TEXCOORDS[i]; + } + i++; + } + this.geometry.addVertexStream(attributes); + numVertices = int(this.var_716.length); + data = new ByteArray(); + data.endian = Endian.LITTLE_ENDIAN; + numMappings = int(attributes.length); + data.length = 4 * numMappings * numVertices; + for(i = 0; i < numVertices; ) + { + vertex = this.var_716[i]; + if(vertex != null) + { + data.position = 4 * numMappings * i; + data.writeFloat(vertex.x); + data.writeFloat(vertex.y); + data.writeFloat(vertex.z); + if(vertex.normal != null) + { + data.writeFloat(vertex.normal.x); + data.writeFloat(vertex.normal.y); + data.writeFloat(vertex.normal.z); + } + if(vertex.name_769 != null) + { + data.writeFloat(vertex.name_769.x); + data.writeFloat(vertex.name_769.y); + data.writeFloat(vertex.name_769.z); + data.writeFloat(vertex.name_769.w); + } + for(j = 0; j < vertex.uvs.length; ) + { + data.writeFloat(vertex.uvs[j]); + j++; + } + } + i++; + } + this.geometry.alternativa3d::_vertexStreams[0].data = data; + this.geometry.alternativa3d::_numVertices = numVertices; + return true; + } + return false; + } + + private function method_889() : void + { + var child:XML = null; + var p:name_768 = null; + this.primitives = new Vector.(); + var children:XMLList = data.mesh.children(); + for(var i:int = 0,var count:int = int(children.length()); i < count; ) + { + child = children[i]; + switch(child.localName()) + { + case "polygons": + case "polylist": + case "triangles": + case "trifans": + case "tristrips": + p = new name_768(child,document); + this.primitives.push(p); + break; + } + i++; + } + } + + public function method_727(materials:Object) : name_380 + { + var mesh:name_380 = null; + var i:int = 0; + var p:name_768 = null; + var instanceMaterial:name_758 = null; + var material:name_641 = null; + var daeMaterial:name_713 = null; + if(data.mesh.length() > 0) + { + mesh = new name_380(); + mesh.geometry = this.geometry; + for(i = 0; i < this.primitives.length; i++) + { + p = this.primitives[i]; + instanceMaterial = materials[p.name_774]; + if(instanceMaterial != null) + { + daeMaterial = instanceMaterial.material; + if(daeMaterial != null) + { + daeMaterial.method_314(); + material = daeMaterial.material; + daeMaterial.used = true; + } + } + mesh.addSurface(material,p.indexBegin,p.numTriangles); + } + mesh.calculateBoundBox(); + return mesh; + } + return null; + } + } +} + diff --git a/src/package_123/name_737.as b/src/package_123/name_737.as new file mode 100644 index 0000000..0898be7 --- /dev/null +++ b/src/package_123/name_737.as @@ -0,0 +1,33 @@ +package package_123 +{ + use namespace collada; + + public class name_737 extends class_43 + { + public var nodes:Vector.; + + public function name_737(data:XML, document:name_707) + { + super(data,document); + this.method_879(); + } + + public function method_879() : void + { + var node:name_706 = null; + var nodesList:XMLList = data.node; + var count:int = int(nodesList.length()); + this.nodes = new Vector.(count); + for(var i:int = 0; i < count; i++) + { + node = new name_706(nodesList[i],document,this); + if(node.id != null) + { + document.nodes[node.id] = node; + } + this.nodes[i] = node; + } + } + } +} + diff --git a/src/package_123/name_738.as b/src/package_123/name_738.as new file mode 100644 index 0000000..dd9342f --- /dev/null +++ b/src/package_123/name_738.as @@ -0,0 +1,255 @@ +package package_123 +{ + import package_116.name_641; + import package_28.name_167; + + use namespace collada; + + public class name_738 extends class_43 + { + public static var commonAlways:Boolean = false; + + private var var_717:Object; + + private var var_718:Object; + + private var var_719:Object; + + private var diffuse:name_775; + + private var ambient:name_775; + + private var transparent:name_775; + + private var transparency:name_775; + + private var bump:name_775; + + private var reflective:name_775; + + private var emission:name_775; + + private var specular:name_775; + + public function name_738(data:XML, document:name_707) + { + super(data,document); + this.method_891(); + } + + private function method_891() : void + { + var element:XML = null; + var image:name_734 = null; + var list:XMLList = data..image; + for each(element in list) + { + image = new name_734(element,document); + if(image.id != null) + { + document.images[image.id] = image; + } + } + } + + override protected function parseImplementation() : Boolean + { + var shader:XML; + var element:XML = null; + var param:name_754 = null; + var technique:XML = null; + var bumpXML:XML = null; + var diffuseXML:XML = null; + var transparentXML:XML = null; + var transparencyXML:XML = null; + var ambientXML:XML = null; + var reflectiveXML:XML = null; + var emissionXML:XML = null; + var specularXML:XML = null; + this.var_717 = new Object(); + for each(element in data.newparam) + { + param = new name_754(element,document); + this.var_717[param.sid] = param; + } + this.var_718 = new Object(); + for each(element in data.profile_COMMON.newparam) + { + param = new name_754(element,document); + this.var_718[param.sid] = param; + } + this.var_719 = new Object(); + technique = data.profile_COMMON.technique[0]; + if(technique != null) + { + for each(element in technique.newparam) + { + param = new name_754(element,document); + this.var_719[param.sid] = param; + } + } + shader = data.profile_COMMON.technique.*.(localName() == "constant" || localName() == "lambert" || localName() == "phong" || localName() == "blinn")[0]; + if(shader != null) + { + diffuseXML = null; + if(shader.localName() == "constant") + { + diffuseXML = shader.emission[0]; + } + else + { + diffuseXML = shader.diffuse[0]; + emissionXML = shader.emission[0]; + if(emissionXML != null) + { + this.emission = new name_775(emissionXML,this); + } + } + if(diffuseXML != null) + { + this.diffuse = new name_775(diffuseXML,this); + } + if(shader.localName() == "phong" || shader.localName() == "blinn") + { + specularXML = shader.specular[0]; + if(specularXML != null) + { + this.specular = new name_775(specularXML,this); + } + } + transparentXML = shader.transparent[0]; + if(transparentXML != null) + { + this.transparent = new name_775(transparentXML,this); + } + transparencyXML = shader.transparency[0]; + if(transparencyXML != null) + { + this.transparency = new name_775(transparencyXML,this); + } + ambientXML = shader.ambient[0]; + if(ambientXML != null) + { + this.ambient = new name_775(ambientXML,this); + } + reflectiveXML = shader.reflective[0]; + if(reflectiveXML != null) + { + this.reflective = new name_775(reflectiveXML,this); + } + } + bumpXML = data.profile_COMMON.technique.extra.technique.(Boolean(hasOwnProperty("@profile")) && @profile == "OpenCOLLADA3dsMax").bump[0]; + if(bumpXML != null) + { + this.bump = new name_775(bumpXML,this); + } + return true; + } + + internal function method_893(name:String, setparams:Object) : name_754 + { + var param:name_754 = setparams[name]; + if(param != null) + { + return param; + } + param = this.var_719[name]; + if(param != null) + { + return param; + } + param = this.var_718[name]; + if(param != null) + { + return param; + } + return this.var_717[name]; + } + + private function method_892(value:Array, alpha:Boolean = true) : uint + { + var a:uint = 0; + var r:uint = value[0] * 255; + var g:uint = value[1] * 255; + var b:uint = value[2] * 255; + if(alpha) + { + a = value[3] * 255; + return a << 24 | r << 16 | g << 8 | b; + } + return r << 16 | g << 8 | b; + } + + public function name_755(setparams:Object) : name_641 + { + var material:name_641 = null; + if(this.diffuse != null) + { + material = new name_641(); + if(Boolean(this.diffuse)) + { + this.method_890(material,this.diffuse,setparams); + } + if(this.specular != null) + { + this.method_890(material,this.specular,setparams); + } + if(this.emission != null) + { + this.method_890(material,this.emission,setparams); + } + if(this.transparency != null) + { + material.transparency = this.transparency.name_777(setparams); + } + if(this.transparent != null) + { + this.method_890(material,this.transparent,setparams); + } + if(this.bump != null) + { + this.method_890(material,this.bump,setparams); + } + if(Boolean(this.ambient)) + { + this.method_890(material,this.ambient,setparams); + } + if(Boolean(this.reflective)) + { + this.method_890(material,this.reflective,setparams); + } + return material; + } + return null; + } + + private function method_890(material:name_641, param:name_775, setparams:Object) : void + { + var image:name_734 = null; + var color:Array = param.method_273(setparams); + if(color != null) + { + material.colors[name_708(param.data.localName())] = this.method_892(color,true); + } + else + { + image = param.method_604(setparams); + if(image != null) + { + material.textures[name_708(param.data.localName())] = new name_167(name_708(image.init_from)); + } + } + } + + public function get var_698() : String + { + var channel:String = null; + channel = channel == null && this.diffuse != null ? this.diffuse.name_776 : channel; + channel = channel == null && this.transparent != null ? this.transparent.name_776 : channel; + channel = channel == null && this.bump != null ? this.bump.name_776 : channel; + channel = channel == null && this.emission != null ? this.emission.name_776 : channel; + return channel == null && this.specular != null ? this.specular.name_776 : channel; + } + } +} + diff --git a/src/package_123/name_739.as b/src/package_123/name_739.as new file mode 100644 index 0000000..34e9f07 --- /dev/null +++ b/src/package_123/name_739.as @@ -0,0 +1,135 @@ +package package_123 +{ + import flash.geom.Matrix3D; + import package_125.name_709; + import package_125.name_759; + import package_125.name_760; + + use namespace collada; + + public class name_739 extends class_43 + { + private var var_720:Vector.; + + private var values:Vector.; + + private var var_721:int; + + private var var_722:int; + + public function name_739(data:XML, document:name_707) + { + super(data,document); + } + + override protected function parseImplementation() : Boolean + { + var inputSource:name_740 = null; + var outputSource:name_740 = null; + var input:name_784 = null; + var semantic:String = null; + var inputsList:XMLList = data.input; + for(var i:int = 0,var count:int = int(inputsList.length()); i < count; i++) + { + input = new name_784(inputsList[i],document); + semantic = input.semantic; + if(semantic == null) + { + continue; + } + switch(semantic) + { + case "INPUT": + inputSource = input.prepareSource(1); + if(inputSource != null) + { + this.var_720 = inputSource.numbers; + this.var_721 = inputSource.stride; + } + break; + case "OUTPUT": + outputSource = input.prepareSource(1); + if(outputSource != null) + { + this.values = outputSource.numbers; + this.var_722 = outputSource.stride; + } + break; + } + } + return true; + } + + public function name_780(objectName:String, property:String) : name_760 + { + var track:name_760 = null; + var count:int = 0; + var i:int = 0; + if(this.var_720 != null && this.values != null && this.var_721 > 0) + { + track = new name_760(objectName,property); + count = this.var_720.length / this.var_721; + for(i = 0; i < count; i++) + { + track.method_257(this.var_720[int(this.var_721 * i)],this.values[int(this.var_722 * i)]); + } + return track; + } + return null; + } + + public function name_782(objectName:String) : name_709 + { + var track:name_759 = null; + var count:int = 0; + var i:int = 0; + var index:int = 0; + var matrix:Matrix3D = null; + if(this.var_720 != null && this.values != null && this.var_721 != 0) + { + track = new name_759(objectName); + count = this.var_720.length / this.var_721; + for(i = 0; i < count; i++) + { + index = this.var_722 * i; + matrix = new Matrix3D(Vector.([this.values[index],this.values[index + 4],this.values[index + 8],this.values[index + 12],this.values[index + 1],this.values[index + 5],this.values[index + 9],this.values[index + 13],this.values[index + 2],this.values[index + 6],this.values[index + 10],this.values[index + 14],this.values[index + 3],this.values[index + 7],this.values[index + 11],this.values[index + 15]])); + track.method_257(this.var_720[i * this.var_721],matrix); + } + return track; + } + return null; + } + + public function name_779(objectName:String, xProperty:String, yProperty:String, zProperty:String) : Vector. + { + var xTrack:name_760 = null; + var yTrack:name_760 = null; + var zTrack:name_760 = null; + var count:int = 0; + var i:int = 0; + var index:int = 0; + var time:Number = NaN; + if(this.var_720 != null && this.values != null && this.var_721 != 0) + { + xTrack = new name_760(objectName,xProperty); + xTrack.object = objectName; + yTrack = new name_760(objectName,yProperty); + yTrack.object = objectName; + zTrack = new name_760(objectName,zProperty); + zTrack.object = objectName; + count = this.var_720.length / this.var_721; + for(i = 0; i < count; i++) + { + index = i * this.var_722; + time = this.var_720[i * this.var_721]; + xTrack.method_257(time,this.values[index]); + yTrack.method_257(time,this.values[index + 1]); + zTrack.method_257(time,this.values[index + 2]); + } + return Vector.([xTrack,yTrack,zTrack]); + } + return null; + } + } +} + diff --git a/src/package_123/name_740.as b/src/package_123/name_740.as new file mode 100644 index 0000000..2c8f61b --- /dev/null +++ b/src/package_123/name_740.as @@ -0,0 +1,170 @@ +package package_123 +{ + use namespace collada; + + public class name_740 extends class_43 + { + private const const_9:String = "float_array"; + + private const const_7:String = "int_array"; + + private const const_8:String = "Name_array"; + + public var numbers:Vector.; + + public var var_549:Vector.; + + public var names:Vector.; + + public var stride:int; + + public function name_740(data:XML, document:name_707) + { + super(data,document); + this.method_898(); + } + + private function method_898() : void + { + var child:XML = null; + var array:name_746 = null; + var children:XMLList = data.children(); + for(var i:int = 0,var count:int = int(children.length()); i < count; ) + { + child = children[i]; + switch(child.localName()) + { + case this.const_9: + case this.const_7: + case this.const_8: + array = new name_746(child,document); + if(array.id != null) + { + document.arrays[array.id] = array; + } + break; + } + i++; + } + } + + private function get accessor() : XML + { + return data.technique_common.accessor[0]; + } + + override protected function parseImplementation() : Boolean + { + var arrayXML:XML = null; + var array:name_746 = null; + var countXML:String = null; + var count:int = 0; + var offsetXML:XML = null; + var strideXML:XML = null; + var offset:int = 0; + var stride:int = 0; + var accessor:XML = this.accessor; + if(accessor != null) + { + arrayXML = accessor.@source[0]; + array = arrayXML == null ? null : document.findArray(arrayXML); + if(array != null) + { + countXML = accessor.@count[0]; + if(countXML != null) + { + count = int(parseInt(countXML.toString(),10)); + offsetXML = accessor.@offset[0]; + strideXML = accessor.@stride[0]; + offset = offsetXML == null ? 0 : int(parseInt(offsetXML.toString(),10)); + stride = strideXML == null ? 1 : int(parseInt(strideXML.toString(),10)); + array.method_314(); + if(array.array.length < offset + count * stride) + { + document.logger.logNotEnoughDataError(accessor); + return false; + } + this.stride = this.method_900(offset,count,stride,array.array,array.type); + return true; + } + } + else + { + document.logger.logNotFoundError(arrayXML); + } + } + return false; + } + + private function method_899(params:XMLList) : int + { + var res:int = 0; + for(var i:int = 0,var count:int = int(params.length()); i < count; ) + { + if(params[i].@name[0] != null) + { + res++; + } + i++; + } + return res; + } + + private function method_900(offset:int, count:int, stride:int, array:Array, type:String) : int + { + var param:XML = null; + var j:int = 0; + var value:String = null; + var params:XMLList = this.accessor.param; + var arrStride:int = int(Math.max(this.method_899(params),stride)); + switch(type) + { + case this.const_9: + this.numbers = new Vector.(int(arrStride * count)); + break; + case this.const_7: + this.var_549 = new Vector.(int(arrStride * count)); + break; + case this.const_8: + this.names = new Vector.(int(arrStride * count)); + } + var curr:int = 0; + for(var i:int = 0; i < arrStride; ) + { + param = params[i]; + if(param == null || Boolean(param.hasOwnProperty("@name"))) + { + switch(type) + { + case this.const_9: + for(j = 0; j < count; j++) + { + value = array[int(offset + stride * j + i)]; + if(value.indexOf(",") != -1) + { + value = value.replace(/,/,"."); + } + this.numbers[int(arrStride * j + curr)] = parseFloat(value); + } + break; + case this.const_7: + for(j = 0; j < count; j++) + { + this.var_549[int(arrStride * j + curr)] = parseInt(array[int(offset + stride * j + i)],10); + } + break; + case this.const_8: + for(j = 0; j < count; j++) + { + this.names[int(arrStride * j + curr)] = array[int(offset + stride * j + i)]; + } + } + curr++; + } + i++; + } + return arrStride; + } + } +} + diff --git a/src/package_123/name_741.as b/src/package_123/name_741.as new file mode 100644 index 0000000..c51d918 --- /dev/null +++ b/src/package_123/name_741.as @@ -0,0 +1,137 @@ +package package_123 +{ + import package_21.name_116; + import package_24.DirectionalLight; + import package_24.OmniLight; + import package_24.SpotLight; + import package_24.name_376; + + use namespace collada; + + public class name_741 extends class_43 + { + public function name_741(data:XML, document:name_707) + { + super(data,document); + } + + private function method_892(value:Array) : uint + { + var r:uint = value[0] * 255; + var g:uint = value[1] * 255; + var b:uint = value[2] * 255; + return r << 16 | g << 8 | b | 4278190080; + } + + public function get name_761() : Boolean + { + var info:XML = data.technique_common.children()[0]; + return info == null ? false : info.localName() == "directional" || info.localName() == "spot"; + } + + public function name_762() : name_116 + { + var info:XML = null; + var extra:XML = null; + var light:name_116 = null; + var color:uint = 0; + var constantAttenuationXML:XML = null; + var linearAttenuationXML:XML = null; + var linearAttenuation:Number = NaN; + var attenuationStart:Number = NaN; + var attenuationEnd:Number = NaN; + var dLight:DirectionalLight = null; + var oLight:OmniLight = null; + var hotspot:Number = NaN; + var fallof:Number = NaN; + var DEG2RAD:Number = NaN; + var sLight:SpotLight = null; + info = data.technique_common.children()[0]; + extra = data.extra.technique.(@profile[0] == "OpenCOLLADA3dsMax").light[0]; + light = null; + if(info != null) + { + color = this.method_892(method_866(info.color[0])); + linearAttenuation = 0; + attenuationStart = 0; + attenuationEnd = 1; + switch(info.localName()) + { + case "ambient": + light = new name_376(color); + break; + case "directional": + dLight = new DirectionalLight(color); + light = dLight; + break; + case "point": + if(extra != null) + { + attenuationStart = method_761(extra.attenuation_far_start[0]); + attenuationEnd = method_761(extra.attenuation_far_end[0]); + } + else + { + constantAttenuationXML = info.constant_attenuation[0]; + linearAttenuationXML = info.linear_attenuation[0]; + if(constantAttenuationXML != null) + { + attenuationStart = -method_761(constantAttenuationXML); + } + if(linearAttenuationXML != null) + { + linearAttenuation = method_761(linearAttenuationXML); + } + if(linearAttenuation > 0) + { + attenuationEnd = 1 / linearAttenuation + attenuationStart; + } + else + { + attenuationEnd = attenuationStart + 1; + } + } + oLight = new OmniLight(color,attenuationStart,attenuationEnd); + light = oLight; + break; + case "spot": + hotspot = 0; + fallof = Math.PI / 4; + DEG2RAD = Math.PI / 180; + if(extra != null) + { + attenuationStart = method_761(extra.attenuation_far_start[0]); + attenuationEnd = method_761(extra.attenuation_far_end[0]); + hotspot = DEG2RAD * method_761(extra.hotspot_beam[0]); + fallof = DEG2RAD * method_761(extra.falloff[0]); + } + else + { + constantAttenuationXML = info.constant_attenuation[0]; + linearAttenuationXML = info.linear_attenuation[0]; + if(constantAttenuationXML != null) + { + attenuationStart = -method_761(constantAttenuationXML); + } + if(linearAttenuationXML != null) + { + linearAttenuation = method_761(linearAttenuationXML); + } + if(linearAttenuation > 0) + { + attenuationEnd = 1 / linearAttenuation + attenuationStart; + } + else + { + attenuationEnd = attenuationStart + 1; + } + } + sLight = new SpotLight(color,attenuationStart,attenuationEnd,hotspot,fallof); + light = sLight; + } + } + return light; + } + } +} + diff --git a/src/package_123/name_742.as b/src/package_123/name_742.as new file mode 100644 index 0000000..e46285a --- /dev/null +++ b/src/package_123/name_742.as @@ -0,0 +1,232 @@ +package package_123 +{ + import alternativa.engine3d.alternativa3d; + import package_125.name_709; + import package_125.name_760; + import package_125.name_778; + + use namespace alternativa3d; + + public class name_742 extends class_43 + { + public static const PARAM_UNDEFINED:String = "undefined"; + + public static const PARAM_TRANSLATE_X:String = "x"; + + public static const PARAM_TRANSLATE_Y:String = "y"; + + public static const PARAM_TRANSLATE_Z:String = "z"; + + public static const PARAM_SCALE_X:String = "scaleX"; + + public static const PARAM_SCALE_Y:String = "scaleY"; + + public static const PARAM_SCALE_Z:String = "scaleZ"; + + public static const PARAM_ROTATION_X:String = "rotationX"; + + public static const PARAM_ROTATION_Y:String = "rotationY"; + + public static const PARAM_ROTATION_Z:String = "rotationZ"; + + public static const PARAM_TRANSLATE:String = "translate"; + + public static const PARAM_SCALE:String = "scale"; + + public static const PARAM_MATRIX:String = "matrix"; + + public var tracks:Vector.; + + public var name_756:String = "undefined"; + + public var method_872:String; + + public function name_742(data:XML, document:name_707) + { + super(data,document); + } + + public function get node() : name_706 + { + var targetParts:Array = null; + var node:name_706 = null; + var i:int = 0; + var count:int = 0; + var sid:String = null; + var targetXML:XML = data.@target[0]; + if(targetXML != null) + { + targetParts = targetXML.toString().split("/"); + node = document.findNodeByID(targetParts[0]); + if(node != null) + { + targetParts.pop(); + for(i = 1,count = int(targetParts.length); i < count; ) + { + sid = targetParts[i]; + node = node.getNodeBySid(sid); + if(node == null) + { + return null; + } + i++; + } + return node; + } + } + return null; + } + + override protected function parseImplementation() : Boolean + { + this.method_895(); + this.method_894(); + return true; + } + + private function method_895() : void + { + var transformationXML:XML = null; + var child:XML = null; + var attr:XML = null; + var componentName:String = null; + var axis:Array = null; + var targetXML:XML = data.@target[0]; + if(targetXML == null) + { + return; + } + var targetParts:Array = targetXML.toString().split("/"); + var sid:String = targetParts.pop(); + var sidParts:Array = sid.split("."); + var sidPartsCount:int = int(sidParts.length); + var node:name_706 = this.node; + if(node == null) + { + return; + } + this.method_872 = node.method_872; + var children:XMLList = node.data.children(); + for(var i:int = 0,var count:int = int(children.length()); i < count; ) + { + child = children[i]; + attr = child.@sid[0]; + if(attr != null && attr.toString() == sidParts[0]) + { + transformationXML = child; + break; + } + i++; + } + var transformationName:String = transformationXML != null ? transformationXML.localName() as String : null; + if(sidPartsCount > 1) + { + componentName = sidParts[1]; + loop1: + switch(transformationName) + { + case "translate": + switch(componentName) + { + case "X": + this.name_756 = PARAM_TRANSLATE_X; + break loop1; + case "Y": + this.name_756 = PARAM_TRANSLATE_Y; + break loop1; + case "Z": + this.name_756 = PARAM_TRANSLATE_Z; + } + break; + case "rotate": + axis = method_866(transformationXML); + switch(axis.indexOf(1)) + { + case 0: + this.name_756 = PARAM_ROTATION_X; + break loop1; + case 1: + this.name_756 = PARAM_ROTATION_Y; + break loop1; + case 2: + this.name_756 = PARAM_ROTATION_Z; + } + break; + case "scale": + switch(componentName) + { + case "X": + this.name_756 = PARAM_SCALE_X; + break loop1; + case "Y": + this.name_756 = PARAM_SCALE_Y; + break loop1; + case "Z": + this.name_756 = PARAM_SCALE_Z; + } + } + } + else + { + switch(transformationName) + { + case "translate": + this.name_756 = PARAM_TRANSLATE; + break; + case "scale": + this.name_756 = PARAM_SCALE; + break; + case "matrix": + this.name_756 = PARAM_MATRIX; + } + } + } + + private function method_894() : void + { + var track:name_760 = null; + var toRad:Number = NaN; + var key:name_778 = null; + var sampler:name_739 = document.findSampler(data.@source[0]); + if(sampler != null) + { + sampler.method_314(); + if(this.name_756 == PARAM_MATRIX) + { + this.tracks = Vector.([sampler.name_782(this.method_872)]); + return; + } + if(this.name_756 == PARAM_TRANSLATE) + { + this.tracks = sampler.name_779(this.method_872,"x","y","z"); + return; + } + if(this.name_756 == PARAM_SCALE) + { + this.tracks = sampler.name_779(this.method_872,"scaleX","scaleY","scaleZ"); + return; + } + if(this.name_756 == PARAM_ROTATION_X || this.name_756 == PARAM_ROTATION_Y || this.name_756 == PARAM_ROTATION_Z) + { + track = sampler.name_780(this.method_872,this.name_756); + toRad = Math.PI / 180; + for(key = track.alternativa3d::name_783; key != null; key = key.alternativa3d::next) + { + key.alternativa3d::name_781 *= toRad; + } + this.tracks = Vector.([track]); + return; + } + if(this.name_756 == PARAM_TRANSLATE_X || this.name_756 == PARAM_TRANSLATE_Y || this.name_756 == PARAM_TRANSLATE_Z || this.name_756 == PARAM_SCALE_X || this.name_756 == PARAM_SCALE_Y || this.name_756 == PARAM_SCALE_Z) + { + this.tracks = Vector.([sampler.name_780(this.method_872,this.name_756)]); + } + } + else + { + document.logger.logNotFoundError(data.@source[0]); + } + } + } +} + diff --git a/src/package_123/name_743.as b/src/package_123/name_743.as new file mode 100644 index 0000000..e306097 --- /dev/null +++ b/src/package_123/name_743.as @@ -0,0 +1,57 @@ +package package_123 +{ + public class name_743 + { + public function name_743() + { + super(); + } + + private function method_896(message:String, element:XML) : void + { + var name:String = element.nodeKind() == "attribute" ? "@" + element.localName() : element.localName() + ""; + for(var parent:* = element.parent(); parent != null; ) + { + name = parent.localName() + "" + "." + name; + parent = parent.parent(); + } + trace(message,"| \"" + name + "\""); + } + + private function logError(message:String, element:XML) : void + { + this.method_896("[ERROR] " + message,element); + } + + public function name_745(element:XML) : void + { + this.logError("External urls don\'t supported",element); + } + + public function logSkewError(element:XML) : void + { + this.logError(" don\'t supported",element); + } + + public function method_897(element:XML) : void + { + this.logError("Joints in different scenes don\'t supported",element); + } + + public function logInstanceNodeError(element:XML) : void + { + this.logError(" don\'t supported",element); + } + + public function logNotFoundError(element:XML) : void + { + this.logError("Element with url \"" + element.toString() + "\" not found",element); + } + + public function logNotEnoughDataError(element:XML) : void + { + this.logError("Not enough data",element); + } + } +} + diff --git a/src/package_123/name_744.as b/src/package_123/name_744.as new file mode 100644 index 0000000..2c337c5 --- /dev/null +++ b/src/package_123/name_744.as @@ -0,0 +1,33 @@ +package package_123 +{ + import alternativa.engine3d.alternativa3d; + + use namespace alternativa3d; + use namespace collada; + + public class name_744 extends class_43 + { + public var name_771:name_740; + + public function name_744(data:XML, document:name_707) + { + super(data,document); + } + + override protected function parseImplementation() : Boolean + { + var inputXML:XML = null; + inputXML = data.input.(@semantic == "POSITION")[0]; + if(inputXML != null) + { + this.name_771 = new name_784(inputXML,document).prepareSource(3); + if(this.name_771 != null) + { + return true; + } + } + return false; + } + } +} + diff --git a/src/package_123/name_746.as b/src/package_123/name_746.as new file mode 100644 index 0000000..ec272fe --- /dev/null +++ b/src/package_123/name_746.as @@ -0,0 +1,39 @@ +package package_123 +{ + use namespace collada; + + public class name_746 extends class_43 + { + public var array:Array; + + public function name_746(data:XML, document:name_707) + { + super(data,document); + } + + public function get type() : String + { + return String(data.localName()); + } + + override protected function parseImplementation() : Boolean + { + var count:int = 0; + this.array = name_565(data); + var countXML:XML = data.@count[0]; + if(countXML != null) + { + count = int(parseInt(countXML.toString(),10)); + if(this.array.length < count) + { + document.logger.logNotEnoughDataError(data.@count[0]); + return false; + } + this.array.length = count; + return true; + } + return false; + } + } +} + diff --git a/src/package_123/name_754.as b/src/package_123/name_754.as new file mode 100644 index 0000000..a9cd91e --- /dev/null +++ b/src/package_123/name_754.as @@ -0,0 +1,88 @@ +package package_123 +{ + use namespace collada; + + public class name_754 extends class_43 + { + public function name_754(data:XML, document:name_707) + { + super(data,document); + } + + public function get ref() : String + { + var attribute:XML = data.@ref[0]; + return attribute == null ? null : attribute.toString(); + } + + public function name_777() : Number + { + var floatXML:XML = data.float[0]; + if(floatXML != null) + { + return method_761(floatXML); + } + return NaN; + } + + public function getFloat4() : Array + { + var components:Array = null; + var element:XML = data.float4[0]; + if(element == null) + { + element = data.float3[0]; + if(element != null) + { + components = method_866(element); + components[3] = 1; + } + } + else + { + components = method_866(element); + } + return components; + } + + public function get surfaceSID() : String + { + var element:XML = data.sampler2D.source[0]; + return element == null ? null : element.text().toString(); + } + + public function get wrap_s() : String + { + var element:XML = data.sampler2D.wrap_s[0]; + return element == null ? null : element.text().toString(); + } + + public function get image() : name_734 + { + var image:name_734 = null; + var init_from:XML = null; + var imageIDXML:XML = null; + var surface:XML = data.surface[0]; + if(surface != null) + { + init_from = surface.init_from[0]; + if(init_from == null) + { + return null; + } + image = document.findImageByID(init_from.text().toString()); + } + else + { + imageIDXML = data.instance_image.@url[0]; + if(imageIDXML == null) + { + return null; + } + image = document.findImage(imageIDXML); + } + return image; + } + } +} + diff --git a/src/package_123/name_757.as b/src/package_123/name_757.as new file mode 100644 index 0000000..a28e361 --- /dev/null +++ b/src/package_123/name_757.as @@ -0,0 +1,122 @@ +package package_123 +{ + import flash.utils.Dictionary; + + use namespace collada; + + public class name_757 extends class_43 + { + public var node:name_706; + + public var topmostJoints:Vector.; + + public function name_757(data:XML, document:name_707, node:name_706) + { + super(data,document); + this.node = node; + } + + override protected function parseImplementation() : Boolean + { + var controller:name_735 = this.controller; + if(controller != null) + { + this.topmostJoints = controller.method_916(this.skeletons); + if(this.topmostJoints != null && this.topmostJoints.length > 1) + { + this.method_923(this.topmostJoints); + } + } + return this.topmostJoints != null; + } + + private function method_923(nodes:Vector.) : void + { + var i:int = 0; + var node:name_706 = null; + var parent:name_706 = null; + var numNodes:int = int(nodes.length); + var parents:Dictionary = new Dictionary(); + for(i = 0; i < numNodes; i++) + { + node = nodes[i]; + for(parent = node.parent; parent != null; parent = parent.parent) + { + if(Boolean(parents[parent])) + { + ++parents[parent]; + } + else + { + parents[parent] = 1; + } + } + } + for(i = 0; i < numNodes; i++) + { + node = nodes[i]; + while(true) + { + parent = node.parent; + if(!(parent != null && parents[parent] != numNodes)) + { + break; + } + node = node.parent; + } + nodes[i] = node; + } + } + + private function get controller() : name_735 + { + var controller:name_735 = document.findController(data.@url[0]); + if(controller == null) + { + document.logger.logNotFoundError(data.@url[0]); + } + return controller; + } + + private function get skeletons() : Vector. + { + var skeletons:Vector. = null; + var i:int = 0; + var count:int = 0; + var skeletonXML:XML = null; + var skel:name_706 = null; + var list:XMLList = data.skeleton; + if(list.length() > 0) + { + skeletons = new Vector.(); + for(i = 0,count = int(list.length()); i < count; i++) + { + skeletonXML = list[i]; + skel = document.findNode(skeletonXML.text()[0]); + if(skel != null) + { + skeletons.push(skel); + } + else + { + document.logger.logNotFoundError(skeletonXML); + } + } + return skeletons; + } + return null; + } + + public function method_429(materials:Object) : name_711 + { + var controller:name_735 = this.controller; + if(controller != null) + { + controller.method_314(); + return controller.method_429(materials,this.topmostJoints,this.skeletons); + } + return null; + } + } +} + diff --git a/src/package_123/name_758.as b/src/package_123/name_758.as new file mode 100644 index 0000000..aafe6c3 --- /dev/null +++ b/src/package_123/name_758.as @@ -0,0 +1,47 @@ +package package_123 +{ + use namespace collada; + + public class name_758 extends class_43 + { + public function name_758(data:XML, document:name_707) + { + super(data,document); + } + + public function get symbol() : String + { + var attribute:XML = data.@symbol[0]; + return attribute == null ? null : attribute.toString(); + } + + private function get target() : XML + { + return data.@target[0]; + } + + public function get material() : name_713 + { + var mat:name_713 = document.findMaterial(this.target); + if(mat == null) + { + document.logger.logNotFoundError(this.target); + } + return mat; + } + + public function method_924(semantic:String) : int + { + var bindVertexInputXML:XML = null; + var setNumXML:XML = null; + bindVertexInputXML = data.bind_vertex_input.(@semantic == semantic)[0]; + if(bindVertexInputXML == null) + { + return 0; + } + setNumXML = bindVertexInputXML.@input_set[0]; + return setNumXML == null ? 0 : int(parseInt(setNumXML.toString(),10)); + } + } +} + diff --git a/src/package_123/name_768.as b/src/package_123/name_768.as new file mode 100644 index 0000000..07c85ae --- /dev/null +++ b/src/package_123/name_768.as @@ -0,0 +1,391 @@ +package package_123 +{ + import alternativa.engine3d.alternativa3d; + import package_28.name_119; + + use namespace collada; + use namespace alternativa3d; + + public class name_768 extends class_43 + { + internal static const NORMALS:int = 1; + + internal static const TANGENT4:int = 2; + + internal static const TEXCOORDS:Vector. = Vector.([8,16,32,64,128,256,512,1024]); + + internal var var_740:name_784; + + internal var var_741:Vector.; + + internal var var_743:name_784; + + internal var var_742:Vector.; + + internal var var_744:Vector.; + + internal var indices:Vector.; + + internal var var_729:int; + + public var indexBegin:int; + + public var numTriangles:int; + + public function name_768(data:XML, document:name_707) + { + super(data,document); + } + + override protected function parseImplementation() : Boolean + { + this.method_909(); + this.method_938(); + return true; + } + + private function get type() : String + { + return data.localName() as String; + } + + private function method_909() : void + { + var input:name_784 = null; + var semantic:String = null; + var offset:int = 0; + this.var_741 = new Vector.(); + this.var_744 = new Vector.(); + this.var_742 = new Vector.(); + var inputsList:XMLList = data.input; + var maxInputOffset:int = 0; + for(var i:int = 0,var count:int = int(inputsList.length()); i < count; offset = input.offset,maxInputOffset = offset > maxInputOffset ? offset : maxInputOffset,i++) + { + input = new name_784(inputsList[i],document); + semantic = input.semantic; + if(semantic == null) + { + continue; + } + switch(semantic) + { + case "VERTEX": + if(this.var_740 == null) + { + this.var_740 = input; + } + break; + case "TEXCOORD": + this.var_741.push(input); + break; + case "NORMAL": + if(this.var_743 == null) + { + this.var_743 = input; + } + break; + case "TEXTANGENT": + this.var_744.push(input); + break; + case "TEXBINORMAL": + this.var_742.push(input); + break; + } + } + this.var_729 = maxInputOffset + 1; + } + + private function method_938() : void + { + var array:Array = null; + var vcountXML:XMLList = null; + var pList:XMLList = null; + var j:int = 0; + this.indices = new Vector.(); + var vcount:Vector. = new Vector.(); + var i:int = 0; + var count:int = 0; + switch(data.localName()) + { + case "polylist": + case "polygons": + vcountXML = data.vcount; + array = name_565(vcountXML[0]); + i = 0; + count = int(array.length); + while(true) + { + if(i < count) + { + vcount.push(parseInt(array[i])); + i++; + continue; + } + } + case "triangles": + pList = data.p; + for(i = 0,count = int(pList.length()); i < count; ) + { + array = name_565(pList[i]); + for(j = 0; j < array.length; j++) + { + this.indices.push(parseInt(array[j],10)); + } + if(vcount.length > 0) + { + this.indices = this.method_936(this.indices,vcount); + } + i++; + } + } + } + + private function method_936(input:Vector., vcount:Vector.) : Vector. + { + var indexIn:uint = 0; + var i:int = 0; + var j:int = 0; + var k:int = 0; + var count:int = 0; + var verticesCount:int = 0; + var attributesCount:int = 0; + var res:Vector. = new Vector.(); + var indexOut:uint = 0; + for(i = 0,count = int(vcount.length); i < count; i++) + { + verticesCount = vcount[i]; + attributesCount = verticesCount * this.var_729; + if(verticesCount == 3) + { + j = 0; + while(j < attributesCount) + { + res[indexOut] = input[indexIn]; + j++; + indexIn++; + indexOut++; + } + } + else + { + for(j = 1; j < verticesCount - 1; ) + { + for(k = 0; k < this.var_729; k++,indexOut++) + { + res[indexOut] = input[int(indexIn + k)]; + } + for(k = 0; k < this.var_729; k++,indexOut++) + { + res[indexOut] = input[int(indexIn + this.var_729 * j + k)]; + } + for(k = 0; k < this.var_729; k++,indexOut++) + { + res[indexOut] = input[int(indexIn + this.var_729 * (j + 1) + k)]; + } + j++; + } + indexIn += this.var_729 * verticesCount; + } + } + return res; + } + + public function name_773(geometry:name_119, vertices:Vector.) : uint + { + var tangentSource:name_740 = null; + var binormalSource:name_740 = null; + var normalSource:name_740 = null; + var index:uint = 0; + var vertex:name_770 = null; + var s:name_740 = null; + var j:int = 0; + if(this.var_740 == null) + { + return 0; + } + this.var_740.method_314(); + var numIndices:int = int(this.indices.length); + var daeVertices:name_744 = document.findVertices(this.var_740.source); + if(daeVertices == null) + { + document.logger.logNotFoundError(this.var_740.source); + return 0; + } + daeVertices.method_314(); + var positionSource:name_740 = daeVertices.name_771; + var vertexStride:int = 3; + var mainSource:name_740 = positionSource; + var mainInput:name_784 = this.var_740; + var channels:uint = 0; + var inputOffsets:Vector. = new Vector.(); + inputOffsets.push(this.var_740.offset); + if(this.var_743 != null) + { + normalSource = this.var_743.prepareSource(3); + inputOffsets.push(this.var_743.offset); + vertexStride += 3; + channels |= NORMALS; + if(this.var_744.length > 0 && this.var_742.length > 0) + { + tangentSource = this.var_744[0].prepareSource(3); + inputOffsets.push(this.var_744[0].offset); + binormalSource = this.var_742[0].prepareSource(3); + inputOffsets.push(this.var_742[0].offset); + vertexStride += 4; + channels |= TANGENT4; + } + } + var textureSources:Vector. = new Vector.(); + var numTexCoordsInputs:int = int(this.var_741.length); + if(numTexCoordsInputs > 8) + { + numTexCoordsInputs = 8; + } + for(var i:int = 0; i < numTexCoordsInputs; ) + { + s = this.var_741[i].prepareSource(2); + textureSources.push(s); + inputOffsets.push(this.var_741[i].offset); + vertexStride += 2; + channels |= TEXCOORDS[i]; + i++; + } + var verticesLength:int = int(vertices.length); + this.indexBegin = geometry.alternativa3d::_indices.length; + for(i = 0; i < numIndices; i += this.var_729) + { + index = this.indices[int(i + mainInput.offset)]; + vertex = vertices[index]; + if(vertex == null || !this.method_939(vertex,this.indices,i,inputOffsets)) + { + if(vertex != null) + { + index = uint(verticesLength++); + } + vertex = new name_770(); + vertices[index] = vertex; + vertex.name_785 = this.indices[int(i + this.var_740.offset)]; + vertex.method_933(positionSource.numbers,vertex.name_785,positionSource.stride,document.unitScaleFactor); + if(normalSource != null) + { + vertex.method_935(normalSource.numbers,this.indices[int(i + this.var_743.offset)],normalSource.stride); + } + if(tangentSource != null) + { + vertex.method_932(tangentSource.numbers,this.indices[int(i + this.var_744[0].offset)],tangentSource.stride,binormalSource.numbers,this.indices[int(i + this.var_742[0].offset)],binormalSource.stride); + } + for(j = 0; j < textureSources.length; ) + { + vertex.method_934(textureSources[j].numbers,this.indices[int(i + this.var_741[j].offset)],textureSources[j].stride); + j++; + } + } + vertex.name_786 = index; + geometry.alternativa3d::_indices.push(index); + } + this.numTriangles = (geometry.alternativa3d::_indices.length - this.indexBegin) / 3; + return channels; + } + + private function method_939(vertex:name_770, indices:Vector., index:int, offsets:Vector.) : Boolean + { + var numOffsets:int = int(offsets.length); + for(var j:int = 0; j < numOffsets; ) + { + if(vertex.indices[j] != indices[int(index + offsets[j])]) + { + return false; + } + j++; + } + return true; + } + + private function method_937(inputs:Vector., setNum:int) : name_784 + { + var input:name_784 = null; + for(var i:int = 0,var numInputs:int = int(inputs.length); i < numInputs; ) + { + input = inputs[i]; + if(input.setNum == setNum) + { + return input; + } + i++; + } + return null; + } + + private function method_940(mainSetNum:int) : Vector. + { + var i:int = 0; + var texCoordsInput:name_784 = null; + var texCoordsSource:name_740 = null; + var data:VertexChannelData = null; + var mainInput:name_784 = this.method_937(this.var_741,mainSetNum); + var numInputs:int = int(this.var_741.length); + var datas:Vector. = new Vector.(); + for(i = 0; i < numInputs; ) + { + texCoordsInput = this.var_741[i]; + texCoordsSource = texCoordsInput.prepareSource(2); + if(texCoordsSource != null) + { + data = new VertexChannelData(texCoordsSource.numbers,texCoordsSource.stride,texCoordsInput.offset,texCoordsInput.setNum); + if(texCoordsInput == mainInput) + { + datas.unshift(data); + } + else + { + datas.push(data); + } + } + i++; + } + return datas.length > 0 ? datas : null; + } + + public function name_772(otherVertices:name_744) : Boolean + { + var vertices:name_744 = document.findVertices(this.var_740.source); + if(vertices == null) + { + document.logger.logNotFoundError(this.var_740.source); + } + return vertices == otherVertices; + } + + public function get name_774() : String + { + var attr:XML = data.@material[0]; + return attr == null ? null : attr.toString(); + } + } +} + +import flash.geom.Point; + +class VertexChannelData +{ + public var values:Vector.; + + public var stride:int; + + public var offset:int; + + public var index:int; + + public var channel:Vector.; + + public var inputSet:int; + + public function VertexChannelData(values:Vector., stride:int, offset:int, inputSet:int = 0) + { + super(); + this.values = values; + this.stride = stride; + this.offset = offset; + this.inputSet = inputSet; + } +} diff --git a/src/package_123/name_770.as b/src/package_123/name_770.as new file mode 100644 index 0000000..3b7065c --- /dev/null +++ b/src/package_123/name_770.as @@ -0,0 +1,74 @@ +package package_123 +{ + import flash.geom.Vector3D; + + public class name_770 + { + public var name_785:int; + + public var name_786:int; + + public var indices:Vector. = new Vector.(); + + public var x:Number; + + public var y:Number; + + public var z:Number; + + public var uvs:Vector. = new Vector.(); + + public var normal:Vector3D; + + public var name_769:Vector3D; + + public function name_770() + { + super(); + } + + public function method_933(data:Vector., dataIndex:int, stride:int, unitScaleFactor:Number) : void + { + this.indices.push(dataIndex); + var offset:int = stride * dataIndex; + this.x = data[int(offset)] * unitScaleFactor; + this.y = data[int(offset + 1)] * unitScaleFactor; + this.z = data[int(offset + 2)] * unitScaleFactor; + } + + public function method_935(data:Vector., dataIndex:int, stride:int) : void + { + this.indices.push(dataIndex); + var offset:int = stride * dataIndex; + this.normal = new Vector3D(); + this.normal.x = data[int(offset++)]; + this.normal.y = data[int(offset++)]; + this.normal.z = data[offset]; + } + + public function method_932(tangentData:Vector., tangentDataIndex:int, tangentStride:int, biNormalData:Vector., biNormalDataIndex:int, biNormalStride:int) : void + { + this.indices.push(tangentDataIndex); + this.indices.push(biNormalDataIndex); + var tangentOffset:int = tangentStride * tangentDataIndex; + var biNormalOffset:int = biNormalStride * biNormalDataIndex; + var biNormalX:Number = biNormalData[int(biNormalOffset++)]; + var biNormalY:Number = biNormalData[int(biNormalOffset++)]; + var biNormalZ:Number = biNormalData[biNormalOffset]; + this.name_769 = new Vector3D(tangentData[int(tangentOffset++)],tangentData[int(tangentOffset++)],tangentData[tangentOffset]); + var crossX:Number = this.normal.y * this.name_769.z - this.normal.z * this.name_769.y; + var crossY:Number = this.normal.z * this.name_769.x - this.normal.x * this.name_769.z; + var crossZ:Number = this.normal.x * this.name_769.y - this.normal.y * this.name_769.x; + var dot:Number = crossX * biNormalX + crossY * biNormalY + crossZ * biNormalZ; + this.name_769.w = dot < 0 ? -1 : 1; + } + + public function method_934(data:Vector., dataIndex:int, stride:int) : void + { + this.indices.push(dataIndex); + this.uvs.push(data[int(dataIndex * stride)]); + this.uvs.push(1 - data[int(dataIndex * stride + 1)]); + } + } +} + diff --git a/src/package_123/name_775.as b/src/package_123/name_775.as new file mode 100644 index 0000000..205ac11 --- /dev/null +++ b/src/package_123/name_775.as @@ -0,0 +1,100 @@ +package package_123 +{ + use namespace collada; + + public class name_775 extends class_43 + { + private var effect:name_738; + + public function name_775(data:XML, effect:name_738) + { + super(data,effect.document); + this.effect = effect; + } + + public function name_777(setparams:Object) : Number + { + var param:name_754 = null; + var floatXML:XML = data.float[0]; + if(floatXML != null) + { + return method_761(floatXML); + } + var paramRef:XML = data.param.@ref[0]; + if(paramRef != null) + { + param = this.effect.method_893(paramRef.toString(),setparams); + if(param != null) + { + return param.name_777(); + } + } + return NaN; + } + + public function method_273(setparams:Object) : Array + { + var param:name_754 = null; + var colorXML:XML = data.color[0]; + if(colorXML != null) + { + return method_866(colorXML); + } + var paramRef:XML = data.param.@ref[0]; + if(paramRef != null) + { + param = this.effect.method_893(paramRef.toString(),setparams); + if(param != null) + { + return param.getFloat4(); + } + } + return null; + } + + private function get texture() : String + { + var attr:XML = data.texture.@texture[0]; + return attr == null ? null : attr.toString(); + } + + public function method_941(setparams:Object) : name_754 + { + var sid:String = this.texture; + if(sid != null) + { + return this.effect.method_893(sid,setparams); + } + return null; + } + + public function method_604(setparams:Object) : name_734 + { + var surfaceSID:String = null; + var surface:name_754 = null; + var sampler:name_754 = this.method_941(setparams); + if(sampler != null) + { + surfaceSID = sampler.surfaceSID; + if(surfaceSID != null) + { + surface = this.effect.method_893(surfaceSID,setparams); + if(surface != null) + { + return surface.image; + } + return null; + } + return sampler.image; + } + return document.findImageByID(this.texture); + } + + public function get name_776() : String + { + var attr:XML = data.texture.@texcoord[0]; + return attr == null ? null : attr.toString(); + } + } +} + diff --git a/src/package_123/name_784.as b/src/package_123/name_784.as new file mode 100644 index 0000000..fa36072 --- /dev/null +++ b/src/package_123/name_784.as @@ -0,0 +1,54 @@ +package package_123 +{ + use namespace collada; + + public class name_784 extends class_43 + { + public function name_784(data:XML, document:name_707) + { + super(data,document); + } + + public function get semantic() : String + { + var attribute:XML = data.@semantic[0]; + return attribute == null ? null : attribute.toString(); + } + + public function get source() : XML + { + return data.@source[0]; + } + + public function get offset() : int + { + var attr:XML = data.@offset[0]; + return attr == null ? 0 : int(parseInt(attr.toString(),10)); + } + + public function get setNum() : int + { + var attr:XML = data.@name_789[0]; + return attr == null ? 0 : int(parseInt(attr.toString(),10)); + } + + public function prepareSource(minComponents:int) : name_740 + { + var source:name_740 = document.findSource(this.source); + if(source != null) + { + source.method_314(); + if(source.numbers != null && source.stride >= minComponents) + { + return source; + } + } + else + { + document.logger.logNotFoundError(data.@source[0]); + } + return null; + } + } +} + diff --git a/src/package_124/class_42.as b/src/package_124/class_42.as new file mode 100644 index 0000000..2d27d4e --- /dev/null +++ b/src/package_124/class_42.as @@ -0,0 +1,59 @@ +package package_124 +{ + import alternativa.engine3d.alternativa3d; + + use namespace alternativa3d; + + public class class_42 + { + alternativa3d var var_694:Boolean = false; + + alternativa3d var _parent:class_42; + + alternativa3d var controller:name_750; + + public var speed:Number = 1; + + public function class_42() + { + super(); + } + + public function get isActive() : Boolean + { + return this.alternativa3d::var_694 && this.alternativa3d::controller != null; + } + + public function get parent() : class_42 + { + return this.alternativa3d::_parent; + } + + alternativa3d function update(elapsed:Number, weight:Number) : void + { + } + + alternativa3d function setController(value:name_750) : void + { + this.alternativa3d::controller = value; + } + + alternativa3d function method_853(node:class_42) : void + { + if(node.alternativa3d::_parent != null) + { + node.alternativa3d::_parent.alternativa3d::method_852(node); + } + node.alternativa3d::_parent = this; + node.alternativa3d::setController(this.alternativa3d::controller); + } + + alternativa3d function method_852(node:class_42) : void + { + node.alternativa3d::setController(null); + node.alternativa3d::var_694 = false; + node.alternativa3d::_parent = null; + } + } +} + diff --git a/src/package_124/name_705.as b/src/package_124/name_705.as new file mode 100644 index 0000000..b045ac4 --- /dev/null +++ b/src/package_124/name_705.as @@ -0,0 +1,392 @@ +package package_124 +{ + import alternativa.engine3d.alternativa3d; + import package_125.name_709; + import package_21.name_78; + + use namespace alternativa3d; + + public class name_705 extends class_42 + { + alternativa3d var var_346:Array; + + public var name:String; + + public var loop:Boolean = true; + + public var length:Number = 0; + + public var animated:Boolean = true; + + private var var_420:Number = 0; + + private var var_696:int = 0; + + private var var_389:Vector. = new Vector.(); + + private var var_695:name_751; + + public function name_705(name:String = null) + { + super(); + this.name = name; + } + + public function get objects() : Array + { + return this.alternativa3d::var_346 == null ? null : [].concat(this.alternativa3d::var_346); + } + + public function set objects(value:Array) : void + { + this.method_855(this.alternativa3d::var_346,alternativa3d::controller,value,alternativa3d::controller); + this.alternativa3d::var_346 = value == null ? null : [].concat(value); + } + + override alternativa3d function setController(value:name_750) : void + { + this.method_855(this.alternativa3d::var_346,alternativa3d::controller,this.alternativa3d::var_346,value); + this.alternativa3d::controller = value; + } + + private function addObject(object:Object) : void + { + if(this.alternativa3d::var_346 == null) + { + this.alternativa3d::var_346 = [object]; + } + else + { + this.alternativa3d::var_346.push(object); + } + if(alternativa3d::controller != null) + { + alternativa3d::controller.alternativa3d::addObject(object); + } + } + + private function method_855(oldObjects:Array, oldController:name_750, newObjects:Array, newController:name_750) : void + { + var i:int = 0; + var count:int = 0; + if(oldController != null && oldObjects != null) + { + for(i = 0,count = int(this.alternativa3d::var_346.length); i < count; i++) + { + oldController.alternativa3d::name_753(oldObjects[i]); + } + } + if(newController != null && newObjects != null) + { + for(i = 0,count = int(newObjects.length); i < count; i++) + { + newController.alternativa3d::addObject(newObjects[i]); + } + } + } + + public function method_862() : void + { + var track:name_709 = null; + var len:Number = NaN; + for(var i:int = 0; i < this.var_696; ) + { + track = this.var_389[i]; + len = track.length; + if(len > this.length) + { + this.length = len; + } + i++; + } + } + + public function name_712(track:name_709) : name_709 + { + if(track == null) + { + throw new Error("Track can not be null"); + } + var _loc2_:* = this.var_696++; + this.var_389[_loc2_] = track; + if(track.length > this.length) + { + this.length = track.length; + } + return track; + } + + public function method_860(track:name_709) : name_709 + { + var t:name_709 = null; + var index:int = int(this.var_389.indexOf(track)); + if(index < 0) + { + throw new ArgumentError("Track not found"); + } + --this.var_696; + for(var j:int = index + 1; index < this.var_696; ) + { + this.var_389[index] = this.var_389[j]; + index++; + j++; + } + this.var_389.length = this.var_696; + this.length = 0; + for(var i:int = 0; i < this.var_696; ) + { + t = this.var_389[i]; + if(t.length > this.length) + { + this.length = t.length; + } + i++; + } + return track; + } + + public function name_716(index:int) : name_709 + { + return this.var_389[index]; + } + + public function get numTracks() : int + { + return this.var_696; + } + + override alternativa3d function update(interval:Number, weight:Number) : void + { + var i:int = 0; + var track:name_709 = null; + var state:name_749 = null; + var oldTime:Number = this.var_420; + if(this.animated) + { + this.var_420 += interval * speed; + if(this.loop) + { + if(this.var_420 < 0) + { + this.var_420 = 0; + } + else if(this.var_420 >= this.length) + { + this.alternativa3d::method_854(oldTime,this.length); + this.var_420 = this.length <= 0 ? 0 : this.var_420 % this.length; + this.alternativa3d::method_854(0,this.var_420); + } + else + { + this.alternativa3d::method_854(oldTime,this.var_420); + } + } + else + { + if(this.var_420 < 0) + { + this.var_420 = 0; + } + else if(this.var_420 >= this.length) + { + this.var_420 = this.length; + } + this.alternativa3d::method_854(oldTime,this.var_420); + } + } + if(weight > 0) + { + for(i = 0; i < this.var_696; ) + { + track = this.var_389[i]; + if(track.object != null) + { + state = alternativa3d::controller.alternativa3d::getState(track.object); + if(state != null) + { + track.alternativa3d::blend(this.var_420,weight,state); + } + } + i++; + } + } + } + + public function get time() : Number + { + return this.var_420; + } + + public function set time(value:Number) : void + { + this.var_420 = value; + } + + public function get method_857() : Number + { + return this.length == 0 ? 0 : this.var_420 / this.length; + } + + public function set method_857(value:Number) : void + { + this.var_420 = value * this.length; + } + + private function method_859(object:Object) : int + { + if(object is name_78) + { + return name_78(object).numChildren; + } + return 0; + } + + private function getChildAt(object:Object, index:int) : Object + { + if(object is name_78) + { + return name_78(object).getChildAt(index); + } + return null; + } + + private function method_856(object:Object) : void + { + var child:Object = null; + for(var i:int = 0,var numChildren:int = this.method_859(object); i < numChildren; i++) + { + child = this.getChildAt(object,i); + this.addObject(child); + this.method_856(child); + } + } + + public function method_861(object:Object, includeDescendants:Boolean) : void + { + this.method_855(this.alternativa3d::var_346,alternativa3d::controller,null,alternativa3d::controller); + this.alternativa3d::var_346 = null; + this.addObject(object); + if(includeDescendants) + { + this.method_856(object); + } + } + + alternativa3d function method_854(start:Number, end:Number) : void + { + for(var notify:name_751 = this.var_695; notify != null; ) + { + if(notify.alternativa3d::var_420 > start) + { + if(notify.alternativa3d::var_420 > end) + { + notify = notify.alternativa3d::next; + continue; + } + notify.alternativa3d::name_752 = alternativa3d::controller.alternativa3d::nearestNotifyers; + alternativa3d::controller.alternativa3d::nearestNotifyers = notify; + } + notify = notify.alternativa3d::next; + } + } + + public function method_858(time:Number, name:String = null) : name_751 + { + var n:name_751 = null; + time = time <= 0 ? 0 : (time >= this.length ? this.length : time); + var notify:name_751 = new name_751(name); + notify.alternativa3d::var_420 = time; + if(this.var_695 == null) + { + this.var_695 = notify; + return notify; + } + if(this.var_695.alternativa3d::var_420 > time) + { + notify.alternativa3d::next = this.var_695; + this.var_695 = notify; + return notify; + } + n = this.var_695; + while(n.alternativa3d::next != null && n.alternativa3d::next.alternativa3d::var_420 <= time) + { + n = n.alternativa3d::next; + } + if(n.alternativa3d::next == null) + { + n.alternativa3d::next = notify; + } + else + { + notify.alternativa3d::next = n.alternativa3d::next; + n.alternativa3d::next = notify; + } + return notify; + } + + public function method_864(offsetFromEnd:Number = 0, name:String = null) : name_751 + { + return this.method_858(this.length - offsetFromEnd,name); + } + + public function method_863(notify:name_751) : name_751 + { + var n:name_751 = null; + if(this.var_695 != null) + { + if(this.var_695 == notify) + { + this.var_695 = this.var_695.alternativa3d::next; + return notify; + } + n = this.var_695; + while(n.alternativa3d::next != null && n.alternativa3d::next != notify) + { + n = n.alternativa3d::next; + } + if(n.alternativa3d::next == notify) + { + n.alternativa3d::next = notify.alternativa3d::next; + return notify; + } + } + throw new Error("Notify not found"); + } + + public function get method_865() : Vector. + { + var result:Vector. = new Vector.(); + var i:int = 0; + for(var notify:name_751 = this.var_695; notify != null; notify = notify.alternativa3d::next) + { + result[i] = notify; + i++; + } + return result; + } + + public function slice(start:Number, end:Number = 1.7976931348623157e+308) : name_705 + { + var sliced:name_705 = new name_705(this.name); + sliced.alternativa3d::var_346 = this.alternativa3d::var_346 == null ? null : [].concat(this.alternativa3d::var_346); + for(var i:int = 0; i < this.var_696; i++) + { + sliced.name_712(this.var_389[i].slice(start,end)); + } + return sliced; + } + + public function clone() : name_705 + { + var cloned:name_705 = new name_705(this.name); + cloned.alternativa3d::var_346 = this.alternativa3d::var_346 == null ? null : [].concat(this.alternativa3d::var_346); + for(var i:int = 0; i < this.var_696; i++) + { + cloned.name_712(this.var_389[i]); + } + cloned.length = this.length; + return cloned; + } + } +} + diff --git a/src/package_124/name_749.as b/src/package_124/name_749.as new file mode 100644 index 0000000..024b983 --- /dev/null +++ b/src/package_124/name_749.as @@ -0,0 +1,272 @@ +package package_124 +{ + import alternativa.engine3d.alternativa3d; + import flash.geom.Vector3D; + import package_125.name_787; + import package_21.name_78; + + use namespace alternativa3d; + + public class name_749 + { + public var var_732:int = 0; + + public var transform:name_787 = new name_787(); + + public var var_730:Number = 0; + + public var numbers:Object = new Object(); + + public var var_731:Object = new Object(); + + public function name_749() + { + super(); + } + + public function reset() : void + { + var key:String = null; + this.var_730 = 0; + for(key in this.numbers) + { + delete this.numbers[key]; + delete this.var_731[key]; + } + } + + public function method_920(key:name_787, weight:Number) : void + { + this.var_730 += weight; + this.transform.interpolate(this.transform,key,weight / this.var_730); + } + + public function method_919(property:String, value:Number, weight:Number) : void + { + var current:Number = NaN; + var sum:Number = Number(this.var_731[property]); + if(sum == sum) + { + sum += weight; + weight /= sum; + current = Number(this.numbers[property]); + this.numbers[property] = (1 - weight) * current + weight * value; + this.var_731[property] = sum; + } + else + { + this.numbers[property] = value; + this.var_731[property] = weight; + } + } + + public function name_683(object:name_78) : void + { + var sum:Number = NaN; + var weight:Number = NaN; + var key:String = null; + if(this.var_730 > 0) + { + object.x = this.transform.alternativa3d::x; + object.y = this.transform.alternativa3d::y; + object.z = this.transform.alternativa3d::z; + this.method_917(this.transform.alternativa3d::rotation,object); + object.scaleX = this.transform.alternativa3d::scaleX; + object.scaleY = this.transform.alternativa3d::scaleY; + object.scaleZ = this.transform.alternativa3d::scaleZ; + } + for(key in this.numbers) + { + switch(key) + { + case "x": + sum = Number(this.var_731["x"]); + weight = sum / (sum + this.var_730); + object.x = (1 - weight) * object.x + weight * this.numbers["x"]; + break; + case "y": + sum = Number(this.var_731["y"]); + weight = sum / (sum + this.var_730); + object.y = (1 - weight) * object.y + weight * this.numbers["y"]; + break; + case "z": + sum = Number(this.var_731["z"]); + weight = sum / (sum + this.var_730); + object.z = (1 - weight) * object.z + weight * this.numbers["z"]; + break; + case "rotationX": + sum = Number(this.var_731["rotationX"]); + weight = sum / (sum + this.var_730); + object.rotationX = (1 - weight) * object.rotationX + weight * this.numbers["rotationX"]; + break; + case "rotationY": + sum = Number(this.var_731["rotationY"]); + weight = sum / (sum + this.var_730); + object.rotationY = (1 - weight) * object.rotationY + weight * this.numbers["rotationY"]; + break; + case "rotationZ": + sum = Number(this.var_731["rotationZ"]); + weight = sum / (sum + this.var_730); + object.rotationZ = (1 - weight) * object.rotationZ + weight * this.numbers["rotationZ"]; + break; + case "scaleX": + sum = Number(this.var_731["scaleX"]); + weight = sum / (sum + this.var_730); + object.scaleX = (1 - weight) * object.scaleX + weight * this.numbers["scaleX"]; + break; + case "scaleY": + sum = Number(this.var_731["scaleY"]); + weight = sum / (sum + this.var_730); + object.scaleY = (1 - weight) * object.scaleY + weight * this.numbers["scaleY"]; + break; + case "scaleZ": + sum = Number(this.var_731["scaleZ"]); + weight = sum / (sum + this.var_730); + object.scaleZ = (1 - weight) * object.scaleZ + weight * this.numbers["scaleZ"]; + break; + default: + object[key] = this.numbers[key]; + break; + } + } + } + + public function method_921(object:Object) : void + { + var sum:Number = NaN; + var weight:Number = NaN; + var key:String = null; + if(this.var_730 > 0) + { + object.x = this.transform.alternativa3d::x; + object.y = this.transform.alternativa3d::y; + object.z = this.transform.alternativa3d::z; + this.method_918(this.transform.alternativa3d::rotation,object); + object.scaleX = this.transform.alternativa3d::scaleX; + object.scaleY = this.transform.alternativa3d::scaleY; + object.scaleZ = this.transform.alternativa3d::scaleZ; + } + for(key in this.numbers) + { + switch(key) + { + case "x": + sum = Number(this.var_731["x"]); + weight = sum / (sum + this.var_730); + object.x = (1 - weight) * object.x + weight * this.numbers["x"]; + break; + case "y": + sum = Number(this.var_731["y"]); + weight = sum / (sum + this.var_730); + object.y = (1 - weight) * object.y + weight * this.numbers["y"]; + break; + case "z": + sum = Number(this.var_731["z"]); + weight = sum / (sum + this.var_730); + object.z = (1 - weight) * object.z + weight * this.numbers["z"]; + break; + case "rotationX": + sum = Number(this.var_731["rotationX"]); + weight = sum / (sum + this.var_730); + object.rotationX = (1 - weight) * object.rotationX + weight * this.numbers["rotationX"]; + break; + case "rotationY": + sum = Number(this.var_731["rotationY"]); + weight = sum / (sum + this.var_730); + object.rotationY = (1 - weight) * object.rotationY + weight * this.numbers["rotationY"]; + break; + case "rotationZ": + sum = Number(this.var_731["rotationZ"]); + weight = sum / (sum + this.var_730); + object.rotationZ = (1 - weight) * object.rotationZ + weight * this.numbers["rotationZ"]; + break; + case "scaleX": + sum = Number(this.var_731["scaleX"]); + weight = sum / (sum + this.var_730); + object.scaleX = (1 - weight) * object.scaleX + weight * this.numbers["scaleX"]; + break; + case "scaleY": + sum = Number(this.var_731["scaleY"]); + weight = sum / (sum + this.var_730); + object.scaleY = (1 - weight) * object.scaleY + weight * this.numbers["scaleY"]; + break; + case "scaleZ": + sum = Number(this.var_731["scaleZ"]); + weight = sum / (sum + this.var_730); + object.scaleZ = (1 - weight) * object.scaleZ + weight * this.numbers["scaleZ"]; + break; + default: + object[key] = this.numbers[key]; + break; + } + } + } + + private function method_917(quat:Vector3D, object:name_78) : void + { + var qi2:Number = 2 * quat.x * quat.x; + var qj2:Number = 2 * quat.y * quat.y; + var qk2:Number = 2 * quat.z * quat.z; + var qij:Number = 2 * quat.x * quat.y; + var qjk:Number = 2 * quat.y * quat.z; + var qki:Number = 2 * quat.z * quat.x; + var qri:Number = 2 * quat.w * quat.x; + var qrj:Number = 2 * quat.w * quat.y; + var qrk:Number = 2 * quat.w * quat.z; + var aa:Number = 1 - qj2 - qk2; + var bb:Number = qij - qrk; + var ee:Number = qij + qrk; + var ff:Number = 1 - qi2 - qk2; + var ii:Number = qki - qrj; + var jj:Number = qjk + qri; + var kk:Number = 1 - qi2 - qj2; + if(-1 < ii && ii < 1) + { + object.rotationX = Math.atan2(jj,kk); + object.rotationY = -Math.asin(ii); + object.rotationZ = Math.atan2(ee,aa); + } + else + { + object.rotationX = 0; + object.rotationY = ii <= -1 ? Number(Math.PI) : -Math.PI; + object.rotationY *= 0.5; + object.rotationZ = Math.atan2(-bb,ff); + } + } + + private function method_918(quat:Vector3D, object:Object) : void + { + var qi2:Number = 2 * quat.x * quat.x; + var qj2:Number = 2 * quat.y * quat.y; + var qk2:Number = 2 * quat.z * quat.z; + var qij:Number = 2 * quat.x * quat.y; + var qjk:Number = 2 * quat.y * quat.z; + var qki:Number = 2 * quat.z * quat.x; + var qri:Number = 2 * quat.w * quat.x; + var qrj:Number = 2 * quat.w * quat.y; + var qrk:Number = 2 * quat.w * quat.z; + var aa:Number = 1 - qj2 - qk2; + var bb:Number = qij - qrk; + var ee:Number = qij + qrk; + var ff:Number = 1 - qi2 - qk2; + var ii:Number = qki - qrj; + var jj:Number = qjk + qri; + var kk:Number = 1 - qi2 - qj2; + if(-1 < ii && ii < 1) + { + object.rotationX = Math.atan2(jj,kk); + object.rotationY = -Math.asin(ii); + object.rotationZ = Math.atan2(ee,aa); + } + else + { + object.rotationX = 0; + object.rotationY = ii <= -1 ? Math.PI : -Math.PI; + object.rotationY *= 0.5; + object.rotationZ = Math.atan2(-bb,ff); + } + } + } +} + diff --git a/src/package_124/name_750.as b/src/package_124/name_750.as new file mode 100644 index 0000000..520c9b5 --- /dev/null +++ b/src/package_124/name_750.as @@ -0,0 +1,182 @@ +package package_124 +{ + import alternativa.engine3d.alternativa3d; + import flash.utils.Dictionary; + import flash.utils.getTimer; + import package_128.name_788; + import package_21.name_78; + + use namespace alternativa3d; + + public class name_750 + { + private var var_734:class_42; + + private var var_346:Vector.; + + private var var_733:Vector. = new Vector.(); + + private var var_735:Dictionary = new Dictionary(); + + private var var_619:Object = new Object(); + + private var var_210:int = -1; + + alternativa3d var nearestNotifyers:name_751; + + public function name_750() + { + super(); + } + + public function get root() : class_42 + { + return this.var_734; + } + + public function set root(value:class_42) : void + { + if(this.var_734 != value) + { + if(this.var_734 != null) + { + this.var_734.alternativa3d::setController(null); + this.var_734.alternativa3d::var_694 = false; + } + if(value != null) + { + value.alternativa3d::setController(this); + value.alternativa3d::var_694 = true; + } + this.var_734 = value; + } + } + + public function update() : void + { + var interval:Number = NaN; + var data:name_749 = null; + var i:int = 0; + var count:int = 0; + var time:int = 0; + var object:name_78 = null; + if(this.var_210 < 0) + { + this.var_210 = getTimer(); + interval = 0; + } + else + { + time = int(getTimer()); + interval = 0.001 * (time - this.var_210); + this.var_210 = time; + } + if(this.var_734 == null) + { + return; + } + for each(data in this.var_619) + { + data.reset(); + } + this.var_734.alternativa3d::update(interval,1); + for(i = 0,count = int(this.var_733.length); i < count; ) + { + object = this.var_733[i]; + data = this.var_619[object.name]; + if(data != null) + { + data.name_683(object); + } + i++; + } + for(var notify:name_751 = this.alternativa3d::nearestNotifyers; notify != null; ) + { + if(notify.willTrigger(name_788.NOTIFY)) + { + notify.dispatchEvent(new name_788(notify)); + } + notify = notify.alternativa3d::name_752; + } + this.alternativa3d::nearestNotifyers = null; + } + + alternativa3d function addObject(object:Object) : void + { + if(object in this.var_735) + { + ++this.var_735[object]; + } + else + { + if(object is name_78) + { + this.var_733.push(object); + } + else + { + this.var_346.push(object); + } + this.var_735[object] = 1; + } + } + + alternativa3d function name_753(object:Object) : void + { + var index:int = 0; + var j:int = 0; + var count:int = 0; + var used:int = int(this.var_735[object]); + used--; + if(used <= 0) + { + if(object is name_78) + { + index = int(this.var_733.indexOf(object)); + count = this.var_733.length - 1; + for(j = index + 1; index < count; ) + { + this.var_733[index] = this.var_733[j]; + index++; + j++; + } + this.var_733.length = count; + } + else + { + index = int(this.var_346.indexOf(object)); + count = this.var_346.length - 1; + for(j = index + 1; index < count; ) + { + this.var_346[index] = this.var_346[j]; + index++; + j++; + } + this.var_346.length = count; + } + delete this.var_735[object]; + } + else + { + this.var_735[object] = used; + } + } + + alternativa3d function getState(name:String) : name_749 + { + var state:name_749 = this.var_619[name]; + if(state == null) + { + state = new name_749(); + this.var_619[name] = state; + } + return state; + } + + public function method_922() : void + { + this.var_210 = -1; + } + } +} + diff --git a/src/package_124/name_751.as b/src/package_124/name_751.as new file mode 100644 index 0000000..87c5428 --- /dev/null +++ b/src/package_124/name_751.as @@ -0,0 +1,32 @@ +package package_124 +{ + import alternativa.engine3d.alternativa3d; + import flash.events.EventDispatcher; + + use namespace alternativa3d; + + public class name_751 extends EventDispatcher + { + public var name:String; + + alternativa3d var var_420:Number = 0; + + alternativa3d var next:name_751; + + alternativa3d var var_736:Number; + + alternativa3d var name_752:name_751; + + public function name_751(name:String) + { + super(); + this.name = name; + } + + public function get time() : Number + { + return this.alternativa3d::var_420; + } + } +} + diff --git a/src/package_125/name_709.as b/src/package_125/name_709.as new file mode 100644 index 0000000..f50844e --- /dev/null +++ b/src/package_125/name_709.as @@ -0,0 +1,193 @@ +package package_125 +{ + import alternativa.engine3d.alternativa3d; + import package_124.name_749; + + use namespace alternativa3d; + + public class name_709 + { + public var object:String; + + alternativa3d var var_693:Number = 0; + + public function name_709() + { + super(); + } + + public function get length() : Number + { + return this.alternativa3d::var_693; + } + + alternativa3d function get keyFramesList() : name_748 + { + return null; + } + + alternativa3d function set keyFramesList(value:name_748) : void + { + } + + alternativa3d function method_849(key:name_748) : void + { + var k:name_748 = null; + var time:Number = Number(key.alternativa3d::var_420); + if(this.alternativa3d::keyFramesList == null) + { + this.alternativa3d::keyFramesList = key; + this.alternativa3d::var_693 = time <= 0 ? 0 : time; + return; + } + if(this.alternativa3d::keyFramesList.alternativa3d::var_420 > time) + { + key.alternativa3d::nextKeyFrame = this.alternativa3d::keyFramesList; + this.alternativa3d::keyFramesList = key; + return; + } + k = this.alternativa3d::keyFramesList; + while(k.alternativa3d::nextKeyFrame != null && k.alternativa3d::nextKeyFrame.alternativa3d::var_420 <= time) + { + k = k.alternativa3d::nextKeyFrame; + } + if(k.alternativa3d::nextKeyFrame == null) + { + k.alternativa3d::nextKeyFrame = key; + this.alternativa3d::var_693 = time <= 0 ? 0 : time; + } + else + { + key.alternativa3d::nextKeyFrame = k.alternativa3d::nextKeyFrame; + k.alternativa3d::nextKeyFrame = key; + } + } + + public function method_850(key:name_748) : name_748 + { + var k:name_748 = null; + if(this.alternativa3d::keyFramesList != null) + { + if(this.alternativa3d::keyFramesList == key) + { + this.alternativa3d::keyFramesList = this.alternativa3d::keyFramesList.alternativa3d::nextKeyFrame; + if(this.alternativa3d::keyFramesList == null) + { + this.alternativa3d::var_693 = 0; + } + return key; + } + k = this.alternativa3d::keyFramesList; + while(k.alternativa3d::nextKeyFrame != null && k.alternativa3d::nextKeyFrame != key) + { + k = k.alternativa3d::nextKeyFrame; + } + if(k.alternativa3d::nextKeyFrame == key) + { + if(key.alternativa3d::nextKeyFrame == null) + { + this.alternativa3d::var_693 = k.alternativa3d::var_420 <= 0 ? 0 : Number(k.alternativa3d::var_420); + } + k.alternativa3d::nextKeyFrame = key.alternativa3d::nextKeyFrame; + return key; + } + } + throw new Error("Key not found"); + } + + public function get keys() : Vector. + { + var result:Vector. = new Vector.(); + var i:int = 0; + for(var key:name_748 = this.alternativa3d::keyFramesList; key != null; key = key.alternativa3d::nextKeyFrame) + { + result[i] = key; + i++; + } + return result; + } + + alternativa3d function blend(time:Number, weight:Number, state:name_749) : void + { + } + + public function slice(start:Number, end:Number = 1.7976931348623157e+308) : name_709 + { + return null; + } + + alternativa3d function createKeyFrame() : name_748 + { + return null; + } + + alternativa3d function interpolateKeyFrame(dest:name_748, a:name_748, b:name_748, value:Number) : void + { + } + + alternativa3d function method_851(dest:name_709, start:Number, end:Number) : void + { + var prev:name_748 = null; + var nextKey:name_748 = null; + var shiftTime:Number = start > 0 ? start : 0; + var next:name_748 = this.alternativa3d::keyFramesList; + var key:name_748 = this.alternativa3d::createKeyFrame(); + while(next != null && next.alternativa3d::var_420 <= start) + { + prev = next; + next = next.alternativa3d::nextKeyFrame; + } + if(prev != null) + { + if(next != null) + { + this.alternativa3d::interpolateKeyFrame(key,prev,next,(start - prev.alternativa3d::var_420) / (next.alternativa3d::var_420 - prev.alternativa3d::var_420)); + key.alternativa3d::var_420 = start - shiftTime; + } + else + { + this.alternativa3d::interpolateKeyFrame(key,key,prev,1); + } + } + else + { + if(next == null) + { + return; + } + this.alternativa3d::interpolateKeyFrame(key,key,next,1); + key.alternativa3d::var_420 = next.alternativa3d::var_420 - shiftTime; + prev = next; + next = next.alternativa3d::nextKeyFrame; + } + dest.alternativa3d::keyFramesList = key; + if(next == null || end <= start) + { + dest.alternativa3d::var_693 = key.alternativa3d::var_420 <= 0 ? 0 : Number(key.alternativa3d::var_420); + return; + } + while(next != null && next.alternativa3d::var_420 <= end) + { + nextKey = this.alternativa3d::createKeyFrame(); + this.alternativa3d::interpolateKeyFrame(nextKey,nextKey,next,1); + nextKey.alternativa3d::var_420 = next.alternativa3d::var_420 - shiftTime; + key.alternativa3d::nextKeyFrame = nextKey; + key = nextKey; + prev = next; + next = next.alternativa3d::nextKeyFrame; + } + if(next != null) + { + nextKey = this.alternativa3d::createKeyFrame(); + this.alternativa3d::interpolateKeyFrame(nextKey,prev,next,(end - prev.alternativa3d::var_420) / (next.alternativa3d::var_420 - prev.alternativa3d::var_420)); + nextKey.alternativa3d::var_420 = end - shiftTime; + key.alternativa3d::nextKeyFrame = nextKey; + } + if(nextKey != null) + { + dest.alternativa3d::var_693 = nextKey.alternativa3d::var_420 <= 0 ? 0 : Number(nextKey.alternativa3d::var_420); + } + } + } +} + diff --git a/src/package_125/name_748.as b/src/package_125/name_748.as new file mode 100644 index 0000000..a087374 --- /dev/null +++ b/src/package_125/name_748.as @@ -0,0 +1,45 @@ +package package_125 +{ + import alternativa.engine3d.alternativa3d; + + use namespace alternativa3d; + + public class name_748 + { + alternativa3d var var_420:Number = 0; + + public function name_748() + { + super(); + } + + public function get time() : Number + { + return this.alternativa3d::var_420; + } + + public function get value() : Object + { + return null; + } + + public function set value(v:Object) : void + { + } + + alternativa3d function get nextKeyFrame() : name_748 + { + return null; + } + + alternativa3d function set nextKeyFrame(value:name_748) : void + { + } + + public function toString() : String + { + return "[Keyframe time = " + this.alternativa3d::var_420.toFixed(2) + " value = " + this.value + "]"; + } + } +} + diff --git a/src/package_125/name_759.as b/src/package_125/name_759.as new file mode 100644 index 0000000..c43fbfe --- /dev/null +++ b/src/package_125/name_759.as @@ -0,0 +1,163 @@ +package package_125 +{ + import alternativa.engine3d.alternativa3d; + import flash.geom.Matrix3D; + import flash.geom.Orientation3D; + import flash.geom.Vector3D; + import package_124.name_749; + + use namespace alternativa3d; + + public class name_759 extends name_709 + { + private static var tempQuat:Vector3D = new Vector3D(); + + private static var temp:name_787 = new name_787(); + + private var name_783:name_787; + + public function name_759(object:String) + { + super(); + this.object = object; + } + + override alternativa3d function get keyFramesList() : name_748 + { + return this.name_783; + } + + override alternativa3d function set keyFramesList(value:name_748) : void + { + this.name_783 = name_787(value); + } + + public function method_257(time:Number, matrix:Matrix3D) : name_787 + { + var key:name_787 = null; + key = new name_787(); + key.alternativa3d::var_420 = time; + var components:Vector. = matrix.decompose(Orientation3D.QUATERNION); + key.alternativa3d::x = components[0].x; + key.alternativa3d::y = components[0].y; + key.alternativa3d::z = components[0].z; + key.alternativa3d::rotation = components[1]; + key.alternativa3d::scaleX = components[2].x; + key.alternativa3d::scaleY = components[2].y; + key.alternativa3d::scaleZ = components[2].z; + alternativa3d::method_849(key); + return key; + } + + public function method_929(time:Number, x:Number = 0, y:Number = 0, z:Number = 0, rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0, scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1) : name_787 + { + var key:name_787 = new name_787(); + key.alternativa3d::var_420 = time; + key.alternativa3d::x = x; + key.alternativa3d::y = y; + key.alternativa3d::z = z; + key.alternativa3d::rotation = this.method_928(rotationX,rotationY,rotationZ); + key.alternativa3d::scaleX = scaleX; + key.alternativa3d::scaleY = scaleY; + key.alternativa3d::scaleZ = scaleZ; + alternativa3d::method_849(key); + return key; + } + + private function method_926(quat:Vector3D, additive:Vector3D) : void + { + var ww:Number = additive.w * quat.w - additive.x * quat.x - additive.y * quat.y - additive.z * quat.z; + var xx:Number = additive.w * quat.x + additive.x * quat.w + additive.y * quat.z - additive.z * quat.y; + var yy:Number = additive.w * quat.y + additive.y * quat.w + additive.z * quat.x - additive.x * quat.z; + var zz:Number = additive.w * quat.z + additive.z * quat.w + additive.x * quat.y - additive.y * quat.x; + quat.w = ww; + quat.x = xx; + quat.y = yy; + quat.z = zz; + } + + private function method_927(quat:Vector3D) : void + { + var d:Number = quat.w * quat.w + quat.x * quat.x + quat.y * quat.y + quat.z * quat.z; + if(d == 0) + { + quat.w = 1; + } + else + { + d = 1 / Math.sqrt(d); + quat.w *= d; + quat.x *= d; + quat.y *= d; + quat.z *= d; + } + } + + private function method_925(quat:Vector3D, x:Number, y:Number, z:Number, angle:Number) : void + { + quat.w = Math.cos(0.5 * angle); + var k:Number = Math.sin(0.5 * angle) / Math.sqrt(x * x + y * y + z * z); + quat.x = x * k; + quat.y = y * k; + quat.z = z * k; + } + + private function method_928(x:Number, y:Number, z:Number) : Vector3D + { + var result:Vector3D = new Vector3D(); + this.method_925(result,1,0,0,x); + this.method_925(tempQuat,0,1,0,y); + this.method_926(result,tempQuat); + this.method_927(result); + this.method_925(tempQuat,0,0,1,z); + this.method_926(result,tempQuat); + this.method_927(result); + return result; + } + + override alternativa3d function blend(time:Number, weight:Number, state:name_749) : void + { + var prev:name_787 = null; + var next:name_787 = this.name_783; + while(next != null && next.alternativa3d::var_420 < time) + { + prev = next; + next = next.alternativa3d::next; + } + if(prev != null) + { + if(next != null) + { + temp.interpolate(prev,next,(time - prev.alternativa3d::var_420) / (next.alternativa3d::var_420 - prev.alternativa3d::var_420)); + state.method_920(temp,weight); + } + else + { + state.method_920(prev,weight); + } + } + else if(next != null) + { + state.method_920(next,weight); + } + } + + override alternativa3d function createKeyFrame() : name_748 + { + return new name_787(); + } + + override alternativa3d function interpolateKeyFrame(dest:name_748, a:name_748, b:name_748, value:Number) : void + { + name_787(dest).interpolate(name_787(a),name_787(b),value); + } + + override public function slice(start:Number, end:Number = 1.7976931348623157e+308) : name_709 + { + var track:name_759 = new name_759(object); + alternativa3d::method_851(track,start,end); + return track; + } + } +} + diff --git a/src/package_125/name_760.as b/src/package_125/name_760.as new file mode 100644 index 0000000..1c644b8 --- /dev/null +++ b/src/package_125/name_760.as @@ -0,0 +1,91 @@ +package package_125 +{ + import alternativa.engine3d.alternativa3d; + import package_124.name_749; + + use namespace alternativa3d; + + public class name_760 extends name_709 + { + private static var temp:name_778 = new name_778(); + + alternativa3d var name_783:name_778; + + public var property:String; + + public function name_760(object:String, property:String) + { + super(); + this.property = property; + this.object = object; + } + + override alternativa3d function get keyFramesList() : name_748 + { + return this.alternativa3d::name_783; + } + + override alternativa3d function set keyFramesList(value:name_748) : void + { + this.alternativa3d::name_783 = name_778(value); + } + + public function method_257(time:Number, value:Number = 0) : name_748 + { + var key:name_778 = new name_778(); + key.alternativa3d::var_420 = time; + key.value = value; + alternativa3d::method_849(key); + return key; + } + + override alternativa3d function blend(time:Number, weight:Number, state:name_749) : void + { + var prev:name_778 = null; + if(this.property == null) + { + return; + } + var next:name_778 = this.alternativa3d::name_783; + while(next != null && next.alternativa3d::var_420 < time) + { + prev = next; + next = next.alternativa3d::next; + } + if(prev != null) + { + if(next != null) + { + temp.interpolate(prev,next,(time - prev.alternativa3d::var_420) / (next.alternativa3d::var_420 - prev.alternativa3d::var_420)); + state.method_919(this.property,temp.alternativa3d::name_781,weight); + } + else + { + state.method_919(this.property,prev.alternativa3d::name_781,weight); + } + } + else if(next != null) + { + state.method_919(this.property,next.alternativa3d::name_781,weight); + } + } + + override alternativa3d function createKeyFrame() : name_748 + { + return new name_778(); + } + + override alternativa3d function interpolateKeyFrame(dest:name_748, a:name_748, b:name_748, value:Number) : void + { + name_778(dest).interpolate(name_778(a),name_778(b),value); + } + + override public function slice(start:Number, end:Number = 1.7976931348623157e+308) : name_709 + { + var track:name_760 = new name_760(object,this.property); + alternativa3d::method_851(track,start,end); + return track; + } + } +} + diff --git a/src/package_125/name_778.as b/src/package_125/name_778.as new file mode 100644 index 0000000..3f47819 --- /dev/null +++ b/src/package_125/name_778.as @@ -0,0 +1,44 @@ +package package_125 +{ + import alternativa.engine3d.alternativa3d; + + use namespace alternativa3d; + + public class name_778 extends name_748 + { + alternativa3d var name_781:Number = 0; + + alternativa3d var next:name_778; + + public function name_778() + { + super(); + } + + public function interpolate(a:name_778, b:name_778, c:Number) : void + { + this.alternativa3d::name_781 = (1 - c) * a.alternativa3d::name_781 + c * b.alternativa3d::name_781; + } + + override public function get value() : Object + { + return this.alternativa3d::name_781; + } + + override public function set value(v:Object) : void + { + this.alternativa3d::name_781 = Number(v); + } + + override alternativa3d function get nextKeyFrame() : name_748 + { + return this.alternativa3d::next; + } + + override alternativa3d function set nextKeyFrame(value:name_748) : void + { + this.alternativa3d::next = name_778(value); + } + } +} + diff --git a/src/package_125/name_787.as b/src/package_125/name_787.as new file mode 100644 index 0000000..bb932ec --- /dev/null +++ b/src/package_125/name_787.as @@ -0,0 +1,123 @@ +package package_125 +{ + import alternativa.engine3d.alternativa3d; + import flash.geom.Matrix3D; + import flash.geom.Orientation3D; + import flash.geom.Vector3D; + + use namespace alternativa3d; + + public class name_787 extends name_748 + { + alternativa3d var x:Number = 0; + + alternativa3d var y:Number = 0; + + alternativa3d var z:Number = 0; + + alternativa3d var rotation:Vector3D = new Vector3D(0,0,0,1); + + alternativa3d var scaleX:Number = 1; + + alternativa3d var scaleY:Number = 1; + + alternativa3d var scaleZ:Number = 1; + + alternativa3d var next:name_787; + + public function name_787() + { + super(); + } + + override public function get value() : Object + { + var m:Matrix3D = new Matrix3D(); + m.recompose(Vector.([new Vector3D(this.alternativa3d::x,this.alternativa3d::y,this.alternativa3d::z),this.alternativa3d::rotation,new Vector3D(this.alternativa3d::scaleX,this.alternativa3d::scaleY,this.alternativa3d::scaleZ)]),Orientation3D.QUATERNION); + return m; + } + + override public function set value(v:Object) : void + { + var m:Matrix3D = Matrix3D(v); + var components:Vector. = m.decompose(Orientation3D.QUATERNION); + this.alternativa3d::x = components[0].x; + this.alternativa3d::y = components[0].y; + this.alternativa3d::z = components[0].z; + this.alternativa3d::rotation = components[1]; + this.alternativa3d::scaleX = components[2].x; + this.alternativa3d::scaleY = components[2].y; + this.alternativa3d::scaleZ = components[2].z; + } + + public function interpolate(a:name_787, b:name_787, c:Number) : void + { + var c2:Number = 1 - c; + this.alternativa3d::x = c2 * a.alternativa3d::x + c * b.alternativa3d::x; + this.alternativa3d::y = c2 * a.alternativa3d::y + c * b.alternativa3d::y; + this.alternativa3d::z = c2 * a.alternativa3d::z + c * b.alternativa3d::z; + this.name_602(a.alternativa3d::rotation,b.alternativa3d::rotation,c,this.alternativa3d::rotation); + this.alternativa3d::scaleX = c2 * a.alternativa3d::scaleX + c * b.alternativa3d::scaleX; + this.alternativa3d::scaleY = c2 * a.alternativa3d::scaleY + c * b.alternativa3d::scaleY; + this.alternativa3d::scaleZ = c2 * a.alternativa3d::scaleZ + c * b.alternativa3d::scaleZ; + } + + private function name_602(a:Vector3D, b:Vector3D, t:Number, result:Vector3D) : void + { + var k1:Number = NaN; + var k2:Number = NaN; + var d:Number = NaN; + var theta:Number = NaN; + var sine:Number = NaN; + var beta:Number = NaN; + var alpha:Number = NaN; + var flip:Number = 1; + var cosine:Number = a.w * b.w + a.x * b.x + a.y * b.y + a.z * b.z; + if(cosine < 0) + { + cosine = -cosine; + flip = -1; + } + if(1 - cosine < 0.001) + { + k1 = 1 - t; + k2 = t * flip; + result.w = a.w * k1 + b.w * k2; + result.x = a.x * k1 + b.x * k2; + result.y = a.y * k1 + b.y * k2; + result.z = a.z * k1 + b.z * k2; + d = result.w * result.w + result.x * result.x + result.y * result.y + result.z * result.z; + if(d == 0) + { + result.w = 1; + } + else + { + result.scaleBy(1 / Math.sqrt(d)); + } + } + else + { + theta = Number(Math.acos(cosine)); + sine = Number(Math.sin(theta)); + beta = Math.sin((1 - t) * theta) / sine; + alpha = Math.sin(t * theta) / sine * flip; + result.w = a.w * beta + b.w * alpha; + result.x = a.x * beta + b.x * alpha; + result.y = a.y * beta + b.y * alpha; + result.z = a.z * beta + b.z * alpha; + } + } + + override alternativa3d function get nextKeyFrame() : name_748 + { + return this.alternativa3d::next; + } + + override alternativa3d function set nextKeyFrame(value:name_748) : void + { + this.alternativa3d::next = name_787(value); + } + } +} + diff --git a/src/package_126/name_723.as b/src/package_126/name_723.as new file mode 100644 index 0000000..4a4870b --- /dev/null +++ b/src/package_126/name_723.as @@ -0,0 +1,25 @@ +package package_126 +{ + public class name_723 + { + public static const NONE:name_723 = new name_723("NONE"); + + public static const RED:name_723 = new name_723("RED"); + + public static const BLUE:name_723 = new name_723("BLUE"); + + private var value:String; + + public function name_723(value:String) + { + super(); + this.value = value; + } + + public function toString() : String + { + return this.value; + } + } +} + diff --git a/src/package_127/name_729.as b/src/package_127/name_729.as new file mode 100644 index 0000000..108c3f5 --- /dev/null +++ b/src/package_127/name_729.as @@ -0,0 +1,11 @@ +package package_127 +{ + public class name_729 extends Error + { + public function name_729() + { + super(); + } + } +} + diff --git a/src/package_127/name_730.as b/src/package_127/name_730.as new file mode 100644 index 0000000..e445001 --- /dev/null +++ b/src/package_127/name_730.as @@ -0,0 +1,11 @@ +package package_127 +{ + public class name_730 extends Error + { + public function name_730() + { + super(); + } + } +} + diff --git a/src/package_128/name_788.as b/src/package_128/name_788.as new file mode 100644 index 0000000..6864568 --- /dev/null +++ b/src/package_128/name_788.as @@ -0,0 +1,21 @@ +package package_128 +{ + import flash.events.Event; + import package_124.name_751; + + public class name_788 extends Event + { + public static const NOTIFY:String = "notify"; + + public function name_788(notify:name_751) + { + super(NOTIFY); + } + + public function get notify() : name_751 + { + return name_751(target); + } + } +} + diff --git a/src/package_13/class_21.as b/src/package_13/class_21.as new file mode 100644 index 0000000..4c585cf --- /dev/null +++ b/src/package_13/class_21.as @@ -0,0 +1,19 @@ +package package_13 +{ + import package_40.class_7; + + public class class_21 extends class_7 + { + public var config:name_18; + + public var name:String; + + public function class_21(param1:String, param2:name_18) + { + super(); + this.config = param2; + this.name = param1; + } + } +} + diff --git a/src/package_13/name_172.as b/src/package_13/name_172.as new file mode 100644 index 0000000..99058aa --- /dev/null +++ b/src/package_13/name_172.as @@ -0,0 +1,143 @@ +package package_13 +{ + import flash.display.BitmapData; + import flash.events.Event; + import package_40.name_169; + import package_40.name_170; + + public class name_172 extends class_21 + { + private var textures:Object = {}; + + private var var_193:BitmapData; + + private var var_34:name_170; + + public function name_172(param1:name_18) + { + super("Texture library loader",param1); + } + + public function name_244(param1:String) : Object + { + return this.textures[param1] || this.method_311(); + } + + public function method_310(param1:String, param2:Object) : void + { + this.textures[param1] = param2; + } + + override public function run() : void + { + var _loc3_:XML = null; + var _loc1_:XML = config.xml.textures[0]; + var _loc2_:String = name_459.name_460(_loc1_.@baseUrl); + this.var_34 = new name_170(); + for each(_loc3_ in _loc1_.texture) + { + this.var_34.addTask(new TextureLoader(_loc3_.@id,_loc2_ + _loc3_.@url,this)); + } + this.var_34.addEventListener(name_169.TASK_COMPLETE,this.method_312); + this.var_34.addEventListener(Event.COMPLETE,this.method_107); + this.var_34.run(); + } + + private function method_312(param1:name_169) : void + { + dispatchEvent(new name_169(name_169.TASK_PROGRESS,1,this.var_34.length)); + } + + private function method_107(param1:Event) : void + { + this.var_34 = null; + method_102(); + } + + private function method_311() : BitmapData + { + var _loc1_:int = 0; + var _loc2_:uint = 0; + var _loc3_:int = 0; + var _loc4_:int = 0; + if(this.var_193 == null) + { + _loc1_ = 128; + _loc2_ = 16711935; + this.var_193 = new BitmapData(_loc1_,_loc1_,false,0); + _loc3_ = 0; + while(_loc3_ < _loc1_) + { + _loc4_ = 0; + while(_loc4_ < _loc1_) + { + this.var_193.setPixel(Boolean(_loc3_ % 2) ? _loc4_ : _loc4_ + 1,_loc3_,_loc2_); + _loc4_ += 2; + } + _loc3_++; + } + } + return this.var_193; + } + } +} + +import flash.display.Bitmap; +import flash.display.Loader; +import flash.events.Event; +import flash.events.EventDispatcher; +import flash.net.URLLoader; +import flash.net.URLLoaderDataFormat; +import flash.net.URLRequest; +import flash.utils.ByteArray; +import package_40.class_7; + +class TextureLoader extends class_7 +{ + private var id:String; + + private var url:String; + + private var library:name_172; + + private var loader:Loader; + + private var urlLoader:URLLoader; + + public function TextureLoader(param1:String, param2:String, param3:name_172) + { + super(); + this.id = param1; + this.url = param2; + this.library = param3; + } + + override public function run() : void + { + if(this.url.indexOf(".atf") > 0) + { + this.urlLoader = new URLLoader(); + this.urlLoader.dataFormat = URLLoaderDataFormat.BINARY; + this.urlLoader.addEventListener(Event.COMPLETE,this.onLoadingCompressedComplete); + this.urlLoader.load(new URLRequest(this.url)); + } + else + { + this.loader = new Loader(); + this.loader.contentLoaderInfo.addEventListener(Event.COMPLETE,this.onLoadingComplete); + this.loader.load(new URLRequest(this.url)); + } + } + + private function onLoadingCompressedComplete(param1:Event) : void + { + this.library.method_310(this.id,ByteArray(this.urlLoader.data)); + method_102(); + } + + private function onLoadingComplete(param1:Event) : void + { + this.library.method_310(this.id,Bitmap(this.loader.content).bitmapData); + method_102(); + } +} diff --git a/src/package_13/name_174.as b/src/package_13/name_174.as new file mode 100644 index 0000000..b2fbb16 --- /dev/null +++ b/src/package_13/name_174.as @@ -0,0 +1,35 @@ +package package_13 +{ + public class name_174 + { + private var var_199:Object; + + public function name_174() + { + super(); + this.var_199 = new Object(); + } + + public function get method_327() : Vector. + { + var _loc2_:String = null; + var _loc1_:Vector. = new Vector.(); + for(_loc2_ in this.var_199) + { + _loc1_.push(_loc2_); + } + return _loc1_; + } + + public function name_72(param1:String) : name_70 + { + return this.var_199[param1]; + } + + public function method_326(param1:String, param2:name_70) : void + { + this.var_199[param1] = param2; + } + } +} + diff --git a/src/package_13/name_176.as b/src/package_13/name_176.as new file mode 100644 index 0000000..ebdf0be --- /dev/null +++ b/src/package_13/name_176.as @@ -0,0 +1,167 @@ +package package_13 +{ + import flash.display.BitmapData; + import flash.events.Event; + import package_112.name_463; + import package_112.name_464; + import package_40.name_169; + import package_41.name_461; + import package_41.name_462; + import package_71.name_234; + import package_71.name_249; + import package_71.name_333; + + public class name_176 extends class_21 + { + private var var_196:Vector.; + + private var var_197:Vector.; + + private var var_198:Vector.; + + private var var_194:name_461; + + private var var_195:name_462; + + public function name_176(param1:name_18) + { + super("Tank parts library",param1); + } + + public function get name_300() : int + { + return this.var_196.length; + } + + public function name_351(param1:int) : name_249 + { + return name_249(this.var_196[param1]); + } + + public function name_353(param1:String) : name_249 + { + return this.method_316(param1,this.var_196) as name_249; + } + + public function name_350(param1:String) : int + { + return this.method_317(param1,this.var_196); + } + + public function get name_302() : int + { + return this.var_197.length; + } + + public function name_336(param1:int) : name_234 + { + return name_234(this.var_197[param1]); + } + + public function name_331(param1:String) : name_234 + { + return this.method_316(param1,this.var_197) as name_234; + } + + public function name_338(param1:String) : int + { + return this.method_317(param1,this.var_197); + } + + public function get method_325() : int + { + return this.var_198.length; + } + + public function name_347(param1:int) : BitmapData + { + return this.var_198[param1]; + } + + override public function run() : void + { + this.method_323(); + } + + private function method_316(param1:String, param2:Vector.) : name_333 + { + var _loc3_:name_333 = null; + for each(_loc3_ in param2) + { + if(_loc3_.id == param1) + { + return _loc3_; + } + } + return null; + } + + private function method_317(param1:String, param2:Vector.) : int + { + var _loc4_:name_333 = null; + var _loc3_:int = 0; + while(_loc3_ < param2.length) + { + _loc4_ = param2[_loc3_]; + if(_loc4_.id == param1) + { + return _loc3_; + } + _loc3_++; + } + return -1; + } + + private function method_323() : void + { + this.var_194 = new name_461(); + this.var_194.addEventListener(Event.COMPLETE,this.method_321); + this.var_194.load(this.method_320(),config.xml.tankParts.hull,new name_463()); + } + + private function method_321(param1:Event) : void + { + dispatchEvent(new name_169(name_169.TASK_PROGRESS,1,3)); + this.var_194.removeEventListener(Event.COMPLETE,this.method_321); + this.var_196 = this.var_194.parts; + this.method_324(); + } + + private function method_324() : void + { + this.var_194.addEventListener(Event.COMPLETE,this.method_319); + this.var_194.load(this.method_320(),config.xml.tankParts.turret,new name_464()); + } + + private function method_319(param1:Event) : void + { + dispatchEvent(new name_169(name_169.TASK_PROGRESS,1,3)); + this.var_194.removeEventListener(Event.COMPLETE,this.method_319); + this.var_197 = this.var_194.parts; + this.var_194 = null; + this.method_322(); + } + + private function method_322() : void + { + this.var_195 = new name_462(); + this.var_195.addEventListener(Event.COMPLETE,this.method_318); + this.var_195.load(name_459.name_460(config.xml.colorings.@baseUrl),config.xml.colorings.image); + } + + private function method_318(param1:Event) : void + { + dispatchEvent(new name_169(name_169.TASK_PROGRESS,1,3)); + this.var_198 = this.var_195.images; + this.var_195.removeEventListener(Event.COMPLETE,this.method_318); + this.var_195 = null; + method_102(); + } + + private function method_320() : String + { + return name_459.name_460(config.xml.tankParts.@baseUrl); + } + } +} + diff --git a/src/package_13/name_18.as b/src/package_13/name_18.as new file mode 100644 index 0000000..c4ce394 --- /dev/null +++ b/src/package_13/name_18.as @@ -0,0 +1,198 @@ +package package_13 +{ + import flash.events.Event; + import flash.events.EventDispatcher; + import flash.utils.ByteArray; + import package_15.name_55; + import package_40.class_7; + import package_40.name_169; + import package_40.name_170; + import package_40.name_171; + import package_41.name_173; + import package_41.name_175; + + [Event(name="complete",type="flash.events.Event")] + public class name_18 extends EventDispatcher + { + public var mapData:name_55; + + public var var_37:name_172; + + public var tankParts:name_176; + + public var soundsLibrary:name_173; + + public var name_68:name_174 = new name_174(); + + private var var_35:XML; + + private var var_34:name_170; + + private var preloader:Preloader; + + private var var_36:Object = {}; + + public function name_18() + { + super(); + } + + public function load(param1:String, param2:Preloader) : void + { + this.preloader = param2; + this.var_34 = new name_170(); + var _loc3_:ConfigXMLLoader = new ConfigXMLLoader(param1,this); + this.var_34.addTask(_loc3_); + _loc3_.addEventListener(name_169.TASK_COMPLETE,this.method_103); + var _loc4_:name_175 = new name_175(this); + this.var_34.addTask(_loc4_); + _loc4_.addEventListener(name_169.TASK_PROGRESS,this.method_103); + this.var_37 = new name_172(this); + this.var_37.addEventListener(name_169.TASK_PROGRESS,this.method_103); + this.var_34.addTask(this.var_37); + var _loc5_:class_7 = this.method_106(); + this.var_34.addTask(_loc5_); + _loc5_.addEventListener(name_169.TASK_COMPLETE,this.method_103); + this.tankParts = new name_176(this); + this.tankParts.addEventListener(name_169.TASK_PROGRESS,this.method_103); + this.var_34.addTask(this.tankParts); + this.soundsLibrary = new name_173(this); + this.soundsLibrary.addEventListener(name_169.TASK_PROGRESS,this.method_103); + this.var_34.addTask(this.soundsLibrary); + this.var_34.addEventListener(Event.COMPLETE,this.method_107); + this.var_34.run(); + } + + private function method_103(param1:name_169) : void + { + this.preloader.method_82(param1.progress / param1.total * 0.1); + } + + public function name_67() : String + { + return this.xml.map.@skybox; + } + + public function get xml() : XML + { + return this.var_35; + } + + public function set xml(param1:XML) : void + { + this.var_35 = param1; + this.method_104(); + } + + public function get options() : Object + { + return this.var_36; + } + + public function clear() : void + { + var _loc1_:* = undefined; + for(_loc1_ in this.mapData.data) + { + delete this.mapData.data[_loc1_]; + } + this.var_35 = null; + this.mapData = null; + } + + private function method_106() : class_7 + { + return new MapLoadTask(this,this.method_105); + } + + private function method_107(param1:Event) : void + { + this.var_34 = null; + dispatchEvent(new Event(Event.COMPLETE)); + } + + private function method_105(param1:ByteArray) : void + { + var _loc2_:name_171 = new name_171(param1); + this.mapData = new name_55(_loc2_.data); + } + + private function method_104() : void + { + var _loc1_:XML = null; + for each(_loc1_ in this.var_35.kernelOptions.option) + { + this.var_36[_loc1_.@name] = _loc1_.toString(); + } + } + } +} + +import flash.events.Event; +import flash.events.EventDispatcher; +import flash.net.URLLoader; +import flash.net.URLLoaderDataFormat; +import flash.net.URLRequest; +import flash.utils.ByteArray; +import package_40.class_7; + +class ConfigXMLLoader extends class_7 +{ + private var config:name_18; + + private var loader:URLLoader; + + private var url:String; + + public function ConfigXMLLoader(param1:String, param2:name_18) + { + super(); + this.url = param1; + this.config = param2; + } + + override public function run() : void + { + this.loader = new URLLoader(); + this.loader.addEventListener(Event.COMPLETE,this.onLoadingComplete); + this.loader.load(new URLRequest(this.url)); + } + + private function onLoadingComplete(param1:Event) : void + { + this.config.xml = XML(this.loader.data); + this.loader = null; + method_102(); + } +} + +class MapLoadTask extends class_7 +{ + private var callback:Function; + + private var config:name_18; + + private var loader:URLLoader; + + public function MapLoadTask(param1:name_18, param2:Function) + { + super(); + this.config = param1; + this.callback = param2; + } + + override public function run() : void + { + this.loader = new URLLoader(); + this.loader.dataFormat = URLLoaderDataFormat.BINARY; + this.loader.addEventListener(Event.COMPLETE,this.onLoadingComplete); + this.loader.load(new URLRequest(this.config.xml.map.@url)); + } + + private function onLoadingComplete(param1:Event) : void + { + this.callback.call(null,ByteArray(this.loader.data)); + this.loader = null; + method_102(); + } +} diff --git a/src/package_13/name_459.as b/src/package_13/name_459.as new file mode 100644 index 0000000..77fb9a1 --- /dev/null +++ b/src/package_13/name_459.as @@ -0,0 +1,20 @@ +package package_13 +{ + public class name_459 + { + public function name_459() + { + super(); + } + + public static function name_460(param1:String) : String + { + if(Boolean(param1) && param1.charAt(param1.length - 1) != "/") + { + return param1 + "/"; + } + return param1; + } + } +} + diff --git a/src/package_13/name_58.as b/src/package_13/name_58.as new file mode 100644 index 0000000..730bf1f --- /dev/null +++ b/src/package_13/name_58.as @@ -0,0 +1,37 @@ +package package_13 +{ + import flash.utils.ByteArray; + + public class name_58 + { + private var blobs:Object; + + public function name_58() + { + super(); + this.blobs = new Object(); + } + + public function get method_219() : Vector. + { + var _loc2_:String = null; + var _loc1_:Vector. = new Vector.(); + for(_loc2_ in this.blobs) + { + _loc1_.push(_loc2_); + } + return _loc1_; + } + + public function name_65(param1:String) : ByteArray + { + return this.blobs[param1]; + } + + public function method_218(param1:String, param2:ByteArray) : void + { + this.blobs[param1] = param2; + } + } +} + diff --git a/src/package_13/name_70.as b/src/package_13/name_70.as new file mode 100644 index 0000000..8a58d97 --- /dev/null +++ b/src/package_13/name_70.as @@ -0,0 +1,35 @@ +package package_13 +{ + public class name_70 + { + private var groups:Object; + + public function name_70() + { + super(); + this.groups = new Object(); + } + + public function get method_215() : Vector. + { + var _loc2_:String = null; + var _loc1_:Vector. = new Vector.(); + for(_loc2_ in this.groups) + { + _loc1_.push(_loc2_); + } + return _loc1_; + } + + public function name_62(param1:String) : name_58 + { + return this.groups[param1]; + } + + public function method_214(param1:String, param2:name_58) : void + { + this.groups[param1] = param2; + } + } +} + diff --git a/src/package_14/name_21.as b/src/package_14/name_21.as new file mode 100644 index 0000000..7cc9c90 --- /dev/null +++ b/src/package_14/name_21.as @@ -0,0 +1,1047 @@ +package package_14 +{ + import package_31.class_6; + import package_32.name_148; + import package_32.name_149; + import package_32.name_209; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_48.A3D2AmbientLight; + import package_48.A3D2Box; + import package_48.A3D2Decal; + import package_48.A3D2DirectionalLight; + import package_48.A3D2Joint; + import package_48.A3D2JointBindTransform; + import package_48.A3D2Mesh; + import package_48.A3D2Object; + import package_48.A3D2OmniLight; + import package_48.A3D2Skin; + import package_48.A3D2SpotLight; + import package_48.A3D2Sprite; + import package_48.A3D2Surface; + import package_48.A3D2Transform; + import package_49.CodecA3D2AmbientLight; + import package_49.CodecA3D2Box; + import package_49.CodecA3D2Decal; + import package_49.CodecA3D2DirectionalLight; + import package_49.CodecA3D2Joint; + import package_49.CodecA3D2JointBindTransform; + import package_49.CodecA3D2Mesh; + import package_49.CodecA3D2Object; + import package_49.CodecA3D2OmniLight; + import package_49.CodecA3D2Skin; + import package_49.CodecA3D2SpotLight; + import package_49.CodecA3D2Sprite; + import package_49.CodecA3D2Surface; + import package_49.CodecA3D2Transform; + import package_49.VectorCodecA3D2AmbientLightLevel1; + import package_49.VectorCodecA3D2AmbientLightLevel2; + import package_49.VectorCodecA3D2AmbientLightLevel3; + import package_49.VectorCodecA3D2BoxLevel1; + import package_49.VectorCodecA3D2BoxLevel2; + import package_49.VectorCodecA3D2BoxLevel3; + import package_49.VectorCodecA3D2DecalLevel1; + import package_49.VectorCodecA3D2DecalLevel2; + import package_49.VectorCodecA3D2DecalLevel3; + import package_49.VectorCodecA3D2DirectionalLightLevel1; + import package_49.VectorCodecA3D2DirectionalLightLevel2; + import package_49.VectorCodecA3D2DirectionalLightLevel3; + import package_49.VectorCodecA3D2JointBindTransformLevel1; + import package_49.VectorCodecA3D2JointBindTransformLevel2; + import package_49.VectorCodecA3D2JointBindTransformLevel3; + import package_49.VectorCodecA3D2JointLevel1; + import package_49.VectorCodecA3D2JointLevel2; + import package_49.VectorCodecA3D2JointLevel3; + import package_49.VectorCodecA3D2MeshLevel1; + import package_49.VectorCodecA3D2MeshLevel2; + import package_49.VectorCodecA3D2MeshLevel3; + import package_49.VectorCodecA3D2ObjectLevel1; + import package_49.VectorCodecA3D2ObjectLevel2; + import package_49.VectorCodecA3D2ObjectLevel3; + import package_49.VectorCodecA3D2OmniLightLevel1; + import package_49.VectorCodecA3D2OmniLightLevel2; + import package_49.VectorCodecA3D2OmniLightLevel3; + import package_49.VectorCodecA3D2SkinLevel1; + import package_49.VectorCodecA3D2SkinLevel2; + import package_49.VectorCodecA3D2SkinLevel3; + import package_49.VectorCodecA3D2SpotLightLevel1; + import package_49.VectorCodecA3D2SpotLightLevel2; + import package_49.VectorCodecA3D2SpotLightLevel3; + import package_49.VectorCodecA3D2SpriteLevel1; + import package_49.VectorCodecA3D2SpriteLevel2; + import package_49.VectorCodecA3D2SpriteLevel3; + import package_49.VectorCodecA3D2SurfaceLevel1; + import package_49.VectorCodecA3D2SurfaceLevel2; + import package_49.VectorCodecA3D2SurfaceLevel3; + import package_49.VectorCodecA3D2TransformLevel1; + import package_49.VectorCodecA3D2TransformLevel2; + import package_49.VectorCodecA3D2TransformLevel3; + import package_5.name_3; + import package_50.A3DBox; + import package_50.A3DObject; + import package_50.A3DSurface; + import package_50.A3DTransformation; + import package_51.A3D2CubeMap; + import package_51.A3D2Image; + import package_51.A3D2Map; + import package_51.A3D2Material; + import package_52.A3D2IndexBuffer; + import package_52.A3D2VertexAttributes; + import package_52.A3D2VertexBuffer; + import package_53.A3DImage; + import package_53.A3DMap; + import package_53.A3DMaterial; + import package_54.A3DGeometry; + import package_54.A3DIndexBuffer; + import package_54.A3DVertexBuffer; + import package_55.A3D2AnimationClip; + import package_55.A3D2Keyframe; + import package_55.A3D2Track; + import package_56.CodecA3DBox; + import package_56.CodecA3DObject; + import package_56.CodecA3DSurface; + import package_56.CodecA3DTransformation; + import package_56.VectorCodecA3DBoxLevel1; + import package_56.VectorCodecA3DBoxLevel2; + import package_56.VectorCodecA3DBoxLevel3; + import package_56.VectorCodecA3DObjectLevel1; + import package_56.VectorCodecA3DObjectLevel2; + import package_56.VectorCodecA3DObjectLevel3; + import package_56.VectorCodecA3DSurfaceLevel1; + import package_56.VectorCodecA3DSurfaceLevel2; + import package_56.VectorCodecA3DSurfaceLevel3; + import package_56.VectorCodecA3DTransformationLevel1; + import package_56.VectorCodecA3DTransformationLevel2; + import package_56.VectorCodecA3DTransformationLevel3; + import package_57.name_213; + import package_57.name_214; + import package_58.CodecA3D2CubeMap; + import package_58.CodecA3D2Image; + import package_58.CodecA3D2Map; + import package_58.CodecA3D2Material; + import package_58.VectorCodecA3D2CubeMapLevel1; + import package_58.VectorCodecA3D2CubeMapLevel2; + import package_58.VectorCodecA3D2CubeMapLevel3; + import package_58.VectorCodecA3D2ImageLevel1; + import package_58.VectorCodecA3D2ImageLevel2; + import package_58.VectorCodecA3D2ImageLevel3; + import package_58.VectorCodecA3D2MapLevel1; + import package_58.VectorCodecA3D2MapLevel2; + import package_58.VectorCodecA3D2MapLevel3; + import package_58.VectorCodecA3D2MaterialLevel1; + import package_58.VectorCodecA3D2MaterialLevel2; + import package_58.VectorCodecA3D2MaterialLevel3; + import package_59.CodecA3DImage; + import package_59.CodecA3DMap; + import package_59.CodecA3DMaterial; + import package_59.VectorCodecA3DImageLevel1; + import package_59.VectorCodecA3DImageLevel2; + import package_59.VectorCodecA3DImageLevel3; + import package_59.VectorCodecA3DMapLevel1; + import package_59.VectorCodecA3DMapLevel2; + import package_59.VectorCodecA3DMapLevel3; + import package_59.VectorCodecA3DMaterialLevel1; + import package_59.VectorCodecA3DMaterialLevel2; + import package_59.VectorCodecA3DMaterialLevel3; + import package_60.CodecA3D2IndexBuffer; + import package_60.CodecA3D2VertexAttributes; + import package_60.CodecA3D2VertexBuffer; + import package_60.VectorCodecA3D2IndexBufferLevel1; + import package_60.VectorCodecA3D2IndexBufferLevel2; + import package_60.VectorCodecA3D2IndexBufferLevel3; + import package_60.VectorCodecA3D2VertexAttributesLevel1; + import package_60.VectorCodecA3D2VertexAttributesLevel2; + import package_60.VectorCodecA3D2VertexAttributesLevel3; + import package_60.VectorCodecA3D2VertexBufferLevel1; + import package_60.VectorCodecA3D2VertexBufferLevel2; + import package_60.VectorCodecA3D2VertexBufferLevel3; + import package_61.CodecA3D2AnimationClip; + import package_61.CodecA3D2Keyframe; + import package_61.CodecA3D2Track; + import package_61.VectorCodecA3D2AnimationClipLevel1; + import package_61.VectorCodecA3D2AnimationClipLevel2; + import package_61.VectorCodecA3D2AnimationClipLevel3; + import package_61.VectorCodecA3D2KeyframeLevel1; + import package_61.VectorCodecA3D2KeyframeLevel2; + import package_61.VectorCodecA3D2KeyframeLevel3; + import package_61.VectorCodecA3D2TrackLevel1; + import package_61.VectorCodecA3D2TrackLevel2; + import package_61.VectorCodecA3D2TrackLevel3; + import package_62.CodecA3DGeometry; + import package_62.CodecA3DIndexBuffer; + import package_62.CodecA3DVertexBuffer; + import package_62.VectorCodecA3DGeometryLevel1; + import package_62.VectorCodecA3DGeometryLevel2; + import package_62.VectorCodecA3DGeometryLevel3; + import package_62.VectorCodecA3DIndexBufferLevel1; + import package_62.VectorCodecA3DIndexBufferLevel2; + import package_62.VectorCodecA3DIndexBufferLevel3; + import package_62.VectorCodecA3DVertexBufferLevel1; + import package_62.VectorCodecA3DVertexBufferLevel2; + import package_62.VectorCodecA3DVertexBufferLevel3; + import package_63.VectorCodecA3DMatrixLevel1; + import package_63.VectorCodecA3DMatrixLevel2; + import package_63.VectorCodecA3DMatrixLevel3; + import package_63.VectorCodecIdLevel1; + import package_63.VectorCodecIdLevel2; + import package_63.VectorCodecIdLevel3; + import package_63.name_216; + import package_63.name_217; + import package_64.name_212; + import package_65.name_210; + import package_66.name_211; + import package_67.VectorCodecA3DLevel1; + import package_67.VectorCodecA3DLevel2; + import package_67.VectorCodecA3DLevel3; + import package_67.name_219; + import package_68.VectorCodecA3D2Level1; + import package_68.VectorCodecA3D2Level2; + import package_68.VectorCodecA3D2Level3; + import package_68.name_218; + import package_69.VectorCodecParentIdLevel1; + import package_69.VectorCodecParentIdLevel2; + import package_69.VectorCodecParentIdLevel3; + import package_69.name_215; + + public class name_21 implements class_6 + { + public static var osgi:name_3; + + public function name_21() + { + super(); + } + + public function start(_osgi:name_3) : void + { + var codec:name_152 = null; + osgi = _osgi; + var protocol:name_163 = name_163(osgi.name_30(name_163)); + codec = new CodecA3DImage(); + protocol.name_151(new name_148(A3DImage,false),codec); + protocol.name_151(new name_148(A3DImage,true),new name_150(codec)); + codec = new CodecA3DVertexBuffer(); + protocol.name_151(new name_148(A3DVertexBuffer,false),codec); + protocol.name_151(new name_148(A3DVertexBuffer,true),new name_150(codec)); + codec = new CodecA3DGeometry(); + protocol.name_151(new name_148(A3DGeometry,false),codec); + protocol.name_151(new name_148(A3DGeometry,true),new name_150(codec)); + codec = new CodecA3D2AmbientLight(); + protocol.name_151(new name_148(A3D2AmbientLight,false),codec); + protocol.name_151(new name_148(A3D2AmbientLight,true),new name_150(codec)); + codec = new CodecA3D2VertexBuffer(); + protocol.name_151(new name_148(A3D2VertexBuffer,false),codec); + protocol.name_151(new name_148(A3D2VertexBuffer,true),new name_150(codec)); + codec = new CodecA3D2Object(); + protocol.name_151(new name_148(A3D2Object,false),codec); + protocol.name_151(new name_148(A3D2Object,true),new name_150(codec)); + codec = new CodecA3D2IndexBuffer(); + protocol.name_151(new name_148(A3D2IndexBuffer,false),codec); + protocol.name_151(new name_148(A3D2IndexBuffer,true),new name_150(codec)); + codec = new CodecA3D2SpotLight(); + protocol.name_151(new name_148(A3D2SpotLight,false),codec); + protocol.name_151(new name_148(A3D2SpotLight,true),new name_150(codec)); + codec = new name_218(); + protocol.name_151(new name_148(name_211,false),codec); + protocol.name_151(new name_148(name_211,true),new name_150(codec)); + codec = new CodecA3DSurface(); + protocol.name_151(new name_148(A3DSurface,false),codec); + protocol.name_151(new name_148(A3DSurface,true),new name_150(codec)); + codec = new name_216(); + protocol.name_151(new name_148(name_213,false),codec); + protocol.name_151(new name_148(name_213,true),new name_150(codec)); + codec = new name_215(); + protocol.name_151(new name_148(name_212,false),codec); + protocol.name_151(new name_148(name_212,true),new name_150(codec)); + codec = new CodecA3D2Map(); + protocol.name_151(new name_148(A3D2Map,false),codec); + protocol.name_151(new name_148(A3D2Map,true),new name_150(codec)); + codec = new CodecA3DIndexBuffer(); + protocol.name_151(new name_148(A3DIndexBuffer,false),codec); + protocol.name_151(new name_148(A3DIndexBuffer,true),new name_150(codec)); + codec = new CodecA3DMaterial(); + protocol.name_151(new name_148(A3DMaterial,false),codec); + protocol.name_151(new name_148(A3DMaterial,true),new name_150(codec)); + codec = new CodecA3D2DirectionalLight(); + protocol.name_151(new name_148(A3D2DirectionalLight,false),codec); + protocol.name_151(new name_148(A3D2DirectionalLight,true),new name_150(codec)); + codec = new CodecA3D2Image(); + protocol.name_151(new name_148(A3D2Image,false),codec); + protocol.name_151(new name_148(A3D2Image,true),new name_150(codec)); + codec = new CodecA3D2Material(); + protocol.name_151(new name_148(A3D2Material,false),codec); + protocol.name_151(new name_148(A3D2Material,true),new name_150(codec)); + codec = new CodecA3D2Sprite(); + protocol.name_151(new name_148(A3D2Sprite,false),codec); + protocol.name_151(new name_148(A3D2Sprite,true),new name_150(codec)); + codec = new name_217(); + protocol.name_151(new name_148(name_214,false),codec); + protocol.name_151(new name_148(name_214,true),new name_150(codec)); + codec = new CodecA3D2Decal(); + protocol.name_151(new name_148(A3D2Decal,false),codec); + protocol.name_151(new name_148(A3D2Decal,true),new name_150(codec)); + codec = new CodecA3D2Box(); + protocol.name_151(new name_148(A3D2Box,false),codec); + protocol.name_151(new name_148(A3D2Box,true),new name_150(codec)); + codec = new CodecA3DObject(); + protocol.name_151(new name_148(A3DObject,false),codec); + protocol.name_151(new name_148(A3DObject,true),new name_150(codec)); + codec = new CodecA3D2Keyframe(); + protocol.name_151(new name_148(A3D2Keyframe,false),codec); + protocol.name_151(new name_148(A3D2Keyframe,true),new name_150(codec)); + codec = new CodecA3D2OmniLight(); + protocol.name_151(new name_148(A3D2OmniLight,false),codec); + protocol.name_151(new name_148(A3D2OmniLight,true),new name_150(codec)); + codec = new CodecA3D2Mesh(); + protocol.name_151(new name_148(A3D2Mesh,false),codec); + protocol.name_151(new name_148(A3D2Mesh,true),new name_150(codec)); + codec = new CodecA3D2Surface(); + protocol.name_151(new name_148(A3D2Surface,false),codec); + protocol.name_151(new name_148(A3D2Surface,true),new name_150(codec)); + codec = new CodecA3DBox(); + protocol.name_151(new name_148(A3DBox,false),codec); + protocol.name_151(new name_148(A3DBox,true),new name_150(codec)); + codec = new CodecA3D2CubeMap(); + protocol.name_151(new name_148(A3D2CubeMap,false),codec); + protocol.name_151(new name_148(A3D2CubeMap,true),new name_150(codec)); + codec = new CodecA3D2Transform(); + protocol.name_151(new name_148(A3D2Transform,false),codec); + protocol.name_151(new name_148(A3D2Transform,true),new name_150(codec)); + codec = new CodecA3D2Skin(); + protocol.name_151(new name_148(A3D2Skin,false),codec); + protocol.name_151(new name_148(A3D2Skin,true),new name_150(codec)); + codec = new CodecA3D2JointBindTransform(); + protocol.name_151(new name_148(A3D2JointBindTransform,false),codec); + protocol.name_151(new name_148(A3D2JointBindTransform,true),new name_150(codec)); + codec = new CodecA3D2Joint(); + protocol.name_151(new name_148(A3D2Joint,false),codec); + protocol.name_151(new name_148(A3D2Joint,true),new name_150(codec)); + codec = new CodecA3DTransformation(); + protocol.name_151(new name_148(A3DTransformation,false),codec); + protocol.name_151(new name_148(A3DTransformation,true),new name_150(codec)); + codec = new CodecA3D2Track(); + protocol.name_151(new name_148(A3D2Track,false),codec); + protocol.name_151(new name_148(A3D2Track,true),new name_150(codec)); + codec = new CodecA3D2AnimationClip(); + protocol.name_151(new name_148(A3D2AnimationClip,false),codec); + protocol.name_151(new name_148(A3D2AnimationClip,true),new name_150(codec)); + codec = new name_219(); + protocol.name_151(new name_148(name_210,false),codec); + protocol.name_151(new name_148(name_210,true),new name_150(codec)); + codec = new CodecA3D2VertexAttributes(); + protocol.name_151(new name_209(A3D2VertexAttributes,false),codec); + protocol.name_151(new name_209(A3D2VertexAttributes,true),new name_150(codec)); + codec = new CodecA3DMap(); + protocol.name_151(new name_148(A3DMap,false),codec); + protocol.name_151(new name_148(A3DMap,true),new name_150(codec)); + codec = new VectorCodecA3D2DecalLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Decal,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Decal,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2DecalLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Decal,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Decal,true),true,3),new name_150(codec)); + codec = new VectorCodecA3DVertexBufferLevel1(false); + protocol.name_151(new name_149(new name_148(A3DVertexBuffer,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DVertexBuffer,false),true,1),new name_150(codec)); + codec = new VectorCodecA3DVertexBufferLevel1(true); + protocol.name_151(new name_149(new name_148(A3DVertexBuffer,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DVertexBuffer,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2DirectionalLightLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2DirectionalLight,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2DirectionalLight,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2DirectionalLightLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2DirectionalLight,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2DirectionalLight,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2DirectionalLightLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2DirectionalLight,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2DirectionalLight,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2DirectionalLightLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2DirectionalLight,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2DirectionalLight,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2JointBindTransformLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2JointBindTransform,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2JointBindTransform,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2JointBindTransformLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2JointBindTransform,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2JointBindTransform,true),true,3),new name_150(codec)); + codec = new VectorCodecA3DObjectLevel3(false); + protocol.name_151(new name_149(new name_148(A3DObject,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DObject,false),true,3),new name_150(codec)); + codec = new VectorCodecA3DObjectLevel3(true); + protocol.name_151(new name_149(new name_148(A3DObject,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DObject,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2IndexBufferLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2IndexBuffer,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2IndexBuffer,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2IndexBufferLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2IndexBuffer,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2IndexBuffer,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2VertexBufferLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2VertexBuffer,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2VertexBuffer,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2VertexBufferLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2VertexBuffer,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2VertexBuffer,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DBoxLevel1(false); + protocol.name_151(new name_149(new name_148(A3DBox,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DBox,false),true,1),new name_150(codec)); + codec = new VectorCodecA3DBoxLevel1(true); + protocol.name_151(new name_149(new name_148(A3DBox,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DBox,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DMaterialLevel1(false); + protocol.name_151(new name_149(new name_148(A3DMaterial,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DMaterial,false),true,1),new name_150(codec)); + codec = new VectorCodecA3DMaterialLevel1(true); + protocol.name_151(new name_149(new name_148(A3DMaterial,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DMaterial,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2OmniLightLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2OmniLight,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2OmniLight,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2OmniLightLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2OmniLight,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2OmniLight,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2MapLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Map,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Map,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2MapLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Map,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Map,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DVertexBufferLevel3(false); + protocol.name_151(new name_149(new name_148(A3DVertexBuffer,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DVertexBuffer,false),true,3),new name_150(codec)); + codec = new VectorCodecA3DVertexBufferLevel3(true); + protocol.name_151(new name_149(new name_148(A3DVertexBuffer,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DVertexBuffer,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2Level2(false); + protocol.name_151(new name_149(new name_148(name_211,false),false,2),codec); + protocol.name_151(new name_149(new name_148(name_211,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2Level2(true); + protocol.name_151(new name_149(new name_148(name_211,true),false,2),codec); + protocol.name_151(new name_149(new name_148(name_211,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2AnimationClipLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2AnimationClip,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2AnimationClip,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2AnimationClipLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2AnimationClip,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2AnimationClip,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2VertexAttributesLevel1(false); + protocol.name_151(new name_149(new name_209(A3D2VertexAttributes,false),false,1),codec); + protocol.name_151(new name_149(new name_209(A3D2VertexAttributes,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2VertexAttributesLevel1(true); + protocol.name_151(new name_149(new name_209(A3D2VertexAttributes,true),false,1),codec); + protocol.name_151(new name_149(new name_209(A3D2VertexAttributes,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DGeometryLevel1(false); + protocol.name_151(new name_149(new name_148(A3DGeometry,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DGeometry,false),true,1),new name_150(codec)); + codec = new VectorCodecA3DGeometryLevel1(true); + protocol.name_151(new name_149(new name_148(A3DGeometry,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DGeometry,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2SkinLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Skin,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Skin,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2SkinLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Skin,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Skin,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2OmniLightLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2OmniLight,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2OmniLight,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2OmniLightLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2OmniLight,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2OmniLight,true),true,2),new name_150(codec)); + codec = new VectorCodecParentIdLevel2(false); + protocol.name_151(new name_149(new name_148(name_212,false),false,2),codec); + protocol.name_151(new name_149(new name_148(name_212,false),true,2),new name_150(codec)); + codec = new VectorCodecParentIdLevel2(true); + protocol.name_151(new name_149(new name_148(name_212,true),false,2),codec); + protocol.name_151(new name_149(new name_148(name_212,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2MapLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Map,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Map,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2MapLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Map,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Map,true),true,3),new name_150(codec)); + codec = new VectorCodecIdLevel3(false); + protocol.name_151(new name_149(new name_148(name_213,false),false,3),codec); + protocol.name_151(new name_149(new name_148(name_213,false),true,3),new name_150(codec)); + codec = new VectorCodecIdLevel3(true); + protocol.name_151(new name_149(new name_148(name_213,true),false,3),codec); + protocol.name_151(new name_149(new name_148(name_213,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2DirectionalLightLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2DirectionalLight,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2DirectionalLight,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2DirectionalLightLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2DirectionalLight,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2DirectionalLight,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2MeshLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Mesh,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Mesh,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2MeshLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Mesh,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Mesh,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2DecalLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Decal,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Decal,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2DecalLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Decal,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Decal,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2MeshLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Mesh,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Mesh,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2MeshLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Mesh,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Mesh,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2MeshLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Mesh,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Mesh,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2MeshLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Mesh,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Mesh,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DSurfaceLevel3(false); + protocol.name_151(new name_149(new name_148(A3DSurface,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DSurface,false),true,3),new name_150(codec)); + codec = new VectorCodecA3DSurfaceLevel3(true); + protocol.name_151(new name_149(new name_148(A3DSurface,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DSurface,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2JointLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Joint,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Joint,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2JointLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Joint,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Joint,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DMatrixLevel2(false); + protocol.name_151(new name_149(new name_148(name_214,false),false,2),codec); + protocol.name_151(new name_149(new name_148(name_214,false),true,2),new name_150(codec)); + codec = new VectorCodecA3DMatrixLevel2(true); + protocol.name_151(new name_149(new name_148(name_214,true),false,2),codec); + protocol.name_151(new name_149(new name_148(name_214,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2IndexBufferLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2IndexBuffer,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2IndexBuffer,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2IndexBufferLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2IndexBuffer,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2IndexBuffer,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2SurfaceLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Surface,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Surface,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2SurfaceLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Surface,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Surface,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2JointLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Joint,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Joint,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2JointLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Joint,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Joint,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2JointLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Joint,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Joint,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2JointLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Joint,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Joint,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2BoxLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Box,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Box,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2BoxLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Box,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Box,true),true,3),new name_150(codec)); + codec = new VectorCodecA3DTransformationLevel2(false); + protocol.name_151(new name_149(new name_148(A3DTransformation,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DTransformation,false),true,2),new name_150(codec)); + codec = new VectorCodecA3DTransformationLevel2(true); + protocol.name_151(new name_149(new name_148(A3DTransformation,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DTransformation,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2AnimationClipLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2AnimationClip,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2AnimationClip,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2AnimationClipLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2AnimationClip,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2AnimationClip,true),true,2),new name_150(codec)); + codec = new VectorCodecA3DTransformationLevel1(false); + protocol.name_151(new name_149(new name_148(A3DTransformation,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DTransformation,false),true,1),new name_150(codec)); + codec = new VectorCodecA3DTransformationLevel1(true); + protocol.name_151(new name_149(new name_148(A3DTransformation,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DTransformation,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DMatrixLevel3(false); + protocol.name_151(new name_149(new name_148(name_214,false),false,3),codec); + protocol.name_151(new name_149(new name_148(name_214,false),true,3),new name_150(codec)); + codec = new VectorCodecA3DMatrixLevel3(true); + protocol.name_151(new name_149(new name_148(name_214,true),false,3),codec); + protocol.name_151(new name_149(new name_148(name_214,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2JointBindTransformLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2JointBindTransform,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2JointBindTransform,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2JointBindTransformLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2JointBindTransform,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2JointBindTransform,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2ObjectLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Object,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Object,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2ObjectLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Object,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Object,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2SpriteLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Sprite,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Sprite,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2SpriteLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Sprite,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Sprite,true),true,2),new name_150(codec)); + codec = new VectorCodecA3DBoxLevel2(false); + protocol.name_151(new name_149(new name_148(A3DBox,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DBox,false),true,2),new name_150(codec)); + codec = new VectorCodecA3DBoxLevel2(true); + protocol.name_151(new name_149(new name_148(A3DBox,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DBox,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2VertexBufferLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2VertexBuffer,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2VertexBuffer,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2VertexBufferLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2VertexBuffer,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2VertexBuffer,true),true,3),new name_150(codec)); + codec = new VectorCodecParentIdLevel1(false); + protocol.name_151(new name_149(new name_148(name_212,false),false,1),codec); + protocol.name_151(new name_149(new name_148(name_212,false),true,1),new name_150(codec)); + codec = new VectorCodecParentIdLevel1(true); + protocol.name_151(new name_149(new name_148(name_212,true),false,1),codec); + protocol.name_151(new name_149(new name_148(name_212,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DMaterialLevel2(false); + protocol.name_151(new name_149(new name_148(A3DMaterial,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DMaterial,false),true,2),new name_150(codec)); + codec = new VectorCodecA3DMaterialLevel2(true); + protocol.name_151(new name_149(new name_148(A3DMaterial,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DMaterial,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2TrackLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Track,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Track,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2TrackLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Track,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Track,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2AmbientLightLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2AmbientLight,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2AmbientLight,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2AmbientLightLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2AmbientLight,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2AmbientLight,true),true,3),new name_150(codec)); + codec = new VectorCodecA3DMapLevel3(false); + protocol.name_151(new name_149(new name_148(A3DMap,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DMap,false),true,3),new name_150(codec)); + codec = new VectorCodecA3DMapLevel3(true); + protocol.name_151(new name_149(new name_148(A3DMap,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DMap,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2ImageLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Image,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Image,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2ImageLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Image,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Image,true),true,2),new name_150(codec)); + codec = new VectorCodecA3DGeometryLevel2(false); + protocol.name_151(new name_149(new name_148(A3DGeometry,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DGeometry,false),true,2),new name_150(codec)); + codec = new VectorCodecA3DGeometryLevel2(true); + protocol.name_151(new name_149(new name_148(A3DGeometry,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DGeometry,true),true,2),new name_150(codec)); + codec = new VectorCodecA3DMapLevel1(false); + protocol.name_151(new name_149(new name_148(A3DMap,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DMap,false),true,1),new name_150(codec)); + codec = new VectorCodecA3DMapLevel1(true); + protocol.name_151(new name_149(new name_148(A3DMap,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DMap,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2JointBindTransformLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2JointBindTransform,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2JointBindTransform,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2JointBindTransformLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2JointBindTransform,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2JointBindTransform,true),true,2),new name_150(codec)); + codec = new VectorCodecA3DSurfaceLevel1(false); + protocol.name_151(new name_149(new name_148(A3DSurface,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DSurface,false),true,1),new name_150(codec)); + codec = new VectorCodecA3DSurfaceLevel1(true); + protocol.name_151(new name_149(new name_148(A3DSurface,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DSurface,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2SurfaceLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Surface,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Surface,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2SurfaceLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Surface,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Surface,true),true,2),new name_150(codec)); + codec = new VectorCodecA3DIndexBufferLevel3(false); + protocol.name_151(new name_149(new name_148(A3DIndexBuffer,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DIndexBuffer,false),true,3),new name_150(codec)); + codec = new VectorCodecA3DIndexBufferLevel3(true); + protocol.name_151(new name_149(new name_148(A3DIndexBuffer,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DIndexBuffer,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2AnimationClipLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2AnimationClip,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2AnimationClip,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2AnimationClipLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2AnimationClip,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2AnimationClip,true),true,3),new name_150(codec)); + codec = new VectorCodecA3DIndexBufferLevel2(false); + protocol.name_151(new name_149(new name_148(A3DIndexBuffer,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DIndexBuffer,false),true,2),new name_150(codec)); + codec = new VectorCodecA3DIndexBufferLevel2(true); + protocol.name_151(new name_149(new name_148(A3DIndexBuffer,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DIndexBuffer,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2SpotLightLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2SpotLight,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2SpotLight,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2SpotLightLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2SpotLight,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2SpotLight,true),true,2),new name_150(codec)); + codec = new VectorCodecA3DVertexBufferLevel2(false); + protocol.name_151(new name_149(new name_148(A3DVertexBuffer,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DVertexBuffer,false),true,2),new name_150(codec)); + codec = new VectorCodecA3DVertexBufferLevel2(true); + protocol.name_151(new name_149(new name_148(A3DVertexBuffer,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DVertexBuffer,true),true,2),new name_150(codec)); + codec = new VectorCodecA3DMapLevel2(false); + protocol.name_151(new name_149(new name_148(A3DMap,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DMap,false),true,2),new name_150(codec)); + codec = new VectorCodecA3DMapLevel2(true); + protocol.name_151(new name_149(new name_148(A3DMap,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DMap,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2SpotLightLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2SpotLight,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2SpotLight,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2SpotLightLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2SpotLight,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2SpotLight,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2DecalLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Decal,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Decal,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2DecalLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Decal,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Decal,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DBoxLevel3(false); + protocol.name_151(new name_149(new name_148(A3DBox,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DBox,false),true,3),new name_150(codec)); + codec = new VectorCodecA3DBoxLevel3(true); + protocol.name_151(new name_149(new name_148(A3DBox,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DBox,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2ObjectLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Object,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Object,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2ObjectLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Object,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Object,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2TrackLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Track,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Track,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2TrackLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Track,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Track,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2CubeMapLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2CubeMap,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2CubeMap,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2CubeMapLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2CubeMap,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2CubeMap,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DGeometryLevel3(false); + protocol.name_151(new name_149(new name_148(A3DGeometry,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DGeometry,false),true,3),new name_150(codec)); + codec = new VectorCodecA3DGeometryLevel3(true); + protocol.name_151(new name_149(new name_148(A3DGeometry,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DGeometry,true),true,3),new name_150(codec)); + codec = new VectorCodecA3DMatrixLevel1(false); + protocol.name_151(new name_149(new name_148(name_214,false),false,1),codec); + protocol.name_151(new name_149(new name_148(name_214,false),true,1),new name_150(codec)); + codec = new VectorCodecA3DMatrixLevel1(true); + protocol.name_151(new name_149(new name_148(name_214,true),false,1),codec); + protocol.name_151(new name_149(new name_148(name_214,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2SkinLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Skin,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Skin,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2SkinLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Skin,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Skin,true),true,2),new name_150(codec)); + codec = new VectorCodecA3DImageLevel3(false); + protocol.name_151(new name_149(new name_148(A3DImage,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DImage,false),true,3),new name_150(codec)); + codec = new VectorCodecA3DImageLevel3(true); + protocol.name_151(new name_149(new name_148(A3DImage,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DImage,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2OmniLightLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2OmniLight,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2OmniLight,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2OmniLightLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2OmniLight,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2OmniLight,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2SpotLightLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2SpotLight,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2SpotLight,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2SpotLightLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2SpotLight,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2SpotLight,true),true,3),new name_150(codec)); + codec = new VectorCodecA3DImageLevel1(false); + protocol.name_151(new name_149(new name_148(A3DImage,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DImage,false),true,1),new name_150(codec)); + codec = new VectorCodecA3DImageLevel1(true); + protocol.name_151(new name_149(new name_148(A3DImage,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DImage,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DSurfaceLevel2(false); + protocol.name_151(new name_149(new name_148(A3DSurface,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DSurface,false),true,2),new name_150(codec)); + codec = new VectorCodecA3DSurfaceLevel2(true); + protocol.name_151(new name_149(new name_148(A3DSurface,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DSurface,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2KeyframeLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Keyframe,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Keyframe,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2KeyframeLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Keyframe,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Keyframe,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2IndexBufferLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2IndexBuffer,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2IndexBuffer,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2IndexBufferLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2IndexBuffer,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2IndexBuffer,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2KeyframeLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Keyframe,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Keyframe,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2KeyframeLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Keyframe,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Keyframe,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2TransformLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Transform,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Transform,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2TransformLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Transform,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Transform,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DLevel2(false); + protocol.name_151(new name_149(new name_148(name_210,false),false,2),codec); + protocol.name_151(new name_149(new name_148(name_210,false),true,2),new name_150(codec)); + codec = new VectorCodecA3DLevel2(true); + protocol.name_151(new name_149(new name_148(name_210,true),false,2),codec); + protocol.name_151(new name_149(new name_148(name_210,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2AmbientLightLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2AmbientLight,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2AmbientLight,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2AmbientLightLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2AmbientLight,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2AmbientLight,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2VertexAttributesLevel3(false); + protocol.name_151(new name_149(new name_209(A3D2VertexAttributes,false),false,3),codec); + protocol.name_151(new name_149(new name_209(A3D2VertexAttributes,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2VertexAttributesLevel3(true); + protocol.name_151(new name_149(new name_209(A3D2VertexAttributes,true),false,3),codec); + protocol.name_151(new name_149(new name_209(A3D2VertexAttributes,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2SpriteLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Sprite,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Sprite,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2SpriteLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Sprite,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Sprite,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DImageLevel2(false); + protocol.name_151(new name_149(new name_148(A3DImage,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DImage,false),true,2),new name_150(codec)); + codec = new VectorCodecA3DImageLevel2(true); + protocol.name_151(new name_149(new name_148(A3DImage,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DImage,true),true,2),new name_150(codec)); + codec = new VectorCodecA3DIndexBufferLevel1(false); + protocol.name_151(new name_149(new name_148(A3DIndexBuffer,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DIndexBuffer,false),true,1),new name_150(codec)); + codec = new VectorCodecA3DIndexBufferLevel1(true); + protocol.name_151(new name_149(new name_148(A3DIndexBuffer,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DIndexBuffer,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2VertexAttributesLevel2(false); + protocol.name_151(new name_149(new name_209(A3D2VertexAttributes,false),false,2),codec); + protocol.name_151(new name_149(new name_209(A3D2VertexAttributes,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2VertexAttributesLevel2(true); + protocol.name_151(new name_149(new name_209(A3D2VertexAttributes,true),false,2),codec); + protocol.name_151(new name_149(new name_209(A3D2VertexAttributes,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2CubeMapLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2CubeMap,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2CubeMap,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2CubeMapLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2CubeMap,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2CubeMap,true),true,3),new name_150(codec)); + codec = new VectorCodecA3DLevel3(false); + protocol.name_151(new name_149(new name_148(name_210,false),false,3),codec); + protocol.name_151(new name_149(new name_148(name_210,false),true,3),new name_150(codec)); + codec = new VectorCodecA3DLevel3(true); + protocol.name_151(new name_149(new name_148(name_210,true),false,3),codec); + protocol.name_151(new name_149(new name_148(name_210,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2BoxLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Box,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Box,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2BoxLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Box,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Box,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2CubeMapLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2CubeMap,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2CubeMap,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2CubeMapLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2CubeMap,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2CubeMap,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2SurfaceLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Surface,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Surface,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2SurfaceLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Surface,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Surface,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2BoxLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Box,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Box,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2BoxLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Box,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Box,true),true,2),new name_150(codec)); + codec = new VectorCodecParentIdLevel3(false); + protocol.name_151(new name_149(new name_148(name_212,false),false,3),codec); + protocol.name_151(new name_149(new name_148(name_212,false),true,3),new name_150(codec)); + codec = new VectorCodecParentIdLevel3(true); + protocol.name_151(new name_149(new name_148(name_212,true),false,3),codec); + protocol.name_151(new name_149(new name_148(name_212,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2ImageLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Image,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Image,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2ImageLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Image,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Image,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2TrackLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Track,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Track,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2TrackLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Track,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Track,true),true,2),new name_150(codec)); + codec = new VectorCodecA3DObjectLevel2(false); + protocol.name_151(new name_149(new name_148(A3DObject,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DObject,false),true,2),new name_150(codec)); + codec = new VectorCodecA3DObjectLevel2(true); + protocol.name_151(new name_149(new name_148(A3DObject,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3DObject,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2MaterialLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Material,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Material,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2MaterialLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Material,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Material,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2TransformLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Transform,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Transform,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2TransformLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Transform,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Transform,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2SkinLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Skin,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Skin,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2SkinLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Skin,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Skin,true),true,3),new name_150(codec)); + codec = new VectorCodecA3DLevel1(false); + protocol.name_151(new name_149(new name_148(name_210,false),false,1),codec); + protocol.name_151(new name_149(new name_148(name_210,false),true,1),new name_150(codec)); + codec = new VectorCodecA3DLevel1(true); + protocol.name_151(new name_149(new name_148(name_210,true),false,1),codec); + protocol.name_151(new name_149(new name_148(name_210,true),true,1),new name_150(codec)); + codec = new VectorCodecIdLevel2(false); + protocol.name_151(new name_149(new name_148(name_213,false),false,2),codec); + protocol.name_151(new name_149(new name_148(name_213,false),true,2),new name_150(codec)); + codec = new VectorCodecIdLevel2(true); + protocol.name_151(new name_149(new name_148(name_213,true),false,2),codec); + protocol.name_151(new name_149(new name_148(name_213,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2ObjectLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Object,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Object,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2ObjectLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Object,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Object,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2ImageLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Image,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Image,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2ImageLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Image,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Image,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DMaterialLevel3(false); + protocol.name_151(new name_149(new name_148(A3DMaterial,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DMaterial,false),true,3),new name_150(codec)); + codec = new VectorCodecA3DMaterialLevel3(true); + protocol.name_151(new name_149(new name_148(A3DMaterial,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DMaterial,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2SpriteLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Sprite,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Sprite,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2SpriteLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Sprite,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Sprite,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2MaterialLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Material,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Material,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2MaterialLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Material,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Material,true),true,2),new name_150(codec)); + codec = new VectorCodecA3DTransformationLevel3(false); + protocol.name_151(new name_149(new name_148(A3DTransformation,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DTransformation,false),true,3),new name_150(codec)); + codec = new VectorCodecA3DTransformationLevel3(true); + protocol.name_151(new name_149(new name_148(A3DTransformation,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3DTransformation,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2KeyframeLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Keyframe,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Keyframe,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2KeyframeLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Keyframe,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Keyframe,true),true,1),new name_150(codec)); + codec = new VectorCodecIdLevel1(false); + protocol.name_151(new name_149(new name_148(name_213,false),false,1),codec); + protocol.name_151(new name_149(new name_148(name_213,false),true,1),new name_150(codec)); + codec = new VectorCodecIdLevel1(true); + protocol.name_151(new name_149(new name_148(name_213,true),false,1),codec); + protocol.name_151(new name_149(new name_148(name_213,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2TransformLevel3(false); + protocol.name_151(new name_149(new name_148(A3D2Transform,false),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Transform,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2TransformLevel3(true); + protocol.name_151(new name_149(new name_148(A3D2Transform,true),false,3),codec); + protocol.name_151(new name_149(new name_148(A3D2Transform,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2Level3(false); + protocol.name_151(new name_149(new name_148(name_211,false),false,3),codec); + protocol.name_151(new name_149(new name_148(name_211,false),true,3),new name_150(codec)); + codec = new VectorCodecA3D2Level3(true); + protocol.name_151(new name_149(new name_148(name_211,true),false,3),codec); + protocol.name_151(new name_149(new name_148(name_211,true),true,3),new name_150(codec)); + codec = new VectorCodecA3D2MapLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2Map,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Map,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2MapLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2Map,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2Map,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2VertexBufferLevel2(false); + protocol.name_151(new name_149(new name_148(A3D2VertexBuffer,false),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2VertexBuffer,false),true,2),new name_150(codec)); + codec = new VectorCodecA3D2VertexBufferLevel2(true); + protocol.name_151(new name_149(new name_148(A3D2VertexBuffer,true),false,2),codec); + protocol.name_151(new name_149(new name_148(A3D2VertexBuffer,true),true,2),new name_150(codec)); + codec = new VectorCodecA3D2MaterialLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2Material,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Material,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2MaterialLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2Material,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2Material,true),true,1),new name_150(codec)); + codec = new VectorCodecA3DObjectLevel1(false); + protocol.name_151(new name_149(new name_148(A3DObject,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DObject,false),true,1),new name_150(codec)); + codec = new VectorCodecA3DObjectLevel1(true); + protocol.name_151(new name_149(new name_148(A3DObject,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3DObject,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2Level1(false); + protocol.name_151(new name_149(new name_148(name_211,false),false,1),codec); + protocol.name_151(new name_149(new name_148(name_211,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2Level1(true); + protocol.name_151(new name_149(new name_148(name_211,true),false,1),codec); + protocol.name_151(new name_149(new name_148(name_211,true),true,1),new name_150(codec)); + codec = new VectorCodecA3D2AmbientLightLevel1(false); + protocol.name_151(new name_149(new name_148(A3D2AmbientLight,false),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2AmbientLight,false),true,1),new name_150(codec)); + codec = new VectorCodecA3D2AmbientLightLevel1(true); + protocol.name_151(new name_149(new name_148(A3D2AmbientLight,true),false,1),codec); + protocol.name_151(new name_149(new name_148(A3D2AmbientLight,true),true,1),new name_150(codec)); + } + + public function stop(osgi:name_3) : void + { + } + } +} + diff --git a/src/package_15/name_19.as b/src/package_15/name_19.as new file mode 100644 index 0000000..acff02a --- /dev/null +++ b/src/package_15/name_19.as @@ -0,0 +1,59 @@ +package package_15 +{ + public class name_19 + { + private var data:Object; + + public function name_19(data:Object = null) + { + super(); + this.data = data || new Object(); + } + + public function method_24(key:String) : String + { + return this.data[key]; + } + + public function method_25(key:String, defaultValue:String) : String + { + return this.data[key] || defaultValue; + } + + public function method_27(key:String, value:String) : void + { + if(!value) + { + throw new ArgumentError("Empty values are not allowed"); + } + this.data[key] = value; + } + + public function get method_26() : Vector. + { + var name:String = null; + var names:Vector. = new Vector.(); + for(name in this.data) + { + names.push(name); + } + return names; + } + + public function toString() : String + { + var key:String = null; + var result:String = ""; + for(key in this.data) + { + if(Boolean(result)) + { + result += ", "; + } + result += key + ": " + this.data[key]; + } + return "[Properties " + result + "]"; + } + } +} + diff --git a/src/package_15/name_191.as b/src/package_15/name_191.as new file mode 100644 index 0000000..de100ee --- /dev/null +++ b/src/package_15/name_191.as @@ -0,0 +1,207 @@ +package package_15 +{ + public class name_191 + { + public static const A:uint = 65; + + public static const B:uint = 66; + + public static const C:uint = 67; + + public static const D:uint = 68; + + public static const E:uint = 69; + + public static const F:uint = 70; + + public static const G:uint = 71; + + public static const H:uint = 72; + + public static const I:uint = 73; + + public static const J:uint = 74; + + public static const K:uint = 75; + + public static const L:uint = 76; + + public static const M:uint = 77; + + public static const N:uint = 78; + + public static const O:uint = 79; + + public static const P:uint = 80; + + public static const Q:uint = 81; + + public static const R:uint = 82; + + public static const S:uint = 83; + + public static const T:uint = 84; + + public static const U:uint = 85; + + public static const V:uint = 86; + + public static const W:uint = 87; + + public static const X:uint = 88; + + public static const Y:uint = 89; + + public static const Z:uint = 90; + + public static const SPACE:uint = 32; + + public static const SEMICOLON:uint = 186; + + public static const COMMA:uint = 188; + + public static const PERIOD:uint = 190; + + public static const SLASH:uint = 191; + + public static const BACKQUOTE:uint = 192; + + public static const LEFTBRACKET:uint = 219; + + public static const BACKSLASH:uint = 220; + + public static const RIGHTBRACKET:uint = 221; + + public static const QUOTE:uint = 222; + + public static const BACKSPACE:uint = 8; + + public static const TAB:uint = 9; + + public static const PAGE_UP:uint = 33; + + public static const PAGE_DOWN:uint = 34; + + public static const END:uint = 35; + + public static const HOME:uint = 36; + + public static const INSERT:uint = 45; + + public static const DELETE:uint = 46; + + public static const NUMBER_0:uint = 48; + + public static const NUMBER_1:uint = 49; + + public static const NUMBER_2:uint = 50; + + public static const NUMBER_3:uint = 51; + + public static const NUMBER_4:uint = 52; + + public static const NUMBER_5:uint = 53; + + public static const NUMBER_6:uint = 54; + + public static const NUMBER_7:uint = 55; + + public static const NUMBER_8:uint = 56; + + public static const NUMBER_9:uint = 57; + + public static const EQUAL:uint = 187; + + public static const MINUS:uint = 189; + + public static const NUMPAD:uint = 21; + + public static const NUMPAD_0:uint = 96; + + public static const NUMPAD_1:uint = 97; + + public static const NUMPAD_2:uint = 98; + + public static const NUMPAD_3:uint = 99; + + public static const NUMPAD_4:uint = 100; + + public static const NUMPAD_5:uint = 101; + + public static const NUMPAD_6:uint = 102; + + public static const NUMPAD_7:uint = 103; + + public static const NUMPAD_8:uint = 104; + + public static const NUMPAD_9:uint = 105; + + public static const NUMPAD_ADD:uint = 107; + + public static const NUMPAD_DECIMAL:uint = 110; + + public static const NUMPAD_DIVIDE:uint = 111; + + public static const NUMPAD_ENTER:uint = 108; + + public static const NUMPAD_MULTIPLY:uint = 106; + + public static const NUMPAD_SUBTRACT:uint = 109; + + public static const ENTER:uint = 13; + + public static const COMMAND:uint = 15; + + public static const SHIFT:uint = 16; + + public static const CONTROL:uint = 17; + + public static const CAPS_LOCK:uint = 20; + + public static const ESCAPE:uint = 27; + + public static const LEFT:uint = 37; + + public static const UP:uint = 38; + + public static const RIGHT:uint = 39; + + public static const DOWN:uint = 40; + + public static const F1:uint = 112; + + public static const F2:uint = 113; + + public static const F3:uint = 114; + + public static const F4:uint = 115; + + public static const F5:uint = 116; + + public static const F6:uint = 117; + + public static const F7:uint = 118; + + public static const F8:uint = 119; + + public static const F9:uint = 120; + + public static const F10:uint = 121; + + public static const F11:uint = 122; + + public static const F12:uint = 123; + + public static const F13:uint = 124; + + public static const F14:uint = 125; + + public static const F15:uint = 126; + + public function name_191() + { + super(); + } + } +} + diff --git a/src/package_15/name_275.as b/src/package_15/name_275.as new file mode 100644 index 0000000..5f1eceb --- /dev/null +++ b/src/package_15/name_275.as @@ -0,0 +1,121 @@ +package package_15 +{ + import flash.geom.ColorTransform; + + public class name_275 + { + public static const BLACK:uint = 0; + + public static const RED:uint = 8323072; + + public static const GREEN:uint = 32512; + + public static const BLUE:uint = 127; + + public static const BROWN:uint = 8355584; + + public static const CYAN:uint = 32639; + + public static const MAGENTA:uint = 8323199; + + public static const GRAY:uint = 8355711; + + public static const LIGHT_RED:uint = 16711680; + + public static const LIGHT_GREEN:uint = 65280; + + public static const LIGHT_BLUE:uint = 255; + + public static const YELLOW:uint = 16776960; + + public static const LIGHT_CYAN:uint = 65535; + + public static const LIGHT_MAGENTA:uint = 16711935; + + public static const WHITE:uint = 16777215; + + public function name_275() + { + super(); + } + + public static function sum(a:uint, b:uint) : uint + { + var red:int = (a & 0xFF0000) + (b & 0xFF0000); + var green:int = (a & 0xFF00) + (b & 0xFF00); + var blue:int = (a & 0xFF) + (b & 0xFF); + return (Boolean(red >>> 24) ? 16711680 : red) + (Boolean(green >>> 16) ? 65280 : green) + (Boolean(blue >>> 8) ? 255 : blue); + } + + public static function difference(a:uint, b:uint) : uint + { + var red:int = (a & 0xFF0000) - (b & 0xFF0000); + var green:int = (a & 0xFF00) - (b & 0xFF00); + var blue:int = (a & 0xFF) - (b & 0xFF); + return (red < 0 ? 0 : red) + (green < 0 ? 0 : green) + (blue < 0 ? 0 : blue); + } + + public static function method_552(color:uint, multiplier:Number) : uint + { + var red:int = ((color & 0xFF0000) >>> 16) * multiplier; + var green:int = ((color & 0xFF00) >>> 8) * multiplier; + var blue:int = (color & 0xFF) * multiplier; + return name_345(red,green,blue); + } + + public static function interpolate(a:uint, b:uint, k:Number = 0.5) : uint + { + var red:int = (a & 0xFF0000) >>> 16; + red += (((b & 0xFF0000) >>> 16) - red) * k; + var green:int = (a & 0xFF00) >>> 8; + green += (((b & 0xFF00) >>> 8) - green) * k; + var blue:int = a & 0xFF; + blue += ((b & 0xFF) - blue) * k; + return name_345(red,green,blue); + } + + public static function method_551(fromColor:ColorTransform, toColor:ColorTransform, progress:Number, result:ColorTransform = null) : ColorTransform + { + if(result == null) + { + result = new ColorTransform(); + } + var k:Number = 1 - progress; + result.redMultiplier = fromColor.redMultiplier * k + toColor.redMultiplier * progress; + result.greenMultiplier = fromColor.greenMultiplier * k + toColor.greenMultiplier * progress; + result.blueMultiplier = fromColor.blueMultiplier * k + toColor.blueMultiplier * progress; + result.alphaMultiplier = fromColor.alphaMultiplier * k + toColor.alphaMultiplier * progress; + result.redOffset = fromColor.redOffset * k + toColor.redOffset * progress; + result.greenOffset = fromColor.greenOffset * k + toColor.greenOffset * progress; + result.blueOffset = fromColor.blueOffset * k + toColor.blueOffset * progress; + result.alphaOffset = fromColor.alphaOffset * k + toColor.alphaOffset * progress; + return result; + } + + public static function random(redMin:uint = 0, redMax:uint = 255, greenMin:uint = 0, greenMax:uint = 255, blueMin:uint = 0, blueMax:uint = 255) : uint + { + return name_345(name_629.random(redMin,redMax),name_629.random(greenMin,greenMax),name_629.random(blueMin,blueMax)); + } + + public static function name_345(red:int, green:int, blue:int) : uint + { + return (red < 0 ? 0 : (Boolean(red >>> 8) ? 16711680 : red << 16)) + (green < 0 ? 0 : (Boolean(green >>> 8) ? 65280 : green << 8)) + (blue < 0 ? 0 : (Boolean(blue >>> 8) ? 255 : blue)); + } + + public static function red(color:uint) : uint + { + return (color & 0xFF0000) >>> 16; + } + + public static function green(color:uint) : uint + { + return (color & 0xFF00) >>> 8; + } + + public static function blue(color:uint) : uint + { + return color & 0xFF; + } + } +} + diff --git a/src/package_15/name_55.as b/src/package_15/name_55.as new file mode 100644 index 0000000..d0050c1 --- /dev/null +++ b/src/package_15/name_55.as @@ -0,0 +1,31 @@ +package package_15 +{ + import flash.utils.ByteArray; + + public class name_55 + { + private var var_102:Object; + + public function name_55(data:Object = null) + { + super(); + this.var_102 = data == null ? {} : data; + } + + public function get data() : Object + { + return this.var_102; + } + + public function name_248(key:String) : ByteArray + { + return this.var_102[key]; + } + + public function name_59(key:String, value:ByteArray) : void + { + this.var_102[key] = value; + } + } +} + diff --git a/src/package_15/name_629.as b/src/package_15/name_629.as new file mode 100644 index 0000000..9186b03 --- /dev/null +++ b/src/package_15/name_629.as @@ -0,0 +1,141 @@ +package package_15 +{ + import flash.geom.Point; + + public final class name_629 + { + private static const toRad:Number = Math.PI / 180; + + private static const toDeg:Number = 180 / Math.PI; + + public static const DEG1:Number = toRad; + + public static const DEG5:Number = Math.PI / 36; + + public static const DEG10:Number = Math.PI / 18; + + public static const DEG30:Number = Math.PI / 6; + + public static const DEG45:Number = Math.PI / 4; + + public static const DEG60:Number = Math.PI / 3; + + public static const DEG90:Number = Math.PI / 2; + + public static const DEG180:Number = Math.PI; + + public static const DEG360:Number = Math.PI + Math.PI; + + public function name_629() + { + super(); + } + + public static function method_806(angle:Number) : Number + { + return angle * toRad; + } + + public static function method_801(angle:Number) : Number + { + return angle * toDeg; + } + + public static function method_802(angle:Number) : Number + { + var res:Number = angle % DEG360; + return res > 0 ? (res > DEG180 ? res - DEG360 : res) : (res < -DEG180 ? res + DEG360 : res); + } + + public static function method_805(a:Number, b:Number) : Number + { + var delta:Number = b - a; + if(delta > DEG180) + { + return delta - DEG360; + } + if(delta < -DEG180) + { + return delta + DEG360; + } + return delta; + } + + public static function random(a:Number = NaN, b:Number = NaN) : Number + { + if(isNaN(a)) + { + return Math.random(); + } + if(isNaN(b)) + { + return Math.random() * a; + } + return Math.random() * (b - a) + a; + } + + public static function method_807() : Number + { + return Math.random() * DEG360; + } + + public static function method_803(a:Number, b:Number, threshold:Number = 0) : Boolean + { + return b - a <= threshold && b - a >= -threshold; + } + + public static function method_809(first:Point, second:Point, point:Point) : Number + { + var dx:Number = second.x - first.x; + var dy:Number = second.y - first.y; + var px:Number = point.x - first.x; + var py:Number = point.y - first.y; + return (dx * py - dy * px) / Math.sqrt(dx * dx + dy * dy); + } + + public static function method_804(a:Point, b:Point, c:Point, point:Point) : Boolean + { + if(method_799(c.subtract(a),point.subtract(a)) <= 0) + { + if(method_799(b.subtract(c),point.subtract(c)) <= 0) + { + if(method_799(a.subtract(b),point.subtract(b)) <= 0) + { + return true; + } + return false; + } + return false; + } + return false; + } + + public static function method_799(a:Point, b:Point) : Number + { + return a.x * b.y - a.y * b.x; + } + + public static function method_800(a:Point, b:Point) : Number + { + return a.x * b.x + a.y * b.y; + } + + public static function method_810(a:Point, b:Point) : Number + { + var len:Number = a.length * b.length; + var cos:Number = len != 0 ? method_800(a,b) / len : 1; + return Math.acos(cos); + } + + public static function method_808(a:Point, b:Point) : Number + { + var dot:Number = method_800(a,b); + if(Math.abs(dot) > 1) + { + dot = dot > 0 ? 1 : -1; + } + return Math.acos(dot); + } + } +} + diff --git a/src/package_15/name_632.as b/src/package_15/name_632.as new file mode 100644 index 0000000..0f29e70 --- /dev/null +++ b/src/package_15/name_632.as @@ -0,0 +1,10 @@ +package package_15 +{ + public interface name_632 + { + function hasNext() : Boolean; + + function getNext() : String; + } +} + diff --git a/src/package_15/name_634.as b/src/package_15/name_634.as new file mode 100644 index 0000000..6f17a1c --- /dev/null +++ b/src/package_15/name_634.as @@ -0,0 +1,128 @@ +package package_15 +{ + public class name_634 implements name_635 + { + public var strings:Vector.; + + public var var_665:int; + + public var var_664:int; + + private var var_666:int; + + public function name_634(capacity:int) + { + super(); + this.var_666 = capacity; + this.strings = new Vector.(this.var_666 + 1); + } + + public function add(s:String) : void + { + this.strings[this.var_664] = s; + this.var_664 = this.incIndex(this.var_664); + if(this.var_664 == this.var_665) + { + this.var_665 = this.incIndex(this.var_665); + } + } + + public function clear() : void + { + this.var_665 = 0; + this.var_664 = 0; + var len:int = int(this.strings.length); + for(var i:int = 0; i < len; i++) + { + this.strings[i] = null; + } + } + + public function get size() : int + { + var result:int = this.var_664 - this.var_665; + if(result < 0) + { + result += this.strings.length; + } + return result; + } + + public function get capacity() : int + { + return this.var_666; + } + + public function name_638() : Vector. + { + var result:Vector. = new Vector.(); + for(var i:int = this.var_665; i != this.var_664; i = this.incIndex(i)) + { + result.push(this.strings[i]); + } + return result; + } + + public function set capacity(value:int) : void + { + throw new Error("Unimplemented"); + } + + public function name_633(startIndex:int) : name_632 + { + return new Iterator(this,startIndex); + } + + private function incIndex(index:int) : int + { + return ++index >= this.strings.length ? 0 : index; + } + } +} + +class Iterator implements name_632 +{ + private var buffer:name_634; + + private var index:int; + + public function Iterator(buffer:name_634, startIndex:int) + { + super(); + if(startIndex < 0 || startIndex > buffer.size) + { + throw new Error("Index " + startIndex + " is out of range [0, " + buffer.size + "]"); + } + this.buffer = buffer; + var bufferLength:uint = uint(buffer.strings.length); + this.index = buffer.var_665 + startIndex - 1; + if(this.index < 0) + { + this.index = bufferLength - 1; + } + if(this.index >= bufferLength) + { + this.index -= bufferLength; + } + } + + public function hasNext() : Boolean + { + return this.incIndex(this.index) != this.buffer.var_664; + } + + public function getNext() : String + { + this.index = this.incIndex(this.index); + if(this.index == this.buffer.var_664) + { + throw new Error("End of buffer"); + } + return this.buffer.strings[this.index]; + } + + private function incIndex(index:int) : int + { + return ++index >= this.buffer.strings.length ? 0 : index; + } +} diff --git a/src/package_15/name_635.as b/src/package_15/name_635.as new file mode 100644 index 0000000..92e1320 --- /dev/null +++ b/src/package_15/name_635.as @@ -0,0 +1,18 @@ +package package_15 +{ + public interface name_635 + { + function add(param1:String) : void; + + function clear() : void; + + function get size() : int; + + function get capacity() : int; + + function set capacity(param1:int) : void; + + function name_633(param1:int) : name_632; + } +} + diff --git a/src/package_15/name_718.as b/src/package_15/name_718.as new file mode 100644 index 0000000..a6bb6d7 --- /dev/null +++ b/src/package_15/name_718.as @@ -0,0 +1,21 @@ +package package_15 +{ + public class name_718 + { + public function name_718() + { + super(); + } + + public static function name_719(msg:String, ... args) : String + { + var len:int = int(args.length); + for(var i:int = 0; i < len; i++) + { + msg = msg.replace(new RegExp("%" + (i + 1),"g"),args[i]); + } + return msg; + } + } +} + diff --git a/src/package_16/name_26.as b/src/package_16/name_26.as new file mode 100644 index 0000000..a617c57 --- /dev/null +++ b/src/package_16/name_26.as @@ -0,0 +1,50 @@ +package package_16 +{ + import package_31.class_6; + import package_33.name_153; + import package_33.name_154; + import package_33.name_155; + import package_33.name_156; + import package_33.name_157; + import package_33.name_158; + import package_36.name_163; + import package_38.name_159; + import package_5.name_3; + import package_70.name_224; + import package_70.name_225; + import package_70.name_226; + import package_70.name_227; + import package_70.name_228; + import package_70.name_229; + import package_70.name_230; + import package_70.name_231; + import package_70.name_232; + + public class name_26 implements class_6 + { + public function name_26() + { + super(); + } + + public function start(osgi:name_3) : void + { + var protocol:name_163 = name_159.defaultInstance; + osgi.method_116(name_163,protocol); + protocol.name_223(name_154,new name_225()); + protocol.name_223(name_157,new name_226()); + protocol.name_223(name_155,new name_227()); + protocol.name_223(name_158,new name_224()); + protocol.name_223(name_153,new name_229()); + protocol.name_223(name_156,new name_230()); + protocol.name_223(uint,new name_228()); + protocol.name_223(int,new name_232()); + protocol.name_223(Number,new name_231()); + } + + public function stop(osgi:name_3) : void + { + } + } +} + diff --git a/src/package_17/name_21.as b/src/package_17/name_21.as new file mode 100644 index 0000000..d6ff5c0 --- /dev/null +++ b/src/package_17/name_21.as @@ -0,0 +1,232 @@ +package package_17 +{ + import package_31.class_6; + import package_32.name_148; + import package_32.name_149; + import package_33.name_153; + import package_33.name_154; + import package_33.name_155; + import package_33.name_156; + import package_33.name_157; + import package_33.name_158; + import package_34.name_150; + import package_35.VectorCodecStringLevel1; + import package_35.VectorCodecStringLevel2; + import package_35.VectorCodecStringLevel3; + import package_35.VectorCodecbyteLevel1; + import package_35.VectorCodecbyteLevel2; + import package_35.VectorCodecbyteLevel3; + import package_35.VectorCodecfloatLevel1; + import package_35.VectorCodecfloatLevel2; + import package_35.VectorCodecfloatLevel3; + import package_35.VectorCodecintLevel1; + import package_35.VectorCodecintLevel2; + import package_35.VectorCodecintLevel3; + import package_35.VectorCodeclongLevel1; + import package_35.VectorCodeclongLevel2; + import package_35.VectorCodeclongLevel3; + import package_35.VectorCodecshortLevel1; + import package_35.VectorCodecshortLevel2; + import package_35.VectorCodecshortLevel3; + import package_36.name_152; + import package_36.name_163; + import package_37.VectorCodecintLevel1; + import package_37.VectorCodecintLevel2; + import package_37.VectorCodecintLevel3; + import package_37.VectorCodeclongLevel1; + import package_37.VectorCodeclongLevel2; + import package_37.VectorCodeclongLevel3; + import package_37.VectorCodecshortLevel1; + import package_37.VectorCodecshortLevel2; + import package_37.VectorCodecshortLevel3; + import package_38.name_159; + import package_38.name_162; + import package_39.name_160; + import package_5.name_3; + + public class name_21 implements class_6 + { + public static var osgi:name_3; + + public function name_21() + { + super(); + } + + public function start(_osgi:name_3) : void + { + var codec:name_152 = null; + osgi = _osgi; + var protocol:name_163 = name_159.defaultInstance; + codec = new VectorCodecbyteLevel1(false); + protocol.name_151(new name_149(new name_148(name_154,false),false,1),codec); + protocol.name_151(new name_149(new name_148(name_154,false),true,1),new name_150(codec)); + codec = new VectorCodecbyteLevel1(true); + protocol.name_151(new name_149(new name_148(name_154,true),false,1),codec); + protocol.name_151(new name_149(new name_148(name_154,true),true,1),new name_150(codec)); + codec = new VectorCodecbyteLevel2(false); + protocol.name_151(new name_149(new name_148(name_154,false),false,2),codec); + protocol.name_151(new name_149(new name_148(name_154,false),true,2),new name_150(codec)); + codec = new VectorCodecbyteLevel2(true); + protocol.name_151(new name_149(new name_148(name_154,true),false,2),codec); + protocol.name_151(new name_149(new name_148(name_154,true),true,2),new name_150(codec)); + codec = new VectorCodecbyteLevel3(false); + protocol.name_151(new name_149(new name_148(name_154,false),false,3),codec); + protocol.name_151(new name_149(new name_148(name_154,false),true,3),new name_150(codec)); + codec = new VectorCodecbyteLevel3(true); + protocol.name_151(new name_149(new name_148(name_154,true),false,3),codec); + protocol.name_151(new name_149(new name_148(name_154,true),true,3),new name_150(codec)); + codec = new package_35.VectorCodecintLevel1(false); + protocol.name_151(new name_149(new name_148(int,false),false,1),codec); + protocol.name_151(new name_149(new name_148(int,false),true,1),new name_150(codec)); + codec = new package_35.VectorCodecintLevel1(true); + protocol.name_151(new name_149(new name_148(int,true),false,1),codec); + protocol.name_151(new name_149(new name_148(int,true),true,1),new name_150(codec)); + codec = new package_35.VectorCodecintLevel2(false); + protocol.name_151(new name_149(new name_148(int,false),false,2),codec); + protocol.name_151(new name_149(new name_148(int,false),true,2),new name_150(codec)); + codec = new package_35.VectorCodecintLevel2(true); + protocol.name_151(new name_149(new name_148(int,true),false,2),codec); + protocol.name_151(new name_149(new name_148(int,true),true,2),new name_150(codec)); + codec = new package_35.VectorCodecintLevel3(false); + protocol.name_151(new name_149(new name_148(int,false),false,3),codec); + protocol.name_151(new name_149(new name_148(int,false),true,3),new name_150(codec)); + codec = new package_35.VectorCodecintLevel3(true); + protocol.name_151(new name_149(new name_148(int,true),false,3),codec); + protocol.name_151(new name_149(new name_148(int,true),true,3),new name_150(codec)); + codec = new package_35.VectorCodecshortLevel1(false); + protocol.name_151(new name_149(new name_148(name_158,false),false,1),codec); + protocol.name_151(new name_149(new name_148(name_158,false),true,1),new name_150(codec)); + codec = new package_35.VectorCodecshortLevel1(true); + protocol.name_151(new name_149(new name_148(name_158,true),false,1),codec); + protocol.name_151(new name_149(new name_148(name_158,true),true,1),new name_150(codec)); + codec = new package_35.VectorCodecshortLevel2(false); + protocol.name_151(new name_149(new name_148(name_158,false),false,2),codec); + protocol.name_151(new name_149(new name_148(name_158,false),true,2),new name_150(codec)); + codec = new package_35.VectorCodecshortLevel2(true); + protocol.name_151(new name_149(new name_148(name_158,true),false,2),codec); + protocol.name_151(new name_149(new name_148(name_158,true),true,2),new name_150(codec)); + codec = new package_35.VectorCodecshortLevel3(false); + protocol.name_151(new name_149(new name_148(name_158,false),false,3),codec); + protocol.name_151(new name_149(new name_148(name_158,false),true,3),new name_150(codec)); + codec = new package_35.VectorCodecshortLevel3(true); + protocol.name_151(new name_149(new name_148(name_158,true),false,3),codec); + protocol.name_151(new name_149(new name_148(name_158,true),true,3),new name_150(codec)); + codec = new package_35.VectorCodeclongLevel1(false); + protocol.name_151(new name_149(new name_148(name_155,false),false,1),codec); + protocol.name_151(new name_149(new name_148(name_155,false),true,1),new name_150(codec)); + codec = new package_35.VectorCodeclongLevel1(true); + protocol.name_151(new name_149(new name_148(name_155,true),false,1),codec); + protocol.name_151(new name_149(new name_148(name_155,true),true,1),new name_150(codec)); + codec = new package_35.VectorCodeclongLevel2(false); + protocol.name_151(new name_149(new name_148(name_155,false),false,2),codec); + protocol.name_151(new name_149(new name_148(name_155,false),true,2),new name_150(codec)); + codec = new package_35.VectorCodeclongLevel2(true); + protocol.name_151(new name_149(new name_148(name_155,true),false,2),codec); + protocol.name_151(new name_149(new name_148(name_155,true),true,2),new name_150(codec)); + codec = new package_35.VectorCodeclongLevel3(false); + protocol.name_151(new name_149(new name_148(name_155,false),false,3),codec); + protocol.name_151(new name_149(new name_148(name_155,false),true,3),new name_150(codec)); + codec = new package_35.VectorCodeclongLevel3(true); + protocol.name_151(new name_149(new name_148(name_155,true),false,3),codec); + protocol.name_151(new name_149(new name_148(name_155,true),true,3),new name_150(codec)); + codec = new VectorCodecfloatLevel1(false); + protocol.name_151(new name_149(new name_148(name_157,false),false,1),codec); + protocol.name_151(new name_149(new name_148(name_157,false),true,1),new name_150(codec)); + codec = new VectorCodecfloatLevel1(true); + protocol.name_151(new name_149(new name_148(name_157,true),false,1),codec); + protocol.name_151(new name_149(new name_148(name_157,true),true,1),new name_150(codec)); + codec = new VectorCodecfloatLevel2(false); + protocol.name_151(new name_149(new name_148(name_157,false),false,2),codec); + protocol.name_151(new name_149(new name_148(name_157,false),true,2),new name_150(codec)); + codec = new VectorCodecfloatLevel2(true); + protocol.name_151(new name_149(new name_148(name_157,true),false,2),codec); + protocol.name_151(new name_149(new name_148(name_157,true),true,2),new name_150(codec)); + codec = new VectorCodecfloatLevel3(false); + protocol.name_151(new name_149(new name_148(name_157,false),false,3),codec); + protocol.name_151(new name_149(new name_148(name_157,false),true,3),new name_150(codec)); + codec = new VectorCodecfloatLevel3(true); + protocol.name_151(new name_149(new name_148(name_157,true),false,3),codec); + protocol.name_151(new name_149(new name_148(name_157,true),true,3),new name_150(codec)); + codec = new package_37.VectorCodecintLevel1(false); + protocol.name_151(new name_149(new name_148(name_156,false),false,1),codec); + protocol.name_151(new name_149(new name_148(name_156,false),true,1),new name_150(codec)); + codec = new package_37.VectorCodecintLevel1(true); + protocol.name_151(new name_149(new name_148(name_156,true),false,1),codec); + protocol.name_151(new name_149(new name_148(name_156,true),true,1),new name_150(codec)); + codec = new package_37.VectorCodecintLevel2(false); + protocol.name_151(new name_149(new name_148(name_156,false),false,2),codec); + protocol.name_151(new name_149(new name_148(name_156,false),true,2),new name_150(codec)); + codec = new package_37.VectorCodecintLevel2(true); + protocol.name_151(new name_149(new name_148(name_156,true),false,2),codec); + protocol.name_151(new name_149(new name_148(name_156,true),true,2),new name_150(codec)); + codec = new package_37.VectorCodecintLevel3(false); + protocol.name_151(new name_149(new name_148(name_156,false),false,3),codec); + protocol.name_151(new name_149(new name_148(name_156,false),true,3),new name_150(codec)); + codec = new package_37.VectorCodecintLevel3(true); + protocol.name_151(new name_149(new name_148(name_156,true),false,3),codec); + protocol.name_151(new name_149(new name_148(name_156,true),true,3),new name_150(codec)); + codec = new package_37.VectorCodecshortLevel1(false); + protocol.name_151(new name_149(new name_148(name_153,false),false,1),codec); + protocol.name_151(new name_149(new name_148(name_153,false),true,1),new name_150(codec)); + codec = new package_37.VectorCodecshortLevel1(true); + protocol.name_151(new name_149(new name_148(name_153,true),false,1),codec); + protocol.name_151(new name_149(new name_148(name_153,true),true,1),new name_150(codec)); + codec = new package_37.VectorCodecshortLevel2(false); + protocol.name_151(new name_149(new name_148(name_153,false),false,2),codec); + protocol.name_151(new name_149(new name_148(name_153,false),true,2),new name_150(codec)); + codec = new package_37.VectorCodecshortLevel2(true); + protocol.name_151(new name_149(new name_148(name_153,true),false,2),codec); + protocol.name_151(new name_149(new name_148(name_153,true),true,2),new name_150(codec)); + codec = new package_37.VectorCodecshortLevel3(false); + protocol.name_151(new name_149(new name_148(name_153,false),false,3),codec); + protocol.name_151(new name_149(new name_148(name_153,false),true,3),new name_150(codec)); + codec = new package_37.VectorCodecshortLevel3(true); + protocol.name_151(new name_149(new name_148(name_153,true),false,3),codec); + protocol.name_151(new name_149(new name_148(name_153,true),true,3),new name_150(codec)); + codec = new package_37.VectorCodeclongLevel1(false); + protocol.name_151(new name_149(new name_148(uint,false),false,1),codec); + protocol.name_151(new name_149(new name_148(uint,false),true,1),new name_150(codec)); + codec = new package_37.VectorCodeclongLevel1(true); + protocol.name_151(new name_149(new name_148(uint,true),false,1),codec); + protocol.name_151(new name_149(new name_148(uint,true),true,1),new name_150(codec)); + codec = new package_37.VectorCodeclongLevel2(false); + protocol.name_151(new name_149(new name_148(uint,false),false,2),codec); + protocol.name_151(new name_149(new name_148(uint,false),true,2),new name_150(codec)); + codec = new package_37.VectorCodeclongLevel2(true); + protocol.name_151(new name_149(new name_148(uint,true),false,2),codec); + protocol.name_151(new name_149(new name_148(uint,true),true,2),new name_150(codec)); + codec = new package_37.VectorCodeclongLevel3(false); + protocol.name_151(new name_149(new name_148(uint,false),false,3),codec); + protocol.name_151(new name_149(new name_148(uint,false),true,3),new name_150(codec)); + codec = new package_37.VectorCodeclongLevel3(true); + protocol.name_151(new name_149(new name_148(uint,true),false,3),codec); + protocol.name_151(new name_149(new name_148(uint,true),true,3),new name_150(codec)); + codec = new VectorCodecStringLevel1(false); + protocol.name_151(new name_149(new name_148(String,false),false,1),codec); + protocol.name_151(new name_149(new name_148(String,false),true,1),new name_150(codec)); + codec = new VectorCodecStringLevel1(true); + protocol.name_151(new name_149(new name_148(String,true),false,1),codec); + protocol.name_151(new name_149(new name_148(String,true),true,1),new name_150(codec)); + codec = new VectorCodecStringLevel2(false); + protocol.name_151(new name_149(new name_148(String,false),false,2),codec); + protocol.name_151(new name_149(new name_148(String,false),true,2),new name_150(codec)); + codec = new VectorCodecStringLevel2(true); + protocol.name_151(new name_149(new name_148(String,true),false,2),codec); + protocol.name_151(new name_149(new name_148(String,true),true,2),new name_150(codec)); + codec = new VectorCodecStringLevel3(false); + protocol.name_151(new name_149(new name_148(String,false),false,3),codec); + protocol.name_151(new name_149(new name_148(String,false),true,3),new name_150(codec)); + codec = new VectorCodecStringLevel3(true); + protocol.name_151(new name_149(new name_148(String,true),false,3),codec); + protocol.name_151(new name_149(new name_148(String,true),true,3),new name_150(codec)); + osgi.name_161(name_160,name_159,"clientLog"); + osgi.name_161(name_160,name_162,"clientLog"); + } + + public function stop(osgi:name_3) : void + { + } + } +} + diff --git a/src/package_18/class_3.as b/src/package_18/class_3.as new file mode 100644 index 0000000..06391b9 --- /dev/null +++ b/src/package_18/class_3.as @@ -0,0 +1,18 @@ +package package_18 +{ + import package_21.name_77; + + public interface class_3 + { + function method_29(param1:name_77) : void; + + function method_32(param1:Vector.) : void; + + function method_28(param1:name_77) : void; + + function method_31(param1:Vector.) : void; + + function method_30(param1:name_77) : void; + } +} + diff --git a/src/package_18/name_101.as b/src/package_18/name_101.as new file mode 100644 index 0000000..21fd479 --- /dev/null +++ b/src/package_18/name_101.as @@ -0,0 +1,159 @@ +package package_18 +{ + import flash.display3D.Context3D; + import flash.utils.Dictionary; + import package_21.name_77; + + public class name_101 implements class_3 + { + private var context:Context3D; + + private var var_106:Dictionary; + + private var var_105:Vector.; + + public function name_101() + { + super(); + this.var_106 = new Dictionary(); + } + + public function method_29(resource:name_77) : void + { + if(this.context == null) + { + if(this.method_224(resource) < 0) + { + this.method_223(resource); + } + } + else + { + resource.upload(this.context); + } + var refCount:int = int(this.var_106[resource]); + this.var_106[resource] = refCount + 1; + } + + public function method_32(resources:Vector.) : void + { + var resource:name_77 = null; + for each(resource in resources) + { + this.method_29(resource); + } + } + + public function method_28(resource:name_77) : void + { + var refCount:int = int(this.var_106[resource]); + if(refCount > 0) + { + if(refCount == 1) + { + this.method_225(resource); + } + else + { + this.var_106[resource] = refCount - 1; + } + } + } + + public function method_31(resources:Vector.) : void + { + var resource:name_77 = null; + for each(resource in resources) + { + this.method_28(resource); + } + } + + public function method_30(resource:name_77) : void + { + if(this.context == null) + { + this.method_223(resource); + } + else + { + resource.upload(this.context); + } + } + + public function name_105(context:Context3D) : void + { + var resource:name_77 = null; + this.context = context; + if(this.var_105 != null) + { + for each(resource in this.var_105) + { + resource.upload(context); + } + this.var_105 = null; + } + } + + public function clear() : void + { + var resource:* = undefined; + if(this.context != null) + { + for(resource in this.var_106) + { + name_77(resource).dispose(); + } + } + this.var_105 = null; + this.var_106 = new Dictionary(); + } + + private function method_225(resource:name_77) : void + { + var index:int = 0; + var num:int = 0; + if(this.context == null) + { + index = this.method_224(resource); + if(index >= 0) + { + num = int(this.var_105.length); + if(num == 1) + { + this.var_105 = null; + } + else + { + this.var_105[index] = this.var_105[--num]; + this.var_105.length = num; + } + } + } + else + { + resource.dispose(); + delete this.var_106[resource]; + } + } + + private function method_224(resource:name_77) : int + { + if(this.var_105 == null) + { + return -1; + } + return this.var_105.indexOf(resource); + } + + private function method_223(resource:name_77) : void + { + if(this.var_105 == null) + { + this.var_105 = new Vector.(); + } + this.var_105.push(resource); + } + } +} + diff --git a/src/package_18/name_102.as b/src/package_18/name_102.as new file mode 100644 index 0000000..d6e593a --- /dev/null +++ b/src/package_18/name_102.as @@ -0,0 +1,10 @@ +package package_18 +{ + public interface name_102 + { + function update() : void; + + function name_108() : void; + } +} + diff --git a/src/package_18/name_104.as b/src/package_18/name_104.as new file mode 100644 index 0000000..2c2e78c --- /dev/null +++ b/src/package_18/name_104.as @@ -0,0 +1,108 @@ +package package_18 +{ + import flash.display.BitmapData; + + public class name_104 + { + public function name_104() + { + super(); + } + + public static function name_109(textureParams:String, textureWidth:int) : BitmapData + { + var i:int = 0; + var angle:Number = NaN; + var color:uint = 0; + var bitmapData:BitmapData = null; + var angles:Vector. = null; + var colors:Vector. = null; + var paramValues:Array = textureParams.split(" "); + if(paramValues.length > 1) + { + bitmapData = new BitmapData(textureWidth,1,false,16777215); + paramValues.sort(method_274); + angles = new Vector.(paramValues.length); + colors = new Vector.(paramValues.length); + for(i = 0; i < paramValues.length; i++) + { + angle = Number(parseFloat(paramValues[i].substr(0,paramValues[i].indexOf(":")))); + color = uint(parseInt(paramValues[i].substr(paramValues[i].indexOf(":") + 1),16)); + angles[i] = angle; + colors[i] = color; + } + for(i = 0; i < textureWidth; i++) + { + angle = i / textureWidth * 360; + color = method_273(angle,angles,colors); + bitmapData.setPixel(i,0,color); + } + } + else + { + color = uint(parseInt(paramValues[0].substr(paramValues[0].indexOf(":") + 1),16)); + bitmapData = new BitmapData(1,1,false,color); + } + return bitmapData; + } + + private static function method_274(a:String, b:String) : int + { + var valA:Number = Number(parseFloat(a.substr(0,a.indexOf(":")))); + var valB:Number = Number(parseFloat(b.substr(0,b.indexOf(":")))); + return valA > valB ? 1 : (valA < valB ? -1 : 0); + } + + private static function method_273(currAngle:Number, angles:Vector., colors:Vector.) : uint + { + var leftAngle:Number = NaN; + var rightAngle:Number = NaN; + var leftColor:uint = 0; + var rightColor:uint = 0; + var weight:Number = NaN; + var i:int = 0; + if(currAngle <= angles[0] || currAngle >= angles[angles.length - 1]) + { + leftAngle = angles[angles.length - 1]; + leftColor = colors[angles.length - 1]; + rightAngle = angles[0]; + rightColor = colors[0]; + if(currAngle <= rightAngle) + { + weight = 1 - (rightAngle - currAngle) / (rightAngle - leftAngle + 360); + } + else + { + weight = (currAngle - leftAngle) / (rightAngle - leftAngle + 360); + } + } + else + { + leftAngle = angles[0]; + for(i = 1; i < angles.length; i++) + { + rightAngle = angles[i]; + if(currAngle >= leftAngle && currAngle <= rightAngle) + { + leftColor = colors[i - 1]; + rightColor = colors[i]; + weight = (currAngle - leftAngle) / (rightAngle - leftAngle); + break; + } + leftAngle = rightAngle; + } + } + var lR:uint = uint(leftColor >> 16 & 0xFF); + var lG:uint = uint(leftColor >> 8 & 0xFF); + var lB:uint = uint(leftColor & 0xFF); + var rR:uint = uint(rightColor >> 16 & 0xFF); + var rG:uint = uint(rightColor >> 8 & 0xFF); + var rB:uint = uint(rightColor & 0xFF); + var r:uint = rR * weight + lR * (1 - weight); + var g:uint = rG * weight + lG * (1 - weight); + var b:uint = rB * weight + lB * (1 - weight); + return r << 16 | g << 8 | b; + } + } +} + diff --git a/src/package_18/name_422.as b/src/package_18/name_422.as new file mode 100644 index 0000000..8d16aeb --- /dev/null +++ b/src/package_18/name_422.as @@ -0,0 +1,54 @@ +package package_18 +{ + import package_21.name_78; + import package_24.SpotLight; + + public class name_422 + { + private var container:name_78; + + private var var_16:Vector.; + + public function name_422(container:name_78) + { + super(); + this.container = container; + this.var_16 = new Vector.(); + } + + public function add(light:SpotLight) : void + { + if(this.var_16.indexOf(light) < 0) + { + this.var_16.push(light); + this.container.addChild(light); + } + } + + public function remove(light:SpotLight) : void + { + var index:int = int(this.var_16.indexOf(light)); + if(index >= 0) + { + this.var_16[index] = this.var_16[this.var_16.length - 1]; + this.var_16.length -= 1; + } + } + + public function get size() : int + { + return this.var_16.length; + } + + public function get lights() : Vector. + { + return Vector.(this.var_16); + } + + public function method_645(i:int) : SpotLight + { + return this.var_16[i]; + } + } +} + diff --git a/src/package_18/name_423.as b/src/package_18/name_423.as new file mode 100644 index 0000000..76215aa --- /dev/null +++ b/src/package_18/name_423.as @@ -0,0 +1,54 @@ +package package_18 +{ + import package_21.name_78; + import package_24.DirectionalLight; + + public class name_423 + { + private var container:name_78; + + private var var_16:Vector.; + + public function name_423(container:name_78) + { + super(); + this.container = container; + this.var_16 = new Vector.(); + } + + public function add(light:DirectionalLight) : void + { + if(this.var_16.indexOf(light) < 0) + { + this.var_16.push(light); + this.container.addChild(light); + } + } + + public function remove(light:DirectionalLight) : void + { + var index:int = int(this.var_16.indexOf(light)); + if(index >= 0) + { + this.var_16[index] = this.var_16[this.var_16.length - 1]; + this.var_16.length -= 1; + } + } + + public function get size() : int + { + return this.var_16.length; + } + + public function get lights() : Vector. + { + return Vector.(this.var_16); + } + + public function method_645(i:int) : DirectionalLight + { + return this.var_16[i]; + } + } +} + diff --git a/src/package_18/name_424.as b/src/package_18/name_424.as new file mode 100644 index 0000000..2d940c3 --- /dev/null +++ b/src/package_18/name_424.as @@ -0,0 +1,54 @@ +package package_18 +{ + import package_21.name_78; + import package_24.OmniLight; + + public class name_424 + { + private var container:name_78; + + private var var_16:Vector.; + + public function name_424(container:name_78) + { + super(); + this.container = container; + this.var_16 = new Vector.(); + } + + public function add(light:OmniLight) : void + { + if(this.var_16.indexOf(light) < 0) + { + this.var_16.push(light); + this.container.addChild(light); + } + } + + public function remove(light:OmniLight) : void + { + var index:int = int(this.var_16.indexOf(light)); + if(index >= 0) + { + this.var_16[index] = this.var_16[this.var_16.length - 1]; + this.var_16.length -= 1; + } + } + + public function get size() : int + { + return this.var_16.length; + } + + public function get lights() : Vector. + { + return Vector.(this.var_16); + } + + public function method_645(i:int) : OmniLight + { + return this.var_16[i]; + } + } +} + diff --git a/src/package_18/name_44.as b/src/package_18/name_44.as new file mode 100644 index 0000000..9633db0 --- /dev/null +++ b/src/package_18/name_44.as @@ -0,0 +1,797 @@ +package package_18 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.BitmapData; + import flash.display.DisplayObject; + import flash.display.Sprite; + import flash.display.Stage; + import flash.display.Stage3D; + import flash.display3D.Context3D; + import flash.display3D.Context3DRenderMode; + import flash.events.Event; + import flash.geom.Vector3D; + import flash.ui.Keyboard; + import package_10.class_1; + import package_19.name_91; + import package_2.name_9; + import package_21.name_77; + import package_21.name_78; + import package_21.name_81; + import package_22.name_83; + import package_22.name_87; + import package_23.name_103; + import package_23.name_92; + import package_23.name_97; + import package_24.DirectionalLight; + import package_25.name_113; + import package_25.name_98; + import package_26.name_100; + import package_27.name_95; + import package_28.name_93; + import package_29.MouseEvent3D; + import package_3.TankMaterial2; + import package_3.name_10; + import package_3.name_29; + import package_3.name_33; + import package_3.name_7; + import package_9.name_23; + + use namespace alternativa3d; + + public class name_44 extends class_1 implements class_3 + { + public static const SKYBOX_CONTAINER_ID:String = "skyboxContainer"; + + public static const MAP_GEOMETRY_CONTAINER_ID:String = "mapGeometryContainer"; + + public static const LIGHTS_CONTAINER_ID:String = "lightsContainer"; + + public static const DYNAMIC_OBJECTS_CONTAINER_ID:String = "dynamicObjectsContainer"; + + public static const EFFECTS_CONTAINER_ID:String = "effectsContainer"; + + private static const BIT_DEBUG_GEOMETRY:int = 1; + + private static const BIT_DEBUG_LIGHTS:int = 1 << 1; + + private var rootContainer:name_78; + + private var skyboxContainer:name_78; + + private var mapGeometryContainer:name_78; + + private var lightsContainer:name_78; + + private var dynamicObjectsContainer:name_78; + + private var effectsContainer:name_78; + + private var var_12:Object = {}; + + private var view:name_81; + + private var camera:name_90; + + private var var_13:name_102; + + private var axisIndicator:name_23; + + private var renderers:name_86; + + private var var_11:name_86; + + private var effects:Vector.; + + private var numEffects:int; + + private var var_14:Boolean = true; + + private var var_8:Object = {}; + + private var var_16:name_89; + + private var var_20:Boolean; + + private var var_18:Boolean; + + private var objectPoolManager:name_100 = new name_100(); + + private var var_19:Vector.; + + private var var_17:name_95 = new name_95(); + + private var stage:Stage; + + private var stage3d:Stage3D; + + private var resourceManager:name_101; + + private var var_9:name_92; + + private var staticShadowRenderer:name_97; + + private var var_10:Vector.; + + private var var_7:Vector.; + + private var var_15:Boolean; + + private var var_6:name_93; + + private var var_5:name_98; + + public function name_44(priority:int, stage:Stage) + { + super(priority); + this.stage = stage; + this.renderers = new name_86(); + this.var_11 = new name_86(); + this.effects = new Vector.(); + this.rootContainer = new name_78(); + this.rootContainer.name = "root"; + this.skyboxContainer = this.method_34(SKYBOX_CONTAINER_ID); + this.mapGeometryContainer = this.method_34(MAP_GEOMETRY_CONTAINER_ID); + this.lightsContainer = this.method_34(LIGHTS_CONTAINER_ID); + this.dynamicObjectsContainer = this.method_34(DYNAMIC_OBJECTS_CONTAINER_ID); + this.effectsContainer = this.method_34(EFFECTS_CONTAINER_ID); + this.var_16 = new name_89(this.lightsContainer); + this.view = new name_81(100,100,false,6710886,1,4); + this.view.name_106(); + this.camera = new name_90(10,50000); + this.camera.nearClipping = 1; + this.camera.view = this.view; + this.rootContainer.addChild(this.camera); + var giLight:DirectionalLight = new DirectionalLight(9222892); + giLight.intensity = 0.5; + giLight.rotationX = Math.PI; + this.var_5 = new name_98(); + this.var_5.gravity = new Vector3D(0,0,-1); + this.var_5.wind = new Vector3D(1,0,0); + this.rootContainer.addChild(this.var_5); + this.axisIndicator = new name_23(100); + this.resourceManager = new name_101(); + this.var_9 = new name_92(); + this.staticShadowRenderer = new name_97(null,1024,4); + this.var_10 = new Vector.(); + this.rootContainer.addEventListener(MouseEvent3D.CLICK,this.onClick); + } + + private function onClick(e:MouseEvent3D) : void + { + if(e.target is name_91) + { + trace(e.target,e.target.name,name_91(e.target).offset,e.target.scaleX,e.target.scaleY,e.target.scaleZ); + } + else + { + trace(e.target,e.target.name); + } + } + + public function get lights() : name_89 + { + return this.var_16; + } + + public function name_41(mode:int) : void + { + name_9.fogMode = mode; + name_7.fogMode = mode; + TankMaterial2.fogMode = mode; + name_33.fogMode = mode; + name_10.fogMode = mode; + name_79.fogMode = mode; + name_29.fogMode = mode; + if(mode == 1) + { + this.var_5.fogFar = name_9.fogFar; + } + else + { + this.var_5.fogFar = 0; + } + } + + public function name_47(value:Number) : void + { + name_9.fogNear = value; + name_7.fogNear = value; + TankMaterial2.fogNear = value; + name_33.fogNear = value; + name_10.fogNear = value; + name_29.fogNear = value; + this.var_5.fogNear = value; + } + + public function name_48(value:Number) : void + { + name_9.fogFar = value; + name_7.fogFar = value; + TankMaterial2.fogFar = value; + name_33.fogFar = value; + name_10.fogFar = value; + name_29.fogFar = value; + this.var_5.fogFar = value; + } + + public function name_49(value:Number) : void + { + name_9.fogMaxDensity = value; + name_7.fogMaxDensity = value; + TankMaterial2.fogMaxDensity = value; + name_33.fogMaxDensity = value; + name_10.fogMaxDensity = value; + name_79.fogMaxDensity = value; + name_29.fogMaxDensity = value; + this.var_5.fogMaxDensity = value; + } + + public function name_40(color:uint) : void + { + var r:Number = (color >> 16 & 0xFF) / 255; + var g:Number = (color >> 8 & 0xFF) / 255; + var b:Number = (color & 0xFF) / 255; + name_9.fogColorR = r; + name_9.fogColorG = g; + name_9.fogColorB = b; + name_7.fogColorR = r; + name_7.fogColorG = g; + name_7.fogColorB = b; + TankMaterial2.fogColorR = r; + TankMaterial2.fogColorG = g; + TankMaterial2.fogColorB = b; + name_33.fogColorR = r; + name_33.fogColorG = g; + name_33.fogColorB = b; + name_10.fogColorR = r; + name_10.fogColorG = g; + name_10.fogColorB = b; + name_79.fogColorR = r; + name_79.fogColorG = g; + name_79.fogColorB = b; + name_29.fogColorR = r; + name_29.fogColorG = g; + name_29.fogColorB = b; + this.var_5.name_107 = color; + } + + public function name_38(value:Number) : void + { + name_79.fogHeight = value; + } + + public function name_34(value:Number) : void + { + name_79.fogOffset = value; + } + + public function name_36(textureParams:String) : void + { + var fogBitmap:BitmapData = name_104.name_109(textureParams,128); + var fogInitializator:name_99 = new name_99(fogBitmap,this); + if(this.method_35()) + { + fogInitializator.execute(this.stage3d); + } + else + { + this.var_10.push(fogInitializator); + } + } + + public function method_33(bitmapData:BitmapData) : void + { + if(!this.method_35()) + { + throw new Error("Context3D is not available. Use setFogTextureParams() instead."); + } + if(this.var_6 != null) + { + this.method_28(this.var_6); + } + this.var_6 = new name_93(bitmapData); + this.method_29(this.var_6); + name_9.method_33(this.var_6); + name_7.method_33(this.var_6); + TankMaterial2.method_33(this.var_6); + name_29.method_33(this.var_6); + name_33.method_33(this.var_6); + name_10.method_33(this.var_6); + name_79.method_33(this.var_6); + } + + public function method_57() : Boolean + { + return this.var_15; + } + + public function method_58() : void + { + var shadowRendererConstructor:name_84 = null; + this.var_15 = true; + if(this.var_7 != null) + { + for each(shadowRendererConstructor in this.var_7) + { + shadowRendererConstructor.name_111(); + } + this.var_7 = null; + } + } + + public function method_59(shadowRendererConstructor:name_84) : void + { + if(shadowRendererConstructor == null) + { + throw new ArgumentError("Parameter shadowRendererConstructor is null"); + } + if(this.var_15) + { + throw new Error("Cannot add constructor: shadow system is ready"); + } + if(this.var_7 == null) + { + this.var_7 = new Vector.(); + } + var index:int = int(this.var_7.indexOf(shadowRendererConstructor)); + if(index < 0) + { + this.var_7.push(shadowRendererConstructor); + } + } + + public function method_49(shadowRendererConstructor:name_84) : void + { + var index:int = 0; + if(this.var_7 != null) + { + index = int(this.var_7.indexOf(shadowRendererConstructor)); + if(index >= 0) + { + this.var_7.splice(index,1); + } + } + } + + public function method_55() : name_92 + { + return this.var_9; + } + + public function method_54(value:int) : void + { + this.view.antiAlias = value; + } + + public function method_72() : int + { + return this.view.antiAlias; + } + + public function method_70(renderer:name_103) : void + { + if(renderer == null) + { + throw new ArgumentError("Parameter renderer is null"); + } + if(this.var_9.renderers.indexOf(renderer) < 0) + { + this.var_9.renderers.push(renderer); + } + } + + public function method_65(renderer:name_103) : void + { + var index:int = int(this.var_9.renderers.indexOf(renderer)); + if(index >= 0) + { + this.var_9.renderers.splice(index,1); + } + } + + public function name_37(stage3d:Stage3D) : void + { + this.stage3d = stage3d; + this.method_38(stage3d.context3D); + } + + public function requestContext3D() : void + { + this.stage3d = this.stage.stage3Ds[0]; + this.stage3d.addEventListener(Event.CONTEXT3D_CREATE,this.method_39); + this.stage3d.requestContext3D(Context3DRenderMode.AUTO); + } + + public function method_29(resource:name_77) : void + { + this.resourceManager.method_29(resource); + } + + public function method_32(resources:Vector.) : void + { + this.resourceManager.method_32(resources); + } + + public function method_28(resource:name_77) : void + { + this.resourceManager.method_28(resource); + } + + public function method_31(resources:Vector.) : void + { + this.resourceManager.method_31(resources); + } + + public function clear() : void + { + } + + public function method_62() : name_78 + { + return this.rootContainer; + } + + public function method_68() : name_78 + { + return this.mapGeometryContainer; + } + + public function method_46() : name_78 + { + return this.dynamicObjectsContainer; + } + + public function method_60() : name_78 + { + return this.effectsContainer; + } + + public function method_40(containerId:String) : name_78 + { + return this.var_12[containerId]; + } + + public function method_30(resource:name_77) : void + { + this.resourceManager.method_30(resource); + } + + public function method_47(containerId:String, container:name_78, uploadResources:Boolean) : void + { + if(this.method_40(containerId) != null) + { + throw new Error("Container with id \"" + containerId + "\" already exists"); + } + this.var_12[containerId] = container; + this.rootContainer.addChild(container); + if(uploadResources) + { + this.resourceManager.method_32(container.getResources(true)); + } + } + + public function name_42() : name_23 + { + return this.axisIndicator; + } + + public function method_41(name:String) : Sprite + { + var view:name_81 = null; + var overlay:Sprite = this.var_8[name]; + if(overlay == null) + { + overlay = new Sprite(); + this.var_8[name] = overlay; + view = this.camera.view; + overlay.x = view.x + (view.width >> 1); + overlay.y = view.y + (view.height >> 1); + view.parent.addChild(overlay); + } + return overlay; + } + + public function method_51(name:String) : void + { + var overlay:Sprite = this.var_8[name]; + if(overlay != null) + { + delete this.var_8[name]; + overlay.parent.removeChild(overlay); + } + } + + public function addObject(object:name_78) : void + { + this.rootContainer.addChild(object); + this.resourceManager.method_32(object.getResources()); + } + + public function name_71() : name_81 + { + return this.view; + } + + public function name_39() : DisplayObject + { + return this.camera.diagram; + } + + public function method_43(objects:Vector.) : void + { + var object3D:name_78 = null; + for each(object3D in objects) + { + } + } + + public function method_63(renderer:name_82) : void + { + this.renderers.add(renderer); + } + + public function method_64(renderer:name_82) : void + { + this.renderers.remove(renderer); + } + + public function method_56(renderer:name_82) : void + { + this.var_11.add(renderer); + } + + public function method_53(renderer:name_82) : void + { + this.var_11.remove(renderer); + } + + public function method_37(effect:name_85) : void + { + if(this.effects.indexOf(effect) >= 0) + { + throw new Error("Effect " + effect + " already exists"); + } + var _loc2_:* = this.numEffects++; + this.effects[_loc2_] = effect; + effect.addedToRenderSystem(this); + } + + public function method_48(effect:name_113) : void + { + this.var_5.method_37(effect); + } + + public function name_63(controller:name_102) : void + { + if(this.var_13 == controller) + { + return; + } + this.var_13 = controller; + controller.name_108(); + } + + public function name_27() : name_90 + { + return this.camera; + } + + public function method_45() : void + { + this.var_14 = false; + false; + } + + public function method_69() : void + { + this.var_14 = true; + true; + } + + public function name_46(x:int, y:int, width:int, height:int) : void + { + var overlay:Sprite = null; + var view:name_81 = this.camera.view; + view.x = x; + view.y = y; + view.width = width; + view.height = height; + for each(var _loc9_ in this.var_8) + { + overlay = _loc9_; + _loc9_; + overlay.x = x + (width >> 1); + overlay.y = y + (height >> 1); + } + } + + public function method_42() : Context3D + { + return this.stage3d.context3D; + } + + override public function start() : void + { + var input:name_87 = name_87(var_4.getTaskInterface(name_87)); + input.name_94(name_83.KEY_DOWN,this.method_36,Keyboard.F7); + input.name_94(name_83.KEY_DOWN,this.method_36,Keyboard.F8); + input.name_94(name_83.KEY_DOWN,this.method_36,Keyboard.TAB); + } + + override public function stop() : void + { + var overlay:Sprite = null; + for each(var _loc4_ in this.var_8) + { + overlay = _loc4_; + _loc4_; + overlay.parent.removeChild(overlay); + } + this.stage3d.context3D.clear(0,0,0,1,1,0,4294967295); + this.stage3d.context3D.present(); + this.resourceManager.clear(); + this.staticShadowRenderer.dispose(); + } + + override public function run() : void + { + var i:int = 0; + var overlay:Sprite = null; + var renderer:name_82 = null; + var effect:name_85 = null; + if(this.stage3d == null || this.stage3d.context3D == null) + { + return; + } + for each(var _loc7_ in this.var_8) + { + overlay = _loc7_; + _loc7_; + overlay.graphics.clear(); + } + for(i = 0; i < this.renderers.numRenderers; i++) + { + renderer = this.renderers.renderers[i]; + renderer.render(); + } + if(this.var_13 != null && this.var_14) + { + this.var_13.update(); + } + this.camera.name_112(); + for(i = 0; i < this.var_11.numRenderers; i++) + { + renderer = this.var_11.renderers[i]; + renderer.render(); + } + for(i = 0; i < this.numEffects; ) + { + effect = this.effects[i]; + if(!effect.play(this.camera)) + { + this.effects[i] = this.effects[--this.numEffects]; + this.effects[this.numEffects] = null; + effect.destroy(); + i--; + } + i++; + } + if(this.axisIndicator.parent != null) + { + this.axisIndicator.update(this.camera); + } + this.camera.startTimer(); + this.var_9.update(this.rootContainer); + this.camera.render(this.stage3d); + this.camera.stopTimer(); + } + + public function method_71(mainDirectionalLight:DirectionalLight) : void + { + var staticShadowInitializer:name_96 = new name_96(this.staticShadowRenderer,this.mapGeometryContainer,mainDirectionalLight); + if(this.method_35()) + { + staticShadowInitializer.execute(this.method_42()); + } + else + { + this.var_10.push(staticShadowInitializer); + } + } + + private function method_35() : Boolean + { + return this.stage3d != null && this.stage3d.context3D != null; + } + + private function method_34(id:String) : name_78 + { + var container:name_78 = new name_78(); + container.name = id; + this.var_12[id] = container; + this.rootContainer.addChild(container); + return container; + } + + private function method_39(event:Event) : void + { + this.method_38(this.stage3d.context3D); + } + + private function method_38(context3D:Context3D) : void + { + var deferredAction:name_88 = null; + context3D.enableErrorChecking = false; + this.resourceManager.name_105(context3D); + this.staticShadowRenderer.context = context3D; + for each(var _loc5_ in this.var_10) + { + deferredAction = _loc5_; + _loc5_; + deferredAction.execute(this.stage3d); + } + this.var_10 = null; + } + + private function method_36(eventType:name_83, keyCode:uint) : void + { + switch(keyCode) + { + case Keyboard.F7: + case Keyboard.F8: + case Keyboard.TAB: + } + } + + private function addObject3DMarkers(objects:Vector.) : Vector. + { + var object:name_78 = null; + var textMarker:name_80 = null; + if(objects == null) + { + return new Vector.(); + } + var markers:Vector. = new Vector.(objects.length); + for(var i:int = 0; i < objects.length; i++) + { + object = objects[i]; + textMarker = name_80(this.objectPoolManager.name_110(name_80)); + textMarker.init(this.method_41("markers"),object.name || "[none]",object); + this.method_37(textMarker); + markers[i] = textMarker; + } + return markers; + } + + private function method_67() : void + { + } + + private function method_61() : void + { + this.camera.debug = this.var_17.flags != 0; + } + + private function method_50() : void + { + } + + private function method_44() : void + { + } + + public function method_66() : void + { + if(this.stage3d != null) + { + this.stage3d.context3D.clear(51 / 255,48 / 255,38 / 255); + this.stage3d.context3D.present(); + } + } + + public function method_52() : void + { + } + } +} + diff --git a/src/package_18/name_495.as b/src/package_18/name_495.as new file mode 100644 index 0000000..6c1eb4c --- /dev/null +++ b/src/package_18/name_495.as @@ -0,0 +1,31 @@ +package package_18 +{ + import alternativa.engine3d.alternativa3d; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_28.name_119; + import package_28.name_129; + import package_4.class_5; + + use namespace alternativa3d; + + public class name_495 extends class_5 + { + public var blendModeSource:String = "one"; + + public var blendModeDestination:String = "zero"; + + public function name_495(diffuseMap:name_129 = null, opacityMap:name_129 = null, alpha:Number = 1, blendModeSource:String = "one", blendModeDestination:String = "zero") + { + super(diffuseMap,opacityMap,alpha); + this.blendModeSource = blendModeSource; + this.blendModeDestination = blendModeDestination; + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + } + } +} + diff --git a/src/package_18/name_79.as b/src/package_18/name_79.as new file mode 100644 index 0000000..fea4b7d --- /dev/null +++ b/src/package_18/name_79.as @@ -0,0 +1,293 @@ +package package_18 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.BitmapData; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DProgramType; + import flash.display3D.VertexBuffer3D; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import flash.utils.getQualifiedClassName; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_139; + import package_21.name_78; + import package_28.name_119; + import package_28.name_129; + import package_28.name_93; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + import package_4.class_4; + import package_4.name_127; + import package_4.name_28; + + use namespace alternativa3d; + + public class name_79 extends class_4 + { + private static var fogTexture:name_129; + + public static const DISABLED:int = 0; + + public static const SIMPLE:int = 1; + + public static const ADVANCED:int = 2; + + public static var fogMode:int = DISABLED; + + public static var fogOffset:Number = 0; + + public static var fogHeight:Number = 5000; + + public static var fogMaxDensity:Number = 1; + + public static var fogColorR:Number = 200 / 255; + + public static var fogColorG:Number = 162 / 255; + + public static var fogColorB:Number = 200 / 255; + + alternativa3d static const _samplerSetProcedure:name_114 = new name_114(["#v0=vUV","#s0=sTexture","#c0=cAlpha","tex t0, v0, s0 <2d, linear,clamp, miplinear>","mov t0.w, c0.w","mov o0, t0"]); + + alternativa3d static const _samplerSetProcedureOpacity:name_114 = new name_114(["#v0=vUV","#s0=sTexture","#s1=sOpacity","#c0=cAlpha","tex t0, v0, s0 <2d, linear,clamp, miplinear>","tex t1, v0, s1 <2d, linear,clamp, miplinear>","mov t0.w, t1.x","mul t0.w, t0.w, c0.w","mov o0, t0"]); + + alternativa3d static const _samplerSetProcedureDiffuseAlpha:name_114 = new name_114(["#v0=vUV","#s0=sTexture","#c0=cAlpha","tex t0, v0, s0 <2d, linear,clamp, miplinear>","mul t0.w, t0.w, c0.w","mov o0, t0"]); + + alternativa3d static const _passUVProcedure:name_114 = new name_114(["#v0=vUV","#a0=aUV","mov v0, a0"]); + + private static const passSimpleFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z"],"passSimpleFogConst"); + + private static const outputWithSimpleFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogColor","#c1=cFogRange","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul i0.xyz, i0.xyz, t0.y","mul t0.xyz, c0.xyz, t0.x","add i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"outputWithSimpleFog"); + + private static const postPassAdvancedFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z","mov v0.zw, i1.xwxw","mov o0, i1"],"postPassAdvancedFogConst"); + + private static const outputWithAdvancedFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogConsts","#c1=cFogRange","#s0=sFogTexture","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul i0.xyz, i0.xyz, t0.y","mov t1.xyzw, c0.yyzw","div t0.z, v0.z, v0.w","mul t0.z, t0.z, c0.x","add t1.x, t1.x, t0.z","tex t1, t1, s0 <2d, repeat, linear, miplinear>","mul t0.xyz, t1.xyz, t0.x","add i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"outputWithAdvancedFog"); + + private static var _programs:Dictionary = new Dictionary(); + + public var diffuseMap:name_129; + + public var opacityMap:name_129; + + public var alpha:Number = 1; + + public var var_21:Boolean = false; + + public function name_79(diffuseMap:name_129 = null, opacityMap:name_129 = null, alpha:Number = 1) + { + super(); + this.diffuseMap = diffuseMap; + this.opacityMap = opacityMap; + this.alpha = alpha; + } + + public static function method_33(texture:name_129) : void + { + fogTexture = texture; + } + + override alternativa3d function fillResources(resources:Dictionary, resourceType:Class) : void + { + super.alternativa3d::fillResources(resources,resourceType); + if(this.diffuseMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.diffuseMap)) as Class,resourceType))) + { + resources[this.diffuseMap] = true; + } + if(this.opacityMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.opacityMap)) as Class,resourceType))) + { + resources[this.opacityMap] = true; + } + } + + private function method_75(targetObject:name_78, key:int, fogMode:int) : name_127 + { + var outputProcedure:name_114 = null; + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var positionVar:String = "aPosition"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + if(targetObject.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(targetObject.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + vertexLinker.name_123(alternativa3d::_passUVProcedure); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + if(key == 0) + { + outputProcedure = alternativa3d::_samplerSetProcedure; + } + else if(key == 1) + { + outputProcedure = alternativa3d::_samplerSetProcedureOpacity; + } + else + { + outputProcedure = alternativa3d::_samplerSetProcedureDiffuseAlpha; + } + fragmentLinker.name_123(outputProcedure); + if(fogMode == SIMPLE) + { + vertexLinker.name_123(passSimpleFogConstProcedure); + vertexLinker.name_118(passSimpleFogConstProcedure,positionVar); + fragmentLinker.name_120("outColor"); + fragmentLinker.name_125(outputProcedure,"outColor"); + fragmentLinker.name_123(outputWithSimpleFogProcedure); + fragmentLinker.name_118(outputWithSimpleFogProcedure,"outColor"); + } + else if(fogMode == ADVANCED) + { + vertexLinker.name_120("tProjected"); + vertexLinker.name_125(alternativa3d::_projectProcedure,"tProjected"); + vertexLinker.name_123(postPassAdvancedFogConstProcedure); + vertexLinker.name_118(postPassAdvancedFogConstProcedure,positionVar,"tProjected"); + fragmentLinker.name_120("outColor"); + fragmentLinker.name_125(outputProcedure,"outColor"); + fragmentLinker.name_123(outputWithAdvancedFogProcedure); + fragmentLinker.name_118(outputWithAdvancedFogProcedure,"outColor"); + } + vertexLinker.name_142(); + fragmentLinker.name_133(vertexLinker); + fragmentLinker.name_142(); + return new name_127(vertexLinker,fragmentLinker); + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + var program:name_127 = null; + var key:int = 0; + var gM:name_139 = null; + var dist:Number = NaN; + var cLocal:name_139 = null; + var halfW:Number = NaN; + var leftX:Number = NaN; + var leftY:Number = NaN; + var rightX:Number = NaN; + var rightY:Number = NaN; + var angle:Number = NaN; + var dx:Number = NaN; + var dy:Number = NaN; + var len:Number = NaN; + var uScale:Number = NaN; + var uRight:Number = NaN; + var bmd:BitmapData = null; + var i:int = 0; + if(this.diffuseMap == null || this.diffuseMap.alternativa3d::_texture == null) + { + return; + } + if(!this.var_21 && this.opacityMap != null && this.opacityMap.alternativa3d::_texture == null) + { + return; + } + var object:name_78 = surface.alternativa3d::object; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + if(positionBuffer == null || uvBuffer == null) + { + return; + } + var optionsPrograms:Array = _programs[object.alternativa3d::transformProcedure]; + if(optionsPrograms == null) + { + optionsPrograms = []; + _programs[object.alternativa3d::transformProcedure] = optionsPrograms; + } + if(!this.var_21 && !this.opacityMap) + { + key = 0; + } + else if(!this.var_21 && Boolean(this.opacityMap)) + { + key = 1; + } + else if(this.var_21) + { + key = 2; + } + key += 3 * fogMode; + program = optionsPrograms[key]; + if(program == null) + { + program = this.method_75(object,key,fogMode); + program.upload(camera.alternativa3d::context3D); + optionsPrograms[key] = program; + } + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aPosition"),positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aUV"),uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.vertexShader.getVariableIndex("cProjMatrix"),object.alternativa3d::localToCameraTransform); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cAlpha"),0,0,0,this.alpha); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sTexture"),this.diffuseMap.alternativa3d::_texture); + if(Boolean(this.opacityMap) && !this.var_21) + { + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sOpacity"),this.opacityMap.alternativa3d::_texture); + } + if(fogMode == SIMPLE || fogMode == ADVANCED) + { + gM = new name_139(); + gM.copy(object.alternativa3d::localToCameraTransform); + gM.append(camera.alternativa3d::localToGlobalTransform); + dist = fogHeight; + drawUnit.alternativa3d::name_144(program.vertexShader.getVariableIndex("cFogSpace"),-gM.i / dist,-gM.j / dist,-gM.k / dist,(camera.alternativa3d::localToGlobalTransform.l + gM.l + fogOffset + fogHeight) / dist); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogRange"),fogMaxDensity,1,0,1 - fogMaxDensity); + } + if(fogMode == SIMPLE) + { + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogColor"),fogColorR,fogColorG,fogColorB); + } + if(fogMode == ADVANCED) + { + if(fogTexture == null) + { + bmd = new BitmapData(32,1,false,16711680); + for(i = 0; i < 32; i++) + { + bmd.setPixel(i,0,i / 32 * 255 << 16); + } + fogTexture = new name_93(bmd); + fogTexture.upload(camera.alternativa3d::context3D); + } + cLocal = camera.alternativa3d::localToGlobalTransform; + halfW = camera.view.width / 2; + leftX = -halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + leftY = -halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + rightX = halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + rightY = halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + angle = Math.atan2(leftY,leftX) - Math.PI / 2; + if(angle < 0) + { + angle += Math.PI * 2; + } + dx = rightX - leftX; + dy = rightY - leftY; + len = Number(Math.sqrt(dx * dx + dy * dy)); + leftX /= len; + leftY /= len; + rightX /= len; + rightY /= len; + uScale = Math.acos(leftX * rightX + leftY * rightY) / Math.PI / 2; + uRight = angle / Math.PI / 2; + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogConsts"),0.5 * uScale,0.5 - uRight,0); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sFogTexture"),fogTexture.alternativa3d::_texture); + } + if(this.var_21 || this.opacityMap != null || this.alpha < 1) + { + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.SOURCE_ALPHA; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.TRANSPARENT_SORT); + } + else + { + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.OPAQUE); + } + } + } +} + diff --git a/src/package_18/name_80.as b/src/package_18/name_80.as new file mode 100644 index 0000000..c79649c --- /dev/null +++ b/src/package_18/name_80.as @@ -0,0 +1,82 @@ +package package_18 +{ + import flash.display.DisplayObjectContainer; + import flash.geom.Vector3D; + import flash.text.TextField; + import flash.text.TextFieldAutoSize; + import flash.text.TextFormat; + import package_21.name_78; + import package_26.class_18; + import package_26.name_402; + + public class name_80 extends class_18 implements name_85 + { + private static const DEFAULT_TEXT_FORMAT:TextFormat = new TextFormat("Tahoma",12,16777215); + + private static var point1:Vector3D = new Vector3D(); + + private static var point2:Vector3D = new Vector3D(); + + private var tf:TextField; + + private var var_146:Boolean; + + private var anchor:name_78; + + public function name_80(objectPool:name_402) + { + super(objectPool); + this.tf = new TextField(); + this.tf.defaultTextFormat = DEFAULT_TEXT_FORMAT; + this.tf.autoSize = TextFieldAutoSize.LEFT; + } + + public function init(overlay:DisplayObjectContainer, text:String, anchor:name_78) : void + { + overlay.addChild(this.tf); + this.tf.visible = false; + this.anchor = anchor; + this.tf.text = text; + this.var_146 = true; + } + + public function method_255() : void + { + this.var_146 = false; + } + + public function play(camera:name_90) : Boolean + { + point1.x = this.anchor.x; + point1.y = this.anchor.y; + point1.z = this.anchor.z; + if(point2.z > 0 && point2.z > camera.nearClipping) + { + this.tf.x = point2.x; + this.tf.y = point2.y; + this.tf.visible = true; + } + else + { + this.tf.visible = false; + } + return this.var_146; + } + + public function addedToRenderSystem(system:name_44) : void + { + } + + public function destroy() : void + { + if(this.tf.parent != null) + { + this.tf.parent.removeChild(this.tf); + } + this.anchor = null; + this.tf.text = ""; + method_254(); + } + } +} + diff --git a/src/package_18/name_82.as b/src/package_18/name_82.as new file mode 100644 index 0000000..e2fe26c --- /dev/null +++ b/src/package_18/name_82.as @@ -0,0 +1,8 @@ +package package_18 +{ + public interface name_82 + { + function render() : void; + } +} + diff --git a/src/package_18/name_84.as b/src/package_18/name_84.as new file mode 100644 index 0000000..f91ee24 --- /dev/null +++ b/src/package_18/name_84.as @@ -0,0 +1,8 @@ +package package_18 +{ + public interface name_84 + { + function name_111() : void; + } +} + diff --git a/src/package_18/name_85.as b/src/package_18/name_85.as new file mode 100644 index 0000000..04acd32 --- /dev/null +++ b/src/package_18/name_85.as @@ -0,0 +1,12 @@ +package package_18 +{ + public interface name_85 + { + function addedToRenderSystem(param1:name_44) : void; + + function play(param1:name_90) : Boolean; + + function destroy() : void; + } +} + diff --git a/src/package_18/name_86.as b/src/package_18/name_86.as new file mode 100644 index 0000000..782bf6f --- /dev/null +++ b/src/package_18/name_86.as @@ -0,0 +1,36 @@ +package package_18 +{ + public class name_86 + { + public var renderers:Vector. = new Vector.(); + + public var numRenderers:int; + + public function name_86() + { + super(); + } + + public function add(renderer:name_82) : void + { + if(this.renderers.indexOf(renderer) >= 0) + { + throw new Error("Renderer " + renderer + " already exists"); + } + var _loc2_:* = this.numRenderers++; + this.renderers[_loc2_] = renderer; + } + + public function remove(renderer:name_82) : void + { + var index:int = int(this.renderers.indexOf(renderer)); + if(index < 0) + { + throw new Error("Renderer " + renderer + " not found"); + } + this.renderers[index] = this.renderers[--this.numRenderers]; + this.renderers[this.numRenderers] = null; + } + } +} + diff --git a/src/package_18/name_88.as b/src/package_18/name_88.as new file mode 100644 index 0000000..dde4107 --- /dev/null +++ b/src/package_18/name_88.as @@ -0,0 +1,10 @@ +package package_18 +{ + import flash.display.Stage3D; + + public interface name_88 + { + function execute(param1:Stage3D) : void; + } +} + diff --git a/src/package_18/name_89.as b/src/package_18/name_89.as new file mode 100644 index 0000000..2e8c507 --- /dev/null +++ b/src/package_18/name_89.as @@ -0,0 +1,64 @@ +package package_18 +{ + import package_21.name_78; + import package_24.name_376; + + public class name_89 + { + private var container:name_78; + + private var var_142:name_376; + + private var var_143:name_423; + + private var var_144:name_424; + + private var var_145:name_422; + + public function name_89(container:name_78) + { + super(); + this.container = container; + this.var_143 = new name_423(container); + this.var_144 = new name_424(container); + this.var_145 = new name_422(container); + } + + public function set ambientLight(light:name_376) : void + { + if(this.var_142 != light) + { + if(this.var_142 != null) + { + this.container.removeChild(this.var_142); + } + this.var_142 = light; + if(this.var_142 != null) + { + this.container.addChild(this.var_142); + } + } + } + + public function get ambientLight() : name_376 + { + return this.var_142; + } + + public function get directionalLigths() : name_423 + { + return this.var_143; + } + + public function get omniLigths() : name_424 + { + return this.var_144; + } + + public function get spotLights() : name_422 + { + return this.var_145; + } + } +} + diff --git a/src/package_18/name_90.as b/src/package_18/name_90.as new file mode 100644 index 0000000..651e2ec --- /dev/null +++ b/src/package_18/name_90.as @@ -0,0 +1,42 @@ +package package_18 +{ + import package_21.name_124; + import package_46.Matrix3; + import package_46.name_194; + + public class name_90 extends name_124 + { + private static var matrix3:Matrix3 = new Matrix3(); + + public var position:name_194 = new name_194(); + + public var xAxis:name_194 = new name_194(); + + public var yAxis:name_194 = new name_194(); + + public var zAxis:name_194 = new name_194(); + + public function name_90(nearClipping:Number, farClipping:Number) + { + super(nearClipping,farClipping); + } + + public function name_112() : void + { + matrix3.name_196(rotationX,rotationY,rotationZ); + this.position.x = x; + this.position.y = y; + this.position.z = z; + this.xAxis.x = matrix3.a; + this.xAxis.y = matrix3.e; + this.xAxis.z = matrix3.i; + this.yAxis.x = matrix3.b; + this.yAxis.y = matrix3.f; + this.yAxis.z = matrix3.j; + this.zAxis.x = matrix3.c; + this.zAxis.y = matrix3.g; + this.zAxis.z = matrix3.k; + } + } +} + diff --git a/src/package_18/name_96.as b/src/package_18/name_96.as new file mode 100644 index 0000000..8c80e0e --- /dev/null +++ b/src/package_18/name_96.as @@ -0,0 +1,32 @@ +package package_18 +{ + import flash.display3D.Context3D; + import package_21.name_78; + import package_23.name_97; + import package_24.DirectionalLight; + + public class name_96 + { + private var staticShadowRenderer:name_97; + + private var container:name_78; + + private var light:DirectionalLight; + + public function name_96(staticShadowRenderer:name_97, container:name_78, light:DirectionalLight) + { + super(); + this.staticShadowRenderer = staticShadowRenderer; + this.container = container; + this.light = light; + } + + public function execute(context3D:Context3D) : void + { + context3D.configureBackBuffer(50,50,0); + this.staticShadowRenderer.name_401(this.container,this.light,5,3,1000); + this.light.shadow = this.staticShadowRenderer; + } + } +} + diff --git a/src/package_18/name_99.as b/src/package_18/name_99.as new file mode 100644 index 0000000..0e6d5f4 --- /dev/null +++ b/src/package_18/name_99.as @@ -0,0 +1,25 @@ +package package_18 +{ + import flash.display.BitmapData; + import flash.display.Stage3D; + + public class name_99 implements name_88 + { + private var fogBitmap:BitmapData; + + private var renderSystem:name_44; + + public function name_99(fogBitmap:BitmapData, renderSystem:name_44) + { + super(); + this.fogBitmap = fogBitmap; + this.renderSystem = renderSystem; + } + + public function execute(stage3d:Stage3D) : void + { + this.renderSystem.method_33(this.fogBitmap); + } + } +} + diff --git a/src/package_19/name_117.as b/src/package_19/name_117.as new file mode 100644 index 0000000..224c701 --- /dev/null +++ b/src/package_19/name_117.as @@ -0,0 +1,35 @@ +package package_19 +{ + import alternativa.engine3d.alternativa3d; + import package_21.name_78; + import package_4.class_4; + + use namespace alternativa3d; + + public class name_117 + { + public var material:class_4; + + public var indexBegin:int = 0; + + public var numTriangles:int = 0; + + alternativa3d var object:name_78; + + public function name_117() + { + super(); + } + + public function clone() : name_117 + { + var res:name_117 = new name_117(); + res.alternativa3d::object = this.alternativa3d::object; + res.material = this.material; + res.indexBegin = this.indexBegin; + res.numTriangles = this.numTriangles; + return res; + } + } +} + diff --git a/src/package_19/name_380.as b/src/package_19/name_380.as new file mode 100644 index 0000000..c5c6c21 --- /dev/null +++ b/src/package_19/name_380.as @@ -0,0 +1,187 @@ +package package_19 +{ + import alternativa.engine3d.alternativa3d; + import flash.geom.Vector3D; + import flash.utils.Dictionary; + import package_110.name_389; + import package_21.name_116; + import package_21.name_124; + import package_21.name_139; + import package_21.name_386; + import package_21.name_387; + import package_21.name_397; + import package_21.name_78; + import package_28.name_119; + import package_4.class_4; + + use namespace alternativa3d; + + public class name_380 extends name_78 + { + public var geometry:name_119; + + alternativa3d var var_92:Vector. = new Vector.(); + + alternativa3d var var_93:int = 0; + + public function name_380() + { + super(); + } + + override public function intersectRay(origin:Vector3D, direction:Vector3D) : name_387 + { + var contentData:name_387 = null; + var minTime:Number = NaN; + var s:name_117 = null; + var data:name_387 = null; + var childrenData:name_387 = super.intersectRay(origin,direction); + if(boundBox != null && !boundBox.intersectRay(origin,direction)) + { + contentData = null; + } + else if(this.geometry != null) + { + minTime = 1e+22; + for each(s in this.alternativa3d::var_92) + { + data = this.geometry.alternativa3d::intersectRay(origin,direction,s.indexBegin,s.numTriangles); + if(data != null && data.time < minTime) + { + contentData = data; + contentData.object = this; + contentData.surface = s; + minTime = data.time; + } + } + } + if(childrenData == null) + { + return contentData; + } + if(contentData == null) + { + return childrenData; + } + return childrenData.time < contentData.time ? childrenData : contentData; + } + + public function addSurface(material:class_4, indexBegin:uint, numTriangles:uint) : name_117 + { + var res:name_117 = new name_117(); + res.alternativa3d::object = this; + res.material = material; + res.indexBegin = indexBegin; + res.numTriangles = numTriangles; + var _loc5_:* = this.alternativa3d::var_93++; + this.alternativa3d::var_92[_loc5_] = res; + return res; + } + + public function method_216(index:int) : name_117 + { + return this.alternativa3d::var_92[index]; + } + + public function get method_217() : int + { + return this.alternativa3d::var_93; + } + + public function setMaterialToAllSurfaces(material:class_4) : void + { + for(var i:int = 0; i < this.alternativa3d::var_92.length; i++) + { + this.alternativa3d::var_92[i].material = material; + } + } + + override alternativa3d function get useLights() : Boolean + { + return true; + } + + override alternativa3d function updateBoundBox(boundBox:name_386, hierarchy:Boolean, transform:name_139 = null) : void + { + super.alternativa3d::updateBoundBox(boundBox,hierarchy,transform); + if(this.geometry != null) + { + this.geometry.alternativa3d::updateBoundBox(boundBox,transform); + } + } + + override alternativa3d function fillResources(resources:Dictionary, hierarchy:Boolean = false, resourceType:Class = null) : void + { + var s:name_117 = null; + if(this.geometry != null && (resourceType == null || this.geometry is resourceType)) + { + resources[this.geometry] = true; + } + for(var i:int = 0; i < this.alternativa3d::var_93; ) + { + s = this.alternativa3d::var_92[i]; + if(s.material != null) + { + s.material.alternativa3d::fillResources(resources,resourceType); + } + i++; + } + super.alternativa3d::fillResources(resources,hierarchy,resourceType); + } + + override alternativa3d function collectDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + var surface:name_117 = null; + var debug:int = 0; + for(var i:int = 0; i < this.alternativa3d::var_93; ) + { + surface = this.alternativa3d::var_92[i]; + if(surface.material != null) + { + surface.material.alternativa3d::collectDraws(camera,surface,this.geometry,lights,lightsLength); + } + if(alternativa3d::listening) + { + camera.view.alternativa3d::name_398(surface,this.geometry,alternativa3d::transformProcedure); + } + i++; + } + if(camera.debug) + { + debug = int(camera.alternativa3d::checkInDebug(this)); + if(Boolean(debug & name_397.BOUNDS) && boundBox != null) + { + name_397.alternativa3d::name_399(camera,boundBox,alternativa3d::localToCameraTransform); + } + } + } + + override alternativa3d function collectGeometry(collider:name_389, excludedObjects:Dictionary) : void + { + collider.alternativa3d::geometries.push(this.geometry); + collider.alternativa3d::name_400.push(alternativa3d::localToGlobalTransform); + } + + override public function clone() : name_78 + { + var res:name_380 = new name_380(); + res.clonePropertiesFrom(this); + return res; + } + + override protected function clonePropertiesFrom(source:name_78) : void + { + var s:name_117 = null; + super.clonePropertiesFrom(source); + var mesh:name_380 = source as name_380; + this.geometry = mesh.geometry; + this.alternativa3d::var_93 = 0; + this.alternativa3d::var_92.length = 0; + for each(s in mesh.alternativa3d::var_92) + { + this.addSurface(s.material,s.indexBegin,s.numTriangles); + } + } + } +} + diff --git a/src/package_19/name_494.as b/src/package_19/name_494.as new file mode 100644 index 0000000..2aad8fe --- /dev/null +++ b/src/package_19/name_494.as @@ -0,0 +1,249 @@ +package package_19 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3D; + import flash.utils.Dictionary; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_139; + import package_21.name_386; + import package_21.name_397; + import package_21.name_78; + import package_28.name_119; + import package_30.name_114; + import package_30.name_121; + import package_4.class_4; + + use namespace alternativa3d; + + public class name_494 extends name_78 + { + private static const geometries:Dictionary = new Dictionary(); + + private static var transformProcedureStatic:name_114 = new name_114(["sub t0.z, i0.x, c3.x","sub t0.w, i0.y, c3.y","mul t0.z, t0.z, c3.z","mul t0.w, t0.w, c3.w","mov t1.z, c4.w","sin t1.x, t1.z","cos t1.y, t1.z","mul t1.z, t0.z, t1.y","mul t1.w, t0.w, t1.x","sub t0.x, t1.z, t1.w","mul t1.z, t0.z, t1.x","mul t1.w, t0.w, t1.y","add t0.y, t1.z, t1.w","add t0.x, t0.x, c4.x","add t0.y, t0.y, c4.y","add t0.z, i0.z, c4.z","mov t0.w, i0.w","dp4 o0.x, t0, c0","dp4 o0.y, t0, c1","dp4 o0.z, t0, c2","mov o0.w, t0.w","#c0=trans1","#c1=trans2","#c2=trans3","#c3=size","#c4=coords"]); + + private static var deltaTransformProcedureStatic:name_114 = new name_114(["mov t1.z, c4.w","sin t1.x, t1.z","cos t1.y, t1.z","mul t1.z, i0.x, t1.y","mul t1.w, i0.y, t1.x","sub t0.x, t1.z, t1.w","mul t1.z, i0.x, t1.x","mul t1.w, i0.y, t1.y","add t0.y, t1.z, t1.w","mov t0.z, i0.z","mov t0.w, i0.w","dp3 o0.x, t0, c0","dp3 o0.y, t0, c1","dp3 o0.z, t0, c2","#c0=trans1","#c1=trans2","#c2=trans3","#c3=size","#c4=coords"]); + + public var originX:Number = 0.5; + + public var originY:Number = 0.5; + + public var rotation:Number = 0; + + public var width:Number; + + public var height:Number; + + public var perspectiveScale:Boolean = true; + + public var alwaysOnTop:Boolean = false; + + alternativa3d var surface:name_117; + + public function name_494(width:Number, height:Number, material:class_4 = null) + { + super(); + this.width = width; + this.height = height; + this.alternativa3d::surface = new name_117(); + this.alternativa3d::surface.alternativa3d::object = this; + this.material = material; + this.alternativa3d::surface.indexBegin = 0; + this.alternativa3d::surface.numTriangles = 2; + alternativa3d::transformProcedure = transformProcedureStatic; + alternativa3d::deltaTransformProcedure = deltaTransformProcedureStatic; + } + + public function get material() : class_4 + { + return this.alternativa3d::surface.material; + } + + public function set material(value:class_4) : void + { + this.alternativa3d::surface.material = value; + } + + override alternativa3d function fillResources(resources:Dictionary, hierarchy:Boolean = false, resourceType:Class = null) : void + { + if(this.alternativa3d::surface.material != null) + { + this.alternativa3d::surface.material.alternativa3d::fillResources(resources,resourceType); + } + super.alternativa3d::fillResources(resources,hierarchy,resourceType); + } + + override alternativa3d function collectDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + var debug:int = 0; + var geometry:name_119 = this.alternativa3d::method_704(camera.alternativa3d::context3D); + if(this.alternativa3d::surface.material != null) + { + this.alternativa3d::surface.material.alternativa3d::collectDraws(camera,this.alternativa3d::surface,geometry,lights,lightsLength,this.alwaysOnTop ? name_128.NEXT_LAYER : -1); + } + if(alternativa3d::listening) + { + camera.view.alternativa3d::name_398(this.alternativa3d::surface,geometry,alternativa3d::transformProcedure); + } + if(camera.debug) + { + debug = int(camera.alternativa3d::checkInDebug(this)); + if(Boolean(debug & name_397.BOUNDS) && boundBox != null) + { + name_397.alternativa3d::name_399(camera,boundBox,alternativa3d::localToCameraTransform); + } + } + } + + override alternativa3d function setTransformConstants(drawUnit:name_135, surface:name_117, vertexShader:name_121, camera:name_124) : void + { + var scale:Number = Number(Math.sqrt(alternativa3d::localToCameraTransform.a * alternativa3d::localToCameraTransform.a + alternativa3d::localToCameraTransform.e * alternativa3d::localToCameraTransform.e + alternativa3d::localToCameraTransform.i * alternativa3d::localToCameraTransform.i)); + scale += Math.sqrt(alternativa3d::localToCameraTransform.b * alternativa3d::localToCameraTransform.b + alternativa3d::localToCameraTransform.f * alternativa3d::localToCameraTransform.f + alternativa3d::localToCameraTransform.j * alternativa3d::localToCameraTransform.j); + scale += Math.sqrt(alternativa3d::localToCameraTransform.c * alternativa3d::localToCameraTransform.c + alternativa3d::localToCameraTransform.g * alternativa3d::localToCameraTransform.g + alternativa3d::localToCameraTransform.k * alternativa3d::localToCameraTransform.k); + scale /= 3; + if(!this.perspectiveScale && !camera.orthographic) + { + scale *= alternativa3d::localToCameraTransform.l / camera.alternativa3d::focalLength; + } + drawUnit.alternativa3d::name_412(0,alternativa3d::cameraToLocalTransform); + drawUnit.alternativa3d::name_144(3,this.originX,this.originY,this.width * scale,this.height * scale); + drawUnit.alternativa3d::name_144(4,alternativa3d::localToCameraTransform.d,alternativa3d::localToCameraTransform.h,alternativa3d::localToCameraTransform.l,this.rotation); + } + + alternativa3d function method_704(context:Context3D) : name_119 + { + var attributes:Array = null; + var geometry:name_119 = geometries[context]; + if(geometry == null) + { + geometry = new name_119(4); + attributes = new Array(); + attributes[0] = name_126.POSITION; + attributes[1] = name_126.POSITION; + attributes[2] = name_126.POSITION; + attributes[3] = name_126.NORMAL; + attributes[4] = name_126.NORMAL; + attributes[5] = name_126.NORMAL; + attributes[6] = name_126.TEXCOORDS[0]; + attributes[7] = name_126.TEXCOORDS[0]; + attributes[8] = name_126.TEXCOORDS[1]; + attributes[9] = name_126.TEXCOORDS[1]; + attributes[10] = name_126.TEXCOORDS[2]; + attributes[11] = name_126.TEXCOORDS[2]; + attributes[12] = name_126.TEXCOORDS[3]; + attributes[13] = name_126.TEXCOORDS[3]; + attributes[14] = name_126.TEXCOORDS[4]; + attributes[15] = name_126.TEXCOORDS[4]; + attributes[16] = name_126.TEXCOORDS[5]; + attributes[17] = name_126.TEXCOORDS[5]; + attributes[18] = name_126.TEXCOORDS[6]; + attributes[19] = name_126.TEXCOORDS[6]; + attributes[20] = name_126.TEXCOORDS[7]; + attributes[21] = name_126.TEXCOORDS[7]; + attributes[22] = name_126.TANGENT4; + attributes[23] = name_126.TANGENT4; + attributes[24] = name_126.TANGENT4; + attributes[25] = name_126.TANGENT4; + geometry.addVertexStream(attributes); + geometry.setAttributeValues(name_126.POSITION,Vector.([0,0,0,0,1,0,1,1,0,1,0,0])); + geometry.setAttributeValues(name_126.NORMAL,Vector.([0,0,-1,0,0,-1,0,0,-1,0,0,-1])); + geometry.setAttributeValues(name_126.TEXCOORDS[0],Vector.([0,0,0,1,1,1,1,0])); + geometry.setAttributeValues(name_126.TEXCOORDS[1],Vector.([0,0,0,1,1,1,1,0])); + geometry.setAttributeValues(name_126.TEXCOORDS[2],Vector.([0,0,0,1,1,1,1,0])); + geometry.setAttributeValues(name_126.TEXCOORDS[3],Vector.([0,0,0,1,1,1,1,0])); + geometry.setAttributeValues(name_126.TEXCOORDS[4],Vector.([0,0,0,1,1,1,1,0])); + geometry.setAttributeValues(name_126.TEXCOORDS[5],Vector.([0,0,0,1,1,1,1,0])); + geometry.setAttributeValues(name_126.TEXCOORDS[6],Vector.([0,0,0,1,1,1,1,0])); + geometry.setAttributeValues(name_126.TEXCOORDS[7],Vector.([0,0,0,1,1,1,1,0])); + geometry.indices = Vector.([0,1,3,2,3,1]); + geometry.upload(context); + geometries[context] = geometry; + } + return geometry; + } + + override public function clone() : name_78 + { + var res:name_494 = new name_494(this.width,this.height); + res.clonePropertiesFrom(this); + return res; + } + + override protected function clonePropertiesFrom(source:name_78) : void + { + super.clonePropertiesFrom(source); + var src:name_494 = source as name_494; + this.width = src.width; + this.height = src.height; + this.material = src.material; + this.originX = src.originX; + this.originY = src.originY; + this.rotation = src.rotation; + this.perspectiveScale = src.perspectiveScale; + this.alwaysOnTop = src.alwaysOnTop; + } + + override alternativa3d function updateBoundBox(boundBox:name_386, hierarchy:Boolean, transform:name_139 = null) : void + { + var ax:Number = NaN; + var ay:Number = NaN; + var az:Number = NaN; + var size:Number = NaN; + var ww:Number = this.width; + var hh:Number = this.height; + var w:Number = (this.originX >= 0.5 ? this.originX : 1 - this.originX) * ww; + var h:Number = (this.originY >= 0.5 ? this.originY : 1 - this.originY) * hh; + var radius:Number = Number(Math.sqrt(w * w + h * h)); + var cx:Number = 0; + var cy:Number = 0; + var cz:Number = 0; + if(transform != null) + { + ax = transform.a; + ay = transform.e; + az = transform.i; + size = Number(Math.sqrt(ax * ax + ay * ay + az * az)); + ax = transform.b; + ay = transform.f; + az = transform.j; + size += Math.sqrt(ax * ax + ay * ay + az * az); + ax = transform.c; + ay = transform.g; + az = transform.k; + size += Math.sqrt(ax * ax + ay * ay + az * az); + radius *= size / 3; + cx = transform.d; + cy = transform.h; + cz = transform.l; + } + if(cx - radius < boundBox.minX) + { + boundBox.minX = cx - radius; + } + if(cx + radius > boundBox.maxX) + { + boundBox.maxX = cx + radius; + } + if(cy - radius < boundBox.minY) + { + boundBox.minY = cy - radius; + } + if(cy + radius > boundBox.maxY) + { + boundBox.maxY = cy + radius; + } + if(cz - radius < boundBox.minZ) + { + boundBox.minZ = cz - radius; + } + if(cz + radius > boundBox.maxZ) + { + boundBox.maxZ = cz + radius; + } + } + } +} + diff --git a/src/package_19/name_509.as b/src/package_19/name_509.as new file mode 100644 index 0000000..689377a --- /dev/null +++ b/src/package_19/name_509.as @@ -0,0 +1,228 @@ +package package_19 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3DProgramType; + import flash.geom.Vector3D; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import flash.utils.getQualifiedClassName; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_139; + import package_21.name_386; + import package_21.name_78; + import package_28.name_119; + import package_28.name_694; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + import package_4.name_127; + import package_4.name_28; + + use namespace alternativa3d; + + public class name_509 extends name_78 + { + alternativa3d static const shaderProgram:name_127 = method_709(); + + public var thickness:Number = 1; + + alternativa3d var var_625:Vector. = new Vector.(4,true); + + alternativa3d var geometry:name_694; + + public function name_509(color:uint = 0, alpha:Number = 1, thickness:Number = 0.5) + { + super(); + this.color = color; + this.alpha = alpha; + this.thickness = thickness; + this.alternativa3d::geometry = new name_694(); + } + + private static function method_709() : name_127 + { + var vertexShader:name_121 = new name_121(Context3DProgramType.VERTEX); + var transform:name_114 = new name_114(); + transform.name_140(["mov t0, a0","mov t0.w, c0.y","m34 t0.xyz, t0, c2","m34 t1.xyz, a1, c2","sub t2, t1.xyz, t0.xyz","slt t5.x, t0.z, c1.z","sub t5.y, c0.y, t5.x","add t4.x, t0.z, c0.z","sub t4.y, t0.z, t1.z","add t4.y, t4.y, c0.w","div t4.z, t4.x, t4.y","mul t4.xyz, t4.zzz, t2.xyz","add t3.xyz, t0.xyz, t4.xyz","mul t0, t0, t5.y","mul t3.xyz, t3.xyz, t5.x","add t0, t0, t3.xyz","sub t2, t1.xyz, t0.xyz","crs t3.xyz, t2, t0","nrm t3.xyz, t3.xyz","mul t3.xyz, t3.xyz, a0.w","mul t3.xyz, t3.xyz, c1.w","mul t4.x, t0.z, c1.x","mul t3.xyz, t3.xyz, t4.xxx","add t0.xyz, t0.xyz, t3.xyz","m44 o0, t0, c5"]); + transform.name_122(name_115.ATTRIBUTE,0,"pos1"); + transform.name_122(name_115.ATTRIBUTE,1,"pos2"); + transform.name_122(name_115.CONSTANT,0,"ZERO"); + transform.name_122(name_115.CONSTANT,1,"consts"); + transform.name_122(name_115.CONSTANT,2,"worldView",3); + transform.name_122(name_115.CONSTANT,5,"proj",4); + vertexShader.name_123(transform); + vertexShader.name_142(); + var fragmentShader:name_121 = new name_121(Context3DProgramType.FRAGMENT); + var fp:name_114 = new name_114(); + fp.name_140(["mov o0, c0"]); + fp.name_122(name_115.CONSTANT,0,"color"); + fragmentShader.name_123(fp); + fragmentShader.name_142(); + return new name_127(vertexShader,fragmentShader); + } + + public static function method_710(points:Vector., color:uint = 0, alpha:Number = 1, thickness:Number = 1) : name_509 + { + var p0:Vector3D = null; + var p1:Vector3D = null; + var result:name_509 = new name_509(color,alpha,thickness); + var geometry:name_694 = result.alternativa3d::geometry; + for(var i:uint = 0,var count:uint = points.length - 1; i < count; i += 2) + { + p0 = points[i]; + p1 = points[i + 1]; + geometry.alternativa3d::method_558(p0.x,p0.y,p0.z,p1.x,p1.y,p1.z); + } + result.calculateBoundBox(); + return result; + } + + public static function method_711(points:Vector., color:uint = 0, alpha:Number = 1, thickness:Number = 1) : name_509 + { + var p0:Vector3D = null; + var p1:Vector3D = null; + var result:name_509 = new name_509(color,alpha,thickness); + var geometry:name_694 = result.alternativa3d::geometry; + for(var i:uint = 0,var count:uint = points.length - 1; i < count; i++) + { + p0 = points[i]; + p1 = points[i + 1]; + geometry.alternativa3d::method_558(p0.x,p0.y,p0.z,p1.x,p1.y,p1.z); + } + result.calculateBoundBox(); + return result; + } + + public static function name_511(mesh:name_380, color:uint = 0, alpha:Number = 1, thickness:Number = 1) : name_509 + { + var index:uint = 0; + var v1x:Number = NaN; + var v1y:Number = NaN; + var v1z:Number = NaN; + var v2x:Number = NaN; + var v2y:Number = NaN; + var v2z:Number = NaN; + var v3x:Number = NaN; + var v3y:Number = NaN; + var v3z:Number = NaN; + var result:name_509 = new name_509(color,alpha,thickness); + var geometry:name_119 = mesh.geometry; + var resultGeometry:name_694 = result.alternativa3d::geometry; + var edges:Dictionary = new Dictionary(); + var indices:Vector. = geometry.indices; + var vertices:Vector. = geometry.method_275(name_126.POSITION); + for(var i:int = 0,var count:int = int(indices.length); i < count; ) + { + index = indices[i] * 3; + v1x = vertices[index]; + index++; + v1y = vertices[index]; + index++; + v1z = vertices[index]; + index = indices[int(i + 1)] * 3; + v2x = vertices[index]; + index++; + v2y = vertices[index]; + index++; + v2z = vertices[index]; + index = indices[int(i + 2)] * 3; + v3x = vertices[index]; + index++; + v3y = vertices[index]; + index++; + v3z = vertices[index]; + if(method_708(edges,v1x,v1y,v1z,v2x,v2y,v2z)) + { + resultGeometry.alternativa3d::method_558(v1x,v1y,v1z,v2x,v2y,v2z); + } + if(method_708(edges,v2x,v2y,v2z,v3x,v3y,v3z)) + { + resultGeometry.alternativa3d::method_558(v2x,v2y,v2z,v3x,v3y,v3z); + } + if(method_708(edges,v1x,v1y,v1z,v3x,v3y,v3z)) + { + resultGeometry.alternativa3d::method_558(v1x,v1y,v1z,v3x,v3y,v3z); + } + i += 3; + } + result.calculateBoundBox(); + result.alternativa3d::_x = mesh.alternativa3d::_x; + result.alternativa3d::_y = mesh.alternativa3d::_y; + result.alternativa3d::_z = mesh.alternativa3d::_z; + result.alternativa3d::_rotationX = mesh.alternativa3d::_rotationX; + result.alternativa3d::_rotationY = mesh.alternativa3d::_rotationY; + result.alternativa3d::_rotationZ = mesh.alternativa3d::_rotationZ; + result.alternativa3d::_scaleX = mesh.alternativa3d::_scaleX; + result.alternativa3d::_scaleY = mesh.alternativa3d::_scaleY; + result.alternativa3d::_scaleZ = mesh.alternativa3d::_scaleZ; + return result; + } + + private static function method_708(edges:Dictionary, v1x:Number, v1y:Number, v1z:Number, v2x:Number, v2y:Number, v2z:Number) : Boolean + { + var str:String = null; + if(v1x * v1x + v1y * v1y + v1z * v1z < v2x * v2x + v2y * v2y + v2z * v2z) + { + str = v1x.toString() + v1y.toString() + v1z.toString() + v2x.toString() + v2y.toString() + v2z.toString(); + } + else + { + str = v2x.toString() + v2y.toString() + v2z.toString() + v1x.toString() + v1y.toString() + v1z.toString(); + } + if(Boolean(edges[str])) + { + return false; + } + edges[str] = true; + return true; + } + + public function get alpha() : Number + { + return this.alternativa3d::var_625[3]; + } + + public function set alpha(value:Number) : void + { + this.alternativa3d::var_625[3] = value; + } + + public function get color() : uint + { + return this.alternativa3d::var_625[0] * 255 << 16 | this.alternativa3d::var_625[1] * 255 << 8 | this.alternativa3d::var_625[2] * 255; + } + + public function set color(value:uint) : void + { + this.alternativa3d::var_625[0] = (value >> 16 & 0xFF) / 255; + this.alternativa3d::var_625[1] = (value >> 8 & 0xFF) / 255; + this.alternativa3d::var_625[2] = (value & 0xFF) / 255; + } + + override alternativa3d function updateBoundBox(boundBox:name_386, hierarchy:Boolean, transform:name_139 = null) : void + { + super.alternativa3d::updateBoundBox(boundBox,hierarchy,transform); + if(this.alternativa3d::geometry != null) + { + this.alternativa3d::geometry.alternativa3d::updateBoundBox(boundBox,transform); + } + } + + override alternativa3d function collectDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + this.alternativa3d::geometry.alternativa3d::name_695(camera,this.alternativa3d::var_625,this.thickness,this,alternativa3d::shaderProgram); + } + + override alternativa3d function fillResources(resources:Dictionary, hierarchy:Boolean = false, resourceType:Class = null) : void + { + super.alternativa3d::fillResources(resources,hierarchy,resourceType); + if(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.alternativa3d::geometry)) as Class,resourceType)) + { + resources[this.alternativa3d::geometry] = true; + } + } + } +} + diff --git a/src/package_19/name_528.as b/src/package_19/name_528.as new file mode 100644 index 0000000..43ffc33 --- /dev/null +++ b/src/package_19/name_528.as @@ -0,0 +1,671 @@ +package package_19 +{ + import alternativa.engine3d.alternativa3d; + import flash.utils.ByteArray; + import flash.utils.Dictionary; + import flash.utils.Endian; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_135; + import package_21.name_397; + import package_21.name_78; + import package_28.name_119; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + import package_4.class_4; + + use namespace alternativa3d; + + public class name_528 extends name_380 + { + private static var _transformProcedures:Dictionary = new Dictionary(); + + private static var _deltaTransformProcedures:Dictionary = new Dictionary(); + + public var var_631:Vector.; + + alternativa3d var var_630:Vector.>; + + alternativa3d var var_633:Vector.; + + alternativa3d var var_632:Vector.; + + private var numJoints:int = 0; + + private var maxInfluences:int = 0; + + public function name_528(maxInfluences:int, numJoints:int) + { + super(); + this.numJoints = numJoints; + this.maxInfluences = maxInfluences; + this.var_631 = new Vector.(); + this.alternativa3d::var_630 = new Vector.>(); + this.alternativa3d::var_633 = new Vector.(); + this.alternativa3d::var_632 = new Vector.(); + alternativa3d::transformProcedure = this.method_732(maxInfluences,numJoints); + alternativa3d::deltaTransformProcedure = this.method_733(maxInfluences,numJoints); + } + + override public function addSurface(material:class_4, indexBegin:uint, numTriangles:uint) : name_117 + { + this.alternativa3d::var_633[alternativa3d::var_93] = alternativa3d::transformProcedure; + this.alternativa3d::var_632[alternativa3d::var_93] = alternativa3d::deltaTransformProcedure; + this.alternativa3d::var_630[alternativa3d::var_93] = this.var_631; + return super.addSurface(material,indexBegin,numTriangles); + } + + private function method_737(limit:uint, iterations:uint, surface:name_117, jointsOffsets:Vector., jointBufferVertexSize:uint, inVertices:ByteArray, outVertices:ByteArray, outIndices:Vector., outSurfaces:Vector., outJointsMaps:Vector.) : uint + { + var i:int = 0; + var j:int = 0; + var count:int = 0; + var jointsLength:int = 0; + var index:uint = 0; + var group:Dictionary = null; + var key:* = undefined; + var key2:* = undefined; + var jointIndex:uint = 0; + var weight:Number = NaN; + var localNumJoints:uint = 0; + var newIndexBegin:uint = 0; + var jointsGroupLength:uint = 0; + var n:int = 0; + var faces:Dictionary = null; + var locatedIndices:Dictionary = null; + var resSurface:name_117 = null; + var origin:uint = 0; + var sumWeight:Number = NaN; + var indexBegin:uint = uint(surface.indexBegin); + var indexCount:uint = uint(surface.numTriangles * 3); + var indices:Vector. = geometry.alternativa3d::_indices; + var groups:Dictionary = new Dictionary(); + for(i = int(indexBegin),count = int(indexBegin + indexCount); i < count; ) + { + group = groups[i] = new Dictionary(); + jointsGroupLength = 0; + for(n = 0; n < 3; n++) + { + index = indices[int(i + n)]; + for(j = 0,jointsLength = int(jointsOffsets.length); j < jointsLength; ) + { + inVertices.position = jointBufferVertexSize * index + jointsOffsets[j]; + jointIndex = uint(uint(inVertices.readFloat())); + weight = Number(inVertices.readFloat()); + if(weight > 0) + { + group[jointIndex] = true; + } + j++; + } + } + for(key in group) + { + jointsGroupLength++; + } + if(jointsGroupLength > limit) + { + throw new Error("Unable to divide Skin."); + } + i += 3; + } + var facesGroups:Dictionary = this.method_739(groups,limit,iterations); + var newIndex:uint = 0; + for(key in facesGroups) + { + faces = facesGroups[key]; + localNumJoints = 0; + group = groups[key]; + for(key2 in group) + { + if(group[key2] is Boolean) + { + group[key2] = 3 * localNumJoints++; + } + } + locatedIndices = new Dictionary(); + for(key2 in faces) + { + for(i = 0; i < 3; i++) + { + index = indices[int(key2 + i)]; + if(locatedIndices[index] != null) + { + outIndices.push(locatedIndices[index]); + } + else + { + locatedIndices[index] = newIndex; + outIndices.push(newIndex++); + outVertices.writeBytes(inVertices,index * jointBufferVertexSize,jointBufferVertexSize); + outVertices.position -= jointBufferVertexSize; + origin = uint(outVertices.position); + sumWeight = 0; + for(j = 0; j < jointsLength; ) + { + outVertices.position = origin + jointsOffsets[j]; + jointIndex = uint(uint(outVertices.readFloat())); + weight = Number(outVertices.readFloat()); + outVertices.position -= 8; + if(weight > 0) + { + outVertices.writeFloat(group[jointIndex]); + outVertices.writeFloat(weight); + sumWeight += weight; + } + j++; + } + if(sumWeight != 1) + { + for(j = 0; j < jointsLength; ) + { + outVertices.position = origin + jointsOffsets[j] + 4; + weight = Number(outVertices.readFloat()); + if(weight > 0) + { + outVertices.position -= 4; + outVertices.writeFloat(weight / sumWeight); + } + j++; + } + } + outVertices.position = origin + jointBufferVertexSize; + } + } + } + resSurface = new name_117(); + resSurface.alternativa3d::object = this; + resSurface.material = surface.material; + resSurface.indexBegin = newIndexBegin; + resSurface.numTriangles = (outIndices.length - newIndexBegin) / 3; + outSurfaces.push(resSurface); + outJointsMaps.push(group); + newIndexBegin = uint(outIndices.length); + } + return newIndex; + } + + private function method_739(groups:Dictionary, limit:uint, iterations:uint = 1) : Dictionary + { + var key:* = undefined; + var inKey:* = undefined; + var minLike:Number = NaN; + var group1:Dictionary = null; + var group2:Dictionary = null; + var like:Number = NaN; + var copyKey:* = undefined; + var indices:Dictionary = null; + var indices2:Dictionary = null; + var facesGroups:Dictionary = new Dictionary(); + for(var i:int = 1; i < iterations + 1; i++) + { + minLike = 1 - i / iterations; + for(key in groups) + { + group1 = groups[key]; + for(inKey in groups) + { + if(key != inKey) + { + group2 = groups[inKey]; + like = this.method_738(group1,group2,limit); + if(like >= minLike) + { + delete groups[inKey]; + for(copyKey in group2) + { + group1[copyKey] = true; + } + indices = facesGroups[key]; + if(indices == null) + { + indices = facesGroups[key] = new Dictionary(); + indices[key] = true; + } + indices2 = facesGroups[inKey]; + if(indices2 != null) + { + delete facesGroups[inKey]; + for(copyKey in indices2) + { + indices[copyKey] = true; + } + } + else + { + indices[inKey] = true; + } + } + } + } + } + } + return facesGroups; + } + + private function method_738(group1:Dictionary, group2:Dictionary, limit:uint) : Number + { + var key:* = undefined; + var unionCount:uint = 0; + var intersectCount:uint = 0; + var group1Count:uint = 0; + var group2Count:uint = 0; + for(key in group1) + { + unionCount++; + if(group2[key] != null) + { + intersectCount++; + } + group1Count++; + } + for(key in group2) + { + if(group1[key] == null) + { + unionCount++; + } + group2Count++; + } + if(unionCount > limit) + { + return -1; + } + return intersectCount / unionCount; + } + + public function method_740(limit:uint, iterations:uint = 1) : void + { + var key:* = undefined; + var outIndices:Vector. = null; + var outVertices:ByteArray = null; + var outJointsMaps:Vector. = null; + var maxIndex:uint = 0; + var j:int = 0; + var count:int = 0; + var maxJoints:uint = 0; + var vec:Vector. = null; + var joints:Dictionary = null; + var index:uint = 0; + var attributes:Array = null; + var data:ByteArray = null; + var jointsBuffer:int = geometry.findVertexStreamByAttribute(name_126.JOINTS[0]); + var jointsOffsets:Vector. = new Vector.(); + var jointOffset:int = 0; + if(jointsBuffer >= 0) + { + jointOffset = geometry.getAttributeOffset(name_126.JOINTS[0]) * 4; + jointsOffsets.push(jointOffset); + jointsOffsets.push(jointOffset + 8); + var jbTest:int = geometry.findVertexStreamByAttribute(name_126.JOINTS[1]); + if(jbTest >= 0) + { + jointOffset = geometry.getAttributeOffset(name_126.JOINTS[1]) * 4; + jointsOffsets.push(jointOffset); + jointsOffsets.push(jointOffset + 8); + if(jointsBuffer != jbTest) + { + throw new Error("Cannot divide skin, all joinst must be in the same buffer"); + } + } + jbTest = geometry.findVertexStreamByAttribute(name_126.JOINTS[2]); + if(jbTest >= 0) + { + jointOffset = geometry.getAttributeOffset(name_126.JOINTS[2]) * 4; + jointsOffsets.push(jointOffset); + jointsOffsets.push(jointOffset + 8); + if(jointsBuffer != jbTest) + { + throw new Error("Cannot divide skin, all joinst must be in the same buffer"); + } + } + jbTest = geometry.findVertexStreamByAttribute(name_126.JOINTS[3]); + if(jbTest >= 0) + { + jointOffset = geometry.getAttributeOffset(name_126.JOINTS[3]) * 4; + jointsOffsets.push(jointOffset); + jointsOffsets.push(jointOffset + 8); + if(jointsBuffer != jbTest) + { + throw new Error("Cannot divide skin, all joinst must be in the same buffer"); + } + } + var outSurfaces:Vector. = new Vector.(); + var totalVertices:ByteArray = new ByteArray(); + totalVertices.endian = Endian.LITTLE_ENDIAN; + var totalIndices:Vector. = new Vector.(); + var totalIndicesLength:uint = 0; + var lastMaxIndex:uint = 0; + var lastSurfaceIndex:uint = 0; + var lastIndicesCount:uint = 0; + this.alternativa3d::var_630.length = 0; + var jointsBufferNumMappings:int = int(geometry.alternativa3d::_vertexStreams[jointsBuffer].attributes.length); + var jointsBufferData:ByteArray = geometry.alternativa3d::_vertexStreams[jointsBuffer].data; + for(var i:int = 0; i < alternativa3d::var_93; i++) + { + outIndices = new Vector.(); + outVertices = new ByteArray(); + outJointsMaps = new Vector.(); + outVertices.endian = Endian.LITTLE_ENDIAN; + maxIndex = this.method_737(limit,iterations,alternativa3d::var_92[i],jointsOffsets,jointsBufferNumMappings * 4,jointsBufferData,outVertices,outIndices,outSurfaces,outJointsMaps); + for(j = 0,count = int(outIndices.length); j < count; j++) + { + var _loc31_:* = totalIndicesLength++; + totalIndices[_loc31_] = lastMaxIndex + outIndices[j]; + } + for(j = 0,count = int(outJointsMaps.length); j < count; j++) + { + maxJoints = 0; + vec = this.alternativa3d::var_630[j + lastSurfaceIndex] = new Vector.(); + joints = outJointsMaps[j]; + for(key in joints) + { + index = uint(uint(joints[key] / 3)); + if(vec.length < index) + { + vec.length = index + 1; + } + vec[index] = this.var_631[uint(key / 3)]; + maxJoints++; + } + } + for(j = int(lastSurfaceIndex); j < outSurfaces.length; j++) + { + outSurfaces[j].indexBegin += lastIndicesCount; + } + lastSurfaceIndex += outJointsMaps.length; + lastIndicesCount += outIndices.length; + totalVertices.writeBytes(outVertices,0,outVertices.length); + lastMaxIndex += maxIndex; + } + alternativa3d::var_92 = outSurfaces; + alternativa3d::var_93 = outSurfaces.length; + this.alternativa3d::var_633.length = alternativa3d::var_93; + this.alternativa3d::var_632.length = alternativa3d::var_93; + for(i = 0; i < alternativa3d::var_93; i++) + { + this.alternativa3d::var_633[i] = this.method_732(this.maxInfluences,this.alternativa3d::var_630[i].length); + this.alternativa3d::var_632[i] = this.method_733(this.maxInfluences,this.alternativa3d::var_630[i].length); + } + var newGeometry:name_119 = new name_119(); + newGeometry.alternativa3d::_indices = totalIndices; + for(i = 0; i < geometry.alternativa3d::_vertexStreams.length; i++) + { + attributes = geometry.alternativa3d::_vertexStreams[i].attributes; + newGeometry.addVertexStream(attributes); + if(i == jointsBuffer) + { + newGeometry.alternativa3d::_vertexStreams[i].data = totalVertices; + } + else + { + data = new ByteArray(); + data.endian = Endian.LITTLE_ENDIAN; + data.writeBytes(geometry.alternativa3d::_vertexStreams[i].data); + newGeometry.alternativa3d::_vertexStreams[i].data = data; + } + } + newGeometry.alternativa3d::_numVertices = totalVertices.length / (newGeometry.alternativa3d::_vertexStreams[0].attributes.length << 2); + geometry = newGeometry; + return; + } + throw new Error("Cannot divide skin, joints[0] must be binded"); + } + + private function method_734(root:name_78) : void + { + for(var child:name_78 = root.alternativa3d::childrenList; child != null; child = child.alternativa3d::next) + { + if(child.alternativa3d::transformChanged) + { + child.alternativa3d::composeTransforms(); + } + child.alternativa3d::localToGlobalTransform.combine(root.alternativa3d::localToGlobalTransform,child.alternativa3d::transform); + if(child is name_700) + { + name_700(child).alternativa3d::name_703(); + } + this.method_734(child); + } + } + + override alternativa3d function collectDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + var surface:name_117 = null; + var debug:int = 0; + if(geometry == null) + { + return; + } + for(var child:name_78 = alternativa3d::childrenList; child != null; ) + { + if(child.alternativa3d::transformChanged) + { + child.alternativa3d::composeTransforms(); + } + child.alternativa3d::localToGlobalTransform.copy(child.alternativa3d::transform); + if(child is name_700) + { + name_700(child).alternativa3d::name_703(); + } + this.method_734(child); + child = child.alternativa3d::next; + } + for(var i:int = 0; i < alternativa3d::var_93; ) + { + surface = alternativa3d::var_92[i]; + alternativa3d::transformProcedure = this.alternativa3d::var_633[i]; + alternativa3d::deltaTransformProcedure = this.alternativa3d::var_632[i]; + if(surface.material != null) + { + surface.material.alternativa3d::collectDraws(camera,surface,geometry,lights,lightsLength); + } + if(alternativa3d::listening) + { + camera.view.alternativa3d::name_398(surface,geometry,alternativa3d::transformProcedure); + } + i++; + } + if(camera.debug) + { + debug = int(camera.alternativa3d::checkInDebug(this)); + if(Boolean(debug & name_397.BOUNDS) && boundBox != null) + { + name_397.alternativa3d::name_399(camera,boundBox,alternativa3d::localToCameraTransform); + } + } + } + + override alternativa3d function setTransformConstants(drawUnit:name_135, surface:name_117, vertexShader:name_121, camera:name_124) : void + { + var i:int = 0; + var count:int = 0; + var attribute:int = 0; + var joint:name_700 = null; + for(i = 0; i < this.maxInfluences; i += 2) + { + attribute = int(name_126.JOINTS[i >> 1]); + drawUnit.alternativa3d::setVertexBufferAt(vertexShader.getVariableIndex("joint" + i.toString()),geometry.alternativa3d::getVertexBuffer(attribute),geometry.alternativa3d::_attributesOffsets[attribute],name_126.alternativa3d::FORMATS[attribute]); + } + var surfaceIndex:int = int(alternativa3d::var_92.indexOf(surface)); + var joints:Vector. = this.alternativa3d::var_630[surfaceIndex]; + for(i = 0,count = int(joints.length); i < count; i++) + { + joint = joints[i]; + drawUnit.alternativa3d::name_412(i * 3,joint.alternativa3d::name_704); + } + } + + private function method_732(maxInfluences:int, numJoints:int) : name_114 + { + var joint:int = 0; + var res:name_114 = _transformProcedures[maxInfluences | numJoints << 16]; + if(res != null) + { + return res; + } + res = _transformProcedures[maxInfluences | numJoints << 16] = new name_114(null,"SkinTransformProcedure"); + var array:Array = []; + var j:int = 0; + for(var i:int = 0; i < maxInfluences; i++) + { + joint = int(int(i / 2)); + if(i % 2 == 0) + { + if(i == 0) + { + var _loc8_:* = j++; + array[_loc8_] = "m34 t0.xyz, i0, c[a" + joint + ".x]"; + var _loc9_:* = j++; + array[_loc9_] = "mul o0, t0.xyz, a" + joint + ".y"; + } + else + { + _loc8_ = j++; + array[_loc8_] = "m34 t0.xyz, i0, c[a" + joint + ".x]"; + _loc9_ = j++; + array[_loc9_] = "mul t0.xyz, t0.xyz, a" + joint + ".y"; + var _loc10_:* = j++; + array[_loc10_] = "add o0, o0, t0.xyz"; + } + } + else + { + _loc8_ = j++; + array[_loc8_] = "m34 t0.xyz, i0, c[a" + joint + ".z]"; + _loc9_ = j++; + array[_loc9_] = "mul t0.xyz, t0.xyz, a" + joint + ".w"; + _loc10_ = j++; + array[_loc10_] = "add o0, o0, t0.xyz"; + } + } + _loc8_ = j++; + array[_loc8_] = "mov o0.w, i0.w"; + res.name_140(array); + res.method_290(numJoints * 3); + for(i = 0; i < maxInfluences; i += 2) + { + res.name_122(name_115.ATTRIBUTE,int(i / 2),"joint" + i); + } + return res; + } + + private function method_733(maxInfluences:int, numJoints:int) : name_114 + { + var joint:int = 0; + var res:name_114 = _deltaTransformProcedures[maxInfluences | numJoints << 16]; + if(res != null) + { + return res; + } + res = _deltaTransformProcedures[maxInfluences | numJoints << 16] = new name_114(null,"SkinDeltaTransformProcedure"); + var array:Array = []; + var j:int = 0; + for(var i:int = 0; i < maxInfluences; i++) + { + joint = int(int(i / 2)); + if(i % 2 == 0) + { + if(i == 0) + { + var _loc8_:* = j++; + array[_loc8_] = "m33 t0.xyz, i0, c[a" + joint + ".x]"; + var _loc9_:* = j++; + array[_loc9_] = "mul o0, t0.xyz, a" + joint + ".y"; + } + else + { + _loc8_ = j++; + array[_loc8_] = "m33 t0.xyz, i0, c[a" + joint + ".x]"; + _loc9_ = j++; + array[_loc9_] = "mul t0.xyz, t0.xyz, a" + joint + ".y"; + var _loc10_:* = j++; + array[_loc10_] = "add o0, o0, t0.xyz"; + } + } + else + { + _loc8_ = j++; + array[_loc8_] = "m33 t0.xyz, i0, c[a" + joint + ".z]"; + _loc9_ = j++; + array[_loc9_] = "mul t0.xyz, t0.xyz, a" + joint + ".w"; + _loc10_ = j++; + array[_loc10_] = "add o0, o0, t0.xyz"; + } + } + _loc8_ = j++; + array[_loc8_] = "mov o0.w, i0.w"; + _loc9_ = j++; + array[_loc9_] = "nrm o0.xyz, o0.xyz"; + res.name_140(array); + for(i = 0; i < maxInfluences; i += 2) + { + res.name_122(name_115.ATTRIBUTE,int(i / 2),"joint" + i); + } + return res; + } + + override public function clone() : name_78 + { + var res:name_528 = new name_528(this.maxInfluences,this.numJoints); + res.clonePropertiesFrom(this); + return res; + } + + override protected function clonePropertiesFrom(source:name_78) : void + { + super.clonePropertiesFrom(source); + var skin:name_528 = name_528(source); + if(skin.var_631 != null) + { + this.var_631 = this.method_736(skin.var_631,skin); + } + for(var i:int = 0; i < alternativa3d::var_93; ) + { + this.alternativa3d::var_630[i] = this.method_736(skin.alternativa3d::var_630[i],skin); + this.alternativa3d::var_633[i] = this.method_732(this.maxInfluences,this.alternativa3d::var_630[i].length); + this.alternativa3d::var_632[i] = this.method_733(this.maxInfluences,this.alternativa3d::var_630[i].length); + i++; + } + } + + private function method_736(joints:Vector., skin:name_528) : Vector. + { + var joint:name_700 = null; + var count:int = int(joints.length); + var result:Vector. = new Vector.(); + for(var i:int = 0; i < count; i++) + { + joint = joints[i]; + result[i] = name_700(this.method_735(joint,skin,this)); + } + return result; + } + + private function method_735(joint:name_700, parentSource:name_78, parentDest:name_78) : name_78 + { + var j:name_78 = null; + for(var srcChild:name_78 = parentSource.alternativa3d::childrenList,var dstChild:name_78 = parentDest.alternativa3d::childrenList; srcChild != null; ) + { + if(srcChild == joint) + { + return dstChild; + } + if(srcChild.alternativa3d::childrenList != null) + { + j = this.method_735(joint,srcChild,dstChild); + if(j != null) + { + return j; + } + } + srcChild = srcChild.alternativa3d::next; + dstChild = dstChild.alternativa3d::next; + } + return null; + } + } +} + diff --git a/src/package_19/name_53.as b/src/package_19/name_53.as new file mode 100644 index 0000000..da1170e --- /dev/null +++ b/src/package_19/name_53.as @@ -0,0 +1,231 @@ +package package_19 +{ + import alternativa.engine3d.alternativa3d; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_78; + import package_28.name_119; + import package_30.name_114; + import package_30.name_121; + import package_4.class_4; + + use namespace alternativa3d; + + public class name_53 extends name_380 + { + public static const LEFT:String = "left"; + + public static const RIGHT:String = "right"; + + public static const BACK:String = "back"; + + public static const FRONT:String = "front"; + + public static const BOTTOM:String = "bottom"; + + public static const TOP:String = "top"; + + private static var transformProcedureStatic:name_114 = new name_114(["sub t0.xyz, i0.xyz, c0.xyz","mul t0.x, t0.x, c0.w","mul t0.y, t0.y, c0.w","mul t0.z, t0.z, c0.w","add o0.xyz, t0.xyz, c0.xyz","mov o0.w, i0.w","#c0=cTrans"]); + + private var var_98:name_117; + + private var var_95:name_117; + + private var var_96:name_117; + + private var var_94:name_117; + + private var var_99:name_117; + + private var var_97:name_117; + + private var size:Number; + + public function name_53(size:Number, left:class_4 = null, right:class_4 = null, back:class_4 = null, front:class_4 = null, bottom:class_4 = null, top:class_4 = null, uvPadding:Number = 0) + { + super(); + size *= 0.5; + this.size = size; + geometry = new name_119(24); + var attributes:Array = new Array(); + attributes[0] = name_126.POSITION; + attributes[1] = name_126.POSITION; + attributes[2] = name_126.POSITION; + attributes[6] = name_126.TEXCOORDS[0]; + attributes[7] = name_126.TEXCOORDS[0]; + geometry.addVertexStream(attributes); + geometry.setAttributeValues(name_126.POSITION,Vector.([-size,-size,size,-size,-size,-size,-size,size,-size,-size,size,size,size,size,size,size,size,-size,size,-size,-size,size,-size,size,size,-size,size,size,-size,-size,-size,-size,-size,-size,-size,size,-size,size,size,-size,size,-size,size,size,-size,size,size,size,-size,size,-size,-size,-size,-size,size,-size,-size,size,size,-size,-size,-size,size,-size,size,size,size,size,size,size,-size,size])); + geometry.setAttributeValues(name_126.TEXCOORDS[0],Vector.([uvPadding,uvPadding,uvPadding,1 - uvPadding,1 - uvPadding,1 - uvPadding,1 - uvPadding,uvPadding,uvPadding,uvPadding,uvPadding,1 - uvPadding,1 - uvPadding,1 - uvPadding,1 - uvPadding,uvPadding,uvPadding,uvPadding,uvPadding,1 - uvPadding,1 - uvPadding,1 - uvPadding,1 - uvPadding,uvPadding,uvPadding,uvPadding,uvPadding,1 - uvPadding,1 - uvPadding,1 - uvPadding,1 - uvPadding,uvPadding,uvPadding,uvPadding,uvPadding,1 - uvPadding,1 - uvPadding,1 - uvPadding,1 - uvPadding,uvPadding,uvPadding,uvPadding,uvPadding,1 - uvPadding,1 - uvPadding,1 - uvPadding,1 - uvPadding,uvPadding])); + geometry.indices = Vector.([0,1,3,2,3,1,4,5,7,6,7,5,8,9,11,10,11,9,12,13,15,14,15,13,16,17,19,18,19,17,20,21,23,22,23,21]); + this.var_98 = addSurface(left,0,2); + this.var_95 = addSurface(right,6,2); + this.var_96 = addSurface(back,12,2); + this.var_94 = addSurface(front,18,2); + this.var_99 = addSurface(bottom,24,2); + this.var_97 = addSurface(top,30,2); + alternativa3d::transformProcedure = transformProcedureStatic; + } + + override alternativa3d function collectDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + var surface:name_117 = null; + for(var i:int = 0; i < alternativa3d::var_93; ) + { + surface = alternativa3d::var_92[i]; + if(surface.material != null) + { + surface.material.alternativa3d::collectDraws(camera,surface,geometry,lights,lightsLength,name_128.SKY); + } + if(alternativa3d::listening) + { + camera.view.alternativa3d::name_398(surface,geometry,alternativa3d::transformProcedure); + } + i++; + } + } + + override alternativa3d function setTransformConstants(drawUnit:name_135, surface:name_117, vertexShader:name_121, camera:name_124) : void + { + var dx:Number = NaN; + var dy:Number = NaN; + var dz:Number = NaN; + var len:Number = NaN; + var max:Number = 0; + dx = -this.size - alternativa3d::cameraToLocalTransform.d; + dy = -this.size - alternativa3d::cameraToLocalTransform.h; + dz = -this.size - alternativa3d::cameraToLocalTransform.l; + len = dx * dx + dy * dy + dz * dz; + if(len > max) + { + max = len; + } + dx = this.size - alternativa3d::cameraToLocalTransform.d; + dy = -this.size - alternativa3d::cameraToLocalTransform.h; + dz = -this.size - alternativa3d::cameraToLocalTransform.l; + len = dx * dx + dy * dy + dz * dz; + if(len > max) + { + max = len; + } + dx = this.size - alternativa3d::cameraToLocalTransform.d; + dy = this.size - alternativa3d::cameraToLocalTransform.h; + dz = -this.size - alternativa3d::cameraToLocalTransform.l; + len = dx * dx + dy * dy + dz * dz; + if(len > max) + { + max = len; + } + dx = -this.size - alternativa3d::cameraToLocalTransform.d; + dy = this.size - alternativa3d::cameraToLocalTransform.h; + dz = -this.size - alternativa3d::cameraToLocalTransform.l; + len = dx * dx + dy * dy + dz * dz; + if(len > max) + { + max = len; + } + dx = -this.size - alternativa3d::cameraToLocalTransform.d; + dy = -this.size - alternativa3d::cameraToLocalTransform.h; + dz = this.size - alternativa3d::cameraToLocalTransform.l; + len = dx * dx + dy * dy + dz * dz; + if(len > max) + { + max = len; + } + dx = this.size - alternativa3d::cameraToLocalTransform.d; + dy = -this.size - alternativa3d::cameraToLocalTransform.h; + dz = this.size - alternativa3d::cameraToLocalTransform.l; + len = dx * dx + dy * dy + dz * dz; + if(len > max) + { + max = len; + } + dx = this.size - alternativa3d::cameraToLocalTransform.d; + dy = this.size - alternativa3d::cameraToLocalTransform.h; + dz = this.size - alternativa3d::cameraToLocalTransform.l; + len = dx * dx + dy * dy + dz * dz; + if(len > max) + { + max = len; + } + dx = -this.size - alternativa3d::cameraToLocalTransform.d; + dy = this.size - alternativa3d::cameraToLocalTransform.h; + dz = this.size - alternativa3d::cameraToLocalTransform.l; + len = dx * dx + dy * dy + dz * dz; + if(len > max) + { + max = len; + } + drawUnit.alternativa3d::name_144(0,alternativa3d::cameraToLocalTransform.d,alternativa3d::cameraToLocalTransform.h,alternativa3d::cameraToLocalTransform.l,camera.farClipping / Math.sqrt(max)); + } + + public function name_383(side:String) : name_117 + { + switch(side) + { + case LEFT: + return this.var_98; + case RIGHT: + return this.var_95; + case BACK: + return this.var_96; + case FRONT: + return this.var_94; + case BOTTOM: + return this.var_99; + case TOP: + return this.var_97; + default: + return null; + } + } + + override public function clone() : name_78 + { + var res:name_53 = new name_53(0); + res.clonePropertiesFrom(this); + return res; + } + + override protected function clonePropertiesFrom(source:name_78) : void + { + var surface:name_117 = null; + var newSurface:name_117 = null; + super.clonePropertiesFrom(source); + var src:name_53 = source as name_53; + for(var i:int = 0; i < src.alternativa3d::var_93; ) + { + surface = src.alternativa3d::var_92[i]; + newSurface = alternativa3d::var_92[i]; + if(surface == src.var_98) + { + this.var_98 = newSurface; + } + else if(surface == src.var_95) + { + this.var_95 = newSurface; + } + else if(surface == src.var_96) + { + this.var_96 = newSurface; + } + else if(surface == src.var_94) + { + this.var_94 = newSurface; + } + else if(surface == src.var_99) + { + this.var_99 = newSurface; + } + else if(surface == src.var_97) + { + this.var_97 = newSurface; + } + i++; + } + } + } +} + diff --git a/src/package_19/name_700.as b/src/package_19/name_700.as new file mode 100644 index 0000000..ed0f2ac --- /dev/null +++ b/src/package_19/name_700.as @@ -0,0 +1,62 @@ +package package_19 +{ + import alternativa.engine3d.alternativa3d; + import package_21.name_139; + import package_21.name_78; + + use namespace alternativa3d; + + public class name_700 extends name_78 + { + alternativa3d var name_704:name_139 = new name_139(); + + alternativa3d var bindPoseTransform:name_139 = new name_139(); + + private var var_689:name_139 = new name_139(); + + public function name_700() + { + super(); + } + + alternativa3d function name_701(matrix:Vector.) : void + { + this.alternativa3d::bindPoseTransform.method_294(matrix); + } + + alternativa3d function name_703() : void + { + if(this.alternativa3d::bindPoseTransform != null) + { + this.alternativa3d::name_704.combine(alternativa3d::localToGlobalTransform,this.alternativa3d::bindPoseTransform); + } + } + + override public function clone() : name_78 + { + var res:name_700 = new name_700(); + res.clonePropertiesFrom(this); + return res; + } + + override protected function clonePropertiesFrom(source:name_78) : void + { + var sourceJoint:name_700 = null; + super.clonePropertiesFrom(source); + sourceJoint = source as name_700; + this.alternativa3d::bindPoseTransform.a = sourceJoint.alternativa3d::bindPoseTransform.a; + this.alternativa3d::bindPoseTransform.b = sourceJoint.alternativa3d::bindPoseTransform.b; + this.alternativa3d::bindPoseTransform.c = sourceJoint.alternativa3d::bindPoseTransform.c; + this.alternativa3d::bindPoseTransform.d = sourceJoint.alternativa3d::bindPoseTransform.d; + this.alternativa3d::bindPoseTransform.e = sourceJoint.alternativa3d::bindPoseTransform.e; + this.alternativa3d::bindPoseTransform.f = sourceJoint.alternativa3d::bindPoseTransform.f; + this.alternativa3d::bindPoseTransform.g = sourceJoint.alternativa3d::bindPoseTransform.g; + this.alternativa3d::bindPoseTransform.h = sourceJoint.alternativa3d::bindPoseTransform.h; + this.alternativa3d::bindPoseTransform.i = sourceJoint.alternativa3d::bindPoseTransform.i; + this.alternativa3d::bindPoseTransform.j = sourceJoint.alternativa3d::bindPoseTransform.j; + this.alternativa3d::bindPoseTransform.k = sourceJoint.alternativa3d::bindPoseTransform.k; + this.alternativa3d::bindPoseTransform.l = sourceJoint.alternativa3d::bindPoseTransform.l; + } + } +} + diff --git a/src/package_19/name_91.as b/src/package_19/name_91.as new file mode 100644 index 0000000..6fd9531 --- /dev/null +++ b/src/package_19/name_91.as @@ -0,0 +1,79 @@ +package package_19 +{ + import alternativa.engine3d.alternativa3d; + import package_21.name_116; + import package_21.name_124; + import package_21.name_128; + import package_21.name_135; + import package_21.name_397; + import package_21.name_78; + import package_30.name_114; + import package_30.name_121; + + use namespace alternativa3d; + + public class name_91 extends name_380 + { + private static var transformProcedureStatic:name_114 = new name_114(["sub t0.xyz, c0.xyz, i0.xyz","dp3 t0.w, t0.xyz, c1.xyz","mul t0.w, t0.w, c0.w","nrm t0.xyz, t0.xyz","mul t0.xyz, t0.xyz, t0.w","add o0.xyz, i0.xyz, t0.xyz","mov o0.w, c1.w","#c0=cPos","#c1=cDir"],"DecalTransformProcedure"); + + public var offset:Number; + + public function name_91(offset:Number) + { + super(); + this.offset = offset; + alternativa3d::transformProcedure = transformProcedureStatic; + } + + override alternativa3d function collectDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + var surface:name_117 = null; + var debug:int = 0; + for(var i:int = 0; i < alternativa3d::var_93; ) + { + surface = alternativa3d::var_92[i]; + if(surface.material != null) + { + surface.material.alternativa3d::collectDraws(camera,surface,geometry,lights,lightsLength,name_128.DECALS); + } + if(alternativa3d::listening) + { + camera.view.alternativa3d::name_398(surface,geometry,alternativa3d::transformProcedure); + } + i++; + } + if(camera.debug) + { + debug = int(camera.alternativa3d::checkInDebug(this)); + if(Boolean(debug & name_397.BOUNDS) && boundBox != null) + { + name_397.alternativa3d::name_399(camera,boundBox,alternativa3d::localToCameraTransform); + } + } + } + + override alternativa3d function setTransformConstants(drawUnit:name_135, surface:name_117, vertexShader:name_121, camera:name_124) : void + { + var dx:Number = -alternativa3d::cameraToLocalTransform.c; + var dy:Number = -alternativa3d::cameraToLocalTransform.g; + var dz:Number = -alternativa3d::cameraToLocalTransform.k; + var len:Number = this.offset / Math.sqrt(dx * dx + dy * dy + dz * dz) / camera.alternativa3d::focalLength; + drawUnit.alternativa3d::name_144(vertexShader.getVariableIndex("cPos"),alternativa3d::cameraToLocalTransform.d,alternativa3d::cameraToLocalTransform.h,alternativa3d::cameraToLocalTransform.l,len); + drawUnit.alternativa3d::name_144(vertexShader.getVariableIndex("cDir"),dx,dy,dz,1); + } + + override public function clone() : name_78 + { + var res:name_91 = new name_91(this.offset); + res.clonePropertiesFrom(this); + return res; + } + + override protected function clonePropertiesFrom(source:name_78) : void + { + super.clonePropertiesFrom(source); + this.offset = (source as name_91).offset; + } + } +} + diff --git a/src/package_2/A3DMapBuilder.as b/src/package_2/A3DMapBuilder.as new file mode 100644 index 0000000..a1e3f13 --- /dev/null +++ b/src/package_2/A3DMapBuilder.as @@ -0,0 +1,444 @@ +package package_2 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.BitmapData; + import flash.events.Event; + import flash.events.EventDispatcher; + import flash.utils.ByteArray; + import package_116.name_529; + import package_116.name_530; + import package_116.name_641; + import package_15.name_55; + import package_19.name_117; + import package_19.name_380; + import package_19.name_91; + import package_21.name_116; + import package_21.name_78; + import package_27.name_170; + import package_27.name_642; + import package_28.name_129; + import package_28.name_167; + import package_28.name_241; + import package_28.name_259; + import package_28.name_93; + import package_3.name_10; + import package_4.name_643; + import package_76.name_235; + import package_86.name_257; + + use namespace alternativa3d; + + public class A3DMapBuilder extends EventDispatcher + { + public static const MAIN_FILE:String = "main.a3d"; + + public static const ADDITIONAL_FILES_START:String = "part"; + + public static const TREES_FILE:String = "trees.a3d"; + + public static const MARKET_FILE:String = "market.a3d"; + + public static const PHYSICS_FILE:String = "physics.a3d"; + + public static const BEAMS_FILE:String = "beams.a3d"; + + public static const LIGHTS_FILE:String = "lights.dae"; + + private static const COLLISION_MASK:int = 255; + + private static var fakeEmissionTextureResource:name_93 = new name_93(new BitmapData(1,1,false,8355711)); + + private static var fakeBumpTextureResource:name_93 = new name_93(new BitmapData(1,1,false,8355839)); + + private var var_346:Vector. = new Vector.(); + + private var var_569:Vector.; + + private var var_16:Vector.; + + private var var_406:Vector. = new Vector.(); + + private var var_570:name_170; + + private var mapFiles:name_55; + + private var collector:Vector.; + + private var var_571:name_259 = new name_259(new BitmapData(1,1,false,16711680),new BitmapData(1,1,false,16711680),new BitmapData(1,1,false,16711680),new BitmapData(1,1,false,16711680),new BitmapData(1,1,false,16711680),new BitmapData(1,1,false,16711680)); + + public function A3DMapBuilder() + { + super(); + } + + public function get objects() : Vector. + { + return this.var_346; + } + + public function get collisionPrimitives() : Vector. + { + return this.var_569; + } + + public function get lights() : Vector. + { + return this.var_16; + } + + public function get decals() : Vector. + { + return this.var_406; + } + + public function name_385(mapFiles:name_55) : void + { + var geometryFileName:String = null; + this.mapFiles = mapFiles; + var mapGeometryFiles:Vector. = this.method_636(mapFiles); + this.collector = new Vector.(); + this.var_570 = new name_170(); + for each(geometryFileName in mapGeometryFiles) + { + this.var_570.addTask(new GeometryBuildTask(mapFiles.name_248(geometryFileName),this.collector)); + } + this.var_570.addEventListener(Event.COMPLETE,this.method_632); + this.var_570.run(); + } + + private function method_632(event:Event) : void + { + var surface:name_117 = null; + var object:name_78 = null; + var mesh:name_380 = null; + var meshName:String = null; + var decal:name_91 = null; + var resourceCache:Object = {}; + for each(object in this.collector) + { + mesh = object as name_380; + if(mesh != null) + { + meshName = mesh.name.toLowerCase(); + if(meshName.indexOf("decal") >= 0) + { + decal = new name_91(1.5); + decal.name = meshName; + decal.useShadow = true; + decal.geometry = mesh.geometry; + decal.alternativa3d::var_92 = mesh.alternativa3d::var_92; + decal.alternativa3d::var_93 = mesh.alternativa3d::var_93; + for each(surface in decal.alternativa3d::var_92) + { + surface.alternativa3d::object = decal; + } + decal.boundBox = mesh.boundBox; + decal.matrix = mesh.matrix; + mesh = decal; + this.var_406.push(decal); + } + mesh.calculateBoundBox(); + this.method_634(mesh,resourceCache); + this.var_346.push(mesh); + } + } + this.collector = null; + this.var_570 = null; + this.method_635(this.mapFiles.name_248(TREES_FILE)); + this.method_638(this.mapFiles.name_248(MARKET_FILE)); + this.method_637(this.mapFiles.name_248(BEAMS_FILE)); + this.method_631(this.mapFiles.name_248(LIGHTS_FILE)); + this.method_633(this.mapFiles.name_248(PHYSICS_FILE)); + dispatchEvent(new Event(Event.COMPLETE)); + } + + private function method_638(data:ByteArray) : void + { + var parser:name_529 = null; + var resourceCache:Object = null; + var object:name_78 = null; + var mesh:name_380 = null; + var i:int = 0; + var surface:name_117 = null; + var material:name_641 = null; + var diffName:String = null; + var diffuse:name_129 = null; + var bump:name_129 = null; + var opacity:name_129 = null; + var emission:name_129 = null; + var reflection:name_129 = null; + var envMaterial:name_643 = null; + if(data != null) + { + parser = new name_529(); + parser.method_314(data); + resourceCache = {}; + for each(object in parser.objects) + { + mesh = object as name_380; + if(mesh != null) + { + for(i = 0; i < mesh.method_217; ) + { + surface = mesh.method_216(i); + if(surface.material != null) + { + material = name_641(surface.material); + diffName = name_167(material.textures["diffuse"]).url; + diffuse = this.name_254(material.textures["diffuse"],resourceCache,this.mapFiles); + bump = this.name_254(material.textures["bump"],resourceCache,this.mapFiles); + opacity = this.name_254(material.textures["transparent"],resourceCache,this.mapFiles); + emission = this.name_254(material.textures["emission"],resourceCache,this.mapFiles); + if(diffName.indexOf("vetrino01") >= 0) + { + reflection = this.name_254(new name_167("vetrino_rfl.atf"),resourceCache,this.mapFiles); + envMaterial = new name_643(diffuse,this.var_571,null,reflection,emission,opacity); + envMaterial.reflection = 0.4; + surface.material = envMaterial; + } + else + { + surface.material = new name_9(diffuse,emission,1,opacity); + } + } + i++; + } + this.var_346.push(mesh); + } + } + } + } + + private function method_634(mesh:name_380, resourceCache:Object) : void + { + var surface:name_117 = null; + var parserMaterial:name_641 = null; + var diffuseTextureResource:name_129 = null; + var emissionTextureResource:name_129 = null; + var opacityTextureResource:name_129 = null; + var material:name_9 = null; + for each(surface in mesh.alternativa3d::var_92) + { + parserMaterial = surface.material as name_641; + if(parserMaterial != null) + { + diffuseTextureResource = this.name_254(parserMaterial.textures["diffuse"],resourceCache,this.mapFiles); + emissionTextureResource = this.name_254(parserMaterial.textures["emission"],resourceCache,this.mapFiles); + opacityTextureResource = this.name_254(parserMaterial.textures["transparent"],resourceCache,this.mapFiles); + if(emissionTextureResource == null) + { + material = new name_9(diffuseTextureResource,fakeEmissionTextureResource,0,opacityTextureResource); + } + else + { + material = new name_9(diffuseTextureResource,emissionTextureResource,1,opacityTextureResource); + } + surface.material = material; + } + } + } + + private function method_636(mapFiles:name_55) : Vector. + { + var name:String = null; + var names:Vector. = new Vector.(); + names.push(MAIN_FILE); + for(name in mapFiles.data) + { + if(name.indexOf(ADDITIONAL_FILES_START) == 0 && name.indexOf(".a3d") > 0) + { + names.push(name); + } + } + return names; + } + + private function method_635(data:ByteArray) : void + { + var parser:name_529 = null; + var resourceCache:Object = null; + var object:name_78 = null; + var mesh:name_380 = null; + var i:int = 0; + var surface:name_117 = null; + var material:name_641 = null; + var diffuse:name_129 = null; + var bump:name_129 = null; + var opacity:name_129 = null; + var trMaterial:name_10 = null; + if(data != null) + { + parser = new name_529(); + parser.method_314(data); + resourceCache = {}; + for each(object in parser.objects) + { + mesh = object as name_380; + if(mesh != null) + { + for(i = 0; i < mesh.method_217; ) + { + surface = mesh.method_216(i); + if(surface.material != null) + { + material = name_641(surface.material); + diffuse = this.name_254(material.textures["diffuse"],resourceCache,this.mapFiles); + bump = this.name_254(material.textures["bump"],resourceCache,this.mapFiles); + opacity = this.name_254(material.textures["transparent"],resourceCache,this.mapFiles); + trMaterial = new name_10(diffuse,fakeBumpTextureResource,null,null,opacity); + trMaterial.var_25 = 0; + trMaterial.alphaThreshold = 0.2; + surface.material = trMaterial; + } + i++; + } + this.var_346.push(mesh); + } + } + } + } + + private function method_637(data:ByteArray) : void + { + var object:name_78 = null; + var mesh:name_380 = null; + var i:int = 0; + var surface:name_117 = null; + var material:name_641 = null; + var diffuse:name_129 = null; + var opacity:name_129 = null; + if(data == null) + { + return; + } + var parser:name_529 = new name_529(); + parser.method_314(data); + var resourceCache:Object = {}; + for each(object in parser.objects) + { + mesh = object as name_380; + if(mesh != null) + { + for(i = 0; i < mesh.method_217; ) + { + surface = mesh.method_216(i); + if(surface.material != null) + { + material = name_641(surface.material); + diffuse = this.name_254(material.textures["diffuse"],resourceCache,this.mapFiles); + opacity = this.name_254(material.textures["transparent"],resourceCache,this.mapFiles); + surface.material = new name_2(opacity); + } + i++; + } + this.var_346.push(mesh); + } + } + } + + private function method_631(lightsData:ByteArray) : void + { + var parserCollada:name_530 = null; + var numLights:uint = 0; + var i:int = 0; + if(lightsData != null) + { + parserCollada = new name_530(); + parserCollada.method_314(XML(lightsData.toString())); + numLights = uint(parserCollada.lights.length); + this.var_16 = new Vector.(numLights); + for(i = 0; i < numLights; i++) + { + this.var_16[i] = parserCollada.lights[i]; + name_116(this.var_16[i]).alternativa3d::removeFromParent(); + } + } + } + + private function name_254(fileTextureResource:name_167, resourceCache:Object, mapFiles:name_55) : name_241 + { + var textureName:String = null; + var resource:name_241 = null; + var textureData:ByteArray = null; + if(fileTextureResource != null && Boolean(fileTextureResource.url)) + { + textureName = fileTextureResource.url.toLowerCase(); + textureName = textureName.replace(".png",".atf"); + textureName = textureName.replace(".jpg",".atf"); + if(mapFiles.name_248(textureName) != null) + { + resource = resourceCache[textureName]; + if(resource == null) + { + textureData = mapFiles.name_248(textureName); + resource = new name_241(textureData); + resourceCache[textureName] = resource; + } + return resource; + } + trace("[WARN] texture not found:",fileTextureResource.url.toLowerCase()); + } + return null; + } + + private function method_633(a3dData:ByteArray) : void + { + var object:name_78 = null; + var objectName:String = null; + var parserA3D:name_529 = new name_529(); + parserA3D.method_314(a3dData); + this.var_569 = new Vector.(); + for each(object in parserA3D.objects) + { + if(object is name_380) + { + objectName = object.name.toLowerCase(); + if(objectName.indexOf("tri") == 0) + { + name_642.name_644(name_380(object),this.var_569,name_257.STATIC,COLLISION_MASK); + } + else if(objectName.indexOf("box") == 0) + { + name_642.name_646(name_380(object),this.var_569,name_257.STATIC,COLLISION_MASK); + } + else if(objectName.indexOf("plane") == 0) + { + name_642.name_645(name_380(object),this.var_569,name_257.STATIC,COLLISION_MASK); + } + } + } + } + } +} + +import flash.utils.ByteArray; +import flash.utils.setTimeout; +import package_116.name_529; +import package_21.name_78; +import package_27.class_7; + +class GeometryBuildTask extends class_7 +{ + private var data:ByteArray; + + private var collector:Vector.; + + public function GeometryBuildTask(data:ByteArray, collector:Vector.) + { + super(); + this.data = data; + this.collector = collector; + } + + override public function run() : void + { + var object:name_78 = null; + var parser:name_529 = new name_529(); + parser.method_314(this.data); + for each(object in parser.objects) + { + this.collector.push(object); + } + setTimeout(method_102,0); + } +} diff --git a/src/package_2/A3DMapComponent.as b/src/package_2/A3DMapComponent.as new file mode 100644 index 0000000..7289126 --- /dev/null +++ b/src/package_2/A3DMapComponent.as @@ -0,0 +1,421 @@ +package package_2 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.BitmapData; + import flash.events.Event; + import flash.ui.Keyboard; + import flash.utils.ByteArray; + import flash.utils.setTimeout; + import package_10.class_17; + import package_10.name_17; + import package_109.name_377; + import package_109.name_378; + import package_109.name_381; + import package_15.name_55; + import package_18.name_44; + import package_18.name_79; + import package_18.name_89; + import package_19.name_380; + import package_19.name_53; + import package_19.name_91; + import package_21.name_116; + import package_21.name_126; + import package_21.name_77; + import package_21.name_78; + import package_22.name_83; + import package_24.DirectionalLight; + import package_24.OmniLight; + import package_24.SpotLight; + import package_24.name_376; + import package_28.name_119; + import package_28.name_241; + import package_28.name_93; + import package_4.class_4; + import package_4.class_5; + import package_4.name_313; + import package_44.name_178; + import package_46.Matrix4; + import package_46.name_194; + import package_5.name_3; + import package_6.name_4; + import package_76.name_235; + import package_96.name_279; + + use namespace alternativa3d; + + public class A3DMapComponent extends class_17 + { + public static const PHYSICS_GEOMETRY:String = "physicsGeometry"; + + private var files:name_55; + + private var skyboxFiles:name_55; + + private var skyboxSize:Number; + + private var var_89:A3DMapBuilder; + + private var gameKernel:name_17; + + private var var_90:Number = 1.5; + + private var listener:class_2; + + private var var_91:Boolean = true; + + public function A3DMapComponent(files:name_55, skyboxFiles:name_55, skyboxSize:Number, listener:class_2) + { + super(); + this.files = files; + this.skyboxFiles = skyboxFiles; + this.skyboxSize = skyboxSize; + this.listener = listener; + } + + override public function initComponent() : void + { + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + this.method_205(); + gameKernel.name_66().name_94(name_83.KEY_DOWN,this.method_15); + if(gameKernel.options[name_379.FAKE_MAP] != null) + { + this.method_204(); + } + else + { + this.method_202(); + } + } + + private function method_205() : void + { + var skyBox:name_53 = null; + var surfaceIds:Array = null; + var surfaceId:String = null; + var renderSystem:name_44 = null; + var container:name_78 = null; + var texture:ByteArray = null; + var textureResource:name_241 = null; + if(this.skyboxFiles != null) + { + skyBox = new name_53(this.skyboxSize); + surfaceIds = [name_53.BACK,name_53.BOTTOM,name_53.FRONT,name_53.LEFT,name_53.RIGHT,name_53.TOP]; + for each(surfaceId in surfaceIds) + { + texture = this.skyboxFiles.name_248(surfaceId); + textureResource = new name_241(texture); + skyBox.name_383(surfaceId).material = new name_79(textureResource); + } + renderSystem = this.gameKernel.name_5(); + renderSystem.method_32(skyBox.getResources(true)); + container = renderSystem.method_40(name_44.SKYBOX_CONTAINER_ID); + container.addChild(skyBox); + } + } + + override public function removeFromGame(gameKernel:name_17) : void + { + var object:name_78 = null; + var lights:name_89 = null; + var light:name_116 = null; + var renderSystem:name_44 = gameKernel.name_5(); + var mapGeometryContainer:name_78 = renderSystem.method_68(); + for each(object in this.var_89.objects) + { + mapGeometryContainer.removeChild(object); + } + renderSystem.method_31(mapGeometryContainer.getResources(true)); + lights = renderSystem.lights; + for each(light in this.var_89.lights) + { + if(light is DirectionalLight) + { + lights.directionalLigths.remove(DirectionalLight(light)); + } + else if(light is name_376) + { + lights.ambientLight = null; + } + else if(light is SpotLight) + { + lights.spotLights.remove(SpotLight(light)); + } + else if(light is OmniLight) + { + lights.omniLigths.remove(OmniLight(light)); + } + } + gameKernel.name_66().name_384(name_83.KEY_DOWN,this.method_15); + this.gameKernel = null; + } + + private function method_202() : void + { + this.var_89 = new A3DMapBuilder(); + this.var_89.addEventListener(Event.COMPLETE,this.method_200); + this.var_89.name_385(this.files); + } + + private function method_200(event:Event) : void + { + var staticShadowLight:DirectionalLight = this.method_207(); + this.method_206(staticShadowLight); + this.method_208(); + this.complete(); + } + + private function complete() : void + { + this.gameKernel.name_5().method_58(); + if(this.listener != null) + { + this.listener.onA3DMapComplete(); + } + } + + private function method_207() : DirectionalLight + { + var staticShadowLight:DirectionalLight = null; + var light:name_116 = null; + if(Boolean(this.gameKernel.options["fakelight"])) + { + this.method_210(); + return null; + } + var renderSystem:name_44 = this.gameKernel.name_5(); + var lights:name_89 = renderSystem.lights; + for each(light in this.var_89.lights) + { + if(light is DirectionalLight) + { + if(staticShadowLight == null) + { + staticShadowLight = DirectionalLight(light); + } + lights.directionalLigths.add(DirectionalLight(light)); + } + else if(light is name_376) + { + lights.ambientLight = name_376(light); + } + else if(light is SpotLight) + { + lights.spotLights.add(SpotLight(light)); + } + else if(light is OmniLight) + { + lights.omniLigths.add(OmniLight(light)); + } + if(light is name_376 || light is DirectionalLight) + { + light.intensity *= 2; + } + if(light is DirectionalLight || light is name_376) + { + light.boundBox = null; + } + else + { + light.calculateBoundBox(); + } + } + return staticShadowLight; + } + + private function method_210() : void + { + this.gameKernel.name_5().lights.ambientLight = new name_376(16777215); + } + + private function method_206(staticShadowLight:DirectionalLight) : void + { + var object:name_78 = null; + var renderSystem:name_44 = this.gameKernel.name_5(); + var mapGeometryContainer:name_78 = renderSystem.method_68(); + for each(object in this.var_89.objects) + { + mapGeometryContainer.addChild(object); + } + renderSystem.method_32(mapGeometryContainer.getResources(true)); + if(staticShadowLight != null) + { + renderSystem.method_71(staticShadowLight); + } + } + + private function method_208() : void + { + var renderSystem:name_44 = null; + var physicsContainer:name_78 = null; + var physicsSystem:name_178 = this.gameKernel.method_112(); + physicsSystem.name_382(this.var_89.collisionPrimitives); + if(this.gameKernel.options[name_379.VISUALIZE_PHYSICS] != null) + { + renderSystem = this.gameKernel.name_5(); + physicsContainer = this.method_199(this.var_89.collisionPrimitives); + physicsContainer.visible = false; + renderSystem.method_47(PHYSICS_GEOMETRY,physicsContainer,true); + } + } + + private function method_199(collisionPrimitives:Vector.) : name_78 + { + var collisionPrimitive:name_235 = null; + var physicsVisualContainer:name_78 = new name_78(); + var boxMaterial:name_313 = new name_313(11141120); + var triangleMaterial:name_313 = new name_313(43520); + var numCollisionPrimitives:int = int(collisionPrimitives.length); + for(var i:int = 0; i < numCollisionPrimitives; ) + { + collisionPrimitive = collisionPrimitives[i]; + if(collisionPrimitive is name_377) + { + physicsVisualContainer.addChild(this.method_211(name_377(collisionPrimitive),boxMaterial)); + } + else if(collisionPrimitive is name_378) + { + physicsVisualContainer.addChild(this.method_209(name_378(collisionPrimitive),triangleMaterial)); + } + i++; + } + return physicsVisualContainer; + } + + private function method_211(collisionBox:name_377, material:class_4) : name_279 + { + var size:name_194 = collisionBox.hs.clone().scale(2); + var box:name_279 = new name_279(size.x,size.y,size.z); + box.setMaterialToAllSurfaces(material); + this.method_198(collisionBox,box); + return box; + } + + private function method_209(collisionTriangle:name_378, material:class_4) : name_380 + { + var mesh:name_380 = new name_380(); + var geometry:name_119 = new name_119(); + var attributes:Array = []; + attributes[0] = name_126.POSITION; + attributes[1] = name_126.POSITION; + attributes[2] = name_126.POSITION; + geometry.addVertexStream(attributes); + geometry.numVertices = 3; + var values:Vector. = new Vector.(9); + values[0] = collisionTriangle.v0.x; + values[1] = collisionTriangle.v0.y; + values[2] = collisionTriangle.v0.z; + values[3] = collisionTriangle.v1.x; + values[4] = collisionTriangle.v1.y; + values[5] = collisionTriangle.v1.z; + values[6] = collisionTriangle.v2.x; + values[7] = collisionTriangle.v2.y; + values[8] = collisionTriangle.v2.z; + geometry.setAttributeValues(name_126.POSITION,values); + geometry.indices = Vector.([0,1,2]); + mesh.geometry = geometry; + mesh.addSurface(material,0,1); + mesh.calculateBoundBox(); + this.method_198(collisionTriangle,mesh); + return mesh; + } + + private function method_198(collisionPrimitive:name_235, object:name_78) : void + { + var t:Matrix4 = collisionPrimitive.transform; + var eulerAngles:name_194 = new name_194(); + t.name_341(eulerAngles); + object.x = t.d; + object.y = t.h; + object.z = t.l; + object.rotationX = eulerAngles.x; + object.rotationY = eulerAngles.y; + object.rotationZ = eulerAngles.z; + } + + private function method_204() : void + { + var collisionRect:name_381 = new name_381(new name_194(20000,20000),1,255); + var collisionPrimitives:Vector. = Vector.([collisionRect]); + this.gameKernel.method_112().name_382(collisionPrimitives); + var renderSystem:name_44 = this.gameKernel.name_5(); + renderSystem.method_40(name_44.LIGHTS_CONTAINER_ID).addChild(new name_376(16777215)); + this.method_201(renderSystem); + var bitmapData:BitmapData = new BitmapData(512,512); + bitmapData.perlinNoise(10,10,3,13,false,true); + var bitmapTextureResource:name_93 = new name_93(bitmapData); + var box:name_279 = new name_279(2 * 20000,2 * 20000,10); + box.setMaterialToAllSurfaces(new class_5(bitmapTextureResource)); + box.z = -5; + renderSystem.method_68().addChild(box); + renderSystem.method_32(box.getResources()); + setTimeout(this.complete,0); + } + + private function method_201(renderSystem:name_44) : void + { + var resource:name_77 = null; + var box:name_279 = new name_279(50,50,50); + box.setMaterialToAllSurfaces(new name_313(11141120)); + for each(resource in box.getResources()) + { + renderSystem.method_29(resource); + } + renderSystem.method_68().addChild(box); + } + + private function method_15(eventType:name_83, keyCode:uint) : void + { + switch(keyCode) + { + case Keyboard.F1: + case Keyboard.F2: + case Keyboard.F3: + case Keyboard.NUMBER_6: + case Keyboard.COMMA: + case Keyboard.PERIOD: + case Keyboard.SEMICOLON: + case Keyboard.QUOTE: + } + } + + private function method_213() : void + { + var d:name_91 = null; + this.var_91 = !this.var_91; + for each(d in this.var_89.decals) + { + d.visible = this.var_91; + } + } + + private function get method_203() : Number + { + return this.var_90; + } + + private function set method_203(value:Number) : void + { + var decal:name_91 = null; + this.var_90 = value; + for each(decal in this.var_89.decals) + { + decal.offset = this.var_90; + } + name_4(name_3.name_8().name_30(name_4)).name_145("Decals offset: " + this.var_90); + } + + private function method_212(containerId:String) : void + { + var container:name_78 = this.gameKernel.name_5().method_40(containerId); + if(container != null) + { + container.visible = !container.visible; + } + } + } +} + diff --git a/src/package_2/class_2.as b/src/package_2/class_2.as new file mode 100644 index 0000000..df59d60 --- /dev/null +++ b/src/package_2/class_2.as @@ -0,0 +1,8 @@ +package package_2 +{ + public interface class_2 + { + function onA3DMapComplete() : void; + } +} + diff --git a/src/package_2/name_2.as b/src/package_2/name_2.as new file mode 100644 index 0000000..78ccfed --- /dev/null +++ b/src/package_2/name_2.as @@ -0,0 +1,134 @@ +package package_2 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DProgramType; + import flash.display3D.VertexBuffer3D; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import flash.utils.getQualifiedClassName; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_139; + import package_21.name_78; + import package_28.name_119; + import package_28.name_129; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + import package_4.class_4; + import package_4.name_127; + import package_4.name_28; + + use namespace alternativa3d; + + public class name_2 extends class_4 + { + public static var fadeRadius:Number = 100; + + public static var spotAngle:Number = 0; + + public static var fallofAngle:Number = Math.PI; + + private static var _programs:Dictionary = new Dictionary(); + + private static const passColorProcedure:name_114 = new name_114(["#a0=aUV","#v0=vUV","#v1=vCameraPos","#v2=vNormal","#c0=cCameraPos","mov v0, a0","sub v1, c0, i0","mov v2, i1"],"passColor"); + + private static const outputProcedure:name_114 = new name_114(["#v0=vUV","#v1=vCameraPos","#v2=vNormal","#c0=cZone","#s0=sTexture","dp3 t1.w, v1, v1","rsq t1.w, t1.w","mul t0.xyz, v1.xyz, t1.w","nrm t1.xyz, v2","dp3 t1.x, t0.xyz, t1.xyz","add t1.x, t1.x, c0.z","mul t1.x, t1.x, c0.y","sat t1.x, t1.x","div t1.w, c0.x, t1.w","sat t1.w, t1.w","mul t1.x, t1.x, t1.w","tex t0, v0, s0 <2d, clamp, linear, miplinear>","mul t0, t0.x, t1.x","mov o0, t0"],"output"); + + public var texture:name_129; + + public function name_2(texture:name_129) + { + super(); + this.texture = texture; + } + + override alternativa3d function fillResources(resources:Dictionary, resourceType:Class) : void + { + super.alternativa3d::fillResources(resources,resourceType); + if(this.texture != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.texture)) as Class,resourceType))) + { + resources[this.texture] = true; + } + } + + private function method_75(targetObject:name_78) : name_127 + { + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + var positionVar:String = "aPosition"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + if(targetObject.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(targetObject.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + var normalVar:String = "aNormal"; + vertexLinker.name_120(normalVar,name_115.ATTRIBUTE); + if(targetObject.alternativa3d::deltaTransformProcedure != null) + { + vertexLinker.name_120("tTransformedNormal"); + vertexLinker.name_123(targetObject.alternativa3d::deltaTransformProcedure); + vertexLinker.name_118(targetObject.alternativa3d::deltaTransformProcedure,normalVar); + vertexLinker.name_125(targetObject.alternativa3d::deltaTransformProcedure,"tTransformedNormal"); + normalVar = "tTransformedNormal"; + } + vertexLinker.name_123(passColorProcedure); + vertexLinker.name_118(passColorProcedure,positionVar,normalVar); + fragmentLinker.name_123(outputProcedure); + fragmentLinker.name_133(vertexLinker); + vertexLinker.name_142(); + fragmentLinker.name_142(); + return new name_127(vertexLinker,fragmentLinker); + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + if(this.texture == null || this.texture.alternativa3d::_texture == null) + { + return; + } + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + var normalsBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.NORMAL); + if(positionBuffer == null || uvBuffer == null || normalsBuffer == null) + { + return; + } + var object:name_78 = surface.alternativa3d::object; + var program:name_127 = _programs[object.alternativa3d::transformProcedure]; + if(program == null) + { + program = this.method_75(object); + program.upload(camera.alternativa3d::context3D); + _programs[object.alternativa3d::transformProcedure] = program; + } + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aPosition"),positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aUV"),uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aNormal"),normalsBuffer,geometry.alternativa3d::_attributesOffsets[name_126.NORMAL],name_126.alternativa3d::FORMATS[name_126.NORMAL]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.vertexShader.getVariableIndex("cProjMatrix") << 2,object.alternativa3d::localToCameraTransform); + var tm:name_139 = object.alternativa3d::cameraToLocalTransform; + drawUnit.alternativa3d::name_144(program.vertexShader.getVariableIndex("cCameraPos"),tm.d,tm.h,tm.l); + var offset:Number = Number(Math.cos(fallofAngle / 2)); + var mul:Number = Math.cos(spotAngle / 2) - offset; + if(mul < 0.00001) + { + mul = 0.00001; + } + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cZone"),1 / fadeRadius,(1 - offset) / mul,-offset); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sTexture"),this.texture.alternativa3d::_texture); + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.ONE; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.TRANSPARENT_SORT); + } + } +} + diff --git a/src/package_2/name_379.as b/src/package_2/name_379.as new file mode 100644 index 0000000..76c2aa2 --- /dev/null +++ b/src/package_2/name_379.as @@ -0,0 +1,15 @@ +package package_2 +{ + public class name_379 + { + public static const FAKE_MAP:String = "fakemap"; + + public static const VISUALIZE_PHYSICS:String = "visualizePhysics"; + + public function name_379() + { + super(); + } + } +} + diff --git a/src/package_2/name_9.as b/src/package_2/name_9.as new file mode 100644 index 0000000..7abfb33 --- /dev/null +++ b/src/package_2/name_9.as @@ -0,0 +1,391 @@ +package package_2 +{ + import alternativa.engine3d.alternativa3d; + import avmplus.getQualifiedClassName; + import flash.display.BitmapData; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DProgramType; + import flash.display3D.VertexBuffer3D; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_139; + import package_21.name_78; + import package_23.name_103; + import package_28.name_119; + import package_28.name_129; + import package_28.name_93; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + import package_4.class_4; + import package_4.name_28; + + use namespace alternativa3d; + + public class name_9 extends class_4 + { + private static var fogTexture:name_129; + + public static const DISABLED:int = 0; + + public static const SIMPLE:int = 1; + + public static const ADVANCED:int = 2; + + public static var fogMode:int = DISABLED; + + public static var fogNear:Number = 1000; + + public static var fogFar:Number = 5000; + + public static var fogMaxDensity:Number = 1; + + public static var fogColorR:Number = 200 / 255; + + public static var fogColorG:Number = 162 / 255; + + public static var fogColorB:Number = 200 / 255; + + private static var _programs:Dictionary = new Dictionary(); + + private static const getLightMapProcedure:name_114 = name_114.name_140(["#v0=vUV1","#s0=sLightMap","tex o0, v0, s0 <2d,repeat,linear,mipnone>"],"getLightMap"); + + private static const minShadowProcedure:name_114 = name_114.name_140(["min o0, o0, i0"],"minShadowProc"); + + private static const mulShadowProcedure:name_114 = name_114.name_140(["mul o0, o0, i0"],"mulShadowProc"); + + private static const applyLightMapProcedure:name_114 = name_114.name_140(["add i1, i1, i1","mul i0.xyz, i0.xyz, i1.xyz","mov o0, i0"],"applyLightMap"); + + private static const _passLightMapUVProcedure:name_114 = new name_114(["#a0=aUV1","#v0=vUV1","mov v0, a0"],"passLightMapUV"); + + private static const passSimpleFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z"],"passSimpleFogConst"); + + private static const applyLightMapAndSimpleFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogColor","#c1=cFogRange","add i1, i1, i1","mul i0.xyz, i0.xyz, i1.xyz","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul i0.xyz, i0.xyz, t0.y","mul t0.xyz, c0.xyz, t0.x","add i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"applyLightMapAndSimpleFog"); + + private static const passAdvancedFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z","mov v0.zw, i1.xwxw","mov o0, i1"],"projAndPassAdvancedFogConst"); + + private static const applyLightMapAndAdvancedFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogConsts","#c1=cFogRange","#s0=sFogTexture","add i1, i1, i1","mul i0.xyz, i0.xyz, i1.xyz","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul i0.xyz, i0.xyz, t0.y","mov t1.xyzw, c0.yyzw","div t0.z, v0.z, v0.w","mul t0.z, t0.z, c0.x","add t1.x, t1.x, t0.z","tex t1, t1, s0 <2d, repeat, linear, miplinear>","mul t0.xyz, t1.xyz, t0.x","add i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"applyLightMapAndAdvancedFog"); + + alternativa3d static const outputOpacity:name_114 = new name_114(["#v0=vUV","#s0=sTexture","#s1=sOpacity","#c0=cAlpha","tex t0, v0, s0 <2d, linear,repeat, miplinear>","tex t1, v0, s1 <2d, linear,repeat, miplinear>","mov t0.w, t1.x","sub t1.x, t1.x, c0.w","kil t1.x","mov o0, t0"],"samplerSetProcedureOpacity"); + + private static const passUVProcedure:name_114 = new name_114(["#v0=vUV","#a0=aUV","mov v0, a0"],"passUVProcedure"); + + private static const diffuseProcedure:name_114 = new name_114(["#v0=vUV","#s0=sTexture","#c0=cAlpha","tex t0, v0, s0 <2d, linear,repeat, miplinear>","mov t0.w, c0.w","mov o0, t0"],"diffuseProcedure"); + + private static const diffuseOpacityProcedure:name_114 = new name_114(["#v0=vUV","#s0=sTexture","#s1=sOpacity","#c0=cAlpha","tex t0, v0, s0 <2d, linear,repeat, miplinear>","tex t1, v0, s1 <2d, linear,repeat, miplinear>","mov t0.w, t1.x","mul t0.w, t0.w, c0.w","mov o0, t0"],"diffuseOpacityProcedure"); + + public var diffuseMap:name_129; + + public var lightMap:name_129; + + public var lightMapChannel:uint = 0; + + public var opacityMap:name_129; + + public var alpha:Number = 1; + + public function name_9(diffuseMap:name_129, lightMap:name_129, lightMapChannel:uint = 0, opacityMap:name_129 = null) + { + super(); + this.diffuseMap = diffuseMap; + this.lightMap = lightMap; + this.lightMapChannel = lightMapChannel; + this.opacityMap = opacityMap; + } + + public static function method_33(texture:name_129) : void + { + fogTexture = texture; + } + + override alternativa3d function fillResources(resources:Dictionary, resourceType:Class) : void + { + super.alternativa3d::fillResources(resources,resourceType); + if(this.diffuseMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.diffuseMap)) as Class,resourceType))) + { + resources[this.diffuseMap] = true; + } + if(this.lightMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.lightMap)) as Class,resourceType))) + { + resources[this.lightMap] = true; + } + if(this.opacityMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.opacityMap)) as Class,resourceType))) + { + resources[this.opacityMap] = true; + } + } + + private function method_75(targetObject:name_78, shadows:Vector., numShadows:int) : MapMaterialProgram + { + var i:int = 0; + var renderer:name_103 = null; + var sProc:name_114 = null; + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var positionVar:String = "aPosition"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + if(targetObject.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(targetObject.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + vertexLinker.name_123(passUVProcedure); + vertexLinker.name_123(_passLightMapUVProcedure); + if(fogMode == SIMPLE) + { + vertexLinker.name_123(passSimpleFogConstProcedure); + vertexLinker.name_118(passSimpleFogConstProcedure,positionVar); + } + else if(fogMode == ADVANCED) + { + vertexLinker.name_120("tProjected"); + vertexLinker.name_125(alternativa3d::_projectProcedure,"tProjected"); + vertexLinker.name_123(passAdvancedFogConstProcedure); + vertexLinker.name_118(passAdvancedFogConstProcedure,positionVar,"tProjected"); + } + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + var procedure:name_114 = this.opacityMap == null ? diffuseProcedure : diffuseOpacityProcedure; + fragmentLinker.name_120("tOutColor"); + fragmentLinker.name_123(procedure); + fragmentLinker.name_125(procedure,"tOutColor"); + if(shadows != null) + { + fragmentLinker.name_120("tLight"); + fragmentLinker.name_123(getLightMapProcedure); + fragmentLinker.name_125(getLightMapProcedure,"tLight"); + fragmentLinker.name_120("tShadow"); + for(i = 0; i < numShadows; i++) + { + renderer = shadows[i]; + vertexLinker.name_123(renderer.getVShader(i)); + sProc = renderer.getFShader(i); + fragmentLinker.name_123(sProc); + fragmentLinker.name_125(sProc,"tShadow"); + if(renderer.alternativa3d::name_372) + { + fragmentLinker.name_123(mulShadowProcedure); + fragmentLinker.name_118(mulShadowProcedure,"tShadow"); + fragmentLinker.name_125(mulShadowProcedure,"tLight"); + } + else + { + fragmentLinker.name_123(minShadowProcedure); + fragmentLinker.name_118(minShadowProcedure,"tShadow"); + fragmentLinker.name_125(minShadowProcedure,"tLight"); + } + } + } + else + { + fragmentLinker.name_120("tLight"); + fragmentLinker.name_123(getLightMapProcedure); + fragmentLinker.name_125(getLightMapProcedure,"tLight"); + } + if(fogMode == SIMPLE) + { + fragmentLinker.name_123(applyLightMapAndSimpleFogProcedure); + fragmentLinker.name_118(applyLightMapAndSimpleFogProcedure,"tOutColor","tLight"); + } + else if(fogMode == ADVANCED) + { + fragmentLinker.name_123(applyLightMapAndAdvancedFogProcedure); + fragmentLinker.name_118(applyLightMapAndAdvancedFogProcedure,"tOutColor","tLight"); + } + else + { + fragmentLinker.name_123(applyLightMapProcedure); + fragmentLinker.name_118(applyLightMapProcedure,"tOutColor","tLight"); + } + fragmentLinker.name_133(vertexLinker); + return new MapMaterialProgram(vertexLinker,fragmentLinker); + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + var i:int = 0; + var renderer:name_103 = null; + var lm:name_139 = null; + var dist:Number = NaN; + var cLocal:name_139 = null; + var halfW:Number = NaN; + var leftX:Number = NaN; + var leftY:Number = NaN; + var rightX:Number = NaN; + var rightY:Number = NaN; + var angle:Number = NaN; + var dx:Number = NaN; + var dy:Number = NaN; + var len:Number = NaN; + var uScale:Number = NaN; + var uRight:Number = NaN; + var bmd:BitmapData = null; + if(this.diffuseMap == null || this.diffuseMap.alternativa3d::_texture == null || this.lightMap == null || this.lightMap.alternativa3d::_texture == null) + { + return; + } + if(this.opacityMap != null && this.opacityMap.alternativa3d::_texture == null) + { + return; + } + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + var lightMapUVBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[this.lightMapChannel]); + if(positionBuffer == null || uvBuffer == null || lightMapUVBuffer == null) + { + return; + } + var object:name_78 = surface.alternativa3d::object; + var optionsPrograms:Vector. = _programs[object.alternativa3d::transformProcedure]; + if(optionsPrograms == null) + { + optionsPrograms = new Vector.(32,true); + _programs[object.alternativa3d::transformProcedure] = optionsPrograms; + } + var index:int = this.opacityMap == null ? 0 : 1; + if(fogMode > 0) + { + index |= 1 << fogMode; + } + var numShadows:int = int(object.alternativa3d::numShadowRenderers); + index |= numShadows << 3; + var program:MapMaterialProgram = optionsPrograms[index]; + if(program == null) + { + program = this.method_75(object,object.alternativa3d::shadowRenderers,numShadows); + program.upload(camera.alternativa3d::context3D); + optionsPrograms[index] = program; + } + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.aPosition,positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + drawUnit.alternativa3d::setVertexBufferAt(program.aUV,uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + drawUnit.alternativa3d::setVertexBufferAt(program.aUV1,lightMapUVBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[this.lightMapChannel]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[this.lightMapChannel]]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.cProjMatrix,object.alternativa3d::localToCameraTransform); + drawUnit.alternativa3d::name_134(program.cAlpha,0,0,0,this.alpha); + drawUnit.alternativa3d::setTextureAt(program.sTexture,this.diffuseMap.alternativa3d::_texture); + drawUnit.alternativa3d::setTextureAt(program.sLightMap,this.lightMap.alternativa3d::_texture); + if(this.opacityMap != null) + { + drawUnit.alternativa3d::setTextureAt(program.sOpacity,this.opacityMap.alternativa3d::_texture); + } + for(i = 0; i < numShadows; ) + { + renderer = object.alternativa3d::shadowRenderers[i]; + renderer.applyShader(drawUnit,program,object,camera,i); + i++; + } + if(fogMode == SIMPLE || fogMode == ADVANCED) + { + lm = object.alternativa3d::localToCameraTransform; + dist = fogFar - fogNear; + drawUnit.alternativa3d::name_144(program.cFogSpace,lm.i / dist,lm.j / dist,lm.k / dist,(lm.l - fogNear) / dist); + drawUnit.alternativa3d::name_134(program.cFogRange,fogMaxDensity,1,0,1 - fogMaxDensity); + } + if(fogMode == SIMPLE) + { + drawUnit.alternativa3d::name_134(program.cFogColor,fogColorR,fogColorG,fogColorB); + } + if(fogMode == ADVANCED) + { + if(fogTexture == null) + { + bmd = new BitmapData(32,1,false,16711680); + for(i = 0; i < 32; i++) + { + bmd.setPixel(i,0,i / 32 * 255 << 16); + } + fogTexture = new name_93(bmd); + fogTexture.upload(camera.alternativa3d::context3D); + } + cLocal = camera.alternativa3d::localToGlobalTransform; + halfW = camera.view.width / 2; + leftX = -halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + leftY = -halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + rightX = halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + rightY = halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + angle = Math.atan2(leftY,leftX) - Math.PI / 2; + if(angle < 0) + { + angle += Math.PI * 2; + } + dx = rightX - leftX; + dy = rightY - leftY; + len = Number(Math.sqrt(dx * dx + dy * dy)); + leftX /= len; + leftY /= len; + rightX /= len; + rightY /= len; + uScale = Math.acos(leftX * rightX + leftY * rightY) / Math.PI / 2; + uRight = angle / Math.PI / 2; + drawUnit.alternativa3d::name_134(program.cFogConsts,0.5 * uScale,0.5 - uRight,0); + drawUnit.alternativa3d::setTextureAt(program.sFogTexture,fogTexture.alternativa3d::_texture); + } + if(this.opacityMap != null || this.alpha < 1) + { + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.SOURCE_ALPHA; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.TRANSPARENT_SORT); + } + else + { + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.OPAQUE); + } + } + } +} + +import package_30.name_121; +import package_4.name_127; + +class MapMaterialProgram extends name_127 +{ + public var aPosition:int; + + public var aUV:int; + + public var aUV1:int; + + public var cProjMatrix:int; + + public var cAlpha:int; + + public var sTexture:int; + + public var sLightMap:int; + + public var sOpacity:int; + + public var cFogSpace:int; + + public var cFogRange:int; + + public var cFogColor:int; + + public var cFogConsts:int; + + public var sFogTexture:int; + + public function MapMaterialProgram(vertex:name_121, fragment:name_121) + { + super(vertex,fragment); + this.aPosition = vertex.name_207("aPosition"); + this.aUV = vertex.name_207("aUV"); + this.aUV1 = vertex.name_207("aUV1"); + this.cProjMatrix = vertex.name_207("cProjMatrix"); + this.cAlpha = fragment.name_207("cAlpha"); + this.sTexture = fragment.name_207("sTexture"); + this.sLightMap = fragment.name_207("sLightMap"); + this.sOpacity = fragment.name_207("sOpacity"); + this.cFogSpace = vertex.name_207("cFogSpace"); + this.cFogRange = fragment.name_207("cFogRange"); + this.cFogColor = fragment.name_207("cFogColor"); + this.cFogConsts = fragment.name_207("cFogConsts"); + this.sFogTexture = fragment.name_207("sFogTexture"); + } +} diff --git a/src/package_20/class_11.as b/src/package_20/class_11.as new file mode 100644 index 0000000..98c78d9 --- /dev/null +++ b/src/package_20/class_11.as @@ -0,0 +1,8 @@ +package package_20 +{ + public interface class_11 + { + function method_146(param1:String, param2:*) : void; + } +} + diff --git a/src/package_20/name_179.as b/src/package_20/name_179.as new file mode 100644 index 0000000..9f7c5ab --- /dev/null +++ b/src/package_20/name_179.as @@ -0,0 +1,73 @@ +package package_20 +{ + import package_10.class_1; + import package_108.name_373; + import package_108.name_374; + + public class name_179 extends class_1 implements name_56 + { + private var eventQueue1:name_374; + + private var eventQueue2:name_374; + + private var var_213:Object; + + public function name_179(priority:int) + { + super(priority); + this.eventQueue1 = new name_374(); + this.eventQueue2 = new name_374(); + this.var_213 = new Object(); + } + + public function addEventListener(eventType:String, listener:class_11) : void + { + var listeners:name_374 = this.var_213[eventType]; + if(listeners == null) + { + listeners = new name_374(); + this.var_213[eventType] = listeners; + } + listeners.add(listener); + } + + public function removeEventListener(eventType:String, listener:class_11) : void + { + var listeners:name_374 = this.var_213[eventType]; + if(listeners != null) + { + listeners.remove(listener); + } + } + + public function dispatchEvent(eventType:String, eventData:*) : void + { + this.eventQueue1.add(name_476.create(eventType,eventData)); + } + + override public function run() : void + { + var event:name_476 = null; + var listeners:name_374 = null; + var iterator:name_373 = null; + var listener:class_11 = null; + var tmp:name_374 = this.eventQueue1; + this.eventQueue1 = this.eventQueue2; + for(this.eventQueue2 = tmp; (event = name_476(this.eventQueue2.poll())) != null; ) + { + listeners = this.var_213[event.eventType]; + if(listeners != null) + { + iterator = listeners.listIterator(); + while(iterator.hasNext()) + { + listener = class_11(iterator.next()); + listener.method_146(event.eventType,event.eventData); + } + } + event.destroy(); + } + } + } +} + diff --git a/src/package_20/name_476.as b/src/package_20/name_476.as new file mode 100644 index 0000000..deaa4fa --- /dev/null +++ b/src/package_20/name_476.as @@ -0,0 +1,43 @@ +package package_20 +{ + public class name_476 + { + private static var pool:name_476; + + public var eventType:String; + + public var eventData:*; + + public var next:name_476; + + public function name_476(eventType:String, eventData:*) + { + super(); + this.eventType = eventType; + this.eventData = eventData; + } + + public static function create(eventType:String, eventData:*) : name_476 + { + if(pool == null) + { + return new name_476(eventType,eventData); + } + var item:name_476 = pool; + pool = item.next; + item.next = null; + item.eventType = eventType; + item.eventData = eventData; + return item; + } + + public function destroy() : void + { + this.eventType = null; + this.eventData = null; + this.next = pool; + pool = this; + } + } +} + diff --git a/src/package_20/name_56.as b/src/package_20/name_56.as new file mode 100644 index 0000000..734afcc --- /dev/null +++ b/src/package_20/name_56.as @@ -0,0 +1,12 @@ +package package_20 +{ + public interface name_56 + { + function addEventListener(param1:String, param2:class_11) : void; + + function removeEventListener(param1:String, param2:class_11) : void; + + function dispatchEvent(param1:String, param2:*) : void; + } +} + diff --git a/src/package_21/name_116.as b/src/package_21/name_116.as new file mode 100644 index 0000000..eb69077 --- /dev/null +++ b/src/package_21/name_116.as @@ -0,0 +1,62 @@ +package package_21 +{ + import alternativa.engine3d.alternativa3d; + + use namespace alternativa3d; + + public class name_116 extends name_78 + { + private static var lastLightNumber:uint = 0; + + public var color:uint; + + public var intensity:Number = 1; + + alternativa3d var name_141:name_139 = new name_139(); + + alternativa3d var name_138:String; + + alternativa3d var red:Number; + + alternativa3d var green:Number; + + alternativa3d var blue:Number; + + public function name_116() + { + super(); + this.alternativa3d::name_138 = "l" + lastLightNumber.toString(16); + name = "L" + (lastLightNumber++).toString(); + } + + override alternativa3d function calculateVisibility(camera:name_124) : void + { + if(this.intensity != 0 && this.color > 0) + { + camera.alternativa3d::lights[camera.alternativa3d::lightsLength] = this; + ++camera.alternativa3d::lightsLength; + } + } + + alternativa3d function checkBound(targetObject:name_78) : Boolean + { + return true; + } + + override public function clone() : name_78 + { + var res:name_116 = new name_116(); + res.clonePropertiesFrom(this); + return res; + } + + override protected function clonePropertiesFrom(source:name_78) : void + { + super.clonePropertiesFrom(source); + var src:name_116 = source as name_116; + this.color = src.color; + this.intensity = src.intensity; + } + } +} + diff --git a/src/package_21/name_124.as b/src/package_21/name_124.as new file mode 100644 index 0000000..5b17205 --- /dev/null +++ b/src/package_21/name_124.as @@ -0,0 +1,908 @@ +package package_21 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.Bitmap; + import flash.display.BitmapData; + import flash.display.DisplayObject; + import flash.display.Sprite; + import flash.display.Stage3D; + import flash.display.StageAlign; + import flash.display3D.Context3D; + import flash.events.Event; + import flash.geom.Point; + import flash.geom.Rectangle; + import flash.geom.Vector3D; + import flash.system.System; + import flash.text.TextField; + import flash.text.TextFieldAutoSize; + import flash.text.TextFormat; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import flash.utils.getQualifiedClassName; + import flash.utils.getQualifiedSuperclassName; + import flash.utils.getTimer; + + use namespace alternativa3d; + + public class name_124 extends name_78 + { + public var view:name_81; + + public var fov:Number = 1.5707963267948966; + + public var nearClipping:Number; + + public var farClipping:Number; + + public var orthographic:Boolean = false; + + alternativa3d var focalLength:Number; + + alternativa3d var m0:Number; + + alternativa3d var m5:Number; + + alternativa3d var m10:Number; + + alternativa3d var m14:Number; + + alternativa3d var correctionX:Number; + + alternativa3d var correctionY:Number; + + alternativa3d var lights:Vector. = new Vector.(); + + alternativa3d var lightsLength:int = 0; + + alternativa3d var ambient:Vector. = new Vector.(4); + + alternativa3d var childLights:Vector. = new Vector.(); + + alternativa3d var frustum:name_429; + + alternativa3d var origins:Vector. = new Vector.(); + + alternativa3d var directions:Vector. = new Vector.(); + + alternativa3d var raysLength:int = 0; + + alternativa3d var occluders:Vector. = new Vector.(); + + alternativa3d var occludersLength:int = 0; + + alternativa3d var context3D:Context3D; + + alternativa3d var renderer:name_430; + + alternativa3d var numDraws:int; + + alternativa3d var numTriangles:int; + + public var debug:Boolean = false; + + private var debugSet:Object = new Object(); + + private var _diagram:Sprite = this.createDiagram(); + + public var fpsUpdatePeriod:int = 10; + + public var timerUpdatePeriod:int = 10; + + private var fpsTextField:TextField; + + private var memoryTextField:TextField; + + private var drawsTextField:TextField; + + private var trianglesTextField:TextField; + + private var timerTextField:TextField; + + private var graph:Bitmap; + + private var rect:Rectangle; + + private var _diagramAlign:String = "TR"; + + private var _diagramHorizontalMargin:Number = 2; + + private var _diagramVerticalMargin:Number = 2; + + private var fpsUpdateCounter:int; + + private var previousFrameTime:int; + + private var previousPeriodTime:int; + + private var maxMemory:int; + + private var timerUpdateCounter:int; + + private var timeSum:int; + + private var timeCount:int; + + private var timer:int; + + public function name_124(nearClipping:Number, farClipping:Number) + { + super(); + this.nearClipping = nearClipping; + this.farClipping = farClipping; + this.alternativa3d::renderer = new name_430(); + this.alternativa3d::frustum = new name_429(); + this.alternativa3d::frustum.next = new name_429(); + this.alternativa3d::frustum.next.next = new name_429(); + this.alternativa3d::frustum.next.next.next = new name_429(); + this.alternativa3d::frustum.next.next.next.next = new name_429(); + this.alternativa3d::frustum.next.next.next.next.next = new name_429(); + } + + public function render(stage3D:Stage3D) : void + { + var i:int = 0; + var light:name_116 = null; + var root:name_78 = null; + var childLightsLength:int = 0; + if(stage3D == null) + { + throw new TypeError("Parameter stage3D must be non-null."); + } + this.alternativa3d::numDraws = 0; + this.alternativa3d::numTriangles = 0; + this.alternativa3d::occludersLength = 0; + this.alternativa3d::lightsLength = 0; + this.alternativa3d::ambient[0] = 0; + this.alternativa3d::ambient[1] = 0; + this.alternativa3d::ambient[2] = 0; + this.alternativa3d::ambient[3] = 1; + this.alternativa3d::context3D = stage3D.context3D; + if(this.alternativa3d::context3D != null && this.view != null && this.alternativa3d::renderer != null && (this.view.stage != null || this.view.alternativa3d::var_114 != null)) + { + this.alternativa3d::renderer.alternativa3d::camera = this; + this.alternativa3d::calculateProjection(this.view.alternativa3d::var_110,this.view.alternativa3d::_height); + this.view.alternativa3d::method_244(stage3D,this.alternativa3d::context3D); + if(alternativa3d::transformChanged) + { + alternativa3d::composeTransforms(); + } + alternativa3d::localToGlobalTransform.copy(alternativa3d::transform); + alternativa3d::globalToLocalTransform.copy(alternativa3d::inverseTransform); + for(root = this; root.parent != null; ) + { + root = root.parent; + if(root.alternativa3d::transformChanged) + { + root.alternativa3d::composeTransforms(); + } + alternativa3d::localToGlobalTransform.append(root.alternativa3d::transform); + alternativa3d::globalToLocalTransform.prepend(root.alternativa3d::inverseTransform); + } + this.view.alternativa3d::calculateRays(this); + for(i = int(this.alternativa3d::origins.length); i < this.view.alternativa3d::raysLength; i++) + { + this.alternativa3d::origins[i] = new Vector3D(); + this.alternativa3d::directions[i] = new Vector3D(); + } + this.alternativa3d::raysLength = this.view.alternativa3d::raysLength; + if(root.visible) + { + root.alternativa3d::cameraToLocalTransform.combine(root.alternativa3d::inverseTransform,alternativa3d::localToGlobalTransform); + root.alternativa3d::listening = root.alternativa3d::bubbleListeners != null || root.alternativa3d::captureListeners != null; + if(root.boundBox != null) + { + this.alternativa3d::calculateFrustum(root.alternativa3d::cameraToLocalTransform); + root.alternativa3d::culling = root.boundBox.alternativa3d::name_393(this.alternativa3d::frustum,63); + } + else + { + root.alternativa3d::culling = 63; + } + if(root.alternativa3d::culling >= 0) + { + root.alternativa3d::calculateVisibility(this); + } + root.alternativa3d::calculateChildrenVisibility(this); + for(i = 0; i < this.alternativa3d::lightsLength; i++) + { + light = this.alternativa3d::lights[i]; + light.alternativa3d::localToCameraTransform.calculateInversion(light.alternativa3d::cameraToLocalTransform); + light.alternativa3d::red = (light.color >> 16 & 0xFF) * light.intensity / 255; + light.alternativa3d::green = (light.color >> 8 & 0xFF) * light.intensity / 255; + light.alternativa3d::blue = (light.color & 0xFF) * light.intensity / 255; + } + root.alternativa3d::localToCameraTransform.combine(alternativa3d::globalToLocalTransform,root.alternativa3d::transform); + if(root.alternativa3d::culling >= 0 && (root.boundBox == null || this.alternativa3d::occludersLength == 0 || Boolean(root.boundBox.alternativa3d::name_392(this,root)))) + { + if(Boolean(root.alternativa3d::listening) && root.boundBox != null) + { + this.alternativa3d::calculateRays(root.alternativa3d::cameraToLocalTransform); + root.alternativa3d::listening = root.boundBox.alternativa3d::name_391(this.alternativa3d::origins,this.alternativa3d::directions,this.alternativa3d::raysLength); + } + if(this.alternativa3d::lightsLength > 0 && Boolean(root.alternativa3d::useLights)) + { + if(root.boundBox != null) + { + childLightsLength = 0; + for(i = 0; i < this.alternativa3d::lightsLength; ) + { + light = this.alternativa3d::lights[i]; + light.alternativa3d::name_141.combine(root.alternativa3d::cameraToLocalTransform,light.alternativa3d::localToCameraTransform); + if(light.boundBox == null || light.alternativa3d::checkBound(root)) + { + this.alternativa3d::childLights[childLightsLength] = light; + childLightsLength++; + } + i++; + } + root.alternativa3d::collectDraws(this,this.alternativa3d::childLights,childLightsLength); + } + else + { + for(i = 0; i < this.alternativa3d::lightsLength; ) + { + light = this.alternativa3d::lights[i]; + light.alternativa3d::name_141.combine(root.alternativa3d::cameraToLocalTransform,light.alternativa3d::localToCameraTransform); + i++; + } + root.alternativa3d::collectDraws(this,this.alternativa3d::lights,this.alternativa3d::lightsLength); + } + } + else + { + root.alternativa3d::collectDraws(this,null,0); + } + } + root.alternativa3d::collectChildrenDraws(this,this.alternativa3d::lights,this.alternativa3d::lightsLength); + } + this.view.alternativa3d::method_243(this.alternativa3d::context3D,this); + this.alternativa3d::renderer.alternativa3d::render(this.alternativa3d::context3D); + if(this.view.alternativa3d::var_114 == null) + { + this.alternativa3d::context3D.present(); + } + else + { + this.alternativa3d::context3D.drawToBitmapData(this.view.alternativa3d::var_114); + this.alternativa3d::context3D.present(); + } + } + this.alternativa3d::lights.length = 0; + this.alternativa3d::childLights.length = 0; + this.alternativa3d::occluders.length = 0; + this.alternativa3d::context3D = null; + } + + public function projectGlobal(point:Vector3D) : Vector3D + { + if(this.view == null) + { + throw new Error("It is necessary to have view set."); + } + var viewSizeX:Number = this.view.alternativa3d::var_110 * 0.5; + var viewSizeY:Number = this.view.alternativa3d::_height * 0.5; + var focalLength:Number = Math.sqrt(viewSizeX * viewSizeX + viewSizeY * viewSizeY) / Math.tan(this.fov * 0.5); + var res:Vector3D = globalToLocal(point); + res.x = res.x * focalLength / res.z + viewSizeX; + res.y = res.y * focalLength / res.z + viewSizeY; + return res; + } + + public function calculateRay(origin:Vector3D, direction:Vector3D, viewX:Number, viewY:Number) : void + { + if(this.view == null) + { + throw new Error("It is necessary to have view set."); + } + var viewSizeX:Number = this.view.alternativa3d::var_110 * 0.5; + var viewSizeY:Number = this.view.alternativa3d::_height * 0.5; + var focalLength:Number = Math.sqrt(viewSizeX * viewSizeX + viewSizeY * viewSizeY) / Math.tan(this.fov * 0.5); + var dx:Number = viewX - viewSizeX; + var dy:Number = viewY - viewSizeY; + var ox:Number = dx * this.nearClipping / focalLength; + var oy:Number = dy * this.nearClipping / focalLength; + var oz:Number = this.nearClipping; + if(alternativa3d::transformChanged) + { + alternativa3d::composeTransforms(); + } + trm.copy(alternativa3d::transform); + for(var root:name_78 = this; root.parent != null; ) + { + root = root.parent; + if(root.alternativa3d::transformChanged) + { + root.alternativa3d::composeTransforms(); + } + trm.append(root.alternativa3d::transform); + } + origin.x = trm.a * ox + trm.b * oy + trm.c * oz + trm.d; + origin.y = trm.e * ox + trm.f * oy + trm.g * oz + trm.h; + origin.z = trm.i * ox + trm.j * oy + trm.k * oz + trm.l; + direction.x = trm.a * dx + trm.b * dy + trm.c * focalLength; + direction.y = trm.e * dx + trm.f * dy + trm.g * focalLength; + direction.z = trm.i * dx + trm.j * dy + trm.k * focalLength; + var directionL:Number = 1 / Math.sqrt(direction.x * direction.x + direction.y * direction.y + direction.z * direction.z); + direction.x *= directionL; + direction.y *= directionL; + direction.z *= directionL; + } + + override public function clone() : name_78 + { + var res:name_124 = new name_124(this.nearClipping,this.farClipping); + res.clonePropertiesFrom(this); + return res; + } + + override protected function clonePropertiesFrom(source:name_78) : void + { + super.clonePropertiesFrom(source); + this.view = (source as name_124).view; + } + + alternativa3d function calculateProjection(width:Number, height:Number) : void + { + var viewSizeX:Number = width * 0.5; + var viewSizeY:Number = height * 0.5; + this.alternativa3d::focalLength = Math.sqrt(viewSizeX * viewSizeX + viewSizeY * viewSizeY) / Math.tan(this.fov * 0.5); + if(!this.orthographic) + { + this.alternativa3d::m0 = this.alternativa3d::focalLength / viewSizeX; + this.alternativa3d::m5 = -this.alternativa3d::focalLength / viewSizeY; + this.alternativa3d::m10 = this.farClipping / (this.farClipping - this.nearClipping); + this.alternativa3d::m14 = -this.nearClipping * this.alternativa3d::m10; + } + else + { + this.alternativa3d::m0 = 1 / viewSizeX; + this.alternativa3d::m5 = -1 / viewSizeY; + this.alternativa3d::m10 = 1 / (this.farClipping - this.nearClipping); + this.alternativa3d::m14 = -this.nearClipping * this.alternativa3d::m10; + } + this.alternativa3d::correctionX = viewSizeX / this.alternativa3d::focalLength; + this.alternativa3d::correctionY = viewSizeY / this.alternativa3d::focalLength; + } + + alternativa3d function calculateFrustum(transform:name_139) : void + { + var fa:Number = NaN; + var fe:Number = NaN; + var fi:Number = NaN; + var fb:Number = NaN; + var ff:Number = NaN; + var fj:Number = NaN; + var ax:Number = NaN; + var ay:Number = NaN; + var az:Number = NaN; + var bx:Number = NaN; + var by:Number = NaN; + var bz:Number = NaN; + var viewSizeX:Number = NaN; + var viewSizeY:Number = NaN; + var nearPlane:name_429 = this.alternativa3d::frustum; + var farPlane:name_429 = nearPlane.next; + var leftPlane:name_429 = farPlane.next; + var rightPlane:name_429 = leftPlane.next; + var topPlane:name_429 = rightPlane.next; + var bottomPlane:name_429 = topPlane.next; + if(!this.orthographic) + { + fa = transform.a * this.alternativa3d::correctionX; + fe = transform.e * this.alternativa3d::correctionX; + fi = transform.i * this.alternativa3d::correctionX; + fb = transform.b * this.alternativa3d::correctionY; + ff = transform.f * this.alternativa3d::correctionY; + fj = transform.j * this.alternativa3d::correctionY; + nearPlane.x = fj * fe - ff * fi; + nearPlane.y = fb * fi - fj * fa; + nearPlane.z = ff * fa - fb * fe; + nearPlane.offset = (transform.d + transform.c * this.nearClipping) * nearPlane.x + (transform.h + transform.g * this.nearClipping) * nearPlane.y + (transform.l + transform.k * this.nearClipping) * nearPlane.z; + farPlane.x = -nearPlane.x; + farPlane.y = -nearPlane.y; + farPlane.z = -nearPlane.z; + farPlane.offset = (transform.d + transform.c * this.farClipping) * farPlane.x + (transform.h + transform.g * this.farClipping) * farPlane.y + (transform.l + transform.k * this.farClipping) * farPlane.z; + ax = -fa - fb + transform.c; + ay = -fe - ff + transform.g; + az = -fi - fj + transform.k; + bx = fa - fb + transform.c; + by = fe - ff + transform.g; + bz = fi - fj + transform.k; + topPlane.x = bz * ay - by * az; + topPlane.y = bx * az - bz * ax; + topPlane.z = by * ax - bx * ay; + topPlane.offset = transform.d * topPlane.x + transform.h * topPlane.y + transform.l * topPlane.z; + ax = bx; + ay = by; + az = bz; + bx = fa + fb + transform.c; + by = fe + ff + transform.g; + bz = fi + fj + transform.k; + rightPlane.x = bz * ay - by * az; + rightPlane.y = bx * az - bz * ax; + rightPlane.z = by * ax - bx * ay; + rightPlane.offset = transform.d * rightPlane.x + transform.h * rightPlane.y + transform.l * rightPlane.z; + ax = bx; + ay = by; + az = bz; + bx = -fa + fb + transform.c; + by = -fe + ff + transform.g; + bz = -fi + fj + transform.k; + bottomPlane.x = bz * ay - by * az; + bottomPlane.y = bx * az - bz * ax; + bottomPlane.z = by * ax - bx * ay; + bottomPlane.offset = transform.d * bottomPlane.x + transform.h * bottomPlane.y + transform.l * bottomPlane.z; + ax = bx; + ay = by; + az = bz; + bx = -fa - fb + transform.c; + by = -fe - ff + transform.g; + bz = -fi - fj + transform.k; + leftPlane.x = bz * ay - by * az; + leftPlane.y = bx * az - bz * ax; + leftPlane.z = by * ax - bx * ay; + leftPlane.offset = transform.d * leftPlane.x + transform.h * leftPlane.y + transform.l * leftPlane.z; + } + else + { + viewSizeX = this.view.alternativa3d::var_110 * 0.5; + viewSizeY = this.view.alternativa3d::_height * 0.5; + nearPlane.x = transform.j * transform.e - transform.f * transform.i; + nearPlane.y = transform.b * transform.i - transform.j * transform.a; + nearPlane.z = transform.f * transform.a - transform.b * transform.e; + nearPlane.offset = (transform.d + transform.c * this.nearClipping) * nearPlane.x + (transform.h + transform.g * this.nearClipping) * nearPlane.y + (transform.l + transform.k * this.nearClipping) * nearPlane.z; + farPlane.x = -nearPlane.x; + farPlane.y = -nearPlane.y; + farPlane.z = -nearPlane.z; + farPlane.offset = (transform.d + transform.c * this.farClipping) * farPlane.x + (transform.h + transform.g * this.farClipping) * farPlane.y + (transform.l + transform.k * this.farClipping) * farPlane.z; + topPlane.x = transform.i * transform.g - transform.e * transform.k; + topPlane.y = transform.a * transform.k - transform.i * transform.c; + topPlane.z = transform.e * transform.c - transform.a * transform.g; + topPlane.offset = (transform.d - transform.b * viewSizeY) * topPlane.x + (transform.h - transform.f * viewSizeY) * topPlane.y + (transform.l - transform.j * viewSizeY) * topPlane.z; + bottomPlane.x = -topPlane.x; + bottomPlane.y = -topPlane.y; + bottomPlane.z = -topPlane.z; + bottomPlane.offset = (transform.d + transform.b * viewSizeY) * bottomPlane.x + (transform.h + transform.f * viewSizeY) * bottomPlane.y + (transform.l + transform.j * viewSizeY) * bottomPlane.z; + leftPlane.x = transform.k * transform.f - transform.g * transform.j; + leftPlane.y = transform.c * transform.j - transform.k * transform.b; + leftPlane.z = transform.g * transform.b - transform.c * transform.f; + leftPlane.offset = (transform.d - transform.a * viewSizeX) * leftPlane.x + (transform.h - transform.e * viewSizeX) * leftPlane.y + (transform.l - transform.i * viewSizeX) * leftPlane.z; + rightPlane.x = -leftPlane.x; + rightPlane.y = -leftPlane.y; + rightPlane.z = -leftPlane.z; + rightPlane.offset = (transform.d + transform.a * viewSizeX) * rightPlane.x + (transform.h + transform.e * viewSizeX) * rightPlane.y + (transform.l + transform.i * viewSizeX) * rightPlane.z; + } + } + + alternativa3d function calculateRays(transform:name_139) : void + { + var o:Vector3D = null; + var d:Vector3D = null; + var origin:Vector3D = null; + var direction:Vector3D = null; + for(var i:int = 0; i < this.alternativa3d::raysLength; i++) + { + o = this.view.alternativa3d::var_127[i]; + d = this.view.alternativa3d::var_133[i]; + origin = this.alternativa3d::origins[i]; + direction = this.alternativa3d::directions[i]; + origin.x = transform.a * o.x + transform.b * o.y + transform.c * o.z + transform.d; + origin.y = transform.e * o.x + transform.f * o.y + transform.g * o.z + transform.h; + origin.z = transform.i * o.x + transform.j * o.y + transform.k * o.z + transform.l; + direction.x = transform.a * d.x + transform.b * d.y + transform.c * d.z; + direction.y = transform.e * d.x + transform.f * d.y + transform.g * d.z; + direction.z = transform.i * d.x + transform.j * d.y + transform.k * d.z; + } + } + + public function addToDebug(debug:int, objectOrClass:*) : void + { + if(!this.debugSet[debug]) + { + this.debugSet[debug] = new Dictionary(); + } + this.debugSet[debug][objectOrClass] = true; + } + + public function removeFromDebug(debug:int, objectOrClass:*) : void + { + var key:* = undefined; + if(Boolean(this.debugSet[debug])) + { + delete this.debugSet[debug][objectOrClass]; + var _loc4_:int = 0; + var _loc5_:* = this.debugSet[debug]; + for(key in _loc5_) + { + } + if(!key) + { + delete this.debugSet[debug]; + } + } + } + + alternativa3d function checkInDebug(object:name_78) : int + { + var objectClass:Class = null; + var res:int = 0; + for(var debug:int = 1; debug <= 512; ) + { + if(Boolean(this.debugSet[debug])) + { + if(Boolean(this.debugSet[debug][name_78]) || Boolean(this.debugSet[debug][object])) + { + res |= debug; + } + else + { + for(objectClass = getDefinitionByName(getQualifiedClassName(object)) as Class; objectClass != name_78; ) + { + if(Boolean(this.debugSet[debug][objectClass])) + { + res |= debug; + break; + } + objectClass = Class(getDefinitionByName(getQualifiedSuperclassName(objectClass))); + } + } + } + debug <<= 1; + } + return res; + } + + public function startTimer() : void + { + this.timer = getTimer(); + } + + public function stopTimer() : void + { + this.timeSum += getTimer() - this.timer; + ++this.timeCount; + } + + public function get diagram() : DisplayObject + { + return this._diagram; + } + + public function get diagramAlign() : String + { + return this._diagramAlign; + } + + public function set diagramAlign(value:String) : void + { + this._diagramAlign = value; + this.resizeDiagram(); + } + + public function get diagramHorizontalMargin() : Number + { + return this._diagramHorizontalMargin; + } + + public function set diagramHorizontalMargin(value:Number) : void + { + this._diagramHorizontalMargin = value; + this.resizeDiagram(); + } + + public function get diagramVerticalMargin() : Number + { + return this._diagramVerticalMargin; + } + + public function set diagramVerticalMargin(value:Number) : void + { + this._diagramVerticalMargin = value; + this.resizeDiagram(); + } + + private function createDiagram() : Sprite + { + var diagram:Sprite = null; + diagram = new Sprite(); + diagram.mouseEnabled = false; + diagram.mouseChildren = false; + this.fpsTextField = new TextField(); + this.fpsTextField.defaultTextFormat = new TextFormat("Tahoma",10,13421772); + this.fpsTextField.autoSize = TextFieldAutoSize.LEFT; + this.fpsTextField.text = "FPS:"; + this.fpsTextField.selectable = false; + this.fpsTextField.x = -3; + this.fpsTextField.y = -5; + diagram.addChild(this.fpsTextField); + this.timerTextField = new TextField(); + this.timerTextField.defaultTextFormat = new TextFormat("Tahoma",10,26367); + this.timerTextField.autoSize = TextFieldAutoSize.LEFT; + this.timerTextField.text = "MS:"; + this.timerTextField.selectable = false; + this.timerTextField.x = -3; + this.timerTextField.y = 4; + diagram.addChild(this.timerTextField); + this.memoryTextField = new TextField(); + this.memoryTextField.defaultTextFormat = new TextFormat("Tahoma",10,13421568); + this.memoryTextField.autoSize = TextFieldAutoSize.LEFT; + this.memoryTextField.text = "MEM:"; + this.memoryTextField.selectable = false; + this.memoryTextField.x = -3; + this.memoryTextField.y = 13; + diagram.addChild(this.memoryTextField); + this.drawsTextField = new TextField(); + this.drawsTextField.defaultTextFormat = new TextFormat("Tahoma",10,52224); + this.drawsTextField.autoSize = TextFieldAutoSize.LEFT; + this.drawsTextField.text = "DRW:"; + this.drawsTextField.selectable = false; + this.drawsTextField.x = -3; + this.drawsTextField.y = 22; + diagram.addChild(this.drawsTextField); + this.trianglesTextField = new TextField(); + this.trianglesTextField.defaultTextFormat = new TextFormat("Tahoma",10,16724736); + this.trianglesTextField.autoSize = TextFieldAutoSize.LEFT; + this.trianglesTextField.text = "TRI:"; + this.trianglesTextField.selectable = false; + this.trianglesTextField.x = -3; + this.trianglesTextField.y = 31; + diagram.addChild(this.trianglesTextField); + diagram.addEventListener(Event.ADDED_TO_STAGE,function():void + { + fpsTextField = new TextField(); + fpsTextField.defaultTextFormat = new TextFormat("Tahoma",10,13421772); + fpsTextField.autoSize = TextFieldAutoSize.RIGHT; + fpsTextField.text = Number(diagram.stage.frameRate).toFixed(2); + fpsTextField.selectable = false; + fpsTextField.x = -3; + fpsTextField.y = -5; + fpsTextField.width = 85; + diagram.addChild(fpsTextField); + timerTextField = new TextField(); + timerTextField.defaultTextFormat = new TextFormat("Tahoma",10,26367); + timerTextField.autoSize = TextFieldAutoSize.RIGHT; + timerTextField.text = ""; + timerTextField.selectable = false; + timerTextField.x = -3; + timerTextField.y = 4; + timerTextField.width = 85; + diagram.addChild(timerTextField); + memoryTextField = new TextField(); + memoryTextField.defaultTextFormat = new TextFormat("Tahoma",10,13421568); + memoryTextField.autoSize = TextFieldAutoSize.RIGHT; + memoryTextField.text = bytesToString(System.totalMemory); + memoryTextField.selectable = false; + memoryTextField.x = -3; + memoryTextField.y = 13; + memoryTextField.width = 85; + diagram.addChild(memoryTextField); + drawsTextField = new TextField(); + drawsTextField.defaultTextFormat = new TextFormat("Tahoma",10,52224); + drawsTextField.autoSize = TextFieldAutoSize.RIGHT; + drawsTextField.text = "0"; + drawsTextField.selectable = false; + drawsTextField.x = -3; + drawsTextField.y = 22; + drawsTextField.width = 72; + diagram.addChild(drawsTextField); + trianglesTextField = new TextField(); + trianglesTextField.defaultTextFormat = new TextFormat("Tahoma",10,16724736); + trianglesTextField.autoSize = TextFieldAutoSize.RIGHT; + trianglesTextField.text = "0"; + trianglesTextField.selectable = false; + trianglesTextField.x = -3; + trianglesTextField.y = 31; + trianglesTextField.width = 72; + diagram.addChild(trianglesTextField); + graph = new Bitmap(new BitmapData(80,40,true,553648127)); + rect = new Rectangle(0,0,1,40); + graph.x = 0; + graph.y = 45; + diagram.addChild(graph); + previousPeriodTime = getTimer(); + previousFrameTime = previousPeriodTime; + fpsUpdateCounter = 0; + maxMemory = 0; + timerUpdateCounter = 0; + timeSum = 0; + timeCount = 0; + diagram.stage.addEventListener(Event.ENTER_FRAME,updateDiagram,false,-1000); + diagram.stage.addEventListener(Event.RESIZE,resizeDiagram,false,-1000); + resizeDiagram(); + }); + diagram.addEventListener(Event.REMOVED_FROM_STAGE,function():void + { + diagram.removeChild(fpsTextField); + diagram.removeChild(memoryTextField); + diagram.removeChild(drawsTextField); + diagram.removeChild(trianglesTextField); + diagram.removeChild(timerTextField); + diagram.removeChild(graph); + fpsTextField = null; + memoryTextField = null; + drawsTextField = null; + trianglesTextField = null; + timerTextField = null; + graph.bitmapData.dispose(); + graph = null; + rect = null; + diagram.stage.removeEventListener(Event.ENTER_FRAME,updateDiagram); + diagram.stage.removeEventListener(Event.RESIZE,resizeDiagram); + }); + return diagram; + } + + private function resizeDiagram(e:Event = null) : void + { + var coord:Point = null; + if(this._diagram.stage != null) + { + coord = this._diagram.parent.globalToLocal(new Point()); + if(this._diagramAlign == StageAlign.TOP_LEFT || this._diagramAlign == StageAlign.LEFT || this._diagramAlign == StageAlign.BOTTOM_LEFT) + { + this._diagram.x = Math.round(coord.x + this._diagramHorizontalMargin); + } + if(this._diagramAlign == StageAlign.TOP || this._diagramAlign == StageAlign.BOTTOM) + { + this._diagram.x = Math.round(coord.x + this._diagram.stage.stageWidth / 2 - this.graph.width / 2); + } + if(this._diagramAlign == StageAlign.TOP_RIGHT || this._diagramAlign == StageAlign.RIGHT || this._diagramAlign == StageAlign.BOTTOM_RIGHT) + { + this._diagram.x = Math.round(coord.x + this._diagram.stage.stageWidth - this._diagramHorizontalMargin - this.graph.width); + } + if(this._diagramAlign == StageAlign.TOP_LEFT || this._diagramAlign == StageAlign.TOP || this._diagramAlign == StageAlign.TOP_RIGHT) + { + this._diagram.y = Math.round(coord.y + this._diagramVerticalMargin); + } + if(this._diagramAlign == StageAlign.LEFT || this._diagramAlign == StageAlign.RIGHT) + { + this._diagram.y = Math.round(coord.y + this._diagram.stage.stageHeight / 2 - (this.graph.y + this.graph.height) / 2); + } + if(this._diagramAlign == StageAlign.BOTTOM_LEFT || this._diagramAlign == StageAlign.BOTTOM || this._diagramAlign == StageAlign.BOTTOM_RIGHT) + { + this._diagram.y = Math.round(coord.y + this._diagram.stage.stageHeight - this._diagramVerticalMargin - this.graph.y - this.graph.height); + } + } + } + + private function updateDiagram(e:Event) : void + { + var value:Number = NaN; + var mod:int = 0; + var time:int = int(getTimer()); + var stageFrameRate:int = int(this._diagram.stage.frameRate); + if(++this.fpsUpdateCounter == this.fpsUpdatePeriod) + { + value = 1000 * this.fpsUpdatePeriod / (time - this.previousPeriodTime); + if(value > stageFrameRate) + { + value = stageFrameRate; + } + mod = value * 100 % 100; + this.fpsTextField.text = int(value) + "." + (mod >= 10 ? mod : (mod > 0 ? "0" + mod : "00")); + this.previousPeriodTime = time; + this.fpsUpdateCounter = 0; + } + value = 1000 / (time - this.previousFrameTime); + if(value > stageFrameRate) + { + value = stageFrameRate; + } + this.graph.bitmapData.scroll(1,0); + this.graph.bitmapData.fillRect(this.rect,553648127); + this.graph.bitmapData.setPixel32(0,40 * (1 - value / stageFrameRate),4291611852); + this.previousFrameTime = time; + if(++this.timerUpdateCounter == this.timerUpdatePeriod) + { + if(this.timeCount > 0) + { + value = this.timeSum / this.timeCount; + mod = value * 100 % 100; + this.timerTextField.text = int(value) + "." + (mod >= 10 ? mod : (mod > 0 ? "0" + mod : "00")); + } + else + { + this.timerTextField.text = ""; + } + this.timerUpdateCounter = 0; + this.timeSum = 0; + this.timeCount = 0; + } + var memory:int = int(System.totalMemory); + value = memory / 1048576; + mod = value * 100 % 100; + this.memoryTextField.text = int(value) + "." + (mod >= 10 ? mod : (mod > 0 ? "0" + mod : "00")); + if(memory > this.maxMemory) + { + this.maxMemory = memory; + } + this.graph.bitmapData.setPixel32(0,40 * (1 - memory / this.maxMemory),4291611648); + this.drawsTextField.text = this.formatInt(this.alternativa3d::numDraws); + this.trianglesTextField.text = this.formatInt(this.alternativa3d::numTriangles); + } + + private function formatInt(num:int) : String + { + var n:int = 0; + var s:String = null; + if(num < 1000) + { + return "" + num; + } + if(num < 1000000) + { + n = num % 1000; + if(n < 10) + { + s = "00" + n; + } + else if(n < 100) + { + s = "0" + n; + } + else + { + s = "" + n; + } + return int(num / 1000) + " " + s; + } + n = num % 1000000 / 1000; + if(n < 10) + { + s = "00" + n; + } + else if(n < 100) + { + s = "0" + n; + } + else + { + s = "" + n; + } + n = num % 1000; + if(n < 10) + { + s += " 00" + n; + } + else if(n < 100) + { + s += " 0" + n; + } + else + { + s += " " + n; + } + return int(num / 1000000) + " " + s; + } + + private function bytesToString(bytes:int) : String + { + if(bytes < 1024) + { + return bytes + "b"; + } + if(bytes < 10240) + { + return (bytes / 1024).toFixed(2) + "kb"; + } + if(bytes < 102400) + { + return (bytes / 1024).toFixed(1) + "kb"; + } + if(bytes < 1048576) + { + return (bytes >> 10) + "kb"; + } + if(bytes < 10485760) + { + return (bytes / 1048576).toFixed(2); + } + if(bytes < 104857600) + { + return (bytes / 1048576).toFixed(1); + } + return String(bytes >> 20); + } + } +} + diff --git a/src/package_21/name_126.as b/src/package_21/name_126.as new file mode 100644 index 0000000..6f95eeb --- /dev/null +++ b/src/package_21/name_126.as @@ -0,0 +1,45 @@ +package package_21 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3DVertexBufferFormat; + + use namespace alternativa3d; + + public class name_126 + { + public static const POSITION:uint = 1; + + public static const NORMAL:uint = 2; + + public static const TANGENT4:uint = 3; + + public static const JOINTS:Vector. = Vector.([4,5,6,7]); + + public static const TEXCOORDS:Vector. = Vector.([8,9,10,11,12,13,14,15]); + + alternativa3d static const FORMATS:Array = [Context3DVertexBufferFormat.FLOAT_1,Context3DVertexBufferFormat.FLOAT_3,Context3DVertexBufferFormat.FLOAT_3,Context3DVertexBufferFormat.FLOAT_4,Context3DVertexBufferFormat.FLOAT_4,Context3DVertexBufferFormat.FLOAT_4,Context3DVertexBufferFormat.FLOAT_4,Context3DVertexBufferFormat.FLOAT_4,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2]; + + public function name_126() + { + super(); + } + + public static function name_433(attribute:int) : int + { + switch(alternativa3d::FORMATS[attribute]) + { + case Context3DVertexBufferFormat.FLOAT_1: + return 1; + case Context3DVertexBufferFormat.FLOAT_2: + return 2; + case Context3DVertexBufferFormat.FLOAT_3: + return 3; + case Context3DVertexBufferFormat.FLOAT_4: + return 4; + default: + return 0; + } + } + } +} + diff --git a/src/package_21/name_128.as b/src/package_21/name_128.as new file mode 100644 index 0000000..bfc845a --- /dev/null +++ b/src/package_21/name_128.as @@ -0,0 +1,37 @@ +package package_21 +{ + public class name_128 + { + public static const SKY:int = 0; + + public static const OPAQUE_SORT:int = 1; + + public static const OPAQUE:int = 2; + + public static const DECALS:int = 3; + + public static const TANK_SHADOW:int = 4; + + public static const TANK_OPAQUE:int = 5; + + public static const SHADOWS:int = 6; + + public static const SHADOWED_LIGHTS:int = 7; + + public static const LIGHTS:int = 8; + + public static const FOG:int = 9; + + public static const TRANSPARENT_SORT:int = 10; + + public static const NEXT_LAYER:int = 11; + + public static const EFFECTS:int = 12; + + public function name_128() + { + super(); + } + } +} + diff --git a/src/package_21/name_135.as b/src/package_21/name_135.as new file mode 100644 index 0000000..e49be67 --- /dev/null +++ b/src/package_21/name_135.as @@ -0,0 +1,368 @@ +package package_21 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DTriangleFace; + import flash.display3D.IndexBuffer3D; + import flash.display3D.Program3D; + import flash.display3D.VertexBuffer3D; + import flash.display3D.textures.TextureBase; + + use namespace alternativa3d; + + public class name_135 + { + alternativa3d var next:name_135; + + alternativa3d var object:name_78; + + alternativa3d var program:Program3D; + + alternativa3d var indexBuffer:IndexBuffer3D; + + alternativa3d var firstIndex:int; + + alternativa3d var numTriangles:int; + + alternativa3d var blendSource:String = "one"; + + alternativa3d var blendDestination:String = "zero"; + + alternativa3d var culling:String = "front"; + + alternativa3d var textures:Vector. = new Vector.(); + + alternativa3d var var_183:Vector. = new Vector.(); + + alternativa3d var var_182:int = 0; + + alternativa3d var vertexBuffers:Vector. = new Vector.(); + + alternativa3d var name_405:Vector. = new Vector.(); + + alternativa3d var name_411:Vector. = new Vector.(); + + alternativa3d var name_409:Vector. = new Vector.(); + + alternativa3d var name_403:int = 0; + + alternativa3d var name_410:Vector. = new Vector.(); + + alternativa3d var name_404:int = 0; + + alternativa3d var name_408:Vector. = new Vector.(28 * 4,true); + + alternativa3d var name_407:int = 0; + + public function name_135() + { + super(); + } + + alternativa3d function clear() : void + { + this.alternativa3d::object = null; + this.alternativa3d::program = null; + this.alternativa3d::indexBuffer = null; + this.alternativa3d::blendSource = Context3DBlendFactor.ONE; + this.alternativa3d::blendDestination = Context3DBlendFactor.ZERO; + this.alternativa3d::culling = Context3DTriangleFace.FRONT; + this.alternativa3d::textures.length = 0; + this.alternativa3d::var_182 = 0; + this.alternativa3d::vertexBuffers.length = 0; + this.alternativa3d::name_403 = 0; + this.alternativa3d::name_404 = 0; + this.alternativa3d::name_407 = 0; + } + + alternativa3d function setTextureAt(sampler:int, texture:TextureBase) : void + { + if(uint(sampler) > 8) + { + throw new Error("Sampler index " + sampler + " is out of bounds."); + } + if(texture == null) + { + throw new Error("Texture is null"); + } + this.alternativa3d::var_183[this.alternativa3d::var_182] = sampler; + this.alternativa3d::textures[this.alternativa3d::var_182] = texture; + ++this.alternativa3d::var_182; + } + + alternativa3d function setVertexBufferAt(index:int, buffer:VertexBuffer3D, bufferOffset:int, format:String) : void + { + if(uint(index) > 8) + { + throw new Error("VertexBuffer index " + index + " is out of bounds."); + } + if(buffer == null) + { + throw new Error("Buffer is null"); + } + this.alternativa3d::name_405[this.alternativa3d::name_403] = index; + this.alternativa3d::vertexBuffers[this.alternativa3d::name_403] = buffer; + this.alternativa3d::name_411[this.alternativa3d::name_403] = bufferOffset; + this.alternativa3d::name_409[this.alternativa3d::name_403] = format; + ++this.alternativa3d::name_403; + } + + alternativa3d function name_426(firstRegister:int, data:Vector., numRegisters:int) : void + { + if(uint(firstRegister + numRegisters) > 128) + { + throw new Error("Register index " + firstRegister + " is out of bounds."); + } + var offset:int = firstRegister << 2; + if(firstRegister + numRegisters > this.alternativa3d::name_404) + { + this.alternativa3d::name_404 = firstRegister + numRegisters; + this.alternativa3d::name_410.length = this.alternativa3d::name_404 << 2; + } + for(var i:int = 0,var len:int = numRegisters << 2; i < len; ) + { + this.alternativa3d::name_410[offset] = data[i]; + offset++; + i++; + } + } + + alternativa3d function name_144(firstRegister:int, x:Number, y:Number, z:Number, w:Number = 1) : void + { + if(uint(firstRegister + 1) > 128) + { + throw new Error("Register index " + firstRegister + " is out of bounds."); + } + var offset:int = firstRegister << 2; + if(firstRegister + 1 > this.alternativa3d::name_404) + { + this.alternativa3d::name_404 = firstRegister + 1; + this.alternativa3d::name_410.length = this.alternativa3d::name_404 << 2; + } + this.alternativa3d::name_410[offset] = x; + offset++; + this.alternativa3d::name_410[offset] = y; + offset++; + this.alternativa3d::name_410[offset] = z; + offset++; + this.alternativa3d::name_410[offset] = w; + } + + alternativa3d function name_412(firstRegister:int, transform:name_139) : void + { + if(uint(firstRegister + 3) > 128) + { + throw new Error("Register index " + firstRegister + " is out of bounds."); + } + var offset:int = firstRegister << 2; + if(firstRegister + 3 > this.alternativa3d::name_404) + { + this.alternativa3d::name_404 = firstRegister + 3; + this.alternativa3d::name_410.length = this.alternativa3d::name_404 << 2; + } + this.alternativa3d::name_410[offset] = transform.a; + offset++; + this.alternativa3d::name_410[offset] = transform.b; + offset++; + this.alternativa3d::name_410[offset] = transform.c; + offset++; + this.alternativa3d::name_410[offset] = transform.d; + offset++; + this.alternativa3d::name_410[offset] = transform.e; + offset++; + this.alternativa3d::name_410[offset] = transform.f; + offset++; + this.alternativa3d::name_410[offset] = transform.g; + offset++; + this.alternativa3d::name_410[offset] = transform.h; + offset++; + this.alternativa3d::name_410[offset] = transform.i; + offset++; + this.alternativa3d::name_410[offset] = transform.j; + offset++; + this.alternativa3d::name_410[offset] = transform.k; + offset++; + this.alternativa3d::name_410[offset] = transform.l; + } + + alternativa3d function name_136(camera:name_124, firstRegister:int, transform:name_139 = null) : void + { + if(uint(firstRegister + 4) > 128) + { + throw new Error("Register index is out of bounds."); + } + var offset:int = firstRegister << 2; + if(firstRegister + 4 > this.alternativa3d::name_404) + { + this.alternativa3d::name_404 = firstRegister + 4; + this.alternativa3d::name_410.length = this.alternativa3d::name_404 << 2; + } + if(transform != null) + { + this.alternativa3d::name_410[offset] = transform.a * camera.alternativa3d::m0; + offset++; + this.alternativa3d::name_410[offset] = transform.b * camera.alternativa3d::m0; + offset++; + this.alternativa3d::name_410[offset] = transform.c * camera.alternativa3d::m0; + offset++; + this.alternativa3d::name_410[offset] = transform.d * camera.alternativa3d::m0; + offset++; + this.alternativa3d::name_410[offset] = transform.e * camera.alternativa3d::m5; + offset++; + this.alternativa3d::name_410[offset] = transform.f * camera.alternativa3d::m5; + offset++; + this.alternativa3d::name_410[offset] = transform.g * camera.alternativa3d::m5; + offset++; + this.alternativa3d::name_410[offset] = transform.h * camera.alternativa3d::m5; + offset++; + this.alternativa3d::name_410[offset] = transform.i * camera.alternativa3d::m10; + offset++; + this.alternativa3d::name_410[offset] = transform.j * camera.alternativa3d::m10; + offset++; + this.alternativa3d::name_410[offset] = transform.k * camera.alternativa3d::m10; + offset++; + this.alternativa3d::name_410[offset] = transform.l * camera.alternativa3d::m10 + camera.alternativa3d::m14; + offset++; + if(!camera.orthographic) + { + this.alternativa3d::name_410[offset] = transform.i; + offset++; + this.alternativa3d::name_410[offset] = transform.j; + offset++; + this.alternativa3d::name_410[offset] = transform.k; + offset++; + this.alternativa3d::name_410[offset] = transform.l; + } + else + { + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = 1; + } + } + else + { + this.alternativa3d::name_410[offset] = camera.alternativa3d::m0; + offset++; + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = camera.alternativa3d::m5; + offset++; + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = camera.alternativa3d::m10; + offset++; + this.alternativa3d::name_410[offset] = camera.alternativa3d::m14; + offset++; + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = 0; + offset++; + if(!camera.orthographic) + { + this.alternativa3d::name_410[offset] = 1; + offset++; + this.alternativa3d::name_410[offset] = 0; + } + else + { + this.alternativa3d::name_410[offset] = 0; + offset++; + this.alternativa3d::name_410[offset] = 1; + } + } + } + + alternativa3d function name_205(firstRegister:int, data:Vector., numRegisters:int) : void + { + if(uint(firstRegister + numRegisters) > 28) + { + throw new Error("Register index " + firstRegister + " is out of bounds."); + } + var offset:int = firstRegister << 2; + if(firstRegister + numRegisters > this.alternativa3d::name_407) + { + this.alternativa3d::name_407 = firstRegister + numRegisters; + } + for(var i:int = 0,var len:int = numRegisters << 2; i < len; ) + { + this.alternativa3d::name_408[offset] = data[i]; + offset++; + i++; + } + } + + alternativa3d function name_134(firstRegister:int, x:Number, y:Number, z:Number, w:Number = 1) : void + { + if(uint(firstRegister + 1) > 28) + { + throw new Error("Register index " + firstRegister + " is out of bounds."); + } + var offset:int = firstRegister << 2; + if(firstRegister + 1 > this.alternativa3d::name_407) + { + this.alternativa3d::name_407 = firstRegister + 1; + } + this.alternativa3d::name_408[offset] = x; + offset++; + this.alternativa3d::name_408[offset] = y; + offset++; + this.alternativa3d::name_408[offset] = z; + offset++; + this.alternativa3d::name_408[offset] = w; + } + + alternativa3d function method_291(firstRegister:int, transform:name_139) : void + { + if(uint(firstRegister + 3) > 28) + { + throw new Error("Register index " + firstRegister + " is out of bounds."); + } + var offset:int = firstRegister << 2; + if(firstRegister + 3 > this.alternativa3d::name_407) + { + this.alternativa3d::name_407 = firstRegister + 3; + } + this.alternativa3d::name_408[offset] = transform.a; + offset++; + this.alternativa3d::name_408[offset] = transform.b; + offset++; + this.alternativa3d::name_408[offset] = transform.c; + offset++; + this.alternativa3d::name_408[offset] = transform.d; + offset++; + this.alternativa3d::name_408[offset] = transform.e; + offset++; + this.alternativa3d::name_408[offset] = transform.f; + offset++; + this.alternativa3d::name_408[offset] = transform.g; + offset++; + this.alternativa3d::name_408[offset] = transform.h; + offset++; + this.alternativa3d::name_408[offset] = transform.i; + offset++; + this.alternativa3d::name_408[offset] = transform.j; + offset++; + this.alternativa3d::name_408[offset] = transform.k; + offset++; + this.alternativa3d::name_408[offset] = transform.l; + } + } +} + diff --git a/src/package_21/name_139.as b/src/package_21/name_139.as new file mode 100644 index 0000000..34f23e1 --- /dev/null +++ b/src/package_21/name_139.as @@ -0,0 +1,278 @@ +package package_21 +{ + import alternativa.engine3d.alternativa3d; + + use namespace alternativa3d; + + public class name_139 + { + public var a:Number = 1; + + public var b:Number = 0; + + public var c:Number = 0; + + public var d:Number = 0; + + public var e:Number = 0; + + public var f:Number = 1; + + public var g:Number = 0; + + public var h:Number = 0; + + public var i:Number = 0; + + public var j:Number = 0; + + public var k:Number = 1; + + public var l:Number = 0; + + public function name_139() + { + super(); + } + + public function method_293() : void + { + this.a = 1; + this.b = 0; + this.c = 0; + this.d = 0; + this.e = 0; + this.f = 1; + this.g = 0; + this.h = 0; + this.i = 0; + this.j = 0; + this.k = 1; + this.l = 0; + } + + public function compose(x:Number, y:Number, z:Number, rotationX:Number, rotationY:Number, rotationZ:Number, scaleX:Number, scaleY:Number, scaleZ:Number) : void + { + var cosX:Number = Number(Math.cos(rotationX)); + var sinX:Number = Number(Math.sin(rotationX)); + var cosY:Number = Number(Math.cos(rotationY)); + var sinY:Number = Number(Math.sin(rotationY)); + var cosZ:Number = Number(Math.cos(rotationZ)); + var sinZ:Number = Number(Math.sin(rotationZ)); + var cosZsinY:Number = cosZ * sinY; + var sinZsinY:Number = sinZ * sinY; + var cosYscaleX:Number = cosY * scaleX; + var sinXscaleY:Number = sinX * scaleY; + var cosXscaleY:Number = cosX * scaleY; + var cosXscaleZ:Number = cosX * scaleZ; + var sinXscaleZ:Number = sinX * scaleZ; + this.a = cosZ * cosYscaleX; + this.b = cosZsinY * sinXscaleY - sinZ * cosXscaleY; + this.c = cosZsinY * cosXscaleZ + sinZ * sinXscaleZ; + this.d = x; + this.e = sinZ * cosYscaleX; + this.f = sinZsinY * sinXscaleY + cosZ * cosXscaleY; + this.g = sinZsinY * cosXscaleZ - cosZ * sinXscaleZ; + this.h = y; + this.i = -sinY * scaleX; + this.j = cosY * sinXscaleY; + this.k = cosY * cosXscaleZ; + this.l = z; + } + + public function method_292(x:Number, y:Number, z:Number, rotationX:Number, rotationY:Number, rotationZ:Number, scaleX:Number, scaleY:Number, scaleZ:Number) : void + { + var cosX:Number = Number(Math.cos(rotationX)); + var sinX:Number = Number(Math.sin(-rotationX)); + var cosY:Number = Number(Math.cos(rotationY)); + var sinY:Number = Number(Math.sin(-rotationY)); + var cosZ:Number = Number(Math.cos(rotationZ)); + var sinZ:Number = Number(Math.sin(-rotationZ)); + var sinXsinY:Number = sinX * sinY; + var cosYscaleX:Number = cosY / scaleX; + var cosXscaleY:Number = cosX / scaleY; + var sinXscaleZ:Number = sinX / scaleZ; + var cosXscaleZ:Number = cosX / scaleZ; + this.a = cosZ * cosYscaleX; + this.b = -sinZ * cosYscaleX; + this.c = sinY / scaleX; + this.d = -this.a * x - this.b * y - this.c * z; + this.e = sinZ * cosXscaleY + sinXsinY * cosZ / scaleY; + this.f = cosZ * cosXscaleY - sinXsinY * sinZ / scaleY; + this.g = -sinX * cosY / scaleY; + this.h = -this.e * x - this.f * y - this.g * z; + this.i = sinZ * sinXscaleZ - cosZ * sinY * cosXscaleZ; + this.j = cosZ * sinXscaleZ + sinY * sinZ * cosXscaleZ; + this.k = cosY * cosXscaleZ; + this.l = -this.i * x - this.j * y - this.k * z; + } + + public function invert() : void + { + var ta:Number = this.a; + var tb:Number = this.b; + var tc:Number = this.c; + var td:Number = this.d; + var te:Number = this.e; + var tf:Number = this.f; + var tg:Number = this.g; + var th:Number = this.h; + var ti:Number = this.i; + var tj:Number = this.j; + var tk:Number = this.k; + var tl:Number = this.l; + var det:Number = 1 / (-tc * tf * ti + tb * tg * ti + tc * te * tj - ta * tg * tj - tb * te * tk + ta * tf * tk); + this.a = (-tg * tj + tf * tk) * det; + this.b = (tc * tj - tb * tk) * det; + this.c = (-tc * tf + tb * tg) * det; + this.d = (td * tg * tj - tc * th * tj - td * tf * tk + tb * th * tk + tc * tf * tl - tb * tg * tl) * det; + this.e = (tg * ti - te * tk) * det; + this.f = (-tc * ti + ta * tk) * det; + this.g = (tc * te - ta * tg) * det; + this.h = (tc * th * ti - td * tg * ti + td * te * tk - ta * th * tk - tc * te * tl + ta * tg * tl) * det; + this.i = (-tf * ti + te * tj) * det; + this.j = (tb * ti - ta * tj) * det; + this.k = (-tb * te + ta * tf) * det; + this.l = (td * tf * ti - tb * th * ti - td * te * tj + ta * th * tj + tb * te * tl - ta * tf * tl) * det; + } + + public function method_294(vector:Vector.) : void + { + this.a = vector[0]; + this.b = vector[1]; + this.c = vector[2]; + this.d = vector[3]; + this.e = vector[4]; + this.f = vector[5]; + this.g = vector[6]; + this.h = vector[7]; + this.i = vector[8]; + this.j = vector[9]; + this.k = vector[10]; + this.l = vector[11]; + } + + public function append(transform:name_139) : void + { + var ta:Number = this.a; + var tb:Number = this.b; + var tc:Number = this.c; + var td:Number = this.d; + var te:Number = this.e; + var tf:Number = this.f; + var tg:Number = this.g; + var th:Number = this.h; + var ti:Number = this.i; + var tj:Number = this.j; + var tk:Number = this.k; + var tl:Number = this.l; + this.a = transform.a * ta + transform.b * te + transform.c * ti; + this.b = transform.a * tb + transform.b * tf + transform.c * tj; + this.c = transform.a * tc + transform.b * tg + transform.c * tk; + this.d = transform.a * td + transform.b * th + transform.c * tl + transform.d; + this.e = transform.e * ta + transform.f * te + transform.g * ti; + this.f = transform.e * tb + transform.f * tf + transform.g * tj; + this.g = transform.e * tc + transform.f * tg + transform.g * tk; + this.h = transform.e * td + transform.f * th + transform.g * tl + transform.h; + this.i = transform.i * ta + transform.j * te + transform.k * ti; + this.j = transform.i * tb + transform.j * tf + transform.k * tj; + this.k = transform.i * tc + transform.j * tg + transform.k * tk; + this.l = transform.i * td + transform.j * th + transform.k * tl + transform.l; + } + + public function prepend(transform:name_139) : void + { + var ta:Number = this.a; + var tb:Number = this.b; + var tc:Number = this.c; + var td:Number = this.d; + var te:Number = this.e; + var tf:Number = this.f; + var tg:Number = this.g; + var th:Number = this.h; + var ti:Number = this.i; + var tj:Number = this.j; + var tk:Number = this.k; + var tl:Number = this.l; + this.a = ta * transform.a + tb * transform.e + tc * transform.i; + this.b = ta * transform.b + tb * transform.f + tc * transform.j; + this.c = ta * transform.c + tb * transform.g + tc * transform.k; + this.d = ta * transform.d + tb * transform.h + tc * transform.l + td; + this.e = te * transform.a + tf * transform.e + tg * transform.i; + this.f = te * transform.b + tf * transform.f + tg * transform.j; + this.g = te * transform.c + tf * transform.g + tg * transform.k; + this.h = te * transform.d + tf * transform.h + tg * transform.l + th; + this.i = ti * transform.a + tj * transform.e + tk * transform.i; + this.j = ti * transform.b + tj * transform.f + tk * transform.j; + this.k = ti * transform.c + tj * transform.g + tk * transform.k; + this.l = ti * transform.d + tj * transform.h + tk * transform.l + tl; + } + + public function combine(transformA:name_139, transformB:name_139) : void + { + this.a = transformA.a * transformB.a + transformA.b * transformB.e + transformA.c * transformB.i; + this.b = transformA.a * transformB.b + transformA.b * transformB.f + transformA.c * transformB.j; + this.c = transformA.a * transformB.c + transformA.b * transformB.g + transformA.c * transformB.k; + this.d = transformA.a * transformB.d + transformA.b * transformB.h + transformA.c * transformB.l + transformA.d; + this.e = transformA.e * transformB.a + transformA.f * transformB.e + transformA.g * transformB.i; + this.f = transformA.e * transformB.b + transformA.f * transformB.f + transformA.g * transformB.j; + this.g = transformA.e * transformB.c + transformA.f * transformB.g + transformA.g * transformB.k; + this.h = transformA.e * transformB.d + transformA.f * transformB.h + transformA.g * transformB.l + transformA.h; + this.i = transformA.i * transformB.a + transformA.j * transformB.e + transformA.k * transformB.i; + this.j = transformA.i * transformB.b + transformA.j * transformB.f + transformA.k * transformB.j; + this.k = transformA.i * transformB.c + transformA.j * transformB.g + transformA.k * transformB.k; + this.l = transformA.i * transformB.d + transformA.j * transformB.h + transformA.k * transformB.l + transformA.l; + } + + public function calculateInversion(source:name_139) : void + { + var ta:Number = source.a; + var tb:Number = source.b; + var tc:Number = source.c; + var td:Number = source.d; + var te:Number = source.e; + var tf:Number = source.f; + var tg:Number = source.g; + var th:Number = source.h; + var ti:Number = source.i; + var tj:Number = source.j; + var tk:Number = source.k; + var tl:Number = source.l; + var det:Number = 1 / (-tc * tf * ti + tb * tg * ti + tc * te * tj - ta * tg * tj - tb * te * tk + ta * tf * tk); + this.a = (-tg * tj + tf * tk) * det; + this.b = (tc * tj - tb * tk) * det; + this.c = (-tc * tf + tb * tg) * det; + this.d = (td * tg * tj - tc * th * tj - td * tf * tk + tb * th * tk + tc * tf * tl - tb * tg * tl) * det; + this.e = (tg * ti - te * tk) * det; + this.f = (-tc * ti + ta * tk) * det; + this.g = (tc * te - ta * tg) * det; + this.h = (tc * th * ti - td * tg * ti + td * te * tk - ta * th * tk - tc * te * tl + ta * tg * tl) * det; + this.i = (-tf * ti + te * tj) * det; + this.j = (tb * ti - ta * tj) * det; + this.k = (-tb * te + ta * tf) * det; + this.l = (td * tf * ti - tb * th * ti - td * te * tj + ta * th * tj + tb * te * tl - ta * tf * tl) * det; + } + + public function copy(source:name_139) : void + { + this.a = source.a; + this.b = source.b; + this.c = source.c; + this.d = source.d; + this.e = source.e; + this.f = source.f; + this.g = source.g; + this.h = source.h; + this.i = source.i; + this.j = source.j; + this.k = source.k; + this.l = source.l; + } + + public function toString() : String + { + return "[Transform3D" + " a:" + this.a.toFixed(3) + " b:" + this.b.toFixed(3) + " c:" + this.a.toFixed(3) + " d:" + this.d.toFixed(3) + " e:" + this.e.toFixed(3) + " f:" + this.f.toFixed(3) + " g:" + this.a.toFixed(3) + " h:" + this.h.toFixed(3) + " i:" + this.i.toFixed(3) + " j:" + this.j.toFixed(3) + " k:" + this.a.toFixed(3) + " l:" + this.l.toFixed(3) + "]"; + } + } +} + diff --git a/src/package_21/name_386.as b/src/package_21/name_386.as new file mode 100644 index 0000000..bd1b9bb --- /dev/null +++ b/src/package_21/name_386.as @@ -0,0 +1,373 @@ +package package_21 +{ + import alternativa.engine3d.alternativa3d; + import flash.geom.Vector3D; + + use namespace alternativa3d; + + public class name_386 + { + public var minX:Number = 1e+22; + + public var minY:Number = 1e+22; + + public var minZ:Number = 1e+22; + + public var maxX:Number = -1e+22; + + public var maxY:Number = -1e+22; + + public var maxZ:Number = -1e+22; + + public function name_386() + { + super(); + } + + public function reset() : void + { + this.minX = 1e+22; + this.minY = 1e+22; + this.minZ = 1e+22; + this.maxX = -1e+22; + this.maxY = -1e+22; + this.maxZ = -1e+22; + } + + alternativa3d function name_393(frustum:name_429, culling:int) : int + { + var side:int = 1; + for(var plane:name_429 = frustum; plane != null; plane = plane.next) + { + if(Boolean(culling & side)) + { + if(plane.x >= 0) + { + if(plane.y >= 0) + { + if(plane.z >= 0) + { + if(this.maxX * plane.x + this.maxY * plane.y + this.maxZ * plane.z <= plane.offset) + { + return -1; + } + if(this.minX * plane.x + this.minY * plane.y + this.minZ * plane.z > plane.offset) + { + culling &= 0x3F & ~side; + } + } + else + { + if(this.maxX * plane.x + this.maxY * plane.y + this.minZ * plane.z <= plane.offset) + { + return -1; + } + if(this.minX * plane.x + this.minY * plane.y + this.maxZ * plane.z > plane.offset) + { + culling &= 0x3F & ~side; + } + } + } + else if(plane.z >= 0) + { + if(this.maxX * plane.x + this.minY * plane.y + this.maxZ * plane.z <= plane.offset) + { + return -1; + } + if(this.minX * plane.x + this.maxY * plane.y + this.minZ * plane.z > plane.offset) + { + culling &= 0x3F & ~side; + } + } + else + { + if(this.maxX * plane.x + this.minY * plane.y + this.minZ * plane.z <= plane.offset) + { + return -1; + } + if(this.minX * plane.x + this.maxY * plane.y + this.maxZ * plane.z > plane.offset) + { + culling &= 0x3F & ~side; + } + } + } + else if(plane.y >= 0) + { + if(plane.z >= 0) + { + if(this.minX * plane.x + this.maxY * plane.y + this.maxZ * plane.z <= plane.offset) + { + return -1; + } + if(this.maxX * plane.x + this.minY * plane.y + this.minZ * plane.z > plane.offset) + { + culling &= 0x3F & ~side; + } + } + else + { + if(this.minX * plane.x + this.maxY * plane.y + this.minZ * plane.z <= plane.offset) + { + return -1; + } + if(this.maxX * plane.x + this.minY * plane.y + this.maxZ * plane.z > plane.offset) + { + culling &= 0x3F & ~side; + } + } + } + else if(plane.z >= 0) + { + if(this.minX * plane.x + this.minY * plane.y + this.maxZ * plane.z <= plane.offset) + { + return -1; + } + if(this.maxX * plane.x + this.maxY * plane.y + this.minZ * plane.z > plane.offset) + { + culling &= 0x3F & ~side; + } + } + else + { + if(this.minX * plane.x + this.minY * plane.y + this.minZ * plane.z <= plane.offset) + { + return -1; + } + if(this.maxX * plane.x + this.maxY * plane.y + this.maxZ * plane.z > plane.offset) + { + culling &= 0x3F & ~side; + } + } + } + side <<= 1; + } + return culling; + } + + alternativa3d function name_392(camera:name_124, object:name_78, occlusion:name_429 = null) : Boolean + { + return true; + } + + alternativa3d function name_391(origins:Vector., directions:Vector., raysLength:int) : Boolean + { + var origin:Vector3D = null; + var direction:Vector3D = null; + var a:Number = NaN; + var b:Number = NaN; + var c:Number = NaN; + var d:Number = NaN; + var threshold:Number = NaN; + for(var i:int = 0; i < raysLength; ) + { + origin = origins[i]; + direction = directions[i]; + if(origin.x >= this.minX && origin.x <= this.maxX && origin.y >= this.minY && origin.y <= this.maxY && origin.z >= this.minZ && origin.z <= this.maxZ) + { + return true; + } + if(!(origin.x < this.minX && direction.x <= 0 || origin.x > this.maxX && direction.x >= 0 || origin.y < this.minY && direction.y <= 0 || origin.y > this.maxY && direction.y >= 0 || origin.z < this.minZ && direction.z <= 0 || origin.z > this.maxZ && direction.z >= 0)) + { + threshold = 0.000001; + if(direction.x > threshold) + { + a = (this.minX - origin.x) / direction.x; + b = (this.maxX - origin.x) / direction.x; + } + else if(direction.x < -threshold) + { + a = (this.maxX - origin.x) / direction.x; + b = (this.minX - origin.x) / direction.x; + } + else + { + a = 0; + b = 1e+22; + } + if(direction.y > threshold) + { + c = (this.minY - origin.y) / direction.y; + d = (this.maxY - origin.y) / direction.y; + } + else if(direction.y < -threshold) + { + c = (this.maxY - origin.y) / direction.y; + d = (this.minY - origin.y) / direction.y; + } + else + { + c = 0; + d = 1e+22; + } + if(!(c >= b || d <= a)) + { + if(c < a) + { + if(d < b) + { + b = d; + } + } + else + { + a = c; + if(d < b) + { + b = d; + } + } + if(direction.z > threshold) + { + c = (this.minZ - origin.z) / direction.z; + d = (this.maxZ - origin.z) / direction.z; + } + else if(direction.z < -threshold) + { + c = (this.maxZ - origin.z) / direction.z; + d = (this.minZ - origin.z) / direction.z; + } + else + { + c = 0; + d = 1e+22; + } + if(!(c >= b || d <= a)) + { + return true; + } + } + } + i++; + } + return false; + } + + alternativa3d function name_395(sphere:Vector3D) : Boolean + { + return sphere.x + sphere.w > this.minX && sphere.x - sphere.w < this.maxX && sphere.y + sphere.w > this.minY && sphere.y - sphere.w < this.maxY && sphere.z + sphere.w > this.minZ && sphere.z - sphere.w < this.maxZ; + } + + public function intersectRay(origin:Vector3D, direction:Vector3D) : Boolean + { + var a:Number = NaN; + var b:Number = NaN; + var c:Number = NaN; + var d:Number = NaN; + if(origin.x >= this.minX && origin.x <= this.maxX && origin.y >= this.minY && origin.y <= this.maxY && origin.z >= this.minZ && origin.z <= this.maxZ) + { + return true; + } + if(origin.x < this.minX && direction.x <= 0) + { + return false; + } + if(origin.x > this.maxX && direction.x >= 0) + { + return false; + } + if(origin.y < this.minY && direction.y <= 0) + { + return false; + } + if(origin.y > this.maxY && direction.y >= 0) + { + return false; + } + if(origin.z < this.minZ && direction.z <= 0) + { + return false; + } + if(origin.z > this.maxZ && direction.z >= 0) + { + return false; + } + if(direction.x > 0.000001) + { + a = (this.minX - origin.x) / direction.x; + b = (this.maxX - origin.x) / direction.x; + } + else if(direction.x < -0.000001) + { + a = (this.maxX - origin.x) / direction.x; + b = (this.minX - origin.x) / direction.x; + } + else + { + a = -1e+22; + b = 1e+22; + } + if(direction.y > 0.000001) + { + c = (this.minY - origin.y) / direction.y; + d = (this.maxY - origin.y) / direction.y; + } + else if(direction.y < -0.000001) + { + c = (this.maxY - origin.y) / direction.y; + d = (this.minY - origin.y) / direction.y; + } + else + { + c = -1e+22; + d = 1e+22; + } + if(c >= b || d <= a) + { + return false; + } + if(c < a) + { + if(d < b) + { + b = d; + } + } + else + { + a = c; + if(d < b) + { + b = d; + } + } + if(direction.z > 0.000001) + { + c = (this.minZ - origin.z) / direction.z; + d = (this.maxZ - origin.z) / direction.z; + } + else if(direction.z < -0.000001) + { + c = (this.maxZ - origin.z) / direction.z; + d = (this.minZ - origin.z) / direction.z; + } + else + { + c = -1e+22; + d = 1e+22; + } + if(c >= b || d <= a) + { + return false; + } + return true; + } + + public function clone() : name_386 + { + var res:name_386 = new name_386(); + res.minX = this.minX; + res.minY = this.minY; + res.minZ = this.minZ; + res.maxX = this.maxX; + res.maxY = this.maxY; + res.maxZ = this.maxZ; + return res; + } + + public function toString() : String + { + return "[BoundBox " + "X:[" + this.minX.toFixed(2) + ", " + this.maxX.toFixed(2) + "] Y:[" + this.minY.toFixed(2) + ", " + this.maxY.toFixed(2) + "] Z:[" + this.minZ.toFixed(2) + ", " + this.maxZ.toFixed(2) + "]]"; + } + } +} + diff --git a/src/package_21/name_387.as b/src/package_21/name_387.as new file mode 100644 index 0000000..53b39f1 --- /dev/null +++ b/src/package_21/name_387.as @@ -0,0 +1,30 @@ +package package_21 +{ + import flash.geom.Point; + import flash.geom.Vector3D; + import package_19.name_117; + + public class name_387 + { + public var object:name_78; + + public var point:Vector3D; + + public var surface:name_117; + + public var time:Number; + + public var uv:Point; + + public function name_387() + { + super(); + } + + public function toString() : String + { + return "[RayIntersectionData " + this.object + ", " + this.point + ", " + this.uv + ", " + this.time + "]"; + } + } +} + diff --git a/src/package_21/name_397.as b/src/package_21/name_397.as new file mode 100644 index 0000000..bbf4fcc --- /dev/null +++ b/src/package_21/name_397.as @@ -0,0 +1,55 @@ +package package_21 +{ + import alternativa.engine3d.alternativa3d; + import flash.utils.Dictionary; + import package_19.name_509; + + use namespace alternativa3d; + + public class name_397 + { + public static const BOUNDS:int = 8; + + private static var boundWires:Dictionary = new Dictionary(); + + public function name_397() + { + super(); + } + + private static function method_643() : name_509 + { + var res:name_509 = new name_509(); + res.alternativa3d::geometry.alternativa3d::method_558(-0.5,-0.5,-0.5,0.5,-0.5,-0.5); + res.alternativa3d::geometry.alternativa3d::method_558(0.5,-0.5,-0.5,0.5,0.5,-0.5); + res.alternativa3d::geometry.alternativa3d::method_558(0.5,0.5,-0.5,-0.5,0.5,-0.5); + res.alternativa3d::geometry.alternativa3d::method_558(-0.5,0.5,-0.5,-0.5,-0.5,-0.5); + res.alternativa3d::geometry.alternativa3d::method_558(-0.5,-0.5,0.5,0.5,-0.5,0.5); + res.alternativa3d::geometry.alternativa3d::method_558(0.5,-0.5,0.5,0.5,0.5,0.5); + res.alternativa3d::geometry.alternativa3d::method_558(0.5,0.5,0.5,-0.5,0.5,0.5); + res.alternativa3d::geometry.alternativa3d::method_558(-0.5,0.5,0.5,-0.5,-0.5,0.5); + res.alternativa3d::geometry.alternativa3d::method_558(-0.5,-0.5,-0.5,-0.5,-0.5,0.5); + res.alternativa3d::geometry.alternativa3d::method_558(0.5,-0.5,-0.5,0.5,-0.5,0.5); + res.alternativa3d::geometry.alternativa3d::method_558(0.5,0.5,-0.5,0.5,0.5,0.5); + res.alternativa3d::geometry.alternativa3d::method_558(-0.5,0.5,-0.5,-0.5,0.5,0.5); + return res; + } + + alternativa3d static function name_399(camera:name_124, boundBox:name_386, transform:name_139, color:int = -1) : void + { + var boundWire:name_509 = boundWires[camera.alternativa3d::context3D]; + if(boundWire == null) + { + boundWire = method_643(); + boundWires[camera.alternativa3d::context3D] = boundWire; + boundWire.alternativa3d::geometry.upload(camera.alternativa3d::context3D); + } + boundWire.color = color >= 0 ? uint(color) : 10092288; + boundWire.thickness = 1; + boundWire.alternativa3d::transform.compose((boundBox.minX + boundBox.maxX) * 0.5,(boundBox.minY + boundBox.maxY) * 0.5,(boundBox.minZ + boundBox.maxZ) * 0.5,0,0,0,boundBox.maxX - boundBox.minX,boundBox.maxY - boundBox.minY,boundBox.maxZ - boundBox.minZ); + boundWire.alternativa3d::localToCameraTransform.combine(transform,boundWire.alternativa3d::transform); + boundWire.alternativa3d::collectDraws(camera,null,0); + } + } +} + diff --git a/src/package_21/name_429.as b/src/package_21/name_429.as new file mode 100644 index 0000000..44f2420 --- /dev/null +++ b/src/package_21/name_429.as @@ -0,0 +1,49 @@ +package package_21 +{ + public class name_429 + { + public static var collector:name_429; + + public var x:Number; + + public var y:Number; + + public var z:Number; + + public var offset:Number; + + public var next:name_429; + + public function name_429() + { + super(); + } + + public static function create() : name_429 + { + var res:name_429 = null; + if(collector != null) + { + res = collector; + collector = res.next; + res.next = null; + return res; + } + return new name_429(); + } + + public function create() : name_429 + { + var res:name_429 = null; + if(collector != null) + { + res = collector; + collector = res.next; + res.next = null; + return res; + } + return new name_429(); + } + } +} + diff --git a/src/package_21/name_430.as b/src/package_21/name_430.as new file mode 100644 index 0000000..88abd63 --- /dev/null +++ b/src/package_21/name_430.as @@ -0,0 +1,261 @@ +package package_21 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3D; + import flash.display3D.Context3DCompareMode; + import flash.display3D.Context3DProgramType; + import flash.display3D.IndexBuffer3D; + import flash.display3D.Program3D; + import package_4.name_127; + + use namespace alternativa3d; + + public class name_430 + { + protected static var collector:name_135; + + private static var _usedBuffers:uint = 0; + + private static var _usedTextures:uint = 0; + + alternativa3d var camera:name_124; + + alternativa3d var var_585:Vector. = new Vector.(); + + public function name_430() + { + super(); + } + + alternativa3d function render(context:Context3D) : void + { + var list:name_135 = null; + var next:name_135 = null; + var drawUnitsLength:int = int(this.alternativa3d::var_585.length); + for(var i:int = 0; i < drawUnitsLength; ) + { + list = this.alternativa3d::var_585[i]; + if(list != null) + { + switch(i) + { + case name_128.SKY: + context.setDepthTest(false,Context3DCompareMode.ALWAYS); + break; + case name_128.OPAQUE_SORT: + context.setDepthTest(true,Context3DCompareMode.LESS); + break; + case name_128.OPAQUE: + context.setDepthTest(true,Context3DCompareMode.LESS); + break; + case name_128.TANK_SHADOW: + context.setDepthTest(false,Context3DCompareMode.LESS_EQUAL); + break; + case name_128.TANK_OPAQUE: + context.setDepthTest(true,Context3DCompareMode.LESS); + break; + case name_128.DECALS: + context.setDepthTest(false,Context3DCompareMode.LESS_EQUAL); + break; + case name_128.SHADOWS: + context.setDepthTest(false,Context3DCompareMode.EQUAL); + break; + case name_128.SHADOWED_LIGHTS: + context.setDepthTest(false,Context3DCompareMode.EQUAL); + break; + case name_128.LIGHTS: + context.setDepthTest(false,Context3DCompareMode.EQUAL); + break; + case name_128.FOG: + context.setDepthTest(false,Context3DCompareMode.EQUAL); + break; + case name_128.TRANSPARENT_SORT: + if(list.alternativa3d::next != null) + { + list = this.alternativa3d::method_646(list); + } + context.setDepthTest(false,Context3DCompareMode.LESS); + break; + case name_128.NEXT_LAYER: + context.setDepthTest(false,Context3DCompareMode.ALWAYS); + break; + case name_128.EFFECTS: + if(list.alternativa3d::next != null) + { + list = this.alternativa3d::method_646(list); + } + context.setDepthTest(false,Context3DCompareMode.LESS); + } + continue loop1; + } + i++; + } + this.alternativa3d::var_585.length = 0; + } + + alternativa3d function name_137(object:name_78, program:Program3D, indexBuffer:IndexBuffer3D, firstIndex:int, numTriangles:int, debugShader:name_127 = null) : name_135 + { + var res:name_135 = null; + if(collector != null) + { + res = collector; + collector = collector.alternativa3d::next; + res.alternativa3d::next = null; + } + else + { + res = new name_135(); + } + res.alternativa3d::object = object; + res.alternativa3d::program = program; + res.alternativa3d::indexBuffer = indexBuffer; + res.alternativa3d::firstIndex = firstIndex; + res.alternativa3d::numTriangles = numTriangles; + return res; + } + + alternativa3d function name_130(drawUnit:name_135, renderPriority:int) : void + { + if(renderPriority >= this.alternativa3d::var_585.length) + { + this.alternativa3d::var_585.length = renderPriority + 1; + } + drawUnit.alternativa3d::next = this.alternativa3d::var_585[renderPriority]; + this.alternativa3d::var_585[renderPriority] = drawUnit; + } + + protected function method_647(drawUnit:name_135, context:Context3D, camera:name_124) : void + { + var bufferIndex:int = 0; + var bufferBit:int = 0; + var currentBuffers:int = 0; + var textureSampler:int = 0; + var textureBit:int = 0; + var currentTextures:int = 0; + context.setBlendFactors(drawUnit.alternativa3d::blendSource,drawUnit.alternativa3d::blendDestination); + context.setCulling(drawUnit.alternativa3d::culling); + for(var i:int = 0; i < drawUnit.alternativa3d::name_403; i++) + { + bufferIndex = drawUnit.alternativa3d::name_405[i]; + bufferBit = 1 << bufferIndex; + currentBuffers |= bufferBit; + _usedBuffers &= ~bufferBit; + context.setVertexBufferAt(bufferIndex,drawUnit.alternativa3d::vertexBuffers[i],drawUnit.alternativa3d::name_411[i],drawUnit.alternativa3d::name_409[i]); + } + if(drawUnit.alternativa3d::name_404 > 0) + { + context.setProgramConstantsFromVector(Context3DProgramType.VERTEX,0,drawUnit.alternativa3d::name_410,drawUnit.alternativa3d::name_404); + } + if(drawUnit.alternativa3d::name_407 > 0) + { + context.setProgramConstantsFromVector(Context3DProgramType.FRAGMENT,0,drawUnit.alternativa3d::name_408,drawUnit.alternativa3d::name_407); + } + for(i = 0; i < drawUnit.alternativa3d::var_182; ) + { + textureSampler = drawUnit.alternativa3d::var_183[i]; + textureBit = 1 << textureSampler; + currentTextures |= textureBit; + _usedTextures &= ~textureBit; + context.setTextureAt(textureSampler,drawUnit.alternativa3d::textures[i]); + i++; + } + context.setProgram(drawUnit.alternativa3d::program); + for(bufferIndex = 0; _usedBuffers > 0; ) + { + bufferBit = _usedBuffers & 1; + _usedBuffers >>= 1; + if(Boolean(bufferBit)) + { + context.setVertexBufferAt(bufferIndex,null); + } + bufferIndex++; + } + for(textureSampler = 0; _usedTextures > 0; ) + { + textureBit = _usedTextures & 1; + _usedTextures >>= 1; + if(Boolean(textureBit)) + { + context.setTextureAt(textureSampler,null); + } + textureSampler++; + } + context.drawTriangles(drawUnit.alternativa3d::indexBuffer,drawUnit.alternativa3d::firstIndex,drawUnit.alternativa3d::numTriangles); + _usedBuffers = currentBuffers; + _usedTextures = currentTextures; + ++camera.alternativa3d::numDraws; + camera.alternativa3d::numTriangles += drawUnit.alternativa3d::numTriangles; + } + + alternativa3d function method_646(list:name_135, direction:Boolean = true) : name_135 + { + var left:name_135 = list; + var right:name_135 = list.alternativa3d::next; + while(right != null && right.alternativa3d::next != null) + { + list = list.alternativa3d::next; + right = right.alternativa3d::next.alternativa3d::next; + } + right = list.alternativa3d::next; + list.alternativa3d::next = null; + if(left.alternativa3d::next != null) + { + left = this.alternativa3d::method_646(left,direction); + } + if(right.alternativa3d::next != null) + { + right = this.alternativa3d::method_646(right,direction); + } + var flag:Boolean = direction ? left.alternativa3d::object.alternativa3d::localToCameraTransform.l > right.alternativa3d::object.alternativa3d::localToCameraTransform.l : left.alternativa3d::object.alternativa3d::localToCameraTransform.l < right.alternativa3d::object.alternativa3d::localToCameraTransform.l; + if(flag) + { + list = left; + left = left.alternativa3d::next; + } + else + { + list = right; + right = right.alternativa3d::next; + } + var last:name_135 = list; + while(left != null) + { + if(right == null) + { + last.alternativa3d::next = left; + return list; + } + if(flag) + { + if(direction ? left.alternativa3d::object.alternativa3d::localToCameraTransform.l > right.alternativa3d::object.alternativa3d::localToCameraTransform.l : left.alternativa3d::object.alternativa3d::localToCameraTransform.l < right.alternativa3d::object.alternativa3d::localToCameraTransform.l) + { + last = left; + left = left.alternativa3d::next; + } + else + { + last.alternativa3d::next = right; + last = right; + right = right.alternativa3d::next; + flag = false; + } + } + else if(direction ? left.alternativa3d::object.alternativa3d::localToCameraTransform.l < right.alternativa3d::object.alternativa3d::localToCameraTransform.l : left.alternativa3d::object.alternativa3d::localToCameraTransform.l > right.alternativa3d::object.alternativa3d::localToCameraTransform.l) + { + last = right; + right = right.alternativa3d::next; + } + else + { + last.alternativa3d::next = left; + last = left; + left = left.alternativa3d::next; + flag = true; + } + } + last.alternativa3d::next = right; + return list; + } + } +} + diff --git a/src/package_21/name_431.as b/src/package_21/name_431.as new file mode 100644 index 0000000..f44f422 --- /dev/null +++ b/src/package_21/name_431.as @@ -0,0 +1,21 @@ +package package_21 +{ + import alternativa.engine3d.alternativa3d; + + use namespace alternativa3d; + + public class name_431 extends name_78 + { + public function name_431() + { + super(); + } + + override alternativa3d function calculateVisibility(camera:name_124) : void + { + camera.alternativa3d::occluders[camera.alternativa3d::occludersLength] = this; + ++camera.alternativa3d::occludersLength; + } + } +} + diff --git a/src/package_21/name_432.as b/src/package_21/name_432.as new file mode 100644 index 0000000..3bb4c67 --- /dev/null +++ b/src/package_21/name_432.as @@ -0,0 +1,20 @@ +package package_21 +{ + import flash.display3D.VertexBuffer3D; + import flash.utils.ByteArray; + + public class name_432 + { + public var buffer:VertexBuffer3D; + + public var attributes:Array; + + public var data:ByteArray; + + public function name_432() + { + super(); + } + } +} + diff --git a/src/package_21/name_77.as b/src/package_21/name_77.as new file mode 100644 index 0000000..f861702 --- /dev/null +++ b/src/package_21/name_77.as @@ -0,0 +1,27 @@ +package package_21 +{ + import flash.display3D.Context3D; + + public class name_77 + { + public function name_77() + { + super(); + } + + public function get isUploaded() : Boolean + { + return false; + } + + public function upload(context3D:Context3D) : void + { + throw new Error("Cannot upload without data"); + } + + public function dispose() : void + { + } + } +} + diff --git a/src/package_21/name_78.as b/src/package_21/name_78.as new file mode 100644 index 0000000..a3bb849 --- /dev/null +++ b/src/package_21/name_78.as @@ -0,0 +1,1292 @@ +package package_21 +{ + import alternativa.engine3d.alternativa3d; + import flash.events.Event; + import flash.events.EventPhase; + import flash.events.IEventDispatcher; + import flash.geom.Matrix3D; + import flash.geom.Vector3D; + import flash.utils.Dictionary; + import flash.utils.getQualifiedClassName; + import package_110.name_389; + import package_19.name_117; + import package_23.name_103; + import package_29.Event3D; + import package_30.name_114; + import package_30.name_121; + + use namespace alternativa3d; + + [Event(name="mouseWheel",type="alternativa.engine3d.core.events.MouseEvent3D")] + [Event(name="mouseMove",type="alternativa.engine3d.core.events.MouseEvent3D")] + [Event(name="rollOut",type="alternativa.engine3d.core.events.MouseEvent3D")] + [Event(name="rollOver",type="alternativa.engine3d.core.events.MouseEvent3D")] + [Event(name="mouseOut",type="alternativa.engine3d.core.events.MouseEvent3D")] + [Event(name="mouseOver",type="alternativa.engine3d.core.events.MouseEvent3D")] + [Event(name="mouseUp",type="alternativa.engine3d.core.events.MouseEvent3D")] + [Event(name="mouseDown",type="alternativa.engine3d.core.events.MouseEvent3D")] + [Event(name="doubleClick",type="alternativa.engine3d.core.events.MouseEvent3D")] + [Event(name="click",type="alternativa.engine3d.core.events.MouseEvent3D")] + [Event(name="removed",type="alternativa.engine3d.core.events.Event3D")] + [Event(name="added",type="alternativa.engine3d.core.events.Event3D")] + public class name_78 implements IEventDispatcher + { + protected static const trm:name_139 = new name_139(); + + public var data:Object; + + public var useShadow:Boolean = true; + + public var name:String; + + public var visible:Boolean = true; + + public var mouseEnabled:Boolean = true; + + public var mouseChildren:Boolean = true; + + public var doubleClickEnabled:Boolean = false; + + public var useHandCursor:Boolean = false; + + public var boundBox:name_386; + + alternativa3d var _x:Number = 0; + + alternativa3d var _y:Number = 0; + + alternativa3d var _z:Number = 0; + + alternativa3d var _rotationX:Number = 0; + + alternativa3d var _rotationY:Number = 0; + + alternativa3d var _rotationZ:Number = 0; + + alternativa3d var _scaleX:Number = 1; + + alternativa3d var _scaleY:Number = 1; + + alternativa3d var _scaleZ:Number = 1; + + alternativa3d var _parent:name_78; + + alternativa3d var childrenList:name_78; + + alternativa3d var next:name_78; + + alternativa3d var transform:name_139 = new name_139(); + + alternativa3d var inverseTransform:name_139 = new name_139(); + + alternativa3d var transformChanged:Boolean = true; + + alternativa3d var cameraToLocalTransform:name_139 = new name_139(); + + alternativa3d var localToCameraTransform:name_139 = new name_139(); + + alternativa3d var localToGlobalTransform:name_139 = new name_139(); + + alternativa3d var globalToLocalTransform:name_139 = new name_139(); + + alternativa3d var culling:int; + + alternativa3d var listening:Boolean; + + alternativa3d var bubbleListeners:Object; + + alternativa3d var captureListeners:Object; + + alternativa3d var transformProcedure:name_114; + + alternativa3d var deltaTransformProcedure:name_114; + + alternativa3d var shadowRenderers:Vector.; + + alternativa3d var numShadowRenderers:int; + + public function name_78() + { + super(); + } + + public function get x() : Number + { + return this.alternativa3d::_x; + } + + public function set x(value:Number) : void + { + if(this.alternativa3d::_x != value) + { + this.alternativa3d::_x = value; + this.alternativa3d::transformChanged = true; + } + } + + public function get y() : Number + { + return this.alternativa3d::_y; + } + + public function set y(value:Number) : void + { + if(this.alternativa3d::_y != value) + { + this.alternativa3d::_y = value; + this.alternativa3d::transformChanged = true; + } + } + + public function get z() : Number + { + return this.alternativa3d::_z; + } + + public function set z(value:Number) : void + { + if(this.alternativa3d::_z != value) + { + this.alternativa3d::_z = value; + this.alternativa3d::transformChanged = true; + } + } + + public function get rotationX() : Number + { + return this.alternativa3d::_rotationX; + } + + public function set rotationX(value:Number) : void + { + if(this.alternativa3d::_rotationX != value) + { + this.alternativa3d::_rotationX = value; + this.alternativa3d::transformChanged = true; + } + } + + public function get rotationY() : Number + { + return this.alternativa3d::_rotationY; + } + + public function set rotationY(value:Number) : void + { + if(this.alternativa3d::_rotationY != value) + { + this.alternativa3d::_rotationY = value; + this.alternativa3d::transformChanged = true; + } + } + + public function get rotationZ() : Number + { + return this.alternativa3d::_rotationZ; + } + + public function set rotationZ(value:Number) : void + { + if(this.alternativa3d::_rotationZ != value) + { + this.alternativa3d::_rotationZ = value; + this.alternativa3d::transformChanged = true; + } + } + + public function get scaleX() : Number + { + return this.alternativa3d::_scaleX; + } + + public function set scaleX(value:Number) : void + { + if(this.alternativa3d::_scaleX != value) + { + this.alternativa3d::_scaleX = value; + this.alternativa3d::transformChanged = true; + } + } + + public function get scaleY() : Number + { + return this.alternativa3d::_scaleY; + } + + public function set scaleY(value:Number) : void + { + if(this.alternativa3d::_scaleY != value) + { + this.alternativa3d::_scaleY = value; + this.alternativa3d::transformChanged = true; + } + } + + public function get scaleZ() : Number + { + return this.alternativa3d::_scaleZ; + } + + public function set scaleZ(value:Number) : void + { + if(this.alternativa3d::_scaleZ != value) + { + this.alternativa3d::_scaleZ = value; + this.alternativa3d::transformChanged = true; + } + } + + public function get matrix() : Matrix3D + { + if(this.alternativa3d::transformChanged) + { + this.alternativa3d::composeTransforms(); + } + return new Matrix3D(Vector.([this.alternativa3d::transform.a,this.alternativa3d::transform.e,this.alternativa3d::transform.i,0,this.alternativa3d::transform.b,this.alternativa3d::transform.f,this.alternativa3d::transform.j,0,this.alternativa3d::transform.c,this.alternativa3d::transform.g,this.alternativa3d::transform.k,0,this.alternativa3d::transform.d,this.alternativa3d::transform.h,this.alternativa3d::transform.l,1])); + } + + public function set matrix(value:Matrix3D) : void + { + var v:Vector. = value.decompose(); + var t:Vector3D = v[0]; + var r:Vector3D = v[1]; + var s:Vector3D = v[2]; + this.alternativa3d::_x = t.x; + this.alternativa3d::_y = t.y; + this.alternativa3d::_z = t.z; + this.alternativa3d::_rotationX = r.x; + this.alternativa3d::_rotationY = r.y; + this.alternativa3d::_rotationZ = r.z; + this.alternativa3d::_scaleX = s.x; + this.alternativa3d::_scaleY = s.y; + this.alternativa3d::_scaleZ = s.z; + this.alternativa3d::transformChanged = true; + } + + public function intersectRay(origin:Vector3D, direction:Vector3D) : name_387 + { + return this.alternativa3d::intersectRayChildren(origin,direction); + } + + alternativa3d function intersectRayChildren(origin:Vector3D, direction:Vector3D) : name_387 + { + var childOrigin:Vector3D = null; + var childDirection:Vector3D = null; + var childTransform:name_139 = null; + var ma:Number = NaN; + var mb:Number = NaN; + var mc:Number = NaN; + var md:Number = NaN; + var me:Number = NaN; + var mf:Number = NaN; + var mg:Number = NaN; + var mh:Number = NaN; + var mi:Number = NaN; + var mj:Number = NaN; + var mk:Number = NaN; + var ml:Number = NaN; + var data:name_387 = null; + var minTime:Number = 1e+22; + var minData:name_387 = null; + for(var child:name_78 = this.alternativa3d::childrenList; child != null; ) + { + if(childOrigin == null) + { + childOrigin = new Vector3D(); + childDirection = new Vector3D(); + } + childTransform = child.alternativa3d::inverseTransform; + ma = childTransform.a; + mb = childTransform.b; + mc = childTransform.c; + md = childTransform.d; + me = childTransform.e; + mf = childTransform.f; + mg = childTransform.g; + mh = childTransform.h; + mi = childTransform.i; + mj = childTransform.j; + mk = childTransform.k; + ml = childTransform.l; + childOrigin.x = ma * origin.x + mb * origin.y + mc * origin.z + md; + childOrigin.y = me * origin.x + mf * origin.y + mg * origin.z + mh; + childOrigin.z = mi * origin.x + mj * origin.y + mk * origin.z + ml; + childDirection.x = ma * direction.x + mb * direction.y + mc * direction.z; + childDirection.y = me * direction.x + mf * direction.y + mg * direction.z; + childDirection.z = mi * direction.x + mj * direction.y + mk * direction.z; + data = child.intersectRay(childOrigin,childDirection); + if(data != null && data.time < minTime) + { + minData = data; + minTime = data.time; + } + child = child.alternativa3d::next; + } + return minData; + } + + public function get concatenatedMatrix() : Matrix3D + { + if(this.alternativa3d::transformChanged) + { + this.alternativa3d::composeTransforms(); + } + trm.copy(this.alternativa3d::transform); + for(var root:name_78 = this; root.parent != null; ) + { + root = root.parent; + if(root.alternativa3d::transformChanged) + { + root.alternativa3d::composeTransforms(); + } + trm.append(root.alternativa3d::transform); + } + return new Matrix3D(Vector.([trm.a,trm.e,trm.i,0,trm.b,trm.f,trm.j,0,trm.c,trm.g,trm.k,0,trm.d,trm.h,trm.l,1])); + } + + public function localToGlobal(point:Vector3D) : Vector3D + { + if(this.alternativa3d::transformChanged) + { + this.alternativa3d::composeTransforms(); + } + trm.copy(this.alternativa3d::transform); + for(var root:name_78 = this; root.parent != null; ) + { + root = root.parent; + if(root.alternativa3d::transformChanged) + { + root.alternativa3d::composeTransforms(); + } + trm.append(root.alternativa3d::transform); + } + var res:Vector3D = new Vector3D(); + res.x = trm.a * point.x + trm.b * point.y + trm.c * point.z + trm.d; + res.y = trm.e * point.x + trm.f * point.y + trm.g * point.z + trm.h; + res.z = trm.i * point.x + trm.j * point.y + trm.k * point.z + trm.l; + return res; + } + + public function globalToLocal(point:Vector3D) : Vector3D + { + if(this.alternativa3d::transformChanged) + { + this.alternativa3d::composeTransforms(); + } + trm.copy(this.alternativa3d::inverseTransform); + for(var root:name_78 = this; root.parent != null; ) + { + root = root.parent; + if(root.alternativa3d::transformChanged) + { + root.alternativa3d::composeTransforms(); + } + trm.prepend(root.alternativa3d::inverseTransform); + } + var res:Vector3D = new Vector3D(); + res.x = trm.a * point.x + trm.b * point.y + trm.c * point.z + trm.d; + res.y = trm.e * point.x + trm.f * point.y + trm.g * point.z + trm.h; + res.z = trm.i * point.x + trm.j * point.y + trm.k * point.z + trm.l; + return res; + } + + alternativa3d function get useLights() : Boolean + { + return false; + } + + public function calculateBoundBox() : void + { + if(this.boundBox != null) + { + this.boundBox.reset(); + } + else + { + this.boundBox = new name_386(); + } + this.alternativa3d::updateBoundBox(this.boundBox,false,null); + } + + alternativa3d function updateBoundBox(boundBox:name_386, hierarchy:Boolean, transform:name_139 = null) : void + { + var child:name_78 = null; + if(hierarchy) + { + for(child = this.alternativa3d::childrenList; child != null; child = child.alternativa3d::next) + { + if(child.alternativa3d::transformChanged) + { + child.alternativa3d::composeTransforms(); + } + child.alternativa3d::localToCameraTransform.copy(child.alternativa3d::transform); + if(transform != null) + { + child.alternativa3d::localToCameraTransform.append(transform); + } + child.alternativa3d::updateBoundBox(boundBox,true,child.alternativa3d::localToCameraTransform); + } + } + } + + public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false) : void + { + var listeners:Object = null; + if(listener == null) + { + throw new TypeError("Parameter listener must be non-null."); + } + if(useCapture) + { + if(this.alternativa3d::captureListeners == null) + { + this.alternativa3d::captureListeners = new Object(); + } + listeners = this.alternativa3d::captureListeners; + } + else + { + if(this.alternativa3d::bubbleListeners == null) + { + this.alternativa3d::bubbleListeners = new Object(); + } + listeners = this.alternativa3d::bubbleListeners; + } + var vector:Vector. = listeners[type]; + if(vector == null) + { + vector = new Vector.(); + listeners[type] = vector; + } + if(vector.indexOf(listener) < 0) + { + vector.push(listener); + } + } + + public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false) : void + { + var vector:Vector. = null; + var i:int = 0; + var length:int = 0; + var j:int = 0; + var key:* = undefined; + if(listener == null) + { + throw new TypeError("Parameter listener must be non-null."); + } + var listeners:Object = useCapture ? this.alternativa3d::captureListeners : this.alternativa3d::bubbleListeners; + if(listeners != null) + { + vector = listeners[type]; + if(vector != null) + { + i = int(vector.indexOf(listener)); + if(i >= 0) + { + length = int(vector.length); + for(j = i + 1; j < length; j++,i++) + { + vector[i] = vector[j]; + } + if(length > 1) + { + vector.length = length - 1; + } + else + { + delete listeners[type]; + var _loc10_:int = 0; + var _loc11_:* = listeners; + for(key in _loc11_) + { + } + if(!key) + { + if(listeners == this.alternativa3d::captureListeners) + { + this.alternativa3d::captureListeners = null; + } + else + { + this.alternativa3d::bubbleListeners = null; + } + } + } + } + } + } + } + + public function hasEventListener(type:String) : Boolean + { + return this.alternativa3d::captureListeners != null && Boolean(this.alternativa3d::captureListeners[type]) || this.alternativa3d::bubbleListeners != null && Boolean(this.alternativa3d::bubbleListeners[type]); + } + + public function willTrigger(type:String) : Boolean + { + for(var object:name_78 = this; object != null; ) + { + if(object.alternativa3d::captureListeners != null && object.alternativa3d::captureListeners[type] || object.alternativa3d::bubbleListeners != null && object.alternativa3d::bubbleListeners[type]) + { + return true; + } + object = object.alternativa3d::_parent; + } + return false; + } + + public function dispatchEvent(event:Event) : Boolean + { + var object:name_78 = null; + var i:int = 0; + var j:int = 0; + var length:int = 0; + var vector:Vector. = null; + var functions:Vector. = null; + if(event == null) + { + throw new TypeError("Parameter event must be non-null."); + } + var event3D:Event3D = event as Event3D; + if(event3D != null) + { + event3D.alternativa3d::name_394 = this; + } + var branch:Vector. = new Vector.(); + var branchLength:int = 0; + for(object = this; object != null; object = object.alternativa3d::_parent) + { + branch[branchLength] = object; + branchLength++; + } + for(i = branchLength - 1; i > 0; ) + { + object = branch[i]; + if(event3D != null) + { + event3D.alternativa3d::name_390 = object; + event3D.alternativa3d::name_388 = EventPhase.CAPTURING_PHASE; + } + if(object.alternativa3d::captureListeners != null) + { + vector = object.alternativa3d::captureListeners[event.type]; + if(vector != null) + { + length = int(vector.length); + functions = new Vector.(); + for(j = 0; j < length; functions[j] = vector[j],j++) + { + } + for(j = 0; j < length; (functions[j] as Function).call(null,event),j++) + { + } + } + } + i--; + } + if(event3D != null) + { + event3D.alternativa3d::name_388 = EventPhase.AT_TARGET; + } + for(i = 0; i < branchLength; ) + { + object = branch[i]; + if(event3D != null) + { + event3D.alternativa3d::name_390 = object; + if(i > 0) + { + event3D.alternativa3d::name_388 = EventPhase.BUBBLING_PHASE; + } + } + if(object.alternativa3d::bubbleListeners != null) + { + vector = object.alternativa3d::bubbleListeners[event.type]; + if(vector != null) + { + length = int(vector.length); + functions = new Vector.(); + for(j = 0; j < length; functions[j] = vector[j],j++) + { + } + for(j = 0; j < length; (functions[j] as Function).call(null,event),j++) + { + } + } + } + if(!event.bubbles) + { + break; + } + i++; + } + return true; + } + + public function get parent() : name_78 + { + return this.alternativa3d::_parent; + } + + alternativa3d function removeFromParent() : void + { + if(this.alternativa3d::_parent != null) + { + this.alternativa3d::_parent.removeFromList(this); + } + } + + public function addChild(child:name_78) : name_78 + { + if(child == null) + { + throw new TypeError("Parameter child must be non-null."); + } + if(child == this) + { + throw new ArgumentError("An object cannot be added as a child of itself."); + } + for(var container:name_78 = this.alternativa3d::_parent; container != null; ) + { + if(container == child) + { + throw new ArgumentError("An object cannot be added as a child to one of it\'s children (or children\'s children, etc.)."); + } + container = container.alternativa3d::_parent; + } + if(child.alternativa3d::_parent != null) + { + child.alternativa3d::_parent.removeChild(child); + } + this.addToList(child); + if(child.willTrigger(Event3D.ADDED)) + { + child.dispatchEvent(new Event3D(Event3D.ADDED,true)); + } + return child; + } + + public function removeChild(child:name_78) : name_78 + { + if(child == null) + { + throw new TypeError("Parameter child must be non-null."); + } + if(child.alternativa3d::_parent != this) + { + throw new ArgumentError("The supplied Object3D must be a child of the caller."); + } + if(child.willTrigger(Event3D.REMOVED)) + { + child.dispatchEvent(new Event3D(Event3D.REMOVED,true)); + } + var result:name_78 = this.removeFromList(child); + if(result == null) + { + throw new ArgumentError("Cannot remove child."); + } + return result; + } + + private function removeFromList(child:name_78) : name_78 + { + var prev:name_78 = null; + var current:name_78 = null; + for(current = this.alternativa3d::childrenList; current != null; current = current.alternativa3d::next) + { + if(current == child) + { + if(prev != null) + { + prev.alternativa3d::next = current.alternativa3d::next; + } + else + { + this.alternativa3d::childrenList = current.alternativa3d::next; + } + current.alternativa3d::next = null; + current.alternativa3d::_parent = null; + return child; + } + prev = current; + } + return null; + } + + public function addChildAt(child:name_78, index:int) : name_78 + { + if(child == null) + { + throw new TypeError("Parameter child must be non-null."); + } + if(child == this) + { + throw new ArgumentError("An object cannot be added as a child of itself."); + } + if(index < 0) + { + throw new RangeError("The supplied index is out of bounds."); + } + for(var container:name_78 = this.alternativa3d::_parent; container != null; ) + { + if(container == child) + { + throw new ArgumentError("An object cannot be added as a child to one of it\'s children (or children\'s children, etc.)."); + } + container = container.alternativa3d::_parent; + } + var current:name_78 = this.alternativa3d::childrenList; + for(var i:int = 0; i < index; i++) + { + if(current == null) + { + throw new RangeError("The supplied index is out of bounds."); + } + current = current.alternativa3d::next; + } + if(child.alternativa3d::_parent != null) + { + child.alternativa3d::_parent.removeChild(child); + } + this.addToList(child,current); + if(child.willTrigger(Event3D.ADDED)) + { + child.dispatchEvent(new Event3D(Event3D.ADDED,true)); + } + return child; + } + + public function removeChildAt(index:int) : name_78 + { + if(index < 0) + { + throw new RangeError("The supplied index is out of bounds."); + } + var current:name_78 = this.alternativa3d::childrenList; + for(var i:int = 0; i < index; i++) + { + if(current == null) + { + throw new RangeError("The supplied index is out of bounds."); + } + current = current.alternativa3d::next; + } + if(current == null) + { + throw new RangeError("The supplied index is out of bounds."); + } + this.removeChild(current); + return current; + } + + public function getChildAt(index:int) : name_78 + { + if(index < 0) + { + throw new RangeError("The supplied index is out of bounds."); + } + var current:name_78 = this.alternativa3d::childrenList; + for(var i:int = 0; i < index; i++) + { + if(current == null) + { + throw new RangeError("The supplied index is out of bounds."); + } + current = current.alternativa3d::next; + } + if(current == null) + { + throw new RangeError("The supplied index is out of bounds."); + } + return current; + } + + public function getChildIndex(child:name_78) : int + { + if(child == null) + { + throw new TypeError("Parameter child must be non-null."); + } + if(child.alternativa3d::_parent != this) + { + throw new ArgumentError("The supplied Object3D must be a child of the caller."); + } + var index:int = 0; + for(var current:name_78 = this.alternativa3d::childrenList; current != null; current = current.alternativa3d::next) + { + if(current == child) + { + return index; + } + index++; + } + throw new ArgumentError("Cannot get child index."); + } + + public function setChildIndex(child:name_78, index:int) : void + { + if(child == null) + { + throw new TypeError("Parameter child must be non-null."); + } + if(child.alternativa3d::_parent != this) + { + throw new ArgumentError("The supplied Object3D must be a child of the caller."); + } + if(index < 0) + { + throw new RangeError("The supplied index is out of bounds."); + } + var current:name_78 = this.alternativa3d::childrenList; + for(var i:int = 0; i < index; i++) + { + if(current == null) + { + throw new RangeError("The supplied index is out of bounds."); + } + current = current.alternativa3d::next; + } + this.removeFromList(child); + this.addToList(child,current); + } + + public function swapChildren(child1:name_78, child2:name_78) : void + { + var nxt:name_78 = null; + if(child1 == null || child2 == null) + { + throw new TypeError("Parameter child must be non-null."); + } + if(child1.alternativa3d::_parent != this || child2.alternativa3d::_parent != this) + { + throw new ArgumentError("The supplied Object3D must be a child of the caller."); + } + if(child1 != child2) + { + if(child1.alternativa3d::next == child2) + { + this.removeFromList(child2); + this.addToList(child2,child1); + } + else if(child2.alternativa3d::next == child1) + { + this.removeFromList(child1); + this.addToList(child1,child2); + } + else + { + nxt = child1.alternativa3d::next; + this.removeFromList(child1); + this.addToList(child1,child2); + this.removeFromList(child2); + this.addToList(child2,nxt); + } + } + } + + public function swapChildrenAt(index1:int, index2:int) : void + { + var i:int = 0; + var child1:name_78 = null; + var child2:name_78 = null; + var nxt:name_78 = null; + if(index1 < 0 || index2 < 0) + { + throw new RangeError("The supplied index is out of bounds."); + } + if(index1 != index2) + { + child1 = this.alternativa3d::childrenList; + for(i = 0; i < index1; i++) + { + if(child1 == null) + { + throw new RangeError("The supplied index is out of bounds."); + } + child1 = child1.alternativa3d::next; + } + if(child1 == null) + { + throw new RangeError("The supplied index is out of bounds."); + } + child2 = this.alternativa3d::childrenList; + for(i = 0; i < index2; i++) + { + if(child2 == null) + { + throw new RangeError("The supplied index is out of bounds."); + } + child2 = child2.alternativa3d::next; + } + if(child2 == null) + { + throw new RangeError("The supplied index is out of bounds."); + } + if(child1 != child2) + { + if(child1.alternativa3d::next == child2) + { + this.removeFromList(child2); + this.addToList(child2,child1); + } + else if(child2.alternativa3d::next == child1) + { + this.removeFromList(child1); + this.addToList(child1,child2); + } + else + { + nxt = child1.alternativa3d::next; + this.removeFromList(child1); + this.addToList(child1,child2); + this.removeFromList(child2); + this.addToList(child2,nxt); + } + } + } + } + + public function getChildByName(name:String) : name_78 + { + if(name == null) + { + throw new TypeError("Parameter name must be non-null."); + } + for(var child:name_78 = this.alternativa3d::childrenList; child != null; ) + { + if(child.name == name) + { + return child; + } + child = child.alternativa3d::next; + } + return null; + } + + public function contains(child:name_78) : Boolean + { + if(child == null) + { + throw new TypeError("Parameter child must be non-null."); + } + if(child == this) + { + return true; + } + for(var object:name_78 = this.alternativa3d::childrenList; object != null; ) + { + if(object.contains(child)) + { + return true; + } + object = object.alternativa3d::next; + } + return false; + } + + public function get numChildren() : int + { + var num:int = 0; + for(var current:name_78 = this.alternativa3d::childrenList; current != null; num++,current = current.alternativa3d::next) + { + } + return num; + } + + private function addToList(child:name_78, item:name_78 = null) : void + { + var current:name_78 = null; + child.alternativa3d::next = item; + child.alternativa3d::_parent = this; + if(item == this.alternativa3d::childrenList) + { + this.alternativa3d::childrenList = child; + } + else + { + for(current = this.alternativa3d::childrenList; current != null; ) + { + if(current.alternativa3d::next == item) + { + current.alternativa3d::next = child; + break; + } + current = current.alternativa3d::next; + } + } + } + + public function getResources(hierarchy:Boolean = false, resourceType:Class = null) : Vector. + { + var key:* = undefined; + var res:Vector. = new Vector.(); + var dict:Dictionary = new Dictionary(); + var count:int = 0; + this.alternativa3d::fillResources(dict,hierarchy,resourceType); + for(key in dict) + { + var _loc9_:* = count++; + res[_loc9_] = key as name_77; + } + return res; + } + + alternativa3d function fillResources(resources:Dictionary, hierarchy:Boolean = false, resourceType:Class = null) : void + { + var child:name_78 = null; + if(hierarchy) + { + for(child = this.alternativa3d::childrenList; child != null; child = child.alternativa3d::next) + { + child.alternativa3d::fillResources(resources,hierarchy,resourceType); + } + } + } + + alternativa3d function composeTransforms() : void + { + var cosX:Number = NaN; + var sinX:Number = NaN; + var cosY:Number = NaN; + var sinY:Number = NaN; + var cosZ:Number = NaN; + var sinZ:Number = NaN; + cosX = Number(Math.cos(this.alternativa3d::_rotationX)); + sinX = Number(Math.sin(this.alternativa3d::_rotationX)); + cosY = Number(Math.cos(this.alternativa3d::_rotationY)); + sinY = Number(Math.sin(this.alternativa3d::_rotationY)); + cosZ = Number(Math.cos(this.alternativa3d::_rotationZ)); + sinZ = Number(Math.sin(this.alternativa3d::_rotationZ)); + var cosZsinY:Number = cosZ * sinY; + var sinZsinY:Number = sinZ * sinY; + var cosYscaleX:Number = cosY * this.alternativa3d::_scaleX; + var sinXscaleY:Number = sinX * this.alternativa3d::_scaleY; + var cosXscaleY:Number = cosX * this.alternativa3d::_scaleY; + var cosXscaleZ:Number = cosX * this.alternativa3d::_scaleZ; + var sinXscaleZ:Number = sinX * this.alternativa3d::_scaleZ; + this.alternativa3d::transform.a = cosZ * cosYscaleX; + this.alternativa3d::transform.b = cosZsinY * sinXscaleY - sinZ * cosXscaleY; + this.alternativa3d::transform.c = cosZsinY * cosXscaleZ + sinZ * sinXscaleZ; + this.alternativa3d::transform.d = this.alternativa3d::_x; + this.alternativa3d::transform.e = sinZ * cosYscaleX; + this.alternativa3d::transform.f = sinZsinY * sinXscaleY + cosZ * cosXscaleY; + this.alternativa3d::transform.g = sinZsinY * cosXscaleZ - cosZ * sinXscaleZ; + this.alternativa3d::transform.h = this.alternativa3d::_y; + this.alternativa3d::transform.i = -sinY * this.alternativa3d::_scaleX; + this.alternativa3d::transform.j = cosY * sinXscaleY; + this.alternativa3d::transform.k = cosY * cosXscaleZ; + this.alternativa3d::transform.l = this.alternativa3d::_z; + var sinXsinY:Number = sinX * sinY; + cosYscaleX = cosY / this.alternativa3d::_scaleX; + cosXscaleY = cosX / this.alternativa3d::_scaleY; + sinXscaleZ = -sinX / this.alternativa3d::_scaleZ; + cosXscaleZ = cosX / this.alternativa3d::_scaleZ; + this.alternativa3d::inverseTransform.a = cosZ * cosYscaleX; + this.alternativa3d::inverseTransform.b = sinZ * cosYscaleX; + this.alternativa3d::inverseTransform.c = -sinY / this.alternativa3d::_scaleX; + this.alternativa3d::inverseTransform.d = -this.alternativa3d::inverseTransform.a * this.alternativa3d::_x - this.alternativa3d::inverseTransform.b * this.alternativa3d::_y - this.alternativa3d::inverseTransform.c * this.alternativa3d::_z; + this.alternativa3d::inverseTransform.e = sinXsinY * cosZ / this.alternativa3d::_scaleY - sinZ * cosXscaleY; + this.alternativa3d::inverseTransform.f = cosZ * cosXscaleY + sinXsinY * sinZ / this.alternativa3d::_scaleY; + this.alternativa3d::inverseTransform.g = sinX * cosY / this.alternativa3d::_scaleY; + this.alternativa3d::inverseTransform.h = -this.alternativa3d::inverseTransform.e * this.alternativa3d::_x - this.alternativa3d::inverseTransform.f * this.alternativa3d::_y - this.alternativa3d::inverseTransform.g * this.alternativa3d::_z; + this.alternativa3d::inverseTransform.i = cosZ * sinY * cosXscaleZ - sinZ * sinXscaleZ; + this.alternativa3d::inverseTransform.j = cosZ * sinXscaleZ + sinY * sinZ * cosXscaleZ; + this.alternativa3d::inverseTransform.k = cosY * cosXscaleZ; + this.alternativa3d::inverseTransform.l = -this.alternativa3d::inverseTransform.i * this.alternativa3d::_x - this.alternativa3d::inverseTransform.j * this.alternativa3d::_y - this.alternativa3d::inverseTransform.k * this.alternativa3d::_z; + this.alternativa3d::transformChanged = false; + } + + alternativa3d function calculateVisibility(camera:name_124) : void + { + } + + alternativa3d function calculateChildrenVisibility(camera:name_124) : void + { + for(var child:name_78 = this.alternativa3d::childrenList; child != null; ) + { + if(child.visible) + { + if(child.alternativa3d::transformChanged) + { + child.alternativa3d::composeTransforms(); + } + child.alternativa3d::cameraToLocalTransform.combine(child.alternativa3d::inverseTransform,this.alternativa3d::cameraToLocalTransform); + child.alternativa3d::listening = this.alternativa3d::listening || child.alternativa3d::bubbleListeners != null || child.alternativa3d::captureListeners != null; + if(child.boundBox != null) + { + camera.alternativa3d::calculateFrustum(child.alternativa3d::cameraToLocalTransform); + child.alternativa3d::culling = child.boundBox.alternativa3d::name_393(camera.alternativa3d::frustum,63); + } + else + { + child.alternativa3d::culling = 63; + } + if(child.alternativa3d::culling >= 0) + { + child.alternativa3d::calculateVisibility(camera); + } + if(child.alternativa3d::childrenList != null) + { + child.alternativa3d::calculateChildrenVisibility(camera); + } + } + child = child.alternativa3d::next; + } + } + + alternativa3d function collectDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + } + + alternativa3d function collectChildrenDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + var i:int = 0; + var light:name_116 = null; + var childLightsLength:int = 0; + for(var child:name_78 = this.alternativa3d::childrenList; child != null; ) + { + if(child.visible) + { + child.alternativa3d::localToCameraTransform.combine(this.alternativa3d::localToCameraTransform,child.alternativa3d::transform); + if(child.alternativa3d::culling >= 0 && (child.boundBox == null || camera.alternativa3d::occludersLength == 0 || Boolean(child.boundBox.alternativa3d::name_392(camera,child)))) + { + if(child.alternativa3d::listening && child.boundBox != null) + { + camera.alternativa3d::calculateRays(child.alternativa3d::cameraToLocalTransform); + child.alternativa3d::listening = child.boundBox.alternativa3d::name_391(camera.alternativa3d::origins,camera.alternativa3d::directions,camera.alternativa3d::raysLength); + } + if(lightsLength > 0 && child.alternativa3d::useLights) + { + if(child.boundBox != null) + { + childLightsLength = 0; + for(i = 0; i < lightsLength; ) + { + light = lights[i]; + light.alternativa3d::name_141.combine(child.alternativa3d::cameraToLocalTransform,light.alternativa3d::localToCameraTransform); + if(light.boundBox == null || Boolean(light.alternativa3d::checkBound(child))) + { + camera.alternativa3d::childLights[childLightsLength] = light; + childLightsLength++; + } + i++; + } + child.alternativa3d::collectDraws(camera,camera.alternativa3d::childLights,childLightsLength); + } + else + { + for(i = 0; i < lightsLength; ) + { + light = lights[i]; + light.alternativa3d::name_141.combine(child.alternativa3d::cameraToLocalTransform,light.alternativa3d::localToCameraTransform); + i++; + } + child.alternativa3d::collectDraws(camera,lights,lightsLength); + } + } + else + { + child.alternativa3d::collectDraws(camera,null,0); + } + } + if(child.alternativa3d::childrenList != null) + { + child.alternativa3d::collectChildrenDraws(camera,lights,lightsLength); + } + } + child = child.alternativa3d::next; + } + } + + alternativa3d function collectGeometry(collider:name_389, excludedObjects:Dictionary) : void + { + } + + alternativa3d function collectChildrenGeometry(collider:name_389, excludedObjects:Dictionary) : void + { + var intersects:Boolean = false; + for(var child:name_78 = this.alternativa3d::childrenList; child != null; ) + { + if(excludedObjects == null || !excludedObjects[child]) + { + if(child.alternativa3d::transformChanged) + { + child.alternativa3d::composeTransforms(); + } + child.alternativa3d::globalToLocalTransform.combine(child.alternativa3d::inverseTransform,this.alternativa3d::globalToLocalTransform); + intersects = true; + if(child.boundBox != null) + { + collider.alternativa3d::name_396(child.alternativa3d::globalToLocalTransform); + intersects = Boolean(child.boundBox.alternativa3d::name_395(collider.alternativa3d::sphere)); + } + if(intersects) + { + child.alternativa3d::localToGlobalTransform.combine(this.alternativa3d::localToGlobalTransform,child.alternativa3d::transform); + child.alternativa3d::collectGeometry(collider,excludedObjects); + } + if(child.alternativa3d::childrenList != null) + { + child.alternativa3d::collectChildrenGeometry(collider,excludedObjects); + } + } + child = child.alternativa3d::next; + } + } + + alternativa3d function setTransformConstants(drawUnit:name_135, surface:name_117, vertexShader:name_121, camera:name_124) : void + { + } + + public function clone() : name_78 + { + var res:name_78 = new name_78(); + res.clonePropertiesFrom(this); + return res; + } + + protected function clonePropertiesFrom(source:name_78) : void + { + var lastChild:name_78 = null; + var newChild:name_78 = null; + this.name = source.name; + this.visible = source.visible; + this.mouseEnabled = source.mouseEnabled; + this.mouseChildren = source.mouseChildren; + this.doubleClickEnabled = source.doubleClickEnabled; + this.useHandCursor = source.useHandCursor; + this.boundBox = Boolean(source.boundBox) ? source.boundBox.clone() : null; + this.alternativa3d::_x = source.alternativa3d::_x; + this.alternativa3d::_y = source.alternativa3d::_y; + this.alternativa3d::_z = source.alternativa3d::_z; + this.alternativa3d::_rotationX = source.alternativa3d::_rotationX; + this.alternativa3d::_rotationY = source.alternativa3d::_rotationY; + this.alternativa3d::_rotationZ = source.alternativa3d::_rotationZ; + this.alternativa3d::_scaleX = source.alternativa3d::_scaleX; + this.alternativa3d::_scaleY = source.alternativa3d::_scaleY; + this.alternativa3d::_scaleZ = source.alternativa3d::_scaleZ; + for(var child:name_78 = source.alternativa3d::childrenList; child != null; child = child.alternativa3d::next) + { + newChild = child.clone(); + if(this.alternativa3d::childrenList != null) + { + lastChild.alternativa3d::next = newChild; + } + else + { + this.alternativa3d::childrenList = newChild; + } + lastChild = newChild; + newChild.alternativa3d::_parent = this; + } + } + + public function toString() : String + { + var className:String = getQualifiedClassName(this); + return "[" + className.substr(className.indexOf("::") + 2) + " " + this.name + "]"; + } + } +} + diff --git a/src/package_21/name_81.as b/src/package_21/name_81.as new file mode 100644 index 0000000..f2c947f --- /dev/null +++ b/src/package_21/name_81.as @@ -0,0 +1,1562 @@ +package package_21 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.Bitmap; + import flash.display.BitmapData; + import flash.display.DisplayObject; + import flash.display.Sprite; + import flash.display.Stage3D; + import flash.display.StageAlign; + import flash.display3D.Context3D; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DCompareMode; + import flash.display3D.Context3DProgramType; + import flash.display3D.Context3DTextureFormat; + import flash.display3D.Context3DTriangleFace; + import flash.display3D.VertexBuffer3D; + import flash.display3D.textures.Texture; + import flash.events.ContextMenuEvent; + import flash.events.Event; + import flash.events.KeyboardEvent; + import flash.events.MouseEvent; + import flash.geom.Point; + import flash.geom.Rectangle; + import flash.geom.Vector3D; + import flash.net.URLRequest; + import flash.net.navigateToURL; + import flash.ui.ContextMenu; + import flash.ui.ContextMenuItem; + import flash.ui.Keyboard; + import flash.ui.Mouse; + import flash.utils.Dictionary; + import flash.utils.setTimeout; + import package_11.name_406; + import package_19.name_117; + import package_28.name_119; + import package_29.MouseEvent3D; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + import package_4.name_127; + + use namespace alternativa3d; + + public class name_81 extends Sprite + { + private static var drawDistanceFragment:name_121; + + private static var drawDistanceVertexProcedure:name_114; + + private static const renderEvent:MouseEvent = new MouseEvent("render"); + + private static const drawDistancePrograms:Dictionary = new Dictionary(); + + private static const drawUnit:name_135 = new name_135(); + + private static const pixels:Dictionary = new Dictionary(); + + private static const stack:Vector. = new Vector.(); + + private static const point:Point = new Point(); + + private static const scissor:Rectangle = new Rectangle(0,0,1,1); + + private static const rectangle:Rectangle = new Rectangle(); + + private static const zeroRectangle:Rectangle = new Rectangle(); + + private static const localCoords:Vector3D = new Vector3D(); + + private static const branch:Vector. = new Vector.(); + + private static const overedBranch:Vector. = new Vector.(); + + private static const changedBranch:Vector. = new Vector.(); + + private static const functions:Vector. = new Vector.(); + + private static var drawRectGeometries:Dictionary = new Dictionary(true); + + private static var drawDistanceTextures:Dictionary = new Dictionary(true); + + private static var drawDistanceTexturesWidths:Dictionary = new Dictionary(true); + + private static var drawTexturedRectPrograms:Dictionary = new Dictionary(true); + + private static const drawTexturedRectUVScaleConst:Vector. = Vector.([1,1,1,1]); + + private static var drawColoredRectPrograms:Dictionary = new Dictionary(true); + + private static const drawColoredRectConst:Vector. = Vector.([0,0,-1,1]); + + private static const drawRectColor:Vector. = new Vector.(4); + + public var backgroundColor:uint; + + public var backgroundAlpha:Number; + + public var antiAlias:int; + + alternativa3d var var_110:int; + + alternativa3d var _height:int; + + alternativa3d var var_114:BitmapData = null; + + private var var_117:Vector.; + + private var indices:Vector.; + + private var var_113:int = 0; + + private var surfaces:Vector.; + + private var geometries:Vector.; + + private var var_128:Vector.; + + private var var_115:int = 0; + + alternativa3d var var_127:Vector.; + + alternativa3d var var_133:Vector.; + + private var var_124:Vector.; + + private var var_121:Vector.>; + + private var var_120:Vector.>; + + private var var_130:Vector.; + + private var var_132:Vector.; + + alternativa3d var raysLength:int = 0; + + private var var_119:MouseEvent; + + private var target:name_78; + + private var targetSurface:name_117; + + private var var_122:Number; + + private var var_123:name_78; + + private var var_129:name_78; + + private var var_116:name_78; + + private var var_131:name_117; + + private var altKey:Boolean; + + private var ctrlKey:Boolean; + + private var shiftKey:Boolean; + + private var container:Bitmap; + + private var area:Sprite; + + private var var_112:Logo; + + private var var_118:Bitmap; + + private var var_111:String = "BR"; + + private var var_126:Number = 0; + + private var var_125:Number = 0; + + private var var_134:Boolean; + + public function name_81(width:int, height:int, renderToBitmap:Boolean = false, backgroundColor:uint = 0, backgroundAlpha:Number = 1, antiAlias:int = 0) + { + var item:ContextMenuItem; + var menu:ContextMenu; + this.var_117 = new Vector.(); + this.indices = new Vector.(); + this.surfaces = new Vector.(); + this.geometries = new Vector.(); + this.var_128 = new Vector.(); + this.alternativa3d::var_127 = new Vector.(); + this.alternativa3d::var_133 = new Vector.(); + this.var_124 = new Vector.(); + this.var_121 = new Vector.>(); + this.var_120 = new Vector.>(); + this.var_130 = new Vector.(); + this.var_132 = new Vector.(); + super(); + if(width < 50) + { + width = 50; + } + if(height < 50) + { + height = 50; + } + this.alternativa3d::var_110 = width; + this.alternativa3d::_height = height; + this.var_134 = renderToBitmap; + this.backgroundColor = backgroundColor; + this.backgroundAlpha = backgroundAlpha; + this.antiAlias = antiAlias; + mouseEnabled = true; + mouseChildren = true; + doubleClickEnabled = true; + buttonMode = true; + useHandCursor = false; + tabEnabled = false; + tabChildren = false; + item = new ContextMenuItem("Powered by Alternativa3D " + name_406.version); + item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,function(e:ContextMenuEvent):void + { + try + { + navigateToURL(new URLRequest("http://alternativaplatform.com"),"_blank"); + } + catch(e:Error) + { + } + }); + menu = new ContextMenu(); + menu.customItems = [item]; + contextMenu = menu; + this.container = new Bitmap(); + if(renderToBitmap) + { + this.method_232(); + } + super.addChild(this.container); + this.area = new Sprite(); + this.area.graphics.beginFill(16711680); + this.area.graphics.drawRect(0,0,100,100); + this.area.mouseEnabled = false; + this.area.visible = false; + this.area.width = this.alternativa3d::var_110; + this.area.height = this.alternativa3d::_height; + hitArea = this.area; + super.addChild(hitArea); + this.method_242(); + if(drawDistanceFragment == null) + { + drawDistanceVertexProcedure = name_114.name_140(["#v0=distance","#c0=transform0","#c1=transform1","#c2=transform2","#c3=coefficient","#c4=projection","dp4 t0.x, i0, c0","dp4 t0.y, i0, c1","dp4 t0.z, i0, c2","mul v0.x, t0.z, c3.z","mov v0.y, i0.x","mov v0.z, i0.x","mov v0.w, i0.x","mul t1.x, t0.x, c4.x","mul t1.y, t0.y, c4.y","mul t0.w, t0.z, c4.z","add t1.z, t0.w, c4.w","mov t3.z, c4.x","div t3.z, t3.z, c4.x","sub t3.z, t3.z, c3.w","mul t1.w, t0.z, t3.z","add t1.w, t1.w, c3.w","mul t0.x, c3.x, t1.w","mul t0.y, c3.y, t1.w","add t1.x, t1.x, t0.x","add t1.y, t1.y, t0.y","mov o0, t1"],"mouseEventsVertex"); + drawDistanceFragment = new name_121(Context3DProgramType.FRAGMENT); + drawDistanceFragment.name_123(new name_114(["mov t0.z, c0.z","mov t0.w, c0.w","frc t0.y, v0.x","sub t0.x, v0.x, t0.y","mul t0.x, t0.x, c0.x","mov o0, ft0","#v0=distance","#c0=code"],"mouseEventsFragment")); + } + addEventListener(MouseEvent.MOUSE_DOWN,this.method_229); + addEventListener(MouseEvent.CLICK,this.method_229); + addEventListener(MouseEvent.DOUBLE_CLICK,this.method_229); + addEventListener(MouseEvent.MOUSE_MOVE,this.method_229); + addEventListener(MouseEvent.MOUSE_OVER,this.method_229); + addEventListener(MouseEvent.MOUSE_WHEEL,this.method_229); + addEventListener(MouseEvent.MOUSE_OUT,this.method_238); + addEventListener(Event.ADDED_TO_STAGE,this.method_80); + addEventListener(Event.REMOVED_FROM_STAGE,this.method_81); + } + + private function method_229(mouseEvent:MouseEvent) : void + { + var prev:int = this.var_113 - 1; + if(this.var_113 > 0 && mouseEvent.type == "mouseMove" && (this.var_117[prev] as MouseEvent).type == "mouseMove") + { + this.var_117[prev] = mouseEvent; + } + else + { + this.var_117[this.var_113] = mouseEvent; + ++this.var_113; + } + this.var_119 = mouseEvent; + } + + private function method_238(mouseEvent:MouseEvent) : void + { + this.var_117[this.var_113] = mouseEvent; + ++this.var_113; + this.var_119 = null; + } + + private function method_232() : void + { + this.alternativa3d::var_114 = new BitmapData(this.alternativa3d::var_110,this.alternativa3d::_height,this.backgroundAlpha < 1,this.backgroundColor); + this.container.bitmapData = this.alternativa3d::var_114; + this.container.smoothing = true; + } + + private function method_80(e:Event) : void + { + stage.addEventListener(KeyboardEvent.KEY_DOWN,this.method_15); + stage.addEventListener(KeyboardEvent.KEY_UP,this.method_233); + } + + private function method_81(e:Event) : void + { + stage.removeEventListener(KeyboardEvent.KEY_DOWN,this.method_15); + stage.removeEventListener(KeyboardEvent.KEY_UP,this.method_233); + this.altKey = false; + this.ctrlKey = false; + this.shiftKey = false; + } + + private function method_15(keyboardEvent:KeyboardEvent) : void + { + this.altKey = keyboardEvent.altKey; + this.ctrlKey = keyboardEvent.ctrlKey; + this.shiftKey = keyboardEvent.shiftKey; + if(this.ctrlKey && this.shiftKey && keyboardEvent.keyCode == Keyboard.F1 && this.var_118 == null) + { + this.var_118 = new Bitmap(Logo.image); + this.var_118.x = Math.round((this.alternativa3d::var_110 - this.var_118.width) / 2); + this.var_118.y = Math.round((this.alternativa3d::_height - this.var_118.height) / 2); + super.addChild(this.var_118); + setTimeout(this.method_241,2048); + } + } + + private function method_233(keyboardEvent:KeyboardEvent) : void + { + this.altKey = keyboardEvent.altKey; + this.ctrlKey = keyboardEvent.ctrlKey; + this.shiftKey = keyboardEvent.shiftKey; + } + + private function method_241() : void + { + if(this.var_118 != null) + { + super.removeChild(this.var_118); + this.var_118 = null; + } + } + + alternativa3d function calculateRays(camera:name_124) : void + { + var i:int = 0; + var mouseEvent:MouseEvent = null; + var mouseMoved:Boolean = false; + var origin:Vector3D = null; + var direction:Vector3D = null; + var coefficient:Point = null; + if(this.var_119 != null) + { + mouseMoved = false; + for(i = 0; i < this.var_113; ) + { + mouseEvent = this.var_117[i]; + if(mouseEvent.type == "mouseMove" || mouseEvent.type == "mouseOut") + { + mouseMoved = true; + break; + } + i++; + } + if(!mouseMoved) + { + renderEvent.localX = this.var_119.localX; + renderEvent.localY = this.var_119.localY; + renderEvent.ctrlKey = this.ctrlKey; + renderEvent.altKey = this.altKey; + renderEvent.shiftKey = this.shiftKey; + renderEvent.buttonDown = this.var_119.buttonDown; + renderEvent.delta = 0; + this.var_117[this.var_113] = renderEvent; + ++this.var_113; + } + } + var mouseX:Number = 1e+22; + var mouseY:Number = 1e+22; + for(i = 0; i < this.var_113; i++) + { + mouseEvent = this.var_117[i]; + if(mouseEvent.type != "mouseOut") + { + if(mouseEvent.localX != mouseX || mouseEvent.localY != mouseY) + { + mouseX = Number(mouseEvent.localX); + mouseY = Number(mouseEvent.localY); + if(this.alternativa3d::raysLength < this.alternativa3d::var_127.length) + { + origin = this.alternativa3d::var_127[this.alternativa3d::raysLength]; + direction = this.alternativa3d::var_133[this.alternativa3d::raysLength]; + coefficient = this.var_124[this.alternativa3d::raysLength]; + } + else + { + origin = new Vector3D(); + direction = new Vector3D(); + coefficient = new Point(); + this.alternativa3d::var_127[this.alternativa3d::raysLength] = origin; + this.alternativa3d::var_133[this.alternativa3d::raysLength] = direction; + this.var_124[this.alternativa3d::raysLength] = coefficient; + this.var_121[this.alternativa3d::raysLength] = new Vector.(); + this.var_120[this.alternativa3d::raysLength] = new Vector.(); + } + if(!camera.orthographic) + { + direction.x = mouseX - this.alternativa3d::var_110 * 0.5; + direction.y = mouseY - this.alternativa3d::_height * 0.5; + direction.z = camera.alternativa3d::focalLength; + origin.x = direction.x * camera.nearClipping / camera.alternativa3d::focalLength; + origin.y = direction.y * camera.nearClipping / camera.alternativa3d::focalLength; + origin.z = camera.nearClipping; + direction.normalize(); + coefficient.x = mouseX * 2 / this.alternativa3d::var_110; + coefficient.y = mouseY * 2 / this.alternativa3d::_height; + } + else + { + direction.x = 0; + direction.y = 0; + direction.z = 1; + origin.x = mouseX - this.alternativa3d::var_110 * 0.5; + origin.y = mouseY - this.alternativa3d::_height * 0.5; + origin.z = camera.nearClipping; + coefficient.x = mouseX * 2 / this.alternativa3d::var_110; + coefficient.y = mouseY * 2 / this.alternativa3d::_height; + } + ++this.alternativa3d::raysLength; + } + this.indices[i] = this.alternativa3d::raysLength - 1; + } + else + { + this.indices[i] = -1; + } + } + } + + alternativa3d function name_398(surface:name_117, geometry:name_119, procedure:name_114) : void + { + this.surfaces[this.var_115] = surface; + this.geometries[this.var_115] = geometry; + this.var_128[this.var_115] = procedure; + ++this.var_115; + } + + alternativa3d function method_244(stage3D:Stage3D, context:Context3D) : void + { + var vis:Boolean = false; + var parent:DisplayObject = null; + var coords:Point = null; + var stage3DObject:Object = stage3D; + var isIncubator:Boolean = "viewPort" in stage3DObject; + if(isIncubator) + { + if(this.alternativa3d::var_110 > 2048) + { + this.alternativa3d::var_110 = 2048; + } + if(this.alternativa3d::_height > 2048) + { + this.alternativa3d::_height = 2048; + } + } + if(this.alternativa3d::var_114 == null) + { + vis = Boolean(this.visible); + for(parent = this.parent; parent != null; parent = parent.parent) + { + vis &&= Boolean(parent.visible); + } + point.x = 0; + point.y = 0; + coords = localToGlobal(point); + if(isIncubator) + { + if(vis) + { + rectangle.x = coords.x; + rectangle.y = coords.y; + point.x = this.alternativa3d::var_110; + point.y = this.alternativa3d::_height; + coords = localToGlobal(point); + rectangle.width = coords.x - rectangle.x; + rectangle.height = coords.y - rectangle.y; + if(rectangle.width < 0) + { + rectangle.width = 0; + } + if(rectangle.height < 0) + { + rectangle.height = 0; + } + stage3DObject.viewPort = rectangle; + } + else + { + stage3DObject.viewPort = zeroRectangle; + } + } + else + { + stage3DObject.x = coords.x; + stage3DObject.y = coords.y; + stage3DObject.visible = vis; + } + } + else + { + if(isIncubator) + { + stage3DObject.viewPort = zeroRectangle; + } + else + { + stage3DObject.visible = false; + } + if(this.alternativa3d::var_110 != this.alternativa3d::var_114.width || this.alternativa3d::_height != this.alternativa3d::var_114.height || this.backgroundAlpha < 1 != this.alternativa3d::var_114.transparent) + { + this.alternativa3d::var_114.dispose(); + this.method_232(); + } + } + context.configureBackBuffer(this.alternativa3d::var_110,this.alternativa3d::_height,this.antiAlias); + var r:Number = (this.backgroundColor >> 16 & 0xFF) / 255; + var g:Number = (this.backgroundColor >> 8 & 0xFF) / 255; + var b:Number = (this.backgroundColor & 0xFF) / 255; + if(this.canvas != null) + { + r *= this.backgroundAlpha; + g *= this.backgroundAlpha; + b *= this.backgroundAlpha; + } + context.clear(r,g,b,this.backgroundAlpha); + } + + alternativa3d function method_243(context:Context3D, camera:name_124) : void + { + var i:int = 0; + var raySurfaces:Vector. = null; + var rayDepths:Vector. = null; + var raySurfacesLength:int = 0; + var mouseEvent:MouseEvent = null; + var index:int = 0; + if(this.var_113 > 0) + { + if(this.var_115 > 0) + { + this.method_236(context,camera,this.alternativa3d::var_110,this.alternativa3d::_height); + for(i = 0; i < this.alternativa3d::raysLength; ) + { + raySurfaces = this.var_121[i]; + rayDepths = this.var_120[i]; + raySurfacesLength = int(raySurfaces.length); + if(raySurfacesLength > 1) + { + this.sort(raySurfaces,rayDepths,raySurfacesLength); + } + i++; + } + } + this.var_122 = camera.farClipping; + for(i = 0; i < this.var_113; i++) + { + mouseEvent = this.var_117[i]; + index = this.indices[i]; + switch(mouseEvent.type) + { + case "mouseDown": + this.method_228(index); + if(this.target != null) + { + this.method_226(MouseEvent3D.MOUSE_DOWN,mouseEvent,camera,this.target,this.targetSurface,this.method_227(this.target,branch)); + } + this.var_123 = this.target; + break; + case "mouseWheel": + this.method_228(index); + if(this.target != null) + { + this.method_226(MouseEvent3D.MOUSE_WHEEL,mouseEvent,camera,this.target,this.targetSurface,this.method_227(this.target,branch)); + } + break; + case "click": + this.method_228(index); + if(this.target != null) + { + this.method_226(MouseEvent3D.MOUSE_UP,mouseEvent,camera,this.target,this.targetSurface,this.method_227(this.target,branch)); + if(this.var_123 == this.target) + { + this.var_129 = this.target; + this.method_226(MouseEvent3D.CLICK,mouseEvent,camera,this.target,this.targetSurface,this.method_227(this.target,branch)); + } + } + this.var_123 = null; + break; + case "doubleClick": + this.method_228(index); + if(this.target != null) + { + this.method_226(MouseEvent3D.MOUSE_UP,mouseEvent,camera,this.target,this.targetSurface,this.method_227(this.target,branch)); + if(this.var_123 == this.target) + { + this.method_226(this.var_129 == this.target && this.target.doubleClickEnabled ? MouseEvent3D.DOUBLE_CLICK : MouseEvent3D.CLICK,mouseEvent,camera,this.target,this.targetSurface,this.method_227(this.target,branch)); + } + } + this.var_129 = null; + this.var_123 = null; + break; + case "mouseMove": + this.method_228(index); + if(this.target != null) + { + this.method_226(MouseEvent3D.MOUSE_MOVE,mouseEvent,camera,this.target,this.targetSurface,this.method_227(this.target,branch)); + } + if(this.var_116 != this.target) + { + this.method_231(mouseEvent,camera); + } + break; + case "mouseOut": + this.var_119 = null; + this.target = null; + this.targetSurface = null; + if(this.var_116 != this.target) + { + this.method_231(mouseEvent,camera); + } + break; + case "render": + this.method_228(index); + if(this.var_116 != this.target) + { + this.method_231(mouseEvent,camera); + } + break; + } + this.target = null; + this.targetSurface = null; + this.var_122 = camera.farClipping; + } + } + this.surfaces.length = 0; + this.var_115 = 0; + this.var_117.length = 0; + this.var_113 = 0; + for(i = 0; i < this.alternativa3d::raysLength; i++) + { + this.var_121[i].length = 0; + this.var_120[i].length = 0; + } + this.alternativa3d::raysLength = 0; + } + + private function method_236(context:Context3D, camera:name_124, contextWidth:int, contextHeight:int) : void + { + var vLinker:name_121 = null; + var fLinker:name_121 = null; + var i:int = 0; + var j:int = 0; + var log2Width:int = 0; + var texture:Texture = null; + var textureLog2Width:int = 0; + var textureHeight:int = 0; + var rayCoefficients:Point = null; + var pixel:BitmapData = null; + var k:int = 0; + var textureScreenSize:Number = NaN; + var color:int = 0; + var red:int = 0; + var green:int = 0; + var ind:int = 0; + var raySurfaces:Vector. = null; + var rayDepths:Vector. = null; + context.setBlendFactors(Context3DBlendFactor.ONE,Context3DBlendFactor.ZERO); + context.setCulling(Context3DTriangleFace.FRONT); + context.setTextureAt(0,null); + context.setTextureAt(1,null); + context.setTextureAt(2,null); + context.setTextureAt(3,null); + context.setTextureAt(4,null); + context.setTextureAt(5,null); + context.setTextureAt(6,null); + context.setTextureAt(7,null); + context.setVertexBufferAt(0,null); + context.setVertexBufferAt(1,null); + context.setVertexBufferAt(2,null); + context.setVertexBufferAt(3,null); + context.setVertexBufferAt(4,null); + context.setVertexBufferAt(5,null); + context.setVertexBufferAt(6,null); + context.setVertexBufferAt(7,null); + var drawRectGeometry:name_119 = drawRectGeometries[context]; + if(drawRectGeometry == null) + { + drawRectGeometry = new name_119(4); + drawRectGeometry.addVertexStream([name_126.POSITION,name_126.POSITION,name_126.POSITION,name_126.TEXCOORDS[0],name_126.TEXCOORDS[0]]); + drawRectGeometry.setAttributeValues(name_126.POSITION,Vector.([0,0,1,0,1,1,1,1,1,1,0,1])); + drawRectGeometry.setAttributeValues(name_126.TEXCOORDS[0],Vector.([0,0,0,1,1,1,1,0])); + drawRectGeometry.indices = Vector.([0,1,3,2,3,1]); + drawRectGeometry.upload(context); + drawRectGeometries[context] = drawRectGeometry; + } + var drawColoredRectProgram:name_127 = drawColoredRectPrograms[context]; + if(drawColoredRectProgram == null) + { + vLinker = new name_121(Context3DProgramType.VERTEX); + vLinker.name_123(name_114.name_140(["#a0=a0","#c0=c0","mul t0.x, a0.x, c0.x","mul t0.y, a0.y, c0.y","add o0.x, t0.x, c0.z","add o0.y, t0.y, c0.w","mov o0.z, a0.z","mov o0.w, a0.z"])); + fLinker = new name_121(Context3DProgramType.FRAGMENT); + fLinker.name_123(name_114.name_140(["#c0=c0","mov o0, c0"])); + drawColoredRectProgram = new name_127(vLinker,fLinker); + drawColoredRectProgram.upload(context); + drawColoredRectPrograms[context] = drawColoredRectProgram; + } + var drawTexturedRectProgram:name_127 = drawTexturedRectPrograms[context]; + if(drawTexturedRectProgram == null) + { + vLinker = new name_121(Context3DProgramType.VERTEX); + vLinker.name_123(name_114.name_140(["#a0=a0","#a1=a1","#v0=v0","#c0=c0","#c1=c1","mul v0, a1, c1","mul t0.x, a0.x, c0.x","mul t0.y, a0.y, c0.y","add o0.x, t0.x, c0.z","add o0.y, t0.y, c0.w","mov o0.z, a0.z","mov o0.w, a0.z"])); + fLinker = new name_121(Context3DProgramType.FRAGMENT); + fLinker.name_123(name_114.name_140(["#v0=v0","#s0=s0","tex t0, v0, s0 <2d, nearest, mipnone>","mov o0, t0"])); + drawTexturedRectProgram = new name_127(vLinker,fLinker); + drawTexturedRectProgram.upload(context); + drawTexturedRectPrograms[context] = drawTexturedRectProgram; + } + if(this.antiAlias > 0) + { + log2Width = Math.ceil(Math.log(contextWidth) / Math.LN2) - 1; + texture = drawDistanceTextures[context]; + textureLog2Width = int(drawDistanceTexturesWidths[context]); + textureHeight = 1; + if(texture == null || textureLog2Width != log2Width) + { + textureLog2Width = log2Width; + if(texture != null) + { + texture.dispose(); + } + texture = context.createTexture(2 << textureLog2Width,textureHeight,Context3DTextureFormat.BGRA,true); + drawDistanceTextures[context] = texture; + drawDistanceTexturesWidths[context] = textureLog2Width; + } + } + context.setDepthTest(true,Context3DCompareMode.LESS); + var m0:Number = camera.alternativa3d::m0; + var m5:Number = camera.alternativa3d::m5; + var m10:Number = camera.alternativa3d::m10; + var m11:Number = camera.alternativa3d::m14; + var kZ:Number = 255 / camera.farClipping; + var fragmentConst:Number = 1 / 255; + var drawTextureWidthScale:Number = 1; + var drawTextureWidthOffset:Number = 0; + var drawTextureHeightScale:Number = 1; + var drawTextureHeightOffset:Number = 0; + if(this.antiAlias > 0) + { + drawTextureWidthScale = contextWidth / (2 << textureLog2Width); + drawTextureWidthOffset = drawTextureWidthScale - 1; + drawTextureHeightScale = contextHeight / textureHeight; + drawTextureHeightOffset = drawTextureHeightScale - 1; + m0 *= drawTextureWidthScale; + m5 *= drawTextureHeightScale; + } + var pixelIndex:int = 0; + for(i = 0; i < this.alternativa3d::raysLength; ) + { + rayCoefficients = this.var_124[i]; + i++; + for(j = 0; j < this.var_115; ) + { + if(pixelIndex == 0) + { + if(this.antiAlias > 0) + { + context.setRenderToTexture(texture,true,0,0); + context.clear(1,0,0,1); + } + else + { + drawColoredRectConst[0] = this.alternativa3d::raysLength * this.var_115 * 2 / contextWidth; + drawColoredRectConst[1] = -2 / contextHeight; + context.setDepthTest(false,Context3DCompareMode.ALWAYS); + context.setProgram(drawColoredRectProgram.program); + context.setVertexBufferAt(0,drawRectGeometry.alternativa3d::getVertexBuffer(name_126.POSITION),drawRectGeometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + context.setProgramConstantsFromVector(Context3DProgramType.VERTEX,0,drawColoredRectConst); + drawRectColor[0] = 1; + drawRectColor[1] = 0; + drawRectColor[2] = 0; + drawRectColor[3] = 1; + context.setProgramConstantsFromVector(Context3DProgramType.FRAGMENT,0,drawRectColor); + context.drawTriangles(drawRectGeometry.alternativa3d::name_132,0,2); + context.setVertexBufferAt(0,null); + } + } + scissor.x = pixelIndex; + context.setScissorRectangle(scissor); + this.method_237(context,camera,j,m0,m5,m10,m11,(pixelIndex * 2 / contextWidth - rayCoefficients.x) * drawTextureWidthScale + drawTextureWidthOffset,rayCoefficients.y * drawTextureHeightScale - drawTextureHeightOffset,kZ,fragmentConst,camera.orthographic); + this.var_130[pixelIndex] = i - 1; + this.var_132[pixelIndex] = j; + j++; + pixelIndex++; + if(pixelIndex >= contextWidth || i >= this.alternativa3d::raysLength && j >= this.var_115) + { + if(this.antiAlias > 0) + { + context.setRenderToBackBuffer(); + textureScreenSize = pixelIndex / (2 << textureLog2Width); + drawColoredRectConst[0] = 2 * textureScreenSize * (2 << textureLog2Width) / contextWidth; + drawColoredRectConst[1] = -2 * textureHeight / contextHeight; + drawTexturedRectUVScaleConst[0] = textureScreenSize; + context.setDepthTest(false,Context3DCompareMode.ALWAYS); + context.setProgram(drawTexturedRectProgram.program); + context.setVertexBufferAt(0,drawRectGeometry.alternativa3d::getVertexBuffer(name_126.POSITION),drawRectGeometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + context.setVertexBufferAt(1,drawRectGeometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]),drawRectGeometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + context.setProgramConstantsFromVector(Context3DProgramType.VERTEX,0,drawColoredRectConst); + context.setProgramConstantsFromVector(Context3DProgramType.VERTEX,1,drawTexturedRectUVScaleConst); + context.setTextureAt(0,texture); + context.drawTriangles(drawRectGeometry.alternativa3d::name_132,0,2); + context.setTextureAt(0,null); + context.setVertexBufferAt(0,null); + context.setVertexBufferAt(1,null); + } + pixel = pixels[pixelIndex]; + if(pixel == null) + { + pixel = new BitmapData(pixelIndex,1,false,16711680); + pixels[pixelIndex] = pixel; + } + context.drawToBitmapData(pixel); + for(k = 0; k < pixelIndex; ) + { + color = int(pixel.getPixel(k,0)); + red = color >> 16 & 0xFF; + green = color >> 8 & 0xFF; + if(red < 255) + { + ind = this.var_130[k]; + raySurfaces = this.var_121[ind]; + rayDepths = this.var_120[ind]; + ind = this.var_132[k]; + raySurfaces.push(this.surfaces[ind]); + rayDepths.push((red + green / 255) / kZ); + } + k++; + } + pixelIndex = 0; + } + } + } + context.setScissorRectangle(null); + context.setDepthTest(true,Context3DCompareMode.ALWAYS); + context.setProgram(drawColoredRectProgram.program); + context.setVertexBufferAt(0,drawRectGeometry.alternativa3d::getVertexBuffer(name_126.POSITION),drawRectGeometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + drawColoredRectConst[0] = this.alternativa3d::raysLength * this.var_115 * 2 / contextWidth; + drawColoredRectConst[1] = -2 / contextHeight; + context.setProgramConstantsFromVector(Context3DProgramType.VERTEX,0,drawColoredRectConst); + var r:Number = (this.backgroundColor >> 16 & 0xFF) / 255; + var g:Number = (this.backgroundColor >> 8 & 0xFF) / 255; + var b:Number = (this.backgroundColor & 0xFF) / 255; + if(this.canvas != null) + { + drawRectColor[0] = this.backgroundAlpha * r; + drawRectColor[1] = this.backgroundAlpha * g; + drawRectColor[2] = this.backgroundAlpha * b; + } + else + { + drawRectColor[0] = r; + drawRectColor[1] = g; + drawRectColor[2] = b; + } + drawRectColor[3] = this.backgroundAlpha; + context.setProgramConstantsFromVector(Context3DProgramType.FRAGMENT,0,drawRectColor); + context.drawTriangles(drawRectGeometry.alternativa3d::name_132,0,2); + context.setVertexBufferAt(0,null); + } + + private function method_237(context:Context3D, camera:name_124, index:int, m0:Number, m5:Number, m10:Number, m14:Number, xOffset:Number, yOffset:Number, vertexConst:Number, fragmentConst:Number, orthographic:Boolean) : void + { + var i:int = 0; + var vertex:name_121 = null; + var position:String = null; + var surface:name_117 = this.surfaces[index]; + var geometry:name_119 = this.geometries[index]; + var procedure:name_114 = this.var_128[index]; + var object:name_78 = surface.alternativa3d::object; + var drawDistanceProgram:name_127 = drawDistancePrograms[procedure]; + if(drawDistanceProgram == null) + { + vertex = new name_121(Context3DProgramType.VERTEX); + position = "position"; + vertex.name_120(position,name_115.ATTRIBUTE); + if(procedure != null) + { + vertex.name_123(procedure); + vertex.name_120("localPosition",name_115.TEMPORARY); + vertex.name_118(procedure,position); + vertex.name_125(procedure,"localPosition"); + position = "localPosition"; + } + vertex.name_123(drawDistanceVertexProcedure); + vertex.name_118(drawDistanceVertexProcedure,position); + drawDistanceProgram = new name_127(vertex,drawDistanceFragment); + drawDistanceFragment.name_133(vertex); + drawDistanceProgram.upload(context); + drawDistancePrograms[procedure] = drawDistanceProgram; + } + var buffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + if(buffer == null) + { + return; + } + drawUnit.alternativa3d::name_403 = 0; + drawUnit.alternativa3d::name_404 = 0; + drawUnit.alternativa3d::name_407 = 0; + object.alternativa3d::setTransformConstants(drawUnit,surface,drawDistanceProgram.vertexShader,camera); + drawUnit.alternativa3d::name_412(drawDistanceProgram.vertexShader.getVariableIndex("transform0"),object.alternativa3d::localToCameraTransform); + drawUnit.alternativa3d::name_144(drawDistanceProgram.vertexShader.getVariableIndex("coefficient"),xOffset,yOffset,vertexConst,orthographic ? 1 : 0); + drawUnit.alternativa3d::name_144(drawDistanceProgram.vertexShader.getVariableIndex("projection"),m0,m5,m10,m14); + drawUnit.alternativa3d::name_134(drawDistanceProgram.fragmentShader.getVariableIndex("code"),fragmentConst,0,0,1); + context.setProgram(drawDistanceProgram.program); + context.setVertexBufferAt(0,buffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + for(i = 0; i < drawUnit.alternativa3d::name_403; i++) + { + context.setVertexBufferAt(drawUnit.alternativa3d::name_405[i],drawUnit.alternativa3d::vertexBuffers[i],drawUnit.alternativa3d::name_411[i],drawUnit.alternativa3d::name_409[i]); + } + context.setProgramConstantsFromVector(Context3DProgramType.VERTEX,0,drawUnit.alternativa3d::name_410,drawUnit.alternativa3d::name_404); + context.setProgramConstantsFromVector(Context3DProgramType.FRAGMENT,0,drawUnit.alternativa3d::name_408,drawUnit.alternativa3d::name_407); + context.drawTriangles(geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles); + context.setVertexBufferAt(0,null); + for(i = 0; i < drawUnit.alternativa3d::name_403; i++) + { + context.setVertexBufferAt(drawUnit.alternativa3d::name_405[i],null); + } + } + + private function sort(surfaces:Vector., depths:Vector., length:int) : void + { + var r:int = 0; + var j:int = 0; + var l:int = 0; + var i:int = 0; + var median:Number = NaN; + var left:Number = NaN; + var right:Number = NaN; + var surface:name_117 = null; + stack[0] = 0; + stack[1] = length - 1; + for(var index:int = 2; index > 0; ) + { + index--; + r = stack[index]; + j = r; + index--; + l = stack[index]; + i = l; + for(median = depths[r + l >> 1]; i <= j; ) + { + for(left = depths[i]; left > median; ) + { + i++; + left = depths[i]; + } + for(right = depths[j]; right < median; ) + { + j--; + right = depths[j]; + } + if(i <= j) + { + depths[i] = right; + depths[j] = left; + surface = surfaces[i]; + surfaces[i] = surfaces[j]; + surfaces[j] = surface; + i++; + j--; + } + } + if(l < j) + { + stack[index] = l; + index++; + stack[index] = j; + index++; + } + if(i < r) + { + stack[index] = i; + index++; + stack[index] = r; + index++; + } + } + } + + private function method_231(mouseEvent:MouseEvent, camera:name_124) : void + { + var changedBranchLength:int = 0; + var i:int = 0; + var j:int = 0; + var object:name_78 = null; + this.method_227(this.target,branch); + this.method_227(this.var_116,overedBranch); + var branchLength:int = int(branch.length); + var overedBranchLength:int = int(overedBranch.length); + if(this.var_116 != null) + { + this.method_226(MouseEvent3D.MOUSE_OUT,mouseEvent,camera,this.var_116,this.var_131,overedBranch,true,this.target); + changedBranchLength = 0; + for(i = 0; i < overedBranchLength; ) + { + object = overedBranch[i]; + for(j = 0; j < branchLength; j++) + { + if(object == branch[j]) + { + break; + } + } + if(j == branchLength) + { + changedBranch[changedBranchLength] = object; + changedBranchLength++; + } + i++; + } + if(changedBranchLength > 0) + { + changedBranch.length = changedBranchLength; + this.method_226(MouseEvent3D.ROLL_OUT,mouseEvent,camera,this.var_116,this.var_131,changedBranch,false,this.target); + } + } + if(this.target != null) + { + changedBranchLength = 0; + for(i = 0; i < branchLength; ) + { + object = branch[i]; + for(j = 0; j < overedBranchLength; j++) + { + if(object == overedBranch[j]) + { + break; + } + } + if(j == overedBranchLength) + { + changedBranch[changedBranchLength] = object; + changedBranchLength++; + } + i++; + } + if(changedBranchLength > 0) + { + changedBranch.length = changedBranchLength; + this.method_226(MouseEvent3D.ROLL_OVER,mouseEvent,camera,this.target,this.targetSurface,changedBranch,false,this.var_116); + } + this.method_226(MouseEvent3D.MOUSE_OVER,mouseEvent,camera,this.target,this.targetSurface,branch,true,this.var_116); + useHandCursor = this.target.useHandCursor; + } + else + { + useHandCursor = false; + } + Mouse.cursor = Mouse.cursor; + this.var_116 = this.target; + this.var_131 = this.targetSurface; + } + + private function method_227(object:name_78, vector:Vector.) : Vector. + { + for(var len:int = 0; object != null; ) + { + vector[len] = object; + len++; + object = object.alternativa3d::_parent; + } + vector.length = len; + return vector; + } + + private function method_226(type:String, mouseEvent:MouseEvent, camera:name_124, target:name_78, targetSurface:name_117, objects:Vector., bubbles:Boolean = true, relatedObject:name_78 = null) : void + { + var object:name_78 = null; + var vector:Vector. = null; + var length:int = 0; + var i:int = 0; + var j:int = 0; + var mouseEvent3D:MouseEvent3D = null; + var oblectsLength:int = int(objects.length); + for(i = oblectsLength - 1; i > 0; ) + { + object = objects[i]; + if(object.alternativa3d::captureListeners != null) + { + vector = object.alternativa3d::captureListeners[type]; + if(vector != null) + { + if(mouseEvent3D == null) + { + this.method_234(camera,target.alternativa3d::cameraToLocalTransform,this.var_122,mouseEvent); + mouseEvent3D = new MouseEvent3D(type,bubbles,localCoords.x,localCoords.y,localCoords.z,relatedObject,mouseEvent.ctrlKey,mouseEvent.altKey,mouseEvent.shiftKey,mouseEvent.buttonDown,mouseEvent.delta); + mouseEvent3D.alternativa3d::name_394 = target; + mouseEvent3D.alternativa3d::var_109 = targetSurface; + } + mouseEvent3D.alternativa3d::name_390 = object; + mouseEvent3D.alternativa3d::name_388 = 1; + length = int(vector.length); + for(j = 0; j < length; functions[j] = vector[j],j++) + { + } + for(j = 0; j < length; ) + { + (functions[j] as Function).call(null,mouseEvent3D); + if(mouseEvent3D.alternativa3d::var_108) + { + return; + } + j++; + } + if(mouseEvent3D.alternativa3d::stop) + { + return; + } + } + } + i--; + } + for(i = 0; i < oblectsLength; ) + { + object = objects[i]; + if(object.alternativa3d::bubbleListeners != null) + { + vector = object.alternativa3d::bubbleListeners[type]; + if(vector != null) + { + if(mouseEvent3D == null) + { + this.method_234(camera,target.alternativa3d::cameraToLocalTransform,this.var_122,mouseEvent); + mouseEvent3D = new MouseEvent3D(type,bubbles,localCoords.x,localCoords.y,localCoords.z,relatedObject,mouseEvent.ctrlKey,mouseEvent.altKey,mouseEvent.shiftKey,mouseEvent.buttonDown,mouseEvent.delta); + mouseEvent3D.alternativa3d::name_394 = target; + mouseEvent3D.alternativa3d::var_109 = targetSurface; + } + mouseEvent3D.alternativa3d::name_390 = object; + mouseEvent3D.alternativa3d::name_388 = i == 0 ? 2 : 3; + length = int(vector.length); + for(j = 0; j < length; functions[j] = vector[j],j++) + { + } + for(j = 0; j < length; ) + { + (functions[j] as Function).call(null,mouseEvent3D); + if(mouseEvent3D.alternativa3d::var_108) + { + return; + } + j++; + } + if(mouseEvent3D.alternativa3d::stop) + { + return; + } + } + } + i++; + } + } + + private function method_234(camera:name_124, transform:name_139, z:Number, mouseEvent:MouseEvent) : void + { + var x:Number = NaN; + var y:Number = NaN; + if(!camera.orthographic) + { + x = z * (mouseEvent.localX - this.alternativa3d::var_110 * 0.5) / camera.alternativa3d::focalLength; + y = z * (mouseEvent.localY - this.alternativa3d::_height * 0.5) / camera.alternativa3d::focalLength; + } + else + { + x = mouseEvent.localX - this.alternativa3d::var_110 * 0.5; + y = mouseEvent.localY - this.alternativa3d::_height * 0.5; + } + localCoords.x = transform.a * x + transform.b * y + transform.c * z + transform.d; + localCoords.y = transform.e * x + transform.f * y + transform.g * z + transform.h; + localCoords.z = transform.i * x + transform.j * y + transform.k * z + transform.l; + } + + private function method_228(index:int) : void + { + var source:name_78 = null; + var surface:name_117 = null; + var depth:Number = NaN; + var object:name_78 = null; + var potentialTarget:name_78 = null; + var obj:name_78 = null; + var surfaces:Vector. = this.var_121[index]; + var depths:Vector. = this.var_120[index]; + for(var i:int = surfaces.length - 1; i >= 0; ) + { + surface = surfaces[i]; + depth = depths[i]; + object = surface.alternativa3d::object; + potentialTarget = null; + for(obj = object; obj != null; ) + { + if(!obj.mouseChildren) + { + potentialTarget = null; + } + if(potentialTarget == null && obj.mouseEnabled) + { + potentialTarget = obj; + } + obj = obj.alternativa3d::_parent; + } + if(potentialTarget != null) + { + if(this.target != null) + { + for(obj = potentialTarget; obj != null; ) + { + if(obj == this.target) + { + source = object; + if(this.target != potentialTarget) + { + this.target = potentialTarget; + this.targetSurface = surface; + this.var_122 = depth; + } + break; + } + obj = obj.alternativa3d::_parent; + } + } + else + { + source = object; + this.target = potentialTarget; + this.targetSurface = surface; + this.var_122 = depth; + } + if(source == this.target) + { + break; + } + } + i--; + } + } + + public function get renderToBitmap() : Boolean + { + return this.alternativa3d::var_114 != null; + } + + public function set renderToBitmap(value:Boolean) : void + { + if(value) + { + if(this.alternativa3d::var_114 == null) + { + this.method_232(); + } + } + else if(this.alternativa3d::var_114 != null) + { + this.container.bitmapData = null; + this.alternativa3d::var_114.dispose(); + this.alternativa3d::var_114 = null; + } + } + + public function get canvas() : BitmapData + { + return this.alternativa3d::var_114; + } + + public function method_242() : void + { + if(this.var_112 == null) + { + this.var_112 = new Logo(); + super.addChild(this.var_112); + this.method_230(); + } + } + + public function name_106() : void + { + if(this.var_112 != null) + { + super.removeChild(this.var_112); + this.var_112 = null; + } + } + + public function get method_240() : String + { + return this.var_111; + } + + public function set method_240(value:String) : void + { + this.var_111 = value; + this.method_230(); + } + + public function get method_239() : Number + { + return this.var_126; + } + + public function set method_239(value:Number) : void + { + this.var_126 = value; + this.method_230(); + } + + public function get method_235() : Number + { + return this.var_125; + } + + public function set method_235(value:Number) : void + { + this.var_125 = value; + this.method_230(); + } + + private function method_230() : void + { + if(this.var_112 != null) + { + if(this.var_111 == StageAlign.TOP_LEFT || this.var_111 == StageAlign.LEFT || this.var_111 == StageAlign.BOTTOM_LEFT) + { + this.var_112.x = Math.round(this.var_126); + } + if(this.var_111 == StageAlign.TOP || this.var_111 == StageAlign.BOTTOM) + { + this.var_112.x = Math.round((this.alternativa3d::var_110 - this.var_112.width) / 2); + } + if(this.var_111 == StageAlign.TOP_RIGHT || this.var_111 == StageAlign.RIGHT || this.var_111 == StageAlign.BOTTOM_RIGHT) + { + this.var_112.x = Math.round(this.alternativa3d::var_110 - this.var_126 - this.var_112.width); + } + if(this.var_111 == StageAlign.TOP_LEFT || this.var_111 == StageAlign.TOP || this.var_111 == StageAlign.TOP_RIGHT) + { + this.var_112.y = Math.round(this.var_125); + } + if(this.var_111 == StageAlign.LEFT || this.var_111 == StageAlign.RIGHT) + { + this.var_112.y = Math.round((this.alternativa3d::_height - this.var_112.height) / 2); + } + if(this.var_111 == StageAlign.BOTTOM_LEFT || this.var_111 == StageAlign.BOTTOM || this.var_111 == StageAlign.BOTTOM_RIGHT) + { + this.var_112.y = Math.round(this.alternativa3d::_height - this.var_125 - this.var_112.height); + } + } + } + + override public function get width() : Number + { + return this.alternativa3d::var_110; + } + + override public function set width(value:Number) : void + { + if(value < 50) + { + value = 50; + } + this.alternativa3d::var_110 = value; + this.area.width = value; + this.method_230(); + } + + override public function get height() : Number + { + return this.alternativa3d::_height; + } + + override public function set height(value:Number) : void + { + if(value < 50) + { + value = 50; + } + this.alternativa3d::_height = value; + this.area.height = value; + this.method_230(); + } + + override public function addChild(child:DisplayObject) : DisplayObject + { + throw new Error("Unsupported operation."); + } + + override public function removeChild(child:DisplayObject) : DisplayObject + { + throw new Error("Unsupported operation."); + } + + override public function addChildAt(child:DisplayObject, index:int) : DisplayObject + { + throw new Error("Unsupported operation."); + } + + override public function removeChildAt(index:int) : DisplayObject + { + throw new Error("Unsupported operation."); + } + + override public function getChildAt(index:int) : DisplayObject + { + throw new Error("Unsupported operation."); + } + + override public function getChildIndex(child:DisplayObject) : int + { + throw new Error("Unsupported operation."); + } + + override public function setChildIndex(child:DisplayObject, index:int) : void + { + throw new Error("Unsupported operation."); + } + + override public function swapChildren(child1:DisplayObject, child2:DisplayObject) : void + { + throw new Error("Unsupported operation."); + } + + override public function swapChildrenAt(index1:int, index2:int) : void + { + throw new Error("Unsupported operation."); + } + + override public function getChildByName(name:String) : DisplayObject + { + throw new Error("Unsupported operation."); + } + + override public function contains(child:DisplayObject) : Boolean + { + throw new Error("Unsupported operation."); + } + } +} + +import flash.display.BitmapData; +import flash.display.DisplayObject; +import flash.display.DisplayObjectContainer; +import flash.display.InteractiveObject; +import flash.display.Sprite; +import flash.events.EventDispatcher; +import flash.events.MouseEvent; +import flash.geom.ColorTransform; +import flash.geom.Matrix; +import flash.net.URLRequest; +import flash.net.navigateToURL; + +class Logo extends Sprite +{ + public static const image:BitmapData = createBMP(); + + private static const normal:ColorTransform = new ColorTransform(); + + private static const highlighted:ColorTransform = new ColorTransform(1.1,1.1,1.1,1); + + private var border:int = 5; + + public function Logo() + { + super(); + graphics.beginFill(16711680,0); + graphics.drawRect(0,0,image.width + this.border + this.border,image.height + this.border + this.border); + graphics.drawRect(this.border,this.border,image.width,image.height); + graphics.beginBitmapFill(image,new Matrix(1,0,0,1,this.border,this.border),false,true); + graphics.drawRect(this.border,this.border,image.width,image.height); + tabEnabled = false; + buttonMode = true; + useHandCursor = true; + addEventListener(MouseEvent.MOUSE_DOWN,this.onMouseDown); + addEventListener(MouseEvent.CLICK,this.onClick); + addEventListener(MouseEvent.DOUBLE_CLICK,this.onDoubleClick); + addEventListener(MouseEvent.MOUSE_MOVE,this.onMouseMove); + addEventListener(MouseEvent.MOUSE_OVER,this.onMouseMove); + addEventListener(MouseEvent.MOUSE_OUT,this.onMouseOut); + addEventListener(MouseEvent.MOUSE_WHEEL,this.onMouseWheel); + } + + private static function createBMP() : BitmapData + { + var bmp:BitmapData = new BitmapData(165,27,true,0); + bmp.setVector(bmp.rect,Vector.([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,134217728,503316480,721420288,503316480,134217728,134217728,503316480,721420288,503316480,134217728,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100663296,419430400,721420288,788529152,536870912,234881024,50331648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,503316480,1677721600,2348810240,1677721600,503316480,503316480,1677721600,2348810240,1677721600,503316480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67108864,301989888,822083584,1677721600,2365587456,2483027968 + ,1996488704,1241513984,536870912,117440512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777216,167772160,520093696,822083584,905969664,822083584,520093696,301989888,520093696,822083584,905969664,822083584,620756992,620756992,721420288,620756992,620756992,721420288,620756992,620756992,721420288,620756992,620756992,822083584,905969664,822083584,520093696,218103808,234881024,536870912,721420288,620756992,620756992,822083584,905969664,822083584,520093696,301989888,520093696,822083584,1493172224,2768240640,4292467161,2533359616,822083584,822083584,2533359616,4292467161,2768240640,1493172224,822083584,620756992,620756992,721420288,503316480,268435456,503316480,721420288,503316480,134217728,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,134217728,620756992,1392508928,2248146944,3514129719,4192520610,4277921461,3886715221,2905283846,1778384896,788529152,234881024,50331648,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,167772160,822083584,1845493760,2533359616,2734686208,2533359616,1845493760,1325400064,1845493760,2533359616,2734686208,2533359616,2164260864,2164260864,2348810240,2164260864,2164260864,2348810240,2164260864,2164260864,2348810240,2164260864,2164260864,2533359616,2734686208,2533359616,1845493760,1056964608,1107296256,1895825408,2348810240,2164260864,2164260864,2533359616,2734686208,2533359616,1845493760,1325400064,1845493760,2533359616,2952790016,3730463322,4292467161,2734686208,905969664,905969664,2734686208,4292467161,3730463322,2952790016,2533359616,2164260864,2164260864,2348810240,1677721600,989855744,1677721600,2348810240,1677721600,503316480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777216,167772160,754974720,1828716544,3022988562,4022445697,4294959283,4294953296,4294953534,4294961056,4226733479,3463135252,2130706432,1224736768,486539264,83886080,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,520093696,1845493760,3665591420,4292467161,4292467161,4292467161,3665591420,2650800128,3665591420,4292467161,4292467161,4292467161,3816191606,3355443200,4292467161,3355443200,3355443200,4292467161,3355443200,3355443200,4292467161,3355443200,3816191606,4292467161,4292467161,4292467161,3665591420,2382364672,2415919104,3801125008,4292467161,3355443200,3816191606,4292467161,4292467161,4292467161,3495911263,2650800128,3665591420,4292467161,4292467161,4292467161,4292467161,2533359616,822083584,822083584,2533359616,4292467161,4292467161,4292467161,4292467161,3816191606,3355443200,4292467161,2533359616,1627389952,2533359616,4292467161,2533359616,822083584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50331648,251658240,889192448,1962934272,3463338042,4260681651,4294955128,4294949388,4294949120,4294948864,4294948864,4294953816,4294960063,3903219779,2701722370,1627389952,620756992,100663296,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,822083584,2533359616,4292467161,3730463322,3187671040,3730463322,4292467161,3456106496,4292467161,3849680245,3221225472,3849680245,4292467161,3640655872,4292467161,3640655872,3640655872,4292467161,3640655872,3640655872,4292467161,3640655872,4292467161,3966923378,3640655872,3966923378,4292467161,3355443200,3918236555,4292467161,3763951961,3539992576,4292467161,3966923378,3640655872,3966923378,4292467161,3456106496,4292467161,3849680245,3221225472,3422552064,3456106496,2348810240,721420288,721420288,2348810240,3456106496,3422552064,3221225472,3849680245,4292467161,3640655872,4292467161,2734686208,1828716544,2734686208,4292467161,2734686208,905969664,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50331648,318767104,1006632960,2080374784,3683940948,4294958002,4294949951,4294946816,4294946048,4294944256,4294944256,4294945536,4294944512,4294944799,4294954914,4123823487,3056010753 + ,1778384896,671088640,117440512,0,0,0,0,0,0,0,0,0,0,0,0,822083584,2533359616,4292467161,3187671040,2734686208,3187671040,4292467161,3640655872,4292467161,3221225472,2801795072,3221225472,4292467161,3640655872,4292467161,3966923378,3640655872,4292467161,3966923378,3640655872,4292467161,3640655872,4292467161,3640655872,4292467161,4292467161,4292467161,3640655872,4292467161,3613154396,2818572288,3221225472,4292467161,3640655872,4292467161,4292467161,4292467161,3640655872,4292467161,3221225472,2801795072,3221225472,4292467161,2533359616,822083584,822083584,2533359616,4292467161,3221225472,2801795072,3221225472,4292467161,3640655872,4292467161,2952790016,2264924160,2952790016,4292467161,2533359616,822083584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50331648,318767104,1056964608,2147483648,3819605095,4294955172,4294944795,4294943744,4294941184,4294939392,4294940672,4294940160,4294938624,4294941440 + ,4294940672,4294936323,4294815095,4208955271,3208382211,1845493760,721420288,134217728,0,0,0,0,0,0,0,0,0,0,0,721420288,2348810240,3456106496,3405774848,3187671040,3730463322,4292467161,3456106496,4292467161,3849680245,3221225472,3849680245,4292467161,3355443200,3816191606,4292467161,3966923378,3966923378,4292467161,3966923378,4292467161,3640655872,4292467161,3966923378,3640655872,3640655872,3640655872,3640655872,4292467161,2868903936,1996488704,2684354560,4292467161,3966923378,3640655872,3640655872,3539992576,3456106496,4292467161,3849680245,3221225472,3849680245,4292467161,2533359616,822083584,822083584,2533359616,4292467161,3849680245,3221225472,3849680245,4292467161,3456106496,4292467161,3730463322,3187671040,3405774848,3456106496,2348810240,721420288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777216,234881024,989855744,2147483648,3836647021,4294952084,4294939916,4294939392,4294936064 + ,4294935808,4294939907,3970992676,3783616794,4260594952,4294933248,4294937088,4294937088,4294865664,4294676569,4243165579,3292924164,1862270976,721420288,134217728,0,0,0,0,0,0,0,0,0,0,822083584,2533359616,4292467161,4292467161,4292467161,4292467161,3665591420,2650800128,3665591420,4292467161,4292467161,4292467161,3665591420,2348810240,2348810240,3665591420,4292467161,3355443200,3816191606,4292467161,4292467161,3355443200,3816191606,4292467161,4292467161,4292467161,3696908890,3355443200,4292467161,2533359616,1325400064,1845493760,3665591420,4292467161,4292467161,4292467161,3665591420,2650800128,3665591420,4292467161,4292467161,4292467161,3665591420,1845493760,520093696,520093696,1845493760,3665591420,4292467161,4292467161,4292467161,3665591420,2650800128,3665591420,4292467161,4292467161,4292467161,4292467161,2533359616,822083584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150994944,855638016 + ,2063597568,3785853032,4294949263,4294935301,4294934528,4294931200,4294865408,4294739211,3598869795,2348810240,2248146944,3157861897,4158024716,4294930432,4294934272,4294934016,4294796032,4294604868,4260400774,3309963524,1862270976,704643072,117440512,0,0,0,0,0,0,0,0,0,905969664,2734686208,4292467161,3730463322,2952790016,2533359616,1845493760,1325400064,1845493760,2533359616,2734686208,2533359616,1845493760,1006632960,1006632960,1845493760,2348810240,2164260864,2164260864,2533359616,2533359616,2164260864,2164260864,2533359616,2734686208,2533359616,2164260864,2164260864,2348810240,1677721600,671088640,822083584,1845493760,2533359616,2734686208,2533359616,1845493760,1325400064,1845493760,2533359616,2734686208,2533359616,1845493760,822083584,167772160,167772160,822083584,1845493760,2533359616,2734686208,2533359616,1845493760,1325400064,1845493760,2533359616,2952790016,3730463322,4292467161,2734686208,905969664,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,117440512,738197504,1962934272,3632951638,4294947982,4294931462,4294930176,4294794752,4294662144,4260327185,3378071325,1946157056,922746880,822083584,1677721600,2785937666,3954400527,4294929408,4294931968,4294931712,4294661120,4294469180,4260200571,3208316675,1795162112,620756992,83886080,0,0,0,0,0,0,0,0,822083584,2533359616,4292467161,2768240640,1493172224,822083584,520093696,301989888,520093696,822083584,905969664,822083584,520093696,184549376,184549376,520093696,721420288,620756992,620756992,822083584,822083584,620756992,620756992,822083584,905969664,822083584,620756992,620756992,721420288,503316480,150994944,167772160,520093696,822083584,905969664,822083584,520093696,301989888,520093696,822083584,905969664,822083584,520093696,167772160,16777216,16777216,167772160,520093696,822083584,905969664,822083584,520093696,301989888,520093696,822083584,1493172224,2768240640,4292467161,2533359616,822083584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67108864,620756992,1811939328,3429059385,4294882972,4294796301,4294727936,4294526208,4294325760,4226241553,3242276118,1862270976,738197504,150994944,100663296,520093696,1325400064,2264924160,3768667144,4294928385,4294929408,4294796800,4294460416,4294335293,4225986666,3055813377,1644167168,503316480,50331648,0,0,0,0,0,0,0,503316480,1677721600,2348810240,1677721600,503316480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,503316480,1677721600,2348810240,1677721600,503316480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777216,335544320,1459617792,3005750036,4243500445,4294661403,4294524672,4294258432,4294121728,4259985678,3259118102,1845493760,704643072,134217728,0,0,50331648,335544320,1006632960,2080374784,3751757574,4294794241,4294794240,4294592771 + ,4294323463,4294400588,4123811671,2769158144,1275068416,251658240,0,0,0,0,0,0,0,134217728,503316480,721420288,503316480,134217728,0,0,0,0,134217728,503316480,721420288,503316480,268435456,503316480,721420288,503316480,134217728,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,134217728,503316480,721420288,503316480,134217728,0,0,0,0,134217728,503316480,721420288,503316480,134217728,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,134217728,503316480,721420288,520093696,167772160,16777216,0,0,0,0,0,0,0,0,134217728,503316480,721420288,520093696,234881024,285212672,570425344,687865856,436207616,117440512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150994944,922746880,2348810240,4056321414,4294197820,4294119936,4294056448,4293921536,4293991688,3394978333,1879048192,704643072,117440512,0,0,0,0,33554432,268435456,1023410176,2248146944,3869450497,4293927168,4293661957,4293331976,4293330946,4293609799,3936365867,2181038080,822083584,134217728,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,503316480,1677721600 + ,2348810240,1744830464,1140850688,1744830464,2348810240,1744830464,637534208,67108864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,503316480,1677721600,2348810240,1744830464,637534208,67108864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,503316480,1677721600,2348810240,1811939328,771751936,150994944,0,0,0,0,0,0,0,0,503316480,1677721600,2348810240,1811939328,1040187392,1207959552,1979711488,2248146944,1509949440,436207616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50331648,620756992,1879048192,3649264467,4294272360,4293853184,4293920000,4293920000,4293918720,3649195041,1979711488,754974720,134217728,0,0,0,0,0,67108864,335544320,1023410176,2080374784,3036676096,4088070144,4292476928,4292608000,4292739072,4292804608,4293347915,3581022738,1879048192,654311424,83886080,0,0,0,0,0,0,0,0,50331648,201326592,335544320,201326592,50331648,0,822083584,2533359616,4294967295,3261885548,2080374784,2768240640,4294967295,3261885548,1258291200,234881024,117440512,402653184,671088640 + ,687865856,469762048,184549376,33554432,0,83886080,318767104,419430400,352321536,469762048,620756992,620756992,520093696,335544320,150994944,50331648,0,0,50331648,201326592,335544320,201326592,50331648,0,822083584,2533359616,4294967295,3295439980,1610612736,872415232,520093696,318767104,301989888,167772160,33554432,0,33554432,167772160,301989888,167772160,33554432,50331648,201326592,335544320,201326592,50331648,0,0,0,50331648,184549376,469762048,704643072,704643072,469762048,184549376,855638016,2533359616,4294809856,3566287616,1493172224,335544320,0,0,50331648,234881024,402653184,234881024,50331648,0,822083584,2550136832,4294809856,3583064832,2147483648,2382364672,3921236224,4209802240,2181038080,687865856,184549376,469762048,704643072,704643072,469762048,184549376,50331648,50331648,234881024,520093696,671088640,704643072,822083584,889192448,771751936,721420288,805306368,771751936,520093696,234881024,50331648,0,0,0,0,268435456,1358954496,3023117852,4260334217,4293854213,4293919488,4293921024 + ,4293853184,4055516443,2348810240,939524096,150994944,0,0,0,0,33554432,201326592,671088640,1442840576,2264924160,3513790764,3356295425,3473866752,4207017984,4292673536,4292804608,4292870144,4292937479,4276240705,3174499075,1610612736,419430400,0,0,0,0,0,0,0,83886080,452984832,1157627904,1577058304,1174405120,486539264,83886080,905969664,2734686208,4294967295,3479528805,2533359616,3087007744,4294967295,3429394536,1543503872,520093696,754974720,1610612736,2248146944,2298478592,1845493760,1107296256,385875968,150994944,587202560,1409286144,1644167168,1442840576,1761607680,2147483648,2147483648,1962934272,1593835520,1040187392,385875968,50331648,83886080,452984832,1157627904,1577058304,1174405120,486539264,234881024,1191182336,2868903936,4294967295,3630326370,2734686208,2432696320,1962934272,1526726656,1392508928,822083584,167772160,0,167772160,822083584,1392508928,1073741824,436207616,503316480,1157627904,1577058304,1174405120,486539264,83886080,0,83886080,452984832,1140850688,1845493760,2315255808 + ,2315255808,1845493760,1140850688,1375731712,2818572288,4294804480,3666292992,1744830464,419430400,0,100663296,520093696,1275068416,1694498816,1291845632,536870912,234881024,1191182336,2868903936,4294804480,3783471360,2952790016,3768006912,4294606336,3681495040,2130706432,1023410176,1140850688,1845493760,2315255808,2315255808,1845493760,1140850688,469762048,335544320,1006632960,1879048192,2248146944,2298478592,2533359616,2667577344,2449473536,2332033024,2499805184,2449473536,1962934272,1191182336,419430400,50331648,0,0,83886080,754974720,2181038080,3971250292,4293995053,4293853184,4293855488,4293591040,4208406034,2938050314,1426063360,335544320,16777216,0,0,50331648,234881024,620756992,1207959552,2013265920,3107396370,4055000155,4293554803,4003672881,3221225472,3544186880,4292673536,4292804608,4292870144,4292870144,4293006099,4122616354,2600796160,1023410176,134217728,0,0,0,0,0,67108864,520093696,1560281088,2685209869,3768886436,2736133654,1644167168,603979776,1006632960,2734686208,4294967295 + ,3630326370,2952790016,3630326370,4294967295,3429394536,1711276032,1191182336,1979711488,3531768450,4140814287,4140945873,3801519766,2584349194,1493172224,1006632960,1728053248,3380576127,3769610159,2734686208,3752175013,4022386880,4022386880,3886721706,3513806960,2739028546,1140850688,285212672,520093696,1560281088,2685209869,3768886436,2736133654,1644167168,1107296256,1996488704,3579994722,4294967295,3780992349,3456106496,4294967295,3596837731,3173130786,3600916897,1828716544,553648128,50331648,553648128,1828716544,3600916897,2620009002,1509949440,1694498816,2685209869,3768886436,2736133654,1644167168,603979776,150994944,503316480,1543503872,2889486848,3767873792,4175254272,4175254272,3767873792,2889486848,2399141888,3120562176,4294798592,3632408576,1694498816,402653184,83886080,587202560,1644167168,2786133248,3870512384,2870872320,1711276032,1140850688,2013265920,3682543616,4294798592,3866764800,3456106496,4294798592,4054399232,3338665984,2516582400,2097152000,2889486848,3767873792,4175254272 + ,4175254272,3767873792,2889486848,1660944384,1275068416,2097152000,3836689152,4192360448,3422552064,4294798592,4294798592,4192360448,3970513152,4294798592,4192360448,3903601152,2788757760,1174405120,234881024,0,0,335544320,1493172224,3259970090,4294206305,4293591040,4293263872,4292935936,4292806915,3648730389,1862270976,620756992,117440512,117440512,285212672,553648128,922746880,1392508928,2063597568,2938704652,3834466116,4276189301,4292948534,4293067009,4293740360,3732214294,3187671040,3918004480,4293132288,4293066752,4292935680,4292870144,4293073434,3681683208,1879048192,536870912,33554432,0,0,0,16777216,402653184,1509949440,2869890831,4106733511,4277729528,4157920468,3022135842,1644167168,1392508928,2751463424,4294967295,3730726494,3271557120,4294967295,4294967295,3429394536,2030043136,2147483648,3768820643,4209699562,3832574064,3815599469,4260820726,3970410407,2936999695,2499805184,3464001656,4022189501,3578678862,3355443200,4294967295,3747569503,3426828609,3426828609,4004030632,3784347792 + ,1996488704,922746880,1509949440,2869890831,4106733511,4277729528,4157920468,3022135842,2348810240,2768240640,4294967295,4294967295,3847969627,3640655872,4294967295,3847969627,4020084125,4260820726,2888510251,1157627904,335544320,1157627904,2888510251,4260820726,3852772516,2734686208,3004174352,4106733511,4277729528,4157920468,3022135842,1644167168,721420288,1275068416,3058897920,4106697728,4294726912,4020186368,4020186368,4294726912,4106697728,3561427200,3489660928,4294792448,3598458880,1660944384,402653184,452984832,1577058304,2937455616,4158017536,4277752576,4192228608,3090025216,2382364672,2801795072,4294792448,4294792448,3916570368,3640655872,4294792448,4294792448,4294792448,3170893824,3460961024,4106697728,4294726912,4020186368,4020186368,4294726912,4106697728,3259962368,2617245696,3649906432,4277752576,3730839552,3539992576,4294792448,3849592320,3679458560,4277752576,4037094656,3813479168,4277752576,3886493184,1996488704,536870912,0,67108864,788529152,2281701376,4072894821,4293201424 + ,4292870144,4292804608,4292608000,4156898324,2634022912,1392508928,822083584,905969664,1140850688,1476395008,2013265920,2617573888,3292798484,3902098491,4241976422,4292888908,4292806923,4293001216,4293263360,4293525760,4294260515,3510376966,3305308160,4191289856,4293394432,4293066752,4292935680,4293001473,4242215445,2871133184,1191182336,201326592,0,0,0,268435456,1291845632,2701723913,4072652735,4260754933,3782702967,4175355614,4158446812,2870877726,2264924160,3019898880,4294967295,3630326370,2952790016,3305111552,4294967295,3462817382,2399141888,3243660886,4277795321,3764675684,3372220416,3405774848,3780071247,4174829270,3729542220,3456106496,4294967295,3801256594,2885681152,3271557120,4294967295,3546506083,2298478592,2348810240,3648616825,4294967295,2818572288,2097152000,2701723913,4072652735,4260754933,3782702967,4175355614,4158446812,3289979161,3137339392,3456106496,4294967295,3847969627,3640655872,4294967295,3780992349,3645064003,4226674157,3767833748,1996488704,1174405120,1996488704 + ,3767833748,4243385580,3712107074,3473278470,4072652735,4260754933,3782702967,4175355614,4158446812,2870877726,1711276032,1811939328,3685360896,4124521216,3410759424,2920416000,2920416000,3427536640,4157944576,4105775616,3640655872,4294787072,3564509184,1627389952,637534208,1342177280,2785739264,4106956544,4260773120,3867745792,4209325824,4192286208,3323987200,3137339392,3456106496,4294787072,3899463168,3640655872,4294787072,3798931456,3204448256,3221225472,4055509504,4157944576,3427536640,2920416000,2920416000,3427536640,4157944576,4072286720,3456106496,4294787072,3886162944,2969567232,3305111552,4294787072,3698464768,2952790016,3783794432,4294787072,3640655872,3951172864,4294787072,2550136832,822083584,0,285212672,1426063360,3277007389,4293737023,4293066752,4292870144,4292739072,4241565196,3423471106,2717908992,2197815296,2264924160,2685010432,3005286916,3377536014,3851039012,4139536965,4292959323,4292818747,4292742414,4292804608,4292804608,4292935680,4293725440,4294590464,3954466066,2871071238 + ,2466250752,3445623808,4294119168,4293525504,4293132288,4293001216,4293462024,3835439624,2030043136,654311424,67108864,0,50331648,788529152,2348941826,3851061898,4260886519,3529005144,3120562176,3525452322,4243451373,3902446234,3288926473,3439329280,4294967295,3513017444,2634022912,3137339392,4294967295,3496306021,2583691264,3717567893,4209041632,3489660928,4141406424,4141538010,4124168657,4192461795,3868365458,3523215360,4294967295,3462817382,2499805184,3070230528,4294967295,3429394536,1811939328,1845493760,3446040166,4294967295,3422552064,3221225472,3851061898,4260886519,3529005144,3120562176,3525452322,4243451373,3952580503,3490318858,3539992576,4294967295,3847969627,3640655872,4294967295,3630326370,2952790016,3869483939,4260689140,3123917619,2415919104,3123917619,4260689140,4020084125,3640655872,3968239238,4260886519,3529005144,3120562176,3525452322,4243451373,3902446234,2735475724,2113929216,2600468480,3019898880,2583691264,2063597568,2063597568,2667577344,3714912256,4294781952,3640655872 + ,4294781952,3547336960,1728053248,1191182336,2382495744,3902150144,4277545472,3580038656,3120562176,3559458048,4243531776,3986889472,3490382080,3539992576,4294781952,3882225408,3640655872,4294781952,3614249216,2634022912,2919235584,4294781952,3714912256,2667577344,2063597568,2063597568,2667577344,3714912256,4294781952,3640655872,4294781952,3547336960,2583691264,3120562176,4294781952,3547336960,2566914048,3547336960,4294781952,3640655872,3882225408,4294781952,2734686208,905969664,50331648,687865856,2164260864,4004986156,4293526023,4293132288,4292804608,4292739072,4190049031,3866102791,3816952331,3868467732,4003800346,4156500256,4275644710,4292683559,4292682277,4292679193,4292739073,4292739072,4292608000,4292411392,4292673536,4293661184,4174923273,3446360857,2164260864,1291845632,1191182336,2332033024,4073140736,4294119168,4293525504,4293066752,4293263360,4276230916,3260750080,1392508928,318767104,16777216,184549376,1275068416,3157340465,4274439878,3678486849,3120562176,3289452817,3848232799 + ,4120681628,4291611852,3711251765,3456106496,4291611852,3799348597,2919235584,3288334336,4291611852,3461435729,2499805184,3410446151,4206212533,3778952766,3591574291,3388997632,3305111552,3170893824,3036676096,3372220416,4291611852,3427947090,2415919104,3019898880,4291611852,3427947090,1795162112,1795162112,3427947090,4291611852,3640655872,3760793897,4274439878,3678486849,3120562176,3289452817,3848232799,4120681628,4291611852,3795137845,3640655872,4291611852,3846785353,3640655872,4291611852,3478212945,2399141888,3073322799,4172394929,4121339558,3491832097,4121339558,4172394929,3542690089,3643353385,4274439878,3678486849,3120562176,3289452817,3848232799,4120681628,4291611852,3510188345,2785017856,3582069760,4090368512,3376612608,2920218624,2920218624,3393389824,4123791872,4037807872,3456106496,4294514688,3835038720,2231369728,1862270976,3191800832,4277278208,3696690944,3137339392,3323461888,3883600384,4140044544,4294514688,3813017088,3640655872,4294514688,3865118720,3640655872,4294514688 + ,3496610048,2130706432,2399141888,3954183936,4123791872,3393389824,2920218624,2920218624,3393389824,4123791872,4071296768,3640655872,4294514688,3496610048,2466250752,3053453312,4294514688,3496610048,2466250752,3496610048,4294514688,3640655872,3865118720,4294514688,2734686208,905969664,201326592,1224736768,3023639812,4277017613,4293656576,4293263360,4292870144,4292804608,4292870144,4292871176,4292939794,4292939796,4292873232,4292871689,4292739587,4292804608,4292804608,4292673536,4292542464,4292345856,4292542464,4293133568,4157219336,3665638928,2651785731,1677721600,771751936,251658240,385875968,1526726656,3327729408,4294721792,4294119168,4293591040,4293197824,4293925893,3987551235,2248146944,872415232,134217728,385875968,1677721600,3630721128,4291546059,3813757265,3849088108,4189172145,4154893990,3881063508,4154762404,3781387107,3070230528,3629931612,4257728455,3661512254,3539992576,4291611852,3427947090,2231369728,2769885465,3934158462,4205949361,3847311697,3643419178,3729081669,4037585064 + ,2902458368,3288334336,4291611852,3427947090,2415919104,3019898880,4291611852,3427947090,1795162112,1795162112,3427947090,4291611852,3640655872,3932250465,4291546059,3813757265,3849088108,4189172145,4154893990,3881063508,4154762404,3915275870,3640655872,4291611852,3846785353,3640655872,4291611852,3427947090,1929379840,1946157056,3309980234,4206541498,4274374085,4206541498,3427289160,2835349504,3731187045,4291546059,3813757265,3849088108,4189172145,4154893990,3881063508,4154762404,3865075808,3456106496,4294511104,4088530432,4294380032,3968205824,3968205824,4294380032,4038395392,3158180096,2533359616,3531015424,4260563200,3310682880,2583691264,3665954048,4294445568,3815047936,3867608064,4191881216,4157409024,3899130624,4157277952,3933602816,3640655872,4294511104,3864789504,3640655872,4294511104,3462923264,1778384896,1577058304,2957115648,4038395392,4294380032,3968205824,3968205824,4294380032,4038395392,3493396736,3472883712,4294511104,3462923264,2449473536,3036676096,4294511104,3462923264 + ,2449473536,3462923264,4294511104,3640655872,3864789504,4294511104,2734686208,905969664,436207616,1795162112,3784914178,4294453760,4293985792,4293525504,4293263360,4293066752,4293001216,4292870144,4292870144,4292870144,4292804608,4292739072,4292608000,4292411392,4292411392,4292411392,4292804608,4276096257,4055439621,3462337541,2617967874,1778384896,1006632960,436207616,100663296,0,83886080,822083584,2332033024,4107292928,4294722560,4294251776,4293656576,4293856768,4276101633,3515097344,1342177280,234881024,436207616,1711276032,3817968017,4206673084,4223647679,4019952539,3613812326,3157077293,2869101315,3461238350,4037716650,2516582400,2365587456,3614865014,4104759721,3405774848,4291611852,3260503895,1560281088,1526726656,2703500324,3630786921,4036861341,4240490688,3867575942,2973514812,2231369728,2885681152,4291611852,3260503895,2080374784,2768240640,4291611852,3260503895,1493172224,1493172224,3260503895,4291611852,3372220416,3951922573,4206673084,4223647679,4019952539,3613812326,3157077293 + ,2869101315,3461238350,4087982505,3405774848,4291611852,3662499149,3355443200,4291611852,3260503895,1358954496,872415232,1795162112,3224646708,4257662662,3224646708,2147483648,2147483648,3817968017,4206673084,4223647679,4019952539,3613812326,3157077293,2869101315,3461238350,4104628135,3590324224,4294508544,3815702528,3698589696,4073127936,4073127936,3598123008,2720661504,1543503872,1107296256,1929379840,3616538624,4057071616,2801795072,3870294016,4209246208,4226351104,4022140928,3615162368,3157852160,2869100544,3462266880,4090298368,3405774848,4294508544,3663659008,3355443200,4294508544,3261661184,1325400064,687865856,1476395008,2720661504,3598123008,4073127936,4073127936,3598123008,2720661504,2231369728,2902458368,4294508544,3261661184,2080374784,2768240640,4294508544,3261661184,2080374784,3261661184,4294508544,3355443200,3663659008,4294508544,2533359616,822083584,520093696,1962934272,4022817026,4294132225,4294521600,4294253056,4293920768,4293591296,4293197824,4293132288,4292935680,4292804608 + ,4292804608,4292804608,4292935936,4293135104,4242084099,4072214529,3597801734,3023440387,2231369728,1577058304,956301312,452984832,117440512,16777216,0,0,0,352321536,1627389952,3530502912,4294929408,4294791936,4294592513,4158276864,3444975876,2535986688,1006632960,150994944,234881024,1006632960,1929379840,2449473536,2483027968,2164260864,1694498816,1258291200,1174405120,1610612736,1929379840,1459617792,1124073472,1660944384,2130706432,2264924160,2348810240,1744830464,687865856,436207616,1023410176,1694498816,2197815296,2348810240,1962934272,1224736768,989855744,1761607680,2348810240,1744830464,1140850688,1744830464,2348810240,1744830464,721420288,721420288,1744830464,2348810240,2197815296,2164260864,2449473536,2483027968,2164260864,1694498816,1258291200,1174405120,1610612736,2063597568,2248146944,2348810240,2164260864,2164260864,2348810240,1744830464,637534208,184549376,704643072,1728053248,2281701376,1728053248,939524096,1124073472,1929379840,2449473536,2483027968,2164260864,1694498816 + ,1258291200,1174405120,1610612736,2483027968,3305111552,4294508544,3563126784,2449473536,2214592512,2147483648,1677721600,1023410176,402653184,234881024,788529152,1660944384,1996488704,1828716544,2030043136,2449473536,2483027968,2164260864,1694498816,1258291200,1174405120,1610612736,2063597568,2248146944,2348810240,2164260864,2164260864,2348810240,1744830464,637534208,150994944,402653184,1023410176,1677721600,2147483648,2147483648,1677721600,1023410176,905969664,1744830464,2348810240,1744830464,1140850688,1744830464,2348810240,1744830464,1140850688,1744830464,2348810240,2164260864,2164260864,2348810240,1677721600,503316480,318767104,1375731712,3059226113,3699846145,3869130506,4022230030,4141306627,4226171904,4260378112,4260178176,4259914240,4191428864,4089652224,3936955141,3648853506,3361147392,2887846915,2248146944,1694498816,1191182336,721420288,335544320,83886080,16777216,0,0,0,0,0,117440512,989855744,2585332736,4039860480,3784984577,3226543360,2382364672,1728053248,989855744,318767104 + ,33554432,50331648,234881024,536870912,771751936,788529152,620756992,385875968,167772160,134217728,352321536,520093696,369098752,234881024,436207616,620756992,671088640,721420288,503316480,134217728,33554432,150994944,385875968,637534208,721420288,520093696,234881024,184549376,503316480,721420288,503316480,268435456,503316480,721420288,503316480,134217728,134217728,503316480,721420288,637534208,620756992,771751936,788529152,620756992,385875968,167772160,134217728,352321536,587202560,671088640,721420288,620756992,620756992,721420288,503316480,134217728,0,134217728,469762048,687865856,469762048,167772160,234881024,536870912,771751936,788529152,620756992,385875968,167772160,134217728,352321536,1258291200,2734686208,4294508544,3278503936,1476395008,754974720,620756992,385875968,150994944,33554432,16777216,150994944,436207616,570425344,503316480,587202560,771751936,788529152,620756992,385875968,167772160,134217728,352321536,587202560,671088640,721420288,620756992,620756992,721420288,503316480 + ,134217728,0,33554432,150994944,385875968,620756992,620756992,385875968,150994944,150994944,503316480,721420288,503316480,268435456,503316480,721420288,503316480,268435456,503316480,721420288,620756992,620756992,721420288,503316480,134217728,67108864,503316480,1224736768,1744830464,1979711488,2181038080,2382364672,2533359616,2634022912,2634022912,2600468480,2466250752,2298478592,2046820352,1728053248,1409286144,1073741824,704643072,385875968,167772160,50331648,0,0,0,0,0,0,0,0,16777216,419430400,1342177280,1979711488,1862270976,1342177280,822083584,419430400,150994944,33554432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,503316480,1677721600,2348810240,1744830464,637534208,67108864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50331648,234881024,419430400,536870912,637534208,738197504,822083584,855638016,872415232,838860800,788529152,687865856 + ,570425344,419430400,251658240,117440512,33554432,0,0,0,0,0,0,0,0,0,0,0,0,67108864,335544320,536870912,469762048,234881024,50331648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,134217728,503316480,721420288,503316480,134217728,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])); + return bmp; + } + + private function onMouseDown(e:MouseEvent) : void + { + e.stopPropagation(); + } + + private function onClick(e:MouseEvent) : void + { + e.stopPropagation(); + try + { + navigateToURL(new URLRequest("http://alternativaplatform.com"),"_blank"); + } + catch(e:Error) + { + } + } + + private function onDoubleClick(e:MouseEvent) : void + { + e.stopPropagation(); + } + + private function onMouseMove(e:MouseEvent) : void + { + e.stopPropagation(); + transform.colorTransform = highlighted; + } + + private function onMouseOut(e:MouseEvent) : void + { + e.stopPropagation(); + transform.colorTransform = normal; + } + + private function onMouseWheel(e:MouseEvent) : void + { + e.stopPropagation(); + } +} diff --git a/src/package_22/name_181.as b/src/package_22/name_181.as new file mode 100644 index 0000000..bf14bf6 --- /dev/null +++ b/src/package_22/name_181.as @@ -0,0 +1,491 @@ +package package_22 +{ + import flash.display.InteractiveObject; + import flash.events.KeyboardEvent; + import flash.events.MouseEvent; + import package_10.class_1; + import package_27.name_479; + + public class name_181 extends class_1 implements name_87 + { + private static const NUM_KEYS:int = 256; + + private var eventSource:InteractiveObject; + + private var var_216:name_479; + + private var var_230:Boolean; + + private var var_221:Boolean; + + private var var_225:Boolean; + + private var var_227:int; + + private var var_226:int; + + private var mouseX:int; + + private var mouseY:int; + + private var var_229:int; + + private var var_228:int; + + private var var_223:int; + + private var var_224:CleanupTask; + + private var var_220:Vector.>; + + private var var_217:Vector.>; + + private var var_219:Vector.; + + private var var_218:Vector.; + + private var var_222:KeybardEventQueue; + + public function name_181(priority:int, eventSource:InteractiveObject) + { + super(priority); + this.eventSource = eventSource; + this.var_216 = new name_479(NUM_KEYS); + this.var_220 = new Vector.>(NUM_KEYS); + this.var_217 = new Vector.>(NUM_KEYS); + this.var_219 = new Vector.(); + this.var_218 = new Vector.(); + this.var_222 = new KeybardEventQueue(); + } + + public function name_94(eventType:name_83, listener:Function, keyCode:uint = 0) : void + { + switch(eventType) + { + case name_83.KEY_DOWN: + if(keyCode == 0) + { + this.method_335(this.var_219,listener); + break; + } + this.method_337(this.var_220,keyCode,listener); + break; + case name_83.KEY_UP: + if(keyCode == 0) + { + this.method_335(this.var_218,listener); + break; + } + this.method_337(this.var_217,keyCode,listener); + break; + } + } + + public function name_384(eventType:name_83, listener:Function, keyCode:uint = 0) : void + { + switch(eventType) + { + case name_83.KEY_DOWN: + if(keyCode == 0) + { + this.method_339(this.var_219,listener); + break; + } + this.method_334(this.var_220,keyCode,listener); + break; + case name_83.KEY_UP: + if(keyCode == 0) + { + this.method_339(this.var_218,listener); + break; + } + this.method_334(this.var_217,keyCode,listener); + break; + } + } + + public function name_192(keyCode:uint) : int + { + return this.var_216.name_478(keyCode); + } + + public function name_346(keyCode:uint) : Boolean + { + return this.var_216.name_478(keyCode) == 1; + } + + private function method_337(keyTypeListeners:Vector.>, keyCode:uint, listener:Function) : void + { + var listeners:Vector. = keyTypeListeners[keyCode]; + if(listeners == null) + { + listeners = new Vector.(1); + listeners[0] = listener; + keyTypeListeners[keyCode] = listeners; + } + else if(listeners.indexOf(listener) < 0) + { + listeners.push(listener); + } + } + + private function method_334(keyTypeListeners:Vector.>, keyCode:uint, listener:Function) : void + { + var index:int = 0; + var newLength:int = 0; + var listeners:Vector. = keyTypeListeners[keyCode]; + if(listeners != null) + { + index = int(listeners.indexOf(listener)); + if(index >= 0) + { + newLength = listeners.length - 1; + listeners[index] = listeners[newLength]; + listeners.length = newLength; + } + } + } + + private function method_335(listeners:Vector., listener:Function) : void + { + if(listeners.indexOf(listener) < 0) + { + listeners.push(listener); + } + } + + private function method_339(listeners:Vector., listener:Function) : void + { + var newLength:int = 0; + var index:int = int(listeners.indexOf(listener)); + if(index >= 0) + { + newLength = listeners.length - 1; + listeners[index] = listeners[newLength]; + listeners.length = newLength; + } + } + + public function name_199() : Boolean + { + return this.var_221; + } + + public function method_262() : Boolean + { + return this.var_225; + } + + public function name_197() : int + { + return this.var_229; + } + + public function name_200() : int + { + return this.var_228; + } + + public function method_261() : int + { + return this.var_223; + } + + override public function start() : void + { + this.var_224 = new CleanupTask(int.MAX_VALUE,this); + var_4.addTask(this.var_224); + this.eventSource.addEventListener(KeyboardEvent.KEY_DOWN,this.method_15); + this.eventSource.addEventListener(KeyboardEvent.KEY_UP,this.method_233); + this.eventSource.addEventListener(MouseEvent.MOUSE_MOVE,this.onMouseMove); + this.eventSource.addEventListener(MouseEvent.MOUSE_WHEEL,this.onMouseWheel); + this.eventSource.addEventListener(MouseEvent.MOUSE_DOWN,this.onMouseDown); + this.eventSource.addEventListener(MouseEvent.MOUSE_UP,this.method_338); + } + + override public function stop() : void + { + var_4.killTask(this.var_224); + this.eventSource.removeEventListener(KeyboardEvent.KEY_DOWN,this.method_15); + this.eventSource.removeEventListener(KeyboardEvent.KEY_UP,this.method_233); + this.eventSource.removeEventListener(MouseEvent.MOUSE_MOVE,this.onMouseMove); + this.eventSource.removeEventListener(MouseEvent.MOUSE_WHEEL,this.onMouseWheel); + this.eventSource.removeEventListener(MouseEvent.MOUSE_DOWN,this.onMouseDown); + this.eventSource.removeEventListener(MouseEvent.MOUSE_UP,this.method_338); + } + + override public function run() : void + { + this.var_229 = this.mouseX - this.var_227; + this.var_228 = this.mouseY - this.var_226; + this.method_340(); + } + + private function method_340() : void + { + var distinctListeners:Vector. = null; + var listeners:Vector. = null; + var event:KeyboardEventItem = null; + var keyCode:uint = 0; + var eventType:name_83 = null; + while(true) + { + event = this.var_222.poll(); + if(event == null) + { + break; + } + keyCode = event.keyCode; + eventType = event.type; + switch(eventType) + { + case name_83.KEY_DOWN: + distinctListeners = this.var_220[keyCode]; + listeners = this.var_219; + break; + case name_83.KEY_UP: + distinctListeners = this.var_217[keyCode]; + listeners = this.var_218; + } + if(distinctListeners != null) + { + this.method_336(distinctListeners,eventType,keyCode); + } + if(listeners != null) + { + this.method_336(listeners,eventType,keyCode); + } + event.destroy(); + } + } + + private function method_336(listeners:Vector., eventType:name_83, keyCode:uint) : void + { + var func:Function = null; + var numListeners:int = int(listeners.length); + for(var i:int = 0; i < numListeners; i++) + { + func = listeners[i]; + func.call(null,eventType,keyCode); + } + } + + public function method_341() : void + { + this.var_230 = this.var_221; + this.var_225 = false; + this.var_227 = this.mouseX; + this.var_226 = this.mouseY; + this.var_223 = 0; + } + + private function method_15(event:KeyboardEvent) : void + { + var keyCode:uint = uint(event.keyCode); + if(keyCode < NUM_KEYS) + { + if(this.var_216.name_478(keyCode) == 0) + { + this.var_216.name_480(keyCode,true); + this.var_222.add(keyCode,name_83.KEY_DOWN); + } + } + } + + private function method_233(event:KeyboardEvent) : void + { + var keyCode:uint = uint(event.keyCode); + if(keyCode < NUM_KEYS) + { + if(this.var_216.name_478(keyCode) == 1) + { + this.var_216.name_480(keyCode,false); + this.var_222.add(keyCode,name_83.KEY_UP); + } + } + } + + private function onMouseMove(event:MouseEvent) : void + { + this.mouseX = event.stageX; + this.mouseY = event.stageY; + } + + private function onMouseWheel(event:MouseEvent) : void + { + this.var_223 = event.delta; + } + + private function onMouseDown(event:MouseEvent) : void + { + this.var_221 = true; + this.var_225 = true; + } + + private function method_338(event:MouseEvent) : void + { + this.var_221 = false; + } + } +} + +import package_10.class_1; + +class CleanupTask extends class_1 +{ + private var inputSystem:name_181; + + public function CleanupTask(priority:int, inputSystem:name_181) + { + super(priority); + this.inputSystem = inputSystem; + } + + override public function run() : void + { + this.inputSystem.method_341(); + } +} + +class KeyboardEventItem +{ + private static var pool:KeyboardEventItem; + + public var type:name_83; + + public var keyCode:uint; + + public var next:KeyboardEventItem; + + public function KeyboardEventItem() + { + super(); + } + + public static function create() : KeyboardEventItem + { + if(pool == null) + { + return new KeyboardEventItem(); + } + var item:KeyboardEventItem = pool; + pool = pool.next; + item.next = null; + return item; + } + + public function destroy() : void + { + this.next = pool; + pool = this; + } +} + +class KeybardEventQueue +{ + private var head:KeyboardEventItem; + + private var tail:KeyboardEventItem; + + public function KeybardEventQueue() + { + super(); + } + + public function add(keyCode:uint, type:name_83) : void + { + var keyItem:KeyboardEventItem = KeyboardEventItem.create(); + keyItem.keyCode = keyCode; + keyItem.type = type; + if(this.head == null) + { + this.head = keyItem; + } + else + { + this.tail.next = keyItem; + } + this.tail = keyItem; + } + + public function poll() : KeyboardEventItem + { + if(this.head == null) + { + return null; + } + var item:KeyboardEventItem = this.head; + this.head = this.head.next; + return item; + } +} + +class MouseEventItem +{ + private static var pool:MouseEventItem; + + public var leftButtonPressed:Boolean; + + public var next:MouseEventItem; + + public function MouseEventItem() + { + super(); + } + + public static function create() : MouseEventItem + { + if(pool == null) + { + return new MouseEventItem(); + } + var item:MouseEventItem = pool; + pool = pool.next; + item.next = null; + return item; + } + + public function destroy() : void + { + this.next = pool; + pool = this; + } +} + +class MouseEventQueue +{ + private var head:MouseEventItem; + + private var tail:MouseEventItem; + + public function MouseEventQueue() + { + super(); + } + + public function add(leftButtonPressed:Boolean) : void + { + var mouseEventItem:MouseEventItem = MouseEventItem.create(); + mouseEventItem.leftButtonPressed = leftButtonPressed; + if(this.head == null) + { + this.head = mouseEventItem; + } + else + { + this.tail.next = mouseEventItem; + } + this.tail = mouseEventItem; + } + + public function poll() : MouseEventItem + { + if(this.head == null) + { + return null; + } + var item:MouseEventItem = this.head; + this.head = item.next; + return item; + } +} diff --git a/src/package_22/name_83.as b/src/package_22/name_83.as new file mode 100644 index 0000000..1e2072c --- /dev/null +++ b/src/package_22/name_83.as @@ -0,0 +1,15 @@ +package package_22 +{ + public class name_83 + { + public static const KEY_DOWN:name_83 = new name_83(); + + public static const KEY_UP:name_83 = new name_83(); + + public function name_83() + { + super(); + } + } +} + diff --git a/src/package_22/name_87.as b/src/package_22/name_87.as new file mode 100644 index 0000000..0d0daa9 --- /dev/null +++ b/src/package_22/name_87.as @@ -0,0 +1,24 @@ +package package_22 +{ + public interface name_87 + { + function name_94(param1:name_83, param2:Function, param3:uint = 0) : void; + + function name_384(param1:name_83, param2:Function, param3:uint = 0) : void; + + function name_192(param1:uint) : int; + + function name_346(param1:uint) : Boolean; + + function name_199() : Boolean; + + function method_261() : int; + + function method_262() : Boolean; + + function name_197() : int; + + function name_200() : int; + } +} + diff --git a/src/package_23/name_103.as b/src/package_23/name_103.as new file mode 100644 index 0000000..721d0fb --- /dev/null +++ b/src/package_23/name_103.as @@ -0,0 +1,281 @@ +package package_23 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3D; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DCompareMode; + import flash.geom.Matrix3D; + import package_21.name_124; + import package_21.name_135; + import package_21.name_386; + import package_21.name_78; + import package_30.name_114; + import package_4.name_127; + + use namespace alternativa3d; + + public class name_103 + { + private static var counter:int = 0; + + private static const boundVertices:Vector. = new Vector.(24); + + alternativa3d var var_104:String; + + public var active:Boolean = false; + + public function name_103() + { + super(); + ++counter; + this.alternativa3d::var_104 = "M" + counter.toString(); + } + + alternativa3d function get name_372() : Boolean + { + return false; + } + + public function update() : void + { + } + + public function getVShader(index:int = 0) : name_114 + { + return null; + } + + public function getFShader(index:int = 0) : name_114 + { + return null; + } + + public function getFIntensityShader() : name_114 + { + throw new Error("Not implemented"); + } + + public function applyShader(destination:name_135, program:name_127, object:name_78, camera:name_124, index:int = 0) : void + { + } + + public function get debug() : Boolean + { + return false; + } + + public function set debug(value:Boolean) : void + { + } + + alternativa3d function cullReciever(boundBox:name_386, object:name_78) : Boolean + { + return false; + } + + protected function method_221(context:Context3D) : void + { + context.setTextureAt(0,null); + context.setTextureAt(1,null); + context.setTextureAt(2,null); + context.setTextureAt(3,null); + context.setTextureAt(4,null); + context.setTextureAt(5,null); + context.setTextureAt(6,null); + context.setTextureAt(7,null); + context.setVertexBufferAt(1,null); + context.setVertexBufferAt(2,null); + context.setVertexBufferAt(3,null); + context.setVertexBufferAt(4,null); + context.setVertexBufferAt(5,null); + context.setVertexBufferAt(6,null); + context.setVertexBufferAt(7,null); + context.setDepthTest(true,Context3DCompareMode.LESS); + context.setBlendFactors(Context3DBlendFactor.ONE,Context3DBlendFactor.ZERO); + } + + alternativa3d function method_222(bounds:name_386, matrix:Matrix3D) : Boolean + { + var i:int = 0; + var infront:Boolean = false; + var behind:Boolean = false; + boundVertices[0] = bounds.minX; + boundVertices[1] = bounds.minY; + boundVertices[2] = bounds.minZ; + boundVertices[3] = bounds.maxX; + boundVertices[4] = bounds.minY; + boundVertices[5] = bounds.minZ; + boundVertices[6] = bounds.minX; + boundVertices[7] = bounds.maxY; + boundVertices[8] = bounds.minZ; + boundVertices[9] = bounds.maxX; + boundVertices[10] = bounds.maxY; + boundVertices[11] = bounds.minZ; + boundVertices[12] = bounds.minX; + boundVertices[13] = bounds.minY; + boundVertices[14] = bounds.maxZ; + boundVertices[15] = bounds.maxX; + boundVertices[16] = bounds.minY; + boundVertices[17] = bounds.maxZ; + boundVertices[18] = bounds.minX; + boundVertices[19] = bounds.maxY; + boundVertices[20] = bounds.maxZ; + boundVertices[21] = bounds.maxX; + boundVertices[22] = bounds.maxY; + boundVertices[23] = bounds.maxZ; + matrix.transformVectors(boundVertices,boundVertices); + i = 2; + infront = false; + behind = false; + while(i <= 23) + { + if(boundVertices[i] > 0) + { + infront = true; + if(behind) + { + break; + } + } + else + { + behind = true; + if(infront) + { + break; + } + } + i += 3; + } + if(behind) + { + if(!infront) + { + return false; + } + } + i = 0; + infront = false; + behind = false; + while(i <= 21) + { + if(boundVertices[i] > 0) + { + infront = true; + if(behind) + { + break; + } + } + else + { + behind = true; + if(infront) + { + break; + } + } + i += 3; + } + if(behind) + { + if(!infront) + { + return false; + } + } + i = 0; + infront = false; + behind = false; + while(i <= 21) + { + if(boundVertices[i] < 1) + { + infront = true; + if(behind) + { + break; + } + } + else + { + behind = true; + if(infront) + { + break; + } + } + i += 3; + } + if(behind) + { + if(!infront) + { + return false; + } + } + i = 1; + infront = false; + behind = false; + while(i <= 22) + { + if(boundVertices[i] > 0) + { + infront = true; + if(behind) + { + break; + } + } + else + { + behind = true; + if(infront) + { + break; + } + } + i += 3; + } + if(behind) + { + if(!infront) + { + return false; + } + } + i = 1; + infront = false; + behind = false; + while(i <= 22) + { + if(boundVertices[i] < 1) + { + infront = true; + if(behind) + { + break; + } + } + else + { + behind = true; + if(infront) + { + break; + } + } + i += 3; + } + if(behind) + { + if(!infront) + { + return false; + } + } + return true; + } + } +} + diff --git a/src/package_23/name_208.as b/src/package_23/name_208.as new file mode 100644 index 0000000..a9a2ee0 --- /dev/null +++ b/src/package_23/name_208.as @@ -0,0 +1,457 @@ +package package_23 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3D; + import flash.display3D.Context3DProgramType; + import flash.display3D.Context3DTextureFormat; + import flash.display3D.Context3DTriangleFace; + import flash.display3D.Program3D; + import flash.display3D.textures.Texture; + import flash.geom.Matrix3D; + import flash.geom.Vector3D; + import package_19.name_117; + import package_19.name_380; + import package_21.name_124; + import package_21.name_126; + import package_21.name_135; + import package_21.name_139; + import package_21.name_386; + import package_21.name_78; + import package_24.DirectionalLight; + import package_28.name_129; + import package_28.name_167; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + import package_4.class_5; + import package_4.name_127; + import package_96.name_279; + + use namespace alternativa3d; + + public class name_208 extends name_103 + { + private static var directionalShadowMapProgram:Program3D; + + private static const constants:Vector. = Vector.([255,255 * 0.96,100,1]); + + private static var matrix:Matrix3D = new Matrix3D(); + + private static var transformToMatrixRawData:Vector. = new Vector.(16); + + private static var drawProjection:Matrix3D = new Matrix3D(); + + private static const objectToShadowMap:Matrix3D = new Matrix3D(); + + private static const localToGlobal:name_139 = new name_139(); + + private static const vector:Vector. = new Vector.(16,false); + + public var offset:Vector3D = new Vector3D(); + + public var var_235:name_78; + + private var context:Context3D; + + private var shadowMap:Texture; + + private var var_236:Number; + + private var light:DirectionalLight; + + alternativa3d var var_238:Matrix3D = new Matrix3D(); + + private var debugObject:name_380; + + public var var_237:class_5 = new class_5(); + + private var var_239:name_129 = new name_167("null"); + + private var var_164:Number = 0; + + private var pcfOffsets:Vector.; + + private var var_168:Boolean = false; + + private var var_169:Matrix3D = new Matrix3D(); + + private var uvMatrix:Matrix3D = new Matrix3D(); + + private var center:Vector3D = new Vector3D(); + + private var rawData:Vector. = new Vector.(16); + + public function name_208(context:Context3D, size:int, worldSize:Number, pcfSize:Number = 0) + { + super(); + this.context = context; + this.var_236 = worldSize; + this.var_164 = pcfSize / worldSize / 255; + if(this.var_164 > 0) + { + this.pcfOffsets = Vector.([-this.var_164,-this.var_164,0,1 / 4,-this.var_164,this.var_164,0,1,this.var_164,-this.var_164,0,1,this.var_164,this.var_164,0,1]); + } + this.shadowMap = context.createTexture(size,size,Context3DTextureFormat.BGRA,true); + this.var_239.alternativa3d::_texture = this.shadowMap; + this.var_237.diffuseMap = this.var_239; + this.var_237.alpha = 0.9; + this.var_237.var_21 = true; + this.debugObject = new name_279(worldSize,worldSize,1,1,1,1,false,this.var_237); + this.debugObject.geometry.upload(context); + } + + alternativa3d static function name_427(matrix:Matrix3D, transform:name_139) : void + { + transformToMatrixRawData[0] = transform.a; + transformToMatrixRawData[1] = transform.e; + transformToMatrixRawData[2] = transform.i; + transformToMatrixRawData[3] = 0; + transformToMatrixRawData[4] = transform.b; + transformToMatrixRawData[5] = transform.f; + transformToMatrixRawData[6] = transform.j; + transformToMatrixRawData[7] = 0; + transformToMatrixRawData[8] = transform.c; + transformToMatrixRawData[9] = transform.g; + transformToMatrixRawData[10] = transform.k; + transformToMatrixRawData[11] = 0; + transformToMatrixRawData[12] = transform.d; + transformToMatrixRawData[13] = transform.h; + transformToMatrixRawData[14] = transform.l; + transformToMatrixRawData[15] = 1; + matrix.copyRawDataFrom(transformToMatrixRawData); + } + + alternativa3d static function name_428(context:Context3D, object:name_78, light:DirectionalLight, projection:Matrix3D) : void + { + if(object is name_380) + { + method_369(context,name_380(object),projection); + } + for(var child:name_78 = object.alternativa3d::childrenList; child != null; ) + { + if(child.visible && child.useShadow) + { + if(child.alternativa3d::transformChanged) + { + child.alternativa3d::composeTransforms(); + } + child.alternativa3d::localToCameraTransform.combine(object.alternativa3d::localToCameraTransform,child.alternativa3d::transform); + alternativa3d::name_428(context,child,light,projection); + } + child = child.alternativa3d::next; + } + } + + private static function method_369(context:Context3D, mesh:name_380, projection:Matrix3D) : void + { + var surface:name_117 = null; + if(mesh.geometry == null || mesh.geometry.numTriangles == 0 || !mesh.geometry.isUploaded) + { + return; + } + alternativa3d::name_427(drawProjection,mesh.alternativa3d::localToCameraTransform); + drawProjection.append(projection); + if(directionalShadowMapProgram == null) + { + directionalShadowMapProgram = method_370(context); + } + context.setProgram(directionalShadowMapProgram); + context.setVertexBufferAt(0,mesh.geometry.alternativa3d::getVertexBuffer(name_126.POSITION),mesh.geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + context.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX,0,drawProjection,true); + context.setProgramConstantsFromVector(Context3DProgramType.VERTEX,4,Vector.([255,0,0,1])); + context.setProgramConstantsFromVector(Context3DProgramType.FRAGMENT,0,Vector.([1 / 255,0,0,1])); + context.setCulling(Context3DTriangleFace.BACK); + for(var i:int = 0; i < mesh.alternativa3d::var_93; i++) + { + surface = mesh.alternativa3d::var_92[i]; + if(!(surface.material == null || !surface.material.alternativa3d::canDrawInShadowMap)) + { + context.drawTriangles(mesh.geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles); + } + } + context.setVertexBufferAt(0,null); + } + + private static function method_370(context3d:Context3D) : Program3D + { + var vLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var fLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + var proc:name_114 = name_114.name_140(["#a0=a0","#c4=c4","#v0=v0","m44 t0, a0, c0","mul v0, t0, c4.x","mov o0, t0"]); + proc.name_122(name_115.CONSTANT,0,"c0",4); + vLinker.name_123(proc); + fLinker.name_123(name_114.name_140(["#v0=v0","#c0=c0","mov t0.xy, v0.zz","frc t0.y, v0.z","sub t0.x, v0.z, t0.y","mul t0.x, t0.x, c0.x","mov t0.z, c0.z","mov t0.w, c0.w","mov o0, t0"])); + var program:Program3D = context3d.createProgram(); + program.upload(vLinker.name_206(),fLinker.name_206()); + return program; + } + + private static function method_264(index:int) : name_114 + { + var shader:name_114 = name_114.name_140(["m44 v0, a0, c0"]); + shader.name_122(name_115.ATTRIBUTE,0,"aPosition"); + shader.name_122(name_115.CONSTANT,0,index + "cTOSHADOW",4); + shader.name_122(name_115.VARYING,0,index + "vSHADOWSAMPLE"); + return shader; + } + + private static function method_263(mult:Boolean, usePCF:Boolean, index:int, grayScale:Boolean = false) : name_114 + { + var i:int = 0; + var line:int = 0; + var shaderArr:Array = []; + var numPass:uint = usePCF ? 4 : 1; + for(i = 0; i < numPass; i++) + { + var _loc10_:* = line++; + shaderArr[_loc10_] = "mov t0.w, v0.z"; + var _loc11_:* = line++; + shaderArr[_loc11_] = "mul t0.w, t0.w, c4.y"; + if(usePCF) + { + var _loc12_:* = line++; + shaderArr[_loc12_] = "mul t1, c" + (i + 6).toString() + ", t0.w"; + var _loc13_:* = line++; + shaderArr[_loc13_] = "add t1, v0, t1"; + var _loc14_:* = line++; + shaderArr[_loc14_] = "tex t1, t1, s0 <2d,clamp,near,nomip>"; + } + else + { + _loc12_ = line++; + shaderArr[_loc12_] = "tex t1, v0, s0 <2d,clamp,near,nomip>"; + } + _loc12_ = line++; + shaderArr[_loc12_] = "mul t1.w, t1.x, c4.x"; + _loc13_ = line++; + shaderArr[_loc13_] = "add t1.w, t1.w, t1.y"; + _loc14_ = line++; + shaderArr[_loc14_] = "sub t2.z, t1.w, t0.w"; + var _loc15_:* = line++; + shaderArr[_loc15_] = "mul t2.z, t2.z, c4.z"; + var _loc16_:* = line++; + shaderArr[_loc16_] = "sat t2.z, t2.z"; + if(grayScale) + { + var _loc17_:* = line++; + shaderArr[_loc17_] = "add t2, t2.zzzz, t1.zzzz"; + } + else + { + _loc17_ = line++; + shaderArr[_loc17_] = "add t2.z, t2.z, t1.z"; + var _loc18_:* = line++; + shaderArr[_loc18_] = "add t2, t2.zzzz, c5"; + } + _loc17_ = line++; + shaderArr[_loc17_] = "sat t2, t2"; + if(usePCF) + { + if(i == 0) + { + _loc18_ = line++; + shaderArr[_loc18_] = "mov t3, t2"; + } + else + { + _loc18_ = line++; + shaderArr[_loc18_] = "add t3, t3, t2"; + } + } + } + if(usePCF) + { + _loc10_ = line++; + shaderArr[_loc10_] = "mul t2, t3, c6.w"; + } + if(grayScale) + { + _loc10_ = line++; + shaderArr[_loc10_] = "mov o0.w, t2.x"; + } + else if(mult) + { + _loc10_ = line++; + shaderArr[_loc10_] = "mul t0.xyz, i0.xyz, t2.xyz"; + _loc11_ = line++; + shaderArr[_loc11_] = "mov t0.w, i0.w"; + _loc12_ = line++; + shaderArr[_loc12_] = "mov o0, t0"; + } + else + { + _loc10_ = line++; + shaderArr[_loc10_] = "mov o0, t2"; + } + var shader:name_114 = name_114.name_140(shaderArr,"DirectionalShadowMap"); + shader.name_122(name_115.VARYING,0,index + "vSHADOWSAMPLE"); + shader.name_122(name_115.CONSTANT,4,index + "cConstants",1); + shader.name_122(name_115.CONSTANT,5,index + "cShadowColor",1); + if(usePCF) + { + for(i = 0; i < numPass; i++) + { + shader.name_122(name_115.CONSTANT,i + 6,"cDPCF" + i.toString(),1); + } + } + shader.name_122(name_115.SAMPLER,0,index + "sSHADOWMAP"); + return shader; + } + + public function get worldSize() : Number + { + return this.var_236; + } + + public function set worldSize(value:Number) : void + { + this.var_236 = value; + var newDebug:name_380 = new name_279(this.var_236,this.var_236,1,1,1,1,false,this.var_237); + newDebug.geometry.upload(this.context); + if(this.debugObject.alternativa3d::_parent != null) + { + this.debugObject.alternativa3d::_parent.addChild(newDebug); + this.debugObject.alternativa3d::_parent.removeChild(this.debugObject); + } + this.debugObject = newDebug; + } + + public function method_371(value:DirectionalLight) : void + { + this.light = value; + if(this.var_168) + { + this.light.addChild(this.debugObject); + } + } + + override public function get debug() : Boolean + { + return this.var_168; + } + + override public function set debug(value:Boolean) : void + { + this.var_168 = value; + if(this.var_168) + { + if(this.light != null) + { + this.light.addChild(this.debugObject); + } + } + else if(this.debugObject.alternativa3d::_parent != null) + { + this.debugObject.alternativa3d::_parent.removeChild(this.debugObject); + } + } + + override alternativa3d function cullReciever(boundBox:name_386, object:name_78) : Boolean + { + alternativa3d::name_427(matrix,object.alternativa3d::localToGlobalTransform); + matrix.append(this.alternativa3d::var_238); + return alternativa3d::method_222(boundBox,matrix); + } + + override public function update() : void + { + var root:name_78 = null; + active = true; + this.var_235.alternativa3d::localToCameraTransform.compose(this.var_235.alternativa3d::_x,this.var_235.alternativa3d::_y,this.var_235.alternativa3d::_z,this.var_235.alternativa3d::_rotationX,this.var_235.alternativa3d::_rotationY,this.var_235.alternativa3d::_rotationZ,this.var_235.alternativa3d::_scaleX,this.var_235.alternativa3d::_scaleY,this.var_235.alternativa3d::_scaleZ); + for(root = this.var_235; root.alternativa3d::_parent != null; ) + { + root = root.alternativa3d::_parent; + root.alternativa3d::localToGlobalTransform.compose(root.alternativa3d::_x,root.alternativa3d::_y,root.alternativa3d::_z,root.alternativa3d::_rotationX,root.alternativa3d::_rotationY,root.alternativa3d::_rotationZ,root.alternativa3d::_scaleX,root.alternativa3d::_scaleY,root.alternativa3d::_scaleZ); + this.var_235.alternativa3d::localToCameraTransform.append(root.alternativa3d::localToGlobalTransform); + } + this.light.alternativa3d::localToGlobalTransform.compose(this.light.alternativa3d::_x,this.light.alternativa3d::_y,this.light.alternativa3d::_z,this.light.alternativa3d::_rotationX,this.light.alternativa3d::_rotationY,this.light.alternativa3d::_rotationZ,this.light.alternativa3d::_scaleX,this.light.alternativa3d::_scaleY,this.light.alternativa3d::_scaleZ); + for(root = this.light; root.alternativa3d::_parent != null; ) + { + root = root.alternativa3d::_parent; + root.alternativa3d::localToGlobalTransform.compose(root.alternativa3d::_x,root.alternativa3d::_y,root.alternativa3d::_z,root.alternativa3d::_rotationX,root.alternativa3d::_rotationY,root.alternativa3d::_rotationZ,root.alternativa3d::_scaleX,root.alternativa3d::_scaleY,root.alternativa3d::_scaleZ); + this.light.alternativa3d::localToGlobalTransform.append(root.alternativa3d::localToGlobalTransform); + } + this.light.alternativa3d::globalToLocalTransform.copy(this.light.alternativa3d::localToGlobalTransform); + this.light.alternativa3d::globalToLocalTransform.invert(); + this.var_235.alternativa3d::localToCameraTransform.append(this.light.alternativa3d::globalToLocalTransform); + var t:name_139 = this.var_235.alternativa3d::localToCameraTransform; + this.center.x = t.a * this.offset.x + t.b * this.offset.y + t.c * this.offset.z + t.d; + this.center.y = t.e * this.offset.x + t.f * this.offset.y + t.g * this.offset.z + t.h; + this.center.z = t.i * this.offset.x + t.j * this.offset.y + t.k * this.offset.z + t.l; + this.method_265(this.var_169,this.uvMatrix,this.center,this.var_236,this.var_236,this.var_236); + alternativa3d::name_427(this.alternativa3d::var_238,this.light.alternativa3d::globalToLocalTransform); + this.alternativa3d::var_238.append(this.uvMatrix); + this.debugObject.x = this.center.x; + this.debugObject.y = this.center.y; + this.debugObject.z = this.center.z - this.var_236 / 2; + this.var_237.diffuseMap = null; + this.context.setRenderToTexture(this.shadowMap,true,0,0); + this.context.clear(1,1,1,1); + method_221(this.context); + alternativa3d::name_428(this.context,this.var_235,this.light,this.var_169); + this.context.setRenderToBackBuffer(); + method_221(this.context); + this.var_237.diffuseMap = this.var_239; + } + + private function method_265(matrix:Matrix3D, uvMatrix:Matrix3D, offset:Vector3D, width:Number, height:Number, length:Number) : void + { + var halfW:Number = width / 2; + var halfH:Number = height / 2; + var halfL:Number = length / 2; + var frustumMinX:Number = offset.x - halfW; + var frustumMaxX:Number = offset.x + halfW; + var frustumMinY:Number = offset.y - halfH; + var frustumMaxY:Number = offset.y + halfH; + var frustumMinZ:Number = offset.z - halfL; + var frustumMaxZ:Number = offset.z + halfL; + this.rawData[0] = 2 / (frustumMaxX - frustumMinX); + this.rawData[5] = 2 / (frustumMaxY - frustumMinY); + this.rawData[10] = 1 / (frustumMaxZ - frustumMinZ); + this.rawData[12] = -0.5 * (frustumMaxX + frustumMinX) * this.rawData[0]; + this.rawData[13] = -0.5 * (frustumMaxY + frustumMinY) * this.rawData[5]; + this.rawData[14] = -frustumMinZ / (frustumMaxZ - frustumMinZ); + this.rawData[15] = 1; + matrix.rawData = this.rawData; + this.rawData[0] = 1 / (frustumMaxX - frustumMinX); + this.rawData[5] = -1 / (frustumMaxY - frustumMinY); + this.rawData[12] = 0.5 - 0.5 * (frustumMaxX + frustumMinX) * this.rawData[0]; + this.rawData[13] = 0.5 - 0.5 * (frustumMaxY + frustumMinY) * this.rawData[5]; + uvMatrix.rawData = this.rawData; + } + + override public function getVShader(index:int = 0) : name_114 + { + return method_264(index); + } + + override public function getFShader(index:int = 0) : name_114 + { + return method_263(false,this.var_164 > 0,index); + } + + override public function getFIntensityShader() : name_114 + { + return method_263(false,this.var_164 > 0,0,true); + } + + override public function applyShader(drawUnit:name_135, program:name_127, object:name_78, camera:name_124, index:int = 0) : void + { + localToGlobal.combine(camera.alternativa3d::localToGlobalTransform,object.alternativa3d::localToCameraTransform); + alternativa3d::name_427(objectToShadowMap,localToGlobal); + objectToShadowMap.append(this.alternativa3d::var_238); + objectToShadowMap.copyRawDataTo(vector,0,true); + drawUnit.alternativa3d::name_426(program.vertexShader.getVariableIndex(index + "cTOSHADOW"),vector,4); + drawUnit.alternativa3d::name_205(program.fragmentShader.getVariableIndex(index + "cConstants"),constants,1); + if(program.fragmentShader.method_286(index + "cShadowColor")) + { + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex(index + "cShadowColor"),camera.alternativa3d::ambient[0] / 2,camera.alternativa3d::ambient[1] / 2,camera.alternativa3d::ambient[2] / 2,1); + } + if(this.var_164 > 0) + { + drawUnit.alternativa3d::name_205(program.fragmentShader.getVariableIndex("cDPCF0"),this.pcfOffsets,this.pcfOffsets.length / 4); + } + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex(index + "sSHADOWMAP"),this.shadowMap); + } + } +} + diff --git a/src/package_23/name_92.as b/src/package_23/name_92.as new file mode 100644 index 0000000..21a243b --- /dev/null +++ b/src/package_23/name_92.as @@ -0,0 +1,126 @@ +package package_23 +{ + import alternativa.engine3d.alternativa3d; + import flash.utils.Dictionary; + import package_21.name_78; + + use namespace alternativa3d; + + public class name_92 + { + private static const MAX_SHADOWMAPS:int = 3; + + public var renderers:Vector. = new Vector.(); + + private var var_12:Dictionary = new Dictionary(); + + private var var_159:int; + + private var var_158:int; + + private var var_160:Vector. = new Vector.(); + + private var var_161:int; + + public function name_92() + { + super(); + } + + public function update(root:name_78) : void + { + var renderer:name_103 = null; + if(this.renderers.length == 0) + { + return; + } + this.var_158 = 0; + var num:int = int(this.renderers.length); + for(var i:int = 0; i < num; ) + { + renderer = this.renderers[i]; + renderer.update(); + if(renderer.active) + { + this.var_160[this.var_158] = renderer; + ++this.var_158; + } + i++; + } + if(root.alternativa3d::transformChanged) + { + root.alternativa3d::composeTransforms(); + } + root.alternativa3d::localToGlobalTransform.copy(root.alternativa3d::transform); + this.var_159 = 0; + this.var_161 = 0; + this.method_259(root); + } + + private function method_259(object:name_78) : void + { + var value:Vector. = null; + var numRenderers:int = 0; + var i:int = 0; + var renderer:name_103 = null; + for(var child:name_78 = object.alternativa3d::childrenList; child != null; child = child.alternativa3d::next) + { + value = null; + numRenderers = 0; + if(child.visible) + { + if(child.alternativa3d::transformChanged) + { + child.alternativa3d::composeTransforms(); + } + child.alternativa3d::localToGlobalTransform.combine(object.alternativa3d::localToGlobalTransform,child.alternativa3d::transform); + for(i = 0; i < this.var_158; ) + { + renderer = this.var_160[i]; + if(child.useShadow) + { + if(child.boundBox == null || Boolean(renderer.alternativa3d::cullReciever(child.boundBox,child))) + { + ++this.var_159; + if(value == null) + { + value = this.var_12[child]; + if(value == null) + { + value = new Vector.(); + this.var_12[child] = value; + } + else + { + value.length = 0; + } + } + value[numRenderers] = renderer; + numRenderers++; + } + } + i++; + } + this.method_259(child); + } + this.method_260(child,value,numRenderers); + } + } + + private function method_260(object:name_78, renderers:Vector., numShadowRenderers:int) : void + { + if(numShadowRenderers > this.var_161) + { + this.var_161 = numShadowRenderers; + } + if(numShadowRenderers > MAX_SHADOWMAPS) + { + numShadowRenderers = MAX_SHADOWMAPS; + renderers.length = MAX_SHADOWMAPS; + } + object.alternativa3d::shadowRenderers = renderers; + object.alternativa3d::numShadowRenderers = numShadowRenderers; + } + } +} + diff --git a/src/package_23/name_97.as b/src/package_23/name_97.as new file mode 100644 index 0000000..c696744 --- /dev/null +++ b/src/package_23/name_97.as @@ -0,0 +1,499 @@ +package package_23 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3D; + import flash.display3D.Context3DTextureFormat; + import flash.display3D.textures.Texture; + import flash.geom.Matrix3D; + import flash.geom.Vector3D; + import flash.utils.Dictionary; + import package_19.name_380; + import package_21.name_124; + import package_21.name_135; + import package_21.name_139; + import package_21.name_386; + import package_21.name_78; + import package_24.DirectionalLight; + import package_28.name_129; + import package_28.name_167; + import package_30.name_114; + import package_30.name_115; + import package_4.class_5; + import package_4.name_127; + import package_96.name_279; + + use namespace alternativa3d; + + public class name_97 extends name_103 + { + private static var pcfOffsets:Vector.; + + private static const constants:Vector. = Vector.([255,255,1000,1]); + + private static const points:Vector. = Vector.([new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D()]); + + private static const objectToShadowMap:name_139 = new name_139(); + + private static const objectToUVMap:Matrix3D = new Matrix3D(); + + public var context:Context3D; + + private const alpha:Number = 0.7; + + private var bounds:name_386 = new name_386(); + + private var partSize:Number; + + private var var_162:Vector.> = new Vector.>(); + + private var var_165:Vector.> = new Vector.>(); + + private var light:DirectionalLight; + + private var var_167:name_139 = new name_139(); + + private var var_168:Boolean = false; + + private var var_163:name_78; + + private var var_166:Dictionary = new Dictionary(); + + private var var_164:Number = 0; + + private var var_169:Matrix3D = new Matrix3D(); + + private var rawData:Vector. = new Vector.(16); + + public function name_97(context:Context3D, partSize:int, pcfSize:Number = 0) + { + super(); + this.context = context; + this.partSize = partSize; + this.var_164 = pcfSize; + constants[3] = 1 - this.alpha; + } + + alternativa3d static function calculateBoundBox(boundBox:name_386, object:name_78, hierarchy:Boolean = true) : void + { + var point:Vector3D = null; + var bb:name_386 = null; + var transform:name_139 = null; + var i:int = 0; + var x:Number = NaN; + var y:Number = NaN; + var z:Number = NaN; + var child:name_78 = null; + if(object.boundBox != null) + { + bb = object.boundBox; + point = points[0]; + point.x = bb.minX; + point.y = bb.minY; + point.z = bb.minZ; + point = points[1]; + point.x = bb.minX; + point.y = bb.minY; + point.z = bb.maxZ; + point = points[2]; + point.x = bb.minX; + point.y = bb.maxY; + point.z = bb.minZ; + point = points[3]; + point.x = bb.minX; + point.y = bb.maxY; + point.z = bb.maxZ; + point = points[4]; + point.x = bb.maxX; + point.y = bb.minY; + point.z = bb.minZ; + point = points[5]; + point.x = bb.maxX; + point.y = bb.minY; + point.z = bb.maxZ; + point = points[6]; + point.x = bb.maxX; + point.y = bb.maxY; + point.z = bb.minZ; + point = points[7]; + point.x = bb.maxX; + point.y = bb.maxY; + point.z = bb.maxZ; + transform = object.alternativa3d::localToCameraTransform; + for(i = 0; i < 8; ) + { + point = points[i]; + x = transform.a * point.x + transform.b * point.y + transform.c * point.z + transform.d; + y = transform.e * point.x + transform.f * point.y + transform.g * point.z + transform.h; + z = transform.i * point.x + transform.j * point.y + transform.k * point.z + transform.l; + if(x < boundBox.minX) + { + boundBox.minX = x; + } + if(x > boundBox.maxX) + { + boundBox.maxX = x; + } + if(y < boundBox.minY) + { + boundBox.minY = y; + } + if(y > boundBox.maxY) + { + boundBox.maxY = y; + } + if(z < boundBox.minZ) + { + boundBox.minZ = z; + } + if(z > boundBox.maxZ) + { + boundBox.maxZ = z; + } + i++; + } + } + if(hierarchy) + { + for(child = object.alternativa3d::childrenList; child != null; ) + { + if(child.visible) + { + if(child.alternativa3d::transformChanged) + { + child.alternativa3d::composeTransforms(); + } + child.alternativa3d::localToCameraTransform.combine(object.alternativa3d::localToCameraTransform,child.alternativa3d::transform); + alternativa3d::calculateBoundBox(boundBox,child); + } + child = child.alternativa3d::next; + } + } + } + + private static function method_264(index:int) : name_114 + { + var shader:name_114 = name_114.name_140(["m44 v0, a0, c4"]); + shader.name_122(name_115.ATTRIBUTE,0,"aPosition"); + shader.name_122(name_115.CONSTANT,0,"cPROJ",4); + shader.name_122(name_115.CONSTANT,4,"cTOSHADOW",4); + shader.name_122(name_115.VARYING,0,"vSHADOWSAMPLE"); + return shader; + } + + private static function method_263(mult:Boolean, usePCF:Boolean, index:int, grayScale:Boolean = false) : name_114 + { + var i:int = 0; + var line:int = 0; + var shaderArr:Array = []; + var numPass:uint = usePCF ? 4 : 1; + for(i = 0; i < numPass; i++) + { + var _loc10_:* = line++; + shaderArr[_loc10_] = "mov t0.w, v0.z"; + var _loc11_:* = line++; + shaderArr[_loc11_] = "mul t0.w, t0.w, c4.y"; + if(usePCF) + { + var _loc12_:* = line++; + shaderArr[_loc12_] = "add t1, v0, c" + (i + 5).toString() + ""; + var _loc13_:* = line++; + shaderArr[_loc13_] = "tex t1, t1, s0 <2d,clamp,near,nomip>"; + } + else + { + _loc12_ = line++; + shaderArr[_loc12_] = "tex t1, v0, s0 <2d,clamp,near,nomip>"; + } + _loc12_ = line++; + shaderArr[_loc12_] = "mul t1.w, t1.x, c4.x"; + _loc13_ = line++; + shaderArr[_loc13_] = "add t1.w, t1.w, t1.y"; + var _loc14_:* = line++; + shaderArr[_loc14_] = "sub t2.z, t1.w, t0.w"; + var _loc15_:* = line++; + shaderArr[_loc15_] = "mul t2.z, t2.z, c4.z"; + var _loc16_:* = line++; + shaderArr[_loc16_] = "sat t2.z, t2.z"; + var _loc17_:* = line++; + shaderArr[_loc17_] = "sat t2.z, t2.z"; + if(usePCF) + { + if(i == 0) + { + var _loc18_:* = line++; + shaderArr[_loc18_] = "mov t2.x, t2.z"; + } + else + { + _loc18_ = line++; + shaderArr[_loc18_] = "add t2.x, t2.x, t2.z"; + } + } + } + if(usePCF) + { + _loc10_ = line++; + shaderArr[_loc10_] = "mul t2.z, t2.x, c5.w"; + } + if(grayScale) + { + shaderArr.push("mov o0.w, t2.z"); + } + else if(mult) + { + shaderArr.push("mul t0.xyz, i0.xyz, t2.z"); + shaderArr.push("mov t0.w, i0.w"); + shaderArr.push("mov o0, t0"); + } + else + { + shaderArr.push("mov t0, t2.z"); + shaderArr.push("mov o0, t0"); + } + var shader:name_114 = name_114.name_140(shaderArr,"StaticShadowMap"); + shader.name_122(name_115.VARYING,0,"vSHADOWSAMPLE"); + shader.name_122(name_115.CONSTANT,4,"cConstants",1); + if(usePCF) + { + for(i = 0; i < numPass; i++) + { + shader.name_122(name_115.CONSTANT,i + 5,"cPCF" + i.toString(),1); + } + } + shader.name_122(name_115.SAMPLER,0,"sSHADOWMAP"); + return shader; + } + + public function method_267(object:name_78) : void + { + this.var_166[object] = true; + } + + public function method_266(object:name_78) : void + { + delete this.var_166[object]; + } + + public function dispose() : void + { + var textures:Vector. = null; + var texture:Texture = null; + for each(textures in this.var_162) + { + for each(texture in textures) + { + texture.dispose(); + } + } + this.var_162.length = 0; + this.var_165.length = 0; + } + + override alternativa3d function cullReciever(boundBox:name_386, object:name_78) : Boolean + { + return this.var_166[object]; + } + + public function name_401(object:name_78, light:DirectionalLight, widthPartsCount:int = 1, heightPartsCount:int = 1, overlap:Number = 0) : void + { + var root:name_78 = null; + var maps:Vector. = null; + var matrices:Vector. = null; + var yIndex:int = 0; + var leftX:Number = NaN; + var leftY:Number = NaN; + var width:Number = NaN; + var height:Number = NaN; + var uvMatrix:Matrix3D = null; + var shadowMap:Texture = null; + var texture:name_129 = null; + var material:class_5 = null; + var debugObject:name_380 = null; + var offset:Number = NaN; + this.light = light; + object.alternativa3d::localToCameraTransform.compose(object.alternativa3d::_x,object.alternativa3d::_y,object.alternativa3d::_z,object.alternativa3d::_rotationX,object.alternativa3d::_rotationY,object.alternativa3d::_rotationZ,object.alternativa3d::_scaleX,object.alternativa3d::_scaleY,object.alternativa3d::_scaleZ); + for(root = object; root.alternativa3d::_parent != null; ) + { + root = root.alternativa3d::_parent; + root.alternativa3d::localToGlobalTransform.compose(root.alternativa3d::_x,root.alternativa3d::_y,root.alternativa3d::_z,root.alternativa3d::_rotationX,root.alternativa3d::_rotationY,root.alternativa3d::_rotationZ,root.alternativa3d::_scaleX,root.alternativa3d::_scaleY,root.alternativa3d::_scaleZ); + object.alternativa3d::localToCameraTransform.append(root.alternativa3d::localToGlobalTransform); + } + light.alternativa3d::localToGlobalTransform.compose(light.alternativa3d::_x,light.alternativa3d::_y,light.alternativa3d::_z,light.alternativa3d::_rotationX,light.alternativa3d::_rotationY,light.alternativa3d::_rotationZ,light.alternativa3d::_scaleX,light.alternativa3d::_scaleY,light.alternativa3d::_scaleZ); + for(root = light; root.alternativa3d::_parent != null; ) + { + root = root.alternativa3d::_parent; + root.alternativa3d::localToGlobalTransform.compose(root.alternativa3d::_x,root.alternativa3d::_y,root.alternativa3d::_z,root.alternativa3d::_rotationX,root.alternativa3d::_rotationY,root.alternativa3d::_rotationZ,root.alternativa3d::_scaleX,root.alternativa3d::_scaleY,root.alternativa3d::_scaleZ); + light.alternativa3d::localToGlobalTransform.append(root.alternativa3d::localToGlobalTransform); + } + light.alternativa3d::globalToLocalTransform.copy(light.alternativa3d::localToGlobalTransform); + light.alternativa3d::globalToLocalTransform.invert(); + this.var_167.copy(light.alternativa3d::globalToLocalTransform); + object.alternativa3d::localToCameraTransform.append(light.alternativa3d::globalToLocalTransform); + this.bounds.reset(); + alternativa3d::calculateBoundBox(this.bounds,object); + var frustumMinX:Number = this.bounds.minX; + var frustumMaxX:Number = this.bounds.maxX; + var frustumMinY:Number = this.bounds.minY; + var frustumMaxY:Number = this.bounds.maxY; + var frustumMinZ:Number = this.bounds.minZ; + var frustumMaxZ:Number = this.bounds.maxZ; + var halfOverlap:Number = overlap * 0.5; + var partWorldWidth:Number = (frustumMaxX - frustumMinX) / widthPartsCount; + var partWorldHeight:Number = (frustumMaxY - frustumMinY) / heightPartsCount; + this.var_163 = new name_78(); + if(this.var_168) + { + light.addChild(this.var_163); + } + for(var xIndex:int = 0; xIndex < widthPartsCount; ) + { + maps = new Vector.(); + matrices = new Vector.(); + for(yIndex = 0; yIndex < heightPartsCount; yIndex++) + { + leftX = frustumMinX + xIndex * partWorldWidth; + leftY = frustumMinY + yIndex * partWorldHeight; + if(xIndex == 0) + { + width = partWorldWidth + halfOverlap; + } + else if(xIndex == widthPartsCount - 1) + { + leftX -= halfOverlap; + width = partWorldWidth + halfOverlap; + } + else + { + leftX -= halfOverlap; + width = partWorldWidth + overlap; + } + if(yIndex == 0) + { + height = partWorldHeight + halfOverlap; + } + else if(yIndex == heightPartsCount - 1) + { + leftY -= halfOverlap; + height = partWorldHeight + halfOverlap; + } + else + { + leftY -= halfOverlap; + height = partWorldHeight + overlap; + } + uvMatrix = new Matrix3D(); + this.method_265(this.var_169,uvMatrix,leftX,leftY,frustumMinZ,leftX + width,leftY + height,frustumMaxZ); + shadowMap = this.context.createTexture(this.partSize,this.partSize,Context3DTextureFormat.BGRA,true); + this.context.setRenderToTexture(shadowMap,true,0,0); + this.context.clear(1,1,1,0.5); + method_221(this.context); + name_208.alternativa3d::name_428(this.context,object,light,this.var_169); + method_221(this.context); + maps.push(shadowMap); + matrices.push(uvMatrix); + texture = new name_167(null); + texture.alternativa3d::_texture = shadowMap; + material = new class_5(texture); + material.var_21 = true; + debugObject = new name_279(width,height,1,1,1,1,false,material); + debugObject.geometry.upload(this.context); + debugObject.x = leftX + width / 2; + debugObject.y = leftY + height / 2; + debugObject.z = frustumMinZ; + this.var_163.addChild(debugObject); + } + this.var_162.push(maps); + this.var_165.push(matrices); + xIndex++; + } + this.context.setRenderToBackBuffer(); + if(this.var_164 > 0) + { + offset = this.var_164 / partWorldWidth; + pcfOffsets = Vector.([-offset,-offset,0,1 / 4,-offset,offset,0,1,offset,-offset,0,1,offset,offset,0,1]); + } + } + + private function method_265(matrix:Matrix3D, uvMatrix:Matrix3D, frustumMinX:Number, frustumMinY:Number, frustumMinZ:Number, frustumMaxX:Number, frustumMaxY:Number, frustumMaxZ:Number) : void + { + this.rawData[0] = 2 / (frustumMaxX - frustumMinX); + this.rawData[5] = 2 / (frustumMaxY - frustumMinY); + this.rawData[10] = 1 / (frustumMaxZ - frustumMinZ); + this.rawData[12] = -0.5 * (frustumMaxX + frustumMinX) * this.rawData[0]; + this.rawData[13] = -0.5 * (frustumMaxY + frustumMinY) * this.rawData[5]; + this.rawData[14] = -frustumMinZ / (frustumMaxZ - frustumMinZ); + this.rawData[15] = 1; + matrix.rawData = this.rawData; + this.rawData[0] = 1 / (frustumMaxX - frustumMinX); + this.rawData[5] = -1 / (frustumMaxY - frustumMinY); + this.rawData[12] = 0.5 - 0.5 * (frustumMaxX + frustumMinX) * this.rawData[0]; + this.rawData[13] = 0.5 - 0.5 * (frustumMaxY + frustumMinY) * this.rawData[5]; + uvMatrix.rawData = this.rawData; + } + + override public function get debug() : Boolean + { + return this.var_168; + } + + override public function set debug(value:Boolean) : void + { + this.var_168 = value; + if(this.var_163 != null) + { + if(value) + { + if(this.light != null) + { + this.light.addChild(this.var_163); + } + } + else if(this.var_163.alternativa3d::_parent != null) + { + this.var_163.alternativa3d::removeFromParent(); + } + } + } + + override public function getVShader(index:int = 0) : name_114 + { + return method_264(index); + } + + override public function getFShader(index:int = 0) : name_114 + { + return method_263(false,this.var_164 > 0,index); + } + + override public function getFIntensityShader() : name_114 + { + return method_263(false,this.var_164 > 0,0,true); + } + + override public function applyShader(drawUnit:name_135, program:name_127, object:name_78, camera:name_124, index:int = 0) : void + { + objectToShadowMap.combine(camera.alternativa3d::localToGlobalTransform,object.alternativa3d::localToCameraTransform); + objectToShadowMap.append(this.var_167); + var coords:Vector3D = new Vector3D(objectToShadowMap.d,objectToShadowMap.h,objectToShadowMap.l); + var xIndex:int = (coords.x - this.bounds.minX) / (this.bounds.maxX - this.bounds.minX) * this.var_162.length; + xIndex = xIndex < 0 ? 0 : (xIndex >= this.var_162.length ? int(this.var_162.length - 1) : xIndex); + var maps:Vector. = this.var_162[xIndex]; + var matrices:Vector. = this.var_165[xIndex]; + var yIndex:int = (coords.y - this.bounds.minY) / (this.bounds.maxY - this.bounds.minY) * maps.length; + yIndex = yIndex < 0 ? 0 : (yIndex >= maps.length ? int(maps.length - 1) : yIndex); + var shadowMap:Texture = maps[yIndex]; + var uvMatrix:Matrix3D = matrices[yIndex]; + name_208.alternativa3d::name_427(objectToUVMap,objectToShadowMap); + objectToUVMap.append(uvMatrix); + objectToUVMap.transpose(); + drawUnit.alternativa3d::name_426(program.vertexShader.getVariableIndex("cTOSHADOW"),objectToUVMap.rawData,4); + drawUnit.alternativa3d::name_205(program.fragmentShader.getVariableIndex("cConstants"),constants,1); + if(this.var_164 > 0) + { + drawUnit.alternativa3d::name_205(program.fragmentShader.getVariableIndex("cPCF0"),pcfOffsets,pcfOffsets.length >> 2); + } + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sSHADOWMAP"),shadowMap); + } + } +} + diff --git a/src/package_24/DirectionalLight.as b/src/package_24/DirectionalLight.as new file mode 100644 index 0000000..c18cfe6 --- /dev/null +++ b/src/package_24/DirectionalLight.as @@ -0,0 +1,53 @@ +package package_24 +{ + import alternativa.engine3d.alternativa3d; + import package_21.name_116; + import package_21.name_124; + import package_21.name_397; + import package_21.name_78; + import package_23.name_103; + + use namespace alternativa3d; + + public class DirectionalLight extends name_116 + { + public var shadow:name_103; + + public function DirectionalLight(color:uint) + { + super(); + this.color = color; + } + + public function lookAt(x:Number, y:Number, z:Number) : void + { + var dx:Number = x - this.x; + var dy:Number = y - this.y; + var dz:Number = z - this.z; + rotationX = Math.atan2(dz,Math.sqrt(dx * dx + dy * dy)) - Math.PI / 2; + rotationY = 0; + rotationZ = -Math.atan2(dx,dy); + } + + override alternativa3d function collectDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + var debug:int = 0; + if(camera.debug) + { + debug = int(camera.alternativa3d::checkInDebug(this)); + if(Boolean(debug & name_397.BOUNDS) && boundBox != null) + { + name_397.alternativa3d::name_399(camera,boundBox,alternativa3d::localToCameraTransform); + } + } + } + + override public function clone() : name_78 + { + var res:DirectionalLight = new DirectionalLight(color); + res.clonePropertiesFrom(this); + return res; + } + } +} + diff --git a/src/package_24/OmniLight.as b/src/package_24/OmniLight.as new file mode 100644 index 0000000..8eb4647 --- /dev/null +++ b/src/package_24/OmniLight.as @@ -0,0 +1,273 @@ +package package_24 +{ + import alternativa.engine3d.alternativa3d; + import package_21.name_116; + import package_21.name_124; + import package_21.name_139; + import package_21.name_386; + import package_21.name_397; + import package_21.name_78; + + use namespace alternativa3d; + + public class OmniLight extends name_116 + { + public var attenuationBegin:Number; + + public var attenuationEnd:Number; + + public function OmniLight(color:uint, attenuationBegin:Number, attenuationEnd:Number) + { + super(); + this.color = color; + this.attenuationBegin = attenuationBegin; + this.attenuationEnd = attenuationEnd; + calculateBoundBox(); + } + + override alternativa3d function updateBoundBox(boundBox:name_386, hierarchy:Boolean, transform:name_139 = null) : void + { + super.alternativa3d::updateBoundBox(boundBox,hierarchy,transform); + if(transform == null) + { + if(-this.attenuationEnd < boundBox.minX) + { + boundBox.minX = -this.attenuationEnd; + } + if(this.attenuationEnd > boundBox.maxX) + { + boundBox.maxX = this.attenuationEnd; + } + if(-this.attenuationEnd < boundBox.minY) + { + boundBox.minY = -this.attenuationEnd; + } + if(this.attenuationEnd > boundBox.maxY) + { + boundBox.maxY = this.attenuationEnd; + } + if(-this.attenuationEnd < boundBox.minZ) + { + boundBox.minZ = -this.attenuationEnd; + } + if(this.attenuationEnd > boundBox.maxZ) + { + boundBox.maxZ = this.attenuationEnd; + } + } + } + + override alternativa3d function collectDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + var debug:int = 0; + if(camera.debug) + { + debug = int(camera.alternativa3d::checkInDebug(this)); + if(Boolean(debug & name_397.BOUNDS) && boundBox != null) + { + name_397.alternativa3d::name_399(camera,boundBox,alternativa3d::localToCameraTransform); + } + } + } + + override alternativa3d function checkBound(targetObject:name_78) : Boolean + { + var rScale:Number = Number(Math.sqrt(alternativa3d::name_141.a * alternativa3d::name_141.a + alternativa3d::name_141.e * alternativa3d::name_141.e + alternativa3d::name_141.i * alternativa3d::name_141.i)); + rScale += Math.sqrt(alternativa3d::name_141.b * alternativa3d::name_141.b + alternativa3d::name_141.f * alternativa3d::name_141.f + alternativa3d::name_141.j * alternativa3d::name_141.j); + rScale += Math.sqrt(alternativa3d::name_141.c * alternativa3d::name_141.c + alternativa3d::name_141.g * alternativa3d::name_141.g + alternativa3d::name_141.k * alternativa3d::name_141.k); + rScale /= 3; + rScale *= this.attenuationEnd; + rScale *= rScale; + var len:Number = 0; + var bb:name_386 = targetObject.boundBox; + var minX:Number = bb.minX; + var minY:Number = bb.minY; + var minZ:Number = bb.minZ; + var maxX:Number = bb.maxX; + var px:Number = Number(alternativa3d::name_141.d); + var py:Number = Number(alternativa3d::name_141.h); + var pz:Number = Number(alternativa3d::name_141.l); + var maxY:Number = bb.maxY; + var maxZ:Number = bb.maxZ; + if(px < minX) + { + if(py < minY) + { + if(pz < minZ) + { + len = (minX - px) * (minX - px) + (minY - py) * (minY - py) + (minZ - pz) * (minZ - pz); + return len < rScale; + } + if(pz < maxZ) + { + len = (minX - px) * (minX - px) + (minY - py) * (minY - py); + return len < rScale; + } + if(pz > maxZ) + { + len = (minX - px) * (minX - px) + (minY - py) * (minY - py) + (maxZ - pz) * (maxZ - pz); + return len < rScale; + } + } + else if(py < maxY) + { + if(pz < minZ) + { + len = (minX - px) * (minX - px) + (minZ - pz) * (minZ - pz); + return len < rScale; + } + if(pz < maxZ) + { + len = (minX - px) * (minX - px); + return len < rScale; + } + if(pz > maxZ) + { + len = (minX - px) * (minX - px) + (maxZ - pz) * (maxZ - pz); + return len < rScale; + } + } + else if(py > maxY) + { + if(pz < minZ) + { + len = (minX - px) * (minX - px) + (maxY - py) * (maxY - py) + (minZ - pz) * (minZ - pz); + return len < rScale; + } + if(pz < maxZ) + { + len = (minX - px) * (minX - px) + (maxY - py) * (maxY - py); + return len < rScale; + } + if(pz > maxZ) + { + len = (minX - px) * (minX - px) + (maxY - py) * (maxY - py) + (maxZ - pz) * (maxZ - pz); + return len < rScale; + } + } + } + else if(px < maxX) + { + if(py < minY) + { + if(pz < minZ) + { + len = (minY - py) * (minY - py) + (minZ - pz) * (minZ - pz); + return len < rScale; + } + if(pz < maxZ) + { + len = (minY - py) * (minY - py); + return len < rScale; + } + if(pz > maxZ) + { + len = (minY - py) * (minY - py) + (maxZ - pz) * (maxZ - pz); + return len < rScale; + } + } + else if(py < maxY) + { + if(pz < minZ) + { + len = (minZ - pz) * (minZ - pz); + return len < rScale; + } + if(pz < maxZ) + { + return true; + } + if(pz > maxZ) + { + len = (maxZ - pz) * (maxZ - pz); + return len < rScale; + } + } + else if(py > maxY) + { + if(pz < minZ) + { + len = (maxY - py) * (maxY - py) + (minZ - pz) * (minZ - pz); + return len < rScale; + } + if(pz < maxZ) + { + len = (maxY - py) * (maxY - py); + return len < rScale; + } + if(pz > maxZ) + { + len = (maxY - py) * (maxY - py) + (maxZ - pz) * (maxZ - pz); + return len < rScale; + } + } + } + else if(px > maxX) + { + if(py < minY) + { + if(pz < minZ) + { + len = (maxX - px) * (maxX - px) + (minY - py) * (minY - py) + (minZ - pz) * (minZ - pz); + return len < rScale; + } + if(pz < maxZ) + { + len = (maxX - px) * (maxX - px) + (minY - py) * (minY - py); + return len < rScale; + } + if(pz > maxZ) + { + len = (maxX - px) * (maxX - px) + (minY - py) * (minY - py) + (maxZ - pz) * (maxZ - pz); + return len < rScale; + } + } + else if(py < maxY) + { + if(pz < minZ) + { + len = (maxX - px) * (maxX - px) + (minZ - pz) * (minZ - pz); + return len < rScale; + } + if(pz < maxZ) + { + len = (maxX - px) * (maxX - px); + return len < rScale; + } + if(pz > maxZ) + { + len = (maxX - px) * (maxX - px) + (maxZ - pz) * (maxZ - pz); + return len < rScale; + } + } + else if(py > maxY) + { + if(pz < minZ) + { + len = (maxX - px) * (maxX - px) + (maxY - py) * (maxY - py) + (minZ - pz) * (minZ - pz); + return len < rScale; + } + if(pz < maxZ) + { + len = (maxX - px) * (maxX - px) + (maxY - py) * (maxY - py); + return len < rScale; + } + if(pz > maxZ) + { + len = (maxX - px) * (maxX - px) + (maxY - py) * (maxY - py) + (maxZ - pz) * (maxZ - pz); + return len < rScale; + } + } + } + return true; + } + + override public function clone() : name_78 + { + var res:OmniLight = new OmniLight(color,this.attenuationBegin,this.attenuationEnd); + res.clonePropertiesFrom(this); + return res; + } + } +} + diff --git a/src/package_24/SpotLight.as b/src/package_24/SpotLight.as new file mode 100644 index 0000000..8399d36 --- /dev/null +++ b/src/package_24/SpotLight.as @@ -0,0 +1,413 @@ +package package_24 +{ + import alternativa.engine3d.alternativa3d; + import package_21.name_116; + import package_21.name_124; + import package_21.name_139; + import package_21.name_386; + import package_21.name_397; + import package_21.name_78; + + use namespace alternativa3d; + + public class SpotLight extends name_116 + { + public var attenuationBegin:Number; + + public var attenuationEnd:Number; + + public var hotspot:Number; + + public var falloff:Number; + + public function SpotLight(color:uint, attenuationBegin:Number, attenuationEnd:Number, hotspot:Number, falloff:Number) + { + super(); + this.color = color; + this.attenuationBegin = attenuationBegin; + this.attenuationEnd = attenuationEnd; + this.hotspot = hotspot; + this.falloff = falloff; + calculateBoundBox(); + } + + override alternativa3d function updateBoundBox(boundBox:name_386, hierarchy:Boolean, transform:name_139 = null) : void + { + var bottom:Number = NaN; + var r:Number = this.falloff < Math.PI ? Math.sin(this.falloff * 0.5) * this.attenuationEnd : this.attenuationEnd; + bottom = this.falloff < Math.PI ? 0 : Math.cos(this.falloff * 0.5) * this.attenuationEnd; + boundBox.minX = -r; + boundBox.minY = -r; + boundBox.minZ = bottom; + boundBox.maxX = r; + boundBox.maxY = r; + boundBox.maxZ = this.attenuationEnd; + } + + public function lookAt(x:Number, y:Number, z:Number) : void + { + var dx:Number = x - this.x; + var dy:Number = y - this.y; + var dz:Number = z - this.z; + rotationX = Math.atan2(dz,Math.sqrt(dx * dx + dy * dy)) - Math.PI / 2; + rotationY = 0; + rotationZ = -Math.atan2(dx,dy); + } + + override alternativa3d function collectDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + var debug:int = 0; + if(camera.debug) + { + debug = int(camera.alternativa3d::checkInDebug(this)); + if(Boolean(debug & name_397.BOUNDS) && boundBox != null) + { + name_397.alternativa3d::name_399(camera,boundBox,alternativa3d::localToCameraTransform); + } + } + } + + override alternativa3d function checkBound(targetObject:name_78) : Boolean + { + var sum:Number = NaN; + var pro:Number = NaN; + var minX:Number = boundBox.minX; + var minY:Number = boundBox.minY; + var minZ:Number = boundBox.minZ; + var maxX:Number = boundBox.maxX; + var maxY:Number = boundBox.maxY; + var maxZ:Number = boundBox.maxZ; + var w:Number = (maxX - minX) * 0.5; + var l:Number = (maxY - minY) * 0.5; + var h:Number = (maxZ - minZ) * 0.5; + var ax:Number = alternativa3d::name_141.a * w; + var ay:Number = alternativa3d::name_141.e * w; + var az:Number = alternativa3d::name_141.i * w; + var bx:Number = alternativa3d::name_141.b * l; + var by:Number = alternativa3d::name_141.f * l; + var bz:Number = alternativa3d::name_141.j * l; + var cx:Number = alternativa3d::name_141.c * h; + var cy:Number = alternativa3d::name_141.g * h; + var cz:Number = alternativa3d::name_141.k * h; + var objectBB:name_386 = targetObject.boundBox; + var hw:Number = (objectBB.maxX - objectBB.minX) * 0.5; + var hl:Number = (objectBB.maxY - objectBB.minY) * 0.5; + var hh:Number = (objectBB.maxZ - objectBB.minZ) * 0.5; + var dx:Number = alternativa3d::name_141.a * (minX + w) + alternativa3d::name_141.b * (minY + l) + alternativa3d::name_141.c * (minZ + h) + alternativa3d::name_141.d - objectBB.minX - hw; + var dy:Number = alternativa3d::name_141.e * (minX + w) + alternativa3d::name_141.f * (minY + l) + alternativa3d::name_141.g * (minZ + h) + alternativa3d::name_141.h - objectBB.minY - hl; + var dz:Number = alternativa3d::name_141.i * (minX + w) + alternativa3d::name_141.j * (minY + l) + alternativa3d::name_141.k * (minZ + h) + alternativa3d::name_141.l - objectBB.minZ - hh; + sum = 0; + if(ax >= 0) + { + sum += ax; + } + else + { + sum -= ax; + } + if(bx >= 0) + { + sum += bx; + } + else + { + sum -= bx; + } + if(cx >= 0) + { + sum += cx; + } + else + { + sum -= cx; + } + sum += hw; + if(dx >= 0) + { + sum -= dx; + } + sum += dx; + if(sum <= 0) + { + return false; + } + sum = 0; + if(ay >= 0) + { + sum += ay; + } + else + { + sum -= ay; + } + if(by >= 0) + { + sum += by; + } + else + { + sum -= by; + } + if(cy >= 0) + { + sum += cy; + } + else + { + sum -= cy; + } + sum += hl; + if(dy >= 0) + { + sum -= dy; + } + else + { + sum += dy; + } + if(sum <= 0) + { + return false; + } + sum = 0; + if(az >= 0) + { + sum += az; + } + else + { + sum -= az; + } + if(bz >= 0) + { + sum += bz; + } + else + { + sum -= bz; + } + if(cz >= 0) + { + sum += cz; + } + else + { + sum -= cz; + } + sum += hl; + if(dz >= 0) + { + sum -= dz; + } + else + { + sum += dz; + } + if(sum <= 0) + { + return false; + } + sum = 0; + pro = alternativa3d::name_141.a * ax + alternativa3d::name_141.e * ay + alternativa3d::name_141.i * az; + if(pro >= 0) + { + sum += pro; + } + else + { + sum -= pro; + } + pro = alternativa3d::name_141.a * bx + alternativa3d::name_141.e * by + alternativa3d::name_141.i * bz; + if(pro >= 0) + { + sum += pro; + } + else + { + sum -= pro; + } + pro = alternativa3d::name_141.a * cx + alternativa3d::name_141.e * cy + alternativa3d::name_141.i * cz; + if(pro >= 0) + { + sum += pro; + } + else + { + sum -= pro; + } + if(alternativa3d::name_141.a >= 0) + { + sum += alternativa3d::name_141.a * hw; + } + else + { + sum -= alternativa3d::name_141.a * hw; + } + if(alternativa3d::name_141.e >= 0) + { + sum += alternativa3d::name_141.e * hl; + } + else + { + sum -= alternativa3d::name_141.e * hl; + } + if(alternativa3d::name_141.i >= 0) + { + sum += alternativa3d::name_141.i * hh; + } + else + { + sum -= alternativa3d::name_141.i * hh; + } + pro = alternativa3d::name_141.a * dx + alternativa3d::name_141.e * dy + alternativa3d::name_141.i * dz; + if(pro >= 0) + { + sum -= pro; + } + else + { + sum += pro; + } + if(sum <= 0) + { + return false; + } + sum = 0; + pro = alternativa3d::name_141.b * ax + alternativa3d::name_141.f * ay + alternativa3d::name_141.j * az; + if(pro >= 0) + { + sum += pro; + } + else + { + sum -= pro; + } + pro = alternativa3d::name_141.b * bx + alternativa3d::name_141.f * by + alternativa3d::name_141.j * bz; + if(pro >= 0) + { + sum += pro; + } + else + { + sum -= pro; + } + pro = alternativa3d::name_141.b * cx + alternativa3d::name_141.f * cy + alternativa3d::name_141.j * cz; + if(pro >= 0) + { + sum += pro; + } + else + { + sum -= pro; + } + if(alternativa3d::name_141.b >= 0) + { + sum += alternativa3d::name_141.b * hw; + } + else + { + sum -= alternativa3d::name_141.b * hw; + } + if(alternativa3d::name_141.f >= 0) + { + sum += alternativa3d::name_141.f * hl; + } + else + { + sum -= alternativa3d::name_141.f * hl; + } + if(alternativa3d::name_141.j >= 0) + { + sum += alternativa3d::name_141.j * hh; + } + else + { + sum -= alternativa3d::name_141.j * hh; + } + pro = alternativa3d::name_141.b * dx + alternativa3d::name_141.f * dy + alternativa3d::name_141.j * dz; + if(pro >= 0) + { + sum -= pro; + } + sum += pro; + if(sum <= 0) + { + return false; + } + sum = 0; + pro = alternativa3d::name_141.c * ax + alternativa3d::name_141.g * ay + alternativa3d::name_141.k * az; + if(pro >= 0) + { + sum += pro; + } + else + { + sum -= pro; + } + pro = alternativa3d::name_141.c * bx + alternativa3d::name_141.g * by + alternativa3d::name_141.k * bz; + if(pro >= 0) + { + sum += pro; + } + else + { + sum -= pro; + } + pro = alternativa3d::name_141.c * cx + alternativa3d::name_141.g * cy + alternativa3d::name_141.k * cz; + if(pro >= 0) + { + sum += pro; + } + else + { + sum -= pro; + } + if(alternativa3d::name_141.c >= 0) + { + sum += alternativa3d::name_141.c * hw; + } + else + { + sum -= alternativa3d::name_141.c * hw; + } + if(alternativa3d::name_141.g >= 0) + { + sum += alternativa3d::name_141.g * hl; + } + else + { + sum -= alternativa3d::name_141.g * hl; + } + if(alternativa3d::name_141.k >= 0) + { + sum += alternativa3d::name_141.k * hh; + } + else + { + sum -= alternativa3d::name_141.k * hh; + } + pro = alternativa3d::name_141.c * dx + alternativa3d::name_141.g * dy + alternativa3d::name_141.k * dz; + if(pro >= 0) + { + sum -= pro; + } + else + { + sum += pro; + } + if(sum <= 0) + { + return false; + } + return true; + } + + override public function clone() : name_78 + { + var res:SpotLight = new SpotLight(color,this.attenuationBegin,this.attenuationEnd,this.hotspot,this.falloff); + res.clonePropertiesFrom(this); + return res; + } + } +} + diff --git a/src/package_24/name_376.as b/src/package_24/name_376.as new file mode 100644 index 0000000..79ab593 --- /dev/null +++ b/src/package_24/name_376.as @@ -0,0 +1,47 @@ +package package_24 +{ + import alternativa.engine3d.alternativa3d; + import package_21.name_116; + import package_21.name_124; + import package_21.name_397; + import package_21.name_78; + + use namespace alternativa3d; + + public class name_376 extends name_116 + { + public function name_376(color:uint) + { + super(); + this.color = color; + } + + override alternativa3d function calculateVisibility(camera:name_124) : void + { + camera.alternativa3d::ambient[0] += (color >> 16 & 0xFF) * intensity / 255; + camera.alternativa3d::ambient[1] += (color >> 8 & 0xFF) * intensity / 255; + camera.alternativa3d::ambient[2] += (color & 0xFF) * intensity / 255; + } + + override alternativa3d function collectDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + var debug:int = 0; + if(camera.debug) + { + debug = int(camera.alternativa3d::checkInDebug(this)); + if(Boolean(debug & name_397.BOUNDS) && boundBox != null) + { + name_397.alternativa3d::name_399(camera,boundBox,alternativa3d::localToCameraTransform); + } + } + } + + override public function clone() : name_78 + { + var res:name_376 = new name_376(color); + res.clonePropertiesFrom(this); + return res; + } + } +} + diff --git a/src/package_25/Particle.as b/src/package_25/Particle.as new file mode 100644 index 0000000..90b8ec7 --- /dev/null +++ b/src/package_25/Particle.as @@ -0,0 +1,73 @@ +package package_25 +{ + import flash.display3D.textures.TextureBase; + + public class Particle + { + public static var collector:Particle; + + public var diffuse:TextureBase; + + public var opacity:TextureBase; + + public var blendSource:String; + + public var blendDestination:String; + + public var x:Number; + + public var y:Number; + + public var z:Number; + + public var rotation:Number; + + public var width:Number; + + public var height:Number; + + public var originX:Number; + + public var originY:Number; + + public var name_420:Number; + + public var name_419:Number; + + public var name_417:Number; + + public var name_416:Number; + + public var red:Number; + + public var green:Number; + + public var blue:Number; + + public var alpha:Number; + + public var next:Particle; + + public function Particle() + { + super(); + } + + public static function create() : Particle + { + var res:Particle = null; + if(collector != null) + { + res = collector; + collector = collector.next; + res.next = null; + } + else + { + res = new Particle(); + } + return res; + } + } +} + diff --git a/src/package_25/name_113.as b/src/package_25/name_113.as new file mode 100644 index 0000000..dcb89ad --- /dev/null +++ b/src/package_25/name_113.as @@ -0,0 +1,232 @@ +package package_25 +{ + import alternativa.engine3d.alternativa3d; + import flash.geom.Vector3D; + import package_21.name_139; + import package_21.name_386; + + use namespace alternativa3d; + + public class name_113 + { + private static var randomNumbers:Vector.; + + private static const randomNumbersCount:int = 1000; + + private static const vector:Vector3D = new Vector3D(); + + public var name:String; + + public var scale:Number = 1; + + public var boundBox:name_386; + + alternativa3d var next:name_113; + + alternativa3d var name_413:name_113; + + alternativa3d var system:name_98; + + alternativa3d var startTime:Number; + + alternativa3d var lifeTime:Number = 1.7976931348623157e+308; + + alternativa3d var particleList:Particle; + + alternativa3d var aabb:name_386; + + alternativa3d var var_157:Vector3D; + + protected var var_156:Vector3D; + + protected var var_151:Vector.; + + protected var var_152:Vector.; + + protected var var_153:Vector.; + + protected var var_154:Vector.; + + protected var var_148:int = 0; + + private var var_155:int; + + private var var_150:int; + + private var var_147:Vector3D; + + private var var_149:Vector3D; + + public function name_113() + { + var i:int = 0; + this.alternativa3d::aabb = new name_386(); + this.var_151 = new Vector.(); + this.var_152 = new Vector.(); + this.var_153 = new Vector.(); + this.var_154 = new Vector.(); + this.var_147 = new Vector3D(0,0,0); + this.var_149 = new Vector3D(0,0,1); + super(); + if(randomNumbers == null) + { + randomNumbers = new Vector.(); + for(i = 0; i < randomNumbersCount; randomNumbers[i] = Math.random(),i++) + { + } + } + this.var_155 = Math.random() * randomNumbersCount; + } + + public function get position() : Vector3D + { + return this.var_147.clone(); + } + + public function set position(value:Vector3D) : void + { + this.var_147.x = value.x; + this.var_147.y = value.y; + this.var_147.z = value.z; + this.var_147.w = value.w; + if(this.alternativa3d::system != null) + { + this.alternativa3d::name_421(this.alternativa3d::system.alternativa3d::method_247() - this.alternativa3d::startTime); + } + } + + public function get direction() : Vector3D + { + return this.var_149.clone(); + } + + public function set direction(value:Vector3D) : void + { + this.var_149.x = value.x; + this.var_149.y = value.y; + this.var_149.z = value.z; + this.var_149.w = value.w; + if(this.alternativa3d::system != null) + { + this.alternativa3d::name_415(this.alternativa3d::system.alternativa3d::method_247() - this.alternativa3d::startTime); + } + } + + public function stop() : void + { + var time:Number = this.alternativa3d::system.alternativa3d::method_247() - this.alternativa3d::startTime; + for(var i:int = 0; i < this.var_148; ) + { + if(time < this.var_151[i]) + { + break; + } + i++; + } + this.var_148 = i; + } + + protected function get var_5() : name_98 + { + return this.alternativa3d::system; + } + + protected function get method_256() : name_139 + { + return this.alternativa3d::system.alternativa3d::cameraToLocalTransform; + } + + protected function random() : Number + { + var res:Number = randomNumbers[this.var_150]; + ++this.var_150; + if(this.var_150 == randomNumbersCount) + { + this.var_150 = 0; + } + return res; + } + + protected function method_257(time:Number, script:Function) : void + { + this.var_151[this.var_148] = time; + this.var_152[this.var_148] = new Vector3D(); + this.var_153[this.var_148] = new Vector3D(); + this.var_154[this.var_148] = script; + ++this.var_148; + } + + protected function method_258(time:Number) : void + { + this.alternativa3d::lifeTime = time; + } + + alternativa3d function calculateAABB() : void + { + this.alternativa3d::aabb.minX = this.boundBox.minX * this.scale + this.var_147.x; + this.alternativa3d::aabb.minY = this.boundBox.minY * this.scale + this.var_147.y; + this.alternativa3d::aabb.minZ = this.boundBox.minZ * this.scale + this.var_147.z; + this.alternativa3d::aabb.maxX = this.boundBox.maxX * this.scale + this.var_147.x; + this.alternativa3d::aabb.maxY = this.boundBox.maxY * this.scale + this.var_147.y; + this.alternativa3d::aabb.maxZ = this.boundBox.maxZ * this.scale + this.var_147.z; + } + + alternativa3d function name_421(time:Number) : void + { + var pos:Vector3D = null; + for(var i:int = 0; i < this.var_148; ) + { + if(time <= this.var_151[i]) + { + pos = this.var_152[i]; + pos.x = this.var_147.x; + pos.y = this.var_147.y; + pos.z = this.var_147.z; + } + i++; + } + } + + alternativa3d function name_415(time:Number) : void + { + var dir:Vector3D = null; + vector.x = this.var_149.x; + vector.y = this.var_149.y; + vector.z = this.var_149.z; + vector.normalize(); + for(var i:int = 0; i < this.var_148; ) + { + if(time <= this.var_151[i]) + { + dir = this.var_153[i]; + dir.x = vector.x; + dir.y = vector.y; + dir.z = vector.z; + } + i++; + } + } + + alternativa3d function name_418(time:Number) : Boolean + { + var keyTime:Number = NaN; + var script:Function = null; + this.var_150 = this.var_155; + for(var i:int = 0; i < this.var_148; ) + { + keyTime = this.var_151[i]; + if(time < keyTime) + { + break; + } + this.alternativa3d::var_157 = this.var_152[i]; + this.var_156 = this.var_153[i]; + script = this.var_154[i]; + script.call(this,keyTime,time - keyTime); + i++; + } + return i < this.var_148 || this.alternativa3d::particleList != null; + } + } +} + diff --git a/src/package_25/name_250.as b/src/package_25/name_250.as new file mode 100644 index 0000000..6309792 --- /dev/null +++ b/src/package_25/name_250.as @@ -0,0 +1,43 @@ +package package_25 +{ + import package_28.name_129; + + public class name_250 + { + public var diffuse:name_129; + + public var opacity:name_129; + + public var columnsCount:int; + + public var rowsCount:int; + + public var rangeBegin:int; + + public var rangeLength:int; + + public var fps:int; + + public var loop:Boolean; + + public var originX:Number; + + public var originY:Number; + + public function name_250(diffuse:name_129, opacity:name_129 = null, columnsCount:int = 1, rowsCount:int = 1, rangeBegin:int = 0, rangeLength:int = 1, fps:int = 30, loop:Boolean = false, originX:Number = 0.5, originY:Number = 0.5) + { + super(); + this.diffuse = diffuse; + this.opacity = opacity; + this.columnsCount = columnsCount; + this.rowsCount = rowsCount; + this.rangeBegin = rangeBegin; + this.rangeLength = rangeLength; + this.fps = fps; + this.loop = loop; + this.originX = originX; + this.originY = originY; + } + } +} + diff --git a/src/package_25/name_414.as b/src/package_25/name_414.as new file mode 100644 index 0000000..3130562 --- /dev/null +++ b/src/package_25/name_414.as @@ -0,0 +1,826 @@ +package package_25 +{ + import flash.utils.*; + + public class name_414 + { + private static var initialized:Boolean = false; + + private static const OPMAP:Dictionary = new Dictionary(); + + private static const REGMAP:Dictionary = new Dictionary(); + + private static const SAMPLEMAP:Dictionary = new Dictionary(); + + private static const MAX_NESTING:int = 4; + + private static const MAX_OPCODES:int = 256; + + private static const FRAGMENT:String = "fragment"; + + private static const VERTEX:String = "vertex"; + + private static const SAMPLER_DIM_SHIFT:uint = 12; + + private static const SAMPLER_SPECIAL_SHIFT:uint = 16; + + private static const SAMPLER_REPEAT_SHIFT:uint = 20; + + private static const SAMPLER_MIPMAP_SHIFT:uint = 24; + + private static const SAMPLER_FILTER_SHIFT:uint = 28; + + private static const REG_WRITE:uint = 1; + + private static const REG_READ:uint = 2; + + private static const REG_FRAG:uint = 32; + + private static const REG_VERT:uint = 64; + + private static const OP_SCALAR:uint = 1; + + private static const OP_INC_NEST:uint = 2; + + private static const OP_DEC_NEST:uint = 4; + + private static const OP_SPECIAL_TEX:uint = 8; + + private static const OP_SPECIAL_MATRIX:uint = 16; + + private static const OP_FRAG_ONLY:uint = 32; + + private static const OP_VERT_ONLY:uint = 64; + + private static const OP_NO_DEST:uint = 128; + + private static const MOV:String = "mov"; + + private static const ADD:String = "add"; + + private static const SUB:String = "sub"; + + private static const MUL:String = "mul"; + + private static const DIV:String = "div"; + + private static const RCP:String = "rcp"; + + private static const MIN:String = "min"; + + private static const MAX:String = "max"; + + private static const FRC:String = "frc"; + + private static const SQT:String = "sqt"; + + private static const RSQ:String = "rsq"; + + private static const POW:String = "pow"; + + private static const LOG:String = "log"; + + private static const EXP:String = "exp"; + + private static const NRM:String = "nrm"; + + private static const SIN:String = "sin"; + + private static const COS:String = "cos"; + + private static const CRS:String = "crs"; + + private static const DP3:String = "dp3"; + + private static const DP4:String = "dp4"; + + private static const ABS:String = "abs"; + + private static const NEG:String = "neg"; + + private static const SAT:String = "sat"; + + private static const M33:String = "m33"; + + private static const M44:String = "m44"; + + private static const M34:String = "m34"; + + private static const IFZ:String = "ifz"; + + private static const INZ:String = "inz"; + + private static const IFE:String = "ife"; + + private static const INE:String = "ine"; + + private static const IFG:String = "ifg"; + + private static const IFL:String = "ifl"; + + private static const IEG:String = "ieg"; + + private static const IEL:String = "iel"; + + private static const ELS:String = "els"; + + private static const EIF:String = "eif"; + + private static const REP:String = "rep"; + + private static const ERP:String = "erp"; + + private static const BRK:String = "brk"; + + private static const KIL:String = "kil"; + + private static const TEX:String = "tex"; + + private static const SGE:String = "sge"; + + private static const SLT:String = "slt"; + + private static const SGN:String = "sgn"; + + private static const VA:String = "va"; + + private static const VC:String = "vc"; + + private static const VT:String = "vt"; + + private static const OP:String = "op"; + + private static const V:String = "v"; + + private static const FC:String = "fc"; + + private static const FT:String = "ft"; + + private static const FS:String = "fs"; + + private static const OC:String = "oc"; + + private static const D2:String = "2d"; + + private static const D3:String = "3d"; + + private static const CUBE:String = "cube"; + + private static const MIPNEAREST:String = "mipnearest"; + + private static const MIPLINEAR:String = "miplinear"; + + private static const MIPNONE:String = "mipnone"; + + private static const NOMIP:String = "nomip"; + + private static const NEAREST:String = "nearest"; + + private static const LINEAR:String = "linear"; + + private static const CENTROID:String = "centroid"; + + private static const SINGLE:String = "single"; + + private static const DEPTH:String = "depth"; + + private static const REPEAT:String = "repeat"; + + private static const WRAP:String = "wrap"; + + private static const CLAMP:String = "clamp"; + + private var var_584:ByteArray = null; + + private var var_582:String = ""; + + private var var_583:Boolean = false; + + public function name_414(debugging:Boolean = false) + { + super(); + this.var_583 = debugging; + if(!initialized) + { + init(); + } + } + + private static function init() : void + { + initialized = true; + OPMAP[MOV] = new OpCode(MOV,2,0,0); + OPMAP[ADD] = new OpCode(ADD,3,1,0); + OPMAP[SUB] = new OpCode(SUB,3,2,0); + OPMAP[MUL] = new OpCode(MUL,3,3,0); + OPMAP[DIV] = new OpCode(DIV,3,4,0); + OPMAP[RCP] = new OpCode(RCP,2,5,0); + OPMAP[MIN] = new OpCode(MIN,3,6,0); + OPMAP[MAX] = new OpCode(MAX,3,7,0); + OPMAP[FRC] = new OpCode(FRC,2,8,0); + OPMAP[SQT] = new OpCode(SQT,2,9,0); + OPMAP[RSQ] = new OpCode(RSQ,2,10,0); + OPMAP[POW] = new OpCode(POW,3,11,0); + OPMAP[LOG] = new OpCode(LOG,2,12,0); + OPMAP[EXP] = new OpCode(EXP,2,13,0); + OPMAP[NRM] = new OpCode(NRM,2,14,0); + OPMAP[SIN] = new OpCode(SIN,2,15,0); + OPMAP[COS] = new OpCode(COS,2,16,0); + OPMAP[CRS] = new OpCode(CRS,3,17,0); + OPMAP[DP3] = new OpCode(DP3,3,18,0); + OPMAP[DP4] = new OpCode(DP4,3,19,0); + OPMAP[ABS] = new OpCode(ABS,2,20,0); + OPMAP[NEG] = new OpCode(NEG,2,21,0); + OPMAP[SAT] = new OpCode(SAT,2,22,0); + OPMAP[M33] = new OpCode(M33,3,23,OP_SPECIAL_MATRIX); + OPMAP[M44] = new OpCode(M44,3,24,OP_SPECIAL_MATRIX); + OPMAP[M34] = new OpCode(M34,3,25,OP_SPECIAL_MATRIX); + OPMAP[IFZ] = new OpCode(IFZ,1,26,OP_NO_DEST | OP_INC_NEST | OP_SCALAR); + OPMAP[INZ] = new OpCode(INZ,1,27,OP_NO_DEST | OP_INC_NEST | OP_SCALAR); + OPMAP[IFE] = new OpCode(IFE,2,28,OP_NO_DEST | OP_INC_NEST | OP_SCALAR); + OPMAP[INE] = new OpCode(INE,2,29,OP_NO_DEST | OP_INC_NEST | OP_SCALAR); + OPMAP[IFG] = new OpCode(IFG,2,30,OP_NO_DEST | OP_INC_NEST | OP_SCALAR); + OPMAP[IFL] = new OpCode(IFL,2,31,OP_NO_DEST | OP_INC_NEST | OP_SCALAR); + OPMAP[IEG] = new OpCode(IEG,2,32,OP_NO_DEST | OP_INC_NEST | OP_SCALAR); + OPMAP[IEL] = new OpCode(IEL,2,33,OP_NO_DEST | OP_INC_NEST | OP_SCALAR); + OPMAP[ELS] = new OpCode(ELS,0,34,OP_NO_DEST | OP_INC_NEST | OP_DEC_NEST); + OPMAP[EIF] = new OpCode(EIF,0,35,OP_NO_DEST | OP_DEC_NEST); + OPMAP[REP] = new OpCode(REP,1,36,OP_NO_DEST | OP_INC_NEST | OP_SCALAR); + OPMAP[ERP] = new OpCode(ERP,0,37,OP_NO_DEST | OP_DEC_NEST); + OPMAP[BRK] = new OpCode(BRK,0,38,OP_NO_DEST); + OPMAP[KIL] = new OpCode(KIL,1,39,OP_NO_DEST | OP_FRAG_ONLY); + OPMAP[TEX] = new OpCode(TEX,3,40,OP_FRAG_ONLY | OP_SPECIAL_TEX); + OPMAP[SGE] = new OpCode(SGE,3,41,0); + OPMAP[SLT] = new OpCode(SLT,3,42,0); + OPMAP[SGN] = new OpCode(SGN,2,43,0); + REGMAP[VA] = new Register(VA,"vertex attribute",0,7,REG_VERT | REG_READ); + REGMAP[VC] = new Register(VC,"vertex constant",1,127,REG_VERT | REG_READ); + REGMAP[VT] = new Register(VT,"vertex temporary",2,7,REG_VERT | REG_WRITE | REG_READ); + REGMAP[OP] = new Register(OP,"vertex output",3,0,REG_VERT | REG_WRITE); + REGMAP[V] = new Register(V,"varying",4,7,REG_VERT | REG_FRAG | REG_READ | REG_WRITE); + REGMAP[FC] = new Register(FC,"fragment constant",1,27,REG_FRAG | REG_READ); + REGMAP[FT] = new Register(FT,"fragment temporary",2,7,REG_FRAG | REG_WRITE | REG_READ); + REGMAP[FS] = new Register(FS,"texture sampler",5,7,REG_FRAG | REG_READ); + REGMAP[OC] = new Register(OC,"fragment output",3,0,REG_FRAG | REG_WRITE); + SAMPLEMAP[D2] = new Sampler(D2,SAMPLER_DIM_SHIFT,0); + SAMPLEMAP[D3] = new Sampler(D3,SAMPLER_DIM_SHIFT,2); + SAMPLEMAP[CUBE] = new Sampler(CUBE,SAMPLER_DIM_SHIFT,1); + SAMPLEMAP[MIPNEAREST] = new Sampler(MIPNEAREST,SAMPLER_MIPMAP_SHIFT,1); + SAMPLEMAP[MIPLINEAR] = new Sampler(MIPLINEAR,SAMPLER_MIPMAP_SHIFT,2); + SAMPLEMAP[MIPNONE] = new Sampler(MIPNONE,SAMPLER_MIPMAP_SHIFT,0); + SAMPLEMAP[NOMIP] = new Sampler(NOMIP,SAMPLER_MIPMAP_SHIFT,0); + SAMPLEMAP[NEAREST] = new Sampler(NEAREST,SAMPLER_FILTER_SHIFT,0); + SAMPLEMAP[LINEAR] = new Sampler(LINEAR,SAMPLER_FILTER_SHIFT,1); + SAMPLEMAP[CENTROID] = new Sampler(CENTROID,SAMPLER_SPECIAL_SHIFT,1 << 0); + SAMPLEMAP[SINGLE] = new Sampler(SINGLE,SAMPLER_SPECIAL_SHIFT,1 << 1); + SAMPLEMAP[DEPTH] = new Sampler(DEPTH,SAMPLER_SPECIAL_SHIFT,1 << 2); + SAMPLEMAP[REPEAT] = new Sampler(REPEAT,SAMPLER_REPEAT_SHIFT,1); + SAMPLEMAP[WRAP] = new Sampler(WRAP,SAMPLER_REPEAT_SHIFT,1); + SAMPLEMAP[CLAMP] = new Sampler(CLAMP,SAMPLER_REPEAT_SHIFT,0); + } + + public function get error() : String + { + return this.var_582; + } + + public function get method_644() : ByteArray + { + return this.var_584; + } + + public function assemble(mode:String, source:String, verbose:Boolean = false) : ByteArray + { + var i:int = 0; + var line:String = null; + var startcomment:int = 0; + var optsi:int = 0; + var opts:Array = null; + var opCode:Array = null; + var opFound:OpCode = null; + var regs:Array = null; + var badreg:Boolean = false; + var pad:uint = 0; + var regLength:uint = 0; + var j:int = 0; + var isRelative:Boolean = false; + var relreg:Array = null; + var res:Array = null; + var regFound:Register = null; + var idxmatch:Array = null; + var regidx:uint = 0; + var regmask:uint = 0; + var maskmatch:Array = null; + var isDest:Boolean = false; + var isSampler:Boolean = false; + var reltype:uint = 0; + var relsel:uint = 0; + var reloffset:int = 0; + var cv:uint = 0; + var maskLength:uint = 0; + var k:int = 0; + var relname:Array = null; + var regFoundRel:Register = null; + var selmatch:Array = null; + var relofs:Array = null; + var samplerbits:uint = 0; + var optsLength:uint = 0; + var bias:Number = NaN; + var optfound:Sampler = null; + var dbgLine:String = null; + var agalLength:uint = 0; + var index:uint = 0; + var byteStr:String = null; + var start:uint = uint(getTimer()); + this.var_584 = new ByteArray(); + this.var_582 = ""; + var isFrag:Boolean = false; + if(mode == FRAGMENT) + { + isFrag = true; + } + else if(mode != VERTEX) + { + this.var_582 = "ERROR: mode needs to be \"" + FRAGMENT + "\" or \"" + VERTEX + "\" but is \"" + mode + "\"."; + } + this.method_644.endian = Endian.LITTLE_ENDIAN; + this.method_644.writeByte(160); + this.method_644.writeUnsignedInt(1); + this.method_644.writeByte(161); + this.method_644.writeByte(isFrag ? 1 : 0); + var lines:Array = source.replace(/[\f\n\r\v]+/g,"\n").split("\n"); + var nest:int = 0; + var nops:int = 0; + var lng:int = int(lines.length); + i = 0; + while(i < lng && this.var_582 == "") + { + line = new String(lines[i]); + startcomment = int(line.search("//")); + if(startcomment != -1) + { + line = line.slice(0,startcomment); + } + optsi = int(line.search(/<.*>/g)); + if(optsi != -1) + { + opts = line.slice(optsi).match(/([\w\.\-\+]+)/gi); + line = line.slice(0,optsi); + } + opCode = line.match(/^\w{3}/ig); + opFound = OPMAP[opCode[0]]; + if(this.var_583) + { + trace(opFound); + } + if(opFound == null) + { + if(line.length >= 3) + { + trace("warning: bad line " + i + ": " + lines[i]); + } + } + else + { + line = line.slice(line.search(opFound.name) + opFound.name.length); + if(Boolean(opFound.flags & OP_DEC_NEST)) + { + nest--; + if(nest < 0) + { + this.var_582 = "error: conditional closes without open."; + break; + } + } + if(Boolean(opFound.flags & OP_INC_NEST)) + { + nest++; + if(nest > MAX_NESTING) + { + this.var_582 = "error: nesting to deep, maximum allowed is " + MAX_NESTING + "."; + break; + } + } + if(Boolean(opFound.flags & OP_FRAG_ONLY) && !isFrag) + { + this.var_582 = "error: opcode is only allowed in fragment programs."; + break; + } + if(verbose) + { + trace("emit opcode=" + opFound); + } + this.method_644.writeUnsignedInt(opFound.emitCode); + nops++; + if(nops > MAX_OPCODES) + { + this.var_582 = "error: too many opcodes. maximum is " + MAX_OPCODES + "."; + break; + } + regs = line.match(/vc\[([vof][actps]?)(\d*)?(\.[xyzw](\+\d{1,3})?)?\](\.[xyzw]{1,4})?|([vof][actps]?)(\d*)?(\.[xyzw]{1,4})?/gi); + if(regs.length != opFound.numRegister) + { + this.var_582 = "error: wrong number of operands. found " + regs.length + " but expected " + opFound.numRegister + "."; + break; + } + badreg = false; + pad = uint(64 + 64 + 32); + regLength = uint(regs.length); + for(j = 0; j < regLength; j++) + { + isRelative = false; + relreg = regs[j].match(/\[.*\]/ig); + if(relreg.length > 0) + { + regs[j] = regs[j].replace(relreg[0],"0"); + if(verbose) + { + trace("IS REL"); + } + isRelative = true; + } + res = regs[j].match(/^\b[A-Za-z]{1,2}/ig); + regFound = REGMAP[res[0]]; + if(this.var_583) + { + trace(regFound); + } + if(regFound == null) + { + this.var_582 = "error: could not parse operand " + j + " (" + regs[j] + ")."; + badreg = true; + break; + } + if(isFrag) + { + if(!(regFound.flags & REG_FRAG)) + { + this.var_582 = "error: register operand " + j + " (" + regs[j] + ") only allowed in vertex programs."; + badreg = true; + break; + } + if(isRelative) + { + this.var_582 = "error: register operand " + j + " (" + regs[j] + ") relative adressing not allowed in fragment programs."; + badreg = true; + break; + } + } + else if(!(regFound.flags & REG_VERT)) + { + this.var_582 = "error: register operand " + j + " (" + regs[j] + ") only allowed in fragment programs."; + badreg = true; + break; + } + regs[j] = regs[j].slice(regs[j].search(regFound.name) + regFound.name.length); + idxmatch = isRelative ? relreg[0].match(/\d+/) : regs[j].match(/\d+/); + regidx = 0; + if(Boolean(idxmatch)) + { + regidx = uint(uint(idxmatch[0])); + } + if(regFound.range < regidx) + { + this.var_582 = "error: register operand " + j + " (" + regs[j] + ") index exceeds limit of " + (regFound.range + 1) + "."; + badreg = true; + break; + } + regmask = 0; + maskmatch = regs[j].match(/(\.[xyzw]{1,4})/); + isDest = j == 0 && !(opFound.flags & OP_NO_DEST); + isSampler = j == 2 && Boolean(opFound.flags & OP_SPECIAL_TEX); + reltype = 0; + relsel = 0; + reloffset = 0; + if(isDest && isRelative) + { + this.var_582 = "error: relative can not be destination"; + badreg = true; + break; + } + if(Boolean(maskmatch)) + { + regmask = 0; + maskLength = uint(maskmatch[0].length); + for(k = 1; k < maskLength; k++) + { + cv = maskmatch[0].charCodeAt(k) - "x".charCodeAt(0); + if(cv > 2) + { + cv = 3; + } + if(isDest) + { + regmask |= 1 << cv; + } + else + { + regmask |= cv << (k - 1 << 1); + } + } + if(!isDest) + { + while(k <= 4) + { + regmask |= cv << (k - 1 << 1); + k++; + } + } + } + else + { + regmask = isDest ? 15 : 228; + } + if(isRelative) + { + relname = relreg[0].match(/[A-Za-z]{1,2}/ig); + regFoundRel = REGMAP[relname[0]]; + if(regFoundRel == null) + { + this.var_582 = "error: bad index register"; + badreg = true; + break; + } + reltype = regFoundRel.emitCode; + selmatch = relreg[0].match(/(\.[xyzw]{1,1})/); + if(selmatch.length == 0) + { + this.var_582 = "error: bad index register select"; + badreg = true; + break; + } + relsel = selmatch[0].charCodeAt(1) - "x".charCodeAt(0); + if(relsel > 2) + { + relsel = 3; + } + relofs = relreg[0].match(/\+\d{1,3}/ig); + if(relofs.length > 0) + { + reloffset = int(relofs[0]); + } + if(reloffset < 0 || reloffset > 255) + { + this.var_582 = "error: index offset " + reloffset + " out of bounds. [0..255]"; + badreg = true; + break; + } + if(verbose) + { + trace("RELATIVE: type=" + reltype + "==" + relname[0] + " sel=" + relsel + "==" + selmatch[0] + " idx=" + regidx + " offset=" + reloffset); + } + } + if(verbose) + { + trace(" emit argcode=" + regFound + "[" + regidx + "][" + regmask + "]"); + } + if(isDest) + { + this.method_644.writeShort(regidx); + this.method_644.writeByte(regmask); + this.method_644.writeByte(regFound.emitCode); + pad -= 32; + } + else if(isSampler) + { + if(verbose) + { + trace(" emit sampler"); + } + samplerbits = 5; + optsLength = uint(opts.length); + bias = 0; + for(k = 0; k < optsLength; k++) + { + if(verbose) + { + trace(" opt: " + opts[k]); + } + optfound = SAMPLEMAP[opts[k]]; + if(optfound == null) + { + bias = Number(Number(opts[k])); + if(verbose) + { + trace(" bias: " + bias); + } + } + else + { + if(optfound.flag != SAMPLER_SPECIAL_SHIFT) + { + samplerbits &= ~(15 << optfound.flag); + } + samplerbits |= uint(optfound.mask) << uint(optfound.flag); + } + } + this.method_644.writeShort(regidx); + this.method_644.writeByte(int(bias * 8)); + this.method_644.writeByte(0); + this.method_644.writeUnsignedInt(samplerbits); + if(verbose) + { + trace(" bits: " + (samplerbits - 5)); + } + pad -= 64; + } + else + { + if(j == 0) + { + this.method_644.writeUnsignedInt(0); + pad -= 32; + } + this.method_644.writeShort(regidx); + this.method_644.writeByte(reloffset); + this.method_644.writeByte(regmask); + this.method_644.writeByte(regFound.emitCode); + this.method_644.writeByte(reltype); + this.method_644.writeShort(isRelative ? relsel | 1 << 15 : 0); + pad -= 64; + } + } + for(j = 0; j < pad; ) + { + this.method_644.writeByte(0); + j += 8; + } + if(badreg) + { + break; + } + } + i++; + } + if(this.var_582 != "") + { + this.var_582 += "\n at line " + i + " " + lines[i]; + this.method_644.length = 0; + trace(this.var_582); + } + if(this.var_583) + { + dbgLine = "generated bytecode:"; + agalLength = uint(this.method_644.length); + for(index = 0; index < agalLength; index++) + { + if(!(index % 16)) + { + dbgLine += "\n"; + } + if(!(index % 4)) + { + dbgLine += " "; + } + byteStr = this.method_644[index].toString(16); + if(byteStr.length < 2) + { + byteStr = "0" + byteStr; + } + dbgLine += byteStr; + } + trace(dbgLine); + } + if(verbose) + { + trace("AGALMiniAssembler.assemble time: " + (getTimer() - start) / 1000 + "s"); + } + return this.method_644; + } + } +} + +class OpCode +{ + private var _emitCode:uint; + + private var _flags:uint; + + private var _name:String; + + private var _numRegister:uint; + + public function OpCode(name:String, numRegister:uint, emitCode:uint, flags:uint) + { + super(); + this._name = name; + this._numRegister = numRegister; + this._emitCode = emitCode; + this._flags = flags; + } + + public function get emitCode() : uint + { + return this._emitCode; + } + + public function get flags() : uint + { + return this._flags; + } + + public function get name() : String + { + return this._name; + } + + public function get numRegister() : uint + { + return this._numRegister; + } + + public function toString() : String + { + return "[OpCode name=\"" + this._name + "\", numRegister=" + this._numRegister + ", emitCode=" + this._emitCode + ", flags=" + this._flags + "]"; + } +} + +class Register +{ + private var _emitCode:uint; + + private var _name:String; + + private var _longName:String; + + private var _flags:uint; + + private var _range:uint; + + public function Register(name:String, longName:String, emitCode:uint, range:uint, flags:uint) + { + super(); + this._name = name; + this._longName = longName; + this._emitCode = emitCode; + this._range = range; + this._flags = flags; + } + + public function get emitCode() : uint + { + return this._emitCode; + } + + public function get longName() : String + { + return this._longName; + } + + public function get name() : String + { + return this._name; + } + + public function get flags() : uint + { + return this._flags; + } + + public function get range() : uint + { + return this._range; + } + + public function toString() : String + { + return "[Register name=\"" + this._name + "\", longName=\"" + this._longName + "\", emitCode=" + this._emitCode + ", range=" + this._range + ", flags=" + this._flags + "]"; + } +} + +class Sampler +{ + private var _flag:uint; + + private var _mask:uint; + + private var _name:String; + + public function Sampler(name:String, flag:uint, mask:uint) + { + super(); + this._name = name; + this._flag = flag; + this._mask = mask; + } + + public function get flag() : uint + { + return this._flag; + } + + public function get mask() : uint + { + return this._mask; + } + + public function get name() : String + { + return this._name; + } + + public function toString() : String + { + return "[Sampler name=\"" + this._name + "\", flag=\"" + this._flag + "\", mask=" + this.mask + "]"; + } +} diff --git a/src/package_25/name_626.as b/src/package_25/name_626.as new file mode 100644 index 0000000..0d64a11 --- /dev/null +++ b/src/package_25/name_626.as @@ -0,0 +1,166 @@ +package package_25 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.textures.TextureBase; + import flash.geom.Vector3D; + import package_21.name_139; + + use namespace alternativa3d; + + public class name_626 + { + public var atlas:name_250; + + private var blendSource:String; + + private var blendDestination:String; + + private var animated:Boolean; + + private var width:Number; + + private var height:Number; + + private var var_151:Vector. = new Vector.(); + + private var var_660:Vector. = new Vector.(); + + private var var_662:Vector. = new Vector.(); + + private var var_656:Vector. = new Vector.(); + + private var var_657:Vector. = new Vector.(); + + private var var_661:Vector. = new Vector.(); + + private var var_659:Vector. = new Vector.(); + + private var var_658:Vector. = new Vector.(); + + private var var_148:int = 0; + + public function name_626(width:Number, height:Number, atlas:name_250, animated:Boolean = false, blendSource:String = "sourceAlpha", blendDestination:String = "oneMinusSourceAlpha") + { + super(); + this.width = width; + this.height = height; + this.atlas = atlas; + this.animated = animated; + this.blendSource = blendSource; + this.blendDestination = blendDestination; + } + + public function method_257(time:Number, rotation:Number = 0, scaleX:Number = 1, scaleY:Number = 1, red:Number = 1, green:Number = 1, blue:Number = 1, alpha:Number = 1) : void + { + var lastIndex:int = this.var_148 - 1; + if(this.var_148 > 0 && time <= this.var_151[lastIndex]) + { + throw new Error("Keys must be successively."); + } + this.var_151[this.var_148] = time; + this.var_660[this.var_148] = rotation; + this.var_662[this.var_148] = scaleX; + this.var_656[this.var_148] = scaleY; + this.var_657[this.var_148] = red; + this.var_661[this.var_148] = green; + this.var_659[this.var_148] = blue; + this.var_658[this.var_148] = alpha; + ++this.var_148; + } + + public function name_627(effect:name_113, time:Number, position:Vector3D, rotation:Number = 0, scaleX:Number = 1, scaleY:Number = 1, alpha:Number = 1, firstFrame:int = 0) : void + { + var systemScale:Number = NaN; + var effectScale:Number = NaN; + var transform:name_139 = null; + var wind:Vector3D = null; + var gravity:Vector3D = null; + var a:int = 0; + var t:Number = NaN; + var pos:int = 0; + var col:int = 0; + var row:int = 0; + var particle:Particle = null; + var cx:Number = NaN; + var cy:Number = NaN; + var cz:Number = NaN; + var rot:Number = NaN; + var b:int = this.var_148 - 1; + if(this.atlas.diffuse.alternativa3d::_texture != null && this.var_148 > 1 && time >= this.var_151[0] && time < this.var_151[b]) + { + for(b = 1; b < this.var_148; ) + { + if(time < this.var_151[b]) + { + systemScale = Number(effect.alternativa3d::system.alternativa3d::scale); + effectScale = effect.scale; + transform = effect.alternativa3d::system.alternativa3d::localToCameraTransform; + wind = effect.alternativa3d::system.wind; + gravity = effect.alternativa3d::system.gravity; + a = b - 1; + t = (time - this.var_151[a]) / (this.var_151[b] - this.var_151[a]); + pos = firstFrame + (this.animated ? time * this.atlas.fps : 0); + if(this.atlas.loop) + { + pos %= this.atlas.rangeLength; + if(pos < 0) + { + pos += this.atlas.rangeLength; + } + } + else + { + if(pos < 0) + { + pos = 0; + } + if(pos >= this.atlas.rangeLength) + { + pos = this.atlas.rangeLength - 1; + } + } + pos += this.atlas.rangeBegin; + col = pos % this.atlas.columnsCount; + row = pos / this.atlas.columnsCount; + particle = Particle.create(); + particle.diffuse = this.atlas.diffuse.alternativa3d::_texture; + particle.opacity = this.atlas.opacity != null ? this.atlas.opacity.alternativa3d::_texture : null; + particle.blendSource = this.blendSource; + particle.blendDestination = this.blendDestination; + cx = effect.alternativa3d::var_157.x + position.x * effectScale; + cy = effect.alternativa3d::var_157.y + position.y * effectScale; + cz = effect.alternativa3d::var_157.z + position.z * effectScale; + particle.x = cx * transform.a + cy * transform.b + cz * transform.c + transform.d; + particle.y = cx * transform.e + cy * transform.f + cz * transform.g + transform.h; + particle.z = cx * transform.i + cy * transform.j + cz * transform.k + transform.l; + rot = this.var_660[a] + (this.var_660[b] - this.var_660[a]) * t; + particle.rotation = scaleX * scaleY > 0 ? rotation + rot : rotation - rot; + particle.width = systemScale * effectScale * scaleX * this.width * (this.var_662[a] + (this.var_662[b] - this.var_662[a]) * t); + particle.height = systemScale * effectScale * scaleY * this.height * (this.var_656[a] + (this.var_656[b] - this.var_656[a]) * t); + particle.originX = this.atlas.originX; + particle.originY = this.atlas.originY; + particle.name_420 = 1 / this.atlas.columnsCount; + particle.name_419 = 1 / this.atlas.rowsCount; + particle.name_417 = col / this.atlas.columnsCount; + particle.name_416 = row / this.atlas.rowsCount; + particle.red = this.var_657[a] + (this.var_657[b] - this.var_657[a]) * t; + particle.green = this.var_661[a] + (this.var_661[b] - this.var_661[a]) * t; + particle.blue = this.var_659[a] + (this.var_659[b] - this.var_659[a]) * t; + particle.alpha = alpha * (this.var_658[a] + (this.var_658[b] - this.var_658[a]) * t); + particle.next = effect.alternativa3d::particleList; + effect.alternativa3d::particleList = particle; + break; + } + b++; + } + } + } + + public function get lifeTime() : Number + { + var lastIndex:int = this.var_148 - 1; + return this.var_151[lastIndex]; + } + } +} + diff --git a/src/package_25/name_98.as b/src/package_25/name_98.as new file mode 100644 index 0000000..5393fa5 --- /dev/null +++ b/src/package_25/name_98.as @@ -0,0 +1,464 @@ +package package_25 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3D; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DProgramType; + import flash.display3D.Context3DTriangleFace; + import flash.display3D.Context3DVertexBufferFormat; + import flash.display3D.IndexBuffer3D; + import flash.display3D.Program3D; + import flash.display3D.VertexBuffer3D; + import flash.display3D.textures.TextureBase; + import flash.geom.Vector3D; + import flash.utils.ByteArray; + import flash.utils.getTimer; + import package_21.name_116; + import package_21.name_124; + import package_21.name_128; + import package_21.name_135; + import package_21.name_397; + import package_21.name_78; + + use namespace alternativa3d; + + public class name_98 extends name_78 + { + private static var vertexBuffer:VertexBuffer3D; + + private static var indexBuffer:IndexBuffer3D; + + private static var diffuseProgram:Program3D; + + private static var opacityProgram:Program3D; + + private static var diffuseBlendProgram:Program3D; + + private static var opacityBlendProgram:Program3D; + + private static const limit:int = 31; + + public var var_141:Boolean = true; + + public var gravity:Vector3D = new Vector3D(0,0,-1); + + public var wind:Vector3D = new Vector3D(); + + public var name_107:int = 0; + + public var fogMaxDensity:Number = 0; + + public var fogNear:Number = 0; + + public var fogFar:Number = 0; + + alternativa3d var scale:Number = 1; + + alternativa3d var effectList:name_113; + + private var drawUnit:name_135 = null; + + private var diffuse:TextureBase = null; + + private var opacity:TextureBase = null; + + private var blendSource:String = null; + + private var blendDestination:String = null; + + private var counter:int; + + private var var_139:Number; + + private var var_140:Number; + + private var var_137:Vector. = new Vector.(); + + private var var_136:int = 0; + + private var method_21:Boolean = false; + + private var var_135:Number; + + private var var_138:Number = 0; + + public function name_98() + { + super(); + } + + public function stop() : void + { + if(!this.method_21) + { + this.var_135 = getTimer() * 0.001; + this.method_21 = true; + } + } + + public function play() : void + { + if(this.method_21) + { + this.var_138 += getTimer() * 0.001 - this.var_135; + this.method_21 = false; + } + } + + public function method_251() : void + { + this.var_135 -= 0.001; + } + + public function method_253() : void + { + this.var_135 += 0.001; + } + + public function method_37(effect:name_113) : name_113 + { + if(effect.alternativa3d::system != null) + { + throw new Error("Cannot add the same effect twice."); + } + effect.alternativa3d::startTime = this.alternativa3d::method_247(); + effect.alternativa3d::system = this; + effect.alternativa3d::name_421(0); + effect.alternativa3d::name_415(0); + effect.alternativa3d::name_413 = this.alternativa3d::effectList; + this.alternativa3d::effectList = effect; + return effect; + } + + public function method_252(name:String) : name_113 + { + for(var effect:name_113 = this.alternativa3d::effectList; effect != null; ) + { + if(effect.name == name) + { + return effect; + } + effect = effect.alternativa3d::name_413; + } + return null; + } + + alternativa3d function method_247() : Number + { + return this.method_21 ? this.var_135 - this.var_138 : getTimer() * 0.001 - this.var_138; + } + + override alternativa3d function collectDraws(camera:name_124, lights:Vector., lightsLength:int) : void + { + var visibleEffectList:name_113 = null; + var effectTime:Number = NaN; + var culling:int = 0; + var debug:int = 0; + if(vertexBuffer == null) + { + this.method_249(camera.alternativa3d::context3D); + } + this.alternativa3d::scale = Math.sqrt(alternativa3d::localToCameraTransform.a * alternativa3d::localToCameraTransform.a + alternativa3d::localToCameraTransform.e * alternativa3d::localToCameraTransform.e + alternativa3d::localToCameraTransform.i * alternativa3d::localToCameraTransform.i); + this.alternativa3d::scale += Math.sqrt(alternativa3d::localToCameraTransform.b * alternativa3d::localToCameraTransform.b + alternativa3d::localToCameraTransform.f * alternativa3d::localToCameraTransform.f + alternativa3d::localToCameraTransform.j * alternativa3d::localToCameraTransform.j); + this.alternativa3d::scale += Math.sqrt(alternativa3d::localToCameraTransform.c * alternativa3d::localToCameraTransform.c + alternativa3d::localToCameraTransform.g * alternativa3d::localToCameraTransform.g + alternativa3d::localToCameraTransform.k * alternativa3d::localToCameraTransform.k); + this.alternativa3d::scale /= 3; + camera.alternativa3d::calculateFrustum(alternativa3d::cameraToLocalTransform); + var conflictAnyway:Boolean = false; + var time:Number = this.alternativa3d::method_247(); + for(var effect:name_113 = this.alternativa3d::effectList,var prev:name_113 = null; effect != null; ) + { + effectTime = time - effect.alternativa3d::startTime; + if(effectTime <= effect.alternativa3d::lifeTime) + { + culling = 63; + if(effect.boundBox != null) + { + effect.alternativa3d::calculateAABB(); + culling = int(effect.alternativa3d::aabb.alternativa3d::name_393(camera.alternativa3d::frustum,63)); + } + if(culling >= 0) + { + if(effect.alternativa3d::name_418(effectTime)) + { + if(effect.alternativa3d::particleList != null) + { + effect.alternativa3d::next = visibleEffectList; + visibleEffectList = effect; + conflictAnyway ||= effect.boundBox == null; + } + prev = effect; + effect = effect.alternativa3d::name_413; + } + else if(prev != null) + { + prev.alternativa3d::name_413 = effect.alternativa3d::name_413; + effect = prev.alternativa3d::name_413; + } + else + { + this.alternativa3d::effectList = effect.alternativa3d::name_413; + effect = this.alternativa3d::effectList; + } + } + else + { + prev = effect; + effect = effect.alternativa3d::name_413; + } + } + else if(prev != null) + { + prev.alternativa3d::name_413 = effect.alternativa3d::name_413; + effect = prev.alternativa3d::name_413; + } + else + { + this.alternativa3d::effectList = effect.alternativa3d::name_413; + effect = this.alternativa3d::effectList; + } + } + if(visibleEffectList != null) + { + if(visibleEffectList.alternativa3d::next != null) + { + this.method_250(camera,visibleEffectList); + } + else + { + this.method_248(camera,visibleEffectList.alternativa3d::particleList); + visibleEffectList.alternativa3d::particleList = null; + if(camera.debug && visibleEffectList.boundBox != null && Boolean(camera.alternativa3d::checkInDebug(this) & name_397.BOUNDS)) + { + name_397.alternativa3d::name_399(camera,visibleEffectList.alternativa3d::aabb,alternativa3d::localToCameraTransform); + } + } + this.flush(camera); + this.drawUnit = null; + this.diffuse = null; + this.opacity = null; + this.blendSource = null; + this.blendDestination = null; + this.var_136 = 0; + } + if(camera.debug) + { + debug = camera.alternativa3d::checkInDebug(this); + if(Boolean(debug & name_397.BOUNDS) && boundBox != null) + { + name_397.alternativa3d::name_399(camera,boundBox,alternativa3d::localToCameraTransform); + } + } + } + + private function method_249(context:Context3D) : void + { + var vertices:Vector. = new Vector.(); + var indices:Vector. = new Vector.(); + for(var i:int = 0; i < limit; i++) + { + vertices.push(0,0,0,0,0,i * 4,0,1,0,0,1,i * 4,1,1,0,1,1,i * 4,1,0,0,1,0,i * 4); + indices.push(i * 4,i * 4 + 1,i * 4 + 3,i * 4 + 2,i * 4 + 3,i * 4 + 1); + } + vertexBuffer = context.createVertexBuffer(limit * 4,6); + vertexBuffer.uploadFromVector(vertices,0,limit * 4); + indexBuffer = context.createIndexBuffer(limit * 6); + indexBuffer.uploadFromVector(indices,0,limit * 6); + var vertexProgram:Array = ["mov vt2, vc[va1.z]","sub vt0.z, va0.x, vt2.x","sub vt0.w, va0.y, vt2.y","mul vt0.z, vt0.z, vt2.z","mul vt0.w, vt0.w, vt2.w","mov vt2, vc[va1.z+1]","mov vt1.z, vt2.w","sin vt1.x, vt1.z","cos vt1.y, vt1.z","mul vt1.z, vt0.z, vt1.y","mul vt1.w, vt0.w, vt1.x","sub vt0.x, vt1.z, vt1.w","mul vt1.z, vt0.z, vt1.x","mul vt1.w, vt0.w, vt1.y","add vt0.y, vt1.z, vt1.w","add vt0.x, vt0.x, vt2.x","add vt0.y, vt0.y, vt2.y","add vt0.z, va0.z, vt2.z","mov vt0.w, va0.w","dp4 op.x, vt0, vc124","dp4 op.y, vt0, vc125","dp4 op.z, vt0, vc126","dp4 op.w, vt0, vc127","mov vt2, vc[va1.z+2]","mul vt1.x, va1.x, vt2.x","mul vt1.y, va1.y, vt2.y","add vt1.x, vt1.x, vt2.z","add vt1.y, vt1.y, vt2.w","mov v0, vt1","mov v1, vc[va1.z+3]","mov v2, vt0"]; + var fragmentDiffuseProgram:Array = ["tex ft0, v0, fs0 <2d,clamp,linear,miplinear>","mul ft0, ft0, v1","sub ft1.w, v2.z, fc1.x","div ft1.w, ft1.w, fc1.y","max ft1.w, ft1.w, fc1.z","min ft1.w, ft1.w, fc0.w","sub ft1.xyz, fc0.xyz, ft0.xyz","mul ft1.xyz, ft1.xyz, ft1.w","add ft0.xyz, ft0.xyz, ft1.xyz","mov oc, ft0"]; + var fragmentOpacityProgram:Array = ["tex ft0, v0, fs0 <2d,clamp,linear,miplinear>","tex ft1, v0, fs1 <2d,clamp,linear,miplinear>","mov ft0.w, ft1.x","mul ft0, ft0, v1","sub ft1.w, v2.z, fc1.x","div ft1.w, ft1.w, fc1.y","max ft1.w, ft1.w, fc1.z","min ft1.w, ft1.w, fc0.w","sub ft1.xyz, fc0.xyz, ft0.xyz","mul ft1.xyz, ft1.xyz, ft1.w","add ft0.xyz, ft0.xyz, ft1.xyz","mov oc, ft0"]; + var fragmentDiffuseBlendProgram:Array = ["tex ft0, v0, fs0 <2d,clamp,linear,miplinear>","mul ft0, ft0, v1","sub ft1.w, v2.z, fc1.x","div ft1.w, ft1.w, fc1.y","max ft1.w, ft1.w, fc1.z","min ft1.w, ft1.w, fc0.w","sub ft1.w, fc1.w, ft1.w","mul ft0.w, ft0.w, ft1.w","mov oc, ft0"]; + var fragmentOpacityBlendProgram:Array = ["tex ft0, v0, fs0 <2d,clamp,linear,miplinear>","tex ft1, v0, fs1 <2d,clamp,linear,miplinear>","mov ft0.w, ft1.x","mul ft0, ft0, v1","sub ft1.w, v2.z, fc1.x","div ft1.w, ft1.w, fc1.y","max ft1.w, ft1.w, fc1.z","min ft1.w, ft1.w, fc0.w","sub ft1.w, fc1.w, ft1.w","mul ft0.w, ft0.w, ft1.w","mov oc, ft0"]; + diffuseProgram = context.createProgram(); + opacityProgram = context.createProgram(); + diffuseBlendProgram = context.createProgram(); + opacityBlendProgram = context.createProgram(); + var compiledVertexProgram:ByteArray = this.method_245(Context3DProgramType.VERTEX,vertexProgram); + diffuseProgram.upload(compiledVertexProgram,this.method_245(Context3DProgramType.FRAGMENT,fragmentDiffuseProgram)); + opacityProgram.upload(compiledVertexProgram,this.method_245(Context3DProgramType.FRAGMENT,fragmentOpacityProgram)); + diffuseBlendProgram.upload(compiledVertexProgram,this.method_245(Context3DProgramType.FRAGMENT,fragmentDiffuseBlendProgram)); + opacityBlendProgram.upload(compiledVertexProgram,this.method_245(Context3DProgramType.FRAGMENT,fragmentOpacityBlendProgram)); + } + + private function method_245(mode:String, program:Array) : ByteArray + { + var line:String = null; + var string:String = ""; + var length:int = int(program.length); + for(var i:int = 0; i < length; i++) + { + line = program[i]; + string += line + (i < length - 1 ? " \n" : ""); + } + return new name_414().assemble(mode,string,false); + } + + private function flush(camera:name_124) : void + { + if(this.var_136 == this.var_137.length) + { + this.var_137[this.var_136] = new name_78(); + } + var object:name_78 = this.var_137[this.var_136]; + ++this.var_136; + object.alternativa3d::localToCameraTransform.l = (this.var_139 + this.var_140) / 2; + this.drawUnit.alternativa3d::object = object; + this.drawUnit.alternativa3d::numTriangles = this.counter << 1; + if(this.blendDestination == Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA) + { + this.drawUnit.alternativa3d::program = this.opacity != null ? opacityProgram : diffuseProgram; + } + else + { + this.drawUnit.alternativa3d::program = this.opacity != null ? opacityBlendProgram : diffuseBlendProgram; + } + this.drawUnit.alternativa3d::setVertexBufferAt(0,vertexBuffer,0,Context3DVertexBufferFormat.FLOAT_3); + this.drawUnit.alternativa3d::setVertexBufferAt(1,vertexBuffer,3,Context3DVertexBufferFormat.FLOAT_3); + this.drawUnit.alternativa3d::name_136(camera,124); + this.drawUnit.alternativa3d::name_134(0,(this.name_107 >> 16 & 0xFF) / 255,(this.name_107 >> 8 & 0xFF) / 255,(this.name_107 & 0xFF) / 255,this.fogMaxDensity); + this.drawUnit.alternativa3d::name_134(1,this.fogNear,this.fogFar - this.fogNear,0,1); + this.drawUnit.alternativa3d::setTextureAt(0,this.diffuse); + if(this.opacity != null) + { + this.drawUnit.alternativa3d::setTextureAt(1,this.opacity); + } + this.drawUnit.alternativa3d::blendSource = this.blendSource; + this.drawUnit.alternativa3d::blendDestination = this.blendDestination; + this.drawUnit.alternativa3d::culling = Context3DTriangleFace.NONE; + camera.alternativa3d::renderer.alternativa3d::name_130(this.drawUnit,name_128.TRANSPARENT_SORT); + } + + private function method_248(camera:name_124, list:Particle) : void + { + var last:Particle = null; + var offset:int = 0; + if(list.next != null) + { + list = this.method_246(list); + } + for(var particle:Particle = list; particle != null; ) + { + if(this.counter >= limit || particle.diffuse != this.diffuse || particle.opacity != this.opacity || particle.blendSource != this.blendSource || particle.blendDestination != this.blendDestination) + { + if(this.drawUnit != null) + { + this.flush(camera); + } + this.drawUnit = camera.alternativa3d::renderer.alternativa3d::name_137(null,null,indexBuffer,0,0); + this.diffuse = particle.diffuse; + this.opacity = particle.opacity; + this.blendSource = particle.blendSource; + this.blendDestination = particle.blendDestination; + this.counter = 0; + this.var_139 = particle.z; + } + offset = this.counter << 2; + this.drawUnit.alternativa3d::name_144(offset++,particle.originX,particle.originY,particle.width,particle.height); + this.drawUnit.alternativa3d::name_144(offset++,particle.x,particle.y,particle.z,particle.rotation); + this.drawUnit.alternativa3d::name_144(offset++,particle.name_420,particle.name_419,particle.name_417,particle.name_416); + this.drawUnit.alternativa3d::name_144(offset++,particle.red,particle.green,particle.blue,particle.alpha); + ++this.counter; + this.var_140 = particle.z; + last = particle; + particle = particle.next; + } + last.next = Particle.collector; + Particle.collector = list; + } + + private function method_246(list:Particle) : Particle + { + var left:Particle = list; + var right:Particle = list.next; + while(right != null && right.next != null) + { + list = list.next; + right = right.next.next; + } + right = list.next; + list.next = null; + if(left.next != null) + { + left = this.method_246(left); + } + if(right.next != null) + { + right = this.method_246(right); + } + var flag:Boolean = left.z > right.z; + if(flag) + { + list = left; + left = left.next; + } + else + { + list = right; + right = right.next; + } + var last:Particle = list; + while(left != null) + { + if(right == null) + { + last.next = left; + return list; + } + if(flag) + { + if(left.z > right.z) + { + last = left; + left = left.next; + } + else + { + last.next = right; + last = right; + right = right.next; + flag = false; + } + } + else if(right.z > left.z) + { + last = right; + right = right.next; + } + else + { + last.next = left; + last = left; + left = left.next; + flag = true; + } + } + last.next = right; + return list; + } + + private function method_250(camera:name_124, effectList:name_113) : void + { + var particleList:Particle = null; + var next:name_113 = null; + var last:Particle = null; + for(var effect:name_113 = effectList; effect != null; ) + { + next = effect.alternativa3d::next; + effect.alternativa3d::next = null; + for(last = effect.alternativa3d::particleList; last.next != null; ) + { + last = last.next; + } + last.next = particleList; + particleList = effect.alternativa3d::particleList; + effect.alternativa3d::particleList = null; + if(camera.debug && effect.boundBox != null && Boolean(camera.alternativa3d::checkInDebug(this) & name_397.BOUNDS)) + { + name_397.alternativa3d::name_399(camera,effect.alternativa3d::aabb,alternativa3d::localToCameraTransform,16711680); + } + effect = next; + } + this.method_248(camera,particleList); + } + } +} + diff --git a/src/package_26/class_18.as b/src/package_26/class_18.as new file mode 100644 index 0000000..1bd6d7c --- /dev/null +++ b/src/package_26/class_18.as @@ -0,0 +1,19 @@ +package package_26 +{ + public class class_18 + { + protected var objectPool:name_402; + + public function class_18(objectPool:name_402) + { + super(); + this.objectPool = objectPool; + } + + final public function method_254() : void + { + this.objectPool.name_425(this); + } + } +} + diff --git a/src/package_26/name_100.as b/src/package_26/name_100.as new file mode 100644 index 0000000..4e7f415 --- /dev/null +++ b/src/package_26/name_100.as @@ -0,0 +1,31 @@ +package package_26 +{ + import flash.utils.Dictionary; + + public class name_100 + { + private var var_103:Dictionary = new Dictionary(); + + public function name_100() + { + super(); + } + + public function name_110(objectClass:Class) : Object + { + return this.method_220(objectClass).name_110(); + } + + private function method_220(objectClass:Class) : name_402 + { + var pool:name_402 = this.var_103[objectClass]; + if(pool == null) + { + pool = new name_402(objectClass); + this.var_103[objectClass] = pool; + } + return pool; + } + } +} + diff --git a/src/package_26/name_402.as b/src/package_26/name_402.as new file mode 100644 index 0000000..acfc1d3 --- /dev/null +++ b/src/package_26/name_402.as @@ -0,0 +1,41 @@ +package package_26 +{ + public class name_402 + { + private var objectClass:Class; + + private var objects:Vector. = new Vector.(); + + private var numObjects:int; + + public function name_402(objectClass:Class) + { + super(); + this.objectClass = objectClass; + } + + public function name_110() : Object + { + if(this.numObjects == 0) + { + return new this.objectClass(this); + } + var object:Object = this.objects[--this.numObjects]; + this.objects[this.numObjects] = null; + return object; + } + + public function clear() : void + { + this.objects.length = 0; + this.numObjects = 0; + } + + internal function name_425(object:Object) : void + { + var _loc2_:* = this.numObjects++; + this.objects[_loc2_] = object; + } + } +} + diff --git a/src/package_27/class_7.as b/src/package_27/class_7.as new file mode 100644 index 0000000..5d32f1a --- /dev/null +++ b/src/package_27/class_7.as @@ -0,0 +1,28 @@ +package package_27 +{ + public class class_7 + { + private var var_33:name_170; + + public function class_7() + { + super(); + } + + public function run() : void + { + throw new Error("Not implemented"); + } + + internal function set method_101(value:name_170) : void + { + this.var_33 = value; + } + + final protected function method_102() : void + { + this.var_33.taskComplete(this); + } + } +} + diff --git a/src/package_27/name_170.as b/src/package_27/name_170.as new file mode 100644 index 0000000..fdca280 --- /dev/null +++ b/src/package_27/name_170.as @@ -0,0 +1,58 @@ +package package_27 +{ + import flash.events.Event; + import flash.events.EventDispatcher; + + public class name_170 extends EventDispatcher + { + private var tasks:Vector.; + + private var var_192:int; + + public function name_170() + { + super(); + this.tasks = new Vector.(); + } + + public function addTask(task:class_7) : void + { + if(this.tasks.indexOf(task) < 0) + { + this.tasks.push(task); + task.method_101 = this; + } + } + + public function run() : void + { + if(this.tasks.length > 0) + { + this.var_192 = 0; + this.method_309(); + } + else + { + dispatchEvent(new Event(Event.COMPLETE)); + } + } + + private function method_309() : void + { + class_7(this.tasks[this.var_192]).run(); + } + + internal function taskComplete(task:class_7) : void + { + if(++this.var_192 < this.tasks.length) + { + this.method_309(); + } + else + { + dispatchEvent(new Event(Event.COMPLETE)); + } + } + } +} + diff --git a/src/package_27/name_180.as b/src/package_27/name_180.as new file mode 100644 index 0000000..15ef499 --- /dev/null +++ b/src/package_27/name_180.as @@ -0,0 +1,44 @@ +package package_27 +{ + import flash.utils.getTimer; + + public class name_180 + { + public var var_211:Number = 0; + + public var var_212:Number = 0; + + private var maxTicks:int; + + private var var_208:int; + + private var var_210:int; + + private var var_209:int; + + public function name_180(maxTicks:int) + { + super(); + this.maxTicks = maxTicks; + } + + public function name_188() : void + { + this.var_210 = getTimer(); + } + + public function name_186() : void + { + this.var_209 += getTimer() - this.var_210; + ++this.var_208; + if(this.var_208 >= this.maxTicks) + { + this.var_211 = this.var_209 / this.var_208; + this.var_212 = this.var_208 * 1000 / this.var_209; + this.var_208 = 0; + this.var_209 = 0; + } + } + } +} + diff --git a/src/package_27/name_479.as b/src/package_27/name_479.as new file mode 100644 index 0000000..0459d13 --- /dev/null +++ b/src/package_27/name_479.as @@ -0,0 +1,55 @@ +package package_27 +{ + public class name_479 + { + private var elements:Vector.; + + public function name_479(size:uint) + { + super(); + this.elements = new Vector.((size + 31) / 32); + } + + public function name_480(bitIndex:uint, value:Boolean) : void + { + var elementIndex:uint = uint(bitIndex >>> 5); + var element:uint = this.elements[elementIndex]; + bitIndex &= 31; + if(value) + { + element |= 1 << bitIndex; + } + else + { + element &= ~(1 << bitIndex); + } + this.elements[elementIndex] = element; + } + + public function name_478(bitIndex:uint) : int + { + var elementIndex:uint = uint(bitIndex >>> 5); + bitIndex &= 31; + return this.elements[elementIndex] >> bitIndex & 1; + } + + public function clear() : void + { + var len:int = int(this.elements.length); + for(var i:int = 0; i < len; i++) + { + this.elements[i] = 0; + } + } + + public function copyFrom(source:name_479) : void + { + var len:int = int(this.elements.length); + for(var i:int = 0; i < len; i++) + { + this.elements[i] = source.elements[i]; + } + } + } +} + diff --git a/src/package_27/name_501.as b/src/package_27/name_501.as new file mode 100644 index 0000000..2e100ff --- /dev/null +++ b/src/package_27/name_501.as @@ -0,0 +1,78 @@ +package package_27 +{ + public class name_501 + { + public static const EPSILON:Number = 0.001; + + public static const BIG_VALUE:Number = 1000000; + + public static const PI2:Number = 2 * Math.PI; + + public function name_501() + { + super(); + } + + public static function clamp(value:Number, min:Number, max:Number) : Number + { + if(value < min) + { + return min; + } + if(value > max) + { + return max; + } + return value; + } + + public static function name_506(radians:Number) : Number + { + radians %= PI2; + if(radians < -Math.PI) + { + return PI2 + radians; + } + if(radians > Math.PI) + { + return radians - PI2; + } + return radians; + } + + public static function name_628(radians:Number) : Number + { + if(radians < -Math.PI) + { + return PI2 + radians; + } + if(radians > Math.PI) + { + return radians - PI2; + } + return radians; + } + + public static function name_504(value:Number, targetValue:Number, delta:Number) : Number + { + if(value < targetValue) + { + value += delta; + if(value > targetValue) + { + value = targetValue; + } + } + else if(value > targetValue) + { + value -= delta; + if(value < targetValue) + { + value = targetValue; + } + } + return value; + } + } +} + diff --git a/src/package_27/name_519.as b/src/package_27/name_519.as new file mode 100644 index 0000000..f5fc99d --- /dev/null +++ b/src/package_27/name_519.as @@ -0,0 +1,74 @@ +package package_27 +{ + import package_21.name_78; + import package_46.Matrix3; + import package_46.name_194; + + public class name_519 + { + private static var axis1:name_194 = new name_194(); + + private static var axis2:name_194 = new name_194(); + + private static var eulerAngles:name_194 = new name_194(); + + private static var targetAxisZ:name_194 = new name_194(); + + private static var objectAxis:name_194 = new name_194(); + + private static var matrix1:Matrix3 = new Matrix3(); + + private static var matrix2:Matrix3 = new Matrix3(); + + public function name_519() + { + super(); + } + + public static function name_521(object:name_78, objectPosition:name_194, objectDirection:name_194, cameraPosition:name_194) : void + { + var angle:Number = NaN; + if(objectDirection.y < -0.99999 || objectDirection.y > 0.99999) + { + axis1.x = 0; + axis1.y = 0; + axis1.z = 1; + angle = objectDirection.y < 0 ? Number(Math.PI) : 0; + } + else + { + axis1.x = objectDirection.z; + axis1.y = 0; + axis1.z = -objectDirection.x; + axis1.normalize(); + angle = Number(Math.acos(objectDirection.y)); + } + matrix1.method_344(axis1,angle); + targetAxisZ.x = cameraPosition.x - objectPosition.x; + targetAxisZ.y = cameraPosition.y - objectPosition.y; + targetAxisZ.z = cameraPosition.z - objectPosition.z; + var dot:Number = targetAxisZ.x * objectDirection.x + targetAxisZ.y * objectDirection.y + targetAxisZ.z * objectDirection.z; + targetAxisZ.x -= dot * objectDirection.x; + targetAxisZ.y -= dot * objectDirection.y; + targetAxisZ.z -= dot * objectDirection.z; + targetAxisZ.normalize(); + matrix1.method_345(name_194.Z_AXIS,objectAxis); + dot = objectAxis.x * targetAxisZ.x + objectAxis.y * targetAxisZ.y + objectAxis.z * targetAxisZ.z; + axis2.x = objectAxis.y * targetAxisZ.z - objectAxis.z * targetAxisZ.y; + axis2.y = objectAxis.z * targetAxisZ.x - objectAxis.x * targetAxisZ.z; + axis2.z = objectAxis.x * targetAxisZ.y - objectAxis.y * targetAxisZ.x; + axis2.normalize(); + angle = Number(Math.acos(dot)); + matrix2.method_344(axis2,angle); + matrix1.append(matrix2); + matrix1.name_341(eulerAngles); + object.rotationX = eulerAngles.x; + object.rotationY = eulerAngles.y; + object.rotationZ = eulerAngles.z; + object.x = objectPosition.x; + object.y = objectPosition.y; + object.z = objectPosition.z; + } + } +} + diff --git a/src/package_27/name_642.as b/src/package_27/name_642.as new file mode 100644 index 0000000..cd4250e --- /dev/null +++ b/src/package_27/name_642.as @@ -0,0 +1,186 @@ +package package_27 +{ + import package_109.name_377; + import package_109.name_378; + import package_109.name_381; + import package_19.name_380; + import package_21.name_126; + import package_46.Matrix4; + import package_46.name_194; + import package_76.name_235; + + public class name_642 + { + public function name_642() + { + super(); + } + + public static function name_646(mesh:name_380, collisionPrimitives:Vector., collisionGroup:int, collisionMask:int) : void + { + mesh.calculateBoundBox(); + var minX:Number = mesh.boundBox.minX * mesh.scaleX; + var maxX:Number = mesh.boundBox.maxX * mesh.scaleX; + var minY:Number = mesh.boundBox.minY * mesh.scaleX; + var maxY:Number = mesh.boundBox.maxY * mesh.scaleX; + var minZ:Number = mesh.boundBox.minZ * mesh.scaleX; + var maxZ:Number = mesh.boundBox.maxZ * mesh.scaleX; + var halfSize:name_194 = new name_194(); + halfSize.x = maxX - minX; + halfSize.y = maxY - minY; + halfSize.z = maxZ - minZ; + halfSize.scale(0.5); + var collisionBox:name_377 = new name_377(halfSize,collisionGroup,collisionMask); + collisionBox.transform.setMatrix(mesh.x,mesh.y,mesh.z,mesh.rotationX,mesh.rotationY,mesh.rotationZ); + var midPoint:name_194 = new name_194(0.5 * (maxX + minX),0.5 * (maxY + minY),0.5 * (maxZ + minZ)); + midPoint.transform4(collisionBox.transform); + collisionBox.transform.d = midPoint.x; + collisionBox.transform.h = midPoint.y; + collisionBox.transform.l = midPoint.z; + collisionPrimitives.push(collisionBox); + } + + public static function name_645(mesh:name_380, collisionPrimitives:Vector., collisionGroup:int, collisionMask:int) : void + { + var i:int = 0; + var baseIndex:uint = 0; + var edge:name_194 = null; + var len:Number = NaN; + var indices:Vector. = mesh.geometry.indices; + var vertexCoordinates:Vector. = mesh.geometry.method_275(name_126.POSITION); + var faceVertexIndices:Vector. = Vector.([indices[0],indices[1],indices[2]]); + var edges:Vector. = Vector.([new name_194(),new name_194(),new name_194()]); + var lengths:Vector. = new Vector.(3); + var vertices:Vector. = new Vector.(3); + for(i = 0; i < 3; i++) + { + baseIndex = 3 * faceVertexIndices[i]; + vertices[i] = new name_194(vertexCoordinates[baseIndex],vertexCoordinates[baseIndex + 1],vertexCoordinates[baseIndex + 2]); + } + var max:Number = -1; + var imax:int = 0; + for(i = 0; i < 3; ) + { + edge = edges[i]; + edge.method_366(vertices[(i + 1) % 3],vertices[i]); + len = lengths[i] = edge.length(); + if(len > max) + { + max = len; + imax = i; + } + i++; + } + var ix:int = (imax + 2) % 3; + var iy:int = (imax + 1) % 3; + var xAxis:name_194 = edges[ix]; + var yAxis:name_194 = edges[iy]; + yAxis.reverse(); + var width:Number = lengths[ix]; + var length:Number = lengths[iy]; + var translation:name_194 = vertices[(imax + 2) % 3].clone(); + translation.x += 0.5 * (xAxis.x + yAxis.x); + translation.y += 0.5 * (xAxis.y + yAxis.y); + translation.z += 0.5 * (xAxis.z + yAxis.z); + xAxis.normalize(); + yAxis.normalize(); + var zAxis:name_194 = new name_194().cross2(xAxis,yAxis); + var collisionRect:name_381 = new name_381(new name_194(width / 2,length / 2,0),collisionGroup,collisionMask); + var transform:Matrix4 = collisionRect.transform; + transform.a = xAxis.x; + transform.e = xAxis.y; + transform.i = xAxis.z; + transform.b = yAxis.x; + transform.f = yAxis.y; + transform.j = yAxis.z; + transform.c = zAxis.x; + transform.g = zAxis.y; + transform.k = zAxis.z; + transform.d = translation.x; + transform.h = translation.y; + transform.l = translation.z; + var matrix:Matrix4 = new Matrix4(); + matrix.setMatrix(mesh.x,mesh.y,mesh.z,mesh.rotationX,mesh.rotationY,mesh.rotationZ); + transform.append(matrix); + collisionPrimitives.push(collisionRect); + } + + public static function name_644(mesh:name_380, collisionPrimitives:Vector., collisionGroup:int, collisionMask:int) : int + { + var numTriangles:int = 0; + var j:int = 0; + var vertexBaseIndex:uint = 0; + var v:name_194 = null; + var indices:Vector. = mesh.geometry.indices; + var vertexCoordinates:Vector. = mesh.geometry.method_275(name_126.POSITION); + var vertices:Vector. = new Vector.(3); + vertices[0] = new name_194(); + vertices[1] = new name_194(); + vertices[2] = new name_194(); + for(var i:int = 0; i < indices.length; i += 3) + { + for(j = 0; j < 3; j++) + { + vertexBaseIndex = 3 * indices[i + j]; + v = vertices[j]; + v.x = vertexCoordinates[vertexBaseIndex]; + v.y = vertexCoordinates[vertexBaseIndex + 1]; + v.z = vertexCoordinates[vertexBaseIndex + 2]; + v.scale(mesh.scaleX); + } + numTriangles++; + collisionPrimitives.push(method_813(vertices[0],vertices[1],vertices[2],mesh,collisionGroup,collisionMask)); + } + return numTriangles; + } + + private static function method_813(v0:name_194, v1:name_194, v2:name_194, parentMesh:name_380, collisionGroup:int, collisionMask:int) : name_378 + { + var midPoint:name_194 = new name_194(); + midPoint.x = (v0.x + v1.x + v2.x) / 3; + midPoint.y = (v0.y + v1.y + v2.y) / 3; + midPoint.z = (v0.z + v1.z + v2.z) / 3; + var xAxis:name_194 = new name_194(); + xAxis.method_366(v1,v0); + v1.reset(xAxis.length(),0,0); + xAxis.normalize(); + var yAxis:name_194 = new name_194(); + yAxis.method_366(v2,v0); + var x:Number = yAxis.dot(xAxis); + var y:Number = Number(Math.sqrt(yAxis.method_365() - x * x)); + v2.reset(x,y,0); + var zAxis:name_194 = new name_194(); + zAxis.cross2(xAxis,yAxis); + zAxis.normalize(); + yAxis.cross2(zAxis,xAxis); + yAxis.normalize(); + var transform:Matrix4 = new Matrix4(); + transform.a = xAxis.x; + transform.e = xAxis.y; + transform.i = xAxis.z; + transform.b = yAxis.x; + transform.f = yAxis.y; + transform.j = yAxis.z; + transform.c = zAxis.x; + transform.g = zAxis.y; + transform.k = zAxis.z; + transform.d = midPoint.x; + transform.h = midPoint.y; + transform.l = midPoint.z; + var meshMatrix:Matrix4 = new Matrix4(); + meshMatrix.setMatrix(parentMesh.x,parentMesh.y,parentMesh.z,parentMesh.rotationX,parentMesh.rotationY,parentMesh.rotationZ); + transform.append(meshMatrix); + x = (v1.x + v2.x) / 3; + y = (v1.y + v2.y) / 3; + v0.reset(-x,-y,0); + v1.x -= x; + v1.y -= y; + v2.x -= x; + v2.y -= y; + var collisionTriangle:name_378 = new name_378(v0,v1,v2,collisionGroup,collisionMask); + collisionTriangle.transform = transform; + return collisionTriangle; + } + } +} + diff --git a/src/package_27/name_95.as b/src/package_27/name_95.as new file mode 100644 index 0000000..2ca1c75 --- /dev/null +++ b/src/package_27/name_95.as @@ -0,0 +1,33 @@ +package package_27 +{ + public class name_95 + { + public var flags:int; + + public function name_95() + { + super(); + } + + public function method_268(mask:int) : void + { + this.flags |= mask; + } + + public function method_270(mask:int) : void + { + this.flags &= ~mask; + } + + public function method_269(mask:int) : Boolean + { + return (this.flags & mask) != 0; + } + + public function method_271(mask:int) : Boolean + { + return (this.flags & mask) == mask; + } + } +} + diff --git a/src/package_28/name_119.as b/src/package_28/name_119.as new file mode 100644 index 0000000..3eb373a --- /dev/null +++ b/src/package_28/name_119.as @@ -0,0 +1,681 @@ +package package_28 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3D; + import flash.display3D.IndexBuffer3D; + import flash.display3D.VertexBuffer3D; + import flash.geom.Point; + import flash.geom.Vector3D; + import flash.utils.ByteArray; + import flash.utils.Endian; + import package_21.name_126; + import package_21.name_139; + import package_21.name_386; + import package_21.name_387; + import package_21.name_432; + import package_21.name_77; + + use namespace alternativa3d; + + public class name_119 extends name_77 + { + alternativa3d var _vertexStreams:Vector. = new Vector.(); + + alternativa3d var name_132:IndexBuffer3D; + + alternativa3d var _numVertices:int; + + alternativa3d var _indices:Vector. = new Vector.(); + + alternativa3d var var_170:Vector. = new Vector.(); + + alternativa3d var _attributesOffsets:Vector. = new Vector.(); + + private var var_171:Vector. = new Vector.(); + + public function name_119(numVertices:int = 0) + { + super(); + this.alternativa3d::_numVertices = numVertices; + } + + public function get numTriangles() : int + { + return this.alternativa3d::_indices.length / 3; + } + + public function get indices() : Vector. + { + return this.alternativa3d::_indices.slice(); + } + + public function set indices(value:Vector.) : void + { + if(value == null) + { + this.alternativa3d::_indices.length = 0; + } + else + { + this.alternativa3d::_indices = value.slice(); + } + } + + public function get numVertices() : int + { + return this.alternativa3d::_numVertices; + } + + public function set numVertices(value:int) : void + { + var vBuffer:name_432 = null; + var numMappings:int = 0; + if(this.alternativa3d::_numVertices != value) + { + for each(vBuffer in this.alternativa3d::_vertexStreams) + { + numMappings = int(vBuffer.attributes.length); + vBuffer.data.length = 4 * numMappings * value; + } + this.alternativa3d::_numVertices = value; + } + } + + public function addVertexStream(attributes:Array) : int + { + var next:uint = 0; + var numStandartFloats:int = 0; + var startIndex:int = 0; + var numMappings:int = int(attributes.length); + if(numMappings < 1) + { + throw new Error("Must be at least one attribute ​​to create the buffer."); + } + var vBuffer:name_432 = new name_432(); + var newBufferIndex:int = int(this.alternativa3d::_vertexStreams.length); + var attribute:uint = uint(attributes[0]); + var stride:int = 1; + for(var i:int = 1; i <= numMappings; i++) + { + next = i < numMappings ? uint(attributes[i]) : 0; + if(next != attribute) + { + if(attribute != 0) + { + if(attribute < this.alternativa3d::var_170.length && this.alternativa3d::var_170[attribute] != null) + { + throw new Error("Attribute " + attribute + " already used in this geometry."); + } + numStandartFloats = name_126.name_433(attribute); + if(numStandartFloats != 0 && numStandartFloats != stride) + { + throw new Error("Standard attributes must be predefined size."); + } + if(this.alternativa3d::var_170.length < attribute) + { + this.alternativa3d::var_170.length = attribute + 1; + this.alternativa3d::_attributesOffsets.length = attribute + 1; + this.var_171.length = attribute + 1; + } + startIndex = i - stride; + this.alternativa3d::var_170[attribute] = vBuffer; + this.alternativa3d::_attributesOffsets[attribute] = startIndex; + this.var_171[attribute] = stride; + } + stride = 1; + } + else + { + stride++; + } + attribute = next; + } + vBuffer.attributes = attributes.slice(); + vBuffer.data = new ByteArray(); + vBuffer.data.endian = Endian.LITTLE_ENDIAN; + vBuffer.data.length = 4 * numMappings * this.alternativa3d::_numVertices; + this.alternativa3d::_vertexStreams[newBufferIndex] = vBuffer; + return newBufferIndex; + } + + public function get method_276() : int + { + return this.alternativa3d::_vertexStreams.length; + } + + public function method_279(index:int) : Array + { + return this.alternativa3d::_vertexStreams[index].attributes.slice(); + } + + public function method_281(attribute:uint) : Boolean + { + return attribute < this.alternativa3d::var_170.length && this.alternativa3d::var_170[attribute] != null; + } + + public function findVertexStreamByAttribute(attribute:uint) : int + { + var i:int = 0; + var vBuffer:name_432 = attribute < this.alternativa3d::var_170.length ? this.alternativa3d::var_170[attribute] : null; + if(vBuffer != null) + { + for(i = 0; i < this.alternativa3d::_vertexStreams.length; ) + { + if(this.alternativa3d::_vertexStreams[i] == vBuffer) + { + return i; + } + i++; + } + } + return -1; + } + + public function getAttributeOffset(attribute:uint) : int + { + var vBuffer:name_432 = attribute < this.alternativa3d::var_170.length ? this.alternativa3d::var_170[attribute] : null; + if(vBuffer == null) + { + throw new Error("Attribute not found."); + } + return this.alternativa3d::_attributesOffsets[attribute]; + } + + public function setAttributeValues(attribute:uint, values:Vector.) : void + { + var srcIndex:int = 0; + var j:int = 0; + var vBuffer:name_432 = attribute < this.alternativa3d::var_170.length ? this.alternativa3d::var_170[attribute] : null; + if(vBuffer == null) + { + throw new Error("Attribute not found."); + } + var stride:int = this.var_171[attribute]; + if(values == null || values.length != stride * this.alternativa3d::_numVertices) + { + throw new Error("Values count must be the same."); + } + var numMappings:int = int(vBuffer.attributes.length); + var data:ByteArray = vBuffer.data; + var offset:int = this.alternativa3d::_attributesOffsets[attribute]; + for(var i:int = 0; i < this.alternativa3d::_numVertices; i++) + { + srcIndex = stride * i; + data.position = 4 * (numMappings * i + offset); + for(j = 0; j < stride; j++) + { + data.writeFloat(values[int(srcIndex + j)]); + } + } + } + + public function method_275(attribute:uint) : Vector. + { + var dstIndex:int = 0; + var j:int = 0; + var vBuffer:name_432 = attribute < this.alternativa3d::var_170.length ? this.alternativa3d::var_170[attribute] : null; + if(vBuffer == null) + { + throw new Error("Attribute not found."); + } + var data:ByteArray = vBuffer.data; + var stride:int = this.var_171[attribute]; + var result:Vector. = new Vector.(stride * this.alternativa3d::_numVertices); + var numMappings:int = int(vBuffer.attributes.length); + var offset:int = this.alternativa3d::_attributesOffsets[attribute]; + for(var i:int = 0; i < this.alternativa3d::_numVertices; i++) + { + data.position = 4 * (numMappings * i + offset); + dstIndex = stride * i; + for(j = 0; j < stride; j++) + { + result[int(dstIndex + j)] = data.readFloat(); + } + } + return result; + } + + override public function get isUploaded() : Boolean + { + return this.alternativa3d::name_132 != null; + } + + override public function upload(context3D:Context3D) : void + { + var vBuffer:name_432 = null; + var i:int = 0; + var numMappings:int = 0; + var data:ByteArray = null; + var numBuffers:int = int(this.alternativa3d::_vertexStreams.length); + if(this.alternativa3d::name_132 != null) + { + this.alternativa3d::name_132.dispose(); + this.alternativa3d::name_132 = null; + for(i = 0; i < numBuffers; i++) + { + vBuffer = this.alternativa3d::_vertexStreams[i]; + vBuffer.buffer.dispose(); + vBuffer.buffer = null; + } + } + if(this.alternativa3d::_indices.length <= 0 || this.alternativa3d::_numVertices <= 0) + { + return; + } + for(i = 0; i < numBuffers; ) + { + vBuffer = this.alternativa3d::_vertexStreams[i]; + numMappings = int(vBuffer.attributes.length); + data = vBuffer.data; + if(data == null) + { + throw new Error("Cannot upload without vertex buffer data."); + } + vBuffer.buffer = context3D.createVertexBuffer(this.alternativa3d::_numVertices,numMappings); + vBuffer.buffer.uploadFromByteArray(data,0,0,this.alternativa3d::_numVertices); + i++; + } + var numIndices:int = int(this.alternativa3d::_indices.length); + this.alternativa3d::name_132 = context3D.createIndexBuffer(numIndices); + this.alternativa3d::name_132.uploadFromVector(this.alternativa3d::_indices,0,numIndices); + } + + override public function dispose() : void + { + var numBuffers:int = 0; + var i:int = 0; + var vBuffer:name_432 = null; + if(this.alternativa3d::name_132 != null) + { + this.alternativa3d::name_132.dispose(); + this.alternativa3d::name_132 = null; + numBuffers = int(this.alternativa3d::_vertexStreams.length); + for(i = 0; i < numBuffers; i++) + { + vBuffer = this.alternativa3d::_vertexStreams[i]; + vBuffer.buffer.dispose(); + vBuffer.buffer = null; + } + } + } + + public function method_278(data:Vector., startOffset:int, count:int) : void + { + if(this.alternativa3d::name_132 == null) + { + throw new Error("Geometry must be uploaded."); + } + this.alternativa3d::name_132.uploadFromVector(data,startOffset,count); + } + + public function method_280(data:ByteArray, byteArrayOffset:int, startOffset:int, count:int) : void + { + if(this.alternativa3d::name_132 == null) + { + throw new Error("Geometry must be uploaded."); + } + this.alternativa3d::name_132.uploadFromByteArray(data,byteArrayOffset,startOffset,count); + } + + public function method_277(index:int, data:Vector., startVertex:int, numVertices:int) : void + { + if(this.alternativa3d::name_132 == null) + { + throw new Error("Geometry must be uploaded."); + } + this.alternativa3d::_vertexStreams[index].buffer.uploadFromVector(data,startVertex,numVertices); + } + + public function method_282(index:int, data:ByteArray, byteArrayOffset:int, startVertex:int, numVertices:int) : void + { + if(this.alternativa3d::name_132 == null) + { + throw new Error("Geometry must be uploaded."); + } + this.alternativa3d::_vertexStreams[index].buffer.uploadFromByteArray(data,byteArrayOffset,startVertex,numVertices); + } + + alternativa3d function intersectRay(origin:Vector3D, direction:Vector3D, indexBegin:uint, numTriangles:uint) : name_387 + { + var nax:Number = NaN; + var nay:Number = NaN; + var naz:Number = NaN; + var nau:Number = NaN; + var nav:Number = NaN; + var nbx:Number = NaN; + var nby:Number = NaN; + var nbz:Number = NaN; + var nbu:Number = NaN; + var nbv:Number = NaN; + var ncx:Number = NaN; + var ncy:Number = NaN; + var ncz:Number = NaN; + var ncu:Number = NaN; + var ncv:Number = NaN; + var nrmX:Number = NaN; + var nrmY:Number = NaN; + var nrmZ:Number = NaN; + var point:Vector3D = null; + var positionStream:name_432 = null; + var uvStream:name_432 = null; + var uvBuffer:ByteArray = null; + var uvOffset:uint = 0; + var uvStride:uint = 0; + var indexA:uint = 0; + var indexB:uint = 0; + var indexC:uint = 0; + var ax:Number = NaN; + var ay:Number = NaN; + var az:Number = NaN; + var au:Number = NaN; + var av:Number = NaN; + var bx:Number = NaN; + var by:Number = NaN; + var bz:Number = NaN; + var bu:Number = NaN; + var bv:Number = NaN; + var cx:Number = NaN; + var cy:Number = NaN; + var cz:Number = NaN; + var cu:Number = NaN; + var cv:Number = NaN; + var abx:Number = NaN; + var aby:Number = NaN; + var abz:Number = NaN; + var acx:Number = NaN; + var acy:Number = NaN; + var acz:Number = NaN; + var normalX:Number = NaN; + var normalY:Number = NaN; + var normalZ:Number = NaN; + var len:Number = NaN; + var dot:Number = NaN; + var offset:Number = NaN; + var time:Number = NaN; + var rx:Number = NaN; + var ry:Number = NaN; + var rz:Number = NaN; + var res:name_387 = null; + var abu:Number = NaN; + var abv:Number = NaN; + var acu:Number = NaN; + var acv:Number = NaN; + var det:Number = NaN; + var ima:Number = NaN; + var imb:Number = NaN; + var imc:Number = NaN; + var imd:Number = NaN; + var ime:Number = NaN; + var imf:Number = NaN; + var img:Number = NaN; + var imh:Number = NaN; + var ma:Number = NaN; + var mb:Number = NaN; + var mc:Number = NaN; + var md:Number = NaN; + var me:Number = NaN; + var mf:Number = NaN; + var mg:Number = NaN; + var mh:Number = NaN; + var ox:Number = Number(origin.x); + var oy:Number = Number(origin.y); + var oz:Number = Number(origin.z); + var dx:Number = Number(direction.x); + var dy:Number = Number(direction.y); + var dz:Number = Number(direction.z); + var minTime:Number = 1e+22; + var posAttribute:int = int(name_126.POSITION); + var uvAttribute:int = int(name_126.TEXCOORDS[0]); + if(name_126.POSITION >= this.alternativa3d::var_170.length || (positionStream = this.alternativa3d::var_170[posAttribute]) == null) + { + throw new Error("Raycast require POSITION attribute"); + } + var positionBuffer:ByteArray = positionStream.data; + var positionOffset:uint = uint(this.alternativa3d::_attributesOffsets[posAttribute] * 4); + var stride:uint = positionStream.attributes.length * 4; + var hasUV:Boolean = uvAttribute < this.alternativa3d::var_170.length && (uvStream = this.alternativa3d::var_170[uvAttribute]) != null; + if(hasUV) + { + uvBuffer = uvStream.data; + uvOffset = uint(this.alternativa3d::_attributesOffsets[uvAttribute] * 4); + uvStride = uvStream.attributes.length * 4; + } + if(numTriangles * 3 > this.indices.length) + { + throw new ArgumentError("index is out of bounds"); + } + for(var i:int = int(indexBegin),var count:int = indexBegin + numTriangles * 3; i < count; ) + { + indexA = this.indices[i]; + indexB = this.indices[int(i + 1)]; + indexC = this.indices[int(i + 2)]; + positionBuffer.position = indexA * stride + positionOffset; + ax = Number(positionBuffer.readFloat()); + ay = Number(positionBuffer.readFloat()); + az = Number(positionBuffer.readFloat()); + positionBuffer.position = indexB * stride + positionOffset; + bx = Number(positionBuffer.readFloat()); + by = Number(positionBuffer.readFloat()); + bz = Number(positionBuffer.readFloat()); + positionBuffer.position = indexC * stride + positionOffset; + cx = Number(positionBuffer.readFloat()); + cy = Number(positionBuffer.readFloat()); + cz = Number(positionBuffer.readFloat()); + if(hasUV) + { + uvBuffer.position = indexA * uvStride + uvOffset; + au = Number(uvBuffer.readFloat()); + av = Number(uvBuffer.readFloat()); + uvBuffer.position = indexB * uvStride + uvOffset; + bu = Number(uvBuffer.readFloat()); + bv = Number(uvBuffer.readFloat()); + uvBuffer.position = indexC * uvStride + uvOffset; + cu = Number(uvBuffer.readFloat()); + cv = Number(uvBuffer.readFloat()); + } + abx = bx - ax; + aby = by - ay; + abz = bz - az; + acx = cx - ax; + acy = cy - ay; + acz = cz - az; + normalX = acz * aby - acy * abz; + normalY = acx * abz - acz * abx; + normalZ = acy * abx - acx * aby; + len = normalX * normalX + normalY * normalY + normalZ * normalZ; + if(len > 0.001) + { + len = 1 / Math.sqrt(len); + normalX *= len; + normalY *= len; + normalZ *= len; + } + dot = dx * normalX + dy * normalY + dz * normalZ; + if(dot < 0) + { + offset = ox * normalX + oy * normalY + oz * normalZ - (ax * normalX + ay * normalY + az * normalZ); + if(offset > 0) + { + time = -offset / dot; + if(point == null || time < minTime) + { + rx = ox + dx * time; + ry = oy + dy * time; + rz = oz + dz * time; + abx = bx - ax; + aby = by - ay; + abz = bz - az; + acx = rx - ax; + acy = ry - ay; + acz = rz - az; + if((acz * aby - acy * abz) * normalX + (acx * abz - acz * abx) * normalY + (acy * abx - acx * aby) * normalZ >= 0) + { + abx = cx - bx; + aby = cy - by; + abz = cz - bz; + acx = rx - bx; + acy = ry - by; + acz = rz - bz; + if((acz * aby - acy * abz) * normalX + (acx * abz - acz * abx) * normalY + (acy * abx - acx * aby) * normalZ >= 0) + { + abx = ax - cx; + aby = ay - cy; + abz = az - cz; + acx = rx - cx; + acy = ry - cy; + acz = rz - cz; + if((acz * aby - acy * abz) * normalX + (acx * abz - acz * abx) * normalY + (acy * abx - acx * aby) * normalZ >= 0) + { + if(time < minTime) + { + minTime = time; + if(point == null) + { + point = new Vector3D(); + } + point.x = rx; + point.y = ry; + point.z = rz; + nax = ax; + nay = ay; + naz = az; + nau = au; + nav = av; + nrmX = normalX; + nbx = bx; + nby = by; + nbz = bz; + nbu = bu; + nbv = bv; + nrmY = normalY; + ncx = cx; + ncy = cy; + ncz = cz; + ncu = cu; + ncv = cv; + nrmZ = normalZ; + } + } + } + } + } + } + } + i += 3; + } + if(point != null) + { + res = new name_387(); + res.point = point; + res.time = minTime; + if(hasUV) + { + abx = nbx - nax; + aby = nby - nay; + abz = nbz - naz; + abu = nbu - nau; + abv = nbv - nav; + acx = ncx - nax; + acy = ncy - nay; + acz = ncz - naz; + acu = ncu - nau; + acv = ncv - nav; + det = -nrmX * acy * abz + acx * nrmY * abz + nrmX * aby * acz - abx * nrmY * acz - acx * aby * nrmZ + abx * acy * nrmZ; + ima = (-nrmY * acz + acy * nrmZ) / det; + imb = (nrmX * acz - acx * nrmZ) / det; + imc = (-nrmX * acy + acx * nrmY) / det; + imd = (nax * nrmY * acz - nrmX * nay * acz - nax * acy * nrmZ + acx * nay * nrmZ + nrmX * acy * naz - acx * nrmY * naz) / det; + ime = (nrmY * abz - aby * nrmZ) / det; + imf = (-nrmX * abz + abx * nrmZ) / det; + img = (nrmX * aby - abx * nrmY) / det; + imh = (nrmX * nay * abz - nax * nrmY * abz + nax * aby * nrmZ - abx * nay * nrmZ - nrmX * aby * naz + abx * nrmY * naz) / det; + ma = abu * ima + acu * ime; + mb = abu * imb + acu * imf; + mc = abu * imc + acu * img; + md = abu * imd + acu * imh + nau; + me = abv * ima + acv * ime; + mf = abv * imb + acv * imf; + mg = abv * imc + acv * img; + mh = abv * imd + acv * imh + nav; + res.uv = new Point(ma * point.x + mb * point.y + mc * point.z + md,me * point.x + mf * point.y + mg * point.z + mh); + } + return res; + } + return null; + } + + alternativa3d function getVertexBuffer(attribute:int) : VertexBuffer3D + { + var stream:name_432 = null; + if(attribute < this.alternativa3d::var_170.length) + { + stream = this.alternativa3d::var_170[attribute]; + return stream != null ? stream.buffer : null; + } + return null; + } + + alternativa3d function updateBoundBox(boundBox:name_386, transform:name_139 = null) : void + { + var vx:Number = NaN; + var vy:Number = NaN; + var vz:Number = NaN; + var x:Number = NaN; + var y:Number = NaN; + var z:Number = NaN; + var vBuffer:name_432 = name_126.POSITION < this.alternativa3d::var_170.length ? this.alternativa3d::var_170[name_126.POSITION] : null; + if(vBuffer == null) + { + throw new Error("Cannot calculate BoundBox without data."); + } + var offset:int = this.alternativa3d::_attributesOffsets[name_126.POSITION]; + var numMappings:int = int(vBuffer.attributes.length); + var data:ByteArray = vBuffer.data; + for(var i:int = 0; i < this.alternativa3d::_numVertices; ) + { + data.position = 4 * (numMappings * i + offset); + vx = Number(data.readFloat()); + vy = Number(data.readFloat()); + vz = Number(data.readFloat()); + if(transform != null) + { + x = transform.a * vx + transform.b * vy + transform.c * vz + transform.d; + y = transform.e * vx + transform.f * vy + transform.g * vz + transform.h; + z = transform.i * vx + transform.j * vy + transform.k * vz + transform.l; + } + else + { + x = vx; + y = vy; + z = vz; + } + if(x < boundBox.minX) + { + boundBox.minX = x; + } + if(x > boundBox.maxX) + { + boundBox.maxX = x; + } + if(y < boundBox.minY) + { + boundBox.minY = y; + } + if(y > boundBox.maxY) + { + boundBox.maxY = y; + } + if(z < boundBox.minZ) + { + boundBox.minZ = z; + } + if(z > boundBox.maxZ) + { + boundBox.maxZ = z; + } + i++; + } + } + } +} + diff --git a/src/package_28/name_129.as b/src/package_28/name_129.as new file mode 100644 index 0000000..5e2f919 --- /dev/null +++ b/src/package_28/name_129.as @@ -0,0 +1,33 @@ +package package_28 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.textures.TextureBase; + import package_21.name_77; + + use namespace alternativa3d; + + public class name_129 extends name_77 + { + alternativa3d var _texture:TextureBase; + + public function name_129() + { + super(); + } + + override public function get isUploaded() : Boolean + { + return this.alternativa3d::_texture != null; + } + + override public function dispose() : void + { + if(this.alternativa3d::_texture != null) + { + this.alternativa3d::_texture.dispose(); + this.alternativa3d::_texture = null; + } + } + } +} + diff --git a/src/package_28/name_167.as b/src/package_28/name_167.as new file mode 100644 index 0000000..1b9e174 --- /dev/null +++ b/src/package_28/name_167.as @@ -0,0 +1,34 @@ +package package_28 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3D; + import flash.display3D.textures.TextureBase; + + use namespace alternativa3d; + + public class name_167 extends name_129 + { + public var url:String; + + public function name_167(url:String) + { + super(); + this.url = url; + } + + override public function upload(context3D:Context3D) : void + { + } + + public function get data() : TextureBase + { + return alternativa3d::_texture; + } + + public function set data(value:TextureBase) : void + { + alternativa3d::_texture = value; + } + } +} + diff --git a/src/package_28/name_241.as b/src/package_28/name_241.as new file mode 100644 index 0000000..9216aee --- /dev/null +++ b/src/package_28/name_241.as @@ -0,0 +1,62 @@ +package package_28 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3D; + import flash.display3D.Context3DTextureFormat; + import flash.display3D.textures.CubeTexture; + import flash.display3D.textures.Texture; + import flash.utils.ByteArray; + + use namespace alternativa3d; + + public class name_241 extends name_129 + { + public var data:ByteArray; + + public function name_241(data:ByteArray) + { + super(); + this.data = data; + } + + override public function upload(context3D:Context3D) : void + { + var type:uint = 0; + var format:String = null; + if(alternativa3d::_texture != null) + { + alternativa3d::_texture.dispose(); + } + if(this.data != null) + { + this.data.position = 6; + type = uint(this.data.readByte()); + switch(type & 0x7F) + { + case 0: + format = Context3DTextureFormat.BGRA; + break; + case 1: + format = Context3DTextureFormat.BGRA; + break; + case 2: + format = Context3DTextureFormat.COMPRESSED; + } + if((type & ~0x7F) == 0) + { + alternativa3d::_texture = context3D.createTexture(1 << this.data.readByte(),1 << this.data.readByte(),format,false); + Texture(alternativa3d::_texture).uploadCompressedTextureFromByteArray(this.data,0); + } + else + { + alternativa3d::_texture = context3D.createCubeTexture(1 << this.data.readByte(),format,false); + CubeTexture(alternativa3d::_texture).uploadCompressedTextureFromByteArray(this.data,0); + } + return; + } + alternativa3d::_texture = null; + throw new Error("Cannot upload without data"); + } + } +} + diff --git a/src/package_28/name_259.as b/src/package_28/name_259.as new file mode 100644 index 0000000..5f6d874 --- /dev/null +++ b/src/package_28/name_259.as @@ -0,0 +1,223 @@ +package package_28 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.BitmapData; + import flash.display3D.Context3D; + import flash.display3D.Context3DTextureFormat; + import flash.display3D.textures.CubeTexture; + import flash.filters.ConvolutionFilter; + import flash.geom.Matrix; + import flash.geom.Point; + import flash.geom.Rectangle; + + use namespace alternativa3d; + + public class name_259 extends name_129 + { + private static var temporaryBitmapData:BitmapData; + + private static const filter:ConvolutionFilter = new ConvolutionFilter(2,2,[1,1,1,1],4,0,false,true); + + private static const rect:Rectangle = new Rectangle(); + + private static const point:Point = new Point(); + + private static const matrix:Matrix = new Matrix(0.5,0,0,0.5); + + public var left:BitmapData; + + public var right:BitmapData; + + public var top:BitmapData; + + public var bottom:BitmapData; + + public var front:BitmapData; + + public var back:BitmapData; + + public function name_259(left:BitmapData, right:BitmapData, bottom:BitmapData, top:BitmapData, back:BitmapData, front:BitmapData) + { + super(); + this.left = left; + this.right = right; + this.bottom = bottom; + this.top = top; + this.back = back; + this.front = front; + } + + override public function upload(context3D:Context3D) : void + { + if(alternativa3d::_texture != null) + { + alternativa3d::_texture.dispose(); + } + alternativa3d::_texture = context3D.createCubeTexture(this.left.width,Context3DTextureFormat.BGRA,false); + var cubeTexture:CubeTexture = CubeTexture(alternativa3d::_texture); + filter.preserveAlpha = !this.left.transparent; + var bmp:BitmapData = temporaryBitmapData != null ? temporaryBitmapData : new BitmapData(this.left.width,this.left.height,this.left.transparent); + var level:int = 0; + cubeTexture.uploadFromBitmapData(this.left,1,level++); + var current:BitmapData = this.left; + rect.width = this.left.width; + rect.height = this.left.height; + while(rect.width % 2 == 0 || rect.height % 2 == 0) + { + bmp.applyFilter(current,rect,point,filter); + rect.width >>= 1; + rect.height >>= 1; + if(rect.width == 0) + { + rect.width = 1; + } + if(rect.height == 0) + { + rect.height = 1; + } + if(current != this.left) + { + current.dispose(); + } + current = new BitmapData(rect.width,rect.height,this.left.transparent,0); + current.draw(bmp,matrix,null,null,null,false); + cubeTexture.uploadFromBitmapData(current,1,level++); + } + level = 0; + cubeTexture.uploadFromBitmapData(this.right,0,level++); + current = this.right; + rect.width = this.right.width; + rect.height = this.right.height; + while(rect.width % 2 == 0 || rect.height % 2 == 0) + { + bmp.applyFilter(current,rect,point,filter); + rect.width >>= 1; + rect.height >>= 1; + if(rect.width == 0) + { + rect.width = 1; + } + if(rect.height == 0) + { + rect.height = 1; + } + if(current != this.right) + { + current.dispose(); + } + current = new BitmapData(rect.width,rect.height,this.right.transparent,0); + current.draw(bmp,matrix,null,null,null,false); + cubeTexture.uploadFromBitmapData(current,0,level++); + } + level = 0; + cubeTexture.uploadFromBitmapData(this.back,3,level++); + current = this.back; + rect.width = this.back.width; + rect.height = this.back.height; + while(rect.width % 2 == 0 || rect.height % 2 == 0) + { + bmp.applyFilter(current,rect,point,filter); + rect.width >>= 1; + rect.height >>= 1; + if(rect.width == 0) + { + rect.width = 1; + } + if(rect.height == 0) + { + rect.height = 1; + } + if(current != this.back) + { + current.dispose(); + } + current = new BitmapData(rect.width,rect.height,this.back.transparent,0); + current.draw(bmp,matrix,null,null,null,false); + cubeTexture.uploadFromBitmapData(current,3,level++); + } + level = 0; + cubeTexture.uploadFromBitmapData(this.front,2,level++); + current = this.front; + rect.width = this.front.width; + rect.height = this.front.height; + while(rect.width % 2 == 0 || rect.height % 2 == 0) + { + bmp.applyFilter(current,rect,point,filter); + rect.width >>= 1; + rect.height >>= 1; + if(rect.width == 0) + { + rect.width = 1; + } + if(rect.height == 0) + { + rect.height = 1; + } + if(current != this.front) + { + current.dispose(); + } + current = new BitmapData(rect.width,rect.height,this.front.transparent,0); + current.draw(bmp,matrix,null,null,null,false); + cubeTexture.uploadFromBitmapData(current,2,level++); + } + level = 0; + cubeTexture.uploadFromBitmapData(this.bottom,5,level++); + current = this.bottom; + rect.width = this.bottom.width; + rect.height = this.bottom.height; + while(rect.width % 2 == 0 || rect.height % 2 == 0) + { + bmp.applyFilter(current,rect,point,filter); + rect.width >>= 1; + rect.height >>= 1; + if(rect.width == 0) + { + rect.width = 1; + } + if(rect.height == 0) + { + rect.height = 1; + } + if(current != this.bottom) + { + current.dispose(); + } + current = new BitmapData(rect.width,rect.height,this.bottom.transparent,0); + current.draw(bmp,matrix,null,null,null,false); + cubeTexture.uploadFromBitmapData(current,5,level++); + } + level = 0; + cubeTexture.uploadFromBitmapData(this.top,4,level++); + current = this.top; + rect.width = this.top.width; + rect.height = this.top.height; + while(rect.width % 2 == 0 || rect.height % 2 == 0) + { + bmp.applyFilter(current,rect,point,filter); + rect.width >>= 1; + rect.height >>= 1; + if(rect.width == 0) + { + rect.width = 1; + } + if(rect.height == 0) + { + rect.height = 1; + } + if(current != this.top) + { + current.dispose(); + } + current = new BitmapData(rect.width,rect.height,this.top.transparent,0); + current.draw(bmp,matrix,null,null,null,false); + cubeTexture.uploadFromBitmapData(current,4,level++); + } + if(temporaryBitmapData == null) + { + bmp.dispose(); + } + } + } +} + diff --git a/src/package_28/name_694.as b/src/package_28/name_694.as new file mode 100644 index 0000000..34531ce --- /dev/null +++ b/src/package_28/name_694.as @@ -0,0 +1,248 @@ +package package_28 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3D; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DVertexBufferFormat; + import flash.display3D.IndexBuffer3D; + import flash.display3D.VertexBuffer3D; + import package_21.name_124; + import package_21.name_128; + import package_21.name_135; + import package_21.name_139; + import package_21.name_386; + import package_21.name_77; + import package_21.name_78; + import package_4.name_127; + + use namespace alternativa3d; + + public class name_694 extends name_77 + { + private const const_6:uint = 65500; + + private const const_5:Number = 2 * Math.tan(Math.PI / 6); + + private const const_4:uint = 7; + + alternativa3d var vertexBuffers:Vector.; + + alternativa3d var indexBuffers:Vector.; + + private var var_688:Vector.; + + private var vertices:Vector.>; + + private var indices:Vector.>; + + private var var_686:int = 0; + + private var var_687:uint = 0; + + public function name_694() + { + super(); + this.alternativa3d::vertexBuffers = new Vector.(1); + this.alternativa3d::indexBuffers = new Vector.(1); + this.clear(); + } + + override public function upload(context3D:Context3D) : void + { + var verts:Vector. = null; + var inds:Vector. = null; + var vBuffer:VertexBuffer3D = null; + var iBuffer:IndexBuffer3D = null; + for(var i:int = 0; i <= this.var_686; ) + { + if(this.alternativa3d::vertexBuffers[i] != null) + { + this.alternativa3d::vertexBuffers[i].dispose(); + } + if(this.alternativa3d::indexBuffers[i] != null) + { + this.alternativa3d::indexBuffers[i].dispose(); + } + if(this.var_688[i] > 0) + { + verts = this.vertices[i]; + inds = this.indices[i]; + vBuffer = this.alternativa3d::vertexBuffers[i] = context3D.createVertexBuffer(verts.length / this.const_4,this.const_4); + vBuffer.uploadFromVector(verts,0,verts.length / this.const_4); + iBuffer = this.alternativa3d::indexBuffers[i] = context3D.createIndexBuffer(inds.length); + iBuffer.uploadFromVector(inds,0,inds.length); + } + i++; + } + } + + override public function dispose() : void + { + for(var i:int = 0; i <= this.var_686; ) + { + if(this.alternativa3d::vertexBuffers[i] != null) + { + this.alternativa3d::vertexBuffers[i].dispose(); + this.alternativa3d::vertexBuffers[i] = null; + } + if(this.alternativa3d::indexBuffers[i] != null) + { + this.alternativa3d::indexBuffers[i].dispose(); + this.alternativa3d::indexBuffers[i] = null; + } + i++; + } + } + + override public function get isUploaded() : Boolean + { + for(var i:int = 0; i <= this.var_686; ) + { + if(this.alternativa3d::vertexBuffers[i] == null) + { + return false; + } + if(this.alternativa3d::indexBuffers[i] == null) + { + return false; + } + i++; + } + return true; + } + + public function clear() : void + { + this.dispose(); + this.vertices = new Vector.>(); + this.indices = new Vector.>(); + this.vertices[0] = new Vector.(); + this.indices[0] = new Vector.(); + this.var_688 = new Vector.(1); + this.var_687 = 0; + } + + alternativa3d function updateBoundBox(boundBox:name_386, transform:name_139 = null) : void + { + var j:int = 0; + var vcount:int = 0; + var verts:Vector. = null; + var vx:Number = NaN; + var vy:Number = NaN; + var vz:Number = NaN; + var x:Number = NaN; + var y:Number = NaN; + var z:Number = NaN; + for(var i:int = 0,var count:int = int(this.vertices.length); i < count; i++) + { + for(j = 0,vcount = int(this.vertices[i].length); j < vcount; ) + { + verts = this.vertices[i]; + vx = verts[j]; + vy = verts[int(j + 1)]; + vz = verts[int(j + 2)]; + if(transform != null) + { + x = transform.a * vx + transform.b * vy + transform.c * vz + transform.d; + y = transform.e * vx + transform.f * vy + transform.g * vz + transform.h; + z = transform.i * vx + transform.j * vy + transform.k * vz + transform.l; + } + else + { + x = vx; + y = vy; + z = vz; + } + if(x < boundBox.minX) + { + boundBox.minX = x; + } + if(x > boundBox.maxX) + { + boundBox.maxX = x; + } + if(y < boundBox.minY) + { + boundBox.minY = y; + } + if(y > boundBox.maxY) + { + boundBox.maxY = y; + } + if(z < boundBox.minZ) + { + boundBox.minZ = z; + } + if(z > boundBox.maxZ) + { + boundBox.maxZ = z; + } + j += this.const_4; + } + } + } + + alternativa3d function name_695(camera:name_124, color:Vector., thickness:Number, object:name_78, shader:name_127) : void + { + var iBuffer:IndexBuffer3D = null; + var vBuffer:VertexBuffer3D = null; + var drawUnit:name_135 = null; + if(shader.program == null) + { + shader.upload(camera.alternativa3d::context3D); + } + for(var i:int = 0; i <= this.var_686; ) + { + iBuffer = this.alternativa3d::indexBuffers[i]; + vBuffer = this.alternativa3d::vertexBuffers[i]; + if(iBuffer != null && vBuffer != null) + { + drawUnit = camera.alternativa3d::renderer.alternativa3d::name_137(object,shader.program,iBuffer,0,this.var_688[i],shader); + drawUnit.alternativa3d::setVertexBufferAt(0,vBuffer,0,Context3DVertexBufferFormat.FLOAT_4); + drawUnit.alternativa3d::setVertexBufferAt(1,vBuffer,4,Context3DVertexBufferFormat.FLOAT_3); + drawUnit.alternativa3d::name_144(0,0,1,-1,0.000001); + drawUnit.alternativa3d::name_144(1,-this.const_5 / camera.view.alternativa3d::_height,0,camera.nearClipping,thickness); + drawUnit.alternativa3d::name_412(2,object.alternativa3d::localToCameraTransform); + drawUnit.alternativa3d::name_136(camera,5); + drawUnit.alternativa3d::name_134(0,color[0],color[1],color[2],color[3]); + if(color[3] < 1) + { + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.SOURCE_ALPHA; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.TRANSPARENT_SORT); + } + else + { + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.OPAQUE); + } + } + i++; + } + } + + alternativa3d function method_558(v1x:Number, v1y:Number, v1z:Number, v2x:Number, v2y:Number, v2z:Number) : void + { + var currentVertices:Vector. = this.vertices[this.var_686]; + var currentIndices:Vector. = this.indices[this.var_686]; + var verticesCount:uint = currentVertices.length / this.const_4; + if(verticesCount > this.const_6 - 4) + { + this.var_687 = 0; + ++this.var_686; + this.var_688[this.var_686] = 0; + currentVertices = this.vertices[this.var_686] = new Vector.(); + currentIndices = this.indices[this.var_686] = new Vector.(); + this.alternativa3d::vertexBuffers.length = this.var_686 + 1; + this.alternativa3d::indexBuffers.length = this.var_686 + 1; + } + else + { + this.var_688[this.var_686] += 2; + } + currentVertices.push(v1x,v1y,v1z,0.5,v2x,v2y,v2z,v2x,v2y,v2z,-0.5,v1x,v1y,v1z,v1x,v1y,v1z,-0.5,v2x,v2y,v2z,v2x,v2y,v2z,0.5,v1x,v1y,v1z); + currentIndices.push(this.var_687,this.var_687 + 1,this.var_687 + 2,this.var_687 + 3,this.var_687 + 2,this.var_687 + 1); + this.var_687 += 4; + } + } +} + diff --git a/src/package_28/name_93.as b/src/package_28/name_93.as new file mode 100644 index 0000000..8c2af66 --- /dev/null +++ b/src/package_28/name_93.as @@ -0,0 +1,155 @@ +package package_28 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.BitmapData; + import flash.display3D.Context3D; + import flash.display3D.Context3DTextureFormat; + import flash.display3D.textures.Texture; + import flash.filters.ConvolutionFilter; + import flash.geom.Matrix; + import flash.geom.Point; + import flash.geom.Rectangle; + + use namespace alternativa3d; + + public class name_93 extends name_129 + { + private static const rect:Rectangle = new Rectangle(); + + private static const filter:ConvolutionFilter = new ConvolutionFilter(2,2,[1,1,1,1],4,0,false,true); + + private static const matrix:Matrix = new Matrix(0.5,0,0,0.5); + + private static const point:Point = new Point(); + + public var data:BitmapData; + + public function name_93(data:BitmapData) + { + super(); + this.data = data; + } + + alternativa3d static function method_272(texture:Texture, bitmapData:BitmapData) : void + { + rect.width = bitmapData.width; + rect.height = bitmapData.height; + var level:int = 1; + var bmp:BitmapData = new BitmapData(rect.width,rect.height,bitmapData.transparent); + var current:BitmapData = bitmapData; + while(rect.width % 2 == 0 || rect.height % 2 == 0) + { + bmp.applyFilter(current,rect,point,filter); + rect.width >>= 1; + rect.height >>= 1; + if(rect.width == 0) + { + rect.width = 1; + } + if(rect.height == 0) + { + rect.height = 1; + } + if(current != bitmapData) + { + current.dispose(); + } + current = new BitmapData(rect.width,rect.height,bitmapData.transparent,0); + current.draw(bmp,matrix,null,null,null,false); + texture.uploadFromBitmapData(current,level++); + } + if(current != bitmapData) + { + current.dispose(); + } + bmp.dispose(); + } + + override public function upload(context3D:Context3D) : void + { + var level:int = 0; + var bmp:BitmapData = null; + var current:BitmapData = null; + if(alternativa3d::_texture != null) + { + alternativa3d::_texture.dispose(); + } + if(this.data != null) + { + alternativa3d::_texture = context3D.createTexture(this.data.width,this.data.height,Context3DTextureFormat.BGRA,false); + filter.preserveAlpha = !this.data.transparent; + Texture(alternativa3d::_texture).uploadFromBitmapData(this.data,0); + level = 1; + bmp = new BitmapData(this.data.width,this.data.height,this.data.transparent); + current = this.data; + rect.width = this.data.width; + rect.height = this.data.height; + while(rect.width % 2 == 0 || rect.height % 2 == 0) + { + bmp.applyFilter(current,rect,point,filter); + rect.width >>= 1; + rect.height >>= 1; + if(rect.width == 0) + { + rect.width = 1; + } + if(rect.height == 0) + { + rect.height = 1; + } + if(current != this.data) + { + current.dispose(); + } + current = new BitmapData(rect.width,rect.height,this.data.transparent,0); + current.draw(bmp,matrix,null,null,null,false); + Texture(alternativa3d::_texture).uploadFromBitmapData(current,level++); + } + if(current != this.data) + { + current.dispose(); + } + bmp.dispose(); + return; + } + alternativa3d::_texture = null; + throw new Error("Cannot upload without data"); + } + + alternativa3d function method_272(texture:Texture, bitmapData:BitmapData) : void + { + rect.width = bitmapData.width; + rect.height = bitmapData.height; + var level:int = 1; + var bmp:BitmapData = new BitmapData(rect.width,rect.height,bitmapData.transparent); + var current:BitmapData = bitmapData; + while(rect.width % 2 == 0 || rect.height % 2 == 0) + { + bmp.applyFilter(current,rect,point,filter); + rect.width >>= 1; + rect.height >>= 1; + if(rect.width == 0) + { + rect.width = 1; + } + if(rect.height == 0) + { + rect.height = 1; + } + if(current != bitmapData) + { + current.dispose(); + } + current = new BitmapData(rect.width,rect.height,bitmapData.transparent,0); + current.draw(bmp,matrix,null,null,null,false); + texture.uploadFromBitmapData(current,level++); + } + if(current != bitmapData) + { + current.dispose(); + } + bmp.dispose(); + } + } +} + diff --git a/src/package_29/Event3D.as b/src/package_29/Event3D.as new file mode 100644 index 0000000..cb90c3d --- /dev/null +++ b/src/package_29/Event3D.as @@ -0,0 +1,78 @@ +package package_29 +{ + import alternativa.engine3d.alternativa3d; + import flash.events.Event; + import package_21.name_78; + + use namespace alternativa3d; + + public class Event3D extends Event + { + public static const ADDED:String = "added3D"; + + public static const REMOVED:String = "removed3D"; + + alternativa3d var name_394:name_78; + + alternativa3d var name_390:name_78; + + alternativa3d var var_107:Boolean; + + alternativa3d var name_388:uint = 3; + + alternativa3d var stop:Boolean = false; + + alternativa3d var var_108:Boolean = false; + + public function Event3D(type:String, bubbles:Boolean = true) + { + super(type,bubbles); + this.alternativa3d::var_107 = bubbles; + } + + override public function get bubbles() : Boolean + { + return this.alternativa3d::var_107; + } + + override public function get eventPhase() : uint + { + return this.alternativa3d::name_388; + } + + override public function get target() : Object + { + return this.alternativa3d::name_394; + } + + override public function get currentTarget() : Object + { + return this.alternativa3d::name_390; + } + + override public function stopPropagation() : void + { + this.alternativa3d::stop = true; + } + + override public function stopImmediatePropagation() : void + { + this.alternativa3d::var_108 = true; + } + + override public function clone() : Event + { + var result:Event3D = new Event3D(type,this.alternativa3d::var_107); + result.alternativa3d::name_394 = this.alternativa3d::name_394; + result.alternativa3d::name_390 = this.alternativa3d::name_390; + result.alternativa3d::name_388 = this.alternativa3d::name_388; + return result; + } + + override public function toString() : String + { + return formatToString("Event3D","type","bubbles","eventPhase"); + } + } +} + diff --git a/src/package_29/MouseEvent3D.as b/src/package_29/MouseEvent3D.as new file mode 100644 index 0000000..42c516a --- /dev/null +++ b/src/package_29/MouseEvent3D.as @@ -0,0 +1,82 @@ +package package_29 +{ + import alternativa.engine3d.alternativa3d; + import flash.events.Event; + import package_19.name_117; + import package_21.name_78; + + use namespace alternativa3d; + + public class MouseEvent3D extends Event3D + { + public static const CLICK:String = "click3D"; + + public static const DOUBLE_CLICK:String = "doubleClick3D"; + + public static const MOUSE_DOWN:String = "mouseDown3D"; + + public static const MOUSE_UP:String = "mouseUp3D"; + + public static const MOUSE_OVER:String = "mouseOver3D"; + + public static const MOUSE_OUT:String = "mouseOut3D"; + + public static const ROLL_OVER:String = "rollOver3D"; + + public static const ROLL_OUT:String = "rollOut3D"; + + public static const MOUSE_MOVE:String = "mouseMove3D"; + + public static const MOUSE_WHEEL:String = "mouseWheel3D"; + + public var ctrlKey:Boolean; + + public var altKey:Boolean; + + public var shiftKey:Boolean; + + public var buttonDown:Boolean; + + public var delta:int; + + public var relatedObject:name_78; + + public var localX:Number; + + public var localY:Number; + + public var localZ:Number; + + alternativa3d var var_109:name_117; + + public function MouseEvent3D(type:String, bubbles:Boolean = true, localX:Number = NaN, localY:Number = NaN, localZ:Number = NaN, relatedObject:name_78 = null, ctrlKey:Boolean = false, altKey:Boolean = false, shiftKey:Boolean = false, buttonDown:Boolean = false, delta:int = 0) + { + super(type,bubbles); + this.localX = localX; + this.localY = localY; + this.localZ = localZ; + this.relatedObject = relatedObject; + this.ctrlKey = ctrlKey; + this.altKey = altKey; + this.shiftKey = shiftKey; + this.buttonDown = buttonDown; + this.delta = delta; + } + + public function get surface() : name_117 + { + return this.alternativa3d::var_109; + } + + override public function clone() : Event + { + return new MouseEvent3D(type,alternativa3d::var_107,this.localX,this.localY,this.localZ,this.relatedObject,this.ctrlKey,this.altKey,this.shiftKey,this.buttonDown,this.delta); + } + + override public function toString() : String + { + return formatToString("MouseEvent3D","type","bubbles","eventPhase","localX","localY","localZ","relatedObject","altKey","ctrlKey","shiftKey","buttonDown","delta"); + } + } +} + diff --git a/src/package_3/TankMaterial2.as b/src/package_3/TankMaterial2.as new file mode 100644 index 0000000..5e26aec --- /dev/null +++ b/src/package_3/TankMaterial2.as @@ -0,0 +1,699 @@ +package package_3 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.BitmapData; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DProgramType; + import flash.display3D.VertexBuffer3D; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import flash.utils.getQualifiedClassName; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_139; + import package_21.name_78; + import package_23.name_103; + import package_23.name_208; + import package_24.DirectionalLight; + import package_24.OmniLight; + import package_28.name_119; + import package_28.name_129; + import package_28.name_93; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + import package_4.class_4; + import package_4.class_5; + import package_4.name_127; + import package_4.name_28; + + use namespace alternativa3d; + + public class TankMaterial2 extends class_5 + { + private static var fogTexture:name_129; + + public static const DISABLED:int = 0; + + public static const SIMPLE:int = 1; + + public static const ADVANCED:int = 2; + + public static var fogMode:int = DISABLED; + + public static var fogNear:Number = 1000; + + public static var fogFar:Number = 5000; + + public static var fogMaxDensity:Number = 1; + + public static var fogColorR:Number = 200 / 255; + + public static var fogColorG:Number = 162 / 255; + + public static var fogColorB:Number = 200 / 255; + + private static const passSimpleFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z"],"passSimpleFogConst"); + + private static const outputWithSimpleFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogColor","#c1=cFogRange","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul t1.xyz, c0.xyz, t0.x","mov t1.w, t0.y","mov o0, t1"],"outputWithSimpleFog"); + + private static const postPassAdvancedFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z","mov v0.zw, i1.xwxw","mov o0, i1"],"postPassAdvancedFogConst"); + + private static const outputWithAdvancedFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogConsts","#c1=cFogRange","#s0=sFogTexture","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mov t1.xyzw, c0.yyzw","div t0.z, v0.z, v0.w","mul t0.z, t0.z, c0.x","add t1.x, t1.x, t0.z","tex t1, t1, s0 <2d, repeat, linear, miplinear>","mul t1.xyz, t1.xyz, t0.x","mov t1.w, t0.y","mov o0, t1"],"outputWithAdvancedFog"); + + private static const objectsProgramsSets:Dictionary = new Dictionary(); + + private static const lightContainer:Vector. = new Vector.(1,true); + + private static const actualLigths:Vector. = new Vector.(); + + private static const passUVProcedure:name_114 = new name_114(["#a0=aUV","#v0=vUV","mov v0, a0"],"passUVProcedure"); + + private static const diffuseProcedure:name_114 = name_114.name_140(["#v0=vUV","#c0=cTiling","#s0=sColormap","#s1=sDiffuse","#s2=sSurface","mul t0, v0, c0","tex t1, t0, s0 <2d, repeat, linear, miplinear>","tex t0, v0, s1 <2d, clamp, linear, miplinear>","add t2, t0, t0","mul t2, t2, t1","tex t1, v0, s2 <2d, clamp, linear, miplinear>","mul t2, t2, t1.x","add t2, t2, t0","mul t0, t0, t1.x","sub o0, t2, t0"],"diffuse"); + + private static const setColorProcedure:name_114 = new name_114(["mov o0, i0"],"setColorProcedure"); + + private static const outputWithLightProcedure:name_114 = new name_114(["mul t0.xyz, i0.xyz, i1.xyz","mov t0.w, i1.w","mov o0, t0"],"outputWithLightProcedure"); + + private static const outputProcedure:name_114 = new name_114(["mov o0, i0"],"outputProcedure"); + + private static const passVaryingsProcedure:name_114 = new name_114(["#c0=cCamera","#v0=vPosition","#v1=vViewVector","mov v0, i0","sub t0, c0, i0","mov v1.xyz, t0.xyz","mov v1.w, c0.w"],"passVaryingsProcedure"); + + private static const getNormalAndViewProcedure:name_114 = new name_114(["#v0=vUV","#v1=vViewVector","#c0=cSurface","#s0=sBump","tex t0, v0, s0 <2d,clamp,linear,miplinear>","add t0, t0, t0","sub t0.xyz, t0.xyz, c0.www","neg t0.y, t0.y","nrm o0.xyz, t0.xyz","nrm o1.xyz, v1"],"getNormalAndViewProcedure"); + + private static const getSpecularOptionsProcedure:name_114 = new name_114(["#v0=vUV","#c0=cSurface","#s0=sSurface","tex t0, v0, s0 <2d, clamp, linear, miplinear>","mul i0.w, c0.y, t0.z","mul i1.w, c0.z, t0.y"],"getSpecularOptionsProcedure"); + + public var diffuse:name_129; + + public var colorMap:name_129; + + public var surfaceMap:name_129; + + public var var_26:Number = 1; + + public var var_24:Number = 1; + + public var normalMap:name_129; + + public var glossiness:Number = 100; + + public var var_25:Number = 1; + + private const outputWithSpecularProcedure:name_114 = new name_114(["mul t0.xyz, i0.xyz, i1.xyz","add t0.xyz, t0.xyz, i2.xyz","mov t0.w, i1.w","mov o0, t0"],"outputWithSpecularProcedure"); + + public function TankMaterial2(colorMap:name_129 = null, diffuse:name_129 = null, normalMap:name_129 = null, surfaceMap:name_129 = null) + { + super(); + this.colorMap = colorMap; + this.diffuse = diffuse; + this.normalMap = normalMap; + this.surfaceMap = surfaceMap; + } + + public static function method_33(texture:name_129) : void + { + fogTexture = texture; + } + + private static function directionalProcedure(light:name_116, add:Boolean) : name_114 + { + return new name_114(["#c0=c" + light.alternativa3d::name_138 + "Direction","#c1=c" + light.alternativa3d::name_138 + "Color","add t0.xyz, i1.xyz, c0.xyz","nrm t0.xyz, t0.xyz","dp3 t0.w, t0.xyz, i0.xyz","pow t0.w, t0.w, i0.w","mul t0.w, t0.w, i1.w","dp3 t0.x, i0.xyz, c0.xyz","sat t0.x, t0.x",add ? "mul t0.xyz, c1.xyz, t0.x" : "mul o0.xyz, c1.xyz, t0.x",add ? "add o0.xyz, o0.xyz, t0.xyz" : "mov o0.w, c0.w",add ? "mul t0.xyz, c1.xyz, t0.w" : "mul o1.xyz, c1.xyz, t0.w",add ? "add o1.xyz, o1.xyz, t0.xyz" : "mov o1.w, c0.w"],"directionalProcedure"); + } + + private static function omniProcedure(light:name_116, add:Boolean) : name_114 + { + return new name_114(["#c0=c" + light.alternativa3d::name_138 + "Position","#c1=c" + light.alternativa3d::name_138 + "Color","#c2=c" + light.alternativa3d::name_138 + "Radius","#v0=vPosition","sub t0, c0, v0","dp3 t0.w, t0.xyz, t0.xyz","nrm t0.xyz, t0.xyz","add t1.xyz, i1.xyz, t0.xyz","mov t1.w, c0.w","nrm t1.xyz, t1.xyz","dp3 t1.w, t1.xyz, i0.xyz","pow t1.w, t1.w, i0.w","mul t1.w, t1.w, i1.w","sqt t1.x, t0.w","dp3 t0.w, t0.xyz, i0.xyz","sub t0.x, t1.x, c2.z","div t0.y, t0.x, c2.y","sub t0.x, c2.x, t0.y","sat t0.xw, t0.xw","mul t0.xyz, c1.xyz, t0.xxx",add ? "mul t1.xyz, t0.xyz, t0.w" : "mul o0.xyz, t0.xyz, t0.w",add ? "add o0.xyz, o0.xyz, t1.xyz" : "mov o0.w, c0.w",add ? "mul t1.xyz, t0.xyz, t1.w" : "mul o1.xyz, t0.xyz, t1.w",add ? "add o1.xyz, o1.xyz, t1.xyz" : "mov o1.w, c0.w"],"omniProcedure"); + } + + override alternativa3d function fillResources(resources:Dictionary, resourceType:Class) : void + { + super.alternativa3d::fillResources(resources,resourceType); + if(this.diffuse != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.diffuse)) as Class,resourceType))) + { + resources[this.diffuse] = true; + } + if(this.colorMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.colorMap)) as Class,resourceType))) + { + resources[this.colorMap] = true; + } + if(this.normalMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.normalMap)) as Class,resourceType))) + { + resources[this.normalMap] = true; + } + if(this.surfaceMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.surfaceMap)) as Class,resourceType))) + { + resources[this.surfaceMap] = true; + } + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + var i:int = 0; + var light:name_116 = null; + var shadowedLight:DirectionalLight = null; + var drawUnit:name_135 = null; + var shadowOrAmbientProgram:ShadowOrAmbientProgram = null; + var lightingProgram:LightingProgram = null; + var numShadows:int = 0; + var shadow:name_103 = null; + var lightsPrograms:Dictionary = null; + var fogProgram:FogProgram = null; + if(this.diffuse == null || this.colorMap == null || this.normalMap == null || this.surfaceMap == null || this.diffuse.alternativa3d::_texture == null || this.colorMap.alternativa3d::_texture == null || this.normalMap.alternativa3d::_texture == null || this.surfaceMap.alternativa3d::_texture == null) + { + return; + } + var object:name_78 = surface.alternativa3d::object; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + if(positionBuffer == null || uvBuffer == null) + { + return; + } + var lightsKey:String = ""; + var actualLightsLength:int = 0; + for(i = 0; i < lightsLength; ) + { + light = lights[i]; + if(light is DirectionalLight && shadowedLight == null && DirectionalLight(light).shadow != null) + { + shadowedLight = DirectionalLight(light); + } + else if(actualLightsLength < 8 && (light is OmniLight || light is DirectionalLight)) + { + actualLigths[actualLightsLength] = light; + lightsKey += light.alternativa3d::name_138; + actualLightsLength++; + } + i++; + } + var programs:Array = objectsProgramsSets[object.alternativa3d::transformProcedure]; + if(programs == null) + { + programs = []; + objectsProgramsSets[object.alternativa3d::transformProcedure] = programs; + } + if(shadowedLight != null) + { + shadowOrAmbientProgram = programs[0]; + if(shadowOrAmbientProgram == null) + { + shadowOrAmbientProgram = this.method_125(object,shadowedLight.shadow,true); + shadowOrAmbientProgram.upload(camera.alternativa3d::context3D); + programs[0] = shadowOrAmbientProgram; + } + drawUnit = this.method_126(shadowOrAmbientProgram,shadowedLight.shadow,true,camera,object,surface,geometry); + } + else + { + shadowOrAmbientProgram = programs[1]; + if(shadowOrAmbientProgram == null) + { + shadowOrAmbientProgram = this.method_125(object,null,true); + shadowOrAmbientProgram.upload(camera.alternativa3d::context3D); + programs[1] = shadowOrAmbientProgram; + } + drawUnit = this.method_126(shadowOrAmbientProgram,null,true,camera,object,surface,geometry); + } + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.ONE; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ZERO; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.TANK_OPAQUE); + if(shadowedLight != null) + { + numShadows = object.alternativa3d::shadowRenderers != null ? int(object.alternativa3d::shadowRenderers.length) : 0; + for(i = 0; i < numShadows; ) + { + shadow = object.alternativa3d::shadowRenderers[i]; + if(shadow is name_208) + { + shadowOrAmbientProgram = programs[2]; + if(shadowOrAmbientProgram == null) + { + shadowOrAmbientProgram = this.method_125(object,shadow,false); + shadowOrAmbientProgram.upload(camera.alternativa3d::context3D); + programs[2] = shadowOrAmbientProgram; + } + drawUnit = this.method_126(shadowOrAmbientProgram,shadow,false,camera,object,surface,geometry); + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.ZERO; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.SOURCE_COLOR; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.SHADOWS); + } + i++; + } + lightingProgram = programs[3]; + if(lightingProgram == null) + { + lightContainer[0] = shadowedLight; + lightingProgram = this.method_127(object,lightContainer,1); + lightingProgram.upload(camera.alternativa3d::context3D); + programs[3] = lightingProgram; + } + drawUnit = this.method_128(lightingProgram,lightContainer,1,camera,object,surface,geometry); + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.DESTINATION_ALPHA; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.SHADOWED_LIGHTS); + } + if(actualLightsLength > 0) + { + lightsPrograms = programs[4]; + if(lightsPrograms == null) + { + lightsPrograms = new Dictionary(false); + programs[4] = lightsPrograms; + } + lightingProgram = lightsPrograms[lightsKey]; + if(lightingProgram == null) + { + lightingProgram = this.method_127(object,actualLigths,actualLightsLength); + lightingProgram.upload(camera.alternativa3d::context3D); + lightsPrograms[lightsKey] = lightingProgram; + } + drawUnit = this.method_128(lightingProgram,actualLigths,actualLightsLength,camera,object,surface,geometry); + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.ONE; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.LIGHTS); + } + if(fogMode == SIMPLE || fogMode == ADVANCED) + { + fogProgram = programs[int(fogMode + 4)]; + if(fogProgram == null) + { + fogProgram = this.method_129(object); + fogProgram.upload(camera.alternativa3d::context3D); + programs[int(fogMode + 4)] = fogProgram; + } + drawUnit = this.method_130(fogProgram,camera,object,surface,geometry); + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.ONE; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.SOURCE_ALPHA; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.FOG); + } + actualLigths.length = 0; + } + + private function method_125(object:name_78, shadow:name_103, ambient:Boolean) : ShadowOrAmbientProgram + { + var shadowProc:name_114 = null; + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + var positionVar:String = "aPosition"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + if(object.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(object.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + if(ambient) + { + vertexLinker.name_123(passUVProcedure); + } + var colorConst:String = ambient ? "cAmbient" : "cShadow"; + fragmentLinker.name_120(colorConst,name_115.CONSTANT); + fragmentLinker.name_120("tLight"); + fragmentLinker.name_123(setColorProcedure); + fragmentLinker.name_118(setColorProcedure,colorConst); + fragmentLinker.name_125(setColorProcedure,"tLight"); + if(shadow != null) + { + vertexLinker.name_123(shadow.getVShader()); + shadowProc = shadow.getFIntensityShader(); + fragmentLinker.name_123(shadowProc); + fragmentLinker.name_125(shadowProc,"tLight"); + } + if(ambient) + { + fragmentLinker.name_120("tColor"); + fragmentLinker.name_123(diffuseProcedure); + fragmentLinker.name_125(diffuseProcedure,"tColor"); + fragmentLinker.name_123(outputWithLightProcedure); + fragmentLinker.name_118(outputWithLightProcedure,"tColor","tLight"); + } + else + { + fragmentLinker.name_123(outputProcedure); + fragmentLinker.name_118(outputProcedure,"tLight"); + } + fragmentLinker.name_133(vertexLinker); + return new ShadowOrAmbientProgram(vertexLinker,fragmentLinker); + } + + private function method_126(program:ShadowOrAmbientProgram, shadow:name_103, ambient:Boolean, camera:name_124, object:name_78, surface:name_117, geometry:name_119) : name_135 + { + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.aPosition,positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + if(ambient) + { + drawUnit.alternativa3d::setVertexBufferAt(program.aUV,uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + } + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.cProjMatrix,object.alternativa3d::localToCameraTransform); + if(ambient) + { + drawUnit.alternativa3d::name_134(program.cAmbient,camera.alternativa3d::ambient[0],camera.alternativa3d::ambient[1],camera.alternativa3d::ambient[2],1); + drawUnit.alternativa3d::name_134(program.cTiling,this.var_26,this.var_24,0,0); + drawUnit.alternativa3d::setTextureAt(program.sDiffuse,this.diffuse.alternativa3d::_texture); + drawUnit.alternativa3d::setTextureAt(program.sColormap,this.colorMap.alternativa3d::_texture); + drawUnit.alternativa3d::setTextureAt(program.sSurface,this.surfaceMap.alternativa3d::_texture); + } + else + { + drawUnit.alternativa3d::name_134(program.cShadow,1,1,1,1); + } + if(shadow != null) + { + shadow.applyShader(drawUnit,program,object,camera); + } + return drawUnit; + } + + private function method_127(object:name_78, lights:Vector., lightsLength:int) : LightingProgram + { + var procedure:name_114 = null; + var light:name_116 = null; + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + var positionVar:String = "aPosition"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + if(object.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(object.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + vertexLinker.name_123(passUVProcedure); + vertexLinker.name_123(passVaryingsProcedure); + vertexLinker.name_118(passVaryingsProcedure,positionVar); + fragmentLinker.name_120("tNormal"); + fragmentLinker.name_120("tView"); + fragmentLinker.name_123(getNormalAndViewProcedure); + fragmentLinker.name_125(getNormalAndViewProcedure,"tNormal","tView"); + fragmentLinker.name_123(getSpecularOptionsProcedure); + fragmentLinker.name_118(getSpecularOptionsProcedure,"tNormal","tView"); + fragmentLinker.name_120("tLight"); + fragmentLinker.name_120("tHLight"); + var first:Boolean = true; + for(var i:int = 0; i < lightsLength; ) + { + light = lights[i]; + if(light is DirectionalLight) + { + procedure = directionalProcedure(light,!first); + fragmentLinker.name_123(procedure); + fragmentLinker.name_118(procedure,"tNormal","tView"); + fragmentLinker.name_125(procedure,"tLight","tHLight"); + if(first) + { + first = false; + } + } + else if(light is OmniLight) + { + procedure = omniProcedure(light,!first); + fragmentLinker.name_123(procedure); + fragmentLinker.name_118(procedure,"tNormal","tView"); + fragmentLinker.name_125(procedure,"tLight","tHLight"); + if(first) + { + first = false; + } + } + i++; + } + fragmentLinker.name_120("outColor"); + fragmentLinker.name_123(diffuseProcedure); + fragmentLinker.name_125(diffuseProcedure,"outColor"); + fragmentLinker.name_123(this.outputWithSpecularProcedure); + fragmentLinker.name_118(this.outputWithSpecularProcedure,"outColor","tLight","tHLight"); + fragmentLinker.name_133(vertexLinker); + return new LightingProgram(vertexLinker,fragmentLinker); + } + + private function method_128(program:LightingProgram, lights:Vector., lightsLength:int, camera:name_124, object:name_78, surface:name_117, geometry:name_119) : name_135 + { + var rScale:Number = NaN; + var transform:name_139 = null; + var light:name_116 = null; + var len:Number = NaN; + var omni:OmniLight = null; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.aPosition,positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + drawUnit.alternativa3d::setVertexBufferAt(program.aUV,uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.cProjMatrix,object.alternativa3d::localToCameraTransform); + drawUnit.alternativa3d::name_144(program.cCamera,object.alternativa3d::cameraToLocalTransform.d,object.alternativa3d::cameraToLocalTransform.h,object.alternativa3d::cameraToLocalTransform.l,1); + for(var i:int = 0; i < lightsLength; ) + { + light = lights[i]; + if(light is DirectionalLight) + { + transform = light.alternativa3d::name_141; + len = Number(Math.sqrt(transform.c * transform.c + transform.g * transform.g + transform.k * transform.k)); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Direction"),-transform.c / len,-transform.g / len,-transform.k / len,1); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Color"),light.alternativa3d::red,light.alternativa3d::green,light.alternativa3d::blue); + } + else if(light is OmniLight) + { + omni = OmniLight(light); + transform = light.alternativa3d::name_141; + rScale = Number(Math.sqrt(transform.a * transform.a + transform.e * transform.e + transform.i * transform.i)); + rScale += Math.sqrt(transform.b * transform.b + transform.f * transform.f + transform.j * transform.j); + rScale += Math.sqrt(transform.c * transform.c + transform.g * transform.g + transform.k * transform.k); + rScale /= 3; + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Position"),transform.d,transform.h,transform.l); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Radius"),1,omni.attenuationEnd * rScale - omni.attenuationBegin * rScale,omni.attenuationBegin * rScale); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Color"),light.alternativa3d::red,light.alternativa3d::green,light.alternativa3d::blue); + } + i++; + } + drawUnit.alternativa3d::name_134(program.cSurface,0,this.glossiness,this.var_25,1); + drawUnit.alternativa3d::name_134(program.cTiling,this.var_26,this.var_24,0,0); + drawUnit.alternativa3d::setTextureAt(program.sDiffuse,this.diffuse.alternativa3d::_texture); + drawUnit.alternativa3d::setTextureAt(program.sColormap,this.colorMap.alternativa3d::_texture); + drawUnit.alternativa3d::setTextureAt(program.sSurface,this.surfaceMap.alternativa3d::_texture); + drawUnit.alternativa3d::setTextureAt(program.sBump,this.normalMap.alternativa3d::_texture); + return drawUnit; + } + + private function method_129(object:name_78) : FogProgram + { + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + var positionVar:String = "aPosition"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + if(object.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(object.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + if(fogMode == SIMPLE) + { + vertexLinker.name_123(passSimpleFogConstProcedure); + vertexLinker.name_118(passSimpleFogConstProcedure,positionVar); + fragmentLinker.name_123(outputWithSimpleFogProcedure); + } + else + { + vertexLinker.name_120("projected"); + vertexLinker.name_125(alternativa3d::_projectProcedure,"projected"); + vertexLinker.name_123(postPassAdvancedFogConstProcedure); + vertexLinker.name_118(postPassAdvancedFogConstProcedure,positionVar,"projected"); + fragmentLinker.name_123(outputWithAdvancedFogProcedure); + } + fragmentLinker.name_133(vertexLinker); + return new FogProgram(vertexLinker,fragmentLinker); + } + + private function method_130(program:FogProgram, camera:name_124, object:name_78, surface:name_117, geometry:name_119) : name_135 + { + var lm:name_139 = null; + var dist:Number = NaN; + var cLocal:name_139 = null; + var halfW:Number = NaN; + var leftX:Number = NaN; + var leftY:Number = NaN; + var rightX:Number = NaN; + var rightY:Number = NaN; + var angle:Number = NaN; + var dx:Number = NaN; + var dy:Number = NaN; + var lens:Number = NaN; + var uScale:Number = NaN; + var uRight:Number = NaN; + var bmd:BitmapData = null; + var i:int = 0; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.aPosition,positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.cProjMatrix,object.alternativa3d::localToCameraTransform); + if(fogMode == SIMPLE || fogMode == ADVANCED) + { + lm = object.alternativa3d::localToCameraTransform; + dist = fogFar - fogNear; + drawUnit.alternativa3d::name_144(program.cFogSpace,lm.i / dist,lm.j / dist,lm.k / dist,(lm.l - fogNear) / dist); + drawUnit.alternativa3d::name_134(program.cFogRange,fogMaxDensity,1,0,1 - fogMaxDensity); + } + if(fogMode == SIMPLE) + { + drawUnit.alternativa3d::name_134(program.cFogColor,fogColorR,fogColorG,fogColorB); + } + if(fogMode == ADVANCED) + { + if(fogTexture == null) + { + bmd = new BitmapData(32,1,false,16711680); + for(i = 0; i < 32; i++) + { + bmd.setPixel(i,0,i / 32 * 255 << 16); + } + fogTexture = new name_93(bmd); + fogTexture.upload(camera.alternativa3d::context3D); + } + cLocal = camera.alternativa3d::localToGlobalTransform; + halfW = camera.view.width / 2; + leftX = -halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + leftY = -halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + rightX = halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + rightY = halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + angle = Math.atan2(leftY,leftX) - Math.PI / 2; + if(angle < 0) + { + angle += Math.PI * 2; + } + dx = rightX - leftX; + dy = rightY - leftY; + lens = Number(Math.sqrt(dx * dx + dy * dy)); + leftX /= lens; + leftY /= lens; + rightX /= lens; + rightY /= lens; + uScale = Math.acos(leftX * rightX + leftY * rightY) / Math.PI / 2; + uRight = angle / Math.PI / 2; + drawUnit.alternativa3d::name_134(program.cFogConsts,0.5 * uScale,0.5 - uRight,0); + drawUnit.alternativa3d::setTextureAt(program.sFogTexture,fogTexture.alternativa3d::_texture); + } + return drawUnit; + } + + override public function clone() : class_4 + { + var cloned:TankMaterial2 = new TankMaterial2(this.colorMap,this.diffuse,this.normalMap,this.surfaceMap); + cloned.var_25 = this.var_25; + cloned.glossiness = this.glossiness; + return cloned; + } + } +} + +import package_30.name_121; +import package_4.name_127; + +class ShadowOrAmbientProgram extends name_127 +{ + public var aPosition:int; + + public var aUV:int; + + public var cProjMatrix:int; + + public var cAmbient:int; + + public var cTiling:int; + + public var sDiffuse:int; + + public var sColormap:int; + + public var sSurface:int; + + public var cShadow:int; + + public function ShadowOrAmbientProgram(vertex:name_121, fragment:name_121) + { + super(vertex,fragment); + this.aPosition = vertex.name_207("aPosition"); + this.aUV = vertex.name_207("aUV"); + this.cProjMatrix = vertex.name_207("cProjMatrix"); + this.cAmbient = fragment.name_207("cAmbient"); + this.cTiling = fragment.name_207("cTiling"); + this.sDiffuse = fragment.name_207("sDiffuse"); + this.sColormap = fragment.name_207("sColormap"); + this.sSurface = fragment.name_207("sSurface"); + this.cShadow = fragment.name_207("cShadow"); + } +} + +class LightingProgram extends name_127 +{ + public var aPosition:int; + + public var aUV:int; + + public var cProjMatrix:int; + + public var cCamera:int; + + public var cSurface:int; + + public var cTiling:int; + + public var sDiffuse:int; + + public var sColormap:int; + + public var sSurface:int; + + public var sBump:int; + + public function LightingProgram(vertex:name_121, fragment:name_121) + { + super(vertex,fragment); + this.aPosition = vertex.name_207("aPosition"); + this.aUV = vertex.name_207("aUV"); + this.cProjMatrix = vertex.name_207("cProjMatrix"); + this.cCamera = vertex.name_207("cCamera"); + this.cSurface = fragment.name_207("cSurface"); + this.cTiling = fragment.name_207("cTiling"); + this.sDiffuse = fragment.name_207("sDiffuse"); + this.sColormap = fragment.name_207("sColormap"); + this.sSurface = fragment.name_207("sSurface"); + this.sBump = fragment.name_207("sBump"); + } +} + +class FogProgram extends name_127 +{ + public var aPosition:int; + + public var cProjMatrix:int; + + public var cFogSpace:int; + + public var cFogRange:int; + + public var cFogColor:int; + + public var cFogConsts:int; + + public var sFogTexture:int; + + public function FogProgram(vertex:name_121, fragment:name_121) + { + super(vertex,fragment); + this.aPosition = vertex.name_207("aPosition"); + this.cProjMatrix = vertex.name_207("cProjMatrix"); + this.cFogSpace = vertex.name_207("cFogSpace"); + this.cFogRange = fragment.name_207("cFogRange"); + this.cFogColor = fragment.name_207("cFogColor"); + this.cFogConsts = fragment.name_207("cFogConsts"); + this.sFogTexture = fragment.name_207("sFogTexture"); + } +} diff --git a/src/package_3/name_10.as b/src/package_3/name_10.as new file mode 100644 index 0000000..a8f578f --- /dev/null +++ b/src/package_3/name_10.as @@ -0,0 +1,152 @@ +package package_3 +{ + import alternativa.engine3d.alternativa3d; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_128; + import package_21.name_135; + import package_28.name_119; + import package_28.name_129; + import package_30.name_114; + import package_30.name_121; + import package_4.class_4; + import package_4.class_9; + + use namespace alternativa3d; + + public class name_10 extends class_9 + { + public static const DISABLED:int = 0; + + public static const SIMPLE:int = 1; + + public static const ADVANCED:int = 2; + + private static const uvProcedure:name_114 = name_114.name_140(["#v0=vUV","#a0=aUV","#c0=cUVOffsets","add v0, a0, c0"]); + + public var alphaThreshold:Number = 1; + + public var uOffset:Number = 0; + + public var vOffset:Number = 0; + + public function name_10(diffuseMap:name_129 = null, normalMap:name_129 = null, specularMap:name_129 = null, glossinessMap:name_129 = null, opacityMap:name_129 = null, alphaThreshold:Number = 1) + { + super(diffuseMap,normalMap,specularMap,glossinessMap,opacityMap); + alternativa3d::outputAlpha = new name_114(["#c0=cSurface","sub t0.w, i0.w, c0.w","kil t0.w","mov o0, i0"],"outputAlpha"); + alternativa3d::outputDiffuseAlpha = alternativa3d::outputAlpha; + alternativa3d::outputOpacity = new name_114(["#c0=cSurface","#s0=sOpacity","#v0=vUV","tex t0, v0, s0 <2d, repeat,linear,miplinear>","mov i0.w, t0.x","sub t0.x, t0.x, c0.w","kil t0.x","mov o0, i0"],"outputOpacity"); + this.alphaThreshold = alphaThreshold; + this.alternativa3d::var_54 = true; + } + + public static function get fogMode() : int + { + return class_9.alternativa3d::fogMode; + } + + public static function set fogMode(value:int) : void + { + class_9.alternativa3d::fogMode = value; + } + + public static function get fogNear() : Number + { + return class_9.alternativa3d::fogNear; + } + + public static function set fogNear(value:Number) : void + { + class_9.alternativa3d::fogNear = value; + } + + public static function get fogFar() : Number + { + return class_9.alternativa3d::fogFar; + } + + public static function set fogFar(value:Number) : void + { + class_9.alternativa3d::fogFar = value; + } + + public static function get fogMaxDensity() : Number + { + return class_9.alternativa3d::fogMaxDensity; + } + + public static function set fogMaxDensity(value:Number) : void + { + class_9.alternativa3d::fogMaxDensity = value; + } + + public static function get fogColorR() : Number + { + return class_9.alternativa3d::fogColorR; + } + + public static function set fogColorR(value:Number) : void + { + class_9.alternativa3d::fogColorR = value; + } + + public static function get fogColorG() : Number + { + return class_9.alternativa3d::fogColorG; + } + + public static function set fogColorG(value:Number) : void + { + class_9.alternativa3d::fogColorG = value; + } + + public static function get fogColorB() : Number + { + return class_9.alternativa3d::fogColorB; + } + + public static function set fogColorB(value:Number) : void + { + class_9.alternativa3d::fogColorB = value; + } + + public static function method_33(texture:name_129) : void + { + class_9.alternativa3d::fogTexture = texture; + } + + override alternativa3d function getPassUVProcedure() : name_114 + { + return uvProcedure; + } + + override alternativa3d function setPassUVProcedureConstants(destination:name_135, vertexLinker:name_121) : void + { + destination.alternativa3d::name_144(vertexLinker.getVariableIndex("cUVOffsets"),-this.uOffset,this.vOffset,0,0); + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + lightsLength = lightsLength > 5 ? 5 : lightsLength; + alpha = 1 - this.alphaThreshold; + super.alternativa3d::collectDraws(camera,surface,geometry,lights,lightsLength,name_128.TANK_OPAQUE); + } + + override public function clone() : class_4 + { + var cloned:name_10 = new name_10(diffuseMap,normalMap,specularMap,glossinessMap); + cloned.opacityMap = opacityMap; + cloned.alpha = alpha; + cloned.var_21 = var_21; + cloned.glossiness = glossiness; + cloned.var_25 = var_25; + cloned.method_124 = method_124; + cloned.uOffset = this.uOffset; + cloned.vOffset = this.vOffset; + cloned.alphaThreshold = this.alphaThreshold; + return cloned; + } + } +} + diff --git a/src/package_3/name_29.as b/src/package_3/name_29.as new file mode 100644 index 0000000..0e0e363 --- /dev/null +++ b/src/package_3/name_29.as @@ -0,0 +1,242 @@ +package package_3 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.BitmapData; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DProgramType; + import flash.display3D.VertexBuffer3D; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import flash.utils.getQualifiedClassName; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_139; + import package_21.name_78; + import package_28.name_119; + import package_28.name_129; + import package_28.name_93; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + import package_4.class_4; + import package_4.name_11; + import package_4.name_127; + import package_4.name_28; + + use namespace alternativa3d; + + public class name_29 extends class_4 + { + public static var fogTexture:name_129; + + public static var fogMode:int = name_11.DISABLED; + + public static var fogNear:Number = 1000; + + public static var fogFar:Number = 5000; + + public static var fogMaxDensity:Number = 1; + + public static var fogColorR:Number = 200 / 255; + + public static var fogColorG:Number = 162 / 255; + + public static var fogColorB:Number = 200 / 255; + + private static const passSimpleFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z"],"passSimpleFogConst"); + + private static const outputWithSimpleFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogColor","#c1=cFogRange","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul i0.xyz, i0.xyz, t0.y","mul t0.xyz, c0.xyz, t0.x","add i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"outputWithSimpleFog"); + + private static const postPassAdvancedFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z","mov v0.zw, i1.xwxw","mov o0, i1"],"postPassAdvancedFogConst"); + + private static const outputWithAdvancedFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogConsts","#c1=cFogRange","#s0=sFogTexture","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul i0.xyz, i0.xyz, t0.y","mov t1.xyzw, c0.yyzw","div t0.z, v0.z, v0.w","mul t0.z, t0.z, c0.x","add t1.x, t1.x, t0.z","tex t1, t1, s0 <2d, repeat, linear, miplinear>","mul t0.xyz, t1.xyz, t0.x","add i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"outputWithAdvancedFog"); + + private static var _programs:Dictionary = new Dictionary(); + + private static const passUVProcedure:name_114 = new name_114(["#a0=aUV","#v0=vUV","mov v0, a0"],"passUVProcedure"); + + private static const outputProcedure:name_114 = new name_114(["#v0=vUV","#s0=sTexture","#c0=cColor","tex t0, v0, s0 <2d, linear, mipnone>","mov t0.w, t0.x","mov t0.xyz, c0.xyz","mov o0, t0"],"outputProcedure"); + + public var texture:name_129; + + public function name_29(texture:name_129) + { + super(); + this.texture = texture; + } + + public static function method_33(texture:name_129) : void + { + fogTexture = texture; + } + + override alternativa3d function fillResources(resources:Dictionary, resourceType:Class) : void + { + super.alternativa3d::fillResources(resources,resourceType); + if(this.texture != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.texture)) as Class,resourceType))) + { + resources[this.texture] = true; + } + } + + private function method_75(object:name_78) : name_127 + { + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var positionVar:String = "aPosition"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + if(object.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(object.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + vertexLinker.name_123(passUVProcedure); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + fragmentLinker.name_123(outputProcedure); + if(fogMode == name_11.SIMPLE || fogMode == name_11.ADVANCED) + { + fragmentLinker.name_120("outColor"); + fragmentLinker.name_125(outputProcedure,"outColor"); + } + if(fogMode == name_11.SIMPLE) + { + vertexLinker.name_123(passSimpleFogConstProcedure); + vertexLinker.name_118(passSimpleFogConstProcedure,positionVar); + fragmentLinker.name_123(outputWithSimpleFogProcedure); + fragmentLinker.name_118(outputWithSimpleFogProcedure,"outColor"); + } + else if(fogMode == name_11.ADVANCED) + { + vertexLinker.name_120("tProjected"); + vertexLinker.name_125(alternativa3d::_projectProcedure,"tProjected"); + vertexLinker.name_123(postPassAdvancedFogConstProcedure); + vertexLinker.name_118(postPassAdvancedFogConstProcedure,positionVar,"tProjected"); + fragmentLinker.name_123(outputWithAdvancedFogProcedure); + fragmentLinker.name_118(outputWithAdvancedFogProcedure,"outColor"); + } + fragmentLinker.name_133(vertexLinker); + return new name_127(vertexLinker,fragmentLinker); + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + var program:name_127 = null; + var lm:name_139 = null; + var dist:Number = NaN; + var cLocal:name_139 = null; + var halfW:Number = NaN; + var leftX:Number = NaN; + var leftY:Number = NaN; + var rightX:Number = NaN; + var rightY:Number = NaN; + var angle:Number = NaN; + var dx:Number = NaN; + var dy:Number = NaN; + var lens:Number = NaN; + var uScale:Number = NaN; + var uRight:Number = NaN; + var bmd:BitmapData = null; + var i:int = 0; + var object:name_78 = surface.alternativa3d::object; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + if(positionBuffer == null || uvBuffer == null || this.texture == null || this.texture.alternativa3d::_texture == null) + { + return; + } + var programs:Vector. = _programs[object.alternativa3d::transformProcedure]; + if(programs == null) + { + programs = new Vector.(3,true); + program = this.method_75(object); + program.upload(camera.alternativa3d::context3D); + programs[fogMode] = program; + _programs[object.alternativa3d::transformProcedure] = programs; + } + else + { + program = programs[fogMode]; + if(program == null) + { + program = this.method_75(object); + program.upload(camera.alternativa3d::context3D); + programs[fogMode] = program; + } + } + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aPosition"),positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aUV"),uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.vertexShader.getVariableIndex("cProjMatrix"),object.alternativa3d::localToCameraTransform); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cColor"),0,0,0,1); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sTexture"),this.texture.alternativa3d::_texture); + if(fogMode == name_11.SIMPLE || fogMode == name_11.ADVANCED) + { + lm = object.alternativa3d::localToCameraTransform; + dist = fogFar - fogNear; + drawUnit.alternativa3d::name_144(program.vertexShader.getVariableIndex("cFogSpace"),lm.i / dist,lm.j / dist,lm.k / dist,(lm.l - fogNear) / dist); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogRange"),fogMaxDensity,1,0,1 - fogMaxDensity); + } + if(fogMode == name_11.SIMPLE) + { + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogColor"),fogColorR,fogColorG,fogColorB); + } + if(fogMode == name_11.ADVANCED) + { + if(fogTexture == null) + { + bmd = new BitmapData(32,1,false,16711680); + for(i = 0; i < 32; i++) + { + bmd.setPixel(i,0,i / 32 * 255 << 16); + } + fogTexture = new name_93(bmd); + fogTexture.upload(camera.alternativa3d::context3D); + } + cLocal = camera.alternativa3d::localToGlobalTransform; + halfW = camera.view.width / 2; + leftX = -halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + leftY = -halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + rightX = halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + rightY = halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + angle = Math.atan2(leftY,leftX) - Math.PI / 2; + if(angle < 0) + { + angle += Math.PI * 2; + } + dx = rightX - leftX; + dy = rightY - leftY; + lens = Number(Math.sqrt(dx * dx + dy * dy)); + leftX /= lens; + leftY /= lens; + rightX /= lens; + rightY /= lens; + uScale = Math.acos(leftX * rightX + leftY * rightY) / Math.PI / 2; + uRight = angle / Math.PI / 2; + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogConsts"),0.5 * uScale,0.5 - uRight,0); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sFogTexture"),fogTexture.alternativa3d::_texture); + } + if(fogMode == name_11.DISABLED) + { + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.ZERO; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.SOURCE_ALPHA; + } + else + { + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.SOURCE_ALPHA; + } + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.TANK_SHADOW); + } + + override public function clone() : class_4 + { + return new name_29(this.texture); + } + } +} + diff --git a/src/package_3/name_33.as b/src/package_3/name_33.as new file mode 100644 index 0000000..8fc4036 --- /dev/null +++ b/src/package_3/name_33.as @@ -0,0 +1,593 @@ +package package_3 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.BitmapData; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DProgramType; + import flash.display3D.VertexBuffer3D; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import flash.utils.getQualifiedClassName; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_139; + import package_21.name_78; + import package_23.name_103; + import package_23.name_208; + import package_24.DirectionalLight; + import package_24.OmniLight; + import package_28.name_119; + import package_28.name_129; + import package_28.name_93; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + import package_4.class_4; + import package_4.class_5; + import package_4.name_127; + import package_4.name_28; + + use namespace alternativa3d; + + public class name_33 extends class_5 + { + private static var fogTexture:name_129; + + public static const DISABLED:int = 0; + + public static const SIMPLE:int = 1; + + public static const ADVANCED:int = 2; + + public static var fogMode:int = DISABLED; + + public static var fogNear:Number = 1000; + + public static var fogFar:Number = 5000; + + public static var fogMaxDensity:Number = 1; + + public static var fogColorR:Number = 200 / 255; + + public static var fogColorG:Number = 162 / 255; + + public static var fogColorB:Number = 200 / 255; + + private static const passSimpleFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z"],"passSimpleFogConst"); + + private static const outputWithSimpleFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogColor","#c1=cFogRange","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul t1.xyz, c0.xyz, t0.x","mov t1.w, t0.y","mov o0, t1"],"outputWithSimpleFog"); + + private static const postPassAdvancedFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z","mov v0.zw, i1.xwxw","mov o0, i1"],"postPassAdvancedFogConst"); + + private static const outputWithAdvancedFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogConsts","#c1=cFogRange","#s0=sFogTexture","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mov t1.xyzw, c0.yyzw","div t0.z, v0.z, v0.w","mul t0.z, t0.z, c0.x","add t1.x, t1.x, t0.z","tex t1, t1, s0 <2d, repeat, linear, miplinear>","mul t1.xyz, t1.xyz, t0.x","mov t1.w, t0.y","mov o0, t1"],"outputWithAdvancedFog"); + + private static const objectsProgramsSets:Dictionary = new Dictionary(); + + private static const lightContainer:Vector. = new Vector.(1,true); + + private static const actualLigths:Vector. = new Vector.(); + + private static const passUVProcedure:name_114 = name_114.name_140(["#a0=aUV","#v0=vUV","#c0=cUVOffsets","add v0, a0, c0"]); + + private static const diffuseProcedure:name_114 = name_114.name_140(["#v0=vUV","#s0=sDiffuse","tex t0, v0, s0 <2d, repeat, linear, miplinear>","mov o0, t0"],"diffuse"); + + private static const setColorProcedure:name_114 = new name_114(["mov o0, i0"],"setColorProcedure"); + + private static const outputWithLightProcedure:name_114 = new name_114(["mul t0.xyz, i0.xyz, i1.xyz","mov t0.w, i1.w","mov o0, t0"],"outputWithLightProcedure"); + + private static const outputProcedure:name_114 = new name_114(["mov o0, i0"],"outputProcedure"); + + private static const passVaryingsProcedure:name_114 = new name_114(["#c0=cCamera","#v0=vPosition","#v1=vViewVector","mov v0, i0","sub t0, c0, i0","mov v1.xyz, t0.xyz","mov v1.w, c0.w"],"passVaryingsProcedure"); + + private static const passTBNRightProcedure:name_114 = method_123(true); + + private static const passTBNLeftProcedure:name_114 = method_123(false); + + private static const getNormalAndViewProcedure:name_114 = new name_114(["#v0=vTangent","#v1=vBinormal","#v2=vNormal","#v3=vUV","#v4=vViewVector","#c0=cSurface","#s0=sBump","tex t0, v3, s0 <2d,repeat,linear,miplinear>","add t0, t0, t0","sub t0.xyz, t0.xyz, c0.www","nrm t1.xyz, v0.xyz","dp3 o0.x, t0.xyz, t1.xyz","nrm t1.xyz, v1.xyz","dp3 o0.y, t0.xyz, t1.xyz","nrm t1.xyz, v2.xyz","dp3 o0.z, t0.xyz, t1.xyz","nrm o0.xyz, o0.xyz","nrm o1.xyz, v4"],"getNormalAndViewProcedure"); + + private static const getSpecularOptionsConstProcedure:name_114 = new name_114(["#c0=cSurface","mov i0.w, c0.y","mov i1.w, c0.z"],"getSpecularOptionsConstProcedure"); + + public var uOffset:Number = 0; + + public var vOffset:Number = 0; + + public var normalMap:name_129; + + public var glossiness:Number = 100; + + public var var_25:Number = 1; + + private const outputWithSpecularProcedure:name_114 = new name_114(["mul t0.xyz, i0.xyz, i1.xyz","add t0.xyz, t0.xyz, i2.xyz","mov t0.w, i1.w","mov o0, t0"],"outputWithSpecularProcedure"); + + public function name_33(diffuse:name_129 = null, normalMap:name_129 = null) + { + super(); + this.diffuseMap = diffuse; + this.normalMap = normalMap; + } + + public static function method_33(texture:name_129) : void + { + fogTexture = texture; + } + + private static function method_123(right:Boolean) : name_114 + { + var crsInSpace:String = right ? "crs t1.xyz, i0, i1" : "crs t1.xyz, i1, i0"; + return new name_114(["#v0=vTangent","#v1=vBinormal","#v2=vNormal",crsInSpace,"mul t1.xyz, t1.xyz, i0.w","mov v0.x, i0.x","mov v0.y, t1.x","mov v0.z, i1.x","mov v0.w, i1.w","mov v1.x, i0.y","mov v1.y, t1.y","mov v1.z, i1.y","mov v1.w, i1.w","mov v2.x, i0.z","mov v2.y, t1.z","mov v2.z, i1.z","mov v2.w, i1.w"],"passTBNProcedure"); + } + + private static function directionalProcedure(light:name_116, add:Boolean) : name_114 + { + return new name_114(["#c0=c" + light.alternativa3d::name_138 + "Direction","#c1=c" + light.alternativa3d::name_138 + "Color","add t0.xyz, i1.xyz, c0.xyz","nrm t0.xyz, t0.xyz","dp3 t0.w, t0.xyz, i0.xyz","pow t0.w, t0.w, i0.w","mul t0.w, t0.w, i1.w","dp3 t0.x, i0.xyz, c0.xyz","sat t0.x, t0.x",add ? "mul t0.xyz, c1.xyz, t0.x" : "mul o0.xyz, c1.xyz, t0.x",add ? "add o0.xyz, o0.xyz, t0.xyz" : "mov o0.w, c0.w",add ? "mul t0.xyz, c1.xyz, t0.w" : "mul o1.xyz, c1.xyz, t0.w",add ? "add o1.xyz, o1.xyz, t0.xyz" : "mov o1.w, c0.w"],"directionalProcedure"); + } + + private static function omniProcedure(light:name_116, add:Boolean) : name_114 + { + return new name_114(["#c0=c" + light.alternativa3d::name_138 + "Position","#c1=c" + light.alternativa3d::name_138 + "Color","#c2=c" + light.alternativa3d::name_138 + "Radius","#v0=vPosition","sub t0, c0, v0","dp3 t0.w, t0.xyz, t0.xyz","nrm t0.xyz, t0.xyz","add t1.xyz, i1.xyz, t0.xyz","mov t1.w, c0.w","nrm t1.xyz, t1.xyz","dp3 t1.w, t1.xyz, i0.xyz","pow t1.w, t1.w, i0.w","mul t1.w, t1.w, i1.w","sqt t1.x, t0.w","dp3 t0.w, t0.xyz, i0.xyz","sub t0.x, t1.x, c2.z","div t0.y, t0.x, c2.y","sub t0.x, c2.x, t0.y","sat t0.xw, t0.xw","mul t0.xyz, c1.xyz, t0.xxx",add ? "mul t1.xyz, t0.xyz, t0.w" : "mul o0.xyz, t0.xyz, t0.w",add ? "add o0.xyz, o0.xyz, t1.xyz" : "mov o0.w, c0.w",add ? "mul t1.xyz, t0.xyz, t1.w" : "mul o1.xyz, t0.xyz, t1.w",add ? "add o1.xyz, o1.xyz, t1.xyz" : "mov o1.w, c0.w"],"omniProcedure"); + } + + override alternativa3d function fillResources(resources:Dictionary, resourceType:Class) : void + { + super.alternativa3d::fillResources(resources,resourceType); + if(diffuseMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(diffuseMap)) as Class,resourceType))) + { + resources[diffuseMap] = true; + } + if(this.normalMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.normalMap)) as Class,resourceType))) + { + resources[this.normalMap] = true; + } + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + var i:int = 0; + var light:name_116 = null; + var shadowedLight:DirectionalLight = null; + var drawUnit:name_135 = null; + var program:name_127 = null; + var numShadows:int = 0; + var shadow:name_103 = null; + var lightsPrograms:Dictionary = null; + if(diffuseMap == null || this.normalMap == null || diffuseMap.alternativa3d::_texture == null || this.normalMap.alternativa3d::_texture == null) + { + return; + } + var object:name_78 = surface.alternativa3d::object; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + var tangentBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TANGENT4); + var normalBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.NORMAL); + if(positionBuffer == null || uvBuffer == null || tangentBuffer == null || normalBuffer == null) + { + return; + } + var lightsKey:String = ""; + var actualLightsLength:int = 0; + for(i = 0; i < lightsLength; ) + { + light = lights[i]; + if(light is DirectionalLight && shadowedLight == null && DirectionalLight(light).shadow != null) + { + shadowedLight = DirectionalLight(light); + } + else if(actualLightsLength < 8 && (light is OmniLight || light is DirectionalLight)) + { + actualLigths[actualLightsLength] = light; + lightsKey += light.alternativa3d::name_138; + actualLightsLength++; + } + i++; + } + var programs:Array = objectsProgramsSets[object.alternativa3d::transformProcedure]; + if(programs == null) + { + programs = []; + objectsProgramsSets[object.alternativa3d::transformProcedure] = programs; + } + if(shadowedLight != null) + { + program = programs[0]; + if(program == null) + { + program = this.method_125(object,shadowedLight.shadow,true); + program.upload(camera.alternativa3d::context3D); + programs[0] = program; + } + drawUnit = this.method_126(program,shadowedLight.shadow,true,camera,object,surface,geometry); + } + else + { + program = programs[1]; + if(program == null) + { + program = this.method_125(object,null,true); + program.upload(camera.alternativa3d::context3D); + programs[1] = program; + } + drawUnit = this.method_126(program,null,true,camera,object,surface,geometry); + } + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.ONE; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ZERO; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.TANK_OPAQUE); + if(shadowedLight != null) + { + numShadows = object.alternativa3d::shadowRenderers != null ? int(object.alternativa3d::shadowRenderers.length) : 0; + for(i = 0; i < numShadows; ) + { + shadow = object.alternativa3d::shadowRenderers[i]; + if(shadow is name_208) + { + program = programs[2]; + if(program == null) + { + program = this.method_125(object,shadow,false); + program.upload(camera.alternativa3d::context3D); + programs[2] = program; + } + drawUnit = this.method_126(program,shadow,false,camera,object,surface,geometry); + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.ZERO; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.SOURCE_COLOR; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.SHADOWS); + } + i++; + } + program = programs[3]; + if(program == null) + { + lightContainer[0] = shadowedLight; + program = this.method_127(object,lightContainer,1); + program.upload(camera.alternativa3d::context3D); + programs[3] = program; + } + drawUnit = this.method_128(program,lightContainer,1,camera,object,surface,geometry); + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.DESTINATION_ALPHA; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.SHADOWED_LIGHTS); + } + if(actualLightsLength > 0) + { + lightsPrograms = programs[4]; + if(lightsPrograms == null) + { + lightsPrograms = new Dictionary(false); + programs[4] = lightsPrograms; + } + program = lightsPrograms[lightsKey]; + if(program == null) + { + program = this.method_127(object,actualLigths,actualLightsLength); + program.upload(camera.alternativa3d::context3D); + lightsPrograms[lightsKey] = program; + } + drawUnit = this.method_128(program,actualLigths,actualLightsLength,camera,object,surface,geometry); + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.ONE; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.LIGHTS); + } + if(fogMode == SIMPLE || fogMode == ADVANCED) + { + program = programs[int(fogMode + 4)]; + if(program == null) + { + program = this.method_129(object); + program.upload(camera.alternativa3d::context3D); + programs[int(fogMode + 4)] = program; + } + drawUnit = this.method_130(program,camera,object,surface,geometry); + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.ONE; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.SOURCE_ALPHA; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,name_128.FOG); + } + actualLigths.length = 0; + } + + private function method_125(object:name_78, shadow:name_103, ambient:Boolean) : name_127 + { + var shadowProc:name_114 = null; + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + var positionVar:String = "aPosition"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + if(object.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(object.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + if(ambient) + { + vertexLinker.name_123(passUVProcedure); + } + var colorConst:String = ambient ? "cAmbient" : "cShadow"; + fragmentLinker.name_120(colorConst,name_115.CONSTANT); + fragmentLinker.name_120("tLight"); + fragmentLinker.name_123(setColorProcedure); + fragmentLinker.name_118(setColorProcedure,colorConst); + fragmentLinker.name_125(setColorProcedure,"tLight"); + if(shadow != null) + { + vertexLinker.name_123(shadow.getVShader()); + shadowProc = shadow.getFIntensityShader(); + fragmentLinker.name_123(shadowProc); + fragmentLinker.name_125(shadowProc,"tLight"); + } + if(ambient) + { + fragmentLinker.name_120("tColor"); + fragmentLinker.name_123(diffuseProcedure); + fragmentLinker.name_125(diffuseProcedure,"tColor"); + fragmentLinker.name_123(outputWithLightProcedure); + fragmentLinker.name_118(outputWithLightProcedure,"tColor","tLight"); + } + else + { + fragmentLinker.name_123(outputProcedure); + fragmentLinker.name_118(outputProcedure,"tLight"); + } + fragmentLinker.name_133(vertexLinker); + return new name_127(vertexLinker,fragmentLinker); + } + + private function method_126(program:name_127, shadow:name_103, ambient:Boolean, camera:name_124, object:name_78, surface:name_117, geometry:name_119) : name_135 + { + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aPosition"),positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + if(ambient) + { + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aUV"),uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + } + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.vertexShader.getVariableIndex("cProjMatrix"),object.alternativa3d::localToCameraTransform); + if(ambient) + { + drawUnit.alternativa3d::name_144(program.vertexShader.getVariableIndex("cUVOffsets"),-this.uOffset,this.vOffset,0,0); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cAmbient"),camera.alternativa3d::ambient[0],camera.alternativa3d::ambient[1],camera.alternativa3d::ambient[2],1); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sDiffuse"),diffuseMap.alternativa3d::_texture); + } + else + { + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cShadow"),1,1,1,1); + } + if(shadow != null) + { + shadow.applyShader(drawUnit,program,object,camera); + } + return drawUnit; + } + + private function method_127(object:name_78, lights:Vector., lightsLength:int) : name_127 + { + var procedure:name_114 = null; + var light:name_116 = null; + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + var positionVar:String = "aPosition"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + if(object.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(object.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + vertexLinker.name_123(passUVProcedure); + vertexLinker.name_123(passVaryingsProcedure); + vertexLinker.name_118(passVaryingsProcedure,positionVar); + vertexLinker.name_120("aTangent",name_115.ATTRIBUTE); + vertexLinker.name_120("aNormal",name_115.ATTRIBUTE); + vertexLinker.name_123(passTBNRightProcedure); + vertexLinker.name_118(passTBNRightProcedure,"aTangent","aNormal"); + fragmentLinker.name_120("tNormal"); + fragmentLinker.name_120("tView"); + fragmentLinker.name_123(getNormalAndViewProcedure); + fragmentLinker.name_125(getNormalAndViewProcedure,"tNormal","tView"); + fragmentLinker.name_123(getSpecularOptionsConstProcedure); + fragmentLinker.name_118(getSpecularOptionsConstProcedure,"tNormal","tView"); + fragmentLinker.name_120("tLight"); + fragmentLinker.name_120("tHLight"); + var first:Boolean = true; + for(var i:int = 0; i < lightsLength; ) + { + light = lights[i]; + if(light is DirectionalLight) + { + procedure = directionalProcedure(light,!first); + fragmentLinker.name_123(procedure); + fragmentLinker.name_118(procedure,"tNormal","tView"); + fragmentLinker.name_125(procedure,"tLight","tHLight"); + if(first) + { + first = false; + } + } + else if(light is OmniLight) + { + procedure = omniProcedure(light,!first); + fragmentLinker.name_123(procedure); + fragmentLinker.name_118(procedure,"tNormal","tView"); + fragmentLinker.name_125(procedure,"tLight","tHLight"); + if(first) + { + first = false; + } + } + i++; + } + fragmentLinker.name_120("outColor"); + fragmentLinker.name_123(diffuseProcedure); + fragmentLinker.name_125(diffuseProcedure,"outColor"); + fragmentLinker.name_123(this.outputWithSpecularProcedure); + fragmentLinker.name_118(this.outputWithSpecularProcedure,"outColor","tLight","tHLight"); + fragmentLinker.name_133(vertexLinker); + return new name_127(vertexLinker,fragmentLinker); + } + + private function method_128(program:name_127, lights:Vector., lightsLength:int, camera:name_124, object:name_78, surface:name_117, geometry:name_119) : name_135 + { + var rScale:Number = NaN; + var transform:name_139 = null; + var light:name_116 = null; + var len:Number = NaN; + var omni:OmniLight = null; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + var tangentBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TANGENT4); + var normalBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.NORMAL); + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aPosition"),positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aUV"),uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aTangent"),tangentBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TANGENT4],name_126.alternativa3d::FORMATS[name_126.TANGENT4]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aNormal"),normalBuffer,geometry.alternativa3d::_attributesOffsets[name_126.NORMAL],name_126.alternativa3d::FORMATS[name_126.NORMAL]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.vertexShader.getVariableIndex("cProjMatrix"),object.alternativa3d::localToCameraTransform); + drawUnit.alternativa3d::name_144(program.vertexShader.getVariableIndex("cCamera"),object.alternativa3d::cameraToLocalTransform.d,object.alternativa3d::cameraToLocalTransform.h,object.alternativa3d::cameraToLocalTransform.l,1); + drawUnit.alternativa3d::name_144(program.vertexShader.getVariableIndex("cUVOffsets"),-this.uOffset,this.vOffset,0,0); + for(var i:int = 0; i < lightsLength; ) + { + light = lights[i]; + if(light is DirectionalLight) + { + transform = light.alternativa3d::name_141; + len = Number(Math.sqrt(transform.c * transform.c + transform.g * transform.g + transform.k * transform.k)); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Direction"),-transform.c / len,-transform.g / len,-transform.k / len,1); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Color"),light.alternativa3d::red,light.alternativa3d::green,light.alternativa3d::blue); + } + else if(light is OmniLight) + { + omni = OmniLight(light); + transform = light.alternativa3d::name_141; + rScale = Number(Math.sqrt(transform.a * transform.a + transform.e * transform.e + transform.i * transform.i)); + rScale += Math.sqrt(transform.b * transform.b + transform.f * transform.f + transform.j * transform.j); + rScale += Math.sqrt(transform.c * transform.c + transform.g * transform.g + transform.k * transform.k); + rScale /= 3; + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Position"),transform.d,transform.h,transform.l); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Radius"),1,omni.attenuationEnd * rScale - omni.attenuationBegin * rScale,omni.attenuationBegin * rScale); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Color"),light.alternativa3d::red,light.alternativa3d::green,light.alternativa3d::blue); + } + i++; + } + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cSurface"),0,this.glossiness,this.var_25,1); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sDiffuse"),diffuseMap.alternativa3d::_texture); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sBump"),this.normalMap.alternativa3d::_texture); + return drawUnit; + } + + private function method_129(object:name_78) : name_127 + { + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + var positionVar:String = "aPosition"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + if(object.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(object.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + if(fogMode == SIMPLE) + { + vertexLinker.name_123(passSimpleFogConstProcedure); + vertexLinker.name_118(passSimpleFogConstProcedure,positionVar); + fragmentLinker.name_123(outputWithSimpleFogProcedure); + } + else + { + vertexLinker.name_120("projected"); + vertexLinker.name_125(alternativa3d::_projectProcedure,"projected"); + vertexLinker.name_123(postPassAdvancedFogConstProcedure); + vertexLinker.name_118(postPassAdvancedFogConstProcedure,positionVar,"projected"); + fragmentLinker.name_123(outputWithAdvancedFogProcedure); + } + fragmentLinker.name_133(vertexLinker); + return new name_127(vertexLinker,fragmentLinker); + } + + private function method_130(program:name_127, camera:name_124, object:name_78, surface:name_117, geometry:name_119) : name_135 + { + var lm:name_139 = null; + var dist:Number = NaN; + var cLocal:name_139 = null; + var halfW:Number = NaN; + var leftX:Number = NaN; + var leftY:Number = NaN; + var rightX:Number = NaN; + var rightY:Number = NaN; + var angle:Number = NaN; + var dx:Number = NaN; + var dy:Number = NaN; + var lens:Number = NaN; + var uScale:Number = NaN; + var uRight:Number = NaN; + var bmd:BitmapData = null; + var i:int = 0; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aPosition"),positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.vertexShader.getVariableIndex("cProjMatrix"),object.alternativa3d::localToCameraTransform); + if(fogMode == SIMPLE || fogMode == ADVANCED) + { + lm = object.alternativa3d::localToCameraTransform; + dist = fogFar - fogNear; + drawUnit.alternativa3d::name_144(program.vertexShader.getVariableIndex("cFogSpace"),lm.i / dist,lm.j / dist,lm.k / dist,(lm.l - fogNear) / dist); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogRange"),fogMaxDensity,1,0,1 - fogMaxDensity); + } + if(fogMode == SIMPLE) + { + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogColor"),fogColorR,fogColorG,fogColorB); + } + if(fogMode == ADVANCED) + { + if(fogTexture == null) + { + bmd = new BitmapData(32,1,false,16711680); + for(i = 0; i < 32; i++) + { + bmd.setPixel(i,0,i / 32 * 255 << 16); + } + fogTexture = new name_93(bmd); + fogTexture.upload(camera.alternativa3d::context3D); + } + cLocal = camera.alternativa3d::localToGlobalTransform; + halfW = camera.view.width / 2; + leftX = -halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + leftY = -halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + rightX = halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + rightY = halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + angle = Math.atan2(leftY,leftX) - Math.PI / 2; + if(angle < 0) + { + angle += Math.PI * 2; + } + dx = rightX - leftX; + dy = rightY - leftY; + lens = Number(Math.sqrt(dx * dx + dy * dy)); + leftX /= lens; + leftY /= lens; + rightX /= lens; + rightY /= lens; + uScale = Math.acos(leftX * rightX + leftY * rightY) / Math.PI / 2; + uRight = angle / Math.PI / 2; + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogConsts"),0.5 * uScale,0.5 - uRight,0); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sFogTexture"),fogTexture.alternativa3d::_texture); + } + return drawUnit; + } + + override public function clone() : class_4 + { + var cloned:name_33 = new name_33(diffuseMap,this.normalMap); + cloned.var_25 = this.var_25; + cloned.glossiness = this.glossiness; + return cloned; + } + } +} + diff --git a/src/package_3/name_7.as b/src/package_3/name_7.as new file mode 100644 index 0000000..6704f25 --- /dev/null +++ b/src/package_3/name_7.as @@ -0,0 +1,557 @@ +package package_3 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.BitmapData; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DProgramType; + import flash.display3D.VertexBuffer3D; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import flash.utils.getQualifiedClassName; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_139; + import package_21.name_78; + import package_24.DirectionalLight; + import package_24.OmniLight; + import package_24.SpotLight; + import package_28.name_119; + import package_28.name_129; + import package_28.name_93; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + import package_4.class_5; + import package_4.name_127; + import package_4.name_28; + + use namespace alternativa3d; + + public class name_7 extends class_5 + { + private static var fogTexture:name_129; + + public static const DISABLED:int = 0; + + public static const SIMPLE:int = 1; + + public static const ADVANCED:int = 2; + + public static var fogMode:int = DISABLED; + + public static var fogNear:Number = 1000; + + public static var fogFar:Number = 5000; + + public static var fogMaxDensity:Number = 1; + + public static var fogColorR:Number = 200 / 255; + + public static var fogColorG:Number = 162 / 255; + + public static var fogColorB:Number = 200 / 255; + + private static const _programs:Dictionary = new Dictionary(); + + private static const _lightFragmentProcedures:Dictionary = new Dictionary(); + + private static const _diffuseProcedure:name_114 = name_114.name_140(["#v0=vUV","#c0=cTiling","#s0=sColormap","#s1=sDiffuse","#s2=sSurface","mul t0, v0, c0","tex t1, t0, s0 <2d, repeat, linear, miplinear>","tex t0, v0, s1 <2d, clamp, linear, miplinear>","add t2, t0, t0","mul t2, t2, t1","tex t1, v0, s2 <2d, clamp, linear, miplinear>","mul t2, t2, t1.x","add t2, t2, t0","mul t0, t0, t1.x","sub o0, t2, t0"],"diffuse"); + + private static const _passVaryingsProcedure:name_114 = new name_114(["#v0=vPosition","#v1=vViewVector","#c0=cCameraPosition","mov v0, i0","sub t0, c0, i0","mov v1.xyz, t0.xyz","mov v1.w, c0.w"],"passVaryings"); + + private static const _passTBNProcedure:name_114 = new name_114(["#v0=vTangent","#v1=vBinormal","#v2=vNormal","crs t1.xyz, i0, i1","mul t1.xyz, t1.xyz, i0.w","mov t0, i0","mov t2, i1","mov t4.w, t0.y","mov t0.y, t1.x","mov t1.x, t4.w","mov t4.w, t0.z","mov t0.z, t2.x","mov t2.x, t4.w","mov t4.w, t1.z","mov t1.z, t2.y","mov t2.y, t4.w","mov t0.w, i1.w","mov t1.w, i1.w","mov t2.w, i1.w","mov v2, t2","mov v0, t0","mov v1, t1"],"passsTBN"); + + private static const _ambientLightProcedure:name_114 = new name_114(["#c0=cSurface","mov o0, i0","mov o1, c0.xxxx"],"ambientLight"); + + private static const _getNormalAndViewTangentProcedure:name_114 = new name_114(["#v0=vTangent","#v1=vBinormal","#v2=vNormal","#v3=vUV","#v4=vViewVector","#c0=cAmbientColor","#s0=sBump","tex t0, v3, s0 <2d,clamp,linear,miplinear>","add t0, t0, t0","sub t0.xyz, t0.xyz, c0.www","nrm t1.xyz, v0.xyz","dp3 o0.x, t0.xyz, t1.xyz","nrm t1.xyz, v1.xyz","dp3 o0.y, t0.xyz, t1.xyz","nrm t1.xyz, v2.xyz","dp3 o0.z, t0.xyz, t1.xyz","nrm o0.xyz, o0.xyz","nrm o1.xyz, v4"],"getNormalAndViewTangent"); + + private static const _getNormalAndViewObjectProcedure:name_114 = new name_114(["#v3=vUV","#v4=vViewVector","#c0=cAmbientColor","#s0=sBump","tex t0, v3, s0 <2d,clamp,linear,miplinear>","add t0, t0, t0","sub t0.xyz, t0.xyz, c0.www","neg t0.y, t0.y","nrm o0.xyz, t0.xyz","nrm o1.xyz, v4"],"getNormalAndViewObject"); + + private static const _setOpacityProcedure:name_114 = new name_114(["#v0=vUV","#s0=sOpacity","tex t0, v0, s0 <2d, clamp,linear,miplinear>","mov o0.w, t0.x"],"setOpactity"); + + private static const _applySpecularProcedure:name_114 = new name_114(["#v0=vUV","#s0=sSurface","tex t0, v0, s0 <2d, clamp,linear,miplinear>","mul o0.xyz, o0.xyz, t0.y"],"applySpecular"); + + private static const _setGlossinessFromTextureProcedure:name_114 = new name_114(["#v0=vUV","#c0=cSurface","#s0=sSurface","tex t0, v0, s0 <2d, clamp, linear, miplinear>","mul o0.w, c0.y, t0.z"],"setGlossinessFromTexture"); + + private static const _setGlossinessFromConstantProcedure:name_114 = new name_114(["#c0=cSurface","mov o0.w, c0.y"],"setGlossinessFromConstant"); + + private static const _mulLightingProcedure:name_114 = new name_114(["#c0=cSurface","mul t0.xyz, i0.xyz, i2.xyz","mul t1.xyz, i1.xyz, c0.z","add t0.xyz, t0.xyz, t1.xyz","mov t0.w, c0.w","mov o0, t0"],"mulLighting"); + + private static const _mulLightingProcedureWithDiffuseAlpha:name_114 = new name_114(["#s0=sTexture","#v0=vUV","#c0=cSurface","mul t0.xyz, i0.xyz, i2.xyz","mul t1.xyz, i1.xyz, c0.z","add t0.xyz, t0.xyz, t1.xyz","tex t2, v0, s0 <2d, clamp,linear,miplinear>","mov t0.w, t2.x","mul t0.w, t0.w, c0.w","mov o0, t0"],"mulLightingWithDiffuseAlpha"); + + private static const passSimpleFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z"],"passSimpleFogConst"); + + private static const outputWithSimpleFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogColor","#c1=cFogRange","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul i0.xyz, i0.xyz, t0.y","mul t0.xyz, c0.xyz, t0.x","add i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"outputWithSimpleFog"); + + private static const postPassAdvancedFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z","mov v0.zw, i1.xwxw","mov o0, i1"],"postPassAdvancedFogConst"); + + private static const outputWithAdvancedFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogConsts","#c1=cFogRange","#s0=sFogTexture","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul i0.xyz, i0.xyz, t0.y","mov t1.xyzw, c0.yyzw","div t0.z, v0.z, v0.w","mul t0.z, t0.z, c0.x","add t1.x, t1.x, t0.z","tex t1, t1, s0 <2d, repeat, linear, miplinear>","mul t0.xyz, t1.xyz, t0.x","add i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"outputWithAdvancedFog"); + + public var colorMap:name_129; + + public var surfaceMap:name_129; + + public var var_26:Number = 1; + + public var var_24:Number = 1; + + public var var_22:Number = 1; + + public var normalMap:name_129; + + public var glossiness:Number = 100; + + public var var_25:Number = 1; + + alternativa3d var var_23:Boolean = false; + + public function name_7(colorMap:name_129 = null, diffuseMap:name_129 = null, normalMap:name_129 = null, surfaceMap:name_129 = null) + { + super(diffuseMap); + this.colorMap = colorMap; + this.normalMap = normalMap; + this.surfaceMap = surfaceMap; + } + + public static function method_33(texture:name_129) : void + { + fogTexture = texture; + } + + alternativa3d function getPassUVProcedure() : name_114 + { + return alternativa3d::_passUVProcedure; + } + + alternativa3d function setPassUVProcedureConstants(destination:name_135, vertexLinker:name_121) : void + { + } + + private function method_75(targetObject:name_78, lights:Vector., directional:DirectionalLight, lightsLength:int) : name_127 + { + var i:int = 0; + var procedure:name_114 = null; + var shadowProc:name_114 = null; + var dirMulShadowProcedure:name_114 = null; + var light:name_116 = null; + var lightFragmentProcedure:name_114 = null; + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + fragmentLinker.name_120("tTotalLight"); + fragmentLinker.name_120("tTotalHighLight"); + fragmentLinker.name_120("tNormal"); + fragmentLinker.name_120("cAmbientColor",name_115.CONSTANT); + fragmentLinker.name_123(_ambientLightProcedure); + fragmentLinker.name_118(_ambientLightProcedure,"cAmbientColor"); + fragmentLinker.name_125(_ambientLightProcedure,"tTotalLight","tTotalHighLight"); + fragmentLinker.name_120("outColor"); + fragmentLinker.name_123(_diffuseProcedure); + fragmentLinker.name_125(_diffuseProcedure,"outColor"); + var positionVar:String = "aPosition"; + var normalVar:String = "aNormal"; + var tangentVar:String = "aTangent"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + vertexLinker.name_120(tangentVar,name_115.ATTRIBUTE); + vertexLinker.name_120(normalVar,name_115.ATTRIBUTE); + if(targetObject.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(targetObject.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + vertexLinker.name_123(this.alternativa3d::getPassUVProcedure()); + if(this.surfaceMap != null) + { + fragmentLinker.name_123(_setGlossinessFromTextureProcedure); + fragmentLinker.name_125(_setGlossinessFromTextureProcedure,"tTotalHighLight"); + } + else + { + fragmentLinker.name_123(_setGlossinessFromConstantProcedure); + fragmentLinker.name_125(_setGlossinessFromConstantProcedure,"tTotalHighLight"); + } + if(lightsLength > 0) + { + if(targetObject.alternativa3d::deltaTransformProcedure != null) + { + vertexLinker.name_120("tTransformedNormal"); + procedure = targetObject.alternativa3d::deltaTransformProcedure.name_143(); + vertexLinker.name_123(procedure); + vertexLinker.name_118(procedure,normalVar); + vertexLinker.name_125(procedure,"tTransformedNormal"); + normalVar = "tTransformedNormal"; + vertexLinker.name_120("tTransformedTangent"); + procedure = targetObject.alternativa3d::deltaTransformProcedure.name_143(); + vertexLinker.name_123(procedure); + vertexLinker.name_118(procedure,tangentVar); + vertexLinker.name_125(procedure,"tTransformedTangent"); + tangentVar = "tTransformedTangent"; + } + vertexLinker.name_123(_passVaryingsProcedure); + vertexLinker.name_118(_passVaryingsProcedure,positionVar); + fragmentLinker.name_120("tViewVector"); + if(this.alternativa3d::var_23) + { + vertexLinker.name_123(_passTBNProcedure); + vertexLinker.name_118(_passTBNProcedure,tangentVar,normalVar); + fragmentLinker.name_123(_getNormalAndViewTangentProcedure); + fragmentLinker.name_125(_getNormalAndViewTangentProcedure,"tNormal","tViewVector"); + } + else + { + fragmentLinker.name_123(_getNormalAndViewObjectProcedure); + fragmentLinker.name_125(_getNormalAndViewObjectProcedure,"tNormal","tViewVector"); + } + if(directional != null) + { + vertexLinker.name_123(directional.shadow.getVShader()); + shadowProc = directional.shadow.getFShader(); + fragmentLinker.name_123(shadowProc); + fragmentLinker.name_125(shadowProc,"tTotalLight"); + dirMulShadowProcedure = _lightFragmentProcedures[directional.shadow]; + if(dirMulShadowProcedure == null) + { + dirMulShadowProcedure = new name_114(null,"DirectionalLightWithShadow"); + this.method_76(dirMulShadowProcedure,directional,true); + } + fragmentLinker.name_123(dirMulShadowProcedure); + fragmentLinker.name_118(dirMulShadowProcedure,"tNormal","tViewVector","tTotalLight","cAmbientColor"); + fragmentLinker.name_125(dirMulShadowProcedure,"tTotalLight","tTotalHighLight"); + } + for(i = 0; i < lightsLength; ) + { + light = lights[i]; + if(light != directional) + { + lightFragmentProcedure = _lightFragmentProcedures[light]; + if(lightFragmentProcedure == null) + { + lightFragmentProcedure = new name_114(); + if(light is DirectionalLight) + { + this.method_76(lightFragmentProcedure,light,false); + lightFragmentProcedure.name = i + "DirectionalLight"; + } + else if(light is OmniLight) + { + lightFragmentProcedure.name_140(["#c0=c" + light.alternativa3d::name_138 + "Position","#c1=c" + light.alternativa3d::name_138 + "Color","#c2=c" + light.alternativa3d::name_138 + "Radius","#v0=vPosition","sub t0, c0, v0","dp3 t0.w, t0.xyz, t0.xyz","nrm t0.xyz, t0.xyz","add t1.xyz, i1.xyz, t0.xyz","mov t1.w, c0.w","nrm t1.xyz, t1.xyz","dp3 t1.w, t1.xyz, i0.xyz","pow t1.w, t1.w, o1.w","sqt t1.x, t0.w","dp3 t0.w, t0.xyz, i0.xyz","sub t0.x, t1.x, c2.z","div t0.y, t0.x, c2.y","sub t0.x, c2.x, t0.y","sat t0.xw, t0.xw","mul t0.xyz, c1.xyz, t0.xxx","mul t1.xyz, t0.xyz, t1.w","add o1.xyz, o1.xyz, t1.xyz","mul t0.xyz, t0.xyz, t0.www","add o0.xyz, o0.xyz, t0.xyz"]); + lightFragmentProcedure.name = i + "OmniLight"; + } + else if(light is SpotLight) + { + lightFragmentProcedure.name_140(["#c0=c" + light.alternativa3d::name_138 + "Position","#c1=c" + light.alternativa3d::name_138 + "Color","#c2=c" + light.alternativa3d::name_138 + "Radius","#c3=c" + light.alternativa3d::name_138 + "Axis","#v0=vPosition","sub t0, c0, v0","dp3 t0.w, t0, t0","nrm t0.xyz,t0.xyz","add t2.xyz, i1.xyz, t0.xyz","nrm t2.xyz, t2.xyz","dp3 t2.x, t2.xyz, i0.xyz","pow t2.x, t2.x, o1.w","dp3 t1.x, t0.xyz, c3.xyz","dp3 t0.x,t0,i0","sqt t0.w,t0.w","sub t0.w, t0.w, c2.y","div t0.y, t0.w, c2.x","sub t0.w, c0.w, t0.y","sub t0.y, t1.x, c2.w","div t0.y, t0.y, c2.z","sat t0.xyw,t0.xyw","mul t1.xyz,c1.xyz,t0.yyy","mul t1.xyz,t1.xyz,t0.www","mul t2.xyz, t2.x, t1.xyz","add o1.xyz, o1.xyz, t2.xyz","mul t1.xyz, t1.xyz, t0.xxx","add o0.xyz, o0.xyz, t1.xyz"]); + lightFragmentProcedure.name = i + "SpotLight"; + } + } + fragmentLinker.name_123(lightFragmentProcedure); + fragmentLinker.name_118(lightFragmentProcedure,"tNormal","tViewVector"); + fragmentLinker.name_125(lightFragmentProcedure,"tTotalLight","tTotalHighLight"); + } + i++; + } + } + if(opacityMap != null) + { + fragmentLinker.name_123(_setOpacityProcedure); + fragmentLinker.name_125(_setOpacityProcedure,"outColor"); + } + if(this.surfaceMap != null) + { + fragmentLinker.name_123(_applySpecularProcedure); + fragmentLinker.name_125(_applySpecularProcedure,"tTotalHighLight"); + } + if(var_21) + { + fragmentLinker.name_123(_mulLightingProcedureWithDiffuseAlpha); + fragmentLinker.name_118(_mulLightingProcedureWithDiffuseAlpha,"tTotalLight","tTotalHighLight","outColor"); + } + else + { + fragmentLinker.name_123(_mulLightingProcedure); + fragmentLinker.name_118(_mulLightingProcedure,"tTotalLight","tTotalHighLight","outColor"); + } + if(fogMode == SIMPLE) + { + vertexLinker.name_123(passSimpleFogConstProcedure); + vertexLinker.name_118(passSimpleFogConstProcedure,positionVar); + fragmentLinker.name_125(_mulLightingProcedure,"outColor"); + fragmentLinker.name_123(outputWithSimpleFogProcedure); + fragmentLinker.name_118(outputWithSimpleFogProcedure,"outColor"); + } + else if(fogMode == ADVANCED) + { + vertexLinker.name_120("tProjected"); + vertexLinker.name_125(alternativa3d::_projectProcedure,"tProjected"); + vertexLinker.name_123(postPassAdvancedFogConstProcedure); + vertexLinker.name_118(postPassAdvancedFogConstProcedure,positionVar,"tProjected"); + fragmentLinker.name_125(_mulLightingProcedure,"outColor"); + fragmentLinker.name_123(outputWithAdvancedFogProcedure); + fragmentLinker.name_118(outputWithAdvancedFogProcedure,"outColor"); + } + fragmentLinker.name_133(vertexLinker); + vertexLinker.name_142(); + fragmentLinker.name_142(); + return new name_127(vertexLinker,fragmentLinker); + } + + private function method_76(procedure:name_114, light:name_116, useShadow:Boolean) : void + { + var source:Array = ["#c0=c" + light.alternativa3d::name_138 + "Direction","#c1=c" + light.alternativa3d::name_138 + "Color","add t0.xyz, i1.xyz, c0.xyz","mov t0.w, c0.w","nrm t0.xyz,t0.xyz","dp3 t0.w, t0.xyz, i0.xyz","pow t0.w, t0.w, o1.w","dp3 t0.x, i0, c0.xyz","sat t0.x, t0.x"]; + if(useShadow) + { + source.push("mul t0.x, t0.x, i2.x"); + source.push("mul t0.xyz, c1.xyz, t0.xxx"); + source.push("mov o0.xyz, t0.xyz"); + source.push("add o0.xyz, o0.xyz, i3.xyz"); + source.push("mul t0.w, i2.x, t0.w"); + source.push("mul o1.xyz, c1.xyz, t0.www"); + } + else + { + source.push("mul t0.xyz, c1.xyz, t0.xxxx"); + source.push("add o0, o0, t0.xyz"); + source.push("mul t0.xyz, c1.xyz, t0.w"); + source.push("add o1.xyz, o1.xyz, t0.xyz"); + } + procedure.name_140(source); + } + + override alternativa3d function fillResources(resources:Dictionary, resourceType:Class) : void + { + super.alternativa3d::fillResources(resources,resourceType); + if(this.colorMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.colorMap)) as Class,resourceType))) + { + resources[this.colorMap] = true; + } + if(this.normalMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.normalMap)) as Class,resourceType))) + { + resources[this.normalMap] = true; + } + if(opacityMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(opacityMap)) as Class,resourceType))) + { + resources[opacityMap] = true; + } + if(this.surfaceMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.surfaceMap)) as Class,resourceType))) + { + resources[this.surfaceMap] = true; + } + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + var light:name_116 = null; + var i:int = 0; + var directional:DirectionalLight = null; + var program:name_127 = null; + var camTransform:name_139 = null; + var transform:name_139 = null; + var rScale:Number = NaN; + var len:Number = NaN; + var omni:OmniLight = null; + var spot:SpotLight = null; + var falloff:Number = NaN; + var hotspot:Number = NaN; + var lm:name_139 = null; + var dist:Number = NaN; + var cLocal:name_139 = null; + var halfW:Number = NaN; + var leftX:Number = NaN; + var leftY:Number = NaN; + var rightX:Number = NaN; + var rightY:Number = NaN; + var angle:Number = NaN; + var dx:Number = NaN; + var dy:Number = NaN; + var lens:Number = NaN; + var uScale:Number = NaN; + var uRight:Number = NaN; + var bmd:BitmapData = null; + if(diffuseMap == null || this.colorMap == null || this.normalMap == null || diffuseMap.alternativa3d::_texture == null || this.colorMap.alternativa3d::_texture == null || this.normalMap.alternativa3d::_texture == null) + { + return; + } + if(!var_21 && opacityMap != null && opacityMap.alternativa3d::_texture == null) + { + return; + } + if(this.surfaceMap != null && this.surfaceMap.alternativa3d::_texture == null) + { + return; + } + var object:name_78 = surface.alternativa3d::object; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + var normalsBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.NORMAL); + var tangentsBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TANGENT4); + if(positionBuffer == null || uvBuffer == null) + { + return; + } + lightsLength = lightsLength > 5 ? 5 : lightsLength; + var key:String = fogMode.toString() + (this.alternativa3d::var_23 ? "T" : "t") + (opacityMap != null ? "O" : "o") + (this.surfaceMap != null ? "S" : "s") + (var_21 ? "D" : "d"); + for(i = 0; i < lightsLength; i++) + { + light = lights[i]; + if(light is DirectionalLight && directional == null && DirectionalLight(light).shadow != null) + { + directional = DirectionalLight(light); + key += "S"; + } + key += light.alternativa3d::name_138; + } + var dict:Dictionary = _programs[object.alternativa3d::transformProcedure]; + if(dict == null) + { + dict = new Dictionary(); + _programs[object.alternativa3d::transformProcedure] = dict; + program = this.method_75(object,lights,directional,lightsLength); + program.upload(camera.alternativa3d::context3D); + dict[key] = program; + } + else + { + program = dict[key]; + if(program == null) + { + program = this.method_75(object,lights,directional,lightsLength); + program.upload(camera.alternativa3d::context3D); + dict[key] = program; + } + } + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aPosition"),positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aUV"),uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.vertexShader.getVariableIndex("cProjMatrix"),object.alternativa3d::localToCameraTransform); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cAmbientColor"),this.var_22 * camera.alternativa3d::ambient[0],this.var_22 * camera.alternativa3d::ambient[1],this.var_22 * camera.alternativa3d::ambient[2]); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cSurface"),0,this.glossiness,this.var_25,alpha); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cTiling"),this.var_26,this.var_24,0,0); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sColormap"),this.colorMap.alternativa3d::_texture); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sDiffuse"),diffuseMap.alternativa3d::_texture); + if(opacityMap != null) + { + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sOpacity"),opacityMap.alternativa3d::_texture); + } + if(this.surfaceMap != null) + { + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sSurface"),this.surfaceMap.alternativa3d::_texture); + } + if(lightsLength > 0) + { + if(this.alternativa3d::var_23) + { + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aNormal"),normalsBuffer,geometry.alternativa3d::_attributesOffsets[name_126.NORMAL],name_126.alternativa3d::FORMATS[name_126.NORMAL]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aTangent"),tangentsBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TANGENT4],name_126.alternativa3d::FORMATS[name_126.TANGENT4]); + } + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sBump"),this.normalMap.alternativa3d::_texture); + camTransform = object.alternativa3d::cameraToLocalTransform; + drawUnit.alternativa3d::name_144(program.vertexShader.getVariableIndex("cCameraPosition"),camTransform.d,camTransform.h,camTransform.l); + for(i = 0; i < lightsLength; ) + { + light = lights[i]; + if(light is DirectionalLight) + { + transform = light.alternativa3d::name_141; + len = Number(Math.sqrt(transform.c * transform.c + transform.g * transform.g + transform.k * transform.k)); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Direction"),-transform.c / len,-transform.g / len,-transform.k / len,1); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Color"),light.alternativa3d::red,light.alternativa3d::green,light.alternativa3d::blue); + } + else if(light is OmniLight) + { + omni = light as OmniLight; + transform = light.alternativa3d::name_141; + rScale = Number(Math.sqrt(transform.a * transform.a + transform.e * transform.e + transform.i * transform.i)); + rScale += Math.sqrt(transform.b * transform.b + transform.f * transform.f + transform.j * transform.j); + rScale += Math.sqrt(transform.c * transform.c + transform.g * transform.g + transform.k * transform.k); + rScale /= 3; + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Position"),transform.d,transform.h,transform.l); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Radius"),1,omni.attenuationEnd * rScale - omni.attenuationBegin * rScale,omni.attenuationBegin * rScale); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Color"),light.alternativa3d::red,light.alternativa3d::green,light.alternativa3d::blue); + } + else if(light is SpotLight) + { + spot = light as SpotLight; + transform = light.alternativa3d::name_141; + rScale = Number(Math.sqrt(transform.a * transform.a + transform.e * transform.e + transform.i * transform.i)); + rScale += Math.sqrt(transform.b * transform.b + transform.f * transform.f + transform.j * transform.j); + rScale += len = Number(Math.sqrt(transform.c * transform.c + transform.g * transform.g + transform.k * transform.k)); + rScale /= 3; + falloff = Number(Math.cos(spot.falloff * 0.5)); + hotspot = Number(Math.cos(spot.hotspot * 0.5)); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Position"),transform.d,transform.h,transform.l); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Axis"),-transform.c / len,-transform.g / len,-transform.k / len); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Radius"),spot.attenuationEnd * rScale - spot.attenuationBegin * rScale,spot.attenuationBegin * rScale,hotspot == falloff ? 0.000001 : hotspot - falloff,falloff); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Color"),light.alternativa3d::red,light.alternativa3d::green,light.alternativa3d::blue); + } + if(directional != null) + { + directional.shadow.applyShader(drawUnit,program,object,camera); + } + i++; + } + } + this.alternativa3d::setPassUVProcedureConstants(drawUnit,program.vertexShader); + if(fogMode == SIMPLE || fogMode == ADVANCED) + { + lm = object.alternativa3d::localToCameraTransform; + dist = fogFar - fogNear; + drawUnit.alternativa3d::name_144(program.vertexShader.getVariableIndex("cFogSpace"),lm.i / dist,lm.j / dist,lm.k / dist,(lm.l - fogNear) / dist); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogRange"),fogMaxDensity,1,0,1 - fogMaxDensity); + } + if(fogMode == SIMPLE) + { + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogColor"),fogColorR,fogColorG,fogColorB); + } + if(fogMode == ADVANCED) + { + if(fogTexture == null) + { + bmd = new BitmapData(32,1,false,16711680); + for(i = 0; i < 32; i++) + { + bmd.setPixel(i,0,i / 32 * 255 << 16); + } + fogTexture = new name_93(bmd); + fogTexture.upload(camera.alternativa3d::context3D); + } + cLocal = camera.alternativa3d::localToGlobalTransform; + halfW = camera.view.width / 2; + leftX = -halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + leftY = -halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + rightX = halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + rightY = halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + angle = Math.atan2(leftY,leftX) - Math.PI / 2; + if(angle < 0) + { + angle += Math.PI * 2; + } + dx = rightX - leftX; + dy = rightY - leftY; + lens = Number(Math.sqrt(dx * dx + dy * dy)); + leftX /= lens; + leftY /= lens; + rightX /= lens; + rightY /= lens; + uScale = Math.acos(leftX * rightX + leftY * rightY) / Math.PI / 2; + uRight = angle / Math.PI / 2; + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogConsts"),0.5 * uScale,0.5 - uRight,0); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sFogTexture"),fogTexture.alternativa3d::_texture); + } + if(var_21 || opacityMap != null || alpha < 1) + { + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.SOURCE_ALPHA; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.TRANSPARENT_SORT); + } + else + { + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.OPAQUE); + } + } + } +} + diff --git a/src/package_30/name_114.as b/src/package_30/name_114.as new file mode 100644 index 0000000..8ddf5a5 --- /dev/null +++ b/src/package_30/name_114.as @@ -0,0 +1,370 @@ +package package_30 +{ + import alternativa.engine3d.alternativa3d; + import flash.utils.ByteArray; + import flash.utils.Endian; + + use namespace alternativa3d; + + public class name_114 + { + public var name:String; + + public var byteCode:ByteArray = new ByteArray(); + + public var name_435:Vector.> = new Vector.>(); + + public var var_177:int = 0; + + public var var_176:int = 0; + + alternativa3d var name_436:uint = 0; + + public function name_114(array:Array = null, name:String = null) + { + super(); + this.byteCode.endian = Endian.LITTLE_ENDIAN; + this.name = name; + if(array != null) + { + this.name_140(array); + } + } + + public static function name_140(source:Array, name:String = null) : name_114 + { + return new name_114(source,name); + } + + public static function method_288(source:String, name:String = null) : name_114 + { + var proc:name_114 = new name_114(null,name); + proc.method_288(source); + return proc; + } + + private function method_287(v:name_434) : void + { + var vars:Vector. = this.name_435[v.type]; + var index:int = v.index; + if(index >= vars.length) + { + vars.length = index + 1; + } + else + { + v.next = vars[index]; + } + vars[index] = v; + } + + public function name_122(type:uint, index:uint, name:String, size:uint = 1) : void + { + for(var v:name_434 = this.name_435[type][index]; v != null; ) + { + v.size = size; + v.name = name; + v = v.next; + } + } + + public function method_288(source:String) : void + { + var commands:Array = source.split("\n"); + this.name_140(commands); + } + + public function name_140(source:Array) : void + { + var cmd:String = null; + var declaration:Array = null; + var decArray:Array = null; + var regType:String = null; + var varIndex:int = 0; + var varName:String = null; + for(var i:int = 0; i < 7; i++) + { + this.name_435[i] = new Vector.(); + } + this.byteCode.length = 0; + this.var_176 = 0; + this.var_177 = 0; + var declarationStrings:Vector. = new Vector.(); + var count:int = int(source.length); + for(i = 0; i < count; i++) + { + cmd = source[i]; + declaration = cmd.match(/# *[acvs]\d{1,3} *= *[a-zA-Z0-9_]*/i); + if(declaration != null && declaration.length > 0) + { + declarationStrings.push(declaration[0]); + } + else + { + this.method_289(cmd); + } + } + for(i = 0,count = int(declarationStrings.length); i < count; ) + { + decArray = declarationStrings[i].split("="); + regType = decArray[0].match(/[acvs]/i); + varIndex = int(int(decArray[0].match(/\d{1,3}/i))); + varName = decArray[1].match(/[a-zA-Z0-9]*/i); + switch(regType.toLowerCase()) + { + case "a": + this.name_122(name_115.ATTRIBUTE,varIndex,varName); + break; + case "c": + this.name_122(name_115.CONSTANT,varIndex,varName); + break; + case "v": + this.name_122(name_115.VARYING,varIndex,varName); + break; + case "s": + this.name_122(name_115.SAMPLER,varIndex,varName); + break; + } + i++; + } + } + + public function method_290(registersCount:uint = 1) : void + { + this.alternativa3d::name_436 = registersCount; + } + + private function method_289(source:String) : void + { + var destination:name_434 = null; + var source1:name_437 = null; + var source2:name_434 = null; + var type:uint = 0; + var s2v:name_437 = null; + var commentIndex:int = int(source.indexOf("//")); + if(commentIndex >= 0) + { + source = source.substr(0,commentIndex); + } + var operands:Array = source.match(/[A-Za-z]+(((\[.+\])|(\d+))(\.[xyzw]{1,4})?(\ *\<.*>)?)?/g); + if(operands.length < 2) + { + return; + } + var opCode:String = operands[0]; + if(opCode == "kil") + { + source1 = new name_437(operands[1]); + } + else + { + destination = new name_440(operands[1]); + source1 = new name_437(operands[2]); + this.method_287(destination); + } + this.method_287(source1); + switch(opCode) + { + case "mov": + type = name_168.MOV; + ++this.var_177; + break; + case "add": + type = name_168.ADD; + source2 = new name_437(operands[3]); + this.method_287(source2); + ++this.var_177; + break; + case "sub": + type = name_168.SUB; + source2 = new name_437(operands[3]); + this.method_287(source2); + ++this.var_177; + break; + case "mul": + type = name_168.MUL; + source2 = new name_437(operands[3]); + this.method_287(source2); + ++this.var_177; + break; + case "div": + type = name_168.DIV; + source2 = new name_437(operands[3]); + this.method_287(source2); + ++this.var_177; + break; + case "rcp": + type = name_168.RCP; + ++this.var_177; + break; + case "min": + type = name_168.MIN; + source2 = new name_437(operands[3]); + this.method_287(source2); + ++this.var_177; + break; + case "max": + type = name_168.MAX; + source2 = new name_437(operands[3]); + this.method_287(source2); + ++this.var_177; + break; + case "frc": + type = name_168.FRC; + ++this.var_177; + break; + case "sqt": + type = name_168.SQT; + ++this.var_177; + break; + case "rsq": + type = name_168.RSQ; + ++this.var_177; + break; + case "pow": + type = name_168.POW; + source2 = new name_437(operands[3]); + this.method_287(source2); + this.var_177 += 3; + break; + case "log": + type = name_168.LOG; + ++this.var_177; + break; + case "exp": + type = name_168.EXP; + ++this.var_177; + break; + case "nrm": + type = name_168.NRM; + this.var_177 += 3; + break; + case "sin": + type = name_168.SIN; + this.var_177 += 8; + break; + case "cos": + type = name_168.COS; + this.var_177 += 8; + break; + case "crs": + type = name_168.CRS; + source2 = new name_437(operands[3]); + this.method_287(source2); + this.var_177 += 2; + break; + case "dp3": + type = name_168.DP3; + source2 = new name_437(operands[3]); + this.method_287(source2); + ++this.var_177; + break; + case "dp4": + type = name_168.DP4; + source2 = new name_437(operands[3]); + this.method_287(source2); + ++this.var_177; + break; + case "abs": + type = name_168.ABS; + ++this.var_177; + break; + case "neg": + type = name_168.NEG; + ++this.var_177; + break; + case "sat": + type = name_168.SAT; + ++this.var_177; + break; + case "m33": + type = name_168.M33; + source2 = new name_437(operands[3]); + this.method_287(source2); + this.var_177 += 3; + break; + case "m44": + type = name_168.M44; + source2 = new name_437(operands[3]); + this.method_287(source2); + this.var_177 += 4; + break; + case "m34": + type = name_168.M34; + source2 = new name_437(operands[3]); + this.method_287(source2); + this.var_177 += 3; + break; + case "kil": + type = name_168.KIL; + ++this.var_177; + break; + case "tex": + type = name_168.TEX; + source2 = new name_441(operands[3]); + this.method_287(source2); + ++this.var_177; + break; + case "sge": + type = name_168.SGE; + source2 = new name_437(operands[3]); + this.method_287(source2); + ++this.var_177; + break; + case "slt": + type = name_168.SLT; + source2 = new name_437(operands[3]); + this.method_287(source2); + ++this.var_177; + } + this.byteCode.writeUnsignedInt(type); + if(destination != null) + { + destination.position = this.byteCode.position; + this.byteCode.writeUnsignedInt(destination.name_438); + } + else + { + this.byteCode.writeUnsignedInt(0); + } + source1.position = this.byteCode.position; + if(source1.relative != null) + { + this.method_287(source1.relative); + source1.relative.position = this.byteCode.position; + } + this.byteCode.writeUnsignedInt(source1.name_438); + this.byteCode.writeUnsignedInt(source1.name_439); + if(source2 != null) + { + s2v = source2 as name_437; + source2.position = this.byteCode.position; + if(s2v != null && s2v.relative != null) + { + this.method_287(s2v.relative); + s2v.relative.position = s2v.position; + } + this.byteCode.writeUnsignedInt(source2.name_438); + this.byteCode.writeUnsignedInt(source2.name_439); + } + else + { + this.byteCode.position = this.byteCode.length = this.byteCode.length + 8; + } + ++this.var_176; + } + + public function name_143() : name_114 + { + var res:name_114 = new name_114(); + res.byteCode = this.byteCode; + res.name_435 = this.name_435; + res.var_177 = this.var_177; + res.alternativa3d::name_436 = this.alternativa3d::name_436; + res.var_176 = this.var_176; + res.name = this.name; + return res; + } + } +} + diff --git a/src/package_30/name_115.as b/src/package_30/name_115.as new file mode 100644 index 0000000..fe3d0d7 --- /dev/null +++ b/src/package_30/name_115.as @@ -0,0 +1,27 @@ +package package_30 +{ + public class name_115 + { + public static const ATTRIBUTE:uint = 0; + + public static const CONSTANT:uint = 1; + + public static const TEMPORARY:uint = 2; + + public static const OUTPUT:uint = 3; + + public static const VARYING:uint = 4; + + public static const SAMPLER:uint = 5; + + public static const INPUT:uint = 6; + + public static const TYPE_NAMES:Vector. = Vector.(["attribute","constant","temporary","output","varying","sampler","input"]); + + public function name_115() + { + super(); + } + } +} + diff --git a/src/package_30/name_121.as b/src/package_30/name_121.as new file mode 100644 index 0000000..8c03aac --- /dev/null +++ b/src/package_30/name_121.as @@ -0,0 +1,407 @@ +package package_30 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3DProgramType; + import flash.utils.ByteArray; + import flash.utils.Dictionary; + import flash.utils.Endian; + + use namespace alternativa3d; + + public class name_121 + { + public var var_177:int = 0; + + public var var_176:int = 0; + + public var type:String; + + private var var_128:Vector. = new Vector.(); + + private var var_174:ByteArray = new ByteArray(); + + private var var_175:Boolean; + + alternativa3d var var_173:Object; + + private var var_180:Object = new Object(); + + private var var_178:name_121; + + private var var_181:Dictionary = new Dictionary(); + + private var var_179:Dictionary = new Dictionary(); + + private var var_172:Vector. = new Vector.(6,true); + + public function name_121(programType:String) + { + super(); + this.var_174.endian = Endian.LITTLE_ENDIAN; + this.type = programType; + this.var_174.writeByte(160); + this.var_174.writeUnsignedInt(1); + this.var_174.writeByte(161); + this.var_174.writeByte(programType == Context3DProgramType.FRAGMENT ? 1 : 0); + } + + public function clear() : void + { + this.var_174.length = 7; + this.var_172[0] = this.var_172[1] = this.var_172[2] = this.var_172[3] = this.var_172[4] = this.var_172[5] = 0; + this.var_128.length = 0; + this.var_175 = false; + this.var_176 = 0; + this.var_177 = 0; + this.alternativa3d::var_173 = null; + this.var_181 = new Dictionary(); + this.var_179 = new Dictionary(); + } + + public function name_123(procedure:name_114) : void + { + this.var_175 = true; + this.var_128.push(procedure); + } + + public function name_120(name:String, type:uint = 2) : void + { + var v:name_434 = null; + v = new name_434(); + v.index = -1; + v.type = type; + v.name = name; + this.var_180[name] = v; + } + + public function name_118(procedure:name_114, ... args) : void + { + this.var_181[procedure] = args; + } + + public function name_125(procedure:name_114, ... args) : void + { + this.var_179[procedure] = args; + } + + public function getVariableIndex(name:String) : int + { + if(this.var_175) + { + this.name_142(); + } + var variable:name_434 = this.alternativa3d::var_173[name]; + if(variable == null) + { + throw new Error("Variable \"" + name + "\" not found"); + } + return variable.index; + } + + public function name_207(name:String) : int + { + if(this.var_175) + { + this.name_142(); + } + var variable:name_434 = this.alternativa3d::var_173[name]; + if(variable == null) + { + return -1; + } + return variable.index; + } + + public function method_286(name:String) : Boolean + { + if(this.var_175) + { + this.name_142(); + } + return this.alternativa3d::var_173[name] != null; + } + + public function name_206() : ByteArray + { + if(this.var_175) + { + this.name_142(); + } + return this.var_174; + } + + public function name_133(linker:name_121) : void + { + this.var_178 = linker; + this.var_175 = true; + } + + public function name_142() : void + { + var v:name_434 = null; + var j:int = 0; + var numParams:int = 0; + var i:int = 0; + var p:name_114 = null; + var input:Array = null; + var output:Array = null; + var code:ByteArray = null; + var param:String = null; + var vars:Vector. = null; + var inParam:name_434 = null; + var outParam:name_434 = null; + if(this.var_175) + { + this.alternativa3d::var_173 = new Object(); + this.var_174.position = 7; + this.var_172[0] = 0; + this.var_172[1] = 0; + this.var_172[3] = 0; + this.var_172[4] = 0; + this.var_172[5] = 0; + this.var_176 = 0; + this.var_177 = 0; + for each(v in this.var_180) + { + this.alternativa3d::var_173[v.name] = v; + } + for(i = 0; i < this.var_128.length; i++) + { + p = this.var_128[i]; + this.var_176 += p.var_176; + this.var_177 += p.var_177; + input = this.var_181[p]; + output = this.var_179[p]; + code = new ByteArray(); + code.endian = Endian.LITTLE_ENDIAN; + p.byteCode.position = 0; + p.byteCode.readBytes(code,0,p.byteCode.length); + if(input != null) + { + numParams = int(input.length); + for(j = 0; j < numParams; ) + { + param = input[j]; + v = this.alternativa3d::var_173[param]; + if(v == null) + { + throw new Error("Input parameter not set. paramName = " + param); + } + if(p.name_435[6].length > j) + { + inParam = p.name_435[6][j]; + if(inParam == null) + { + throw new Error("Input parameter set, but not exist in code. paramName = " + param + ", register = i" + j.toString()); + } + if(this.var_180[v.name] != null && v.index < 0) + { + v.index = int(this.var_172[v.type]++); + } + while(inParam != null) + { + inParam.writeToByteArray(code,v.index,v.type); + inParam = inParam.next; + } + } + j++; + } + } + if(output != null) + { + numParams = int(output.length); + for(j = 0; j < numParams; j++) + { + param = output[j]; + v = this.alternativa3d::var_173[param]; + if(v == null) + { + if(!(j == 0 && i == this.var_128.length - 1)) + { + throw new Error("Output parameter have not declared. paramName = " + param); + } + } + else + { + if(this.var_180[v.name] != null && v.index < 0) + { + if(v.type != 2) + { + throw new Error("Wrong output type:" + name_115.TYPE_NAMES[v.type]); + } + v.index = int(this.var_172[v.type]++); + } + outParam = p.name_435[3][j]; + if(outParam == null) + { + throw new Error("Output parameter set, but not exist in code. paramName = " + param + ", register = i" + j.toString()); + } + while(outParam != null) + { + outParam.writeToByteArray(code,v.index,v.type); + outParam = outParam.next; + } + } + } + } + vars = p.name_435[2]; + for(j = 0; j < vars.length; j++) + { + v = vars[j]; + if(v != null) + { + while(v != null) + { + v.writeToByteArray(code,v.index + this.var_172[2],name_115.TEMPORARY); + v = v.next; + } + } + } + this.var_172[name_115.CONSTANT] += p.alternativa3d::name_436; + this.method_283(code,p.name_435[0],name_115.ATTRIBUTE); + this.method_283(code,p.name_435[1],name_115.CONSTANT); + this.method_284(code,p.name_435[4]); + this.method_283(code,p.name_435[5],name_115.SAMPLER); + this.var_174.writeBytes(code,0,code.length); + } + this.var_175 = false; + } + } + + private function method_284(code:ByteArray, variableUsages:Vector.) : void + { + var vUsage:name_434 = null; + var variable:name_434 = null; + var type:uint = name_115.VARYING; + if(this.var_178 != null && this.var_178.var_175) + { + this.var_178.name_142(); + } + var oppositeVariables:Object = this.var_178 != null ? this.var_178.alternativa3d::var_173 : null; + for(var j:uint = 0; j < variableUsages.length; j++) + { + vUsage = variableUsages[j]; + if(vUsage != null) + { + variable = this.alternativa3d::var_173[vUsage.name]; + if(variable == null) + { + variable = name_434.create(); + if(vUsage.name == null) + { + throw new Error("Varying is not assigned. Use \'assignVariableName\' method. register = " + vUsage.index); + } + this.alternativa3d::var_173[vUsage.name] = variable; + variable.name = vUsage.name; + if(oppositeVariables != null) + { + if(!(vUsage.name in oppositeVariables)) + { + throw new Error("Varying with this name is not assigned to opposite linker. name = " + vUsage.name); + } + variable.index = name_434(oppositeVariables[vUsage.name]).index; + } + else + { + variable.index = this.var_172[type]; + this.var_172[type] += vUsage.size; + } + variable.type = type; + } + while(Boolean(vUsage)) + { + vUsage.writeToByteArray(code,variable.index,variable.type); + vUsage = vUsage.next; + } + } + } + } + + private function method_283(code:ByteArray, variableUsages:Vector., type:uint) : void + { + var vUsage:name_434 = null; + var variable:name_434 = null; + for(var j:int = 0; j < variableUsages.length; j++) + { + vUsage = variableUsages[j]; + if(vUsage != null) + { + variable = this.alternativa3d::var_173[vUsage.name]; + if(variable == null) + { + variable = name_434.create(); + if(vUsage.name != null) + { + this.alternativa3d::var_173[vUsage.name] = variable; + } + else if(!vUsage.isRelative) + { + throw new Error(name_115.TYPE_NAMES[type] + " is not assigned. Use \"assignVariableName\" method. register = " + vUsage.index); + } + variable.name = vUsage.name; + variable.index = this.var_172[type]; + this.var_172[type] += vUsage.size; + variable.type = type; + } + else if(variable.index < 0) + { + variable.index = int(this.var_172[type]++); + } + while(vUsage != null) + { + vUsage.writeToByteArray(code,variable.index,variable.type); + vUsage = vUsage.next; + } + } + } + } + + public function method_285() : String + { + var str:String = null; + var p:name_114 = null; + var args:* = undefined; + var result:String = "LINKER:\n"; + var totalCodes:uint = 0; + var totalCommands:uint = 0; + for(var i:int = 0; i < this.var_128.length; i++) + { + p = this.var_128[i]; + if(p.name != null) + { + result += p.name + "("; + } + else + { + result += "#" + i.toString() + "("; + } + args = this.var_181[p]; + if(args != null) + { + for each(str in args) + { + result += str + ","; + } + result = result.substr(0,result.length - 1); + } + result += ")"; + args = this.var_179[p]; + if(args != null) + { + result += "->("; + for each(str in args) + { + result += str + ","; + } + result = result.substr(0,result.length - 1); + result += ")"; + } + result += " [IS:" + p.var_177.toString() + ", CMDS:" + p.var_176.toString() + "]\n"; + totalCodes += p.var_177; + totalCommands += p.var_176; + } + return result + ("[IS:" + totalCodes.toString() + ", CMDS:" + totalCommands.toString() + "]\n"); + } + } +} + diff --git a/src/package_30/name_168.as b/src/package_30/name_168.as new file mode 100644 index 0000000..8bd416e --- /dev/null +++ b/src/package_30/name_168.as @@ -0,0 +1,77 @@ +package package_30 +{ + public class name_168 + { + public static const MOV:uint = 0; + + public static const ADD:uint = 1; + + public static const SUB:uint = 2; + + public static const MUL:uint = 3; + + public static const DIV:uint = 4; + + public static const RCP:uint = 5; + + public static const MIN:uint = 6; + + public static const MAX:uint = 7; + + public static const FRC:uint = 8; + + public static const SQT:uint = 9; + + public static const RSQ:uint = 10; + + public static const POW:uint = 11; + + public static const LOG:uint = 12; + + public static const EXP:uint = 13; + + public static const NRM:uint = 14; + + public static const SIN:uint = 15; + + public static const COS:uint = 16; + + public static const CRS:uint = 17; + + public static const DP3:uint = 18; + + public static const DP4:uint = 19; + + public static const ABS:uint = 20; + + public static const NEG:uint = 21; + + public static const SAT:uint = 22; + + public static const M33:uint = 23; + + public static const M44:uint = 24; + + public static const M34:uint = 25; + + public static const KIL:uint = 39; + + public static const TEX:uint = 40; + + public static const SGE:uint = 41; + + public static const SLT:uint = 42; + + public static const DEF:uint = 128; + + public static const CAL:uint = 129; + + public static const COMMAND_NAMES:Vector. = Vector.(["mov","add","sub","mul","div","rcp","min","max","frc","sqt","rsq","pow","log","exp","nrm","sin","cos","crs","dp3","dp4","abs","neg","sat","m33","m44","m34","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","kil","tex","sge","slt"]); + + public function name_168() + { + super(); + } + } +} + diff --git a/src/package_30/name_434.as b/src/package_30/name_434.as new file mode 100644 index 0000000..a919cfe --- /dev/null +++ b/src/package_30/name_434.as @@ -0,0 +1,69 @@ +package package_30 +{ + import flash.utils.ByteArray; + + public class name_434 + { + private static var collector:name_434; + + protected static const X_CHAR_CODE:Number = "x".charCodeAt(0); + + public var name:String; + + public var index:int; + + public var type:uint; + + public var position:uint = 0; + + public var next:name_434; + + public var name_438:uint; + + public var name_439:uint; + + public var isRelative:Boolean; + + private var var_32:uint = 1; + + public function name_434() + { + super(); + } + + public static function create() : name_434 + { + if(collector == null) + { + collector = new name_434(); + } + var output:name_434 = collector; + collector = collector.next; + output.next = null; + return output; + } + + public function dispose() : void + { + this.next = collector; + collector = this; + } + + public function get size() : uint + { + return this.var_32; + } + + public function set size(value:uint) : void + { + this.var_32 = value; + } + + public function writeToByteArray(byteCode:ByteArray, newIndex:int, newType:int) : void + { + byteCode.position = this.position; + byteCode.writeShort(newIndex); + } + } +} + diff --git a/src/package_30/name_437.as b/src/package_30/name_437.as new file mode 100644 index 0000000..c3207d9 --- /dev/null +++ b/src/package_30/name_437.as @@ -0,0 +1,111 @@ +package package_30 +{ + import flash.utils.ByteArray; + + public class name_437 extends name_434 + { + public var relative:name_647; + + public function name_437(source:String) + { + var regmask:uint = 0; + var isRel:Boolean = false; + var cv:int = 0; + var maskLength:uint = 0; + var i:int = 0; + super(); + var strType:String = String(source.match(/[catsoiv]/g)[0]); + var relreg:Array = source.match(/\[.*\]/g); + isRel = relreg.length > 0; + if(isRel) + { + source = source.replace(relreg[0],"0"); + } + else + { + index = parseInt(source.match(/\d+/g)[0],10); + } + var swizzle:Array = source.match(/\.[xyzw]{1,4}/); + var maskmatch:String = Boolean(swizzle) ? swizzle[0] : null; + if(Boolean(maskmatch)) + { + regmask = 0; + maskLength = uint(maskmatch.length); + for(i = 1; i < maskLength; i++) + { + cv = maskmatch.charCodeAt(i) - X_CHAR_CODE; + if(cv == -1) + { + cv = 3; + } + regmask |= cv << (i - 1 << 1); + } + while(i <= 4) + { + regmask |= cv << (i - 1 << 1); + i++; + } + } + else + { + regmask = 228; + } + name_438 = regmask << 24 | index; + switch(strType) + { + case "a": + type = name_115.ATTRIBUTE; + break; + case "c": + type = name_115.CONSTANT; + break; + case "t": + type = name_115.TEMPORARY; + break; + case "o": + type = name_115.OUTPUT; + break; + case "v": + type = name_115.VARYING; + break; + case "i": + type = name_115.INPUT; + break; + default: + throw new ArgumentError("Wrong source register type, must be \"a\" or \"c\" or \"t\" or \"o\" or \"v\" or \"i\", var = " + source); + } + name_439 = type; + if(isRel) + { + this.relative = new name_647(relreg[0]); + name_438 |= this.relative.name_438; + name_439 |= this.relative.name_439; + isRelative = true; + } + } + + override public function get size() : uint + { + if(Boolean(this.relative)) + { + return 0; + } + return super.size; + } + + override public function writeToByteArray(byteCode:ByteArray, newIndex:int, newType:int) : void + { + if(this.relative == null) + { + super.writeToByteArray(byteCode,newIndex,newType); + } + else + { + byteCode.position = position + 2; + } + byteCode.position = position + 4; + byteCode.writeByte(newType); + } + } +} + diff --git a/src/package_30/name_440.as b/src/package_30/name_440.as new file mode 100644 index 0000000..a4f8970 --- /dev/null +++ b/src/package_30/name_440.as @@ -0,0 +1,67 @@ +package package_30 +{ + import flash.utils.ByteArray; + + public class name_440 extends name_434 + { + public function name_440(source:String) + { + var regmask:uint = 0; + var cv:int = 0; + var maskLength:uint = 0; + var i:int = 0; + super(); + var strType:String = source.match(/[tovi]/)[0]; + index = parseInt(source.match(/\d+/)[0],10); + var swizzle:Array = source.match(/\.[xyzw]{1,4}/); + var maskmatch:String = Boolean(swizzle) ? swizzle[0] : null; + if(maskmatch != null) + { + regmask = 0; + maskLength = uint(maskmatch.length); + for(i = 1; i < maskLength; i++) + { + cv = maskmatch.charCodeAt(i) - X_CHAR_CODE; + if(cv == -1) + { + cv = 3; + } + regmask |= 1 << cv; + } + } + else + { + regmask = 15; + } + name_438 = regmask << 16 | index; + switch(strType) + { + case "t": + name_438 |= 33554432; + type = 2; + break; + case "o": + name_438 |= 50331648; + type = 3; + break; + case "v": + name_438 |= 67108864; + type = 4; + break; + case "i": + name_438 |= 100663296; + type = 6; + break; + default: + throw new ArgumentError("Wrong destination register type, must be \"t\" or \"o\" or \"v\", var = " + source); + } + } + + override public function writeToByteArray(byteCode:ByteArray, newIndex:int, newType:int) : void + { + byteCode.position = position; + byteCode.writeUnsignedInt(name_438 & ~0x0F00FFFF | newIndex | newType << 24); + } + } +} + diff --git a/src/package_30/name_441.as b/src/package_30/name_441.as new file mode 100644 index 0000000..6a4465e --- /dev/null +++ b/src/package_30/name_441.as @@ -0,0 +1,94 @@ +package package_30 +{ + import flash.utils.ByteArray; + + public class name_441 extends name_434 + { + public function name_441(source:String) + { + var opts:Array = null; + var op:String = null; + super(); + var strType:String = String(source.match(/[si]/g)[0]); + switch(strType) + { + case "s": + name_439 = name_115.SAMPLER; + break; + case "i": + name_439 = name_115.INPUT; + } + index = parseInt(source.match(/\d+/g)[0],10); + name_438 = index; + var optsi:int = int(source.search(/<.*>/g)); + if(optsi != -1) + { + opts = source.substring(optsi).match(/(\w+)/g); + } + type = name_439; + var optsLength:uint = uint(opts.length); + for(var i:int = 0; i < optsLength; ) + { + op = opts[i]; + switch(op) + { + case "2d": + name_439 &= ~0xF000; + break; + case "3d": + name_439 &= ~0xF000; + name_439 |= 8192; + break; + case "cube": + name_439 &= ~0xF000; + name_439 |= 4096; + break; + case "mipnearest": + name_439 &= ~0x0F000000; + name_439 |= 16777216; + break; + case "miplinear": + name_439 &= ~0x0F000000; + name_439 |= 33554432; + break; + case "mipnone": + case "nomip": + name_439 &= ~0x0F000000; + break; + case "nearest": + name_439 &= ~4026531840; + break; + case "linear": + name_439 &= ~4026531840; + name_439 |= 268435456; + break; + case "centroid": + name_439 |= 4294967296; + break; + case "single": + name_439 |= 8589934592; + break; + case "depth": + name_439 |= 17179869184; + break; + case "repeat": + case "wrap": + name_439 &= ~0xF00000; + name_439 |= 1048576; + break; + case "clamp": + name_439 &= ~0xF00000; + break; + } + i++; + } + } + + override public function writeToByteArray(byteCode:ByteArray, newIndex:int, newType:int) : void + { + super.writeToByteArray(byteCode,newIndex,newType); + byteCode.position = position + 4; + } + } +} + diff --git a/src/package_30/name_647.as b/src/package_30/name_647.as new file mode 100644 index 0000000..1824700 --- /dev/null +++ b/src/package_30/name_647.as @@ -0,0 +1,61 @@ +package package_30 +{ + import flash.utils.ByteArray; + + public class name_647 extends name_434 + { + public function name_647(source:String) + { + super(); + var relname:Array = source.match(/[A-Za-z]/g); + index = parseInt(source.match(/\d+/g)[0],10); + switch(relname[0]) + { + case "a": + type = name_115.ATTRIBUTE; + break; + case "c": + type = name_115.CONSTANT; + break; + case "t": + type = name_115.TEMPORARY; + break; + case "i": + type = name_115.INPUT; + } + var selmatch:Array = source.match(/(\.[xyzw]{1,1})/); + if(selmatch.length == 0) + { + throw new Error("error: bad index register select"); + } + var relsel:int = selmatch[0].charCodeAt(1) - X_CHAR_CODE; + if(relsel == -1) + { + relsel = 3; + } + var relofs:Array = source.match(/\+\d{1,3}/g); + var reloffset:int = 0; + if(relofs.length > 0) + { + reloffset = int(parseInt(relofs[0],10)); + } + if(reloffset < 0 || reloffset > 255) + { + throw new Error("Error: index offset " + reloffset + " out of bounds. [0..255]"); + } + name_438 = reloffset << 16 | index; + name_439 |= type << 8; + name_439 |= relsel << 16; + name_439 |= 1 << 31; + } + + override public function writeToByteArray(byteCode:ByteArray, newIndex:int, newType:int) : void + { + byteCode.position = position; + byteCode.writeShort(newIndex); + byteCode.position = position + 5; + byteCode.writeByte(newType); + } + } +} + diff --git a/src/package_31/class_6.as b/src/package_31/class_6.as new file mode 100644 index 0000000..92aa6de --- /dev/null +++ b/src/package_31/class_6.as @@ -0,0 +1,12 @@ +package package_31 +{ + import package_5.name_3; + + public interface class_6 + { + function start(param1:name_3) : void; + + function stop(param1:name_3) : void; + } +} + diff --git a/src/package_31/name_202.as b/src/package_31/name_202.as new file mode 100644 index 0000000..baf26fc --- /dev/null +++ b/src/package_31/name_202.as @@ -0,0 +1,14 @@ +package package_31 +{ + import package_15.name_19; + + public interface name_202 + { + function get name() : String; + + function get activators() : Vector.; + + function get properties() : name_19; + } +} + diff --git a/src/package_31/name_366.as b/src/package_31/name_366.as new file mode 100644 index 0000000..6edc1d2 --- /dev/null +++ b/src/package_31/name_366.as @@ -0,0 +1,67 @@ +package package_31 +{ + import flash.system.ApplicationDomain; + import package_15.name_19; + import package_39.name_160; + import package_5.name_3; + + public class name_366 implements name_202 + { + private static var LOG_CHANNEL:String = "osgi"; + + private static var clientLog:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var _name:String; + + private var var_566:Vector.; + + private var var_567:name_19; + + public function name_366(properties:name_19) + { + var activatorClassName:String = null; + var isActivatorExists:Boolean = false; + var activatorClass:Class = null; + super(); + this.var_567 = properties || new name_19(); + this._name = properties.method_24("Bundle-Name"); + clientLog.log(LOG_CHANNEL,"BundleDescriptor: Bundle name: %1",this._name); + var activatorClassNames:Array = [properties.method_24("Bundle-Activator")]; + if(Boolean(this._name)) + { + activatorClassNames.push(this._name.toLowerCase() + ".Activator"); + } + this.var_566 = new Vector.(); + for each(activatorClassName in activatorClassNames) + { + isActivatorExists = Boolean(ApplicationDomain.currentDomain.hasDefinition(activatorClassName)); + if(isActivatorExists) + { + activatorClass = Class(ApplicationDomain.currentDomain.getDefinition(activatorClassName)); + this.var_566.push(class_6(new activatorClass())); + clientLog.log(LOG_CHANNEL,"BundleDescriptor: Activator has been created: %1",activatorClassName); + } + else + { + clientLog.log(LOG_CHANNEL,"BundleDescriptor: Activator NOT FOUND: %1 ",activatorClassName); + } + } + } + + public function get name() : String + { + return this._name; + } + + public function get activators() : Vector. + { + return this.var_566; + } + + public function get properties() : name_19 + { + return this.var_567; + } + } +} + diff --git a/src/package_32/class_20.as b/src/package_32/class_20.as new file mode 100644 index 0000000..94c66dc --- /dev/null +++ b/src/package_32/class_20.as @@ -0,0 +1,26 @@ +package package_32 +{ + import package_36.class_19; + + public class class_20 implements class_19 + { + private var optional:Boolean; + + public function class_20(optional:Boolean) + { + super(); + this.optional = optional; + } + + public function method_297() : Boolean + { + return this.optional; + } + + public function toString() : String + { + return "[CodecInfo optional = " + this.optional + "]"; + } + } +} + diff --git a/src/package_32/name_148.as b/src/package_32/name_148.as new file mode 100644 index 0000000..d806de4 --- /dev/null +++ b/src/package_32/name_148.as @@ -0,0 +1,26 @@ +package package_32 +{ + import flash.utils.getQualifiedClassName; + + public class name_148 extends class_20 + { + private var var_184:Class; + + public function name_148(type:Class, optional:Boolean) + { + super(optional); + this.var_184 = type; + } + + public function get type() : Class + { + return this.var_184; + } + + override public function toString() : String + { + return "[TypeCodecInfo " + super.toString() + " type=" + getQualifiedClassName(this.type); + } + } +} + diff --git a/src/package_32/name_149.as b/src/package_32/name_149.as new file mode 100644 index 0000000..ae2f91f --- /dev/null +++ b/src/package_32/name_149.as @@ -0,0 +1,34 @@ +package package_32 +{ + import package_36.class_19; + + public class name_149 extends class_20 + { + private var var_186:class_19; + + private var var_185:int; + + public function name_149(elementCodec:class_19, optional:Boolean, level:int) + { + super(optional); + this.var_186 = elementCodec; + this.var_185 = level; + } + + public function get level() : int + { + return this.var_185; + } + + public function get elementCodec() : class_19 + { + return this.var_186; + } + + override public function toString() : String + { + return "[CollectionCodecInfo " + super.toString() + " element=" + this.elementCodec.toString() + " level=" + this.level + "]"; + } + } +} + diff --git a/src/package_32/name_209.as b/src/package_32/name_209.as new file mode 100644 index 0000000..68bedc8 --- /dev/null +++ b/src/package_32/name_209.as @@ -0,0 +1,16 @@ +package package_32 +{ + public class name_209 extends name_148 + { + public function name_209(type:Class, optional:Boolean) + { + super(type,optional); + } + + override public function toString() : String + { + return "[EnumCodec " + super.toString() + " type=" + type.toString(); + } + } +} + diff --git a/src/package_33/name_153.as b/src/package_33/name_153.as new file mode 100644 index 0000000..af6efa5 --- /dev/null +++ b/src/package_33/name_153.as @@ -0,0 +1,11 @@ +package package_33 +{ + public class name_153 + { + public function name_153() + { + super(); + } + } +} + diff --git a/src/package_33/name_154.as b/src/package_33/name_154.as new file mode 100644 index 0000000..3bc5bf3 --- /dev/null +++ b/src/package_33/name_154.as @@ -0,0 +1,11 @@ +package package_33 +{ + public class name_154 + { + public function name_154() + { + super(); + } + } +} + diff --git a/src/package_33/name_155.as b/src/package_33/name_155.as new file mode 100644 index 0000000..8ad3dd1 --- /dev/null +++ b/src/package_33/name_155.as @@ -0,0 +1,111 @@ +package package_33 +{ + import flash.utils.ByteArray; + import flash.utils.Dictionary; + + public final class name_155 + { + private static var longMap:Dictionary = new Dictionary(); + + private var var_188:int; + + private var var_187:int; + + public function name_155(high:int, low:int) + { + super(); + this.var_187 = high; + this.var_188 = low; + } + + public static function method_298(high:int, low:int) : name_155 + { + var value:name_155 = null; + var highToLong:Dictionary = longMap[low]; + if(highToLong != null) + { + value = highToLong[high]; + if(value == null) + { + value = new name_155(high,low); + highToLong[high] = value; + } + } + else + { + longMap[low] = new Dictionary(); + value = new name_155(high,low); + longMap[low][high] = value; + } + return value; + } + + public static function method_301(s:String) : name_155 + { + var len:int = int(s.length); + if(len <= 8) + { + return method_298(0,int("0x" + s)); + } + return method_298(int("0x" + s.substr(0,len - 8)),int("0x" + s.substr(len - 8))); + } + + public static function method_300(value:int) : name_155 + { + if(value < 0) + { + return method_298(4294967295,value); + } + return method_298(0,value); + } + + public function get low() : int + { + return this.var_188; + } + + public function get high() : int + { + return this.var_187; + } + + public function toString() : String + { + return this.method_299(this.var_187) + this.method_299(this.var_188); + } + + public function method_302(result:ByteArray = null) : ByteArray + { + if(result == null) + { + result = new ByteArray(); + } + result.position = 0; + result.writeInt(this.var_187); + result.writeInt(this.var_188); + result.position = 0; + return result; + } + + private function method_299(value:int) : String + { + var result:String = null; + var numZeros:int = 0; + if(value >= 0) + { + result = value.toString(16); + for(numZeros = 8 - result.length; numZeros > 0; ) + { + result = "0" + result; + numZeros--; + } + } + else + { + result = uint(value).toString(16); + } + return result; + } + } +} + diff --git a/src/package_33/name_156.as b/src/package_33/name_156.as new file mode 100644 index 0000000..0590946 --- /dev/null +++ b/src/package_33/name_156.as @@ -0,0 +1,11 @@ +package package_33 +{ + public class name_156 + { + public function name_156() + { + super(); + } + } +} + diff --git a/src/package_33/name_157.as b/src/package_33/name_157.as new file mode 100644 index 0000000..f206483 --- /dev/null +++ b/src/package_33/name_157.as @@ -0,0 +1,11 @@ +package package_33 +{ + public class name_157 + { + public function name_157() + { + super(); + } + } +} + diff --git a/src/package_33/name_158.as b/src/package_33/name_158.as new file mode 100644 index 0000000..f152e6e --- /dev/null +++ b/src/package_33/name_158.as @@ -0,0 +1,11 @@ +package package_33 +{ + public class name_158 + { + public function name_158() + { + super(); + } + } +} + diff --git a/src/package_34/name_150.as b/src/package_34/name_150.as new file mode 100644 index 0000000..1d4dc94 --- /dev/null +++ b/src/package_34/name_150.as @@ -0,0 +1,48 @@ +package package_34 +{ + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_70.name_451; + + public class name_150 implements name_152 + { + private var codec:name_152; + + private var var_189:Object; + + public function name_150(codec:name_152) + { + super(); + this.codec = codec; + if(codec is name_451) + { + this.var_189 = name_451(codec).name_452(); + } + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == this.var_189) + { + protocolBuffer.optionalMap.name_444(true); + } + else + { + protocolBuffer.optionalMap.name_444(false); + this.codec.method_295(protocolBuffer,object); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + return protocolBuffer.optionalMap.name_447() ? this.var_189 : this.codec.method_296(protocolBuffer); + } + + public function init(protocol:name_163) : void + { + this.codec.init(protocol); + } + } +} + diff --git a/src/package_35/VectorCodecStringLevel1.as b/src/package_35/VectorCodecStringLevel1.as new file mode 100644 index 0000000..ef297e6 --- /dev/null +++ b/src/package_35/VectorCodecStringLevel1.as @@ -0,0 +1,58 @@ +package package_35 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecStringLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecStringLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(String,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = String(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_35/VectorCodecStringLevel2.as b/src/package_35/VectorCodecStringLevel2.as new file mode 100644 index 0000000..2081a2a --- /dev/null +++ b/src/package_35/VectorCodecStringLevel2.as @@ -0,0 +1,88 @@ +package package_35 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecStringLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecStringLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(String,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = String(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_35/VectorCodecStringLevel3.as b/src/package_35/VectorCodecStringLevel3.as new file mode 100644 index 0000000..f1e3b0e --- /dev/null +++ b/src/package_35/VectorCodecStringLevel3.as @@ -0,0 +1,118 @@ +package package_35 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecStringLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecStringLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(String,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = String(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_35/VectorCodecbyteLevel1.as b/src/package_35/VectorCodecbyteLevel1.as new file mode 100644 index 0000000..93d3295 --- /dev/null +++ b/src/package_35/VectorCodecbyteLevel1.as @@ -0,0 +1,59 @@ +package package_35 +{ + import package_32.name_148; + import package_33.name_154; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecbyteLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecbyteLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_154,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = int(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_35/VectorCodecbyteLevel2.as b/src/package_35/VectorCodecbyteLevel2.as new file mode 100644 index 0000000..eb193a8 --- /dev/null +++ b/src/package_35/VectorCodecbyteLevel2.as @@ -0,0 +1,89 @@ +package package_35 +{ + import package_32.name_148; + import package_33.name_154; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecbyteLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecbyteLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_154,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = int(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_35/VectorCodecbyteLevel3.as b/src/package_35/VectorCodecbyteLevel3.as new file mode 100644 index 0000000..e22ba56 --- /dev/null +++ b/src/package_35/VectorCodecbyteLevel3.as @@ -0,0 +1,119 @@ +package package_35 +{ + import package_32.name_148; + import package_33.name_154; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecbyteLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecbyteLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_154,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = int(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_35/VectorCodecfloatLevel1.as b/src/package_35/VectorCodecfloatLevel1.as new file mode 100644 index 0000000..fc53339 --- /dev/null +++ b/src/package_35/VectorCodecfloatLevel1.as @@ -0,0 +1,60 @@ +package package_35 +{ + import package_32.name_148; + import package_33.name_157; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecfloatLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecfloatLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_157,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = Number(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var value:Number = NaN; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_35/VectorCodecfloatLevel2.as b/src/package_35/VectorCodecfloatLevel2.as new file mode 100644 index 0000000..0a0867f --- /dev/null +++ b/src/package_35/VectorCodecfloatLevel2.as @@ -0,0 +1,89 @@ +package package_35 +{ + import package_32.name_148; + import package_33.name_157; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecfloatLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecfloatLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_157,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = Number(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_35/VectorCodecfloatLevel3.as b/src/package_35/VectorCodecfloatLevel3.as new file mode 100644 index 0000000..eda1d54 --- /dev/null +++ b/src/package_35/VectorCodecfloatLevel3.as @@ -0,0 +1,119 @@ +package package_35 +{ + import package_32.name_148; + import package_33.name_157; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecfloatLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecfloatLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_157,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = Number(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_35/VectorCodecintLevel1.as b/src/package_35/VectorCodecintLevel1.as new file mode 100644 index 0000000..c6da699 --- /dev/null +++ b/src/package_35/VectorCodecintLevel1.as @@ -0,0 +1,58 @@ +package package_35 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecintLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecintLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(int,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = int(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_35/VectorCodecintLevel2.as b/src/package_35/VectorCodecintLevel2.as new file mode 100644 index 0000000..7abc0fd --- /dev/null +++ b/src/package_35/VectorCodecintLevel2.as @@ -0,0 +1,88 @@ +package package_35 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecintLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecintLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(int,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = int(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_35/VectorCodecintLevel3.as b/src/package_35/VectorCodecintLevel3.as new file mode 100644 index 0000000..30b5a40 --- /dev/null +++ b/src/package_35/VectorCodecintLevel3.as @@ -0,0 +1,118 @@ +package package_35 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecintLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecintLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(int,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = int(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_35/VectorCodeclongLevel1.as b/src/package_35/VectorCodeclongLevel1.as new file mode 100644 index 0000000..f32a0c4 --- /dev/null +++ b/src/package_35/VectorCodeclongLevel1.as @@ -0,0 +1,59 @@ +package package_35 +{ + import package_32.name_148; + import package_33.name_155; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodeclongLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodeclongLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_155,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = name_155(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_35/VectorCodeclongLevel2.as b/src/package_35/VectorCodeclongLevel2.as new file mode 100644 index 0000000..0a986a1 --- /dev/null +++ b/src/package_35/VectorCodeclongLevel2.as @@ -0,0 +1,89 @@ +package package_35 +{ + import package_32.name_148; + import package_33.name_155; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodeclongLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodeclongLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_155,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = name_155(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_35/VectorCodeclongLevel3.as b/src/package_35/VectorCodeclongLevel3.as new file mode 100644 index 0000000..c58c5c6 --- /dev/null +++ b/src/package_35/VectorCodeclongLevel3.as @@ -0,0 +1,119 @@ +package package_35 +{ + import package_32.name_148; + import package_33.name_155; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodeclongLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodeclongLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_155,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = name_155(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_35/VectorCodecshortLevel1.as b/src/package_35/VectorCodecshortLevel1.as new file mode 100644 index 0000000..d0e047d --- /dev/null +++ b/src/package_35/VectorCodecshortLevel1.as @@ -0,0 +1,59 @@ +package package_35 +{ + import package_32.name_148; + import package_33.name_158; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecshortLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecshortLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_158,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = int(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_35/VectorCodecshortLevel2.as b/src/package_35/VectorCodecshortLevel2.as new file mode 100644 index 0000000..9dc2377 --- /dev/null +++ b/src/package_35/VectorCodecshortLevel2.as @@ -0,0 +1,89 @@ +package package_35 +{ + import package_32.name_148; + import package_33.name_158; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecshortLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecshortLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_158,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = int(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_35/VectorCodecshortLevel3.as b/src/package_35/VectorCodecshortLevel3.as new file mode 100644 index 0000000..df886cb --- /dev/null +++ b/src/package_35/VectorCodecshortLevel3.as @@ -0,0 +1,119 @@ +package package_35 +{ + import package_32.name_148; + import package_33.name_158; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecshortLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecshortLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_158,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = int(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_36/class_19.as b/src/package_36/class_19.as new file mode 100644 index 0000000..5a21f5f --- /dev/null +++ b/src/package_36/class_19.as @@ -0,0 +1,10 @@ +package package_36 +{ + public interface class_19 + { + function method_297() : Boolean; + + function toString() : String; + } +} + diff --git a/src/package_36/name_152.as b/src/package_36/name_152.as new file mode 100644 index 0000000..11d03af --- /dev/null +++ b/src/package_36/name_152.as @@ -0,0 +1,12 @@ +package package_36 +{ + public interface name_152 + { + function init(param1:name_163) : void; + + function method_295(param1:name_442, param2:Object) : void; + + function method_296(param1:name_442) : Object; + } +} + diff --git a/src/package_36/name_163.as b/src/package_36/name_163.as new file mode 100644 index 0000000..a576f17 --- /dev/null +++ b/src/package_36/name_163.as @@ -0,0 +1,21 @@ +package package_36 +{ + import flash.utils.IDataInput; + import flash.utils.IDataOutput; + + public interface name_163 + { + function name_151(param1:class_19, param2:name_152) : void; + + function name_223(param1:Class, param2:name_152) : void; + + function name_448(param1:class_19) : name_152; + + function method_304(param1:Class) : class_19; + + function method_305(param1:IDataOutput, param2:name_442, param3:name_449) : void; + + function method_303(param1:IDataInput, param2:name_442) : Boolean; + } +} + diff --git a/src/package_36/name_442.as b/src/package_36/name_442.as new file mode 100644 index 0000000..a7030d6 --- /dev/null +++ b/src/package_36/name_442.as @@ -0,0 +1,109 @@ +package package_36 +{ + import flash.utils.ByteArray; + import flash.utils.IDataInput; + import flash.utils.IDataOutput; + + public class name_442 + { + private var var_587:IDataOutput; + + private var var_586:IDataInput; + + private var var_588:name_648; + + public function name_442(output:IDataOutput, input:IDataInput, optionalMap:name_648) + { + super(); + this.var_587 = output; + this.var_586 = input; + this.var_588 = optionalMap; + } + + public function get name_483() : IDataOutput + { + return this.var_587; + } + + public function set name_483(value:IDataOutput) : void + { + this.var_587 = value; + } + + public function get reader() : IDataInput + { + return this.var_586; + } + + public function set reader(value:IDataInput) : void + { + this.var_586 = value; + } + + public function get optionalMap() : name_648 + { + return this.var_588; + } + + public function set optionalMap(value:name_648) : void + { + this.var_588 = value; + } + + public function toString() : String + { + var b:int = 0; + var c:String = null; + var result:String = ""; + var position:int = int(ByteArray(this.reader).position); + result += "\n=== Dump data ===\n"; + var pos:int = 0; + for(var chars:String = ""; Boolean(ByteArray(this.reader).bytesAvailable); ) + { + b = int(this.reader.readByte()); + c = String.fromCharCode(b); + if(b >= 0 && b < 16) + { + result += "0"; + } + if(b < 0) + { + b = 256 + b; + } + result += b.toString(16); + result += " "; + if(b < 12 && b > 128) + { + chars += "."; + } + else + { + chars += c; + } + pos++; + if(pos > 16) + { + result += "\t"; + result += chars; + result += "\n"; + pos = 0; + chars = ""; + } + } + if(pos != 0) + { + while(pos < 18) + { + pos++; + result += " "; + } + result += "\t"; + result += chars; + result += "\n"; + } + ByteArray(this.reader).position = position; + return result; + } + } +} + diff --git a/src/package_36/name_449.as b/src/package_36/name_449.as new file mode 100644 index 0000000..db7acb6 --- /dev/null +++ b/src/package_36/name_449.as @@ -0,0 +1,17 @@ +package package_36 +{ + public class name_449 + { + public static var NONE:name_449 = new name_449(); + + public static var DEFLATE:name_449 = new name_449(); + + public static var DEFLATE_AUTO:name_449 = new name_449(); + + public function name_449() + { + super(); + } + } +} + diff --git a/src/package_36/name_648.as b/src/package_36/name_648.as new file mode 100644 index 0000000..69a46bc --- /dev/null +++ b/src/package_36/name_648.as @@ -0,0 +1,128 @@ +package package_36 +{ + import flash.utils.ByteArray; + + public class name_648 + { + private var var_671:int; + + private var size:int; + + private var map:ByteArray; + + public function name_648(size:int = 0, source:ByteArray = null) + { + super(); + this.map = new ByteArray(); + if(source != null) + { + this.map.writeBytes(source,0,this.method_814(size)); + } + this.size = size; + this.var_671 = 0; + } + + public function method_816() : int + { + return this.var_671; + } + + public function name_702(value:int) : void + { + this.var_671 = value; + } + + public function reset() : void + { + this.var_671 = 0; + } + + public function clear() : void + { + this.size = 0; + this.var_671 = 0; + } + + public function name_444(isNull:Boolean) : void + { + this.name_480(this.size,isNull); + ++this.size; + } + + public function method_815() : Boolean + { + return this.var_671 < this.size; + } + + public function name_447() : Boolean + { + if(this.var_671 >= this.size) + { + throw new Error("Index out of bounds: " + this.var_671); + } + var res:Boolean = this.name_478(this.var_671); + ++this.var_671; + return res; + } + + public function name_649() : ByteArray + { + return this.map; + } + + public function name_650() : int + { + return this.size; + } + + private function name_478(position:int) : Boolean + { + var targetByte:int = position >> 3; + var targetBit:int = 7 ^ position & 7; + this.map.position = targetByte; + return (this.map.readByte() & 1 << targetBit) != 0; + } + + private function name_480(position:int, value:Boolean) : void + { + var targetByte:int = position >> 3; + var targetBit:int = 7 ^ position & 7; + this.map.position = targetByte; + if(value) + { + this.map.writeByte(int(this.map[targetByte] | 1 << targetBit)); + } + else + { + this.map.writeByte(int(this.map[targetByte] & (0xFF ^ 1 << targetBit))); + } + } + + private function method_814(sizeInBits:int) : int + { + var i:int = sizeInBits >> 3; + var add:int = (sizeInBits & 7) == 0 ? 0 : 1; + return i + add; + } + + public function toString() : String + { + var result:String = "readPosition: " + this.var_671 + " size:" + this.name_650() + " mask:"; + var _readPosition:int = this.var_671; + for(var i:int = this.var_671; i < this.name_650(); i++) + { + result += this.name_447() ? "1" : "0"; + } + this.var_671 = _readPosition; + return result; + } + + public function clone() : name_648 + { + var map:name_648 = new name_648(this.size,this.map); + map.var_671 = this.var_671; + return map; + } + } +} + diff --git a/src/package_37/VectorCodecintLevel1.as b/src/package_37/VectorCodecintLevel1.as new file mode 100644 index 0000000..7a636f0 --- /dev/null +++ b/src/package_37/VectorCodecintLevel1.as @@ -0,0 +1,59 @@ +package package_37 +{ + import package_32.name_148; + import package_33.name_156; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecintLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecintLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_156,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = uint(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_37/VectorCodecintLevel2.as b/src/package_37/VectorCodecintLevel2.as new file mode 100644 index 0000000..ef089f3 --- /dev/null +++ b/src/package_37/VectorCodecintLevel2.as @@ -0,0 +1,89 @@ +package package_37 +{ + import package_32.name_148; + import package_33.name_156; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecintLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecintLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_156,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = uint(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_37/VectorCodecintLevel3.as b/src/package_37/VectorCodecintLevel3.as new file mode 100644 index 0000000..e5f4237 --- /dev/null +++ b/src/package_37/VectorCodecintLevel3.as @@ -0,0 +1,119 @@ +package package_37 +{ + import package_32.name_148; + import package_33.name_156; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecintLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecintLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_156,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = uint(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_37/VectorCodeclongLevel1.as b/src/package_37/VectorCodeclongLevel1.as new file mode 100644 index 0000000..d5c220d --- /dev/null +++ b/src/package_37/VectorCodeclongLevel1.as @@ -0,0 +1,58 @@ +package package_37 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodeclongLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodeclongLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(uint,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = uint(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_37/VectorCodeclongLevel2.as b/src/package_37/VectorCodeclongLevel2.as new file mode 100644 index 0000000..6d0426e --- /dev/null +++ b/src/package_37/VectorCodeclongLevel2.as @@ -0,0 +1,88 @@ +package package_37 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodeclongLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodeclongLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(uint,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = uint(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_37/VectorCodeclongLevel3.as b/src/package_37/VectorCodeclongLevel3.as new file mode 100644 index 0000000..955b1b9 --- /dev/null +++ b/src/package_37/VectorCodeclongLevel3.as @@ -0,0 +1,118 @@ +package package_37 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodeclongLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodeclongLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(uint,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = uint(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_37/VectorCodecshortLevel1.as b/src/package_37/VectorCodecshortLevel1.as new file mode 100644 index 0000000..1bf156c --- /dev/null +++ b/src/package_37/VectorCodecshortLevel1.as @@ -0,0 +1,59 @@ +package package_37 +{ + import package_32.name_148; + import package_33.name_153; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecshortLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecshortLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_153,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = uint(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_37/VectorCodecshortLevel2.as b/src/package_37/VectorCodecshortLevel2.as new file mode 100644 index 0000000..f7a9ebd --- /dev/null +++ b/src/package_37/VectorCodecshortLevel2.as @@ -0,0 +1,89 @@ +package package_37 +{ + import package_32.name_148; + import package_33.name_153; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecshortLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecshortLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_153,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = uint(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_37/VectorCodecshortLevel3.as b/src/package_37/VectorCodecshortLevel3.as new file mode 100644 index 0000000..0552a31 --- /dev/null +++ b/src/package_37/VectorCodecshortLevel3.as @@ -0,0 +1,119 @@ +package package_37 +{ + import package_32.name_148; + import package_33.name_153; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + + public class VectorCodecshortLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecshortLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_153,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = uint(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_38/name_159.as b/src/package_38/name_159.as new file mode 100644 index 0000000..9028186 --- /dev/null +++ b/src/package_38/name_159.as @@ -0,0 +1,110 @@ +package package_38 +{ + import flash.utils.ByteArray; + import flash.utils.Dictionary; + import flash.utils.IDataInput; + import flash.utils.IDataOutput; + import package_111.name_456; + import package_111.name_457; + import package_32.name_148; + import package_33.name_154; + import package_33.name_155; + import package_33.name_156; + import package_33.name_157; + import package_33.name_158; + import package_34.name_150; + import package_36.*; + import package_39.name_160; + import package_70.name_224; + import package_70.name_225; + import package_70.name_226; + import package_70.name_227; + import package_70.name_228; + import package_70.name_230; + import package_70.name_231; + import package_70.name_232; + import package_70.name_458; + + public class name_159 implements name_163 + { + [Inject] + public static var clientLog:name_160; + + private static const LOG_CHANNEL:String = "protocol"; + + public static var defaultInstance:name_163 = new name_159(); + + private var var_190:Object = new Object(); + + private var var_191:Dictionary = new Dictionary(false); + + public function name_159() + { + super(); + this.name_151(new name_148(int,false),new name_232()); + this.name_151(new name_148(name_158,false),new name_224()); + this.name_151(new name_148(name_154,false),new name_225()); + this.name_151(new name_148(name_156,false),new name_230()); + this.name_151(new name_148(uint,false),new name_228()); + this.name_151(new name_148(Number,false),new name_231()); + this.name_151(new name_148(name_157,false),new name_226()); + this.name_151(new name_148(Boolean,false),new name_458()); + this.name_151(new name_148(name_155,false),new name_227()); + this.name_151(new name_148(String,false),new name_457()); + this.name_151(new name_148(ByteArray,false),new name_456()); + this.name_151(new name_148(int,true),new name_150(new name_232())); + this.name_151(new name_148(name_158,true),new name_150(new name_224())); + this.name_151(new name_148(name_154,true),new name_150(new name_225())); + this.name_151(new name_148(name_156,true),new name_150(new name_230())); + this.name_151(new name_148(uint,true),new name_150(new name_228())); + this.name_151(new name_148(Number,true),new name_150(new name_231())); + this.name_151(new name_148(name_157,true),new name_150(new name_226())); + this.name_151(new name_148(Boolean,true),new name_150(new name_458())); + this.name_151(new name_148(name_155,true),new name_150(new name_227())); + this.name_151(new name_148(String,true),new name_150(new name_457())); + this.name_151(new name_148(ByteArray,true),new name_150(new name_456())); + } + + public function name_151(codecInfo:class_19, codec:name_152) : void + { + this.var_190[codecInfo] = codec; + } + + public function name_223(type:Class, codec:name_152) : void + { + this.var_190[new name_148(type,false)] = codec; + this.var_190[new name_148(type,true)] = new name_150(codec); + } + + public function name_448(codecInfo:class_19) : name_152 + { + var result:name_152 = this.var_190[codecInfo]; + if(result == null) + { + throw Error("Codec not found for " + codecInfo); + } + if(this.var_191[result] == null) + { + result.init(this); + this.var_191[result] = result; + } + return result; + } + + public function method_304(type:Class) : class_19 + { + return new name_148(type,false); + } + + public function method_305(dest:IDataOutput, source:name_442, compressionType:name_449) : void + { + name_162.method_305(dest,source,compressionType); + } + + public function method_303(source:IDataInput, dest:name_442) : Boolean + { + return name_162.method_303(source,dest); + } + } +} + diff --git a/src/package_38/name_162.as b/src/package_38/name_162.as new file mode 100644 index 0000000..419fdbe --- /dev/null +++ b/src/package_38/name_162.as @@ -0,0 +1,205 @@ +package package_38 +{ + import flash.utils.ByteArray; + import flash.utils.IDataInput; + import flash.utils.IDataOutput; + import package_36.name_442; + import package_36.name_449; + import package_39.name_160; + import package_5.name_3; + + public class name_162 + { + [Inject] + public static var clientLog:name_160; + + private static const LOG_CHANNEL:String = "protocol"; + + private static const ZIP_PACKET_SIZE_DELIMITER:int = 2000; + + private static const MAXIMUM_DATA_LENGTH:int = 2147483647; + + private static const LONG_SIZE_DELIMITER:int = 16384; + + private static const ZIPPED_FLAG:int = 64; + + private static const BIG_LENGTH_FLAG:int = 128; + + public function name_162() + { + super(); + } + + public static function method_303(source:IDataInput, dest:name_442) : Boolean + { + var isZipped:Boolean = false; + var packetSize:int = 0; + var hiByte:int = 0; + var middleByte:int = 0; + var loByte:int = 0; + var loByte2:int = 0; + if(source.bytesAvailable < 2) + { + return false; + } + var flagByte:int = int(source.readByte()); + var longSize:Boolean = (flagByte & BIG_LENGTH_FLAG) != 0; + if(longSize) + { + if(source.bytesAvailable < 3) + { + return false; + } + isZipped = true; + hiByte = (flagByte ^ BIG_LENGTH_FLAG) << 24; + middleByte = (source.readByte() & 0xFF) << 16; + loByte = (source.readByte() & 0xFF) << 8; + loByte2 = source.readByte() & 0xFF; + packetSize = hiByte + middleByte + loByte + loByte2; + } + else + { + isZipped = (flagByte & ZIPPED_FLAG) != 0; + hiByte = (flagByte & 0x3F) << 8; + loByte = source.readByte() & 0xFF; + packetSize = hiByte + loByte; + } + if(source.bytesAvailable < packetSize) + { + return false; + } + var data:ByteArray = new ByteArray(); + if(packetSize != 0) + { + source.readBytes(data,0,packetSize); + } + if(isZipped) + { + data.uncompress(); + } + clientLog.log(LOG_CHANNEL,"Packet::unwrapPacket() source (size=%1, compressed=%2)\n%3\n",packetSize,isZipped,bytesToString(data,0,data.length,6)); + data.position = 0; + dest.optionalMap = name_453.name_454(data); + var destByteArray:ByteArray = new ByteArray(); + dest.reader = destByteArray; + destByteArray.writeBytes(data,data.position,data.length - data.position); + destByteArray.position = 0; + clientLog.log(LOG_CHANNEL,"Packet::unwrapPacket() unwrapped \n%1\n",bytesToString(destByteArray,0,data.length,6)); + return true; + } + + public static function method_305(dst:IDataOutput, source:name_442, compressionType:name_449) : void + { + var sizeToWrite:int = 0; + var hiByte:int = 0; + var loByte:int = 0; + var zipped:Boolean = false; + switch(compressionType) + { + case name_449.NONE: + break; + case name_449.DEFLATE: + zipped = true; + break; + case name_449.DEFLATE_AUTO: + zipped = method_307(source.reader); + } + var toWrap:ByteArray = new ByteArray(); + var encodedNullmap:ByteArray = name_453.name_455(source.optionalMap); + encodedNullmap.position = 0; + toWrap.writeBytes(encodedNullmap); + source.reader.readBytes(toWrap,toWrap.position,source.reader.bytesAvailable); + toWrap.position = 0; + var longSize:Boolean = method_306(toWrap); + if(zipped) + { + toWrap.compress(); + } + var length:int = int(toWrap.length); + if(length > MAXIMUM_DATA_LENGTH) + { + throw new Error("Packet size too big (" + length + ")"); + } + if(longSize) + { + sizeToWrite = length + (BIG_LENGTH_FLAG << 24); + dst.writeInt(sizeToWrite); + } + else + { + hiByte = int(int(((length & 0xFF00) >> 8) + (zipped ? ZIPPED_FLAG : 0))); + loByte = int(int(length & 0xFF)); + dst.writeByte(hiByte); + dst.writeByte(loByte); + } + dst.writeBytes(toWrap,0,length); + clientLog.log("protocol","packet length " + length); + } + + private static function method_306(reader:IDataInput) : Boolean + { + return reader.bytesAvailable >= LONG_SIZE_DELIMITER || reader.bytesAvailable == -1; + } + + private static function method_307(reader:IDataInput) : Boolean + { + return reader.bytesAvailable == -1 || reader.bytesAvailable > ZIP_PACKET_SIZE_DELIMITER; + } + + private static function method_308() : name_160 + { + if(clientLog == null) + { + clientLog = name_160(name_3.name_8().name_30(name_160)); + } + return clientLog; + } + + private static function bytesToString(bytes:ByteArray, startPosition:int, count:int, numColumns:int) : String + { + var columnIndex:int = 0; + var longIndex:int = 0; + var bytesRead:int = 0; + var s:String = null; + var result:String = ""; + var position:int = int(bytes.position); + bytes.position = startPosition; + while(bytes.bytesAvailable > 0 && bytesRead < count) + { + bytesRead++; + s = bytes.readUnsignedByte().toString(16); + if(s.length == 1) + { + s = "0" + s; + } + result += s; + longIndex++; + if(longIndex == 4) + { + longIndex = 0; + columnIndex++; + if(columnIndex == numColumns) + { + columnIndex = 0; + result += "\n"; + } + else + { + result += " "; + } + } + else + { + result += " "; + } + } + if(bytesRead < count) + { + result += "\nOnly " + bytesRead + " of " + count + " bytes have been read"; + } + bytes.position = position; + return result; + } + } +} + diff --git a/src/package_38/name_443.as b/src/package_38/name_443.as new file mode 100644 index 0000000..751ae82 --- /dev/null +++ b/src/package_38/name_443.as @@ -0,0 +1,64 @@ +package package_38 +{ + import package_36.name_442; + + public class name_443 + { + public function name_443() + { + super(); + } + + public static function name_446(protocolBuffer:name_442, length:int) : void + { + var tmp:Number = NaN; + if(length < 0) + { + throw new Error("Length is incorrect (" + length + ")"); + } + if(length < 128) + { + protocolBuffer.name_483.writeByte(int(length & 0x7F)); + } + else if(length < 16384) + { + tmp = (length & 0x3FFF) + 32768; + protocolBuffer.name_483.writeByte(int((tmp & 0xFF00) >> 8)); + protocolBuffer.name_483.writeByte(int(tmp & 0xFF)); + } + else + { + if(length >= 4194304) + { + throw new Error("Length is incorrect (" + length + ")"); + } + tmp = (length & 0x3FFFFF) + 12582912; + protocolBuffer.name_483.writeByte(int((tmp & 0xFF0000) >> 16)); + protocolBuffer.name_483.writeByte(int((tmp & 0xFF00) >> 8)); + protocolBuffer.name_483.writeByte(int(tmp & 0xFF)); + } + } + + public static function name_445(protocolBuffer:name_442) : int + { + var secondByte:int = 0; + var doubleByte:Boolean = false; + var thirdByte:int = 0; + var firstByte:int = int(protocolBuffer.reader.readByte()); + var singleByte:Boolean = (firstByte & 0x80) == 0; + if(singleByte) + { + return firstByte; + } + secondByte = int(protocolBuffer.reader.readByte()); + doubleByte = (firstByte & 0x40) == 0; + if(doubleByte) + { + return ((firstByte & 0x3F) << 8) + (secondByte & 0xFF); + } + thirdByte = int(protocolBuffer.reader.readByte()); + return ((firstByte & 0x3F) << 16) + ((secondByte & 0xFF) << 8) + (thirdByte & 0xFF); + } + } +} + diff --git a/src/package_38/name_453.as b/src/package_38/name_453.as new file mode 100644 index 0000000..8e4cbd8 --- /dev/null +++ b/src/package_38/name_453.as @@ -0,0 +1,152 @@ +package package_38 +{ + import flash.utils.ByteArray; + import flash.utils.IDataInput; + import package_36.name_648; + + public class name_453 + { + private static const INPLACE_MASK_FLAG:int = 128; + + private static const MASK_LENGTH_2_BYTES_FLAG:int = 64; + + private static const INPLACE_MASK_1_BYTES:int = 32; + + private static const INPLACE_MASK_3_BYTES:int = 96; + + private static const INPLACE_MASK_2_BYTES:int = 64; + + private static const MASK_LENGTH_1_BYTE:int = 128; + + private static const MASK_LEGTH_3_BYTE:int = 12582912; + + public function name_453() + { + super(); + } + + public static function name_455(nullMap:name_648) : ByteArray + { + var sizeInBytes:int = 0; + var firstByte:int = 0; + var sizeEncoded:int = 0; + var secondByte:int = 0; + var thirdByte:int = 0; + var nullMapSize:int = nullMap.name_650(); + var map:ByteArray = nullMap.name_649(); + var res:ByteArray = new ByteArray(); + if(nullMapSize <= 5) + { + res.writeByte(int((map[0] & 0xFF) >>> 3)); + return res; + } + if(nullMapSize <= 13) + { + res.writeByte(int(((map[0] & 0xFF) >>> 3) + INPLACE_MASK_1_BYTES)); + res.writeByte(((map[1] & 0xFF) >>> 3) + (map[0] << 5)); + return res; + } + if(nullMapSize <= 21) + { + res.writeByte(int(((map[0] & 0xFF) >>> 3) + INPLACE_MASK_2_BYTES)); + res.writeByte(int(((map[1] & 0xFF) >>> 3) + (map[0] << 5))); + res.writeByte(int(((map[2] & 0xFF) >>> 3) + (map[1] << 5))); + return res; + } + if(nullMapSize <= 29) + { + res.writeByte(int(((map[0] & 0xFF) >>> 3) + INPLACE_MASK_3_BYTES)); + res.writeByte(int(((map[1] & 0xFF) >>> 3) + (map[0] << 5))); + res.writeByte(int(((map[2] & 0xFF) >>> 3) + (map[1] << 5))); + res.writeByte(int(((map[3] & 0xFF) >>> 3) + (map[2] << 5))); + return res; + } + if(nullMapSize <= 504) + { + sizeInBytes = (nullMapSize >>> 3) + ((nullMapSize & 7) == 0 ? 0 : 1); + firstByte = int(int((sizeInBytes & 0xFF) + MASK_LENGTH_1_BYTE)); + res.writeByte(firstByte); + res.writeBytes(map,0,sizeInBytes); + return res; + } + if(nullMapSize <= 33554432) + { + sizeInBytes = (nullMapSize >>> 3) + ((nullMapSize & 7) == 0 ? 0 : 1); + sizeEncoded = sizeInBytes + MASK_LEGTH_3_BYTE; + firstByte = int(int((sizeEncoded & 0xFF0000) >>> 16)); + secondByte = int(int((sizeEncoded & 0xFF00) >>> 8)); + thirdByte = int(int(sizeEncoded & 0xFF)); + res.writeByte(firstByte); + res.writeByte(secondByte); + res.writeByte(thirdByte); + res.writeBytes(map,0,sizeInBytes); + return res; + } + throw new Error("NullMap overflow"); + } + + public static function name_454(reader:IDataInput) : name_648 + { + var maskLength:int = 0; + var firstByteValue:int = 0; + var isLength22bit:Boolean = false; + var sizeInBits:int = 0; + var secondByte:int = 0; + var thirdByte:int = 0; + var fourthByte:int = 0; + var mask:ByteArray = new ByteArray(); + var firstByte:int = int(reader.readByte()); + var isLongNullMap:Boolean = (firstByte & INPLACE_MASK_FLAG) != 0; + if(isLongNullMap) + { + firstByteValue = firstByte & 0x3F; + isLength22bit = (firstByte & MASK_LENGTH_2_BYTES_FLAG) != 0; + if(isLength22bit) + { + secondByte = int(reader.readByte()); + thirdByte = int(reader.readByte()); + maskLength = (firstByteValue << 16) + ((secondByte & 0xFF) << 8) + (thirdByte & 0xFF); + } + else + { + maskLength = firstByteValue; + } + reader.readBytes(mask,0,maskLength); + sizeInBits = maskLength << 3; + return new name_648(sizeInBits,mask); + } + firstByteValue = int(int(firstByte << 3)); + maskLength = int(int((firstByte & 0x60) >> 5)); + switch(maskLength) + { + case 0: + mask.writeByte(firstByteValue); + return new name_648(5,mask); + case 1: + secondByte = int(reader.readByte()); + mask.writeByte(int(firstByteValue + ((secondByte & 0xFF) >>> 5))); + mask.writeByte(int(secondByte << 3)); + return new name_648(13,mask); + case 2: + secondByte = int(reader.readByte()); + thirdByte = int(reader.readByte()); + mask.writeByte(int(firstByteValue + ((secondByte & 0xFF) >>> 5))); + mask.writeByte(int((secondByte << 3) + ((thirdByte & 0xFF) >>> 5))); + mask.writeByte(int(thirdByte << 3)); + return new name_648(21,mask); + case 3: + secondByte = int(reader.readByte()); + thirdByte = int(reader.readByte()); + fourthByte = int(reader.readByte()); + mask.writeByte(int(firstByteValue + ((secondByte & 0xFF) >>> 5))); + mask.writeByte(int((secondByte << 3) + ((thirdByte & 0xFF) >>> 5))); + mask.writeByte(int((thirdByte << 3) + ((fourthByte & 0xFF) >>> 5))); + mask.writeByte(int(fourthByte << 3)); + return new name_648(29,mask); + default: + return null; + } + } + } +} + diff --git a/src/package_39/name_160.as b/src/package_39/name_160.as new file mode 100644 index 0000000..de6cbe3 --- /dev/null +++ b/src/package_39/name_160.as @@ -0,0 +1,20 @@ +package package_39 +{ + public interface name_160 extends name_203 + { + function logError(param1:String, param2:String, ... rest) : void; + + function getChannelStrings(param1:String) : Vector.; + + function addLogListener(param1:name_450) : void; + + function removeLogListener(param1:name_450) : void; + + function addLogChannelListener(param1:String, param2:name_450) : void; + + function removeLogChannelListener(param1:String, param2:name_450) : void; + + function getChannelNames() : Vector.; + } +} + diff --git a/src/package_39/name_203.as b/src/package_39/name_203.as new file mode 100644 index 0000000..4ffd438 --- /dev/null +++ b/src/package_39/name_203.as @@ -0,0 +1,8 @@ +package package_39 +{ + public interface name_203 + { + function log(param1:String, param2:String, ... rest) : void; + } +} + diff --git a/src/package_39/name_368.as b/src/package_39/name_368.as new file mode 100644 index 0000000..6e461e3 --- /dev/null +++ b/src/package_39/name_368.as @@ -0,0 +1,114 @@ +package package_39 +{ + public class name_368 implements name_160 + { + private var channels:Object = {}; + + private var listeners:Vector. = new Vector.(); + + private var channelBufferSize:int; + + public function name_368(channelBufferSize:int) + { + super(); + this.channelBufferSize = channelBufferSize; + } + + public function log(channelName:String, text:String, ... vars) : void + { + this.method_620(channelName).log(this.method_621(text,vars)); + } + + public function logError(channelName:String, text:String, ... vars) : void + { + var message:String = this.method_621(text,vars); + this.method_620(channelName).log(message); + this.method_620("error").log(message); + } + + public function getChannelStrings(channelName:String) : Vector. + { + var channel:name_637 = this.channels[channelName]; + if(channel == null) + { + return null; + } + return channel.name_638(); + } + + public function addLogListener(listener:name_450) : void + { + var channelName:String = null; + var i:int = int(this.listeners.indexOf(listener)); + if(i < 0) + { + this.listeners.push(listener); + for each(channelName in this.getChannelNames()) + { + this.addLogChannelListener(channelName,listener); + } + } + } + + public function removeLogListener(listener:name_450) : void + { + var channelName:String = null; + var i:int = int(this.listeners.indexOf(listener)); + if(i > -1) + { + for each(channelName in this.getChannelNames()) + { + this.removeLogChannelListener(channelName,listener); + } + this.listeners.splice(i,1); + } + } + + public function addLogChannelListener(channelName:String, listener:name_450) : void + { + this.method_620(channelName).addLogListener(listener); + } + + public function removeLogChannelListener(channelName:String, listener:name_450) : void + { + this.method_620(channelName).removeLogListener(listener); + } + + public function getChannelNames() : Vector. + { + var channelName:String = null; + var result:Vector. = new Vector.(); + for(channelName in this.channels) + { + result.push(channelName); + } + return result; + } + + private function method_620(channelName:String) : name_637 + { + var listener:name_450 = null; + var channel:name_637 = this.channels[channelName]; + if(channel == null) + { + channel = new name_637(channelName,this.channelBufferSize); + this.channels[channelName] = channel; + for each(listener in this.listeners) + { + channel.addLogListener(listener); + } + } + return channel; + } + + private function method_621(text:String, vars:Array) : String + { + for(var i:int = 0; i < vars.length; i++) + { + text = text.replace("%" + (i + 1),vars[i]); + } + return text; + } + } +} + diff --git a/src/package_39/name_450.as b/src/package_39/name_450.as new file mode 100644 index 0000000..20e9b48 --- /dev/null +++ b/src/package_39/name_450.as @@ -0,0 +1,8 @@ +package package_39 +{ + public interface name_450 + { + function method_622(param1:String, param2:String) : void; + } +} + diff --git a/src/package_39/name_637.as b/src/package_39/name_637.as new file mode 100644 index 0000000..a6589b8 --- /dev/null +++ b/src/package_39/name_637.as @@ -0,0 +1,59 @@ +package package_39 +{ + import package_15.name_634; + + public class name_637 + { + private var _name:String; + + private var buffer:name_634; + + private var listeners:Vector. = new Vector.(); + + public function name_637(name:String, bufferSize:int) + { + super(); + this._name = name; + this.buffer = new name_634(bufferSize); + } + + public function get name() : String + { + return this._name; + } + + public function log(text:String) : void + { + var listener:name_450 = null; + this.buffer.add(text); + for each(listener in this.listeners) + { + listener.method_622(this._name,text); + } + } + + public function name_638() : Vector. + { + return this.buffer.name_638(); + } + + public function addLogListener(listener:name_450) : void + { + var i:int = int(this.listeners.indexOf(listener)); + if(i < 0) + { + this.listeners.push(listener); + } + } + + public function removeLogListener(listener:name_450) : void + { + var i:int = int(this.listeners.indexOf(listener)); + if(i > -1) + { + this.listeners.splice(i,1); + } + } + } +} + diff --git a/src/package_4/class_4.as b/src/package_4/class_4.as new file mode 100644 index 0000000..668a556 --- /dev/null +++ b/src/package_4/class_4.as @@ -0,0 +1,85 @@ +package package_4 +{ + import alternativa.engine3d.alternativa3d; + import flash.utils.Dictionary; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_77; + import package_28.name_119; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + + use namespace alternativa3d; + + public class class_4 + { + alternativa3d static const _projectProcedure:name_114 = method_73(); + + public var name:String; + + alternativa3d var priority:int = 0; + + public function class_4() + { + super(); + } + + private static function method_73() : name_114 + { + var res:name_114 = new name_114(["m44 o0, i0, c0"],"projectProcedure"); + res.name_122(name_115.CONSTANT,0,"cProjMatrix",4); + return res; + } + + alternativa3d function get canDrawInShadowMap() : Boolean + { + return true; + } + + alternativa3d function method_74(transformProcedure:name_114, vertexShader:name_121) : String + { + vertexShader.name_120("tTransformedPosition"); + vertexShader.name_123(transformProcedure); + vertexShader.name_118(transformProcedure,"aPosition"); + vertexShader.name_125(transformProcedure,"tTransformedPosition"); + return "tTransformedPosition"; + } + + public function getResources(resourceType:Class = null) : Vector. + { + var key:* = undefined; + var res:Vector. = new Vector.(); + var dict:Dictionary = new Dictionary(); + var count:int = 0; + this.alternativa3d::fillResources(dict,resourceType); + for(key in dict) + { + var _loc8_:* = count++; + res[_loc8_] = key as name_77; + } + return res; + } + + alternativa3d function fillResources(resources:Dictionary, resourceType:Class) : void + { + } + + alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + } + + public function clone() : class_4 + { + var res:class_4 = new class_4(); + res.clonePropertiesFrom(this); + return res; + } + + protected function clonePropertiesFrom(source:class_4) : void + { + } + } +} + diff --git a/src/package_4/class_5.as b/src/package_4/class_5.as new file mode 100644 index 0000000..8a0281b --- /dev/null +++ b/src/package_4/class_5.as @@ -0,0 +1,163 @@ +package package_4 +{ + import alternativa.engine3d.alternativa3d; + import avmplus.getQualifiedClassName; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DProgramType; + import flash.display3D.VertexBuffer3D; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_78; + import package_28.name_119; + import package_28.name_129; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + + use namespace alternativa3d; + + public class class_5 extends class_4 + { + alternativa3d static const _samplerSetProcedure:name_114 = new name_114(["#v0=vUV","#s0=sTexture","#c0=cAlpha","tex t0, v0, s0 <2d, linear,repeat, miplinear>","mov t0.w, c0.w","mov o0, t0"],"samplerSetProcedure"); + + alternativa3d static const _samplerSetProcedureOpacity:name_114 = new name_114(["#v0=vUV","#s0=sTexture","#s1=sOpacity","#c0=cAlpha","tex t0, v0, s0 <2d, linear,repeat, miplinear>","tex t1, v0, s1 <2d, linear,repeat, miplinear>","mov t0.w, t1.x","mul t0.w, t0.w, c0.w","mov o0, t0"],"samplerSetProcedureOpacity"); + + alternativa3d static const _samplerSetProcedureDiffuseAlpha:name_114 = new name_114(["#v0=vUV","#s0=sTexture","#c0=cAlpha","tex t0, v0, s0 <2d, linear,repeat, miplinear>","mul t0.w, t0.w, c0.w","mov o0, t0"],"samplerSetProcedureDiffuseAlpha"); + + alternativa3d static const _passUVProcedure:name_114 = new name_114(["#v0=vUV","#a0=aUV","mov v0, a0"],"passUVProcedure"); + + private static var _programs:Dictionary = new Dictionary(); + + public var diffuseMap:name_129; + + public var opacityMap:name_129; + + public var alpha:Number = 1; + + public var var_21:Boolean = false; + + public function class_5(diffuseMap:name_129 = null, opacityMap:name_129 = null, alpha:Number = 1) + { + super(); + this.diffuseMap = diffuseMap; + this.opacityMap = opacityMap; + this.alpha = alpha; + } + + override alternativa3d function get canDrawInShadowMap() : Boolean + { + return !this.var_21 && this.opacityMap == null; + } + + override alternativa3d function fillResources(resources:Dictionary, resourceType:Class) : void + { + super.alternativa3d::fillResources(resources,resourceType); + if(this.diffuseMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.diffuseMap)) as Class,resourceType))) + { + resources[this.diffuseMap] = true; + } + if(this.opacityMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.opacityMap)) as Class,resourceType))) + { + resources[this.opacityMap] = true; + } + } + + private function method_75(object:name_78) : name_127 + { + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var positionVar:String = "aPosition"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + if(object.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(object.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + vertexLinker.name_123(alternativa3d::_passUVProcedure); + var outProcedure:name_114 = this.var_21 ? alternativa3d::_samplerSetProcedureDiffuseAlpha : (this.opacityMap != null ? alternativa3d::_samplerSetProcedureOpacity : alternativa3d::_samplerSetProcedure); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + fragmentLinker.name_123(outProcedure); + fragmentLinker.name_133(vertexLinker); + return new name_127(vertexLinker,fragmentLinker); + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + var program:name_127 = null; + var object:name_78 = surface.alternativa3d::object; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + var key:int = this.var_21 ? 2 : (this.opacityMap != null ? 1 : 0); + var optionsPrograms:Vector. = _programs[object.alternativa3d::transformProcedure]; + if(optionsPrograms == null) + { + optionsPrograms = new Vector.(3,true); + _programs[object.alternativa3d::transformProcedure] = optionsPrograms; + program = this.method_75(object); + program.upload(camera.alternativa3d::context3D); + optionsPrograms[key] = program; + } + else + { + program = optionsPrograms[key]; + if(program == null) + { + program = this.method_75(object); + program.upload(camera.alternativa3d::context3D); + optionsPrograms[key] = program; + } + } + if(positionBuffer == null || uvBuffer == null || this.diffuseMap == null || this.diffuseMap.alternativa3d::_texture == null) + { + return; + } + if(!this.var_21 && this.opacityMap != null && this.opacityMap.alternativa3d::_texture == null) + { + return; + } + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aPosition"),positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aUV"),uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.vertexShader.getVariableIndex("cProjMatrix"),object.alternativa3d::localToCameraTransform); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cAlpha"),0,0,0,this.alpha); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sTexture"),this.diffuseMap.alternativa3d::_texture); + if(!this.var_21 && this.opacityMap != null) + { + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sOpacity"),this.opacityMap.alternativa3d::_texture); + } + if(this.var_21 || this.opacityMap != null || this.alpha < 1) + { + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.SOURCE_ALPHA; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.TRANSPARENT_SORT); + } + else + { + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.OPAQUE); + } + } + + override public function clone() : class_4 + { + var res:class_5 = new class_5(null,null,this.alpha); + res.clonePropertiesFrom(this); + return res; + } + + override protected function clonePropertiesFrom(source:class_4) : void + { + super.clonePropertiesFrom(source); + var t:class_5 = source as class_5; + this.diffuseMap = t.diffuseMap; + this.opacityMap = t.opacityMap; + } + } +} + diff --git a/src/package_4/class_9.as b/src/package_4/class_9.as new file mode 100644 index 0000000..3d411a5 --- /dev/null +++ b/src/package_4/class_9.as @@ -0,0 +1,590 @@ +package package_4 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.BitmapData; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DProgramType; + import flash.display3D.VertexBuffer3D; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import flash.utils.getQualifiedClassName; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_139; + import package_21.name_78; + import package_24.DirectionalLight; + import package_24.OmniLight; + import package_24.SpotLight; + import package_28.name_119; + import package_28.name_129; + import package_28.name_93; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + + use namespace alternativa3d; + + public class class_9 extends class_5 + { + alternativa3d static var fogTexture:name_129; + + alternativa3d static const DISABLED:int = 0; + + alternativa3d static const SIMPLE:int = 1; + + alternativa3d static const ADVANCED:int = 2; + + alternativa3d static var fogMode:int = alternativa3d::DISABLED; + + alternativa3d static var fogNear:Number = 1000; + + alternativa3d static var fogFar:Number = 5000; + + alternativa3d static var fogMaxDensity:Number = 1; + + alternativa3d static var fogColorR:Number = 200 / 255; + + alternativa3d static var fogColorG:Number = 162 / 255; + + alternativa3d static var fogColorB:Number = 200 / 255; + + private static const _programs:Dictionary = new Dictionary(); + + private static const _lightFragmentProcedures:Dictionary = new Dictionary(); + + private static const _passVaryingsProcedure:name_114 = new name_114(["#v0=vPosition","#v1=vViewVector","#c0=cCameraPosition","mov v0, i0","sub t0, c0, i0","mov v1.xyz, t0.xyz","mov v1.w, c0.w"]); + + private static const _passTBNRightProcedure:name_114 = method_123(true); + + private static const _passTBNLeftProcedure:name_114 = method_123(false); + + private static const _ambientLightProcedure:name_114 = new name_114(["#c0=cSurface","mov o0, i0","mov o1, c0.xxxx"],"ambientLightProcedure"); + + private static const _setGlossinessFromConstantProcedure:name_114 = new name_114(["#c0=cSurface","mov o0.w, c0.y"],"setGlossinessFromConstantProcedure"); + + private static const _setGlossinessFromTextureProcedure:name_114 = new name_114(["#v0=vUV","#c0=cSurface","#s0=sGlossiness","tex t0, v0, s0 <2d, repeat, linear, miplinear>","mul o0.w, t0.x, c0.y"],"setGlossinessFromTextureProcedure"); + + private static const _getNormalAndViewTangentProcedure:name_114 = new name_114(["#v0=vTangent","#v1=vBinormal","#v2=vNormal","#v3=vUV","#v4=vViewVector","#c0=cAmbientColor","#s0=sBump","tex t0, v3, s0 <2d,repeat,linear,miplinear>","add t0, t0, t0","sub t0.xyz, t0.xyz, c0.www","nrm t1.xyz, v0.xyz","dp3 o0.x, t0.xyz, t1.xyz","nrm t1.xyz, v1.xyz","dp3 o0.y, t0.xyz, t1.xyz","nrm t1.xyz, v2.xyz","dp3 o0.z, t0.xyz, t1.xyz","nrm o0.xyz, o0.xyz","nrm o1.xyz, v4"],"getNormalAndViewTangentProcedure"); + + private static const _getNormalAndViewObjectProcedure:name_114 = new name_114(["#v3=vUV","#v4=vViewVector","#c0=cAmbientColor","#s0=sBump","tex t0, v3, s0 <2d,repeat,linear,miplinear>","add t0, t0, t0","sub t0.xyz, t0.xyz, c0.www","nrm o0.xyz, t0.xyz","nrm o1.xyz, v4"],"getNormalAndViewObjectProcedure"); + + private static const _applySpecularProcedure:name_114 = new name_114(["#v0=vUV","#s0=sSpecular","tex t0, v0, s0 <2d, repeat,linear,miplinear>","mul o0.xyz, o0.xyz, t0.xyz"],"applySpecularProcedure"); + + private static const _mulLightingProcedure:name_114 = new name_114(["#s0=sTexture","#v0=vUV","#c0=cSurface","tex t0, v0, s0 <2d, repeat, linear, miplinear>","mul t0.xyz, t0.xyz, i0.xyz","mul t1.xyz, i1.xyz, c0.z","add t0.xyz, t0.xyz, t1.xyz","mov o0, t0"],"mulLightingProcedure"); + + private static const passSimpleFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z"],"passSimpleFogConst"); + + private static const outputWithSimpleFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogColor","#c1=cFogRange","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul i0.xyz, i0.xyz, t0.y","mul t0.xyz, c0.xyz, t0.x","add i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"outputWithSimpleFog"); + + private static const postPassAdvancedFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z","mov v0.zw, i1.xwxw","mov o0, i1"],"postPassAdvancedFogConst"); + + private static const outputWithAdvancedFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogConsts","#c1=cFogRange","#s0=sFogTexture","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul i0.xyz, i0.xyz, t0.y","mov t1.xyzw, c0.yyzw","div t0.z, v0.z, v0.w","mul t0.z, t0.z, c0.x","add t1.x, t1.x, t0.z","tex t1, t1, s0 <2d, repeat, linear, miplinear>","mul t0.xyz, t1.xyz, t0.x","add i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"outputWithAdvancedFog"); + + alternativa3d var var_54:Boolean = false; + + alternativa3d var outputAlpha:name_114 = new name_114(["#c0=cSurface","mov i0.w, c0.w","mov o0, i0"],"outputAlpha"); + + alternativa3d var outputDiffuseAlpha:name_114 = new name_114(["#c0=cSurface","mul i0.w, i0.w, c0.w","mov o0, i0"],"outputDiffuseAlpha"); + + alternativa3d var outputOpacity:name_114 = new name_114(["#c0=cSurface","#s0=sOpacity","#v0=vUV","tex t0, v0, s0 <2d, repeat,linear,miplinear>","mul i0.w, t0.x, c0.w","mov o0, i0"],"outputOpacity"); + + public var normalMap:name_129; + + private var var_53:int = 0; + + public var specularMap:name_129; + + public var glossinessMap:name_129; + + public var glossiness:Number = 100; + + public var var_25:Number = 1; + + public function class_9(diffuseMap:name_129, normalMap:name_129, specularMap:name_129 = null, glossinessMap:name_129 = null, opacityMap:name_129 = null) + { + super(diffuseMap); + this.normalMap = normalMap; + this.specularMap = specularMap; + this.glossinessMap = glossinessMap; + this.opacityMap = opacityMap; + } + + private static function method_123(right:Boolean) : name_114 + { + var crsInSpace:String = right ? "crs t1.xyz, i0, i1" : "crs t1.xyz, i1, i0"; + return new name_114(["#v0=vTangent","#v1=vBinormal","#v2=vNormal",crsInSpace,"mul t1.xyz, t1.xyz, i0.w","mov v0.x, i0.x","mov v0.y, t1.x","mov v0.z, i1.x","mov v0.w, i1.w","mov v1.x, i0.y","mov v1.y, t1.y","mov v1.z, i1.y","mov v1.w, i1.w","mov v2.x, i0.z","mov v2.y, t1.z","mov v2.z, i1.z","mov v2.w, i1.w"],"passTBNProcedure"); + } + + public function get method_124() : int + { + return this.var_53; + } + + public function set method_124(value:int) : void + { + if(value != name_204.TANGENT_RIGHT_HANDED && value != name_204.TANGENT_LEFT_HANDED && value != name_204.OBJECT) + { + throw new ArgumentError("Value must be a constant from the NormalMapSpace class"); + } + this.var_53 = value; + } + + alternativa3d function getPassUVProcedure() : name_114 + { + return alternativa3d::_passUVProcedure; + } + + alternativa3d function setPassUVProcedureConstants(destination:name_135, vertexLinker:name_121) : void + { + } + + private function method_75(object:name_78, lights:Vector., directional:DirectionalLight, lightsLength:int) : name_127 + { + var i:int = 0; + var outputProcedure:name_114 = null; + var procedure:name_114 = null; + var nrmProcedure:name_114 = null; + var shadowProc:name_114 = null; + var dirMulShadowProcedure:name_114 = null; + var light:name_116 = null; + var lightFragmentProcedure:name_114 = null; + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + fragmentLinker.name_120("tTotalLight"); + fragmentLinker.name_120("tTotalHighLight"); + fragmentLinker.name_120("tNormal"); + fragmentLinker.name_120("cAmbientColor",name_115.CONSTANT); + fragmentLinker.name_123(_ambientLightProcedure); + fragmentLinker.name_118(_ambientLightProcedure,"cAmbientColor"); + fragmentLinker.name_125(_ambientLightProcedure,"tTotalLight","tTotalHighLight"); + var positionVar:String = "aPosition"; + var normalVar:String = "aNormal"; + var tangentVar:String = "aTangent"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + vertexLinker.name_120(tangentVar,name_115.ATTRIBUTE); + vertexLinker.name_120(normalVar,name_115.ATTRIBUTE); + if(object.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(object.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + vertexLinker.name_123(this.alternativa3d::getPassUVProcedure()); + if(this.glossinessMap != null) + { + fragmentLinker.name_123(_setGlossinessFromTextureProcedure); + fragmentLinker.name_125(_setGlossinessFromTextureProcedure,"tTotalHighLight"); + } + else + { + fragmentLinker.name_123(_setGlossinessFromConstantProcedure); + fragmentLinker.name_125(_setGlossinessFromConstantProcedure,"tTotalHighLight"); + } + if(lightsLength > 0) + { + if(object.alternativa3d::deltaTransformProcedure != null) + { + vertexLinker.name_120("tTransformedNormal"); + procedure = object.alternativa3d::deltaTransformProcedure.name_143(); + vertexLinker.name_123(procedure); + vertexLinker.name_118(procedure,normalVar); + vertexLinker.name_125(procedure,"tTransformedNormal"); + normalVar = "tTransformedNormal"; + vertexLinker.name_120("tTransformedTangent"); + procedure = object.alternativa3d::deltaTransformProcedure.name_143(); + vertexLinker.name_123(procedure); + vertexLinker.name_118(procedure,tangentVar); + vertexLinker.name_125(procedure,"tTransformedTangent"); + tangentVar = "tTransformedTangent"; + } + vertexLinker.name_123(_passVaryingsProcedure); + vertexLinker.name_118(_passVaryingsProcedure,positionVar); + fragmentLinker.name_120("tViewVector"); + if(this.var_53 == name_204.TANGENT_RIGHT_HANDED || this.var_53 == name_204.TANGENT_LEFT_HANDED) + { + nrmProcedure = this.var_53 == name_204.TANGENT_RIGHT_HANDED ? _passTBNRightProcedure : _passTBNLeftProcedure; + vertexLinker.name_123(nrmProcedure); + vertexLinker.name_118(nrmProcedure,tangentVar,normalVar); + fragmentLinker.name_123(_getNormalAndViewTangentProcedure); + fragmentLinker.name_125(_getNormalAndViewTangentProcedure,"tNormal","tViewVector"); + } + else + { + fragmentLinker.name_123(_getNormalAndViewObjectProcedure); + fragmentLinker.name_125(_getNormalAndViewObjectProcedure,"tNormal","tViewVector"); + } + if(directional != null) + { + vertexLinker.name_123(directional.shadow.getVShader()); + shadowProc = directional.shadow.getFShader(); + fragmentLinker.name_123(shadowProc); + fragmentLinker.name_125(shadowProc,"tTotalLight"); + dirMulShadowProcedure = _lightFragmentProcedures[directional.shadow]; + if(dirMulShadowProcedure == null) + { + dirMulShadowProcedure = new name_114(); + this.method_76(dirMulShadowProcedure,directional,true); + } + fragmentLinker.name_123(dirMulShadowProcedure); + fragmentLinker.name_118(dirMulShadowProcedure,"tNormal","tViewVector","tTotalLight","cAmbientColor"); + fragmentLinker.name_125(dirMulShadowProcedure,"tTotalLight","tTotalHighLight"); + } + for(i = 0; i < lightsLength; ) + { + light = lights[i]; + if(light != directional) + { + lightFragmentProcedure = _lightFragmentProcedures[light]; + if(lightFragmentProcedure == null) + { + lightFragmentProcedure = new name_114(); + lightFragmentProcedure.name = "light" + i.toString(); + if(light is DirectionalLight) + { + this.method_76(lightFragmentProcedure,light,false); + lightFragmentProcedure.name += "Directional"; + } + else if(light is OmniLight) + { + lightFragmentProcedure.name_140(["#c0=c" + light.alternativa3d::name_138 + "Position","#c1=c" + light.alternativa3d::name_138 + "Color","#c2=c" + light.alternativa3d::name_138 + "Radius","#v0=vPosition","sub t0, c0, v0","dp3 t0.w, t0.xyz, t0.xyz","nrm t0.xyz, t0.xyz","add t1.xyz, i1.xyz, t0.xyz","mov t1.w, c0.w","nrm t1.xyz, t1.xyz","dp3 t1.w, t1.xyz, i0.xyz","pow t1.w, t1.w, o1.w","sqt t1.x, t0.w","dp3 t0.w, t0.xyz, i0.xyz","sub t0.x, t1.x, c2.z","div t0.y, t0.x, c2.y","sub t0.x, c2.x, t0.y","sat t0.xw, t0.xw","mul t0.xyz, c1.xyz, t0.xxx","mul t1.xyz, t0.xyz, t1.w","add o1.xyz, o1.xyz, t1.xyz","mul t0.xyz, t0.xyz, t0.www","add o0.xyz, o0.xyz, t0.xyz"]); + lightFragmentProcedure.name += "Omni"; + } + else if(light is SpotLight) + { + lightFragmentProcedure.name_140(["#c0=c" + light.alternativa3d::name_138 + "Position","#c1=c" + light.alternativa3d::name_138 + "Color","#c2=c" + light.alternativa3d::name_138 + "Radius","#c3=c" + light.alternativa3d::name_138 + "Axis","#v0=vPosition","sub t0, c0, v0","dp3 t0.w, t0, t0","nrm t0.xyz,t0.xyz","add t2.xyz, i1.xyz, t0.xyz","nrm t2.xyz, t2.xyz","dp3 t2.x, t2.xyz, i0.xyz","pow t2.x, t2.x, o1.w","dp3 t1.x, t0.xyz, c3.xyz","dp3 t0.x, t0, i0.xyz","sqt t0.w, t0.w","sub t0.w, t0.w, c2.y","div t0.y, t0.w, c2.x","sub t0.w, c0.w, t0.y","sub t0.y, t1.x, c2.w","div t0.y, t0.y, c2.z","sat t0.xyw,t0.xyw","mul t1.xyz,c1.xyz,t0.yyy","mul t1.xyz,t1.xyz,t0.www","mul t2.xyz, t2.x, t1.xyz","add o1.xyz, o1.xyz, t2.xyz","mul t1.xyz, t1.xyz, t0.xxx","add o0.xyz, o0.xyz, t1.xyz"]); + lightFragmentProcedure.name += "Spot"; + } + } + fragmentLinker.name_123(lightFragmentProcedure); + fragmentLinker.name_118(lightFragmentProcedure,"tNormal","tViewVector"); + fragmentLinker.name_125(lightFragmentProcedure,"tTotalLight","tTotalHighLight"); + } + i++; + } + } + if(this.specularMap != null) + { + fragmentLinker.name_123(_applySpecularProcedure); + fragmentLinker.name_125(_applySpecularProcedure,"tTotalHighLight"); + outputProcedure = _applySpecularProcedure; + } + fragmentLinker.name_120("outColor"); + fragmentLinker.name_123(_mulLightingProcedure); + fragmentLinker.name_118(_mulLightingProcedure,"tTotalLight","tTotalHighLight"); + fragmentLinker.name_125(_mulLightingProcedure,"outColor"); + if(var_21) + { + fragmentLinker.name_123(this.alternativa3d::outputDiffuseAlpha); + fragmentLinker.name_118(this.alternativa3d::outputDiffuseAlpha,"outColor"); + outputProcedure = this.alternativa3d::outputDiffuseAlpha; + } + else if(opacityMap != null) + { + fragmentLinker.name_123(this.alternativa3d::outputOpacity); + fragmentLinker.name_118(this.alternativa3d::outputOpacity,"outColor"); + outputProcedure = this.alternativa3d::outputOpacity; + } + else + { + fragmentLinker.name_123(this.alternativa3d::outputAlpha); + fragmentLinker.name_118(this.alternativa3d::outputAlpha,"outColor"); + outputProcedure = this.alternativa3d::outputAlpha; + } + if(alternativa3d::fogMode == alternativa3d::SIMPLE || alternativa3d::fogMode == alternativa3d::ADVANCED) + { + fragmentLinker.name_125(outputProcedure,"outColor"); + } + if(alternativa3d::fogMode == alternativa3d::SIMPLE) + { + vertexLinker.name_123(passSimpleFogConstProcedure); + vertexLinker.name_118(passSimpleFogConstProcedure,positionVar); + fragmentLinker.name_123(outputWithSimpleFogProcedure); + fragmentLinker.name_118(outputWithSimpleFogProcedure,"outColor"); + } + else if(alternativa3d::fogMode == alternativa3d::ADVANCED) + { + vertexLinker.name_120("tProjected"); + vertexLinker.name_125(alternativa3d::_projectProcedure,"tProjected"); + vertexLinker.name_123(postPassAdvancedFogConstProcedure); + vertexLinker.name_118(postPassAdvancedFogConstProcedure,positionVar,"tProjected"); + fragmentLinker.name_123(outputWithAdvancedFogProcedure); + fragmentLinker.name_118(outputWithAdvancedFogProcedure,"outColor"); + } + fragmentLinker.name_133(vertexLinker); + return new name_127(vertexLinker,fragmentLinker); + } + + private function method_76(procedure:name_114, light:name_116, useShadow:Boolean) : void + { + var source:Array = ["#c0=c" + light.alternativa3d::name_138 + "Direction","#c1=c" + light.alternativa3d::name_138 + "Color","add t0.xyz, i1.xyz, c0.xyz","mov t0.w, c0.w","nrm t0.xyz,t0.xyz","dp3 t0.w, t0.xyz, i0.xyz","pow t0.w, t0.w, o1.w","dp3 t0.x, i0.xyz, c0.xyz","sat t0.x, t0.x"]; + if(useShadow) + { + source.push("mul t0.x, t0.x, i2.x"); + source.push("mul t0.xyz, c1.xyz, t0.xxx"); + source.push("mov o0.xyz, t0.xyz"); + source.push("add o0.xyz, o0.xyz, i3.xyz"); + source.push("mul t0.w, i2.x, t0.w"); + source.push("mul o1.xyz, c1.xyz, t0.www"); + } + else + { + source.push("mul t0.xyz, c1.xyz, t0.xxxx"); + source.push("add o0, o0, t0.xyz"); + source.push("mul t0.xyz, c1.xyz, t0.w"); + source.push("add o1.xyz, o1.xyz, t0.xyz"); + } + procedure.name_140(source); + } + + override alternativa3d function fillResources(resources:Dictionary, resourceType:Class) : void + { + super.alternativa3d::fillResources(resources,resourceType); + if(this.normalMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.normalMap)) as Class,resourceType))) + { + resources[this.normalMap] = true; + } + if(opacityMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(opacityMap)) as Class,resourceType))) + { + resources[opacityMap] = true; + } + if(this.glossinessMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.glossinessMap)) as Class,resourceType))) + { + resources[this.glossinessMap] = true; + } + if(this.specularMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.specularMap)) as Class,resourceType))) + { + resources[this.specularMap] = true; + } + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + var program:name_127 = null; + var i:int = 0; + var light:name_116 = null; + var directional:DirectionalLight = null; + var camTransform:name_139 = null; + var transform:name_139 = null; + var rScale:Number = NaN; + var len:Number = NaN; + var omni:OmniLight = null; + var spot:SpotLight = null; + var falloff:Number = NaN; + var hotspot:Number = NaN; + var lm:name_139 = null; + var dist:Number = NaN; + var cLocal:name_139 = null; + var halfW:Number = NaN; + var leftX:Number = NaN; + var leftY:Number = NaN; + var rightX:Number = NaN; + var rightY:Number = NaN; + var angle:Number = NaN; + var dx:Number = NaN; + var dy:Number = NaN; + var lens:Number = NaN; + var uScale:Number = NaN; + var uRight:Number = NaN; + var bmd:BitmapData = null; + if(diffuseMap == null || this.normalMap == null || diffuseMap.alternativa3d::_texture == null || this.normalMap.alternativa3d::_texture == null) + { + return; + } + if(!var_21 && opacityMap != null && opacityMap.alternativa3d::_texture == null) + { + return; + } + if(this.glossinessMap != null && this.glossinessMap.alternativa3d::_texture == null) + { + return; + } + if(this.specularMap != null && this.specularMap.alternativa3d::_texture == null) + { + return; + } + var object:name_78 = surface.alternativa3d::object; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + var normalsBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.NORMAL); + var tangentsBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TANGENT4); + if(positionBuffer == null || uvBuffer == null) + { + return; + } + var key:String = alternativa3d::fogMode.toString() + this.var_53.toString() + (this.glossinessMap != null ? "G" : "g") + (opacityMap != null ? "O" : "o") + (this.specularMap != null ? "S" : "s") + (var_21 ? "D" : "d"); + for(i = 0; i < lightsLength; i++) + { + light = lights[i]; + if(light is DirectionalLight && directional == null && DirectionalLight(light).shadow != null) + { + directional = DirectionalLight(light); + key += "S"; + } + key += light.alternativa3d::name_138; + } + var programs:Dictionary = _programs[object.alternativa3d::transformProcedure]; + if(programs == null) + { + programs = new Dictionary(false); + _programs[object.alternativa3d::transformProcedure] = programs; + program = this.method_75(object,lights,directional,lightsLength); + program.upload(camera.alternativa3d::context3D); + programs[key] = program; + } + else + { + program = programs[key]; + if(program == null) + { + program = this.method_75(object,lights,directional,lightsLength); + program.upload(camera.alternativa3d::context3D); + programs[key] = program; + } + } + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aPosition"),positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aUV"),uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.vertexShader.getVariableIndex("cProjMatrix"),object.alternativa3d::localToCameraTransform); + drawUnit.alternativa3d::name_205(program.fragmentShader.getVariableIndex("cAmbientColor"),camera.alternativa3d::ambient,1); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cSurface"),0,this.glossiness,this.var_25,alpha); + if(lightsLength > 0) + { + if(this.var_53 == name_204.TANGENT_RIGHT_HANDED || this.var_53 == name_204.TANGENT_LEFT_HANDED) + { + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aNormal"),normalsBuffer,geometry.alternativa3d::_attributesOffsets[name_126.NORMAL],name_126.alternativa3d::FORMATS[name_126.NORMAL]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aTangent"),tangentsBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TANGENT4],name_126.alternativa3d::FORMATS[name_126.TANGENT4]); + } + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sBump"),this.normalMap.alternativa3d::_texture); + camTransform = object.alternativa3d::cameraToLocalTransform; + drawUnit.alternativa3d::name_144(program.vertexShader.getVariableIndex("cCameraPosition"),camTransform.d,camTransform.h,camTransform.l); + for(i = 0; i < lightsLength; ) + { + light = lights[i]; + if(light is DirectionalLight) + { + transform = light.alternativa3d::name_141; + len = Number(Math.sqrt(transform.c * transform.c + transform.g * transform.g + transform.k * transform.k)); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Direction"),-transform.c / len,-transform.g / len,-transform.k / len,1); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Color"),light.alternativa3d::red,light.alternativa3d::green,light.alternativa3d::blue); + } + else if(light is OmniLight) + { + omni = light as OmniLight; + transform = light.alternativa3d::name_141; + rScale = Number(Math.sqrt(transform.a * transform.a + transform.e * transform.e + transform.i * transform.i)); + rScale += Math.sqrt(transform.b * transform.b + transform.f * transform.f + transform.j * transform.j); + rScale += Math.sqrt(transform.c * transform.c + transform.g * transform.g + transform.k * transform.k); + rScale /= 3; + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Position"),transform.d,transform.h,transform.l); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Radius"),1,omni.attenuationEnd * rScale - omni.attenuationBegin * rScale,omni.attenuationBegin * rScale); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Color"),light.alternativa3d::red,light.alternativa3d::green,light.alternativa3d::blue); + } + else if(light is SpotLight) + { + spot = light as SpotLight; + transform = light.alternativa3d::name_141; + rScale = Number(Math.sqrt(transform.a * transform.a + transform.e * transform.e + transform.i * transform.i)); + rScale += Math.sqrt(transform.b * transform.b + transform.f * transform.f + transform.j * transform.j); + rScale += len = Number(Math.sqrt(transform.c * transform.c + transform.g * transform.g + transform.k * transform.k)); + rScale /= 3; + falloff = Number(Math.cos(spot.falloff * 0.5)); + hotspot = Number(Math.cos(spot.hotspot * 0.5)); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Position"),transform.d,transform.h,transform.l); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Axis"),-transform.c / len,-transform.g / len,-transform.k / len); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Radius"),spot.attenuationEnd * rScale - spot.attenuationBegin * rScale,spot.attenuationBegin * rScale,hotspot == falloff ? 0.000001 : hotspot - falloff,falloff); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("c" + light.alternativa3d::name_138 + "Color"),light.alternativa3d::red,light.alternativa3d::green,light.alternativa3d::blue); + } + if(directional != null) + { + directional.shadow.applyShader(drawUnit,program,object,camera); + } + i++; + } + } + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sTexture"),diffuseMap.alternativa3d::_texture); + if(!var_21 && opacityMap != null) + { + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sOpacity"),opacityMap.alternativa3d::_texture); + } + if(this.glossinessMap != null) + { + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sGlossiness"),this.glossinessMap.alternativa3d::_texture); + } + if(this.specularMap != null) + { + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sSpecular"),this.specularMap.alternativa3d::_texture); + } + this.alternativa3d::setPassUVProcedureConstants(drawUnit,program.vertexShader); + if(alternativa3d::fogMode == alternativa3d::SIMPLE || alternativa3d::fogMode == alternativa3d::ADVANCED) + { + lm = object.alternativa3d::localToCameraTransform; + dist = alternativa3d::fogFar - alternativa3d::fogNear; + drawUnit.alternativa3d::name_144(program.vertexShader.getVariableIndex("cFogSpace"),lm.i / dist,lm.j / dist,lm.k / dist,(lm.l - alternativa3d::fogNear) / dist); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogRange"),alternativa3d::fogMaxDensity,1,0,1 - alternativa3d::fogMaxDensity); + } + if(alternativa3d::fogMode == alternativa3d::SIMPLE) + { + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogColor"),alternativa3d::fogColorR,alternativa3d::fogColorG,alternativa3d::fogColorB); + } + if(alternativa3d::fogMode == alternativa3d::ADVANCED) + { + if(alternativa3d::fogTexture == null) + { + bmd = new BitmapData(32,1,false,16711680); + for(i = 0; i < 32; i++) + { + bmd.setPixel(i,0,i / 32 * 255 << 16); + } + alternativa3d::fogTexture = new name_93(bmd); + alternativa3d::fogTexture.upload(camera.alternativa3d::context3D); + } + cLocal = camera.alternativa3d::localToGlobalTransform; + halfW = camera.view.width / 2; + leftX = -halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + leftY = -halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + rightX = halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + rightY = halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + angle = Math.atan2(leftY,leftX) - Math.PI / 2; + if(angle < 0) + { + angle += Math.PI * 2; + } + dx = rightX - leftX; + dy = rightY - leftY; + lens = Number(Math.sqrt(dx * dx + dy * dy)); + leftX /= lens; + leftY /= lens; + rightX /= lens; + rightY /= lens; + uScale = Math.acos(leftX * rightX + leftY * rightY) / Math.PI / 2; + uRight = angle / Math.PI / 2; + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogConsts"),0.5 * uScale,0.5 - uRight,0); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sFogTexture"),alternativa3d::fogTexture.alternativa3d::_texture); + } + if(this.alternativa3d::var_54) + { + if(drawUnit.alternativa3d::object == null) + { + throw new Error(""); + } + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.OPAQUE); + } + else if(var_21 || opacityMap != null || alpha < 1) + { + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.SOURCE_ALPHA; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.TRANSPARENT_SORT); + } + else + { + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.OPAQUE); + } + } + } +} + diff --git a/src/package_4/name_11.as b/src/package_4/name_11.as new file mode 100644 index 0000000..56c09b4 --- /dev/null +++ b/src/package_4/name_11.as @@ -0,0 +1,17 @@ +package package_4 +{ + public class name_11 + { + public static const DISABLED:int = 0; + + public static const SIMPLE:int = 1; + + public static const ADVANCED:int = 2; + + public function name_11() + { + super(); + } + } +} + diff --git a/src/package_4/name_127.as b/src/package_4/name_127.as new file mode 100644 index 0000000..f78ce32 --- /dev/null +++ b/src/package_4/name_127.as @@ -0,0 +1,57 @@ +package package_4 +{ + import flash.display3D.Context3D; + import flash.display3D.Program3D; + import package_30.name_121; + + public class name_127 + { + public var program:Program3D; + + public var vertexShader:name_121; + + public var fragmentShader:name_121; + + public function name_127(vertexShader:name_121, fragmentShader:name_121) + { + super(); + this.vertexShader = vertexShader; + this.fragmentShader = fragmentShader; + } + + public function upload(context3D:Context3D) : void + { + if(this.program != null) + { + this.program.dispose(); + } + if(this.vertexShader != null && this.fragmentShader != null) + { + this.program = context3D.createProgram(); + try + { + this.program.upload(this.vertexShader.name_206(),this.fragmentShader.name_206()); + } + catch(e:Error) + { + trace(name_28.method_98(fragmentShader.name_206())); + throw e; + } + } + else + { + this.program = null; + } + } + + public function dispose() : void + { + if(this.program != null) + { + this.program.dispose(); + this.program = null; + } + } + } +} + diff --git a/src/package_4/name_204.as b/src/package_4/name_204.as new file mode 100644 index 0000000..3b448b6 --- /dev/null +++ b/src/package_4/name_204.as @@ -0,0 +1,17 @@ +package package_4 +{ + public class name_204 + { + public static const TANGENT_RIGHT_HANDED:int = 0; + + public static const TANGENT_LEFT_HANDED:int = 1; + + public static const OBJECT:int = 2; + + public function name_204() + { + super(); + } + } +} + diff --git a/src/package_4/name_28.as b/src/package_4/name_28.as new file mode 100644 index 0000000..279b120 --- /dev/null +++ b/src/package_4/name_28.as @@ -0,0 +1,387 @@ +package package_4 +{ + import alternativa.engine3d.alternativa3d; + import avmplus.getQualifiedSuperclassName; + import flash.display3D.Context3D; + import flash.display3D.Context3DTextureFormat; + import flash.display3D.IndexBuffer3D; + import flash.display3D.VertexBuffer3D; + import flash.display3D.textures.Texture; + import flash.geom.Point; + import flash.utils.ByteArray; + import flash.utils.Dictionary; + import flash.utils.Endian; + import flash.utils.getDefinitionByName; + import package_30.name_115; + import package_30.name_168; + + use namespace alternativa3d; + + public class name_28 + { + private static var twoOperandsCommands:Dictionary; + + private static const DXT1:ByteArray = method_88(); + + private static const PVRTC:ByteArray = method_91(); + + private static const ETC1:ByteArray = method_87(); + + private static var programType:Vector. = Vector.(["VERTEX","FRAGMENT"]); + + private static var samplerDimension:Vector. = Vector.(["2D","cube","3D"]); + + private static var samplerWraping:Vector. = Vector.(["clamp","repeat"]); + + private static var samplerMipmap:Vector. = Vector.(["mipnone","mipnearest","miplinear"]); + + private static var samplerFilter:Vector. = Vector.(["nearest","linear"]); + + private static var swizzleType:Vector. = Vector.(["x","y","z","w"]); + + private static const O_CODE:uint = "o".charCodeAt(0); + + public function name_28() + { + super(); + } + + private static function method_88() : ByteArray + { + var DXT1Data:Vector. = Vector.([65,84,70,0,2,71,2,2,2,3,0,0,12,0,0,0,16,0,0,85,105,56,0,0,0,0,0,157,73,73,188,1,8,0,0,0,5,0,1,188,1,0,16,0,0,0,74,0,0,0,128,188,4,0,1,0,0,0,1,0,0,0,129,188,4,0,1,0,0,0,2,0,0,0,192,188,4,0,1,0,0,0,90,0,0,0,193,188,4,0,1,0,0,0,66,0,0,0,0,0,0,0,36,195,221,111,3,78,254,75,177,133,61,119,118,141,201,10,87,77,80,72,79,84,79,0,25,0,192,122,0,0,0,1,96,0,160,0,10,0,0,160,0,0,0,4,111,255,0,1,0,0,1,0,224,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,16,0,0,85,105,56,0,0,0,0,0,157,73,73,188,1,8,0,0,0,5,0,1,188,1,0,16,0,0,0,74,0,0,0,128,188,4,0,1,0,0,0,1,0,0,0,129,188,4,0,1,0,0,0,2,0,0,0,192,188,4,0,1,0,0,0,90,0,0,0,193,188,4,0,1,0,0,0,66,0,0,0,0,0,0,0,36,195,221,111,3,78,254,75,177,133,61,119,118,141,201,10,87,77,80,72,79,84,79,0,25,0,192,122,0,0,0,1,96,0,160,0,10,0,0,160,0,0,0,4,111,255,0,1,0,0,1,0,224,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,114,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,12,0,0,0,16,0,0,85,105,56,0,0,0,0,0,157,73,73,188,1,8,0,0,0,5,0,1,188,1,0,16,0,0,0,74,0,0,0,128,188,4,0,1,0,0,0,1,0,0,0,129,188,4,0,1,0,0,0,2,0,0,0,192,188,4,0,1,0,0,0,90,0,0,0,193,188,4,0,1,0,0,0,66,0,0,0,0,0,0,0,36,195,221,111,3,78,254,75,177,133,61,119,118,141,201,10,87,77,80,72,79,84,79,0,25,0,192,122,0,0,0,1,96,0,160,0,10,0,0,160,0,0,0,4,111,255,0,1,0,0,1,0,224,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,114,0,7,143,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]); + return method_84(DXT1Data); + } + + private static function method_87() : ByteArray + { + var ETC1Data:Vector. = Vector.([65,84,70,0,2,104,2,2,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,16,0,0,0,255,252,0,0,0,0,12,0,0,0,16,0,0,127,233,56,0,0,0,0,0,157,73,73,188,1,8,0,0,0,5,0,1,188,1,0,16,0,0,0,74,0,0,0,128,188,4,0,1,0,0,0,1,0,0,0,129,188,4,0,1,0,0,0,2,0,0,0,192,188,4,0,1,0,0,0,90,0,0,0,193,188,4,0,1,0,0,0,66,0,0,0,0,0,0,0,36,195,221,111,3,78,254,75,177,133,61,119,118,141,201,9,87,77,80,72,79,84,79,0,25,0,192,120,0,0,0,1,96,0,160,0,10,0,0,160,0,0,0,4,111,255,0,1,0,0,1,0,208,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,114,0,7,143,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,16,0,0,0,255,252,0,0,0,0,12,0,0,0,16,0,0,127,233,56,0,0,0,0,0,157,73,73,188,1,8,0,0,0,5,0,1,188,1,0,16,0,0,0,74,0,0,0,128,188,4,0,1,0,0,0,1,0,0,0,129,188,4,0,1,0,0,0,2,0,0,0,192,188,4,0,1,0,0,0,90,0,0,0,193,188,4,0,1,0,0,0,66,0,0,0,0,0,0,0,36,195,221,111,3,78,254,75,177,133,61,119,118,141,201,9,87,77,80,72,79,84,79,0,25,0,192,120,0,0,0,1,96,0,160,0,10,0,0,160,0,0,0,4,111,255,0,1,0,0,1,0,208 + ,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,114,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,16,0,0,0,255,252,0,0,0,0,12,0,0,0,16,0,0,127,233,56,0,0,0,0,0,157,73,73,188,1,8,0,0,0,5,0,1,188,1,0,16,0,0,0,74,0,0,0,128,188,4,0,1,0,0,0,1,0,0,0,129,188,4,0,1,0,0,0,2,0,0,0,192,188,4,0,1,0,0,0,90,0,0,0,193,188,4,0,1,0,0,0,66,0,0,0,0,0,0,0,36,195,221,111,3,78,254,75,177,133,61,119,118,141,201,9,87,77,80,72,79,84,79,0,25,0,192,120,0,0,0,1,96,0,160,0,10,0,0,160,0,0,0,4,111,255,0,1,0,0,1,0,208,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,114,0,4,0]); + return method_84(ETC1Data); + } + + private static function method_91() : ByteArray + { + var PVRTCData:Vector. = Vector.([65,84,70,0,2,173,2,2,2,3,0,0,0,0,0,0,0,0,13,0,0,0,16,0,0,0,104,190,153,255,0,0,0,0,15,91,0,0,16,0,0,102,12,228,2,255,225,0,0,0,0,0,223,73,73,188,1,8,0,0,0,5,0,1,188,1,0,16,0,0,0,74,0,0,0,128,188,4,0,1,0,0,0,2,0,0,0,129,188,4,0,1,0,0,0,4,0,0,0,192,188,4,0,1,0,0,0,90,0,0,0,193,188,4,0,1,0,0,0,132,0,0,0,0,0,0,0,36,195,221,111,3,78,254,75,177,133,61,119,118,141,201,9,87,77,80,72,79,84,79,0,25,0,192,120,0,1,0,3,96,0,160,0,10,0,0,160,0,0,0,4,111,255,0,1,0,0,1,0,165,192,0,7,227,99,186,53,197,40,185,134,182,32,130,98,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,192,120,64,6,16,34,52,192,196,65,132,90,98,68,16,17,68,60,91,8,48,76,35,192,97,132,71,76,33,164,97,1,2,194,12,19,8,240,29,132,24,38,17,224,48,194,35,166,16,210,48,128,128,24,68,121,132,52,204,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,16,0,0,0,233,56,90,0,0,0,0,12,0,0,0,16,0,0,127,237,210,0,0,0,0,0,155,73,73,188,1,8,0,0,0,5,0,1,188,1,0,16,0,0,0,74,0,0,0,128,188,4,0,1,0,0,0,2,0,0,0,129,188,4,0 + ,1,0,0,0,4,0,0,0,192,188,4,0,1,0,0,0,90,0,0,0,193,188,4,0,1,0,0,0,64,0,0,0,0,0,0,0,36,195,221,111,3,78,254,75,177,133,61,119,118,141,201,9,87,77,80,72,79,84,79,0,25,0,192,120,0,1,0,3,96,0,160,0,10,0,0,160,0,0,0,4,111,255,0,1,0,0,1,0,188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,16,0,0,0,233,56,90,0,0,0,0,12,0,0,0,16,0,0,127,237,210,0,0,0,0,0,155,73,73,188,1,8,0,0,0,5,0,1,188,1,0,16,0,0,0,74,0,0,0,128,188,4,0,1,0,0,0,2,0,0,0,129,188,4,0,1,0,0,0,4,0,0,0,192,188,4,0,1,0,0,0,90,0,0,0,193,188,4,0,1,0,0,0,64,0,0,0,0,0,0,0,36,195,221,111,3,78,254,75,177,133,61,119,118,141,201,9,87,77,80,72,79,84,79,0,25,0,192,120,0,1,0,3,96,0,160,0,10,0,0,160,0,0,0,4,111,255,0,1,0,0,1,0,188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,200,0,0,0,0,0,0,0,0,0,0]); + return method_84(PVRTCData); + } + + private static function method_84(source:Vector.) : ByteArray + { + var result:ByteArray = new ByteArray(); + for(var i:int = 0,var length:int = int(source.length); i < length; i++) + { + result.writeByte(source[i]); + } + return result; + } + + public static function method_96(byteArray:ByteArray, size:Point) : void + { + byteArray.position = 7; + var w:int = int(byteArray.readByte()); + var h:int = int(byteArray.readByte()); + size.x = 1 << w; + size.y = 1 << h; + byteArray.position = 0; + } + + public static function name_35(context3D:Context3D) : String + { + var testTexture:Texture = context3D.createTexture(4,4,Context3DTextureFormat.COMPRESSED,false); + var result:String = name_6.NONE; + try + { + testTexture.uploadCompressedTextureFromByteArray(DXT1,0); + result = name_6.DXT1; + } + catch(e:Error) + { + result = name_6.NONE; + } + if(result == name_6.NONE) + { + try + { + testTexture.uploadCompressedTextureFromByteArray(PVRTC,0); + result = name_6.PVRTC; + } + catch(e:Error) + { + result = name_6.NONE; + } + } + if(result == name_6.NONE) + { + try + { + testTexture.uploadCompressedTextureFromByteArray(ETC1,0); + result = name_6.ETC1; + } + catch(e:Error) + { + result = name_6.NONE; + } + } + testTexture.dispose(); + return result; + } + + public static function method_92(vector:Vector.) : ByteArray + { + var result:ByteArray = new ByteArray(); + result.endian = Endian.LITTLE_ENDIAN; + for(var i:int = 0; i < vector.length; i++) + { + result.writeFloat(vector[i]); + } + result.position = 0; + return result; + } + + public static function method_99(byteArray:ByteArray) : Vector. + { + var result:Vector. = new Vector.(); + var length:uint = 0; + byteArray.position = 0; + for(byteArray.endian = Endian.LITTLE_ENDIAN; byteArray.bytesAvailable > 0; ) + { + var _loc4_:* = length++; + result[_loc4_] = byteArray.readUnsignedShort(); + } + return result; + } + + public static function method_93(context:Context3D, byteArray:ByteArray, numVertices:uint, stride:uint = 3) : VertexBuffer3D + { + if(context == null) + { + throw new ReferenceError("context is not set"); + } + var buffer:VertexBuffer3D = context.createVertexBuffer(numVertices,stride); + buffer.uploadFromByteArray(byteArray,0,0,numVertices); + return buffer; + } + + public static function method_100(context:Context3D, vector:Vector., numVertices:uint, stride:uint = 3) : VertexBuffer3D + { + if(context == null) + { + throw new ReferenceError("context is not set"); + } + var buffer:VertexBuffer3D = context.createVertexBuffer(numVertices,stride); + var byteArray:ByteArray = name_28.method_92(vector); + buffer.uploadFromByteArray(byteArray,0,0,numVertices); + return buffer; + } + + public static function method_94(context:Context3D, byteArray:ByteArray, width:Number, height:Number, format:String) : Texture + { + if(context == null) + { + throw new ReferenceError("context is not set"); + } + var texture:Texture = context.createTexture(width,height,format,false); + texture.uploadCompressedTextureFromByteArray(byteArray,0); + return texture; + } + + public static function method_97(context:Context3D, byteArray:ByteArray, numIndices:uint) : IndexBuffer3D + { + if(context == null) + { + throw new ReferenceError("context is not set"); + } + var buffer:IndexBuffer3D = context.createIndexBuffer(numIndices); + buffer.uploadFromByteArray(byteArray,0,0,numIndices); + return buffer; + } + + public static function method_95(context:Context3D, vector:Vector., numIndices:int = -1) : IndexBuffer3D + { + if(context == null) + { + throw new ReferenceError("context is not set"); + } + var count:uint = numIndices > 0 ? uint(numIndices) : uint(vector.length); + var buffer:IndexBuffer3D = context.createIndexBuffer(count); + buffer.uploadFromVector(vector,0,count); + var byteArray:ByteArray = new ByteArray(); + byteArray.endian = Endian.LITTLE_ENDIAN; + for(var i:int = 0; i < count; i++) + { + byteArray.writeInt(vector[i]); + } + byteArray.position = 0; + buffer.uploadFromVector(vector,0,count); + return buffer; + } + + public static function method_98(byteCode:ByteArray) : String + { + if(!twoOperandsCommands) + { + twoOperandsCommands = new Dictionary(); + twoOperandsCommands[1] = true; + twoOperandsCommands[2] = true; + twoOperandsCommands[3] = true; + twoOperandsCommands[4] = true; + twoOperandsCommands[6] = true; + twoOperandsCommands[11] = true; + twoOperandsCommands[17] = true; + twoOperandsCommands[18] = true; + twoOperandsCommands[19] = true; + twoOperandsCommands[23] = true; + twoOperandsCommands[24] = true; + twoOperandsCommands[25] = true; + twoOperandsCommands[40] = true; + twoOperandsCommands[41] = true; + twoOperandsCommands[42] = true; + } + var res:String = ""; + byteCode.position = 0; + if(byteCode.bytesAvailable < 7) + { + return "error in byteCode header"; + } + res += "magic = " + byteCode.readUnsignedByte().toString(16); + res += "\nversion = " + byteCode.readInt().toString(10); + res += "\nshadertypeid = " + byteCode.readUnsignedByte().toString(16); + var pType:String = programType[byteCode.readByte()]; + res += "\nshadertype = " + pType; + res += "\nsource\n"; + pType = pType.substring(0,1).toLowerCase(); + for(var lineNumber:uint = 1; byteCode.bytesAvailable - 24 >= 0; ) + { + res += (lineNumber++).toString() + ": " + method_90(byteCode,pType) + "\n"; + } + if(byteCode.bytesAvailable > 0) + { + res += "\nunexpected byteCode length. extra bytes:" + byteCode.bytesAvailable; + } + return res; + } + + private static function method_90(byteCode:ByteArray, programType:String) : String + { + var result:String = null; + var cmd:uint = uint(byteCode.readUnsignedInt()); + var command:String = name_168.COMMAND_NAMES[cmd]; + var destNumber:uint = uint(byteCode.readUnsignedShort()); + var swizzle:uint = uint(byteCode.readByte()); + var s:String = ""; + var destSwizzle:uint = 0; + if(swizzle < 15) + { + s += "."; + s += (swizzle & 1) > 0 ? "x" : ""; + s += (swizzle & 2) > 0 ? "y" : ""; + s += (swizzle & 4) > 0 ? "z" : ""; + s += (swizzle & 8) > 0 ? "w" : ""; + destSwizzle = uint(s.length); + } + var destType:String = name_115.TYPE_NAMES[byteCode.readUnsignedByte()].charAt(0); + if(destType.charCodeAt(0) == O_CODE) + { + result = command + " " + method_83(destType,programType) + s + ", "; + } + else + { + result = command + " " + method_83(destType,programType) + destNumber.toString() + s + ", "; + } + result += method_83(method_85(byteCode,destSwizzle),programType); + if(Boolean(twoOperandsCommands[cmd])) + { + if(cmd == 40) + { + result += ", " + method_83(method_86(byteCode),programType); + } + else + { + result += ", " + method_83(method_85(byteCode,destSwizzle),programType); + } + } + else + { + byteCode.readDouble(); + } + return result; + } + + private static function method_83(variable:String, programType:String) : String + { + var char:uint = uint(variable.charCodeAt(0)); + if(char == "o".charCodeAt(0)) + { + return variable + (programType == "f" ? "c" : "p"); + } + if(char != "v".charCodeAt(0)) + { + return programType + variable; + } + return variable; + } + + private static function method_86(byteCode:ByteArray) : String + { + var number:uint = uint(byteCode.readUnsignedInt()); + byteCode.readByte(); + var dim:uint = uint(byteCode.readByte() >> 4); + var wraping:uint = uint(byteCode.readByte() >> 4); + var n:uint = uint(byteCode.readByte()); + return "s" + number.toString() + " <" + samplerDimension[dim] + ", " + samplerWraping[wraping] + ", " + samplerFilter[n >> 4 & 0x0F] + ", " + samplerMipmap[n & 0x0F] + ">"; + } + + private static function method_85(byteCode:ByteArray, destSwizzle:uint) : String + { + var s1Number:uint = uint(byteCode.readUnsignedShort()); + var offset:uint = uint(byteCode.readUnsignedByte()); + var s:String = method_89(byteCode.readUnsignedByte(),destSwizzle); + var s1Type:String = name_115.TYPE_NAMES[byteCode.readUnsignedByte()].charAt(0); + var indexType:String = name_115.TYPE_NAMES[byteCode.readUnsignedByte()].charAt(0); + var comp:String = swizzleType[byteCode.readUnsignedByte()]; + if(byteCode.readUnsignedByte() > 0) + { + return s1Type + "[" + indexType + s1Number.toString() + "." + comp + (offset > 0 ? "+" + offset.toString() : "") + "]" + s; + } + return s1Type + s1Number.toString() + s; + } + + private static function method_89(swizzle:uint, destSwizzle:uint) : String + { + var s:String = ""; + if(swizzle != 228) + { + s += "."; + s += swizzleType[swizzle & 3]; + s += swizzleType[swizzle >> 2 & 3]; + s += swizzleType[swizzle >> 4 & 3]; + s += swizzleType[swizzle >> 6 & 3]; + s = s.substring(0,destSwizzle > 0 ? destSwizzle : Number(s.length)); + } + return s; + } + + alternativa3d static function name_131(child:Class, parent:Class) : Boolean + { + var className:String = null; + var current:Class = child; + if(parent == null) + { + return true; + } + while(current != parent) + { + className = getQualifiedSuperclassName(current); + if(className == null) + { + return false; + } + current = getDefinitionByName(className) as Class; + } + return true; + } + } +} + diff --git a/src/package_4/name_313.as b/src/package_4/name_313.as new file mode 100644 index 0000000..3b42244 --- /dev/null +++ b/src/package_4/name_313.as @@ -0,0 +1,113 @@ +package package_4 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DProgramType; + import flash.display3D.VertexBuffer3D; + import flash.utils.Dictionary; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_78; + import package_28.name_119; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + + use namespace alternativa3d; + + public class name_313 extends class_4 + { + private static var outColorProcedure:name_114 = new name_114(["#c0=cColor","mov o0, c0"],"outColorProcedure"); + + private static var _programs:Dictionary = new Dictionary(); + + public var alpha:Number = 1; + + private var red:Number; + + private var green:Number; + + private var blue:Number; + + public function name_313(color:uint = 8355711, alpha:Number = 1) + { + super(); + this.color = color; + this.alpha = alpha; + alternativa3d::priority = 1; + } + + public function get color() : uint + { + return (this.red * 255 << 16) + (this.green * 255 << 8) + this.blue * 255; + } + + public function set color(value:uint) : void + { + this.red = (value >> 16 & 0xFF) / 255; + this.green = (value >> 8 & 0xFF) / 255; + this.blue = (value & 0xFF) / 255; + } + + private function method_75(object:name_78) : name_127 + { + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var positionVar:String = "aPosition"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + if(object.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(object.alternativa3d::transformProcedure,vertexLinker); + } + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + fragmentLinker.name_123(outColorProcedure); + fragmentLinker.name_133(vertexLinker); + return new name_127(vertexLinker,fragmentLinker); + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + var object:name_78 = surface.alternativa3d::object; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + if(positionBuffer == null) + { + return; + } + var program:name_127 = _programs[object.alternativa3d::transformProcedure]; + if(program == null) + { + program = this.method_75(object); + program.upload(camera.alternativa3d::context3D); + _programs[object.alternativa3d::transformProcedure] = program; + } + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aPosition"),positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.vertexShader.getVariableIndex("cProjMatrix"),object.alternativa3d::localToCameraTransform); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cColor"),this.red,this.green,this.blue,this.alpha); + if(this.alpha < 1) + { + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.SOURCE_ALPHA; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.TRANSPARENT_SORT); + } + else + { + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.OPAQUE); + } + } + + override public function clone() : class_4 + { + var res:name_313 = new name_313(this.color,this.alpha); + res.clonePropertiesFrom(this); + return res; + } + } +} + diff --git a/src/package_4/name_6.as b/src/package_4/name_6.as new file mode 100644 index 0000000..f311c54 --- /dev/null +++ b/src/package_4/name_6.as @@ -0,0 +1,19 @@ +package package_4 +{ + public class name_6 + { + public static const NONE:String = "atf_none"; + + public static const DXT1:String = "atf_dxt1"; + + public static const ETC1:String = "atf_etc1"; + + public static const PVRTC:String = "atf_pvrtc"; + + public function name_6() + { + super(); + } + } +} + diff --git a/src/package_4/name_643.as b/src/package_4/name_643.as new file mode 100644 index 0000000..ccacbaa --- /dev/null +++ b/src/package_4/name_643.as @@ -0,0 +1,485 @@ +package package_4 +{ + import alternativa.engine3d.alternativa3d; + import avmplus.getQualifiedClassName; + import flash.display.BitmapData; + import flash.display3D.Context3DBlendFactor; + import flash.display3D.Context3DProgramType; + import flash.display3D.VertexBuffer3D; + import flash.utils.Dictionary; + import flash.utils.getDefinitionByName; + import package_19.name_117; + import package_21.name_116; + import package_21.name_124; + import package_21.name_126; + import package_21.name_128; + import package_21.name_135; + import package_21.name_139; + import package_21.name_78; + import package_28.name_119; + import package_28.name_129; + import package_28.name_93; + import package_30.name_114; + import package_30.name_115; + import package_30.name_121; + + use namespace alternativa3d; + + public class name_643 extends class_5 + { + alternativa3d static var fogTexture:name_129; + + private static var _programs:Dictionary = new Dictionary(); + + alternativa3d static const DISABLED:int = 0; + + alternativa3d static const SIMPLE:int = 1; + + alternativa3d static const ADVANCED:int = 2; + + alternativa3d static var fogMode:int = alternativa3d::DISABLED; + + alternativa3d static var fogNear:Number = 1000; + + alternativa3d static var fogFar:Number = 5000; + + alternativa3d static var fogMaxDensity:Number = 1; + + alternativa3d static var fogColorR:Number = 200 / 255; + + alternativa3d static var fogColorG:Number = 162 / 255; + + alternativa3d static var fogColorB:Number = 200 / 255; + + alternativa3d static const _passReflectionProcedure:name_114 = new name_114(["#v1=vNormal","#v0=vPosition","mov v0, i0","mov v1, i1"],"passReflectionProcedure"); + + alternativa3d static const _applyReflectionProcedure:name_114 = new name_114(["#v1=vNormal","#v0=vPosition","#s0=sCubeMap","#c0=cCamera","sub t0, v0, c0","dp3 t1.x, v1, t0","add t1.x, t1.x, t1.x","mul t1, v1, t1.x","sub t1, t0, t1","nrm t1.xyz, t1.xyz","tex o0, t1, s0 "],"applyReflectionProcedure"); + + alternativa3d static const _applyReflectionNormalMapProcedure:name_114 = new name_114(["#s0=sCubeMap","#c0=cCamera","#v0=vPosition","sub t0, v0, c0","dp3 t1.x, i0.xyz, t0","add t1.x, t1.x, t1.x","mul t1, i0.xyz, t1.x","sub t1, t0, t1","nrm t1.xyz, t1.xyz","tex o0, t1, s0 "],"applyReflectionNormalMapProcedure"); + + alternativa3d static const _blendReflection:name_114 = new name_114(["#c0=cAlpha","mul t1, i0, c0.y","mul t0.xyz, i1, c0.z","add t0.xyz, t1, t0","mov t0.w, i0.w","mov o0, t0"],"blendReflection"); + + alternativa3d static const _blendReflectionMap:name_114 = new name_114(["#c0=cCamera","#c1=cAlpha","#s0=sReflection","#v0=vUV","tex t0, v0, s0 <2d,repeat,linear,miplinear>","mul t0, t0, c1.z","mul t1.xyz, i1, t0","sub t0, c0.www, t0","mul t2, i0, t0","add t0.xyz, t1, t2","mov t0.w, i0.w","mov o0, t0"],"blendReflectionMap"); + + private static const _passTBNRightProcedure:name_114 = method_123(true); + + private static const _passTBNLeftProcedure:name_114 = method_123(false); + + private static const _getNormalTangentProcedure:name_114 = new name_114(["#v0=vTangent","#v1=vBinormal","#v2=vNormal","#v3=vUV","#c0=cCamera","#s0=sBump","tex t0, v3, s0 <2d,repeat,linear,miplinear>","add t0, t0, t0","sub t0.xyz, t0.xyz, c0.www","nrm t1.xyz, v0.xyz","dp3 o0.x, t0.xyz, t1.xyz","nrm t1.xyz, v1.xyz","dp3 o0.y, t0.xyz, t1.xyz","nrm t1.xyz, v2.xyz","dp3 o0.z, t0.xyz, t1.xyz","nrm o0.xyz, o0.xyz"],"getNormalTangentProcedure"); + + private static const _getNormalObjectProcedure:name_114 = new name_114(["#v3=vUV","#c0=cCamera","#s0=sBump","tex t0, v3, s0 <2d,repeat,linear,miplinear>","add t0, t0, t0","sub t0.xyz, t0.xyz, c0.www","nrm o0.xyz, t0.xyz"],"getNormalObjectProcedure"); + + private static const passSimpleFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z"],"passSimpleFogConst"); + + private static const outputWithSimpleFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogColor","#c1=cFogRange","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul i0.xyz, i0.xyz, t0.y","mul t0.xyz, c0.xyz, t0.x","add i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"outputWithSimpleFog"); + + private static const postPassAdvancedFogConstProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogSpace","dp4 t0.z, i0, c0","mov v0, t0.zzzz","sub v0.y, i0.w, t0.z","mov v0.zw, i1.xwxw","mov o0, i1"],"postPassAdvancedFogConst"); + + private static const outputWithAdvancedFogProcedure:name_114 = new name_114(["#v0=vZDistance","#c0=cFogConsts","#c1=cFogRange","#s0=sFogTexture","min t0.xy, v0.xy, c1.xy","max t0.xy, t0.xy, c1.zw","mul i0.xyz, i0.xyz, t0.y","mov t1.xyzw, c0.yyzw","div t0.z, v0.z, v0.w","mul t0.z, t0.z, c0.x","add t1.x, t1.x, t0.z","tex t1, t1, s0 <2d, repeat, linear, miplinear>","mul t0.xyz, t1.xyz, t0.x","add i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"outputWithAdvancedFog"); + + private static const _applyLightMapProcedure:name_114 = new name_114(["#v0=vUV1","#s0=sLightMap","tex t0, v0, s0 <2d,repeat,linear,mipnone>","add t0, t0, t0","mul i0.xyz, i0.xyz, t0.xyz","mov o0, i0"],"applyLightMapProcedure"); + + private static const _passLightMapUVProcedure:name_114 = new name_114(["#a0=aUV1","#v0=vUV1","mov v0, a0"],"passLightMapUVProcedure"); + + private var var_53:int = 0; + + public var normalMap:name_129; + + public var environmentMap:name_129; + + public var reflection:Number = 1; + + public var reflectionMap:name_129; + + public var lightMap:name_129; + + public var lightMapChannel:uint = 1; + + public function name_643(diffuseMap:name_129 = null, environmentMap:name_129 = null, normalMap:name_129 = null, reflectionMap:name_129 = null, lightMap:name_129 = null, opacityMap:name_129 = null, alpha:Number = 1) + { + super(diffuseMap,opacityMap,alpha); + this.environmentMap = environmentMap; + this.normalMap = normalMap; + this.reflectionMap = reflectionMap; + this.lightMap = lightMap; + } + + private static function method_123(right:Boolean) : name_114 + { + var crsInSpace:String = right ? "crs t1.xyz, i0, i1" : "crs t1.xyz, i1, i0"; + return new name_114(["#v0=vTangent","#v1=vBinormal","#v2=vNormal",crsInSpace,"mul t1.xyz, t1.xyz, i0.w","mov v0.x, i0.x","mov v0.y, t1.x","mov v0.z, i1.x","mov v0.w, i1.w","mov v1.x, i0.y","mov v1.y, t1.y","mov v1.z, i1.y","mov v1.w, i1.w","mov v2.x, i0.z","mov v2.y, t1.z","mov v2.z, i1.z","mov v2.w, i1.w"],"passTBNProcedure"); + } + + public function get method_124() : int + { + return this.var_53; + } + + public function set method_124(value:int) : void + { + if(value != name_204.TANGENT_RIGHT_HANDED && value != name_204.TANGENT_LEFT_HANDED && value != name_204.OBJECT) + { + throw new ArgumentError("Value must be a constant from the NormalMapSpace class"); + } + this.var_53 = value; + } + + override alternativa3d function fillResources(resources:Dictionary, resourceType:Class) : void + { + super.alternativa3d::fillResources(resources,resourceType); + if(this.environmentMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.environmentMap)) as Class,resourceType))) + { + resources[this.environmentMap] = true; + } + if(this.normalMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.normalMap)) as Class,resourceType))) + { + resources[this.normalMap] = true; + } + if(this.reflectionMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.reflectionMap)) as Class,resourceType))) + { + resources[this.reflectionMap] = true; + } + if(this.lightMap != null && Boolean(name_28.alternativa3d::name_131(getDefinitionByName(getQualifiedClassName(this.lightMap)) as Class,resourceType))) + { + resources[this.lightMap] = true; + } + } + + private function method_75(targetObject:name_78) : EnvironmentMaterialShaderProgram + { + var procedure:name_114 = null; + var outputProcedure:name_114 = null; + var nrmProcedure:name_114 = null; + var vertexLinker:name_121 = new name_121(Context3DProgramType.VERTEX); + var fragmentLinker:name_121 = new name_121(Context3DProgramType.FRAGMENT); + var positionVar:String = "aPosition"; + var normalVar:String = "aNormal"; + var tangentVar:String = "aTangent"; + vertexLinker.name_120(positionVar,name_115.ATTRIBUTE); + vertexLinker.name_120(normalVar,name_115.ATTRIBUTE); + if(targetObject.alternativa3d::transformProcedure != null) + { + positionVar = alternativa3d::method_74(targetObject.alternativa3d::transformProcedure,vertexLinker); + } + if(targetObject.alternativa3d::deltaTransformProcedure != null) + { + vertexLinker.name_120("tTransformedNormal"); + procedure = targetObject.alternativa3d::deltaTransformProcedure.name_143(); + vertexLinker.name_123(procedure); + vertexLinker.name_118(procedure,normalVar); + vertexLinker.name_125(procedure,"tTransformedNormal"); + normalVar = "tTransformedNormal"; + if((this.var_53 == name_204.TANGENT_RIGHT_HANDED || this.var_53 == name_204.TANGENT_LEFT_HANDED) && this.normalMap != null) + { + vertexLinker.name_120(tangentVar,name_115.ATTRIBUTE); + vertexLinker.name_120("tTransformedTangent"); + procedure = targetObject.alternativa3d::deltaTransformProcedure.name_143(); + vertexLinker.name_123(procedure); + vertexLinker.name_118(procedure,tangentVar); + vertexLinker.name_125(procedure,"tTransformedTangent"); + tangentVar = "tTransformedTangent"; + } + } + else if((this.var_53 == name_204.TANGENT_RIGHT_HANDED || this.var_53 == name_204.TANGENT_LEFT_HANDED) && this.normalMap != null) + { + vertexLinker.name_120(tangentVar,name_115.ATTRIBUTE); + } + vertexLinker.name_123(_passLightMapUVProcedure); + vertexLinker.name_123(alternativa3d::_passReflectionProcedure); + vertexLinker.name_118(alternativa3d::_passReflectionProcedure,positionVar,normalVar); + vertexLinker.name_123(alternativa3d::_projectProcedure); + vertexLinker.name_118(alternativa3d::_projectProcedure,positionVar); + vertexLinker.name_123(alternativa3d::_passUVProcedure); + if(this.normalMap != null) + { + fragmentLinker.name_120("tNormal"); + if(this.var_53 == name_204.TANGENT_RIGHT_HANDED || this.var_53 == name_204.TANGENT_LEFT_HANDED) + { + nrmProcedure = this.var_53 == name_204.TANGENT_RIGHT_HANDED ? _passTBNRightProcedure : _passTBNLeftProcedure; + vertexLinker.name_123(nrmProcedure); + vertexLinker.name_118(nrmProcedure,tangentVar,normalVar); + fragmentLinker.name_123(_getNormalTangentProcedure); + fragmentLinker.name_125(_getNormalTangentProcedure,"tNormal"); + } + else + { + fragmentLinker.name_123(_getNormalObjectProcedure); + fragmentLinker.name_125(_getNormalObjectProcedure,"tNormal"); + } + } + vertexLinker.name_142(); + fragmentLinker.name_120("tColor"); + if(var_21) + { + fragmentLinker.name_123(alternativa3d::_samplerSetProcedureDiffuseAlpha); + fragmentLinker.name_125(alternativa3d::_samplerSetProcedureDiffuseAlpha,"tColor"); + } + else if(opacityMap != null) + { + fragmentLinker.name_123(alternativa3d::_samplerSetProcedureOpacity); + fragmentLinker.name_125(alternativa3d::_samplerSetProcedureOpacity,"tColor"); + } + else + { + fragmentLinker.name_123(alternativa3d::_samplerSetProcedure); + fragmentLinker.name_125(alternativa3d::_samplerSetProcedure,"tColor"); + } + fragmentLinker.name_120("tReflection"); + if(this.normalMap != null) + { + fragmentLinker.name_123(alternativa3d::_applyReflectionNormalMapProcedure); + fragmentLinker.name_118(alternativa3d::_applyReflectionNormalMapProcedure,"tNormal"); + fragmentLinker.name_125(alternativa3d::_applyReflectionNormalMapProcedure,"tReflection"); + } + else + { + fragmentLinker.name_123(alternativa3d::_applyReflectionProcedure); + fragmentLinker.name_125(alternativa3d::_applyReflectionProcedure,"tReflection"); + } + fragmentLinker.name_123(_applyLightMapProcedure); + fragmentLinker.name_118(_applyLightMapProcedure,"tColor"); + fragmentLinker.name_125(_applyLightMapProcedure,"tColor"); + if(this.reflectionMap != null) + { + fragmentLinker.name_123(alternativa3d::_blendReflectionMap); + fragmentLinker.name_118(alternativa3d::_blendReflectionMap,"tColor","tReflection"); + outputProcedure = alternativa3d::_blendReflectionMap; + } + else + { + fragmentLinker.name_123(alternativa3d::_blendReflection); + fragmentLinker.name_118(alternativa3d::_blendReflection,"tColor","tReflection"); + outputProcedure = alternativa3d::_blendReflection; + } + if(alternativa3d::fogMode == alternativa3d::SIMPLE || alternativa3d::fogMode == alternativa3d::ADVANCED) + { + fragmentLinker.name_120("outColor"); + fragmentLinker.name_125(outputProcedure,"outColor"); + } + if(alternativa3d::fogMode == alternativa3d::SIMPLE) + { + vertexLinker.name_123(passSimpleFogConstProcedure); + vertexLinker.name_118(passSimpleFogConstProcedure,positionVar); + fragmentLinker.name_123(outputWithSimpleFogProcedure); + fragmentLinker.name_118(outputWithSimpleFogProcedure,"outColor"); + } + else if(alternativa3d::fogMode == alternativa3d::ADVANCED) + { + vertexLinker.name_120("tProjected"); + vertexLinker.name_125(alternativa3d::_projectProcedure,"tProjected"); + vertexLinker.name_123(postPassAdvancedFogConstProcedure); + vertexLinker.name_118(postPassAdvancedFogConstProcedure,positionVar,"tProjected"); + fragmentLinker.name_123(outputWithAdvancedFogProcedure); + fragmentLinker.name_118(outputWithAdvancedFogProcedure,"outColor"); + } + fragmentLinker.name_142(); + fragmentLinker.name_133(vertexLinker); + return new EnvironmentMaterialShaderProgram(vertexLinker,fragmentLinker); + } + + override alternativa3d function collectDraws(camera:name_124, surface:name_117, geometry:name_119, lights:Vector., lightsLength:int, objectRenderPriority:int = -1) : void + { + var program:name_127 = null; + var i:int = 0; + var lm:name_139 = null; + var dist:Number = NaN; + var cLocal:name_139 = null; + var halfW:Number = NaN; + var leftX:Number = NaN; + var leftY:Number = NaN; + var rightX:Number = NaN; + var rightY:Number = NaN; + var angle:Number = NaN; + var dx:Number = NaN; + var dy:Number = NaN; + var lens:Number = NaN; + var uScale:Number = NaN; + var uRight:Number = NaN; + var bmd:BitmapData = null; + if(diffuseMap == null || this.environmentMap == null || diffuseMap.alternativa3d::_texture == null || this.environmentMap.alternativa3d::_texture == null) + { + return; + } + if(!var_21 && opacityMap != null && opacityMap.alternativa3d::_texture == null) + { + return; + } + var object:name_78 = surface.alternativa3d::object; + var positionBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.POSITION); + var uvBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TEXCOORDS[0]); + var normalsBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.NORMAL); + var tangentsBuffer:VertexBuffer3D = geometry.alternativa3d::getVertexBuffer(name_126.TANGENT4); + if(positionBuffer == null || uvBuffer == null) + { + return; + } + var key:String = alternativa3d::fogMode.toString() + this.var_53.toString() + (this.normalMap != null ? "N" : "n") + (opacityMap != null ? "O" : "o") + (var_21 ? "D" : "d"); + var programs:Dictionary = _programs[object.alternativa3d::transformProcedure]; + if(programs == null) + { + programs = new Dictionary(false); + _programs[object.alternativa3d::transformProcedure] = programs; + program = this.method_75(object); + program.upload(camera.alternativa3d::context3D); + programs[key] = program; + } + else + { + program = programs[key]; + if(program == null) + { + program = this.method_75(object); + program.upload(camera.alternativa3d::context3D); + programs[key] = program; + } + } + var drawUnit:name_135 = camera.alternativa3d::renderer.alternativa3d::name_137(object,program.program,geometry.alternativa3d::name_132,surface.indexBegin,surface.numTriangles,program); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sLightMap"),this.lightMap.alternativa3d::_texture); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aPosition"),positionBuffer,geometry.alternativa3d::_attributesOffsets[name_126.POSITION],name_126.alternativa3d::FORMATS[name_126.POSITION]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aUV"),uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[0]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[0]]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aUV1"),uvBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TEXCOORDS[this.lightMapChannel]],name_126.alternativa3d::FORMATS[name_126.TEXCOORDS[this.lightMapChannel]]); + drawUnit.alternativa3d::setVertexBufferAt(program.vertexShader.getVariableIndex("aNormal"),normalsBuffer,geometry.alternativa3d::_attributesOffsets[name_126.NORMAL],name_126.alternativa3d::FORMATS[name_126.NORMAL]); + object.alternativa3d::setTransformConstants(drawUnit,surface,program.vertexShader,camera); + drawUnit.alternativa3d::name_136(camera,program.vertexShader.getVariableIndex("cProjMatrix"),object.alternativa3d::localToCameraTransform); + var camTransform:name_139 = object.alternativa3d::cameraToLocalTransform; + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cCamera"),camTransform.d,camTransform.h,camTransform.l); + var envProgram:EnvironmentMaterialShaderProgram = program as EnvironmentMaterialShaderProgram; + if(this.normalMap != null) + { + drawUnit.alternativa3d::setTextureAt(envProgram.sBump,this.normalMap.alternativa3d::_texture); + if(this.var_53 == name_204.TANGENT_RIGHT_HANDED || this.var_53 == name_204.TANGENT_LEFT_HANDED) + { + drawUnit.alternativa3d::setVertexBufferAt(envProgram.aTangent,tangentsBuffer,geometry.alternativa3d::_attributesOffsets[name_126.TANGENT4],name_126.alternativa3d::FORMATS[name_126.TANGENT4]); + } + } + if(this.reflectionMap != null) + { + drawUnit.alternativa3d::setTextureAt(envProgram.sReflection,this.reflectionMap.alternativa3d::_texture); + } + drawUnit.alternativa3d::setTextureAt(envProgram.sTexture,diffuseMap.alternativa3d::_texture); + drawUnit.alternativa3d::setTextureAt(envProgram.sCubeMap,this.environmentMap.alternativa3d::_texture); + var cameraToLocalTransform:name_139 = object.alternativa3d::cameraToLocalTransform; + drawUnit.alternativa3d::name_134(envProgram.cCamera,cameraToLocalTransform.d,cameraToLocalTransform.h,cameraToLocalTransform.l); + drawUnit.alternativa3d::name_134(envProgram.cAlpha,0,1 - this.reflection,this.reflection,alpha); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sTexture"),diffuseMap.alternativa3d::_texture); + if(!var_21 && opacityMap != null) + { + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sOpacity"),opacityMap.alternativa3d::_texture); + } + if(alternativa3d::fogMode == alternativa3d::SIMPLE || alternativa3d::fogMode == alternativa3d::ADVANCED) + { + lm = object.alternativa3d::localToCameraTransform; + dist = alternativa3d::fogFar - alternativa3d::fogNear; + drawUnit.alternativa3d::name_144(program.vertexShader.getVariableIndex("cFogSpace"),lm.i / dist,lm.j / dist,lm.k / dist,(lm.l - alternativa3d::fogNear) / dist); + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogRange"),alternativa3d::fogMaxDensity,1,0,1 - alternativa3d::fogMaxDensity); + } + if(alternativa3d::fogMode == alternativa3d::SIMPLE) + { + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogColor"),alternativa3d::fogColorR,alternativa3d::fogColorG,alternativa3d::fogColorB); + } + if(alternativa3d::fogMode == alternativa3d::ADVANCED) + { + if(alternativa3d::fogTexture == null) + { + bmd = new BitmapData(32,1,false,16711680); + for(i = 0; i < 32; i++) + { + bmd.setPixel(i,0,i / 32 * 255 << 16); + } + alternativa3d::fogTexture = new name_93(bmd); + alternativa3d::fogTexture.upload(camera.alternativa3d::context3D); + } + cLocal = camera.alternativa3d::localToGlobalTransform; + halfW = camera.view.width / 2; + leftX = -halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + leftY = -halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + rightX = halfW * cLocal.a + camera.alternativa3d::focalLength * cLocal.c; + rightY = halfW * cLocal.e + camera.alternativa3d::focalLength * cLocal.g; + angle = Math.atan2(leftY,leftX) - Math.PI / 2; + if(angle < 0) + { + angle += Math.PI * 2; + } + dx = rightX - leftX; + dy = rightY - leftY; + lens = Number(Math.sqrt(dx * dx + dy * dy)); + leftX /= lens; + leftY /= lens; + rightX /= lens; + rightY /= lens; + uScale = Math.acos(leftX * rightX + leftY * rightY) / Math.PI / 2; + uRight = angle / Math.PI / 2; + drawUnit.alternativa3d::name_134(program.fragmentShader.getVariableIndex("cFogConsts"),0.5 * uScale,0.5 - uRight,0); + drawUnit.alternativa3d::setTextureAt(program.fragmentShader.getVariableIndex("sFogTexture"),alternativa3d::fogTexture.alternativa3d::_texture); + } + if(var_21 || opacityMap != null || alpha < 1) + { + drawUnit.alternativa3d::blendSource = Context3DBlendFactor.SOURCE_ALPHA; + drawUnit.alternativa3d::blendDestination = Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA; + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.TRANSPARENT_SORT); + } + else + { + camera.alternativa3d::renderer.alternativa3d::name_130(drawUnit,objectRenderPriority >= 0 ? objectRenderPriority : name_128.OPAQUE); + } + } + } +} + +import package_30.name_121; + +class EnvironmentMaterialShaderProgram extends name_127 +{ + public var aTangent:int = -1; + + public var aNormal:int = -1; + + public var aPosition:int = -1; + + public var aUV:int = -1; + + public var cCamera:int = -1; + + public var cAlpha:int = -1; + + public var cProjMatrix:int = -1; + + public var sBump:int = -1; + + public var sTexture:int = -1; + + public var sOpacity:int = -1; + + public var sCubeMap:int = -1; + + public var sReflection:int = -1; + + public function EnvironmentMaterialShaderProgram(vertexShader:name_121, fragmentShader:name_121) + { + super(vertexShader,fragmentShader); + this.aPosition = vertexShader.getVariableIndex("aPosition"); + this.aNormal = vertexShader.getVariableIndex("aNormal"); + this.aUV = vertexShader.getVariableIndex("aUV"); + if(fragmentShader.method_286("sBump")) + { + this.sBump = fragmentShader.getVariableIndex("sBump"); + } + if(vertexShader.method_286("aTangent")) + { + this.aTangent = vertexShader.getVariableIndex("aTangent"); + } + if(fragmentShader.method_286("sReflection")) + { + this.sReflection = fragmentShader.getVariableIndex("sReflection"); + } + this.cProjMatrix = vertexShader.getVariableIndex("cProjMatrix"); + this.sTexture = fragmentShader.getVariableIndex("sTexture"); + this.sCubeMap = fragmentShader.getVariableIndex("sCubeMap"); + this.cCamera = fragmentShader.getVariableIndex("cCamera"); + this.cAlpha = fragmentShader.getVariableIndex("cAlpha"); + if(fragmentShader.method_286("sOpacity")) + { + this.sOpacity = fragmentShader.getVariableIndex("sOpacity"); + } + } +} diff --git a/src/package_40/class_7.as b/src/package_40/class_7.as new file mode 100644 index 0000000..b7d0893 --- /dev/null +++ b/src/package_40/class_7.as @@ -0,0 +1,31 @@ +package package_40 +{ + import flash.events.EventDispatcher; + + public class class_7 extends EventDispatcher + { + private var var_33:name_170; + + public function class_7() + { + super(); + } + + public function run() : void + { + throw new Error("Not implemented"); + } + + internal function set method_101(param1:name_170) : void + { + this.var_33 = param1; + } + + final protected function method_102() : void + { + dispatchEvent(new name_169(name_169.TASK_COMPLETE,1,1)); + this.var_33.taskComplete(this); + } + } +} + diff --git a/src/package_40/name_169.as b/src/package_40/name_169.as new file mode 100644 index 0000000..6cd1dda --- /dev/null +++ b/src/package_40/name_169.as @@ -0,0 +1,23 @@ +package package_40 +{ + import flash.events.Event; + + public class name_169 extends Event + { + public static const TASK_COMPLETE:String = "taskComplete"; + + public static const TASK_PROGRESS:String = "taskProgress"; + + public var total:Number = 0; + + public var progress:Number = 0; + + public function name_169(param1:String, param2:Number, param3:Number) + { + super(param1); + this.total = param3; + this.progress = param2; + } + } +} + diff --git a/src/package_40/name_170.as b/src/package_40/name_170.as new file mode 100644 index 0000000..90b1407 --- /dev/null +++ b/src/package_40/name_170.as @@ -0,0 +1,64 @@ +package package_40 +{ + import flash.events.Event; + import flash.events.EventDispatcher; + + public class name_170 extends EventDispatcher + { + private var tasks:Vector.; + + private var var_192:int; + + public function name_170() + { + super(); + this.tasks = new Vector.(); + } + + public function get length() : uint + { + return this.tasks.length; + } + + public function addTask(param1:class_7) : void + { + if(this.tasks.indexOf(param1) < 0) + { + this.tasks.push(param1); + param1.method_101 = this; + } + } + + public function run() : void + { + if(this.tasks.length > 0) + { + this.var_192 = 0; + this.method_309(); + } + else + { + dispatchEvent(new Event(Event.COMPLETE)); + } + } + + private function method_309() : void + { + this.tasks[this.var_192].run(); + } + + internal function taskComplete(param1:class_7) : void + { + dispatchEvent(new name_169(name_169.TASK_COMPLETE,1,this.tasks.length)); + if(++this.var_192 < this.tasks.length) + { + this.method_309(); + } + else + { + dispatchEvent(new Event(Event.COMPLETE)); + } + } + } +} + diff --git a/src/package_40/name_171.as b/src/package_40/name_171.as new file mode 100644 index 0000000..d73c97a --- /dev/null +++ b/src/package_40/name_171.as @@ -0,0 +1,71 @@ +package package_40 +{ + import flash.utils.ByteArray; + + public class name_171 + { + private var var_102:Object; + + public function name_171(param1:ByteArray) + { + super(); + if(param1 != null) + { + this.method_314(param1); + } + } + + public function method_314(param1:ByteArray) : void + { + var _loc4_:int = 0; + var _loc5_:ByteArray = null; + var _loc6_:FileInfo = null; + var _loc2_:int = int(param1.readInt()); + var _loc3_:Vector. = new Vector.(_loc2_); + _loc4_ = 0; + while(_loc4_ < _loc2_) + { + _loc3_[_loc4_] = new FileInfo(param1.readUTF(),param1.readInt()); + _loc4_++; + } + this.var_102 = {}; + _loc4_ = 0; + while(_loc4_ < _loc2_) + { + _loc5_ = new ByteArray(); + _loc6_ = _loc3_[_loc4_]; + param1.readBytes(_loc5_,0,_loc6_.size); + this.var_102[_loc6_.name] = _loc5_; + _loc4_++; + } + } + + public function get data() : Object + { + return this.var_102; + } + + public function method_315(param1:String) : ByteArray + { + if(this.var_102 == null) + { + return null; + } + return ByteArray(this.var_102[param1]); + } + } +} + +class FileInfo +{ + public var name:String; + + public var size:int; + + public function FileInfo(param1:String, param2:int) + { + super(); + this.name = param1; + this.size = param2; + } +} diff --git a/src/package_40/name_251.as b/src/package_40/name_251.as new file mode 100644 index 0000000..9702470 --- /dev/null +++ b/src/package_40/name_251.as @@ -0,0 +1,38 @@ +package package_40 +{ + import flash.display.BitmapData; + import flash.geom.Point; + import flash.geom.Rectangle; + + public class name_251 + { + public function name_251() + { + super(); + } + + public static function name_272(param1:BitmapData, param2:int = 0) : Vector. + { + var _loc8_:BitmapData = null; + if(param2 == 0) + { + param2 = int(param1.height); + } + var _loc3_:int = param1.width / param2; + var _loc4_:Vector. = new Vector.(_loc3_); + var _loc5_:Point = new Point(); + var _loc6_:Rectangle = new Rectangle(0,0,param2,param1.height); + var _loc7_:int = 0; + while(_loc7_ < _loc3_) + { + _loc8_ = new BitmapData(param2,param1.height,param1.transparent,0); + _loc4_[_loc7_] = _loc8_; + _loc6_.x = _loc7_ * param2; + _loc8_.copyPixels(param1,_loc6_,_loc5_); + _loc7_++; + } + return _loc4_; + } + } +} + diff --git a/src/package_40/name_564.as b/src/package_40/name_564.as new file mode 100644 index 0000000..91d48a9 --- /dev/null +++ b/src/package_40/name_564.as @@ -0,0 +1,20 @@ +package package_40 +{ + public class name_564 + { + public function name_564() + { + super(); + } + + public static function name_565(param1:XML) : Array + { + if(param1 == null) + { + return []; + } + return param1.text().toString().split(/\s+/); + } + } +} + diff --git a/src/package_41/name_173.as b/src/package_41/name_173.as new file mode 100644 index 0000000..f34b3ca --- /dev/null +++ b/src/package_41/name_173.as @@ -0,0 +1,101 @@ +package package_41 +{ + import flash.events.Event; + import flash.media.Sound; + import package_13.class_21; + import package_13.name_18; + import package_13.name_459; + import package_40.name_169; + import package_40.name_170; + + public class name_173 extends class_21 + { + private var sounds:Object = {}; + + private var var_34:name_170; + + public function name_173(param1:name_18) + { + super("Sounds library loader",param1); + } + + public function name_297(param1:String) : Sound + { + return this.sounds[param1]; + } + + public function method_313(param1:String, param2:Sound) : void + { + this.sounds[param1] = param2; + } + + override public function run() : void + { + var _loc3_:XML = null; + if(config.xml.sounds == null) + { + method_102(); + return; + } + var _loc1_:XML = config.xml.sounds[0]; + var _loc2_:String = name_459.name_460(_loc1_.@baseUrl); + this.var_34 = new name_170(); + for each(_loc3_ in _loc1_.sound) + { + this.var_34.addTask(new SoundLoader(_loc3_.@id,_loc2_ + _loc3_.@file,this)); + } + this.var_34.addEventListener(name_169.TASK_COMPLETE,this.method_312); + this.var_34.addEventListener(Event.COMPLETE,this.method_107); + this.var_34.run(); + } + + private function method_312(param1:name_169) : void + { + dispatchEvent(new name_169(name_169.TASK_PROGRESS,1,this.var_34.length)); + } + + private function method_107(param1:Event) : void + { + this.var_34 = null; + method_102(); + } + } +} + +import flash.events.Event; +import flash.events.EventDispatcher; +import flash.media.Sound; +import flash.net.URLRequest; +import package_40.class_7; + +class SoundLoader extends class_7 +{ + private var id:String; + + private var url:String; + + private var library:name_173; + + private var loader:Sound; + + public function SoundLoader(param1:String, param2:String, param3:name_173) + { + super(); + this.id = param1; + this.url = param2; + this.library = param3; + } + + override public function run() : void + { + this.loader = new Sound(); + this.loader.addEventListener(Event.COMPLETE,this.onLoadingComplete); + this.loader.load(new URLRequest(this.url)); + } + + private function onLoadingComplete(param1:Event) : void + { + this.library.method_313(this.id,this.loader); + method_102(); + } +} diff --git a/src/package_41/name_175.as b/src/package_41/name_175.as new file mode 100644 index 0000000..7484cbf --- /dev/null +++ b/src/package_41/name_175.as @@ -0,0 +1,131 @@ +package package_41 +{ + import flash.events.Event; + import flash.utils.ByteArray; + import package_13.name_18; + import package_13.name_459; + import package_13.name_58; + import package_13.name_70; + import package_40.class_7; + import package_40.name_169; + import package_40.name_170; + + public class name_175 extends class_7 + { + private var config:name_18; + + private var var_34:name_170; + + public function name_175(param1:name_18) + { + super(); + this.config = param1; + } + + override public function run() : void + { + var _loc1_:XML = null; + var _loc2_:String = null; + var _loc3_:XML = null; + var _loc4_:String = null; + var _loc5_:String = null; + var _loc6_:XML = null; + var _loc7_:String = null; + var _loc8_:String = null; + this.var_34 = new name_170(); + for each(_loc1_ in this.config.xml.elements("blobs").elements("blobs-category")) + { + _loc2_ = _loc1_.@id; + for each(_loc3_ in _loc1_.elements("blobs-group")) + { + _loc4_ = _loc3_.@id; + _loc5_ = name_459.name_460(_loc3_.@baseUrl); + for each(_loc6_ in _loc3_.elements("blob")) + { + _loc7_ = _loc6_.@id; + _loc8_ = _loc5_ + _loc6_.@file; + this.var_34.addTask(new BlobLoader(_loc2_,_loc4_,_loc7_,_loc8_,this)); + } + } + } + this.var_34.addEventListener(name_169.TASK_COMPLETE,this.method_312); + this.var_34.addEventListener(Event.COMPLETE,this.onLoadingComplete); + this.var_34.run(); + } + + private function method_312(param1:name_169) : void + { + dispatchEvent(new name_169(name_169.TASK_PROGRESS,1,this.var_34.length)); + } + + public function method_328(param1:String, param2:String, param3:String, param4:ByteArray) : void + { + var _loc5_:name_70 = this.config.name_68.name_72(param1); + if(_loc5_ == null) + { + _loc5_ = new name_70(); + this.config.name_68.method_326(param1,_loc5_); + } + var _loc6_:name_58 = _loc5_.name_62(param2); + if(_loc6_ == null) + { + _loc6_ = new name_58(); + _loc5_.method_214(param2,_loc6_); + } + _loc6_.method_218(param3,param4); + } + + private function onLoadingComplete(param1:Event) : void + { + this.var_34 = null; + method_102(); + } + } +} + +import flash.events.Event; +import flash.events.EventDispatcher; +import flash.net.URLLoader; +import flash.net.URLLoaderDataFormat; +import flash.net.URLRequest; +import package_40.class_7; + +class BlobLoader extends class_7 +{ + private var categoryId:String; + + private var groupId:String; + + private var blobId:String; + + private var blobUrl:String; + + private var blobsLoaderTask:name_175; + + private var loader:URLLoader; + + public function BlobLoader(param1:String, param2:String, param3:String, param4:String, param5:name_175) + { + super(); + this.categoryId = param1; + this.groupId = param2; + this.blobId = param3; + this.blobUrl = param4; + this.blobsLoaderTask = param5; + } + + override public function run() : void + { + this.loader = new URLLoader(); + this.loader.dataFormat = URLLoaderDataFormat.BINARY; + this.loader.addEventListener(Event.COMPLETE,this.onLoadingComplete); + this.loader.load(new URLRequest(this.blobUrl)); + } + + private function onLoadingComplete(param1:Event) : void + { + this.blobsLoaderTask.method_328(this.categoryId,this.groupId,this.blobId,this.loader.data); + this.loader = null; + method_102(); + } +} diff --git a/src/package_41/name_461.as b/src/package_41/name_461.as new file mode 100644 index 0000000..5e76444 --- /dev/null +++ b/src/package_41/name_461.as @@ -0,0 +1,44 @@ +package package_41 +{ + import flash.events.Event; + import flash.events.EventDispatcher; + import package_112.class_33; + import package_40.name_170; + import package_71.name_333; + + [Event(name="complete",type="flash.events.Event")] + public class name_461 extends EventDispatcher + { + public var parts:Vector.; + + private var var_34:name_170; + + public function name_461() + { + super(); + } + + public function load(param1:String, param2:XMLList, param3:class_33) : void + { + var _loc4_:XML = null; + this.parts = new Vector.(); + this.var_34 = new name_170(); + for each(_loc4_ in param2) + { + this.var_34.addTask(param3.method_648(param1,_loc4_,this.parts)); + } + this.var_34.addEventListener(Event.COMPLETE,this.method_107); + this.var_34.run(); + } + + private function method_107(param1:Event) : void + { + this.var_34 = null; + if(hasEventListener(Event.COMPLETE)) + { + dispatchEvent(new Event(Event.COMPLETE)); + } + } + } +} + diff --git a/src/package_41/name_462.as b/src/package_41/name_462.as new file mode 100644 index 0000000..53aa7b6 --- /dev/null +++ b/src/package_41/name_462.as @@ -0,0 +1,67 @@ +package package_41 +{ + import flash.display.Bitmap; + import flash.display.BitmapData; + import flash.display.Loader; + import flash.events.Event; + import flash.events.EventDispatcher; + import flash.net.URLRequest; + + [Event(name="complete",type="flash.events.Event")] + public class name_462 extends EventDispatcher + { + public var images:Vector.; + + private var baseUrl:String; + + private var imagesXml:XMLList; + + private var loader:Loader; + + private var var_589:int; + + public function name_462() + { + super(); + } + + public function load(param1:String, param2:XMLList) : void + { + this.baseUrl = param1; + this.imagesXml = param2; + this.loader = new Loader(); + this.loader.contentLoaderInfo.addEventListener(Event.COMPLETE,this.method_650); + this.var_589 = -1; + this.images = new Vector.(); + this.method_649(); + } + + private function method_649() : void + { + ++this.var_589; + if(this.var_589 == this.imagesXml.length()) + { + this.loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,this.method_650); + this.loader.unload(); + this.loader = null; + this.baseUrl = null; + this.imagesXml = null; + if(hasEventListener(Event.COMPLETE)) + { + dispatchEvent(new Event(Event.COMPLETE)); + } + } + else + { + this.loader.load(new URLRequest(this.baseUrl + this.imagesXml[this.var_589].@file)); + } + } + + private function method_650(param1:Event) : void + { + this.images.push(Bitmap(this.loader.content).bitmapData); + this.method_649(); + } + } +} + diff --git a/src/package_42/name_177.as b/src/package_42/name_177.as new file mode 100644 index 0000000..c04dce7 --- /dev/null +++ b/src/package_42/name_177.as @@ -0,0 +1,133 @@ +package package_42 +{ + import package_10.class_1; + import package_10.name_17; + + public class name_177 extends class_1 implements name_184 + { + private var var_214:Vector.; + + private var var_215:int; + + private var running:Boolean; + + private var gameKernel:name_17; + + public function name_177(priority:int, gameKernel:name_17) + { + super(priority); + this.gameKernel = gameKernel; + this.var_214 = new Vector.(); + } + + public function addLogicUnit(logicUnit:name_477) : void + { + var actionAddUnit:ActionAddUnit = null; + if(this.running) + { + actionAddUnit = ActionAddUnit(this.gameKernel.method_108().name_110(ActionAddUnit)); + this.method_329(actionAddUnit,logicUnit); + } + else + { + if(this.var_214.indexOf(logicUnit) >= 0) + { + throw new Error("Logic unit already exists"); + } + var _loc3_:* = this.var_215++; + this.var_214[_loc3_] = logicUnit; + } + } + + public function removeLogicUnit(logicUnit:name_477) : void + { + var actionRemoveUnit:ActionRemoveUnit = null; + var index:int = 0; + if(this.running) + { + actionRemoveUnit = ActionRemoveUnit(this.gameKernel.method_108().name_110(ActionRemoveUnit)); + this.method_329(actionRemoveUnit,logicUnit); + } + else + { + index = int(this.var_214.indexOf(logicUnit)); + if(index < 0) + { + throw new Error("Logic unit not found"); + } + this.var_214[index] = this.var_214[--this.var_215]; + this.var_214[this.var_215] = null; + } + } + + override public function run() : void + { + this.running = true; + for(var i:int = 0; i < this.var_215; i++) + { + this.var_214[i].runLogic(); + } + this.running = false; + } + + private function method_329(action:DeferredAction, unit:name_477) : void + { + action.system = this; + action.unit = unit; + this.gameKernel.method_111(action); + } + } +} + +import package_26.class_18; +import package_26.name_402; +import package_43.name_190; + +class DeferredAction extends name_190 +{ + public var system:name_184; + + public var unit:name_477; + + public function DeferredAction(objectPool:name_402) + { + super(objectPool); + } + + override public function execute() : void + { + this.doExecute(); + this.system = null; + this.unit = null; + } + + protected function doExecute() : void + { + } +} + +class ActionAddUnit extends DeferredAction +{ + public function ActionAddUnit(objectPool:name_402) + { + super(objectPool); + } + + override protected function doExecute() : void + { + system.addLogicUnit(unit); + } +} + +class ActionRemoveUnit extends DeferredAction +{ + public function ActionRemoveUnit(objectPool:name_402) + { + super(objectPool); + } + + override protected function doExecute() : void + { + system.removeLogicUnit(unit); + } +} diff --git a/src/package_42/name_184.as b/src/package_42/name_184.as new file mode 100644 index 0000000..f3f37e6 --- /dev/null +++ b/src/package_42/name_184.as @@ -0,0 +1,10 @@ +package package_42 +{ + public interface name_184 + { + function addLogicUnit(param1:name_477) : void; + + function removeLogicUnit(param1:name_477) : void; + } +} + diff --git a/src/package_42/name_477.as b/src/package_42/name_477.as new file mode 100644 index 0000000..1198e9a --- /dev/null +++ b/src/package_42/name_477.as @@ -0,0 +1,8 @@ +package package_42 +{ + public interface name_477 + { + function runLogic() : void; + } +} + diff --git a/src/package_43/name_183.as b/src/package_43/name_183.as new file mode 100644 index 0000000..6f26b92 --- /dev/null +++ b/src/package_43/name_183.as @@ -0,0 +1,33 @@ +package package_43 +{ + import package_10.class_1; + + public class name_183 extends class_1 + { + private var commands:name_190; + + public function name_183(priority:int) + { + super(priority); + } + + public function name_187(command:name_190) : void + { + command.next = this.commands; + this.commands = command; + } + + override public function run() : void + { + for(var command:name_190 = null; this.commands != null; ) + { + command = this.commands; + this.commands = this.commands.next; + command.next = null; + command.execute(); + command.method_254(); + } + } + } +} + diff --git a/src/package_43/name_190.as b/src/package_43/name_190.as new file mode 100644 index 0000000..8652442 --- /dev/null +++ b/src/package_43/name_190.as @@ -0,0 +1,20 @@ +package package_43 +{ + import package_26.class_18; + import package_26.name_402; + + public class name_190 extends class_18 + { + public var next:name_190; + + public function name_190(objectPool:name_402) + { + super(objectPool); + } + + public function execute() : void + { + } + } +} + diff --git a/src/package_44/name_178.as b/src/package_44/name_178.as new file mode 100644 index 0000000..06832ac --- /dev/null +++ b/src/package_44/name_178.as @@ -0,0 +1,353 @@ +package package_44 +{ + import flash.utils.getTimer; + import package_10.class_1; + import package_113.name_469; + import package_26.name_100; + import package_43.name_190; + import package_45.name_182; + import package_46.name_194; + import package_76.name_235; + import package_86.name_466; + import package_86.name_468; + import package_90.name_386; + import package_92.name_467; + + public class name_178 extends class_1 + { + private static var USE_GRID_COLLISION_DETECTOR:Boolean = true; + + public var interpolationCoeff:Number; + + private var physicsStep:int = 33; + + private var physicsScene:name_467; + + private var var_202:Vector.; + + private var var_203:int; + + private var var_200:Vector.; + + private var var_205:int; + + private var var_201:Vector.; + + private var var_204:int; + + private var var_207:name_469; + + private var var_206:int; + + private var running:Boolean; + + private var var_10:name_190; + + private var objectPoolManager:name_100; + + public function name_178(priority:int, objectPoolManager:name_100) + { + super(priority); + this.objectPoolManager = objectPoolManager; + this.var_202 = new Vector.(); + this.var_200 = new Vector.(); + this.var_201 = new Vector.(); + this.physicsScene = new name_467(); + this.physicsScene.name_475 = true; + this.physicsScene.name_471 = 5; + this.physicsScene.name_474 = 100; + this.physicsScene.gravity = new name_194(0,0,-1000); + if(USE_GRID_COLLISION_DETECTOR) + { + this.var_207 = new name_469(); + this.physicsScene.collisionDetector = this.var_207; + } + else + { + this.physicsScene.collisionDetector = new name_466(); + } + } + + override protected function onPause() : void + { + this.var_206 = getTimer(); + } + + override protected function onResume() : void + { + this.var_206 = getTimer() - this.var_206; + this.physicsScene.time += this.var_206; + } + + public function method_333() : name_469 + { + return this.var_207; + } + + public function method_331() : int + { + return this.physicsStep; + } + + public function name_246() : name_467 + { + return this.physicsScene; + } + + public function name_382(collisionPrimitives:Vector.) : void + { + var gridCellSize:Number = NaN; + var collisionDetector:name_466 = null; + var bb:name_386 = null; + var size:Number = NaN; + if(USE_GRID_COLLISION_DETECTOR) + { + gridCellSize = 800; + this.var_207.name_472(gridCellSize,collisionPrimitives); + } + else + { + collisionDetector = name_466(this.physicsScene.collisionDetector); + bb = new name_386(); + size = 20000; + bb.method_140(-size,-size,-size,size,size,size); + collisionDetector.name_473(collisionPrimitives,bb); + } + } + + public function addControllerBefore(controller:name_465) : void + { + var deferredActionAddBefore:DeferredActionAddBefore = null; + if(this.running) + { + deferredActionAddBefore = DeferredActionAddBefore(this.objectPoolManager.name_110(DeferredActionAddBefore)); + this.method_329(deferredActionAddBefore,controller); + } + else + { + if(this.var_202.indexOf(controller) >= 0) + { + throw new Error("Controller " + controller + " already exists"); + } + var _loc3_:* = this.var_203++; + this.var_202[_loc3_] = controller; + } + } + + public function addControllerAfter(controller:name_465) : void + { + var deferredActionAddAfter:DeferredActionAddAfter = null; + if(this.running) + { + deferredActionAddAfter = DeferredActionAddAfter(this.objectPoolManager.name_110(DeferredActionAddAfter)); + this.method_329(deferredActionAddAfter,controller); + } + else + { + if(this.var_200.indexOf(controller) >= 0) + { + throw new Error("Controller " + controller + " already exists"); + } + var _loc3_:* = this.var_205++; + this.var_200[_loc3_] = controller; + } + } + + public function method_330(controller:name_465) : void + { + if(this.var_201.indexOf(controller) >= 0) + { + throw new Error("Controller " + controller + " already exists"); + } + var _loc2_:* = this.var_204++; + this.var_201[_loc2_] = controller; + } + + public function removeControllerBefore(controller:name_465) : void + { + var deferredActionRemoveBefore:DeferredActionRemoveBefore = null; + var index:int = 0; + if(this.running) + { + deferredActionRemoveBefore = DeferredActionRemoveBefore(this.objectPoolManager.name_110(DeferredActionRemoveBefore)); + this.method_329(deferredActionRemoveBefore,controller); + } + else + { + index = int(this.var_202.indexOf(controller)); + if(index < 0) + { + throw new Error("Controller " + controller + " not found"); + } + this.var_202[index] = this.var_202[--this.var_203]; + this.var_202[this.var_203] = null; + } + } + + public function removeControllerAfter(controller:name_465) : void + { + var deferredActionRemoveAfter:DeferredActionRemoveAfter = null; + var index:int = 0; + if(this.running) + { + deferredActionRemoveAfter = DeferredActionRemoveAfter(this.objectPoolManager.name_110(DeferredActionRemoveAfter)); + this.method_329(deferredActionRemoveAfter,controller); + } + else + { + index = int(this.var_200.indexOf(controller)); + if(index < 0) + { + throw new Error("Controller " + controller + " not found"); + } + this.var_200[index] = this.var_200[--this.var_205]; + this.var_200[this.var_205] = null; + } + } + + public function method_332(controller:name_465) : void + { + var index:int = int(this.var_201.indexOf(controller)); + if(index < 0) + { + throw new Error("Controller " + controller + " not found"); + } + this.var_201[index] = this.var_201[--this.var_204]; + this.var_201[this.var_204] = null; + } + + override public function start() : void + { + this.physicsScene.time = name_182.time; + } + + override public function run() : void + { + var i:int = 0; + var controller:name_465 = null; + var action:name_190 = null; + var currentTime:int = name_182.time; + if(this.physicsScene.time < currentTime) + { + while(this.physicsScene.time < currentTime) + { + this.running = true; + name_468(this.physicsScene.collisionDetector).name_470(); + for(i = 0; i < this.var_203; i++) + { + controller = this.var_202[i]; + controller.updateBeforeSimulation(this.physicsStep); + } + this.physicsScene.update(this.physicsStep); + name_468(this.physicsScene.collisionDetector).name_470(); + for(i = 0; i < this.var_205; i++) + { + controller = this.var_200[i]; + controller.updateAfterSimulation(this.physicsStep); + } + for(this.running = false; this.var_10 != null; ) + { + action = this.var_10; + this.var_10 = this.var_10.next; + action.next = null; + action.execute(); + action.method_254(); + } + } + } + this.interpolationCoeff = 1 - (this.physicsScene.time - currentTime) / this.physicsStep; + for(i = 0; i < this.var_204; i++) + { + controller = this.var_201[i]; + controller.interpolate(this.interpolationCoeff); + } + } + + private function method_329(deferredAction:DeferredAction, controller:name_465) : void + { + deferredAction.system = this; + deferredAction.controller = controller; + deferredAction.next = this.var_10; + this.var_10 = deferredAction; + } + } +} + +import package_26.class_18; +import package_26.name_402; +import package_43.name_190; + +class DeferredAction extends name_190 +{ + public var system:name_178; + + public var controller:name_465; + + public function DeferredAction(objectPool:name_402) + { + super(objectPool); + } + + override public function execute() : void + { + this.doExecute(); + this.system = null; + this.controller = null; + } + + protected function doExecute() : void + { + } +} + +class DeferredActionAddBefore extends DeferredAction +{ + public function DeferredActionAddBefore(objectPool:name_402) + { + super(objectPool); + } + + override protected function doExecute() : void + { + system.addControllerBefore(controller); + } +} + +class DeferredActionAddAfter extends DeferredAction +{ + public function DeferredActionAddAfter(objectPool:name_402) + { + super(objectPool); + } + + override protected function doExecute() : void + { + system.addControllerAfter(controller); + } +} + +class DeferredActionRemoveBefore extends DeferredAction +{ + public function DeferredActionRemoveBefore(objectPool:name_402) + { + super(objectPool); + } + + override protected function doExecute() : void + { + system.removeControllerBefore(controller); + } +} + +class DeferredActionRemoveAfter extends DeferredAction +{ + public function DeferredActionRemoveAfter(objectPool:name_402) + { + super(objectPool); + } + + override protected function doExecute() : void + { + system.removeControllerAfter(controller); + } +} diff --git a/src/package_44/name_465.as b/src/package_44/name_465.as new file mode 100644 index 0000000..8ca5c1b --- /dev/null +++ b/src/package_44/name_465.as @@ -0,0 +1,12 @@ +package package_44 +{ + public interface name_465 + { + function updateBeforeSimulation(param1:int) : void; + + function updateAfterSimulation(param1:int) : void; + + function interpolate(param1:Number) : void; + } +} + diff --git a/src/package_45/name_182.as b/src/package_45/name_182.as new file mode 100644 index 0000000..18edbfb --- /dev/null +++ b/src/package_45/name_182.as @@ -0,0 +1,39 @@ +package package_45 +{ + import flash.utils.getTimer; + import package_10.class_1; + + public class name_182 extends class_1 + { + public static var time:int; + + public static var timeSeconds:Number; + + public static var timeDelta:int; + + public static var timeDeltaSeconds:Number; + + public function name_182(priority:int) + { + super(priority); + } + + override public function start() : void + { + time = getTimer(); + timeSeconds = time / 1000; + timeDelta = 0; + timeDeltaSeconds = 0; + } + + override public function run() : void + { + var now:int = int(getTimer()); + timeDelta = now - time; + timeDeltaSeconds = timeDelta / 1000; + time = now; + timeSeconds = time / 1000; + } + } +} + diff --git a/src/package_46/Matrix3.as b/src/package_46/Matrix3.as new file mode 100644 index 0000000..d268e3a --- /dev/null +++ b/src/package_46/Matrix3.as @@ -0,0 +1,300 @@ +package package_46 +{ + import flash.geom.Vector3D; + + public class Matrix3 + { + public static const ZERO:Matrix3 = new Matrix3(0,0,0,0,0,0,0,0,0); + + public static const IDENTITY:Matrix3 = new Matrix3(); + + public var a:Number; + + public var b:Number; + + public var c:Number; + + public var e:Number; + + public var f:Number; + + public var g:Number; + + public var i:Number; + + public var j:Number; + + public var k:Number; + + public function Matrix3(a:Number = 1, b:Number = 0, c:Number = 0, e:Number = 0, f:Number = 1, g:Number = 0, i:Number = 0, j:Number = 0, k:Number = 1) + { + super(); + this.a = a; + this.b = b; + this.c = c; + this.e = e; + this.f = f; + this.g = g; + this.i = i; + this.j = j; + this.k = k; + } + + public function method_347() : Matrix3 + { + this.a = this.f = this.k = 1; + this.b = this.c = this.e = this.g = this.i = this.j = 0; + return this; + } + + public function invert() : Matrix3 + { + var aa:Number = this.a; + var bb:Number = this.b; + var cc:Number = this.c; + var ee:Number = this.e; + var ff:Number = this.f; + var gg:Number = this.g; + var ii:Number = this.i; + var jj:Number = this.j; + var kk:Number = this.k; + var det:Number = 1 / (-cc * ff * ii + bb * gg * ii + cc * ee * jj - aa * gg * jj - bb * ee * kk + aa * ff * kk); + this.a = (ff * kk - gg * jj) * det; + this.b = (cc * jj - bb * kk) * det; + this.c = (bb * gg - cc * ff) * det; + this.e = (gg * ii - ee * kk) * det; + this.f = (aa * kk - cc * ii) * det; + this.g = (cc * ee - aa * gg) * det; + this.i = (ee * jj - ff * ii) * det; + this.j = (bb * ii - aa * jj) * det; + this.k = (aa * ff - bb * ee) * det; + return this; + } + + public function append(m:Matrix3) : Matrix3 + { + var aa:Number = this.a; + var bb:Number = this.b; + var cc:Number = this.c; + var ee:Number = this.e; + var ff:Number = this.f; + var gg:Number = this.g; + var ii:Number = this.i; + var jj:Number = this.j; + var kk:Number = this.k; + this.a = m.a * aa + m.b * ee + m.c * ii; + this.b = m.a * bb + m.b * ff + m.c * jj; + this.c = m.a * cc + m.b * gg + m.c * kk; + this.e = m.e * aa + m.f * ee + m.g * ii; + this.f = m.e * bb + m.f * ff + m.g * jj; + this.g = m.e * cc + m.f * gg + m.g * kk; + this.i = m.i * aa + m.j * ee + m.k * ii; + this.j = m.i * bb + m.j * ff + m.k * jj; + this.k = m.i * cc + m.j * gg + m.k * kk; + return this; + } + + public function prepend(m:Matrix3) : Matrix3 + { + var aa:Number = this.a; + var bb:Number = this.b; + var cc:Number = this.c; + var ee:Number = this.e; + var ff:Number = this.f; + var gg:Number = this.g; + var ii:Number = this.i; + var jj:Number = this.j; + var kk:Number = this.k; + this.a = aa * m.a + bb * m.e + cc * m.i; + this.b = aa * m.b + bb * m.f + cc * m.j; + this.c = aa * m.c + bb * m.g + cc * m.k; + this.e = ee * m.a + ff * m.e + gg * m.i; + this.f = ee * m.b + ff * m.f + gg * m.j; + this.g = ee * m.c + ff * m.g + gg * m.k; + this.i = ii * m.a + jj * m.e + kk * m.i; + this.j = ii * m.b + jj * m.f + kk * m.j; + this.k = ii * m.c + jj * m.g + kk * m.k; + return this; + } + + public function method_348(m:Matrix3) : Matrix3 + { + var aa:Number = this.a; + var bb:Number = this.b; + var cc:Number = this.c; + var ee:Number = this.e; + var ff:Number = this.f; + var gg:Number = this.g; + var ii:Number = this.i; + var jj:Number = this.j; + var kk:Number = this.k; + this.a = aa * m.a + bb * m.b + cc * m.c; + this.b = aa * m.e + bb * m.f + cc * m.g; + this.c = aa * m.i + bb * m.j + cc * m.k; + this.e = ee * m.a + ff * m.b + gg * m.c; + this.f = ee * m.e + ff * m.f + gg * m.g; + this.g = ee * m.i + ff * m.j + gg * m.k; + this.i = ii * m.a + jj * m.b + kk * m.c; + this.j = ii * m.e + jj * m.f + kk * m.g; + this.k = ii * m.i + jj * m.j + kk * m.k; + return this; + } + + public function add(m:Matrix3) : Matrix3 + { + this.a += m.a; + this.b += m.b; + this.c += m.c; + this.e += m.e; + this.f += m.f; + this.g += m.g; + this.i += m.i; + this.j += m.j; + this.k += m.k; + return this; + } + + public function subtract(m:Matrix3) : Matrix3 + { + this.a -= m.a; + this.b -= m.b; + this.c -= m.c; + this.e -= m.e; + this.f -= m.f; + this.g -= m.g; + this.i -= m.i; + this.j -= m.j; + this.k -= m.k; + return this; + } + + public function transpose() : Matrix3 + { + var tmp:Number = this.b; + this.b = this.e; + this.e = tmp; + tmp = this.c; + this.c = this.i; + this.i = tmp; + tmp = this.g; + this.g = this.j; + this.j = tmp; + return this; + } + + public function method_345(vin:name_194, vout:name_194) : void + { + vout.x = this.a * vin.x + this.b * vin.y + this.c * vin.z; + vout.y = this.e * vin.x + this.f * vin.y + this.g * vin.z; + vout.z = this.i * vin.x + this.j * vin.y + this.k * vin.z; + } + + public function method_346(vin:name_194, vout:name_194) : void + { + vout.x = this.a * vin.x + this.e * vin.y + this.i * vin.z; + vout.y = this.b * vin.x + this.f * vin.y + this.j * vin.z; + vout.z = this.c * vin.x + this.g * vin.y + this.k * vin.z; + } + + public function transformVector3To3D(vin:name_194, vout:Vector3D) : void + { + vout.x = this.a * vin.x + this.b * vin.y + this.c * vin.z; + vout.y = this.e * vin.x + this.f * vin.y + this.g * vin.z; + vout.z = this.i * vin.x + this.j * vin.y + this.k * vin.z; + } + + public function method_349(v:name_194) : Matrix3 + { + this.a = this.f = this.k = 0; + this.b = -v.z; + this.c = v.y; + this.e = v.z; + this.g = -v.x; + this.i = -v.y; + this.j = v.x; + return this; + } + + public function copy(m:Matrix3) : Matrix3 + { + this.a = m.a; + this.b = m.b; + this.c = m.c; + this.e = m.e; + this.f = m.f; + this.g = m.g; + this.i = m.i; + this.j = m.j; + this.k = m.k; + return this; + } + + public function name_196(rx:Number, ry:Number, rz:Number) : void + { + var cosX:Number = Number(Math.cos(rx)); + var sinX:Number = Number(Math.sin(rx)); + var cosY:Number = Number(Math.cos(ry)); + var sinY:Number = Number(Math.sin(ry)); + var cosZ:Number = Number(Math.cos(rz)); + var sinZ:Number = Number(Math.sin(rz)); + var cosZsinY:Number = cosZ * sinY; + var sinZsinY:Number = sinZ * sinY; + this.a = cosZ * cosY; + this.b = cosZsinY * sinX - sinZ * cosX; + this.c = cosZsinY * cosX + sinZ * sinX; + this.e = sinZ * cosY; + this.f = sinZsinY * sinX + cosZ * cosX; + this.g = sinZsinY * cosX - cosZ * sinX; + this.i = -sinY; + this.j = cosY * sinX; + this.k = cosY * cosX; + } + + public function method_344(axis:name_194, angle:Number) : void + { + var c1:Number = Number(Math.cos(angle)); + var s:Number = Number(Math.sin(angle)); + var t:Number = 1 - c1; + var x:Number = axis.x; + var y:Number = axis.y; + var z:Number = axis.z; + this.a = t * x * x + c1; + this.b = t * x * y - z * s; + this.c = t * x * z + y * s; + this.e = t * x * y + z * s; + this.f = t * y * y + c1; + this.g = t * y * z - x * s; + this.i = t * x * z - y * s; + this.j = t * y * z + x * s; + this.k = t * z * z + c1; + } + + public function clone() : Matrix3 + { + return new Matrix3(this.a,this.b,this.c,this.e,this.f,this.g,this.i,this.j,this.k); + } + + public function toString() : String + { + return "[Matrix3 (" + this.a + ", " + this.b + ", " + this.c + "), (" + this.e + ", " + this.f + ", " + this.g + "), (" + this.i + ", " + this.j + ", " + this.k + ")]"; + } + + public function name_341(angles:name_194) : void + { + if(-1 < this.i && this.i < 1) + { + angles.x = Math.atan2(this.j,this.k); + angles.y = -Math.asin(this.i); + angles.z = Math.atan2(this.e,this.a); + } + else + { + angles.x = 0; + angles.y = this.i <= -1 ? Number(Math.PI) : -Math.PI; + angles.y *= 0.5; + angles.z = Math.atan2(-this.b,this.f); + } + } + } +} + diff --git a/src/package_46/Matrix4.as b/src/package_46/Matrix4.as new file mode 100644 index 0000000..3f46373 --- /dev/null +++ b/src/package_46/Matrix4.as @@ -0,0 +1,477 @@ +package package_46 +{ + public class Matrix4 + { + public static const IDENTITY:Matrix4 = new Matrix4(); + + 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 var j:Number; + + public var k:Number; + + public var l:Number; + + public function Matrix4(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 0, e:Number = 0, f:Number = 1, g:Number = 0, h:Number = 0, i:Number = 0, j:Number = 0, k:Number = 1, l:Number = 0) + { + super(); + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.e = e; + this.f = f; + this.g = g; + this.h = h; + this.i = i; + this.j = j; + this.k = k; + this.l = l; + } + + public function method_347() : Matrix4 + { + this.a = this.f = this.k = 1; + this.b = this.c = this.e = this.g = this.i = this.j = this.d = this.h = this.l = 0; + return this; + } + + public function invert() : Matrix4 + { + var aa:Number = this.a; + var bb:Number = this.b; + var cc:Number = this.c; + var dd:Number = this.d; + var ee:Number = this.e; + var ff:Number = this.f; + var gg:Number = this.g; + var hh:Number = this.h; + var ii:Number = this.i; + var jj:Number = this.j; + var kk:Number = this.k; + var ll:Number = this.l; + var det:Number = -cc * ff * ii + bb * gg * ii + cc * ee * jj - aa * gg * jj - bb * ee * kk + aa * ff * kk; + this.a = (-gg * jj + ff * kk) / det; + this.b = (cc * jj - bb * kk) / det; + this.c = (-cc * ff + bb * gg) / det; + this.d = (dd * gg * jj - cc * hh * jj - dd * ff * kk + bb * hh * kk + cc * ff * ll - bb * gg * ll) / det; + this.e = (gg * ii - ee * kk) / det; + this.f = (-cc * ii + aa * kk) / det; + this.g = (cc * ee - aa * gg) / det; + this.h = (cc * hh * ii - dd * gg * ii + dd * ee * kk - aa * hh * kk - cc * ee * ll + aa * gg * ll) / det; + this.i = (-ff * ii + ee * jj) / det; + this.j = (bb * ii - aa * jj) / det; + this.k = (-bb * ee + aa * ff) / det; + this.l = (dd * ff * ii - bb * hh * ii - dd * ee * jj + aa * hh * jj + bb * ee * ll - aa * ff * ll) / det; + return this; + } + + public function append(m:Matrix4) : Matrix4 + { + var aa:Number = this.a; + var bb:Number = this.b; + var cc:Number = this.c; + var dd:Number = this.d; + var ee:Number = this.e; + var ff:Number = this.f; + var gg:Number = this.g; + var hh:Number = this.h; + var ii:Number = this.i; + var jj:Number = this.j; + var kk:Number = this.k; + var ll:Number = this.l; + this.a = m.a * aa + m.b * ee + m.c * ii; + this.b = m.a * bb + m.b * ff + m.c * jj; + this.c = m.a * cc + m.b * gg + m.c * kk; + this.d = m.a * dd + m.b * hh + m.c * ll + m.d; + this.e = m.e * aa + m.f * ee + m.g * ii; + this.f = m.e * bb + m.f * ff + m.g * jj; + this.g = m.e * cc + m.f * gg + m.g * kk; + this.h = m.e * dd + m.f * hh + m.g * ll + m.h; + this.i = m.i * aa + m.j * ee + m.k * ii; + this.j = m.i * bb + m.j * ff + m.k * jj; + this.k = m.i * cc + m.j * gg + m.k * kk; + this.l = m.i * dd + m.j * hh + m.k * ll + m.l; + return this; + } + + public function prepend(m:Matrix4) : Matrix4 + { + var aa:Number = this.a; + var bb:Number = this.b; + var cc:Number = this.c; + var dd:Number = this.d; + var ee:Number = this.e; + var ff:Number = this.f; + var gg:Number = this.g; + var hh:Number = this.h; + var ii:Number = this.i; + var jj:Number = this.j; + var kk:Number = this.k; + var ll:Number = this.l; + this.a = aa * m.a + bb * m.e + cc * m.i; + this.b = aa * m.b + bb * m.f + cc * m.j; + this.c = aa * m.c + bb * m.g + cc * m.k; + this.d = aa * m.d + bb * m.h + cc * m.l + dd; + this.e = ee * m.a + ff * m.e + gg * m.i; + this.f = ee * m.b + ff * m.f + gg * m.j; + this.g = ee * m.c + ff * m.g + gg * m.k; + this.h = ee * m.d + ff * m.h + gg * m.l + hh; + this.i = ii * m.a + jj * m.e + kk * m.i; + this.j = ii * m.b + jj * m.f + kk * m.j; + this.k = ii * m.c + jj * m.g + kk * m.k; + this.l = ii * m.d + jj * m.h + kk * m.l + ll; + return this; + } + + public function add(m:Matrix4) : Matrix4 + { + this.a += m.a; + this.b += m.b; + this.c += m.c; + this.d += m.d; + this.e += m.e; + this.f += m.f; + this.g += m.g; + this.h += m.h; + this.i += m.i; + this.j += m.j; + this.k += m.k; + this.l += m.l; + return this; + } + + public function subtract(m:Matrix4) : Matrix4 + { + this.a -= m.a; + this.b -= m.b; + this.c -= m.c; + this.d -= m.d; + this.e -= m.e; + this.f -= m.f; + this.g -= m.g; + this.h -= m.h; + this.i -= m.i; + this.j -= m.j; + this.k -= m.k; + this.l -= m.l; + return this; + } + + public function method_353(vin:name_194, vout:name_194) : void + { + vout.x = this.a * vin.x + this.b * vin.y + this.c * vin.z + this.d; + vout.y = this.e * vin.x + this.f * vin.y + this.g * vin.z + this.h; + vout.z = this.i * vin.x + this.j * vin.y + this.k * vin.z + this.l; + } + + public function transformPointTransposed(vin:name_194, vout:name_194) : void + { + var xx:Number = vin.x - this.d; + var yy:Number = vin.y - this.h; + var zz:Number = vin.z - this.l; + vout.x = this.a * xx + this.e * yy + this.i * zz; + vout.y = this.b * xx + this.f * yy + this.j * zz; + vout.z = this.c * xx + this.g * yy + this.k * zz; + } + + public function method_354(arrin:Vector., arrout:Vector.) : void + { + var vin:name_194 = null; + var vout:name_194 = null; + var len:int = int(arrin.length); + for(var idx:int = 0; idx < len; idx++) + { + vin = arrin[idx]; + vout = arrout[idx]; + vout.x = this.a * vin.x + this.b * vin.y + this.c * vin.z + this.d; + vout.y = this.e * vin.x + this.f * vin.y + this.g * vin.z + this.h; + vout.z = this.i * vin.x + this.j * vin.y + this.k * vin.z + this.l; + } + } + + public function method_357(arrin:Vector., arrout:Vector., len:int) : void + { + var vin:name_194 = null; + var vout:name_194 = null; + for(var idx:int = 0; idx < len; idx++) + { + vin = arrin[idx]; + vout = arrout[idx]; + vout.x = this.a * vin.x + this.b * vin.y + this.c * vin.z + this.d; + vout.y = this.e * vin.x + this.f * vin.y + this.g * vin.z + this.h; + vout.z = this.i * vin.x + this.j * vin.y + this.k * vin.z + this.l; + } + } + + public function method_351(arrin:Vector., arrout:Vector.) : void + { + var vin:name_194 = null; + var vout:name_194 = null; + var xx:Number = NaN; + var yy:Number = NaN; + var zz:Number = NaN; + var len:int = int(arrin.length); + for(var idx:int = 0; idx < len; idx++) + { + vin = arrin[idx]; + vout = arrout[idx]; + xx = vin.x - this.d; + yy = vin.y - this.h; + zz = vin.z - this.l; + vout.x = this.a * xx + this.e * yy + this.i * zz; + vout.y = this.b * xx + this.f * yy + this.j * zz; + vout.z = this.c * xx + this.g * yy + this.k * zz; + } + } + + public function method_352(arrin:Vector., arrout:Vector., len:int) : void + { + var vin:name_194 = null; + var vout:name_194 = null; + var xx:Number = NaN; + var yy:Number = NaN; + var zz:Number = NaN; + for(var idx:int = 0; idx < len; idx++) + { + vin = arrin[idx]; + vout = arrout[idx]; + xx = vin.x - this.d; + yy = vin.y - this.h; + zz = vin.z - this.l; + vout.x = this.a * xx + this.e * yy + this.i * zz; + vout.y = this.b * xx + this.f * yy + this.j * zz; + vout.z = this.c * xx + this.g * yy + this.k * zz; + } + } + + public function getAxis(idx:int, axis:name_194) : void + { + switch(idx) + { + case 0: + axis.x = this.a; + axis.y = this.e; + axis.z = this.i; + return; + case 1: + axis.x = this.b; + axis.y = this.f; + axis.z = this.j; + return; + case 2: + axis.x = this.c; + axis.y = this.g; + axis.z = this.k; + return; + case 3: + axis.x = this.d; + axis.y = this.h; + axis.z = this.l; + return; + default: + return; + } + } + + public function method_356(xAxis:name_194, yAxis:name_194, zAxis:name_194, pos:name_194) : void + { + this.a = xAxis.x; + this.e = xAxis.y; + this.i = xAxis.z; + this.b = yAxis.x; + this.f = yAxis.y; + this.j = yAxis.z; + this.c = zAxis.x; + this.g = zAxis.y; + this.k = zAxis.z; + this.d = pos.x; + this.h = pos.y; + this.l = pos.z; + } + + public function method_345(vin:name_194, vout:name_194) : void + { + vout.x = this.a * vin.x + this.b * vin.y + this.c * vin.z; + vout.y = this.e * vin.x + this.f * vin.y + this.g * vin.z; + vout.z = this.i * vin.x + this.j * vin.y + this.k * vin.z; + } + + public function method_346(vin:name_194, vout:name_194) : void + { + vout.x = this.a * vin.x + this.e * vin.y + this.i * vin.z; + vout.y = this.b * vin.x + this.f * vin.y + this.j * vin.z; + vout.z = this.c * vin.x + this.g * vin.y + this.k * vin.z; + } + + public function copy(m:Matrix4) : Matrix4 + { + this.a = m.a; + this.b = m.b; + this.c = m.c; + this.d = m.d; + this.e = m.e; + this.f = m.f; + this.g = m.g; + this.h = m.h; + this.i = m.i; + this.j = m.j; + this.k = m.k; + this.l = m.l; + return this; + } + + public function method_350(m:Matrix3, offset:name_194) : Matrix4 + { + this.a = m.a; + this.b = m.b; + this.c = m.c; + this.d = offset.x; + this.e = m.e; + this.f = m.f; + this.g = m.g; + this.h = offset.y; + this.i = m.i; + this.j = m.j; + this.k = m.k; + this.l = offset.z; + return this; + } + + public function method_355(m:Matrix3) : Matrix4 + { + this.a = m.a; + this.b = m.b; + this.c = m.c; + this.e = m.e; + this.f = m.f; + this.g = m.g; + this.i = m.i; + this.j = m.j; + this.k = m.k; + return this; + } + + public function name_341(angles:name_194) : void + { + if(-1 < this.i && this.i < 1) + { + angles.x = Math.atan2(this.j,this.k); + angles.y = -Math.asin(this.i); + angles.z = Math.atan2(this.e,this.a); + } + else + { + angles.x = 0; + angles.y = this.i <= -1 ? Number(Math.PI) : -Math.PI; + angles.y *= 0.5; + angles.z = Math.atan2(-this.b,this.f); + } + } + + public function name_201(pos:name_194) : void + { + this.d = pos.x; + this.h = pos.y; + this.l = pos.z; + } + + public function name_75(x:Number, y:Number, z:Number) : void + { + this.d = x; + this.h = y; + this.l = z; + } + + public function clone() : Matrix4 + { + return new Matrix4(this.a,this.b,this.c,this.d,this.e,this.f,this.g,this.h,this.i,this.j,this.k,this.l); + } + + public function toString() : String + { + return "[Matrix4 [" + this.a.toFixed(3) + " " + this.b.toFixed(3) + " " + this.c.toFixed(3) + " " + this.d.toFixed(3) + "] [" + this.e.toFixed(3) + " " + this.f.toFixed(3) + " " + this.g.toFixed(3) + " " + this.h.toFixed(3) + "] [" + this.i.toFixed(3) + " " + this.j.toFixed(3) + " " + this.k.toFixed(3) + " " + this.l.toFixed(3) + "]]"; + } + + public function name_196(rx:Number, ry:Number, rz:Number) : void + { + var cosX:Number = Number(Math.cos(rx)); + var sinX:Number = Number(Math.sin(rx)); + var cosY:Number = Number(Math.cos(ry)); + var sinY:Number = Number(Math.sin(ry)); + var cosZ:Number = Number(Math.cos(rz)); + var sinZ:Number = Number(Math.sin(rz)); + var cosZsinY:Number = cosZ * sinY; + var sinZsinY:Number = sinZ * sinY; + this.a = cosZ * cosY; + this.b = cosZsinY * sinX - sinZ * cosX; + this.c = cosZsinY * cosX + sinZ * sinX; + this.e = sinZ * cosY; + this.f = sinZsinY * sinX + cosZ * cosX; + this.g = sinZsinY * cosX - cosZ * sinX; + this.i = -sinY; + this.j = cosY * sinX; + this.k = cosY * cosX; + } + + public function setMatrix(x:Number, y:Number, z:Number, rx:Number, ry:Number, rz:Number) : void + { + this.d = x; + this.h = y; + this.l = z; + var cosX:Number = Number(Math.cos(rx)); + var sinX:Number = Number(Math.sin(rx)); + var cosY:Number = Number(Math.cos(ry)); + var sinY:Number = Number(Math.sin(ry)); + var cosZ:Number = Number(Math.cos(rz)); + var sinZ:Number = Number(Math.sin(rz)); + var cosZsinY:Number = cosZ * sinY; + var sinZsinY:Number = sinZ * sinY; + this.a = cosZ * cosY; + this.b = cosZsinY * sinX - sinZ * cosX; + this.c = cosZsinY * cosX + sinZ * sinX; + this.e = sinZ * cosY; + this.f = sinZsinY * sinX + cosZ * cosX; + this.g = sinZsinY * cosX - cosZ * sinX; + this.i = -sinY; + this.j = cosY * sinX; + this.k = cosY * cosX; + } + + public function method_344(axis:name_194, angle:Number) : void + { + var c1:Number = Number(Math.cos(angle)); + var s:Number = Number(Math.sin(angle)); + var t:Number = 1 - c1; + var x:Number = axis.x; + var y:Number = axis.y; + var z:Number = axis.z; + this.a = t * x * x + c1; + this.b = t * x * y - z * s; + this.c = t * x * z + y * s; + this.e = t * x * y + z * s; + this.f = t * y * y + c1; + this.g = t * y * z - x * s; + this.i = t * x * z - y * s; + this.j = t * y * z + x * s; + this.k = t * z * z + c1; + } + } +} + diff --git a/src/package_46/name_194.as b/src/package_46/name_194.as new file mode 100644 index 0000000..27f50c6 --- /dev/null +++ b/src/package_46/name_194.as @@ -0,0 +1,272 @@ +package package_46 +{ + import flash.geom.Vector3D; + + public class name_194 + { + public static const ZERO:name_194 = new name_194(0,0,0); + + public static const X_AXIS:name_194 = new name_194(1,0,0); + + public static const Y_AXIS:name_194 = new name_194(0,1,0); + + public static const Z_AXIS:name_194 = new name_194(0,0,1); + + public static const RIGHT:name_194 = new name_194(1,0,0); + + public static const LEFT:name_194 = new name_194(-1,0,0); + + public static const FORWARD:name_194 = new name_194(0,1,0); + + public static const BACK:name_194 = new name_194(0,-1,0); + + public static const UP:name_194 = new name_194(0,0,1); + + public static const DOWN:name_194 = new name_194(0,0,-1); + + public var x:Number; + + public var y:Number; + + public var z:Number; + + public function name_194(x:Number = 0, y:Number = 0, z:Number = 0) + { + super(); + this.x = x; + this.y = y; + this.z = z; + } + + public function length() : Number + { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + } + + public function method_365() : Number + { + return this.x * this.x + this.y * this.y + this.z * this.z; + } + + public function method_358(length:Number) : name_194 + { + var k:Number = NaN; + var d:Number = this.x * this.x + this.y * this.y + this.z * this.z; + if(d == 0) + { + this.x = length; + } + else + { + k = length / Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + this.x *= k; + this.y *= k; + this.z *= k; + } + return this; + } + + public function normalize() : name_194 + { + var d:Number = this.x * this.x + this.y * this.y + this.z * this.z; + if(d == 0) + { + this.x = 1; + } + else + { + d = Number(Math.sqrt(d)); + this.x /= d; + this.y /= d; + this.z /= d; + } + return this; + } + + public function add(v:name_194) : name_194 + { + this.x += v.x; + this.y += v.y; + this.z += v.z; + return this; + } + + public function method_362(k:Number, v:name_194) : name_194 + { + this.x += k * v.x; + this.y += k * v.y; + this.z += k * v.z; + return this; + } + + public function subtract(v:name_194) : name_194 + { + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + return this; + } + + public function sum(a:name_194, b:name_194) : name_194 + { + this.x = a.x + b.x; + this.y = a.y + b.y; + this.z = a.z + b.z; + return this; + } + + public function method_366(a:name_194, b:name_194) : name_194 + { + this.x = a.x - b.x; + this.y = a.y - b.y; + this.z = a.z - b.z; + return this; + } + + public function scale(k:Number) : name_194 + { + this.x *= k; + this.y *= k; + this.z *= k; + return this; + } + + public function reverse() : name_194 + { + this.x = -this.x; + this.y = -this.y; + this.z = -this.z; + return this; + } + + public function dot(v:name_194) : Number + { + return this.x * v.x + this.y * v.y + this.z * v.z; + } + + public function method_360(v:name_194) : name_194 + { + var xx:Number = this.y * v.z - this.z * v.y; + var yy:Number = this.z * v.x - this.x * v.z; + var zz:Number = this.x * v.y - this.y * v.x; + this.x = xx; + this.y = yy; + this.z = zz; + return this; + } + + public function cross2(a:name_194, b:name_194) : name_194 + { + this.x = a.y * b.z - a.z * b.y; + this.y = a.z * b.x - a.x * b.z; + this.z = a.x * b.y - a.y * b.x; + return this; + } + + public function transform3(m:Matrix3) : name_194 + { + var xx:Number = this.x; + var yy:Number = this.y; + var zz:Number = this.z; + this.x = m.a * xx + m.b * yy + m.c * zz; + this.y = m.e * xx + m.f * yy + m.g * zz; + this.z = m.i * xx + m.j * yy + m.k * zz; + return this; + } + + public function transformTransposed3(m:Matrix3) : name_194 + { + var xx:Number = this.x; + var yy:Number = this.y; + var zz:Number = this.z; + this.x = m.a * xx + m.e * yy + m.i * zz; + this.y = m.b * xx + m.f * yy + m.j * zz; + this.z = m.c * xx + m.g * yy + m.k * zz; + return this; + } + + public function transform4(m:Matrix4) : name_194 + { + var xx:Number = this.x; + var yy:Number = this.y; + var zz:Number = this.z; + this.x = m.a * xx + m.b * yy + m.c * zz + m.d; + this.y = m.e * xx + m.f * yy + m.g * zz + m.h; + this.z = m.i * xx + m.j * yy + m.k * zz + m.l; + return this; + } + + public function transformTransposed4(m:Matrix4) : name_194 + { + var xx:Number = this.x - m.d; + var yy:Number = this.y - m.h; + var zz:Number = this.z - m.l; + this.x = m.a * xx + m.e * yy + m.i * zz; + this.y = m.b * xx + m.f * yy + m.j * zz; + this.z = m.c * xx + m.g * yy + m.k * zz; + return this; + } + + public function method_359(m:Matrix4) : name_194 + { + var xx:Number = this.x; + var yy:Number = this.y; + var zz:Number = this.z; + this.x = m.a * xx + m.b * yy + m.c * zz; + this.y = m.e * xx + m.f * yy + m.g * zz; + this.z = m.i * xx + m.j * yy + m.k * zz; + return this; + } + + public function reset(x:Number = 0, y:Number = 0, z:Number = 0) : name_194 + { + this.x = x; + this.y = y; + this.z = z; + return this; + } + + public function copy(v:name_194) : name_194 + { + this.x = v.x; + this.y = v.y; + this.z = v.z; + return this; + } + + public function clone() : name_194 + { + return new name_194(this.x,this.y,this.z); + } + + public function method_363(result:Vector3D) : Vector3D + { + result.x = this.x; + result.y = this.y; + result.z = this.z; + return result; + } + + public function method_361(source:Vector3D) : name_194 + { + this.x = source.x; + this.y = source.y; + this.z = source.z; + return this; + } + + public function method_364(v:name_194) : Number + { + var dx:Number = this.x - v.x; + var dy:Number = this.y - v.y; + var dz:Number = this.z - v.z; + return Math.sqrt(dx * dx + dy * dy + dz * dz); + } + + public function toString() : String + { + return "Vector3(" + this.x + ", " + this.y + ", " + this.z + ")"; + } + } +} + diff --git a/src/package_46/name_566.as b/src/package_46/name_566.as new file mode 100644 index 0000000..fa7fab3 --- /dev/null +++ b/src/package_46/name_566.as @@ -0,0 +1,455 @@ +package package_46 +{ + import flash.geom.Vector3D; + + public class name_566 + { + public static const IDENTITY:name_566 = new name_566(); + + private static var _q:name_566 = new name_566(); + + public var w:Number; + + public var x:Number; + + public var y:Number; + + public var z:Number; + + public function name_566(w:Number = 1, x:Number = 0, y:Number = 0, z:Number = 0) + { + super(); + this.w = w; + this.x = x; + this.y = y; + this.z = z; + } + + public static function method_552(q1:name_566, q2:name_566, result:name_566) : void + { + result.w = q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z; + result.x = q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y; + result.y = q1.w * q2.y + q1.y * q2.w + q1.z * q2.x - q1.x * q2.z; + result.z = q1.w * q2.z + q1.z * q2.w + q1.x * q2.y - q1.y * q2.x; + } + + public static function method_771(axis:name_194, angle:Number) : name_566 + { + var q:name_566 = new name_566(); + q.method_764(axis,angle); + return q; + } + + public static function method_765(x:Number, y:Number, z:Number, angle:Number) : name_566 + { + var q:name_566 = new name_566(); + q.method_763(x,y,z,angle); + return q; + } + + public static function method_767(x:Number, y:Number, z:Number) : name_566 + { + var q:name_566 = new name_566(); + q.method_763(1,0,0,x); + _q.method_763(0,1,0,y); + q.append(_q); + q.normalize(); + _q.method_763(0,0,1,z); + q.append(_q); + q.normalize(); + return q; + } + + public function reset(w:Number = 1, x:Number = 0, y:Number = 0, z:Number = 0) : name_566 + { + this.w = w; + this.x = x; + this.y = y; + this.z = z; + return this; + } + + public function normalize() : name_566 + { + var d:Number = this.w * this.w + this.x * this.x + this.y * this.y + this.z * this.z; + if(d == 0) + { + this.w = 1; + } + else + { + d = 1 / Math.sqrt(d); + this.w *= d; + this.x *= d; + this.y *= d; + this.z *= d; + } + return this; + } + + public function prepend(q:name_566) : name_566 + { + var ww:Number = this.w * q.w - this.x * q.x - this.y * q.y - this.z * q.z; + var xx:Number = this.w * q.x + this.x * q.w + this.y * q.z - this.z * q.y; + var yy:Number = this.w * q.y + this.y * q.w + this.z * q.x - this.x * q.z; + var zz:Number = this.w * q.z + this.z * q.w + this.x * q.y - this.y * q.x; + this.w = ww; + this.x = xx; + this.y = yy; + this.z = zz; + return this; + } + + public function append(q:name_566) : name_566 + { + var ww:Number = q.w * this.w - q.x * this.x - q.y * this.y - q.z * this.z; + var xx:Number = q.w * this.x + q.x * this.w + q.y * this.z - q.z * this.y; + var yy:Number = q.w * this.y + q.y * this.w + q.z * this.x - q.x * this.z; + var zz:Number = q.w * this.z + q.z * this.w + q.x * this.y - q.y * this.x; + this.w = ww; + this.x = xx; + this.y = yy; + this.z = zz; + return this; + } + + public function method_772(v:name_194) : name_566 + { + var ww:Number = -v.x * this.x - v.y * this.y - v.z * this.z; + var xx:Number = v.x * this.w + v.y * this.z - v.z * this.y; + var yy:Number = v.y * this.w + v.z * this.x - v.x * this.z; + var zz:Number = v.z * this.w + v.x * this.y - v.y * this.x; + this.w = ww; + this.x = xx; + this.y = yy; + this.z = zz; + return this; + } + + public function name_603(v:name_194, scale:Number) : name_566 + { + var vx:Number = v.x * scale; + var vy:Number = v.y * scale; + var vz:Number = v.z * scale; + var ww:Number = -this.x * vx - this.y * vy - this.z * vz; + var xx:Number = vx * this.w + vy * this.z - vz * this.y; + var yy:Number = vy * this.w + vz * this.x - vx * this.z; + var zz:Number = vz * this.w + vx * this.y - vy * this.x; + this.w += 0.5 * ww; + this.x += 0.5 * xx; + this.y += 0.5 * yy; + this.z += 0.5 * zz; + var d:Number = this.w * this.w + this.x * this.x + this.y * this.y + this.z * this.z; + if(d == 0) + { + this.w = 1; + } + else + { + d = 1 / Math.sqrt(d); + this.w *= d; + this.x *= d; + this.y *= d; + this.z *= d; + } + return this; + } + + public function toMatrix3(m:Matrix3) : name_566 + { + var xx2:Number = NaN; + var yy2:Number = NaN; + var zz2:Number = NaN; + var yz2:Number = NaN; + var zx2:Number = NaN; + var wx2:Number = NaN; + xx2 = 2 * this.x * this.x; + yy2 = 2 * this.y * this.y; + zz2 = 2 * this.z * this.z; + var xy2:Number = 2 * this.x * this.y; + yz2 = 2 * this.y * this.z; + zx2 = 2 * this.z * this.x; + wx2 = 2 * this.w * this.x; + var wy2:Number = 2 * this.w * this.y; + var wz2:Number = 2 * this.w * this.z; + m.a = 1 - yy2 - zz2; + m.b = xy2 - wz2; + m.c = zx2 + wy2; + m.e = xy2 + wz2; + m.f = 1 - xx2 - zz2; + m.g = yz2 - wx2; + m.i = zx2 - wy2; + m.j = yz2 + wx2; + m.k = 1 - xx2 - yy2; + return this; + } + + public function toMatrix4(m:Matrix4) : name_566 + { + var zz2:Number = NaN; + var xy2:Number = NaN; + var yz2:Number = NaN; + var wx2:Number = NaN; + var wy2:Number = NaN; + var xx2:Number = 2 * this.x * this.x; + var yy2:Number = 2 * this.y * this.y; + zz2 = 2 * this.z * this.z; + xy2 = 2 * this.x * this.y; + yz2 = 2 * this.y * this.z; + var zx2:Number = 2 * this.z * this.x; + wx2 = 2 * this.w * this.x; + wy2 = 2 * this.w * this.y; + var wz2:Number = 2 * this.w * this.z; + m.a = 1 - yy2 - zz2; + m.b = xy2 - wz2; + m.c = zx2 + wy2; + m.e = xy2 + wz2; + m.f = 1 - xx2 - zz2; + m.g = yz2 - wx2; + m.i = zx2 - wy2; + m.j = yz2 + wx2; + m.k = 1 - xx2 - yy2; + return this; + } + + public function length() : Number + { + return Math.sqrt(this.w * this.w + this.x * this.x + this.y * this.y + this.z * this.z); + } + + public function method_365() : Number + { + return this.w * this.w + this.x * this.x + this.y * this.y + this.z * this.z; + } + + public function method_764(axis:name_194, angle:Number) : name_566 + { + this.w = Math.cos(0.5 * angle); + var k:Number = Math.sin(0.5 * angle) / Math.sqrt(axis.x * axis.x + axis.y * axis.y + axis.z * axis.z); + this.x = axis.x * k; + this.y = axis.y * k; + this.z = axis.z * k; + return this; + } + + public function method_763(x:Number, y:Number, z:Number, angle:Number) : name_566 + { + this.w = Math.cos(0.5 * angle); + var k:Number = Math.sin(0.5 * angle) / Math.sqrt(x * x + y * y + z * z); + this.x = x * k; + this.y = y * k; + this.z = z * k; + return this; + } + + public function method_770(v:name_194 = null) : name_194 + { + var angle:Number = NaN; + var coeff:Number = NaN; + if(this.w < -1 || this.w > 1) + { + this.normalize(); + } + if(v == null) + { + v = new name_194(); + } + if(this.w > -1 && this.w < 1) + { + if(this.w == 0) + { + v.x = this.x; + v.y = this.y; + v.z = this.z; + } + else + { + angle = 2 * Math.acos(this.w); + coeff = 1 / Math.sqrt(1 - this.w * this.w); + v.x = this.x * coeff * angle; + v.y = this.y * coeff * angle; + v.z = this.z * coeff * angle; + } + } + else + { + v.x = 0; + v.y = 0; + v.z = 0; + } + return v; + } + + public function name_341(angles:name_194) : name_194 + { + var qi2:Number = 2 * this.x * this.x; + var qj2:Number = 2 * this.y * this.y; + var qk2:Number = 2 * this.z * this.z; + var qij:Number = 2 * this.x * this.y; + var qjk:Number = 2 * this.y * this.z; + var qki:Number = 2 * this.z * this.x; + var qri:Number = 2 * this.w * this.x; + var qrj:Number = 2 * this.w * this.y; + var qrk:Number = 2 * this.w * this.z; + var aa:Number = 1 - qj2 - qk2; + var bb:Number = qij - qrk; + var ee:Number = qij + qrk; + var ff:Number = 1 - qi2 - qk2; + var ii:Number = qki - qrj; + var jj:Number = qjk + qri; + var kk:Number = 1 - qi2 - qj2; + if(-1 < ii && ii < 1) + { + if(angles == null) + { + angles = new name_194(Math.atan2(jj,kk),-Math.asin(ii),Math.atan2(ee,aa)); + } + else + { + angles.x = Math.atan2(jj,kk); + angles.y = -Math.asin(ii); + angles.z = Math.atan2(ee,aa); + } + } + else if(angles == null) + { + angles = new name_194(0,0.5 * (ii <= -1 ? Math.PI : -Math.PI),Math.atan2(-bb,ff)); + } + else + { + angles.x = 0; + angles.y = ii <= -1 ? Number(Math.PI) : -Math.PI; + angles.y *= 0.5; + angles.z = Math.atan2(-bb,ff); + } + return angles; + } + + public function method_768(x:Number, y:Number, z:Number) : void + { + this.method_763(1,0,0,x); + _q.method_763(0,1,0,y); + this.append(_q); + this.normalize(); + _q.method_763(0,0,1,z); + this.append(_q); + this.normalize(); + } + + public function method_769() : void + { + this.x = -this.x; + this.y = -this.y; + this.z = -this.z; + } + + public function method_766(q1:name_566, q2:name_566, t:Number) : name_566 + { + var d:Number = 1 - t; + this.w = q1.w * d + q2.w * t; + this.x = q1.x * d + q2.x * t; + this.y = q1.y * d + q2.y * t; + this.z = q1.z * d + q2.z * t; + d = this.w * this.w + this.x * this.x + this.y * this.y + this.z * this.z; + if(d == 0) + { + this.w = 1; + } + else + { + d = 1 / Math.sqrt(d); + this.w *= d; + this.x *= d; + this.y *= d; + this.z *= d; + } + return this; + } + + public function subtract(q:name_566) : name_566 + { + this.w -= q.w; + this.x -= q.x; + this.y -= q.y; + this.z -= q.z; + return this; + } + + public function method_366(q1:name_566, q2:name_566) : name_566 + { + this.w = q2.w - q1.w; + this.x = q2.x - q1.x; + this.y = q2.y - q1.y; + this.z = q2.z - q1.z; + return this; + } + + public function copy(q:name_566) : name_566 + { + this.w = q.w; + this.x = q.x; + this.y = q.y; + this.z = q.z; + return this; + } + + public function method_363(result:Vector3D) : Vector3D + { + result.x = this.x; + result.y = this.y; + result.z = this.z; + result.w = this.w; + return result; + } + + public function clone() : name_566 + { + return new name_566(this.w,this.x,this.y,this.z); + } + + public function toString() : String + { + return "[" + this.w + ", " + this.x + ", " + this.y + ", " + this.z + "]"; + } + + public function name_602(a:name_566, b:name_566, t:Number) : name_566 + { + var k1:Number = NaN; + var k2:Number = NaN; + var theta:Number = NaN; + var sine:Number = NaN; + var beta:Number = NaN; + var alpha:Number = NaN; + var flip:Number = 1; + var cosine:Number = a.w * b.w + a.x * b.x + a.y * b.y + a.z * b.z; + if(cosine < 0) + { + cosine = -cosine; + flip = -1; + } + if(1 - cosine < 0.001) + { + k1 = 1 - t; + k2 = t * flip; + this.w = a.w * k1 + b.w * k2; + this.x = a.x * k1 + b.x * k2; + this.y = a.y * k1 + b.y * k2; + this.z = a.z * k1 + b.z * k2; + this.normalize(); + } + else + { + theta = Number(Math.acos(cosine)); + sine = Number(Math.sin(theta)); + beta = Math.sin((1 - t) * theta) / sine; + alpha = Math.sin(t * theta) / sine * flip; + this.w = a.w * beta + b.w * alpha; + this.x = a.x * beta + b.x * alpha; + this.y = a.y * beta + b.y * alpha; + this.z = a.z * beta + b.z * alpha; + } + return this; + } + } +} + diff --git a/src/package_47/name_193.as b/src/package_47/name_193.as new file mode 100644 index 0000000..1126ee7 --- /dev/null +++ b/src/package_47/name_193.as @@ -0,0 +1,158 @@ +package package_47 +{ + import alternativa.engine3d.alternativa3d; + import package_10.class_17; + import package_10.name_17; + import package_18.name_44; + import package_19.name_380; + import package_21.name_78; + import package_4.class_5; + import package_46.name_194; + import package_71.name_234; + import package_71.name_277; + import package_75.class_15; + import package_84.name_253; + import package_85.class_22; + import package_85.name_314; + import package_85.name_481; + + use namespace alternativa3d; + + public class name_193 extends class_17 implements class_22 + { + private static var vector:name_194 = new name_194(); + + private var turret:name_234; + + private var var_231:name_380; + + private var var_232:name_277; + + private var physicsComponent:class_15; + + private var var_233:class_5; + + private var renderSystem:name_44; + + public function name_193(turret:name_234) + { + super(); + this.setTurret(turret); + } + + public function name_329() : name_78 + { + return this.var_231; + } + + override public function initComponent() : void + { + this.physicsComponent = class_15(entity.getComponentStrict(class_15)); + name_314(entity.getComponentStrict(name_314)).name_60(this); + this.method_343(); + } + + private function method_343() : void + { + var trackedChassisGraphicsComponent:name_253 = null; + if(entity != null) + { + trackedChassisGraphicsComponent = name_253(entity.getComponent(name_253)); + if(trackedChassisGraphicsComponent != null) + { + trackedChassisGraphicsComponent.name_482.addChild(this.var_231); + } + } + } + + override public function addToGame(gameKernel:name_17) : void + { + this.renderSystem = gameKernel.name_5(); + } + + override public function removeFromGame(gameKernel:name_17) : void + { + this.removeFromScene(); + this.renderSystem = null; + } + + public function render() : void + { + if(this.turret == null) + { + return; + } + this.physicsComponent.getSkinMountPoint(vector); + this.var_231.x = vector.x; + this.var_231.y = vector.y; + this.var_231.z = vector.z; + this.var_231.rotationZ = this.physicsComponent.getInterpolatedTurretDirection(); + } + + public function setMaterial(materialType:name_481) : void + { + switch(materialType) + { + case name_481.DEAD: + this.var_232.deadMaterial.alpha = 1; + this.var_231.setMaterialToAllSurfaces(this.var_232.deadMaterial); + this.var_233 = this.var_232.deadMaterial; + break; + case name_481.ACTIVATING: + this.var_232.normalMaterial.alpha = 0.5; + this.var_231.setMaterialToAllSurfaces(this.var_232.normalMaterial); + this.var_233 = this.var_232.normalMaterial; + break; + case name_481.NORMAL: + this.var_232.normalMaterial.alpha = 1; + this.var_231.setMaterialToAllSurfaces(this.var_232.normalMaterial); + this.var_233 = this.var_232.normalMaterial; + } + } + + public function addToScene() : void + { + } + + public function removeFromScene() : void + { + } + + public function method_342(value:Number) : void + { + this.var_233.alpha = value; + } + + public function setTurret(value:name_234) : void + { + if(this.turret == value) + { + return; + } + if(this.turret != null) + { + this.var_231.alternativa3d::removeFromParent(); + } + this.turret = value; + if(this.turret != null) + { + this.var_231 = new name_380(); + this.var_231.geometry = this.turret.geometry; + this.var_231.addSurface(this.var_233,0,this.turret.geometry.numTriangles); + this.var_231.calculateBoundBox(); + this.method_343(); + } + } + + public function name_348(materials:name_277) : void + { + this.var_232 = materials; + } + + public function get name_198() : name_380 + { + return this.var_231; + } + } +} + diff --git a/src/package_48/A3D2AmbientLight.as b/src/package_48/A3D2AmbientLight.as new file mode 100644 index 0000000..176afe9 --- /dev/null +++ b/src/package_48/A3D2AmbientLight.as @@ -0,0 +1,131 @@ +package package_48 +{ + import package_33.name_155; + + public class A3D2AmbientLight + { + private var var_268:int; + + private var var_265:uint; + + private var var_101:name_155; + + private var var_264:Number; + + private var _name:String; + + private var var_270:name_155; + + private var var_262:A3D2Transform; + + private var var_267:Boolean; + + public function A3D2AmbientLight(boundBoxId:int, color:uint, id:name_155, intensity:Number, name:String, parentId:name_155, transform:A3D2Transform, visible:Boolean) + { + super(); + this.var_268 = boundBoxId; + this.var_265 = color; + this.var_101 = id; + this.var_264 = intensity; + this._name = name; + this.var_270 = parentId; + this.var_262 = transform; + this.var_267 = visible; + } + + public function get boundBoxId() : int + { + return this.var_268; + } + + public function set boundBoxId(value:int) : void + { + this.var_268 = value; + } + + public function get color() : uint + { + return this.var_265; + } + + public function set color(value:uint) : void + { + this.var_265 = value; + } + + public function get id() : name_155 + { + return this.var_101; + } + + public function set id(value:name_155) : void + { + this.var_101 = value; + } + + public function get intensity() : Number + { + return this.var_264; + } + + public function set intensity(value:Number) : void + { + this.var_264 = value; + } + + public function get name() : String + { + return this._name; + } + + public function set name(value:String) : void + { + this._name = value; + } + + public function get parentId() : name_155 + { + return this.var_270; + } + + public function set parentId(value:name_155) : void + { + this.var_270 = value; + } + + public function get transform() : A3D2Transform + { + return this.var_262; + } + + public function set transform(value:A3D2Transform) : void + { + this.var_262 = value; + } + + public function get visible() : Boolean + { + return this.var_267; + } + + public function set visible(value:Boolean) : void + { + this.var_267 = value; + } + + public function toString() : String + { + var result:String = "A3D2AmbientLight ["; + result += "boundBoxId = " + this.boundBoxId + " "; + result += "color = " + this.color + " "; + result += "id = " + this.id + " "; + result += "intensity = " + this.intensity + " "; + result += "name = " + this.name + " "; + result += "parentId = " + this.parentId + " "; + result += "transform = " + this.transform + " "; + result += "visible = " + this.visible + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2Box.as b/src/package_48/A3D2Box.as new file mode 100644 index 0000000..dccf9b9 --- /dev/null +++ b/src/package_48/A3D2Box.as @@ -0,0 +1,45 @@ +package package_48 +{ + public class A3D2Box + { + private var var_290:Vector.; + + private var var_101:int; + + public function A3D2Box(box:Vector., id:int) + { + super(); + this.var_290 = box; + this.var_101 = id; + } + + public function get box() : Vector. + { + return this.var_290; + } + + public function set box(value:Vector.) : void + { + this.var_290 = value; + } + + public function get id() : int + { + return this.var_101; + } + + public function set id(value:int) : void + { + this.var_101 = value; + } + + public function toString() : String + { + var result:String = "A3D2Box ["; + result += "box = " + this.box + " "; + result += "id = " + this.id + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2Decal.as b/src/package_48/A3D2Decal.as new file mode 100644 index 0000000..fd1b5fc --- /dev/null +++ b/src/package_48/A3D2Decal.as @@ -0,0 +1,159 @@ +package package_48 +{ + import package_33.name_155; + + public class A3D2Decal + { + private var var_268:int; + + private var var_101:name_155; + + private var var_276:int; + + private var _name:String; + + private var var_285:Number; + + private var var_270:name_155; + + private var var_92:Vector.; + + private var var_262:A3D2Transform; + + private var var_277:Vector.; + + private var var_267:Boolean; + + public function A3D2Decal(boundBoxId:int, id:name_155, indexBufferId:int, name:String, offset:Number, parentId:name_155, surfaces:Vector., transform:A3D2Transform, vertexBuffers:Vector., visible:Boolean) + { + super(); + this.var_268 = boundBoxId; + this.var_101 = id; + this.var_276 = indexBufferId; + this._name = name; + this.var_285 = offset; + this.var_270 = parentId; + this.var_92 = surfaces; + this.var_262 = transform; + this.var_277 = vertexBuffers; + this.var_267 = visible; + } + + public function get boundBoxId() : int + { + return this.var_268; + } + + public function set boundBoxId(value:int) : void + { + this.var_268 = value; + } + + public function get id() : name_155 + { + return this.var_101; + } + + public function set id(value:name_155) : void + { + this.var_101 = value; + } + + public function get indexBufferId() : int + { + return this.var_276; + } + + public function set indexBufferId(value:int) : void + { + this.var_276 = value; + } + + public function get name() : String + { + return this._name; + } + + public function set name(value:String) : void + { + this._name = value; + } + + public function get offset() : Number + { + return this.var_285; + } + + public function set offset(value:Number) : void + { + this.var_285 = value; + } + + public function get parentId() : name_155 + { + return this.var_270; + } + + public function set parentId(value:name_155) : void + { + this.var_270 = value; + } + + public function get surfaces() : Vector. + { + return this.var_92; + } + + public function set surfaces(value:Vector.) : void + { + this.var_92 = value; + } + + public function get transform() : A3D2Transform + { + return this.var_262; + } + + public function set transform(value:A3D2Transform) : void + { + this.var_262 = value; + } + + public function get vertexBuffers() : Vector. + { + return this.var_277; + } + + public function set vertexBuffers(value:Vector.) : void + { + this.var_277 = value; + } + + public function get visible() : Boolean + { + return this.var_267; + } + + public function set visible(value:Boolean) : void + { + this.var_267 = value; + } + + public function toString() : String + { + var result:String = "A3D2Decal ["; + result += "boundBoxId = " + this.boundBoxId + " "; + result += "id = " + this.id + " "; + result += "indexBufferId = " + this.indexBufferId + " "; + result += "name = " + this.name + " "; + result += "offset = " + this.offset + " "; + result += "parentId = " + this.parentId + " "; + result += "surfaces = " + this.surfaces + " "; + result += "transform = " + this.transform + " "; + result += "vertexBuffers = " + this.vertexBuffers + " "; + result += "visible = " + this.visible + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2DirectionalLight.as b/src/package_48/A3D2DirectionalLight.as new file mode 100644 index 0000000..43e69ad --- /dev/null +++ b/src/package_48/A3D2DirectionalLight.as @@ -0,0 +1,131 @@ +package package_48 +{ + import package_33.name_155; + + public class A3D2DirectionalLight + { + private var var_268:int; + + private var var_265:uint; + + private var var_101:name_155; + + private var var_264:Number; + + private var _name:String; + + private var var_270:name_155; + + private var var_262:A3D2Transform; + + private var var_267:Boolean; + + public function A3D2DirectionalLight(boundBoxId:int, color:uint, id:name_155, intensity:Number, name:String, parentId:name_155, transform:A3D2Transform, visible:Boolean) + { + super(); + this.var_268 = boundBoxId; + this.var_265 = color; + this.var_101 = id; + this.var_264 = intensity; + this._name = name; + this.var_270 = parentId; + this.var_262 = transform; + this.var_267 = visible; + } + + public function get boundBoxId() : int + { + return this.var_268; + } + + public function set boundBoxId(value:int) : void + { + this.var_268 = value; + } + + public function get color() : uint + { + return this.var_265; + } + + public function set color(value:uint) : void + { + this.var_265 = value; + } + + public function get id() : name_155 + { + return this.var_101; + } + + public function set id(value:name_155) : void + { + this.var_101 = value; + } + + public function get intensity() : Number + { + return this.var_264; + } + + public function set intensity(value:Number) : void + { + this.var_264 = value; + } + + public function get name() : String + { + return this._name; + } + + public function set name(value:String) : void + { + this._name = value; + } + + public function get parentId() : name_155 + { + return this.var_270; + } + + public function set parentId(value:name_155) : void + { + this.var_270 = value; + } + + public function get transform() : A3D2Transform + { + return this.var_262; + } + + public function set transform(value:A3D2Transform) : void + { + this.var_262 = value; + } + + public function get visible() : Boolean + { + return this.var_267; + } + + public function set visible(value:Boolean) : void + { + this.var_267 = value; + } + + public function toString() : String + { + var result:String = "A3D2DirectionalLight ["; + result += "boundBoxId = " + this.boundBoxId + " "; + result += "color = " + this.color + " "; + result += "id = " + this.id + " "; + result += "intensity = " + this.intensity + " "; + result += "name = " + this.name + " "; + result += "parentId = " + this.parentId + " "; + result += "transform = " + this.transform + " "; + result += "visible = " + this.visible + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2Joint.as b/src/package_48/A3D2Joint.as new file mode 100644 index 0000000..559df44 --- /dev/null +++ b/src/package_48/A3D2Joint.as @@ -0,0 +1,103 @@ +package package_48 +{ + import package_33.name_155; + + public class A3D2Joint + { + private var var_268:int; + + private var var_101:name_155; + + private var _name:String; + + private var var_270:name_155; + + private var var_262:A3D2Transform; + + private var var_267:Boolean; + + public function A3D2Joint(boundBoxId:int, id:name_155, name:String, parentId:name_155, transform:A3D2Transform, visible:Boolean) + { + super(); + this.var_268 = boundBoxId; + this.var_101 = id; + this._name = name; + this.var_270 = parentId; + this.var_262 = transform; + this.var_267 = visible; + } + + public function get boundBoxId() : int + { + return this.var_268; + } + + public function set boundBoxId(value:int) : void + { + this.var_268 = value; + } + + public function get id() : name_155 + { + return this.var_101; + } + + public function set id(value:name_155) : void + { + this.var_101 = value; + } + + public function get name() : String + { + return this._name; + } + + public function set name(value:String) : void + { + this._name = value; + } + + public function get parentId() : name_155 + { + return this.var_270; + } + + public function set parentId(value:name_155) : void + { + this.var_270 = value; + } + + public function get transform() : A3D2Transform + { + return this.var_262; + } + + public function set transform(value:A3D2Transform) : void + { + this.var_262 = value; + } + + public function get visible() : Boolean + { + return this.var_267; + } + + public function set visible(value:Boolean) : void + { + this.var_267 = value; + } + + public function toString() : String + { + var result:String = "A3D2Joint ["; + result += "boundBoxId = " + this.boundBoxId + " "; + result += "id = " + this.id + " "; + result += "name = " + this.name + " "; + result += "parentId = " + this.parentId + " "; + result += "transform = " + this.transform + " "; + result += "visible = " + this.visible + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2JointBindTransform.as b/src/package_48/A3D2JointBindTransform.as new file mode 100644 index 0000000..8a4e371 --- /dev/null +++ b/src/package_48/A3D2JointBindTransform.as @@ -0,0 +1,47 @@ +package package_48 +{ + import package_33.name_155; + + public class A3D2JointBindTransform + { + private var var_417:A3D2Transform; + + private var var_101:name_155; + + public function A3D2JointBindTransform(bindPoseTransform:A3D2Transform, id:name_155) + { + super(); + this.var_417 = bindPoseTransform; + this.var_101 = id; + } + + public function get bindPoseTransform() : A3D2Transform + { + return this.var_417; + } + + public function set bindPoseTransform(value:A3D2Transform) : void + { + this.var_417 = value; + } + + public function get id() : name_155 + { + return this.var_101; + } + + public function set id(value:name_155) : void + { + this.var_101 = value; + } + + public function toString() : String + { + var result:String = "A3D2JointBindTransform ["; + result += "bindPoseTransform = " + this.bindPoseTransform + " "; + result += "id = " + this.id + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2Mesh.as b/src/package_48/A3D2Mesh.as new file mode 100644 index 0000000..7221973 --- /dev/null +++ b/src/package_48/A3D2Mesh.as @@ -0,0 +1,145 @@ +package package_48 +{ + import package_33.name_155; + + public class A3D2Mesh + { + private var var_268:int; + + private var var_101:name_155; + + private var var_276:int; + + private var _name:String; + + private var var_270:name_155; + + private var var_92:Vector.; + + private var var_262:A3D2Transform; + + private var var_277:Vector.; + + private var var_267:Boolean; + + public function A3D2Mesh(boundBoxId:int, id:name_155, indexBufferId:int, name:String, parentId:name_155, surfaces:Vector., transform:A3D2Transform, vertexBuffers:Vector., visible:Boolean) + { + super(); + this.var_268 = boundBoxId; + this.var_101 = id; + this.var_276 = indexBufferId; + this._name = name; + this.var_270 = parentId; + this.var_92 = surfaces; + this.var_262 = transform; + this.var_277 = vertexBuffers; + this.var_267 = visible; + } + + public function get boundBoxId() : int + { + return this.var_268; + } + + public function set boundBoxId(value:int) : void + { + this.var_268 = value; + } + + public function get id() : name_155 + { + return this.var_101; + } + + public function set id(value:name_155) : void + { + this.var_101 = value; + } + + public function get indexBufferId() : int + { + return this.var_276; + } + + public function set indexBufferId(value:int) : void + { + this.var_276 = value; + } + + public function get name() : String + { + return this._name; + } + + public function set name(value:String) : void + { + this._name = value; + } + + public function get parentId() : name_155 + { + return this.var_270; + } + + public function set parentId(value:name_155) : void + { + this.var_270 = value; + } + + public function get surfaces() : Vector. + { + return this.var_92; + } + + public function set surfaces(value:Vector.) : void + { + this.var_92 = value; + } + + public function get transform() : A3D2Transform + { + return this.var_262; + } + + public function set transform(value:A3D2Transform) : void + { + this.var_262 = value; + } + + public function get vertexBuffers() : Vector. + { + return this.var_277; + } + + public function set vertexBuffers(value:Vector.) : void + { + this.var_277 = value; + } + + public function get visible() : Boolean + { + return this.var_267; + } + + public function set visible(value:Boolean) : void + { + this.var_267 = value; + } + + public function toString() : String + { + var result:String = "A3D2Mesh ["; + result += "boundBoxId = " + this.boundBoxId + " "; + result += "id = " + this.id + " "; + result += "indexBufferId = " + this.indexBufferId + " "; + result += "name = " + this.name + " "; + result += "parentId = " + this.parentId + " "; + result += "surfaces = " + this.surfaces + " "; + result += "transform = " + this.transform + " "; + result += "vertexBuffers = " + this.vertexBuffers + " "; + result += "visible = " + this.visible + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2Object.as b/src/package_48/A3D2Object.as new file mode 100644 index 0000000..ae1312a --- /dev/null +++ b/src/package_48/A3D2Object.as @@ -0,0 +1,103 @@ +package package_48 +{ + import package_33.name_155; + + public class A3D2Object + { + private var var_268:int; + + private var var_101:name_155; + + private var _name:String; + + private var var_270:name_155; + + private var var_262:A3D2Transform; + + private var var_267:Boolean; + + public function A3D2Object(boundBoxId:int, id:name_155, name:String, parentId:name_155, transform:A3D2Transform, visible:Boolean) + { + super(); + this.var_268 = boundBoxId; + this.var_101 = id; + this._name = name; + this.var_270 = parentId; + this.var_262 = transform; + this.var_267 = visible; + } + + public function get boundBoxId() : int + { + return this.var_268; + } + + public function set boundBoxId(value:int) : void + { + this.var_268 = value; + } + + public function get id() : name_155 + { + return this.var_101; + } + + public function set id(value:name_155) : void + { + this.var_101 = value; + } + + public function get name() : String + { + return this._name; + } + + public function set name(value:String) : void + { + this._name = value; + } + + public function get parentId() : name_155 + { + return this.var_270; + } + + public function set parentId(value:name_155) : void + { + this.var_270 = value; + } + + public function get transform() : A3D2Transform + { + return this.var_262; + } + + public function set transform(value:A3D2Transform) : void + { + this.var_262 = value; + } + + public function get visible() : Boolean + { + return this.var_267; + } + + public function set visible(value:Boolean) : void + { + this.var_267 = value; + } + + public function toString() : String + { + var result:String = "A3D2Object ["; + result += "boundBoxId = " + this.boundBoxId + " "; + result += "id = " + this.id + " "; + result += "name = " + this.name + " "; + result += "parentId = " + this.parentId + " "; + result += "transform = " + this.transform + " "; + result += "visible = " + this.visible + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2OmniLight.as b/src/package_48/A3D2OmniLight.as new file mode 100644 index 0000000..425a63c --- /dev/null +++ b/src/package_48/A3D2OmniLight.as @@ -0,0 +1,159 @@ +package package_48 +{ + import package_33.name_155; + + public class A3D2OmniLight + { + private var var_266:Number; + + private var var_261:Number; + + private var var_268:int; + + private var var_265:uint; + + private var var_101:name_155; + + private var var_264:Number; + + private var _name:String; + + private var var_270:name_155; + + private var var_262:A3D2Transform; + + private var var_267:Boolean; + + public function A3D2OmniLight(attenuationBegin:Number, attenuationEnd:Number, boundBoxId:int, color:uint, id:name_155, intensity:Number, name:String, parentId:name_155, transform:A3D2Transform, visible:Boolean) + { + super(); + this.var_266 = attenuationBegin; + this.var_261 = attenuationEnd; + this.var_268 = boundBoxId; + this.var_265 = color; + this.var_101 = id; + this.var_264 = intensity; + this._name = name; + this.var_270 = parentId; + this.var_262 = transform; + this.var_267 = visible; + } + + public function get attenuationBegin() : Number + { + return this.var_266; + } + + public function set attenuationBegin(value:Number) : void + { + this.var_266 = value; + } + + public function get attenuationEnd() : Number + { + return this.var_261; + } + + public function set attenuationEnd(value:Number) : void + { + this.var_261 = value; + } + + public function get boundBoxId() : int + { + return this.var_268; + } + + public function set boundBoxId(value:int) : void + { + this.var_268 = value; + } + + public function get color() : uint + { + return this.var_265; + } + + public function set color(value:uint) : void + { + this.var_265 = value; + } + + public function get id() : name_155 + { + return this.var_101; + } + + public function set id(value:name_155) : void + { + this.var_101 = value; + } + + public function get intensity() : Number + { + return this.var_264; + } + + public function set intensity(value:Number) : void + { + this.var_264 = value; + } + + public function get name() : String + { + return this._name; + } + + public function set name(value:String) : void + { + this._name = value; + } + + public function get parentId() : name_155 + { + return this.var_270; + } + + public function set parentId(value:name_155) : void + { + this.var_270 = value; + } + + public function get transform() : A3D2Transform + { + return this.var_262; + } + + public function set transform(value:A3D2Transform) : void + { + this.var_262 = value; + } + + public function get visible() : Boolean + { + return this.var_267; + } + + public function set visible(value:Boolean) : void + { + this.var_267 = value; + } + + public function toString() : String + { + var result:String = "A3D2OmniLight ["; + result += "attenuationBegin = " + this.attenuationBegin + " "; + result += "attenuationEnd = " + this.attenuationEnd + " "; + result += "boundBoxId = " + this.boundBoxId + " "; + result += "color = " + this.color + " "; + result += "id = " + this.id + " "; + result += "intensity = " + this.intensity + " "; + result += "name = " + this.name + " "; + result += "parentId = " + this.parentId + " "; + result += "transform = " + this.transform + " "; + result += "visible = " + this.visible + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2Skin.as b/src/package_48/A3D2Skin.as new file mode 100644 index 0000000..fea4a83 --- /dev/null +++ b/src/package_48/A3D2Skin.as @@ -0,0 +1,187 @@ +package package_48 +{ + import package_33.name_155; + + public class A3D2Skin + { + private var var_268:int; + + private var var_101:name_155; + + private var var_276:int; + + private var var_391:Vector.; + + private var var_392:Vector.; + + private var _name:String; + + private var var_390:Vector.; + + private var var_270:name_155; + + private var var_92:Vector.; + + private var var_262:A3D2Transform; + + private var var_277:Vector.; + + private var var_267:Boolean; + + public function A3D2Skin(boundBoxId:int, id:name_155, indexBufferId:int, jointBindTransforms:Vector., joints:Vector., name:String, numJoints:Vector., parentId:name_155, surfaces:Vector., transform:A3D2Transform, vertexBuffers:Vector., visible:Boolean) + { + super(); + this.var_268 = boundBoxId; + this.var_101 = id; + this.var_276 = indexBufferId; + this.var_391 = jointBindTransforms; + this.var_392 = joints; + this._name = name; + this.var_390 = numJoints; + this.var_270 = parentId; + this.var_92 = surfaces; + this.var_262 = transform; + this.var_277 = vertexBuffers; + this.var_267 = visible; + } + + public function get boundBoxId() : int + { + return this.var_268; + } + + public function set boundBoxId(value:int) : void + { + this.var_268 = value; + } + + public function get id() : name_155 + { + return this.var_101; + } + + public function set id(value:name_155) : void + { + this.var_101 = value; + } + + public function get indexBufferId() : int + { + return this.var_276; + } + + public function set indexBufferId(value:int) : void + { + this.var_276 = value; + } + + public function get jointBindTransforms() : Vector. + { + return this.var_391; + } + + public function set jointBindTransforms(value:Vector.) : void + { + this.var_391 = value; + } + + public function get joints() : Vector. + { + return this.var_392; + } + + public function set joints(value:Vector.) : void + { + this.var_392 = value; + } + + public function get name() : String + { + return this._name; + } + + public function set name(value:String) : void + { + this._name = value; + } + + public function get numJoints() : Vector. + { + return this.var_390; + } + + public function set numJoints(value:Vector.) : void + { + this.var_390 = value; + } + + public function get parentId() : name_155 + { + return this.var_270; + } + + public function set parentId(value:name_155) : void + { + this.var_270 = value; + } + + public function get surfaces() : Vector. + { + return this.var_92; + } + + public function set surfaces(value:Vector.) : void + { + this.var_92 = value; + } + + public function get transform() : A3D2Transform + { + return this.var_262; + } + + public function set transform(value:A3D2Transform) : void + { + this.var_262 = value; + } + + public function get vertexBuffers() : Vector. + { + return this.var_277; + } + + public function set vertexBuffers(value:Vector.) : void + { + this.var_277 = value; + } + + public function get visible() : Boolean + { + return this.var_267; + } + + public function set visible(value:Boolean) : void + { + this.var_267 = value; + } + + public function toString() : String + { + var result:String = "A3D2Skin ["; + result += "boundBoxId = " + this.boundBoxId + " "; + result += "id = " + this.id + " "; + result += "indexBufferId = " + this.indexBufferId + " "; + result += "jointBindTransforms = " + this.jointBindTransforms + " "; + result += "joints = " + this.joints + " "; + result += "name = " + this.name + " "; + result += "numJoints = " + this.numJoints + " "; + result += "parentId = " + this.parentId + " "; + result += "surfaces = " + this.surfaces + " "; + result += "transform = " + this.transform + " "; + result += "vertexBuffers = " + this.vertexBuffers + " "; + result += "visible = " + this.visible + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2SpotLight.as b/src/package_48/A3D2SpotLight.as new file mode 100644 index 0000000..aa73f9a --- /dev/null +++ b/src/package_48/A3D2SpotLight.as @@ -0,0 +1,187 @@ +package package_48 +{ + import package_33.name_155; + + public class A3D2SpotLight + { + private var var_266:Number; + + private var var_261:Number; + + private var var_268:int; + + private var var_265:uint; + + private var var_263:Number; + + private var var_269:Number; + + private var var_101:name_155; + + private var var_264:Number; + + private var _name:String; + + private var var_270:name_155; + + private var var_262:A3D2Transform; + + private var var_267:Boolean; + + public function A3D2SpotLight(attenuationBegin:Number, attenuationEnd:Number, boundBoxId:int, color:uint, falloff:Number, hotspot:Number, id:name_155, intensity:Number, name:String, parentId:name_155, transform:A3D2Transform, visible:Boolean) + { + super(); + this.var_266 = attenuationBegin; + this.var_261 = attenuationEnd; + this.var_268 = boundBoxId; + this.var_265 = color; + this.var_263 = falloff; + this.var_269 = hotspot; + this.var_101 = id; + this.var_264 = intensity; + this._name = name; + this.var_270 = parentId; + this.var_262 = transform; + this.var_267 = visible; + } + + public function get attenuationBegin() : Number + { + return this.var_266; + } + + public function set attenuationBegin(value:Number) : void + { + this.var_266 = value; + } + + public function get attenuationEnd() : Number + { + return this.var_261; + } + + public function set attenuationEnd(value:Number) : void + { + this.var_261 = value; + } + + public function get boundBoxId() : int + { + return this.var_268; + } + + public function set boundBoxId(value:int) : void + { + this.var_268 = value; + } + + public function get color() : uint + { + return this.var_265; + } + + public function set color(value:uint) : void + { + this.var_265 = value; + } + + public function get falloff() : Number + { + return this.var_263; + } + + public function set falloff(value:Number) : void + { + this.var_263 = value; + } + + public function get hotspot() : Number + { + return this.var_269; + } + + public function set hotspot(value:Number) : void + { + this.var_269 = value; + } + + public function get id() : name_155 + { + return this.var_101; + } + + public function set id(value:name_155) : void + { + this.var_101 = value; + } + + public function get intensity() : Number + { + return this.var_264; + } + + public function set intensity(value:Number) : void + { + this.var_264 = value; + } + + public function get name() : String + { + return this._name; + } + + public function set name(value:String) : void + { + this._name = value; + } + + public function get parentId() : name_155 + { + return this.var_270; + } + + public function set parentId(value:name_155) : void + { + this.var_270 = value; + } + + public function get transform() : A3D2Transform + { + return this.var_262; + } + + public function set transform(value:A3D2Transform) : void + { + this.var_262 = value; + } + + public function get visible() : Boolean + { + return this.var_267; + } + + public function set visible(value:Boolean) : void + { + this.var_267 = value; + } + + public function toString() : String + { + var result:String = "A3D2SpotLight ["; + result += "attenuationBegin = " + this.attenuationBegin + " "; + result += "attenuationEnd = " + this.attenuationEnd + " "; + result += "boundBoxId = " + this.boundBoxId + " "; + result += "color = " + this.color + " "; + result += "falloff = " + this.falloff + " "; + result += "hotspot = " + this.hotspot + " "; + result += "id = " + this.id + " "; + result += "intensity = " + this.intensity + " "; + result += "name = " + this.name + " "; + result += "parentId = " + this.parentId + " "; + result += "transform = " + this.transform + " "; + result += "visible = " + this.visible + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2Sprite.as b/src/package_48/A3D2Sprite.as new file mode 100644 index 0000000..e3d82e1 --- /dev/null +++ b/src/package_48/A3D2Sprite.as @@ -0,0 +1,216 @@ +package package_48 +{ + import package_33.name_155; + import package_57.name_213; + + public class A3D2Sprite + { + private var var_374:Boolean; + + private var var_268:int; + + private var _height:Number; + + private var var_101:name_155; + + private var var_301:name_213; + + private var _name:String; + + private var var_377:Number; + + private var var_375:Number; + + private var var_270:name_155; + + private var var_378:Boolean; + + private var var_376:Number; + + private var var_262:A3D2Transform; + + private var var_267:Boolean; + + private var var_110:Number; + + public function A3D2Sprite(alwaysOnTop:Boolean, boundBoxId:int, height:Number, id:name_155, materialId:name_213, name:String, originX:Number, originY:Number, parentId:name_155, perspectiveScale:Boolean, rotation:Number, transform:A3D2Transform, visible:Boolean, width:Number) + { + super(); + this.var_374 = alwaysOnTop; + this.var_268 = boundBoxId; + this._height = height; + this.var_101 = id; + this.var_301 = materialId; + this._name = name; + this.var_377 = originX; + this.var_375 = originY; + this.var_270 = parentId; + this.var_378 = perspectiveScale; + this.var_376 = rotation; + this.var_262 = transform; + this.var_267 = visible; + this.var_110 = width; + } + + public function get alwaysOnTop() : Boolean + { + return this.var_374; + } + + public function set alwaysOnTop(value:Boolean) : void + { + this.var_374 = value; + } + + public function get boundBoxId() : int + { + return this.var_268; + } + + public function set boundBoxId(value:int) : void + { + this.var_268 = value; + } + + public function get height() : Number + { + return this._height; + } + + public function set height(value:Number) : void + { + this._height = value; + } + + public function get id() : name_155 + { + return this.var_101; + } + + public function set id(value:name_155) : void + { + this.var_101 = value; + } + + public function get materialId() : name_213 + { + return this.var_301; + } + + public function set materialId(value:name_213) : void + { + this.var_301 = value; + } + + public function get name() : String + { + return this._name; + } + + public function set name(value:String) : void + { + this._name = value; + } + + public function get originX() : Number + { + return this.var_377; + } + + public function set originX(value:Number) : void + { + this.var_377 = value; + } + + public function get originY() : Number + { + return this.var_375; + } + + public function set originY(value:Number) : void + { + this.var_375 = value; + } + + public function get parentId() : name_155 + { + return this.var_270; + } + + public function set parentId(value:name_155) : void + { + this.var_270 = value; + } + + public function get perspectiveScale() : Boolean + { + return this.var_378; + } + + public function set perspectiveScale(value:Boolean) : void + { + this.var_378 = value; + } + + public function get rotation() : Number + { + return this.var_376; + } + + public function set rotation(value:Number) : void + { + this.var_376 = value; + } + + public function get transform() : A3D2Transform + { + return this.var_262; + } + + public function set transform(value:A3D2Transform) : void + { + this.var_262 = value; + } + + public function get visible() : Boolean + { + return this.var_267; + } + + public function set visible(value:Boolean) : void + { + this.var_267 = value; + } + + public function get width() : Number + { + return this.var_110; + } + + public function set width(value:Number) : void + { + this.var_110 = value; + } + + public function toString() : String + { + var result:String = "A3D2Sprite ["; + result += "alwaysOnTop = " + this.alwaysOnTop + " "; + result += "boundBoxId = " + this.boundBoxId + " "; + result += "height = " + this.height + " "; + result += "id = " + this.id + " "; + result += "materialId = " + this.materialId + " "; + result += "name = " + this.name + " "; + result += "originX = " + this.originX + " "; + result += "originY = " + this.originY + " "; + result += "parentId = " + this.parentId + " "; + result += "perspectiveScale = " + this.perspectiveScale + " "; + result += "rotation = " + this.rotation + " "; + result += "transform = " + this.transform + " "; + result += "visible = " + this.visible + " "; + result += "width = " + this.width + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2Surface.as b/src/package_48/A3D2Surface.as new file mode 100644 index 0000000..711a334 --- /dev/null +++ b/src/package_48/A3D2Surface.as @@ -0,0 +1,59 @@ +package package_48 +{ + public class A3D2Surface + { + private var var_299:int; + + private var var_301:int; + + private var var_300:int; + + public function A3D2Surface(indexBegin:int, materialId:int, numTriangles:int) + { + super(); + this.var_299 = indexBegin; + this.var_301 = materialId; + this.var_300 = numTriangles; + } + + public function get indexBegin() : int + { + return this.var_299; + } + + public function set indexBegin(value:int) : void + { + this.var_299 = value; + } + + public function get materialId() : int + { + return this.var_301; + } + + public function set materialId(value:int) : void + { + this.var_301 = value; + } + + public function get numTriangles() : int + { + return this.var_300; + } + + public function set numTriangles(value:int) : void + { + this.var_300 = value; + } + + public function toString() : String + { + var result:String = "A3D2Surface ["; + result += "indexBegin = " + this.indexBegin + " "; + result += "materialId = " + this.materialId + " "; + result += "numTriangles = " + this.numTriangles + " "; + return result + "]"; + } + } +} + diff --git a/src/package_48/A3D2Transform.as b/src/package_48/A3D2Transform.as new file mode 100644 index 0000000..441153f --- /dev/null +++ b/src/package_48/A3D2Transform.as @@ -0,0 +1,33 @@ +package package_48 +{ + import package_57.name_214; + + public class A3D2Transform + { + private var var_412:name_214; + + public function A3D2Transform(matrix:name_214) + { + super(); + this.var_412 = matrix; + } + + public function get matrix() : name_214 + { + return this.var_412; + } + + public function set matrix(value:name_214) : void + { + this.var_412 = value; + } + + public function toString() : String + { + var result:String = "A3D2Transform ["; + result += "matrix = " + this.matrix + " "; + return result + "]"; + } + } +} + diff --git a/src/package_49/CodecA3D2AmbientLight.as b/src/package_49/CodecA3D2AmbientLight.as new file mode 100644 index 0000000..c2344f2 --- /dev/null +++ b/src/package_49/CodecA3D2AmbientLight.as @@ -0,0 +1,91 @@ +package package_49 +{ + import package_32.name_148; + import package_33.name_155; + import package_33.name_157; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2AmbientLight; + import package_48.A3D2Transform; + import package_5.name_3; + + public class CodecA3D2AmbientLight implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_244:name_152; + + private var var_259:name_152; + + private var var_252:name_152; + + private var var_257:name_152; + + private var var_253:name_152; + + private var var_254:name_152; + + private var var_249:name_152; + + private var var_247:name_152; + + public function CodecA3D2AmbientLight() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_244 = protocol.name_448(new name_148(int,true)); + this.var_259 = protocol.name_448(new name_148(uint,false)); + this.var_252 = protocol.name_448(new name_148(name_155,false)); + this.var_257 = protocol.name_448(new name_148(name_157,false)); + this.var_253 = protocol.name_448(new name_148(String,true)); + this.var_254 = protocol.name_448(new name_148(name_155,true)); + this.var_249 = protocol.name_448(new name_148(A3D2Transform,true)); + this.var_247 = protocol.name_448(new name_148(Boolean,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_boundBoxId:int = int(this.var_244.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2AmbientLight","boundBoxId",value_boundBoxId); + var value_color:uint = uint(this.var_259.method_296(protocolBuffer) as uint); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2AmbientLight","color",value_color); + var value_id:name_155 = this.var_252.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2AmbientLight","id",value_id); + var value_intensity:Number = Number(this.var_257.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2AmbientLight","intensity",value_intensity); + var value_name:String = this.var_253.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2AmbientLight","name",value_name); + var value_parentId:name_155 = this.var_254.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2AmbientLight","parentId",value_parentId); + var value_transform:A3D2Transform = this.var_249.method_296(protocolBuffer) as A3D2Transform; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2AmbientLight","transform",value_transform); + var value_visible:Boolean = Boolean(this.var_247.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2AmbientLight","visible",value_visible); + return new A3D2AmbientLight(value_boundBoxId,value_color,value_id,value_intensity,value_name,value_parentId,value_transform,value_visible); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2AmbientLight = A3D2AmbientLight(object); + this.var_244.method_295(protocolBuffer,struct.boundBoxId); + this.var_259.method_295(protocolBuffer,struct.color); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_257.method_295(protocolBuffer,struct.intensity); + this.var_253.method_295(protocolBuffer,struct.name); + this.var_254.method_295(protocolBuffer,struct.parentId); + this.var_249.method_295(protocolBuffer,struct.transform); + this.var_247.method_295(protocolBuffer,struct.visible); + } + } +} + diff --git a/src/package_49/CodecA3D2Box.as b/src/package_49/CodecA3D2Box.as new file mode 100644 index 0000000..25d5bf2 --- /dev/null +++ b/src/package_49/CodecA3D2Box.as @@ -0,0 +1,54 @@ +package package_49 +{ + import package_32.name_148; + import package_32.name_149; + import package_33.name_157; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2Box; + import package_5.name_3; + + public class CodecA3D2Box implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_284:name_152; + + private var var_252:name_152; + + public function CodecA3D2Box() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_284 = protocol.name_448(new name_149(new name_148(name_157,false),false,1)); + this.var_252 = protocol.name_448(new name_148(int,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_box:Vector. = this.var_284.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Box","box",value_box); + var value_id:int = int(this.var_252.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Box","id",value_id); + return new A3D2Box(value_box,value_id); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Box = A3D2Box(object); + this.var_284.method_295(protocolBuffer,struct.box); + this.var_252.method_295(protocolBuffer,struct.id); + } + } +} + diff --git a/src/package_49/CodecA3D2Decal.as b/src/package_49/CodecA3D2Decal.as new file mode 100644 index 0000000..4a6c3e4 --- /dev/null +++ b/src/package_49/CodecA3D2Decal.as @@ -0,0 +1,105 @@ +package package_49 +{ + import package_32.name_148; + import package_32.name_149; + import package_33.name_155; + import package_33.name_157; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2Decal; + import package_48.A3D2Surface; + import package_48.A3D2Transform; + import package_5.name_3; + + public class CodecA3D2Decal implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_244:name_152; + + private var var_252:name_152; + + private var var_246:name_152; + + private var var_253:name_152; + + private var var_309:name_152; + + private var var_254:name_152; + + private var var_250:name_152; + + private var var_249:name_152; + + private var var_248:name_152; + + private var var_247:name_152; + + public function CodecA3D2Decal() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_244 = protocol.name_448(new name_148(int,true)); + this.var_252 = protocol.name_448(new name_148(name_155,false)); + this.var_246 = protocol.name_448(new name_148(int,false)); + this.var_253 = protocol.name_448(new name_148(String,true)); + this.var_309 = protocol.name_448(new name_148(name_157,false)); + this.var_254 = protocol.name_448(new name_148(name_155,true)); + this.var_250 = protocol.name_448(new name_149(new name_148(A3D2Surface,false),false,1)); + this.var_249 = protocol.name_448(new name_148(A3D2Transform,true)); + this.var_248 = protocol.name_448(new name_149(new name_148(int,false),false,1)); + this.var_247 = protocol.name_448(new name_148(Boolean,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_boundBoxId:int = int(this.var_244.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Decal","boundBoxId",value_boundBoxId); + var value_id:name_155 = this.var_252.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Decal","id",value_id); + var value_indexBufferId:int = int(this.var_246.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Decal","indexBufferId",value_indexBufferId); + var value_name:String = this.var_253.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Decal","name",value_name); + var value_offset:Number = Number(this.var_309.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Decal","offset",value_offset); + var value_parentId:name_155 = this.var_254.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Decal","parentId",value_parentId); + var value_surfaces:Vector. = this.var_250.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Decal","surfaces",value_surfaces); + var value_transform:A3D2Transform = this.var_249.method_296(protocolBuffer) as A3D2Transform; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Decal","transform",value_transform); + var value_vertexBuffers:Vector. = this.var_248.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Decal","vertexBuffers",value_vertexBuffers); + var value_visible:Boolean = Boolean(this.var_247.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Decal","visible",value_visible); + return new A3D2Decal(value_boundBoxId,value_id,value_indexBufferId,value_name,value_offset,value_parentId,value_surfaces,value_transform,value_vertexBuffers,value_visible); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Decal = A3D2Decal(object); + this.var_244.method_295(protocolBuffer,struct.boundBoxId); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_246.method_295(protocolBuffer,struct.indexBufferId); + this.var_253.method_295(protocolBuffer,struct.name); + this.var_309.method_295(protocolBuffer,struct.offset); + this.var_254.method_295(protocolBuffer,struct.parentId); + this.var_250.method_295(protocolBuffer,struct.surfaces); + this.var_249.method_295(protocolBuffer,struct.transform); + this.var_248.method_295(protocolBuffer,struct.vertexBuffers); + this.var_247.method_295(protocolBuffer,struct.visible); + } + } +} + diff --git a/src/package_49/CodecA3D2DirectionalLight.as b/src/package_49/CodecA3D2DirectionalLight.as new file mode 100644 index 0000000..9c51fc8 --- /dev/null +++ b/src/package_49/CodecA3D2DirectionalLight.as @@ -0,0 +1,91 @@ +package package_49 +{ + import package_32.name_148; + import package_33.name_155; + import package_33.name_157; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2DirectionalLight; + import package_48.A3D2Transform; + import package_5.name_3; + + public class CodecA3D2DirectionalLight implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_244:name_152; + + private var var_259:name_152; + + private var var_252:name_152; + + private var var_257:name_152; + + private var var_253:name_152; + + private var var_254:name_152; + + private var var_249:name_152; + + private var var_247:name_152; + + public function CodecA3D2DirectionalLight() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_244 = protocol.name_448(new name_148(int,true)); + this.var_259 = protocol.name_448(new name_148(uint,false)); + this.var_252 = protocol.name_448(new name_148(name_155,false)); + this.var_257 = protocol.name_448(new name_148(name_157,false)); + this.var_253 = protocol.name_448(new name_148(String,true)); + this.var_254 = protocol.name_448(new name_148(name_155,true)); + this.var_249 = protocol.name_448(new name_148(A3D2Transform,true)); + this.var_247 = protocol.name_448(new name_148(Boolean,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_boundBoxId:int = int(this.var_244.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2DirectionalLight","boundBoxId",value_boundBoxId); + var value_color:uint = uint(this.var_259.method_296(protocolBuffer) as uint); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2DirectionalLight","color",value_color); + var value_id:name_155 = this.var_252.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2DirectionalLight","id",value_id); + var value_intensity:Number = Number(this.var_257.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2DirectionalLight","intensity",value_intensity); + var value_name:String = this.var_253.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2DirectionalLight","name",value_name); + var value_parentId:name_155 = this.var_254.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2DirectionalLight","parentId",value_parentId); + var value_transform:A3D2Transform = this.var_249.method_296(protocolBuffer) as A3D2Transform; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2DirectionalLight","transform",value_transform); + var value_visible:Boolean = Boolean(this.var_247.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2DirectionalLight","visible",value_visible); + return new A3D2DirectionalLight(value_boundBoxId,value_color,value_id,value_intensity,value_name,value_parentId,value_transform,value_visible); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2DirectionalLight = A3D2DirectionalLight(object); + this.var_244.method_295(protocolBuffer,struct.boundBoxId); + this.var_259.method_295(protocolBuffer,struct.color); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_257.method_295(protocolBuffer,struct.intensity); + this.var_253.method_295(protocolBuffer,struct.name); + this.var_254.method_295(protocolBuffer,struct.parentId); + this.var_249.method_295(protocolBuffer,struct.transform); + this.var_247.method_295(protocolBuffer,struct.visible); + } + } +} + diff --git a/src/package_49/CodecA3D2Joint.as b/src/package_49/CodecA3D2Joint.as new file mode 100644 index 0000000..9e2957c --- /dev/null +++ b/src/package_49/CodecA3D2Joint.as @@ -0,0 +1,78 @@ +package package_49 +{ + import package_32.name_148; + import package_33.name_155; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2Joint; + import package_48.A3D2Transform; + import package_5.name_3; + + public class CodecA3D2Joint implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_244:name_152; + + private var var_252:name_152; + + private var var_253:name_152; + + private var var_254:name_152; + + private var var_249:name_152; + + private var var_247:name_152; + + public function CodecA3D2Joint() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_244 = protocol.name_448(new name_148(int,true)); + this.var_252 = protocol.name_448(new name_148(name_155,false)); + this.var_253 = protocol.name_448(new name_148(String,true)); + this.var_254 = protocol.name_448(new name_148(name_155,true)); + this.var_249 = protocol.name_448(new name_148(A3D2Transform,true)); + this.var_247 = protocol.name_448(new name_148(Boolean,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_boundBoxId:int = int(this.var_244.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Joint","boundBoxId",value_boundBoxId); + var value_id:name_155 = this.var_252.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Joint","id",value_id); + var value_name:String = this.var_253.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Joint","name",value_name); + var value_parentId:name_155 = this.var_254.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Joint","parentId",value_parentId); + var value_transform:A3D2Transform = this.var_249.method_296(protocolBuffer) as A3D2Transform; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Joint","transform",value_transform); + var value_visible:Boolean = Boolean(this.var_247.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Joint","visible",value_visible); + return new A3D2Joint(value_boundBoxId,value_id,value_name,value_parentId,value_transform,value_visible); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Joint = A3D2Joint(object); + this.var_244.method_295(protocolBuffer,struct.boundBoxId); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_253.method_295(protocolBuffer,struct.name); + this.var_254.method_295(protocolBuffer,struct.parentId); + this.var_249.method_295(protocolBuffer,struct.transform); + this.var_247.method_295(protocolBuffer,struct.visible); + } + } +} + diff --git a/src/package_49/CodecA3D2JointBindTransform.as b/src/package_49/CodecA3D2JointBindTransform.as new file mode 100644 index 0000000..8e23381 --- /dev/null +++ b/src/package_49/CodecA3D2JointBindTransform.as @@ -0,0 +1,54 @@ +package package_49 +{ + import package_32.name_148; + import package_33.name_155; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2JointBindTransform; + import package_48.A3D2Transform; + import package_5.name_3; + + public class CodecA3D2JointBindTransform implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_380:name_152; + + private var var_252:name_152; + + public function CodecA3D2JointBindTransform() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_380 = protocol.name_448(new name_148(A3D2Transform,false)); + this.var_252 = protocol.name_448(new name_148(name_155,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_bindPoseTransform:A3D2Transform = this.var_380.method_296(protocolBuffer) as A3D2Transform; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2JointBindTransform","bindPoseTransform",value_bindPoseTransform); + var value_id:name_155 = this.var_252.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2JointBindTransform","id",value_id); + return new A3D2JointBindTransform(value_bindPoseTransform,value_id); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2JointBindTransform = A3D2JointBindTransform(object); + this.var_380.method_295(protocolBuffer,struct.bindPoseTransform); + this.var_252.method_295(protocolBuffer,struct.id); + } + } +} + diff --git a/src/package_49/CodecA3D2Mesh.as b/src/package_49/CodecA3D2Mesh.as new file mode 100644 index 0000000..c66880a --- /dev/null +++ b/src/package_49/CodecA3D2Mesh.as @@ -0,0 +1,98 @@ +package package_49 +{ + import package_32.name_148; + import package_32.name_149; + import package_33.name_155; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2Mesh; + import package_48.A3D2Surface; + import package_48.A3D2Transform; + import package_5.name_3; + + public class CodecA3D2Mesh implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_244:name_152; + + private var var_252:name_152; + + private var var_246:name_152; + + private var var_253:name_152; + + private var var_254:name_152; + + private var var_250:name_152; + + private var var_249:name_152; + + private var var_248:name_152; + + private var var_247:name_152; + + public function CodecA3D2Mesh() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_244 = protocol.name_448(new name_148(int,true)); + this.var_252 = protocol.name_448(new name_148(name_155,false)); + this.var_246 = protocol.name_448(new name_148(int,false)); + this.var_253 = protocol.name_448(new name_148(String,true)); + this.var_254 = protocol.name_448(new name_148(name_155,true)); + this.var_250 = protocol.name_448(new name_149(new name_148(A3D2Surface,false),false,1)); + this.var_249 = protocol.name_448(new name_148(A3D2Transform,true)); + this.var_248 = protocol.name_448(new name_149(new name_148(int,false),false,1)); + this.var_247 = protocol.name_448(new name_148(Boolean,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_boundBoxId:int = int(this.var_244.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Mesh","boundBoxId",value_boundBoxId); + var value_id:name_155 = this.var_252.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Mesh","id",value_id); + var value_indexBufferId:int = int(this.var_246.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Mesh","indexBufferId",value_indexBufferId); + var value_name:String = this.var_253.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Mesh","name",value_name); + var value_parentId:name_155 = this.var_254.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Mesh","parentId",value_parentId); + var value_surfaces:Vector. = this.var_250.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Mesh","surfaces",value_surfaces); + var value_transform:A3D2Transform = this.var_249.method_296(protocolBuffer) as A3D2Transform; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Mesh","transform",value_transform); + var value_vertexBuffers:Vector. = this.var_248.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Mesh","vertexBuffers",value_vertexBuffers); + var value_visible:Boolean = Boolean(this.var_247.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Mesh","visible",value_visible); + return new A3D2Mesh(value_boundBoxId,value_id,value_indexBufferId,value_name,value_parentId,value_surfaces,value_transform,value_vertexBuffers,value_visible); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Mesh = A3D2Mesh(object); + this.var_244.method_295(protocolBuffer,struct.boundBoxId); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_246.method_295(protocolBuffer,struct.indexBufferId); + this.var_253.method_295(protocolBuffer,struct.name); + this.var_254.method_295(protocolBuffer,struct.parentId); + this.var_250.method_295(protocolBuffer,struct.surfaces); + this.var_249.method_295(protocolBuffer,struct.transform); + this.var_248.method_295(protocolBuffer,struct.vertexBuffers); + this.var_247.method_295(protocolBuffer,struct.visible); + } + } +} + diff --git a/src/package_49/CodecA3D2Object.as b/src/package_49/CodecA3D2Object.as new file mode 100644 index 0000000..319fd1e --- /dev/null +++ b/src/package_49/CodecA3D2Object.as @@ -0,0 +1,78 @@ +package package_49 +{ + import package_32.name_148; + import package_33.name_155; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2Object; + import package_48.A3D2Transform; + import package_5.name_3; + + public class CodecA3D2Object implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_244:name_152; + + private var var_252:name_152; + + private var var_253:name_152; + + private var var_254:name_152; + + private var var_249:name_152; + + private var var_247:name_152; + + public function CodecA3D2Object() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_244 = protocol.name_448(new name_148(int,true)); + this.var_252 = protocol.name_448(new name_148(name_155,false)); + this.var_253 = protocol.name_448(new name_148(String,true)); + this.var_254 = protocol.name_448(new name_148(name_155,true)); + this.var_249 = protocol.name_448(new name_148(A3D2Transform,true)); + this.var_247 = protocol.name_448(new name_148(Boolean,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_boundBoxId:int = int(this.var_244.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Object","boundBoxId",value_boundBoxId); + var value_id:name_155 = this.var_252.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Object","id",value_id); + var value_name:String = this.var_253.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Object","name",value_name); + var value_parentId:name_155 = this.var_254.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Object","parentId",value_parentId); + var value_transform:A3D2Transform = this.var_249.method_296(protocolBuffer) as A3D2Transform; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Object","transform",value_transform); + var value_visible:Boolean = Boolean(this.var_247.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Object","visible",value_visible); + return new A3D2Object(value_boundBoxId,value_id,value_name,value_parentId,value_transform,value_visible); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Object = A3D2Object(object); + this.var_244.method_295(protocolBuffer,struct.boundBoxId); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_253.method_295(protocolBuffer,struct.name); + this.var_254.method_295(protocolBuffer,struct.parentId); + this.var_249.method_295(protocolBuffer,struct.transform); + this.var_247.method_295(protocolBuffer,struct.visible); + } + } +} + diff --git a/src/package_49/CodecA3D2OmniLight.as b/src/package_49/CodecA3D2OmniLight.as new file mode 100644 index 0000000..30ab11d --- /dev/null +++ b/src/package_49/CodecA3D2OmniLight.as @@ -0,0 +1,103 @@ +package package_49 +{ + import package_32.name_148; + import package_33.name_155; + import package_33.name_157; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2OmniLight; + import package_48.A3D2Transform; + import package_5.name_3; + + public class CodecA3D2OmniLight implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_260:name_152; + + private var var_258:name_152; + + private var var_244:name_152; + + private var var_259:name_152; + + private var var_252:name_152; + + private var var_257:name_152; + + private var var_253:name_152; + + private var var_254:name_152; + + private var var_249:name_152; + + private var var_247:name_152; + + public function CodecA3D2OmniLight() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_260 = protocol.name_448(new name_148(name_157,false)); + this.var_258 = protocol.name_448(new name_148(name_157,false)); + this.var_244 = protocol.name_448(new name_148(int,true)); + this.var_259 = protocol.name_448(new name_148(uint,false)); + this.var_252 = protocol.name_448(new name_148(name_155,false)); + this.var_257 = protocol.name_448(new name_148(name_157,false)); + this.var_253 = protocol.name_448(new name_148(String,true)); + this.var_254 = protocol.name_448(new name_148(name_155,true)); + this.var_249 = protocol.name_448(new name_148(A3D2Transform,true)); + this.var_247 = protocol.name_448(new name_148(Boolean,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_attenuationBegin:Number = Number(this.var_260.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2OmniLight","attenuationBegin",value_attenuationBegin); + var value_attenuationEnd:Number = Number(this.var_258.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2OmniLight","attenuationEnd",value_attenuationEnd); + var value_boundBoxId:int = int(this.var_244.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2OmniLight","boundBoxId",value_boundBoxId); + var value_color:uint = uint(this.var_259.method_296(protocolBuffer) as uint); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2OmniLight","color",value_color); + var value_id:name_155 = this.var_252.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2OmniLight","id",value_id); + var value_intensity:Number = Number(this.var_257.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2OmniLight","intensity",value_intensity); + var value_name:String = this.var_253.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2OmniLight","name",value_name); + var value_parentId:name_155 = this.var_254.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2OmniLight","parentId",value_parentId); + var value_transform:A3D2Transform = this.var_249.method_296(protocolBuffer) as A3D2Transform; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2OmniLight","transform",value_transform); + var value_visible:Boolean = Boolean(this.var_247.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2OmniLight","visible",value_visible); + return new A3D2OmniLight(value_attenuationBegin,value_attenuationEnd,value_boundBoxId,value_color,value_id,value_intensity,value_name,value_parentId,value_transform,value_visible); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2OmniLight = A3D2OmniLight(object); + this.var_260.method_295(protocolBuffer,struct.attenuationBegin); + this.var_258.method_295(protocolBuffer,struct.attenuationEnd); + this.var_244.method_295(protocolBuffer,struct.boundBoxId); + this.var_259.method_295(protocolBuffer,struct.color); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_257.method_295(protocolBuffer,struct.intensity); + this.var_253.method_295(protocolBuffer,struct.name); + this.var_254.method_295(protocolBuffer,struct.parentId); + this.var_249.method_295(protocolBuffer,struct.transform); + this.var_247.method_295(protocolBuffer,struct.visible); + } + } +} + diff --git a/src/package_49/CodecA3D2Skin.as b/src/package_49/CodecA3D2Skin.as new file mode 100644 index 0000000..e5d0a13 --- /dev/null +++ b/src/package_49/CodecA3D2Skin.as @@ -0,0 +1,118 @@ +package package_49 +{ + import package_32.name_148; + import package_32.name_149; + import package_33.name_155; + import package_33.name_156; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2JointBindTransform; + import package_48.A3D2Skin; + import package_48.A3D2Surface; + import package_48.A3D2Transform; + import package_5.name_3; + + public class CodecA3D2Skin implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_244:name_152; + + private var var_252:name_152; + + private var var_246:name_152; + + private var var_245:name_152; + + private var var_251:name_152; + + private var var_253:name_152; + + private var var_243:name_152; + + private var var_254:name_152; + + private var var_250:name_152; + + private var var_249:name_152; + + private var var_248:name_152; + + private var var_247:name_152; + + public function CodecA3D2Skin() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_244 = protocol.name_448(new name_148(int,true)); + this.var_252 = protocol.name_448(new name_148(name_155,false)); + this.var_246 = protocol.name_448(new name_148(int,false)); + this.var_245 = protocol.name_448(new name_149(new name_148(A3D2JointBindTransform,false),false,1)); + this.var_251 = protocol.name_448(new name_149(new name_148(name_155,false),false,1)); + this.var_253 = protocol.name_448(new name_148(String,true)); + this.var_243 = protocol.name_448(new name_149(new name_148(name_156,false),false,1)); + this.var_254 = protocol.name_448(new name_148(name_155,true)); + this.var_250 = protocol.name_448(new name_149(new name_148(A3D2Surface,false),false,1)); + this.var_249 = protocol.name_448(new name_148(A3D2Transform,true)); + this.var_248 = protocol.name_448(new name_149(new name_148(int,false),false,1)); + this.var_247 = protocol.name_448(new name_148(Boolean,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_boundBoxId:int = int(this.var_244.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Skin","boundBoxId",value_boundBoxId); + var value_id:name_155 = this.var_252.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Skin","id",value_id); + var value_indexBufferId:int = int(this.var_246.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Skin","indexBufferId",value_indexBufferId); + var value_jointBindTransforms:Vector. = this.var_245.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Skin","jointBindTransforms",value_jointBindTransforms); + var value_joints:Vector. = this.var_251.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Skin","joints",value_joints); + var value_name:String = this.var_253.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Skin","name",value_name); + var value_numJoints:Vector. = this.var_243.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Skin","numJoints",value_numJoints); + var value_parentId:name_155 = this.var_254.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Skin","parentId",value_parentId); + var value_surfaces:Vector. = this.var_250.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Skin","surfaces",value_surfaces); + var value_transform:A3D2Transform = this.var_249.method_296(protocolBuffer) as A3D2Transform; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Skin","transform",value_transform); + var value_vertexBuffers:Vector. = this.var_248.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Skin","vertexBuffers",value_vertexBuffers); + var value_visible:Boolean = Boolean(this.var_247.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Skin","visible",value_visible); + return new A3D2Skin(value_boundBoxId,value_id,value_indexBufferId,value_jointBindTransforms,value_joints,value_name,value_numJoints,value_parentId,value_surfaces,value_transform,value_vertexBuffers,value_visible); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Skin = A3D2Skin(object); + this.var_244.method_295(protocolBuffer,struct.boundBoxId); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_246.method_295(protocolBuffer,struct.indexBufferId); + this.var_245.method_295(protocolBuffer,struct.jointBindTransforms); + this.var_251.method_295(protocolBuffer,struct.joints); + this.var_253.method_295(protocolBuffer,struct.name); + this.var_243.method_295(protocolBuffer,struct.numJoints); + this.var_254.method_295(protocolBuffer,struct.parentId); + this.var_250.method_295(protocolBuffer,struct.surfaces); + this.var_249.method_295(protocolBuffer,struct.transform); + this.var_248.method_295(protocolBuffer,struct.vertexBuffers); + this.var_247.method_295(protocolBuffer,struct.visible); + } + } +} + diff --git a/src/package_49/CodecA3D2SpotLight.as b/src/package_49/CodecA3D2SpotLight.as new file mode 100644 index 0000000..2322e48 --- /dev/null +++ b/src/package_49/CodecA3D2SpotLight.as @@ -0,0 +1,115 @@ +package package_49 +{ + import package_32.name_148; + import package_33.name_155; + import package_33.name_157; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2SpotLight; + import package_48.A3D2Transform; + import package_5.name_3; + + public class CodecA3D2SpotLight implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_260:name_152; + + private var var_258:name_152; + + private var var_244:name_152; + + private var var_259:name_152; + + private var var_286:name_152; + + private var var_287:name_152; + + private var var_252:name_152; + + private var var_257:name_152; + + private var var_253:name_152; + + private var var_254:name_152; + + private var var_249:name_152; + + private var var_247:name_152; + + public function CodecA3D2SpotLight() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_260 = protocol.name_448(new name_148(name_157,false)); + this.var_258 = protocol.name_448(new name_148(name_157,false)); + this.var_244 = protocol.name_448(new name_148(int,true)); + this.var_259 = protocol.name_448(new name_148(uint,false)); + this.var_286 = protocol.name_448(new name_148(name_157,false)); + this.var_287 = protocol.name_448(new name_148(name_157,false)); + this.var_252 = protocol.name_448(new name_148(name_155,false)); + this.var_257 = protocol.name_448(new name_148(name_157,false)); + this.var_253 = protocol.name_448(new name_148(String,true)); + this.var_254 = protocol.name_448(new name_148(name_155,true)); + this.var_249 = protocol.name_448(new name_148(A3D2Transform,true)); + this.var_247 = protocol.name_448(new name_148(Boolean,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_attenuationBegin:Number = Number(this.var_260.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2SpotLight","attenuationBegin",value_attenuationBegin); + var value_attenuationEnd:Number = Number(this.var_258.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2SpotLight","attenuationEnd",value_attenuationEnd); + var value_boundBoxId:int = int(this.var_244.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2SpotLight","boundBoxId",value_boundBoxId); + var value_color:uint = uint(this.var_259.method_296(protocolBuffer) as uint); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2SpotLight","color",value_color); + var value_falloff:Number = Number(this.var_286.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2SpotLight","falloff",value_falloff); + var value_hotspot:Number = Number(this.var_287.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2SpotLight","hotspot",value_hotspot); + var value_id:name_155 = this.var_252.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2SpotLight","id",value_id); + var value_intensity:Number = Number(this.var_257.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2SpotLight","intensity",value_intensity); + var value_name:String = this.var_253.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2SpotLight","name",value_name); + var value_parentId:name_155 = this.var_254.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2SpotLight","parentId",value_parentId); + var value_transform:A3D2Transform = this.var_249.method_296(protocolBuffer) as A3D2Transform; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2SpotLight","transform",value_transform); + var value_visible:Boolean = Boolean(this.var_247.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2SpotLight","visible",value_visible); + return new A3D2SpotLight(value_attenuationBegin,value_attenuationEnd,value_boundBoxId,value_color,value_falloff,value_hotspot,value_id,value_intensity,value_name,value_parentId,value_transform,value_visible); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2SpotLight = A3D2SpotLight(object); + this.var_260.method_295(protocolBuffer,struct.attenuationBegin); + this.var_258.method_295(protocolBuffer,struct.attenuationEnd); + this.var_244.method_295(protocolBuffer,struct.boundBoxId); + this.var_259.method_295(protocolBuffer,struct.color); + this.var_286.method_295(protocolBuffer,struct.falloff); + this.var_287.method_295(protocolBuffer,struct.hotspot); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_257.method_295(protocolBuffer,struct.intensity); + this.var_253.method_295(protocolBuffer,struct.name); + this.var_254.method_295(protocolBuffer,struct.parentId); + this.var_249.method_295(protocolBuffer,struct.transform); + this.var_247.method_295(protocolBuffer,struct.visible); + } + } +} + diff --git a/src/package_49/CodecA3D2Sprite.as b/src/package_49/CodecA3D2Sprite.as new file mode 100644 index 0000000..2d732bd --- /dev/null +++ b/src/package_49/CodecA3D2Sprite.as @@ -0,0 +1,128 @@ +package package_49 +{ + import package_32.name_148; + import package_33.name_155; + import package_33.name_157; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2Sprite; + import package_48.A3D2Transform; + import package_5.name_3; + import package_57.name_213; + + public class CodecA3D2Sprite implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_298:name_152; + + private var var_244:name_152; + + private var var_297:name_152; + + private var var_252:name_152; + + private var var_296:name_152; + + private var var_253:name_152; + + private var var_293:name_152; + + private var var_295:name_152; + + private var var_254:name_152; + + private var var_294:name_152; + + private var var_292:name_152; + + private var var_249:name_152; + + private var var_247:name_152; + + private var var_291:name_152; + + public function CodecA3D2Sprite() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_298 = protocol.name_448(new name_148(Boolean,false)); + this.var_244 = protocol.name_448(new name_148(int,true)); + this.var_297 = protocol.name_448(new name_148(name_157,false)); + this.var_252 = protocol.name_448(new name_148(name_155,false)); + this.var_296 = protocol.name_448(new name_148(name_213,false)); + this.var_253 = protocol.name_448(new name_148(String,true)); + this.var_293 = protocol.name_448(new name_148(name_157,false)); + this.var_295 = protocol.name_448(new name_148(name_157,false)); + this.var_254 = protocol.name_448(new name_148(name_155,true)); + this.var_294 = protocol.name_448(new name_148(Boolean,false)); + this.var_292 = protocol.name_448(new name_148(name_157,false)); + this.var_249 = protocol.name_448(new name_148(A3D2Transform,true)); + this.var_247 = protocol.name_448(new name_148(Boolean,false)); + this.var_291 = protocol.name_448(new name_148(name_157,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_alwaysOnTop:Boolean = Boolean(this.var_298.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","alwaysOnTop",value_alwaysOnTop); + var value_boundBoxId:int = int(this.var_244.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","boundBoxId",value_boundBoxId); + var value_height:Number = Number(this.var_297.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","height",value_height); + var value_id:name_155 = this.var_252.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","id",value_id); + var value_materialId:name_213 = this.var_296.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","materialId",value_materialId); + var value_name:String = this.var_253.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","name",value_name); + var value_originX:Number = Number(this.var_293.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","originX",value_originX); + var value_originY:Number = Number(this.var_295.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","originY",value_originY); + var value_parentId:name_155 = this.var_254.method_296(protocolBuffer) as name_155; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","parentId",value_parentId); + var value_perspectiveScale:Boolean = Boolean(this.var_294.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","perspectiveScale",value_perspectiveScale); + var value_rotation:Number = Number(this.var_292.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","rotation",value_rotation); + var value_transform:A3D2Transform = this.var_249.method_296(protocolBuffer) as A3D2Transform; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","transform",value_transform); + var value_visible:Boolean = Boolean(this.var_247.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","visible",value_visible); + var value_width:Number = Number(this.var_291.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Sprite","width",value_width); + return new A3D2Sprite(value_alwaysOnTop,value_boundBoxId,value_height,value_id,value_materialId,value_name,value_originX,value_originY,value_parentId,value_perspectiveScale,value_rotation,value_transform,value_visible,value_width); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Sprite = A3D2Sprite(object); + this.var_298.method_295(protocolBuffer,struct.alwaysOnTop); + this.var_244.method_295(protocolBuffer,struct.boundBoxId); + this.var_297.method_295(protocolBuffer,struct.height); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_296.method_295(protocolBuffer,struct.materialId); + this.var_253.method_295(protocolBuffer,struct.name); + this.var_293.method_295(protocolBuffer,struct.originX); + this.var_295.method_295(protocolBuffer,struct.originY); + this.var_254.method_295(protocolBuffer,struct.parentId); + this.var_294.method_295(protocolBuffer,struct.perspectiveScale); + this.var_292.method_295(protocolBuffer,struct.rotation); + this.var_249.method_295(protocolBuffer,struct.transform); + this.var_247.method_295(protocolBuffer,struct.visible); + this.var_291.method_295(protocolBuffer,struct.width); + } + } +} + diff --git a/src/package_49/CodecA3D2Surface.as b/src/package_49/CodecA3D2Surface.as new file mode 100644 index 0000000..d90dc96 --- /dev/null +++ b/src/package_49/CodecA3D2Surface.as @@ -0,0 +1,58 @@ +package package_49 +{ + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2Surface; + import package_5.name_3; + + public class CodecA3D2Surface implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_302:name_152; + + private var var_296:name_152; + + private var var_303:name_152; + + public function CodecA3D2Surface() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_302 = protocol.name_448(new name_148(int,false)); + this.var_296 = protocol.name_448(new name_148(int,true)); + this.var_303 = protocol.name_448(new name_148(int,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_indexBegin:int = int(this.var_302.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Surface","indexBegin",value_indexBegin); + var value_materialId:int = int(this.var_296.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Surface","materialId",value_materialId); + var value_numTriangles:int = int(this.var_303.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Surface","numTriangles",value_numTriangles); + return new A3D2Surface(value_indexBegin,value_materialId,value_numTriangles); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Surface = A3D2Surface(object); + this.var_302.method_295(protocolBuffer,struct.indexBegin); + this.var_296.method_295(protocolBuffer,struct.materialId); + this.var_303.method_295(protocolBuffer,struct.numTriangles); + } + } +} + diff --git a/src/package_49/CodecA3D2Transform.as b/src/package_49/CodecA3D2Transform.as new file mode 100644 index 0000000..41e73d1 --- /dev/null +++ b/src/package_49/CodecA3D2Transform.as @@ -0,0 +1,47 @@ +package package_49 +{ + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2Transform; + import package_5.name_3; + import package_57.name_214; + + public class CodecA3D2Transform implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_411:name_152; + + public function CodecA3D2Transform() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_411 = protocol.name_448(new name_148(name_214,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_matrix:name_214 = this.var_411.method_296(protocolBuffer) as name_214; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.objects.A3D2Transform","matrix",value_matrix); + return new A3D2Transform(value_matrix); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Transform = A3D2Transform(object); + this.var_411.method_295(protocolBuffer,struct.matrix); + } + } +} + diff --git a/src/package_49/VectorCodecA3D2AmbientLightLevel1.as b/src/package_49/VectorCodecA3D2AmbientLightLevel1.as new file mode 100644 index 0000000..8ada9e2 --- /dev/null +++ b/src/package_49/VectorCodecA3D2AmbientLightLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2AmbientLight; + + public class VectorCodecA3D2AmbientLightLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2AmbientLightLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2AmbientLight,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2AmbientLight(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2AmbientLightLevel2.as b/src/package_49/VectorCodecA3D2AmbientLightLevel2.as new file mode 100644 index 0000000..120ed43 --- /dev/null +++ b/src/package_49/VectorCodecA3D2AmbientLightLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2AmbientLight; + + public class VectorCodecA3D2AmbientLightLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2AmbientLightLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2AmbientLight,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2AmbientLight(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2AmbientLightLevel3.as b/src/package_49/VectorCodecA3D2AmbientLightLevel3.as new file mode 100644 index 0000000..e9b130e --- /dev/null +++ b/src/package_49/VectorCodecA3D2AmbientLightLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2AmbientLight; + + public class VectorCodecA3D2AmbientLightLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2AmbientLightLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2AmbientLight,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2AmbientLight(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2BoxLevel1.as b/src/package_49/VectorCodecA3D2BoxLevel1.as new file mode 100644 index 0000000..ecd86d1 --- /dev/null +++ b/src/package_49/VectorCodecA3D2BoxLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Box; + + public class VectorCodecA3D2BoxLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2BoxLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Box,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Box(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2BoxLevel2.as b/src/package_49/VectorCodecA3D2BoxLevel2.as new file mode 100644 index 0000000..588ead8 --- /dev/null +++ b/src/package_49/VectorCodecA3D2BoxLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Box; + + public class VectorCodecA3D2BoxLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2BoxLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Box,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Box(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2BoxLevel3.as b/src/package_49/VectorCodecA3D2BoxLevel3.as new file mode 100644 index 0000000..6d52810 --- /dev/null +++ b/src/package_49/VectorCodecA3D2BoxLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Box; + + public class VectorCodecA3D2BoxLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2BoxLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Box,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Box(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2DecalLevel1.as b/src/package_49/VectorCodecA3D2DecalLevel1.as new file mode 100644 index 0000000..912a3af --- /dev/null +++ b/src/package_49/VectorCodecA3D2DecalLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Decal; + + public class VectorCodecA3D2DecalLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2DecalLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Decal,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Decal(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2DecalLevel2.as b/src/package_49/VectorCodecA3D2DecalLevel2.as new file mode 100644 index 0000000..222619a --- /dev/null +++ b/src/package_49/VectorCodecA3D2DecalLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Decal; + + public class VectorCodecA3D2DecalLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2DecalLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Decal,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Decal(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2DecalLevel3.as b/src/package_49/VectorCodecA3D2DecalLevel3.as new file mode 100644 index 0000000..8b386ae --- /dev/null +++ b/src/package_49/VectorCodecA3D2DecalLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Decal; + + public class VectorCodecA3D2DecalLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2DecalLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Decal,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Decal(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2DirectionalLightLevel1.as b/src/package_49/VectorCodecA3D2DirectionalLightLevel1.as new file mode 100644 index 0000000..06ea0ec --- /dev/null +++ b/src/package_49/VectorCodecA3D2DirectionalLightLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2DirectionalLight; + + public class VectorCodecA3D2DirectionalLightLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2DirectionalLightLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2DirectionalLight,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2DirectionalLight(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2DirectionalLightLevel2.as b/src/package_49/VectorCodecA3D2DirectionalLightLevel2.as new file mode 100644 index 0000000..eda8c4e --- /dev/null +++ b/src/package_49/VectorCodecA3D2DirectionalLightLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2DirectionalLight; + + public class VectorCodecA3D2DirectionalLightLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2DirectionalLightLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2DirectionalLight,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2DirectionalLight(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2DirectionalLightLevel3.as b/src/package_49/VectorCodecA3D2DirectionalLightLevel3.as new file mode 100644 index 0000000..42ef410 --- /dev/null +++ b/src/package_49/VectorCodecA3D2DirectionalLightLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2DirectionalLight; + + public class VectorCodecA3D2DirectionalLightLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2DirectionalLightLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2DirectionalLight,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2DirectionalLight(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2JointBindTransformLevel1.as b/src/package_49/VectorCodecA3D2JointBindTransformLevel1.as new file mode 100644 index 0000000..8a56804 --- /dev/null +++ b/src/package_49/VectorCodecA3D2JointBindTransformLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2JointBindTransform; + + public class VectorCodecA3D2JointBindTransformLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2JointBindTransformLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2JointBindTransform,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2JointBindTransform(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2JointBindTransformLevel2.as b/src/package_49/VectorCodecA3D2JointBindTransformLevel2.as new file mode 100644 index 0000000..ae3072a --- /dev/null +++ b/src/package_49/VectorCodecA3D2JointBindTransformLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2JointBindTransform; + + public class VectorCodecA3D2JointBindTransformLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2JointBindTransformLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2JointBindTransform,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2JointBindTransform(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2JointBindTransformLevel3.as b/src/package_49/VectorCodecA3D2JointBindTransformLevel3.as new file mode 100644 index 0000000..73707ff --- /dev/null +++ b/src/package_49/VectorCodecA3D2JointBindTransformLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2JointBindTransform; + + public class VectorCodecA3D2JointBindTransformLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2JointBindTransformLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2JointBindTransform,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2JointBindTransform(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2JointLevel1.as b/src/package_49/VectorCodecA3D2JointLevel1.as new file mode 100644 index 0000000..db1038e --- /dev/null +++ b/src/package_49/VectorCodecA3D2JointLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Joint; + + public class VectorCodecA3D2JointLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2JointLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Joint,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Joint(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2JointLevel2.as b/src/package_49/VectorCodecA3D2JointLevel2.as new file mode 100644 index 0000000..d822317 --- /dev/null +++ b/src/package_49/VectorCodecA3D2JointLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Joint; + + public class VectorCodecA3D2JointLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2JointLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Joint,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Joint(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2JointLevel3.as b/src/package_49/VectorCodecA3D2JointLevel3.as new file mode 100644 index 0000000..f682063 --- /dev/null +++ b/src/package_49/VectorCodecA3D2JointLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Joint; + + public class VectorCodecA3D2JointLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2JointLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Joint,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Joint(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2MeshLevel1.as b/src/package_49/VectorCodecA3D2MeshLevel1.as new file mode 100644 index 0000000..9d5eed7 --- /dev/null +++ b/src/package_49/VectorCodecA3D2MeshLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Mesh; + + public class VectorCodecA3D2MeshLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2MeshLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Mesh,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Mesh(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2MeshLevel2.as b/src/package_49/VectorCodecA3D2MeshLevel2.as new file mode 100644 index 0000000..0b23661 --- /dev/null +++ b/src/package_49/VectorCodecA3D2MeshLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Mesh; + + public class VectorCodecA3D2MeshLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2MeshLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Mesh,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Mesh(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2MeshLevel3.as b/src/package_49/VectorCodecA3D2MeshLevel3.as new file mode 100644 index 0000000..75a36df --- /dev/null +++ b/src/package_49/VectorCodecA3D2MeshLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Mesh; + + public class VectorCodecA3D2MeshLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2MeshLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Mesh,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Mesh(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2ObjectLevel1.as b/src/package_49/VectorCodecA3D2ObjectLevel1.as new file mode 100644 index 0000000..94e9552 --- /dev/null +++ b/src/package_49/VectorCodecA3D2ObjectLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Object; + + public class VectorCodecA3D2ObjectLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2ObjectLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Object,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Object(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2ObjectLevel2.as b/src/package_49/VectorCodecA3D2ObjectLevel2.as new file mode 100644 index 0000000..adae023 --- /dev/null +++ b/src/package_49/VectorCodecA3D2ObjectLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Object; + + public class VectorCodecA3D2ObjectLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2ObjectLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Object,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Object(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2ObjectLevel3.as b/src/package_49/VectorCodecA3D2ObjectLevel3.as new file mode 100644 index 0000000..b601520 --- /dev/null +++ b/src/package_49/VectorCodecA3D2ObjectLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Object; + + public class VectorCodecA3D2ObjectLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2ObjectLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Object,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Object(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2OmniLightLevel1.as b/src/package_49/VectorCodecA3D2OmniLightLevel1.as new file mode 100644 index 0000000..e2c3946 --- /dev/null +++ b/src/package_49/VectorCodecA3D2OmniLightLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2OmniLight; + + public class VectorCodecA3D2OmniLightLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2OmniLightLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2OmniLight,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2OmniLight(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2OmniLightLevel2.as b/src/package_49/VectorCodecA3D2OmniLightLevel2.as new file mode 100644 index 0000000..4f1fa69 --- /dev/null +++ b/src/package_49/VectorCodecA3D2OmniLightLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2OmniLight; + + public class VectorCodecA3D2OmniLightLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2OmniLightLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2OmniLight,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2OmniLight(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2OmniLightLevel3.as b/src/package_49/VectorCodecA3D2OmniLightLevel3.as new file mode 100644 index 0000000..e4ac61e --- /dev/null +++ b/src/package_49/VectorCodecA3D2OmniLightLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2OmniLight; + + public class VectorCodecA3D2OmniLightLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2OmniLightLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2OmniLight,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2OmniLight(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2SkinLevel1.as b/src/package_49/VectorCodecA3D2SkinLevel1.as new file mode 100644 index 0000000..658f64a --- /dev/null +++ b/src/package_49/VectorCodecA3D2SkinLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Skin; + + public class VectorCodecA3D2SkinLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2SkinLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Skin,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Skin(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2SkinLevel2.as b/src/package_49/VectorCodecA3D2SkinLevel2.as new file mode 100644 index 0000000..571c7a2 --- /dev/null +++ b/src/package_49/VectorCodecA3D2SkinLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Skin; + + public class VectorCodecA3D2SkinLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2SkinLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Skin,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Skin(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2SkinLevel3.as b/src/package_49/VectorCodecA3D2SkinLevel3.as new file mode 100644 index 0000000..aa90c50 --- /dev/null +++ b/src/package_49/VectorCodecA3D2SkinLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Skin; + + public class VectorCodecA3D2SkinLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2SkinLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Skin,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Skin(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2SpotLightLevel1.as b/src/package_49/VectorCodecA3D2SpotLightLevel1.as new file mode 100644 index 0000000..0ce943a --- /dev/null +++ b/src/package_49/VectorCodecA3D2SpotLightLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2SpotLight; + + public class VectorCodecA3D2SpotLightLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2SpotLightLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2SpotLight,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2SpotLight(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2SpotLightLevel2.as b/src/package_49/VectorCodecA3D2SpotLightLevel2.as new file mode 100644 index 0000000..8540f42 --- /dev/null +++ b/src/package_49/VectorCodecA3D2SpotLightLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2SpotLight; + + public class VectorCodecA3D2SpotLightLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2SpotLightLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2SpotLight,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2SpotLight(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2SpotLightLevel3.as b/src/package_49/VectorCodecA3D2SpotLightLevel3.as new file mode 100644 index 0000000..8267434 --- /dev/null +++ b/src/package_49/VectorCodecA3D2SpotLightLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2SpotLight; + + public class VectorCodecA3D2SpotLightLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2SpotLightLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2SpotLight,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2SpotLight(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2SpriteLevel1.as b/src/package_49/VectorCodecA3D2SpriteLevel1.as new file mode 100644 index 0000000..9febdf4 --- /dev/null +++ b/src/package_49/VectorCodecA3D2SpriteLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Sprite; + + public class VectorCodecA3D2SpriteLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2SpriteLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Sprite,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Sprite(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2SpriteLevel2.as b/src/package_49/VectorCodecA3D2SpriteLevel2.as new file mode 100644 index 0000000..b287484 --- /dev/null +++ b/src/package_49/VectorCodecA3D2SpriteLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Sprite; + + public class VectorCodecA3D2SpriteLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2SpriteLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Sprite,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Sprite(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2SpriteLevel3.as b/src/package_49/VectorCodecA3D2SpriteLevel3.as new file mode 100644 index 0000000..73e7a5a --- /dev/null +++ b/src/package_49/VectorCodecA3D2SpriteLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Sprite; + + public class VectorCodecA3D2SpriteLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2SpriteLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Sprite,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Sprite(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2SurfaceLevel1.as b/src/package_49/VectorCodecA3D2SurfaceLevel1.as new file mode 100644 index 0000000..d0b2cd2 --- /dev/null +++ b/src/package_49/VectorCodecA3D2SurfaceLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Surface; + + public class VectorCodecA3D2SurfaceLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2SurfaceLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Surface,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Surface(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2SurfaceLevel2.as b/src/package_49/VectorCodecA3D2SurfaceLevel2.as new file mode 100644 index 0000000..a833221 --- /dev/null +++ b/src/package_49/VectorCodecA3D2SurfaceLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Surface; + + public class VectorCodecA3D2SurfaceLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2SurfaceLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Surface,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Surface(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2SurfaceLevel3.as b/src/package_49/VectorCodecA3D2SurfaceLevel3.as new file mode 100644 index 0000000..4ebbdb5 --- /dev/null +++ b/src/package_49/VectorCodecA3D2SurfaceLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Surface; + + public class VectorCodecA3D2SurfaceLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2SurfaceLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Surface,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Surface(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2TransformLevel1.as b/src/package_49/VectorCodecA3D2TransformLevel1.as new file mode 100644 index 0000000..c6a930f --- /dev/null +++ b/src/package_49/VectorCodecA3D2TransformLevel1.as @@ -0,0 +1,59 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Transform; + + public class VectorCodecA3D2TransformLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2TransformLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Transform,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Transform(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2TransformLevel2.as b/src/package_49/VectorCodecA3D2TransformLevel2.as new file mode 100644 index 0000000..c824f1b --- /dev/null +++ b/src/package_49/VectorCodecA3D2TransformLevel2.as @@ -0,0 +1,89 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Transform; + + public class VectorCodecA3D2TransformLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2TransformLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Transform,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Transform(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_49/VectorCodecA3D2TransformLevel3.as b/src/package_49/VectorCodecA3D2TransformLevel3.as new file mode 100644 index 0000000..1e816af --- /dev/null +++ b/src/package_49/VectorCodecA3D2TransformLevel3.as @@ -0,0 +1,119 @@ +package package_49 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_48.A3D2Transform; + + public class VectorCodecA3D2TransformLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2TransformLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Transform,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Transform(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_5/name_3.as b/src/package_5/name_3.as new file mode 100644 index 0000000..2eea59e --- /dev/null +++ b/src/package_5/name_3.as @@ -0,0 +1,185 @@ +package package_5 +{ + import flash.utils.Dictionary; + import flash.utils.getQualifiedClassName; + import package_31.class_6; + import package_31.name_202; + import package_39.name_203; + + public class name_3 + { + public static var clientLog:name_203; + + private static var instance:name_3; + + private static const LOG_CHANNEL:String = "osgi"; + + private var var_52:Object = {}; + + private var services:Dictionary = new Dictionary(); + + private var var_51:Dictionary = new Dictionary(); + + public function name_3() + { + super(); + if(instance == null) + { + instance = this; + return; + } + throw new Error("Only one instance of OSGi class is allowed"); + } + + public static function name_8() : name_3 + { + return instance; + } + + public function method_121(bundleDescriptor:name_202) : void + { + var activators:Vector. = null; + var i:int = 0; + var activator:class_6 = null; + if(this.var_52[bundleDescriptor.name] == null) + { + clientLog.log(LOG_CHANNEL,"Installing bundle %1",bundleDescriptor.name); + clientLog.log(LOG_CHANNEL,"Bundle activators: %1",bundleDescriptor.activators); + this.var_52[bundleDescriptor.name] = bundleDescriptor; + activators = bundleDescriptor.activators; + if(activators != null) + { + for(i = 0; i < activators.length; i++) + { + activator = activators[i]; + clientLog.log(LOG_CHANNEL,"Invoking start() on activator " + getQualifiedClassName(activator)); + activator.start(this); + } + } + clientLog.log(LOG_CHANNEL,"Bundle " + bundleDescriptor.name + " has been installed"); + return; + } + throw new Error("Bundle " + bundleDescriptor.name + " is already installed"); + } + + public function method_120(bundleName:String) : void + { + var i:int = 0; + var activator:class_6 = null; + if(bundleName == null) + { + throw new ArgumentError("Bundle name is null"); + } + var bundleDescriptor:name_202 = this.var_52[bundleName]; + if(bundleDescriptor == null) + { + throw new Error("Bundle " + bundleName + " not found"); + } + var activators:Vector. = bundleDescriptor.activators; + if(activators != null) + { + for(i = 0; i < activators.length; i++) + { + activator = activators[i]; + clientLog.log(LOG_CHANNEL,"Invoking stop() on activator " + getQualifiedClassName(activator)); + activator.stop(this); + } + } + delete this.var_52[bundleName]; + clientLog.log(LOG_CHANNEL,"Bundle " + bundleName + " has been uninstalled"); + } + + public function method_116(serviceInterface:Class, serviceImplementation:Object) : void + { + var injectPoints:Vector. = null; + var ip:InjectPoint = null; + if(this.services[serviceInterface] == null) + { + this.services[serviceInterface] = serviceImplementation; + if(this.var_51[serviceInterface] != null) + { + injectPoints = this.var_51[serviceInterface]; + for each(ip in injectPoints) + { + ip.injectOwner[ip.injectFieldName] = serviceImplementation; + clientLog.log(LOG_CHANNEL,"Service %1 has been injected at %2",serviceInterface,ip.injectOwner + "." + ip.injectFieldName); + } + } + clientLog.log(LOG_CHANNEL,"Service has been registered: " + serviceInterface); + return; + } + throw new Error("Service " + serviceInterface + " is already registered"); + } + + public function method_118(serviceInterfaces:Array, serviceImplementation:Object) : void + { + var serviceInterface:Class = null; + for each(serviceInterface in serviceInterfaces) + { + this.method_116(serviceInterface,serviceImplementation); + } + } + + public function method_117(serviceInterface:Class) : void + { + if(this.services[serviceInterface] != null) + { + delete this.services[serviceInterface]; + delete this.var_51[serviceInterface]; + clientLog.log(LOG_CHANNEL,"Service has been unregistered: " + serviceInterface); + } + } + + public function name_30(serviceInterface:Class) : Object + { + return this.services[serviceInterface]; + } + + public function name_161(serviceInterface:Class, injectFieldOwner:Class, injectFieldName:String) : void + { + if(!this.var_51[serviceInterface]) + { + this.var_51[serviceInterface] = new Vector.(); + } + this.var_51[serviceInterface].push(new InjectPoint(injectFieldOwner,injectFieldName)); + injectFieldOwner[injectFieldName] = this.services[serviceInterface]; + clientLog.log(LOG_CHANNEL,"Inject %1 have been processed. Current value is %2",injectFieldOwner + "." + injectFieldName,this.services[serviceInterface]); + } + + public function get method_122() : Vector. + { + var bundleDescriptor:name_202 = null; + var list:Vector. = new Vector.(); + for each(bundleDescriptor in this.var_52) + { + list.push(bundleDescriptor); + } + return list; + } + + public function get method_119() : Vector. + { + var service:Object = null; + var list:Vector. = new Vector.(); + for each(service in this.services) + { + list.push(service); + } + return list; + } + } +} + +class InjectPoint +{ + public var injectOwner:Class; + + public var injectFieldName:String; + + public function InjectPoint(injectOwner:Class, injectFieldName:String) + { + super(); + this.injectOwner = injectOwner; + this.injectFieldName = injectFieldName; + } +} diff --git a/src/package_50/A3DBox.as b/src/package_50/A3DBox.as new file mode 100644 index 0000000..56a3196 --- /dev/null +++ b/src/package_50/A3DBox.as @@ -0,0 +1,47 @@ +package package_50 +{ + import package_57.name_213; + + public class A3DBox + { + private var var_290:Vector.; + + private var var_101:name_213; + + public function A3DBox(box:Vector., id:name_213) + { + super(); + this.var_290 = box; + this.var_101 = id; + } + + public function get box() : Vector. + { + return this.var_290; + } + + public function set box(value:Vector.) : void + { + this.var_290 = value; + } + + public function get id() : name_213 + { + return this.var_101; + } + + public function set id(value:name_213) : void + { + this.var_101 = value; + } + + public function toString() : String + { + var result:String = "A3DBox ["; + result += "box = " + this.box + " "; + result += "id = " + this.id + " "; + return result + "]"; + } + } +} + diff --git a/src/package_50/A3DObject.as b/src/package_50/A3DObject.as new file mode 100644 index 0000000..103b0bd --- /dev/null +++ b/src/package_50/A3DObject.as @@ -0,0 +1,132 @@ +package package_50 +{ + import package_57.name_213; + import package_64.name_212; + + public class A3DObject + { + private var var_268:name_213; + + private var var_336:name_213; + + private var var_101:name_213; + + private var _name:String; + + private var var_270:name_212; + + private var var_92:Vector.; + + private var var_335:A3DTransformation; + + private var var_267:Boolean; + + public function A3DObject(boundBoxId:name_213, geometryId:name_213, id:name_213, name:String, parentId:name_212, surfaces:Vector., transformation:A3DTransformation, visible:Boolean) + { + super(); + this.var_268 = boundBoxId; + this.var_336 = geometryId; + this.var_101 = id; + this._name = name; + this.var_270 = parentId; + this.var_92 = surfaces; + this.var_335 = transformation; + this.var_267 = visible; + } + + public function get boundBoxId() : name_213 + { + return this.var_268; + } + + public function set boundBoxId(value:name_213) : void + { + this.var_268 = value; + } + + public function get geometryId() : name_213 + { + return this.var_336; + } + + public function set geometryId(value:name_213) : void + { + this.var_336 = value; + } + + public function get id() : name_213 + { + return this.var_101; + } + + public function set id(value:name_213) : void + { + this.var_101 = value; + } + + public function get name() : String + { + return this._name; + } + + public function set name(value:String) : void + { + this._name = value; + } + + public function get parentId() : name_212 + { + return this.var_270; + } + + public function set parentId(value:name_212) : void + { + this.var_270 = value; + } + + public function get surfaces() : Vector. + { + return this.var_92; + } + + public function set surfaces(value:Vector.) : void + { + this.var_92 = value; + } + + public function get transformation() : A3DTransformation + { + return this.var_335; + } + + public function set transformation(value:A3DTransformation) : void + { + this.var_335 = value; + } + + public function get visible() : Boolean + { + return this.var_267; + } + + public function set visible(value:Boolean) : void + { + this.var_267 = value; + } + + public function toString() : String + { + var result:String = "A3DObject ["; + result += "boundBoxId = " + this.boundBoxId + " "; + result += "geometryId = " + this.geometryId + " "; + result += "id = " + this.id + " "; + result += "name = " + this.name + " "; + result += "parentId = " + this.parentId + " "; + result += "surfaces = " + this.surfaces + " "; + result += "transformation = " + this.transformation + " "; + result += "visible = " + this.visible + " "; + return result + "]"; + } + } +} + diff --git a/src/package_50/A3DSurface.as b/src/package_50/A3DSurface.as new file mode 100644 index 0000000..7208a41 --- /dev/null +++ b/src/package_50/A3DSurface.as @@ -0,0 +1,61 @@ +package package_50 +{ + import package_57.name_213; + + public class A3DSurface + { + private var var_299:int; + + private var var_301:name_213; + + private var var_300:int; + + public function A3DSurface(indexBegin:int, materialId:name_213, numTriangles:int) + { + super(); + this.var_299 = indexBegin; + this.var_301 = materialId; + this.var_300 = numTriangles; + } + + public function get indexBegin() : int + { + return this.var_299; + } + + public function set indexBegin(value:int) : void + { + this.var_299 = value; + } + + public function get materialId() : name_213 + { + return this.var_301; + } + + public function set materialId(value:name_213) : void + { + this.var_301 = value; + } + + public function get numTriangles() : int + { + return this.var_300; + } + + public function set numTriangles(value:int) : void + { + this.var_300 = value; + } + + public function toString() : String + { + var result:String = "A3DSurface ["; + result += "indexBegin = " + this.indexBegin + " "; + result += "materialId = " + this.materialId + " "; + result += "numTriangles = " + this.numTriangles + " "; + return result + "]"; + } + } +} + diff --git a/src/package_50/A3DTransformation.as b/src/package_50/A3DTransformation.as new file mode 100644 index 0000000..81ba18d --- /dev/null +++ b/src/package_50/A3DTransformation.as @@ -0,0 +1,33 @@ +package package_50 +{ + import package_57.name_214; + + public class A3DTransformation + { + private var var_412:name_214; + + public function A3DTransformation(matrix:name_214) + { + super(); + this.var_412 = matrix; + } + + public function get matrix() : name_214 + { + return this.var_412; + } + + public function set matrix(value:name_214) : void + { + this.var_412 = value; + } + + public function toString() : String + { + var result:String = "A3DTransformation ["; + result += "matrix = " + this.matrix + " "; + return result + "]"; + } + } +} + diff --git a/src/package_51/A3D2CubeMap.as b/src/package_51/A3D2CubeMap.as new file mode 100644 index 0000000..b399f4c --- /dev/null +++ b/src/package_51/A3D2CubeMap.as @@ -0,0 +1,115 @@ +package package_51 +{ + public class A3D2CubeMap + { + private var var_279:int; + + private var var_283:int; + + private var var_280:int; + + private var var_101:int; + + private var var_278:int; + + private var var_281:int; + + private var var_282:int; + + public function A3D2CubeMap(backId:int, bottomId:int, frontId:int, id:int, leftId:int, rightId:int, topId:int) + { + super(); + this.var_279 = backId; + this.var_283 = bottomId; + this.var_280 = frontId; + this.var_101 = id; + this.var_278 = leftId; + this.var_281 = rightId; + this.var_282 = topId; + } + + public function get backId() : int + { + return this.var_279; + } + + public function set backId(value:int) : void + { + this.var_279 = value; + } + + public function get bottomId() : int + { + return this.var_283; + } + + public function set bottomId(value:int) : void + { + this.var_283 = value; + } + + public function get frontId() : int + { + return this.var_280; + } + + public function set frontId(value:int) : void + { + this.var_280 = value; + } + + public function get id() : int + { + return this.var_101; + } + + public function set id(value:int) : void + { + this.var_101 = value; + } + + public function get leftId() : int + { + return this.var_278; + } + + public function set leftId(value:int) : void + { + this.var_278 = value; + } + + public function get rightId() : int + { + return this.var_281; + } + + public function set rightId(value:int) : void + { + this.var_281 = value; + } + + public function get topId() : int + { + return this.var_282; + } + + public function set topId(value:int) : void + { + this.var_282 = value; + } + + public function toString() : String + { + var result:String = "A3D2CubeMap ["; + result += "backId = " + this.backId + " "; + result += "bottomId = " + this.bottomId + " "; + result += "frontId = " + this.frontId + " "; + result += "id = " + this.id + " "; + result += "leftId = " + this.leftId + " "; + result += "rightId = " + this.rightId + " "; + result += "topId = " + this.topId + " "; + return result + "]"; + } + } +} + diff --git a/src/package_51/A3D2Image.as b/src/package_51/A3D2Image.as new file mode 100644 index 0000000..18c7017 --- /dev/null +++ b/src/package_51/A3D2Image.as @@ -0,0 +1,45 @@ +package package_51 +{ + public class A3D2Image + { + private var var_101:int; + + private var var_274:String; + + public function A3D2Image(id:int, url:String) + { + super(); + this.var_101 = id; + this.var_274 = url; + } + + public function get id() : int + { + return this.var_101; + } + + public function set id(value:int) : void + { + this.var_101 = value; + } + + public function get url() : String + { + return this.var_274; + } + + public function set url(value:String) : void + { + this.var_274 = value; + } + + public function toString() : String + { + var result:String = "A3D2Image ["; + result += "id = " + this.id + " "; + result += "url = " + this.url + " "; + return result + "]"; + } + } +} + diff --git a/src/package_51/A3D2Map.as b/src/package_51/A3D2Map.as new file mode 100644 index 0000000..06cab41 --- /dev/null +++ b/src/package_51/A3D2Map.as @@ -0,0 +1,59 @@ +package package_51 +{ + public class A3D2Map + { + private var var_338:uint; + + private var var_101:int; + + private var var_337:int; + + public function A3D2Map(channel:uint, id:int, imageId:int) + { + super(); + this.var_338 = channel; + this.var_101 = id; + this.var_337 = imageId; + } + + public function get channel() : uint + { + return this.var_338; + } + + public function set channel(value:uint) : void + { + this.var_338 = value; + } + + public function get id() : int + { + return this.var_101; + } + + public function set id(value:int) : void + { + this.var_101 = value; + } + + public function get imageId() : int + { + return this.var_337; + } + + public function set imageId(value:int) : void + { + this.var_337 = value; + } + + public function toString() : String + { + var result:String = "A3D2Map ["; + result += "channel = " + this.channel + " "; + result += "id = " + this.id + " "; + result += "imageId = " + this.imageId + " "; + return result + "]"; + } + } +} + diff --git a/src/package_51/A3D2Material.as b/src/package_51/A3D2Material.as new file mode 100644 index 0000000..bc9a032 --- /dev/null +++ b/src/package_51/A3D2Material.as @@ -0,0 +1,129 @@ +package package_51 +{ + public class A3D2Material + { + private var var_345:int; + + private var var_342:int; + + private var var_101:int; + + private var var_343:int; + + private var var_339:int; + + private var var_341:int; + + private var var_344:int; + + private var var_340:int; + + public function A3D2Material(diffuseMapId:int, glossinessMapId:int, id:int, lightMapId:int, normalMapId:int, opacityMapId:int, reflectionCubeMapId:int, specularMapId:int) + { + super(); + this.var_345 = diffuseMapId; + this.var_342 = glossinessMapId; + this.var_101 = id; + this.var_343 = lightMapId; + this.var_339 = normalMapId; + this.var_341 = opacityMapId; + this.var_344 = reflectionCubeMapId; + this.var_340 = specularMapId; + } + + public function get diffuseMapId() : int + { + return this.var_345; + } + + public function set diffuseMapId(value:int) : void + { + this.var_345 = value; + } + + public function get glossinessMapId() : int + { + return this.var_342; + } + + public function set glossinessMapId(value:int) : void + { + this.var_342 = value; + } + + public function get id() : int + { + return this.var_101; + } + + public function set id(value:int) : void + { + this.var_101 = value; + } + + public function get lightMapId() : int + { + return this.var_343; + } + + public function set lightMapId(value:int) : void + { + this.var_343 = value; + } + + public function get normalMapId() : int + { + return this.var_339; + } + + public function set normalMapId(value:int) : void + { + this.var_339 = value; + } + + public function get opacityMapId() : int + { + return this.var_341; + } + + public function set opacityMapId(value:int) : void + { + this.var_341 = value; + } + + public function get reflectionCubeMapId() : int + { + return this.var_344; + } + + public function set reflectionCubeMapId(value:int) : void + { + this.var_344 = value; + } + + public function get specularMapId() : int + { + return this.var_340; + } + + public function set specularMapId(value:int) : void + { + this.var_340 = value; + } + + public function toString() : String + { + var result:String = "A3D2Material ["; + result += "diffuseMapId = " + this.diffuseMapId + " "; + result += "glossinessMapId = " + this.glossinessMapId + " "; + result += "id = " + this.id + " "; + result += "lightMapId = " + this.lightMapId + " "; + result += "normalMapId = " + this.normalMapId + " "; + result += "opacityMapId = " + this.opacityMapId + " "; + result += "reflectionCubeMapId = " + this.reflectionCubeMapId + " "; + result += "specularMapId = " + this.specularMapId + " "; + return result + "]"; + } + } +} + diff --git a/src/package_52/A3D2IndexBuffer.as b/src/package_52/A3D2IndexBuffer.as new file mode 100644 index 0000000..8851e3a --- /dev/null +++ b/src/package_52/A3D2IndexBuffer.as @@ -0,0 +1,61 @@ +package package_52 +{ + import flash.utils.ByteArray; + + public class A3D2IndexBuffer + { + private var var_271:ByteArray; + + private var var_101:int; + + private var var_379:int; + + public function A3D2IndexBuffer(byteBuffer:ByteArray, id:int, indexCount:int) + { + super(); + this.var_271 = byteBuffer; + this.var_101 = id; + this.var_379 = indexCount; + } + + public function get byteBuffer() : ByteArray + { + return this.var_271; + } + + public function set byteBuffer(value:ByteArray) : void + { + this.var_271 = value; + } + + public function get id() : int + { + return this.var_101; + } + + public function set id(value:int) : void + { + this.var_101 = value; + } + + public function get indexCount() : int + { + return this.var_379; + } + + public function set indexCount(value:int) : void + { + this.var_379 = value; + } + + public function toString() : String + { + var result:String = "A3D2IndexBuffer ["; + result += "byteBuffer = " + this.byteBuffer + " "; + result += "id = " + this.id + " "; + result += "indexCount = " + this.indexCount + " "; + return result + "]"; + } + } +} + diff --git a/src/package_52/A3D2VertexAttributes.as b/src/package_52/A3D2VertexAttributes.as new file mode 100644 index 0000000..796e785 --- /dev/null +++ b/src/package_52/A3D2VertexAttributes.as @@ -0,0 +1,50 @@ +package package_52 +{ + public class A3D2VertexAttributes + { + public static const POSITION:A3D2VertexAttributes = new A3D2VertexAttributes(0); + + public static const NORMAL:A3D2VertexAttributes = new A3D2VertexAttributes(1); + + public static const TANGENT4:A3D2VertexAttributes = new A3D2VertexAttributes(2); + + public static const JOINT:A3D2VertexAttributes = new A3D2VertexAttributes(3); + + public static const TEXCOORD:A3D2VertexAttributes = new A3D2VertexAttributes(4); + + public var value:int; + + public function A3D2VertexAttributes(value:int) + { + super(); + this.value = value; + } + + public function toString() : String + { + var result:String = "A3D2VertexAttributes ["; + if(this.value == 0) + { + result += "POSITION"; + } + if(this.value == 1) + { + result += "NORMAL"; + } + if(this.value == 2) + { + result += "TANGENT4"; + } + if(this.value == 3) + { + result += "JOINT"; + } + if(this.value == 4) + { + result += "TEXCOORD"; + } + return result + "]"; + } + } +} + diff --git a/src/package_52/A3D2VertexBuffer.as b/src/package_52/A3D2VertexBuffer.as new file mode 100644 index 0000000..1fbd6d1 --- /dev/null +++ b/src/package_52/A3D2VertexBuffer.as @@ -0,0 +1,75 @@ +package package_52 +{ + import flash.utils.ByteArray; + + public class A3D2VertexBuffer + { + private var var_273:Vector.; + + private var var_271:ByteArray; + + private var var_101:int; + + private var var_272:uint; + + public function A3D2VertexBuffer(attributes:Vector., byteBuffer:ByteArray, id:int, vertexCount:uint) + { + super(); + this.var_273 = attributes; + this.var_271 = byteBuffer; + this.var_101 = id; + this.var_272 = vertexCount; + } + + public function get attributes() : Vector. + { + return this.var_273; + } + + public function set attributes(value:Vector.) : void + { + this.var_273 = value; + } + + public function get byteBuffer() : ByteArray + { + return this.var_271; + } + + public function set byteBuffer(value:ByteArray) : void + { + this.var_271 = value; + } + + public function get id() : int + { + return this.var_101; + } + + public function set id(value:int) : void + { + this.var_101 = value; + } + + public function get vertexCount() : uint + { + return this.var_272; + } + + public function set vertexCount(value:uint) : void + { + this.var_272 = value; + } + + public function toString() : String + { + var result:String = "A3D2VertexBuffer ["; + result += "attributes = " + this.attributes + " "; + result += "byteBuffer = " + this.byteBuffer + " "; + result += "id = " + this.id + " "; + result += "vertexCount = " + this.vertexCount + " "; + return result + "]"; + } + } +} + diff --git a/src/package_53/A3DImage.as b/src/package_53/A3DImage.as new file mode 100644 index 0000000..294516b --- /dev/null +++ b/src/package_53/A3DImage.as @@ -0,0 +1,47 @@ +package package_53 +{ + import package_57.name_213; + + public class A3DImage + { + private var var_101:name_213; + + private var var_274:String; + + public function A3DImage(id:name_213, url:String) + { + super(); + this.var_101 = id; + this.var_274 = url; + } + + public function get id() : name_213 + { + return this.var_101; + } + + public function set id(value:name_213) : void + { + this.var_101 = value; + } + + public function get url() : String + { + return this.var_274; + } + + public function set url(value:String) : void + { + this.var_274 = value; + } + + public function toString() : String + { + var result:String = "A3DImage ["; + result += "id = " + this.id + " "; + result += "url = " + this.url + " "; + return result + "]"; + } + } +} + diff --git a/src/package_53/A3DMap.as b/src/package_53/A3DMap.as new file mode 100644 index 0000000..e5db572 --- /dev/null +++ b/src/package_53/A3DMap.as @@ -0,0 +1,117 @@ +package package_53 +{ + import package_57.name_213; + + public class A3DMap + { + private var var_338:uint; + + private var var_101:name_213; + + private var var_337:name_213; + + private var var_414:Number; + + private var var_413:Number; + + private var var_415:Number; + + private var var_416:Number; + + public function A3DMap(channel:uint, id:name_213, imageId:name_213, uOffset:Number, uScale:Number, vOffset:Number, vScale:Number) + { + super(); + this.var_338 = channel; + this.var_101 = id; + this.var_337 = imageId; + this.var_414 = uOffset; + this.var_413 = uScale; + this.var_415 = vOffset; + this.var_416 = vScale; + } + + public function get channel() : uint + { + return this.var_338; + } + + public function set channel(value:uint) : void + { + this.var_338 = value; + } + + public function get id() : name_213 + { + return this.var_101; + } + + public function set id(value:name_213) : void + { + this.var_101 = value; + } + + public function get imageId() : name_213 + { + return this.var_337; + } + + public function set imageId(value:name_213) : void + { + this.var_337 = value; + } + + public function get uOffset() : Number + { + return this.var_414; + } + + public function set uOffset(value:Number) : void + { + this.var_414 = value; + } + + public function get uScale() : Number + { + return this.var_413; + } + + public function set uScale(value:Number) : void + { + this.var_413 = value; + } + + public function get vOffset() : Number + { + return this.var_415; + } + + public function set vOffset(value:Number) : void + { + this.var_415 = value; + } + + public function get vScale() : Number + { + return this.var_416; + } + + public function set vScale(value:Number) : void + { + this.var_416 = value; + } + + public function toString() : String + { + var result:String = "A3DMap ["; + result += "channel = " + this.channel + " "; + result += "id = " + this.id + " "; + result += "imageId = " + this.imageId + " "; + result += "uOffset = " + this.uOffset + " "; + result += "uScale = " + this.uScale + " "; + result += "vOffset = " + this.vOffset + " "; + result += "vScale = " + this.vScale + " "; + return result + "]"; + } + } +} + diff --git a/src/package_53/A3DMaterial.as b/src/package_53/A3DMaterial.as new file mode 100644 index 0000000..2c5dbe8 --- /dev/null +++ b/src/package_53/A3DMaterial.as @@ -0,0 +1,117 @@ +package package_53 +{ + import package_57.name_213; + + public class A3DMaterial + { + private var var_345:name_213; + + private var var_342:name_213; + + private var var_101:name_213; + + private var var_343:name_213; + + private var var_339:name_213; + + private var var_341:name_213; + + private var var_340:name_213; + + public function A3DMaterial(diffuseMapId:name_213, glossinessMapId:name_213, id:name_213, lightMapId:name_213, normalMapId:name_213, opacityMapId:name_213, specularMapId:name_213) + { + super(); + this.var_345 = diffuseMapId; + this.var_342 = glossinessMapId; + this.var_101 = id; + this.var_343 = lightMapId; + this.var_339 = normalMapId; + this.var_341 = opacityMapId; + this.var_340 = specularMapId; + } + + public function get diffuseMapId() : name_213 + { + return this.var_345; + } + + public function set diffuseMapId(value:name_213) : void + { + this.var_345 = value; + } + + public function get glossinessMapId() : name_213 + { + return this.var_342; + } + + public function set glossinessMapId(value:name_213) : void + { + this.var_342 = value; + } + + public function get id() : name_213 + { + return this.var_101; + } + + public function set id(value:name_213) : void + { + this.var_101 = value; + } + + public function get lightMapId() : name_213 + { + return this.var_343; + } + + public function set lightMapId(value:name_213) : void + { + this.var_343 = value; + } + + public function get normalMapId() : name_213 + { + return this.var_339; + } + + public function set normalMapId(value:name_213) : void + { + this.var_339 = value; + } + + public function get opacityMapId() : name_213 + { + return this.var_341; + } + + public function set opacityMapId(value:name_213) : void + { + this.var_341 = value; + } + + public function get specularMapId() : name_213 + { + return this.var_340; + } + + public function set specularMapId(value:name_213) : void + { + this.var_340 = value; + } + + public function toString() : String + { + var result:String = "A3DMaterial ["; + result += "diffuseMapId = " + this.diffuseMapId + " "; + result += "glossinessMapId = " + this.glossinessMapId + " "; + result += "id = " + this.id + " "; + result += "lightMapId = " + this.lightMapId + " "; + result += "normalMapId = " + this.normalMapId + " "; + result += "opacityMapId = " + this.opacityMapId + " "; + result += "specularMapId = " + this.specularMapId + " "; + return result + "]"; + } + } +} + diff --git a/src/package_54/A3DGeometry.as b/src/package_54/A3DGeometry.as new file mode 100644 index 0000000..675df83 --- /dev/null +++ b/src/package_54/A3DGeometry.as @@ -0,0 +1,61 @@ +package package_54 +{ + import package_57.name_213; + + public class A3DGeometry + { + private var var_101:name_213; + + private var name_132:A3DIndexBuffer; + + private var var_277:Vector.; + + public function A3DGeometry(id:name_213, indexBuffer:A3DIndexBuffer, vertexBuffers:Vector.) + { + super(); + this.var_101 = id; + this.name_132 = indexBuffer; + this.var_277 = vertexBuffers; + } + + public function get id() : name_213 + { + return this.var_101; + } + + public function set id(value:name_213) : void + { + this.var_101 = value; + } + + public function get indexBuffer() : A3DIndexBuffer + { + return this.name_132; + } + + public function set indexBuffer(value:A3DIndexBuffer) : void + { + this.name_132 = value; + } + + public function get vertexBuffers() : Vector. + { + return this.var_277; + } + + public function set vertexBuffers(value:Vector.) : void + { + this.var_277 = value; + } + + public function toString() : String + { + var result:String = "A3DGeometry ["; + result += "id = " + this.id + " "; + result += "indexBuffer = " + this.indexBuffer + " "; + result += "vertexBuffers = " + this.vertexBuffers + " "; + return result + "]"; + } + } +} + diff --git a/src/package_54/A3DIndexBuffer.as b/src/package_54/A3DIndexBuffer.as new file mode 100644 index 0000000..4dff9da --- /dev/null +++ b/src/package_54/A3DIndexBuffer.as @@ -0,0 +1,47 @@ +package package_54 +{ + import flash.utils.ByteArray; + + public class A3DIndexBuffer + { + private var var_271:ByteArray; + + private var var_379:int; + + public function A3DIndexBuffer(byteBuffer:ByteArray, indexCount:int) + { + super(); + this.var_271 = byteBuffer; + this.var_379 = indexCount; + } + + public function get byteBuffer() : ByteArray + { + return this.var_271; + } + + public function set byteBuffer(value:ByteArray) : void + { + this.var_271 = value; + } + + public function get indexCount() : int + { + return this.var_379; + } + + public function set indexCount(value:int) : void + { + this.var_379 = value; + } + + public function toString() : String + { + var result:String = "A3DIndexBuffer ["; + result += "byteBuffer = " + this.byteBuffer + " "; + result += "indexCount = " + this.indexCount + " "; + return result + "]"; + } + } +} + diff --git a/src/package_54/A3DVertexBuffer.as b/src/package_54/A3DVertexBuffer.as new file mode 100644 index 0000000..5906293 --- /dev/null +++ b/src/package_54/A3DVertexBuffer.as @@ -0,0 +1,61 @@ +package package_54 +{ + import flash.utils.ByteArray; + + public class A3DVertexBuffer + { + private var var_273:Vector.; + + private var var_271:ByteArray; + + private var var_272:uint; + + public function A3DVertexBuffer(attributes:Vector., byteBuffer:ByteArray, vertexCount:uint) + { + super(); + this.var_273 = attributes; + this.var_271 = byteBuffer; + this.var_272 = vertexCount; + } + + public function get attributes() : Vector. + { + return this.var_273; + } + + public function set attributes(value:Vector.) : void + { + this.var_273 = value; + } + + public function get byteBuffer() : ByteArray + { + return this.var_271; + } + + public function set byteBuffer(value:ByteArray) : void + { + this.var_271 = value; + } + + public function get vertexCount() : uint + { + return this.var_272; + } + + public function set vertexCount(value:uint) : void + { + this.var_272 = value; + } + + public function toString() : String + { + var result:String = "A3DVertexBuffer ["; + result += "attributes = " + this.attributes + " "; + result += "byteBuffer = " + this.byteBuffer + " "; + result += "vertexCount = " + this.vertexCount + " "; + return result + "]"; + } + } +} + diff --git a/src/package_55/A3D2AnimationClip.as b/src/package_55/A3D2AnimationClip.as new file mode 100644 index 0000000..5b621db --- /dev/null +++ b/src/package_55/A3D2AnimationClip.as @@ -0,0 +1,89 @@ +package package_55 +{ + import package_33.name_155; + + public class A3D2AnimationClip + { + private var var_101:int; + + private var var_388:Boolean; + + private var _name:String; + + private var var_387:Vector.; + + private var var_389:Vector.; + + public function A3D2AnimationClip(id:int, loop:Boolean, name:String, objectIDs:Vector., tracks:Vector.) + { + super(); + this.var_101 = id; + this.var_388 = loop; + this._name = name; + this.var_387 = objectIDs; + this.var_389 = tracks; + } + + public function get id() : int + { + return this.var_101; + } + + public function set id(value:int) : void + { + this.var_101 = value; + } + + public function get loop() : Boolean + { + return this.var_388; + } + + public function set loop(value:Boolean) : void + { + this.var_388 = value; + } + + public function get name() : String + { + return this._name; + } + + public function set name(value:String) : void + { + this._name = value; + } + + public function get objectIDs() : Vector. + { + return this.var_387; + } + + public function set objectIDs(value:Vector.) : void + { + this.var_387 = value; + } + + public function get tracks() : Vector. + { + return this.var_389; + } + + public function set tracks(value:Vector.) : void + { + this.var_389 = value; + } + + public function toString() : String + { + var result:String = "A3D2AnimationClip ["; + result += "id = " + this.id + " "; + result += "loop = " + this.loop + " "; + result += "name = " + this.name + " "; + result += "objectIDs = " + this.objectIDs + " "; + result += "tracks = " + this.tracks + " "; + return result + "]"; + } + } +} + diff --git a/src/package_55/A3D2Keyframe.as b/src/package_55/A3D2Keyframe.as new file mode 100644 index 0000000..63df5d1 --- /dev/null +++ b/src/package_55/A3D2Keyframe.as @@ -0,0 +1,47 @@ +package package_55 +{ + import package_48.A3D2Transform; + + public class A3D2Keyframe + { + private var var_420:Number; + + private var var_262:A3D2Transform; + + public function A3D2Keyframe(time:Number, transform:A3D2Transform) + { + super(); + this.var_420 = time; + this.var_262 = transform; + } + + public function get time() : Number + { + return this.var_420; + } + + public function set time(value:Number) : void + { + this.var_420 = value; + } + + public function get transform() : A3D2Transform + { + return this.var_262; + } + + public function set transform(value:A3D2Transform) : void + { + this.var_262 = value; + } + + public function toString() : String + { + var result:String = "A3D2Keyframe ["; + result += "time = " + this.time + " "; + result += "transform = " + this.transform + " "; + return result + "]"; + } + } +} + diff --git a/src/package_55/A3D2Track.as b/src/package_55/A3D2Track.as new file mode 100644 index 0000000..a1a196a --- /dev/null +++ b/src/package_55/A3D2Track.as @@ -0,0 +1,59 @@ +package package_55 +{ + public class A3D2Track + { + private var var_101:int; + + private var var_289:Vector.; + + private var var_288:String; + + public function A3D2Track(id:int, keyframes:Vector., objectName:String) + { + super(); + this.var_101 = id; + this.var_289 = keyframes; + this.var_288 = objectName; + } + + public function get id() : int + { + return this.var_101; + } + + public function set id(value:int) : void + { + this.var_101 = value; + } + + public function get keyframes() : Vector. + { + return this.var_289; + } + + public function set keyframes(value:Vector.) : void + { + this.var_289 = value; + } + + public function get objectName() : String + { + return this.var_288; + } + + public function set objectName(value:String) : void + { + this.var_288 = value; + } + + public function toString() : String + { + var result:String = "A3D2Track ["; + result += "id = " + this.id + " "; + result += "keyframes = " + this.keyframes + " "; + result += "objectName = " + this.objectName + " "; + return result + "]"; + } + } +} + diff --git a/src/package_56/CodecA3DBox.as b/src/package_56/CodecA3DBox.as new file mode 100644 index 0000000..86008c6 --- /dev/null +++ b/src/package_56/CodecA3DBox.as @@ -0,0 +1,55 @@ +package package_56 +{ + import package_32.name_148; + import package_32.name_149; + import package_33.name_157; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_50.A3DBox; + import package_57.name_213; + + public class CodecA3DBox implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_284:name_152; + + private var var_252:name_152; + + public function CodecA3DBox() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_284 = protocol.name_448(new name_149(new name_148(name_157,false),true,1)); + this.var_252 = protocol.name_448(new name_148(name_213,true)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_box:Vector. = this.var_284.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DBox","box",value_box); + var value_id:name_213 = this.var_252.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DBox","id",value_id); + return new A3DBox(value_box,value_id); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3DBox = A3DBox(object); + this.var_284.method_295(protocolBuffer,struct.box); + this.var_252.method_295(protocolBuffer,struct.id); + } + } +} + diff --git a/src/package_56/CodecA3DObject.as b/src/package_56/CodecA3DObject.as new file mode 100644 index 0000000..2a13663 --- /dev/null +++ b/src/package_56/CodecA3DObject.as @@ -0,0 +1,93 @@ +package package_56 +{ + import package_32.name_148; + import package_32.name_149; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_50.A3DObject; + import package_50.A3DSurface; + import package_50.A3DTransformation; + import package_57.name_213; + import package_64.name_212; + + public class CodecA3DObject implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_244:name_152; + + private var var_256:name_152; + + private var var_252:name_152; + + private var var_253:name_152; + + private var var_254:name_152; + + private var var_250:name_152; + + private var var_255:name_152; + + private var var_247:name_152; + + public function CodecA3DObject() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_244 = protocol.name_448(new name_148(name_213,true)); + this.var_256 = protocol.name_448(new name_148(name_213,true)); + this.var_252 = protocol.name_448(new name_148(name_213,true)); + this.var_253 = protocol.name_448(new name_148(String,true)); + this.var_254 = protocol.name_448(new name_148(name_212,true)); + this.var_250 = protocol.name_448(new name_149(new name_148(A3DSurface,false),true,1)); + this.var_255 = protocol.name_448(new name_148(A3DTransformation,true)); + this.var_247 = protocol.name_448(new name_148(Boolean,true)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_boundBoxId:name_213 = this.var_244.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DObject","boundBoxId",value_boundBoxId); + var value_geometryId:name_213 = this.var_256.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DObject","geometryId",value_geometryId); + var value_id:name_213 = this.var_252.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DObject","id",value_id); + var value_name:String = this.var_253.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DObject","name",value_name); + var value_parentId:name_212 = this.var_254.method_296(protocolBuffer) as name_212; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DObject","parentId",value_parentId); + var value_surfaces:Vector. = this.var_250.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DObject","surfaces",value_surfaces); + var value_transformation:A3DTransformation = this.var_255.method_296(protocolBuffer) as A3DTransformation; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DObject","transformation",value_transformation); + var value_visible:Boolean = Boolean(this.var_247.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DObject","visible",value_visible); + return new A3DObject(value_boundBoxId,value_geometryId,value_id,value_name,value_parentId,value_surfaces,value_transformation,value_visible); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3DObject = A3DObject(object); + this.var_244.method_295(protocolBuffer,struct.boundBoxId); + this.var_256.method_295(protocolBuffer,struct.geometryId); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_253.method_295(protocolBuffer,struct.name); + this.var_254.method_295(protocolBuffer,struct.parentId); + this.var_250.method_295(protocolBuffer,struct.surfaces); + this.var_255.method_295(protocolBuffer,struct.transformation); + this.var_247.method_295(protocolBuffer,struct.visible); + } + } +} + diff --git a/src/package_56/CodecA3DSurface.as b/src/package_56/CodecA3DSurface.as new file mode 100644 index 0000000..5bcb7d4 --- /dev/null +++ b/src/package_56/CodecA3DSurface.as @@ -0,0 +1,59 @@ +package package_56 +{ + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_50.A3DSurface; + import package_57.name_213; + + public class CodecA3DSurface implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_302:name_152; + + private var var_296:name_152; + + private var var_303:name_152; + + public function CodecA3DSurface() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_302 = protocol.name_448(new name_148(int,false)); + this.var_296 = protocol.name_448(new name_148(name_213,true)); + this.var_303 = protocol.name_448(new name_148(int,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_indexBegin:int = int(this.var_302.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DSurface","indexBegin",value_indexBegin); + var value_materialId:name_213 = this.var_296.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DSurface","materialId",value_materialId); + var value_numTriangles:int = int(this.var_303.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DSurface","numTriangles",value_numTriangles); + return new A3DSurface(value_indexBegin,value_materialId,value_numTriangles); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3DSurface = A3DSurface(object); + this.var_302.method_295(protocolBuffer,struct.indexBegin); + this.var_296.method_295(protocolBuffer,struct.materialId); + this.var_303.method_295(protocolBuffer,struct.numTriangles); + } + } +} + diff --git a/src/package_56/CodecA3DTransformation.as b/src/package_56/CodecA3DTransformation.as new file mode 100644 index 0000000..e0cd9f0 --- /dev/null +++ b/src/package_56/CodecA3DTransformation.as @@ -0,0 +1,47 @@ +package package_56 +{ + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_50.A3DTransformation; + import package_57.name_214; + + public class CodecA3DTransformation implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_411:name_152; + + public function CodecA3DTransformation() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_411 = protocol.name_448(new name_148(name_214,true)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_matrix:name_214 = this.var_411.method_296(protocolBuffer) as name_214; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.objects.A3DTransformation","matrix",value_matrix); + return new A3DTransformation(value_matrix); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3DTransformation = A3DTransformation(object); + this.var_411.method_295(protocolBuffer,struct.matrix); + } + } +} + diff --git a/src/package_56/VectorCodecA3DBoxLevel1.as b/src/package_56/VectorCodecA3DBoxLevel1.as new file mode 100644 index 0000000..6a23727 --- /dev/null +++ b/src/package_56/VectorCodecA3DBoxLevel1.as @@ -0,0 +1,59 @@ +package package_56 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_50.A3DBox; + + public class VectorCodecA3DBoxLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DBoxLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DBox,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3DBox(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_56/VectorCodecA3DBoxLevel2.as b/src/package_56/VectorCodecA3DBoxLevel2.as new file mode 100644 index 0000000..bca8c23 --- /dev/null +++ b/src/package_56/VectorCodecA3DBoxLevel2.as @@ -0,0 +1,89 @@ +package package_56 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_50.A3DBox; + + public class VectorCodecA3DBoxLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DBoxLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DBox,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3DBox(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_56/VectorCodecA3DBoxLevel3.as b/src/package_56/VectorCodecA3DBoxLevel3.as new file mode 100644 index 0000000..96dba2d --- /dev/null +++ b/src/package_56/VectorCodecA3DBoxLevel3.as @@ -0,0 +1,119 @@ +package package_56 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_50.A3DBox; + + public class VectorCodecA3DBoxLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DBoxLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DBox,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3DBox(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_56/VectorCodecA3DObjectLevel1.as b/src/package_56/VectorCodecA3DObjectLevel1.as new file mode 100644 index 0000000..6822374 --- /dev/null +++ b/src/package_56/VectorCodecA3DObjectLevel1.as @@ -0,0 +1,59 @@ +package package_56 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_50.A3DObject; + + public class VectorCodecA3DObjectLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DObjectLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DObject,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3DObject(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_56/VectorCodecA3DObjectLevel2.as b/src/package_56/VectorCodecA3DObjectLevel2.as new file mode 100644 index 0000000..7963a41 --- /dev/null +++ b/src/package_56/VectorCodecA3DObjectLevel2.as @@ -0,0 +1,89 @@ +package package_56 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_50.A3DObject; + + public class VectorCodecA3DObjectLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DObjectLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DObject,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3DObject(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_56/VectorCodecA3DObjectLevel3.as b/src/package_56/VectorCodecA3DObjectLevel3.as new file mode 100644 index 0000000..78c93b5 --- /dev/null +++ b/src/package_56/VectorCodecA3DObjectLevel3.as @@ -0,0 +1,119 @@ +package package_56 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_50.A3DObject; + + public class VectorCodecA3DObjectLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DObjectLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DObject,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3DObject(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_56/VectorCodecA3DSurfaceLevel1.as b/src/package_56/VectorCodecA3DSurfaceLevel1.as new file mode 100644 index 0000000..589133d --- /dev/null +++ b/src/package_56/VectorCodecA3DSurfaceLevel1.as @@ -0,0 +1,59 @@ +package package_56 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_50.A3DSurface; + + public class VectorCodecA3DSurfaceLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DSurfaceLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DSurface,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3DSurface(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_56/VectorCodecA3DSurfaceLevel2.as b/src/package_56/VectorCodecA3DSurfaceLevel2.as new file mode 100644 index 0000000..4f5d3ea --- /dev/null +++ b/src/package_56/VectorCodecA3DSurfaceLevel2.as @@ -0,0 +1,89 @@ +package package_56 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_50.A3DSurface; + + public class VectorCodecA3DSurfaceLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DSurfaceLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DSurface,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3DSurface(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_56/VectorCodecA3DSurfaceLevel3.as b/src/package_56/VectorCodecA3DSurfaceLevel3.as new file mode 100644 index 0000000..f8fc0ea --- /dev/null +++ b/src/package_56/VectorCodecA3DSurfaceLevel3.as @@ -0,0 +1,119 @@ +package package_56 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_50.A3DSurface; + + public class VectorCodecA3DSurfaceLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DSurfaceLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DSurface,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3DSurface(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_56/VectorCodecA3DTransformationLevel1.as b/src/package_56/VectorCodecA3DTransformationLevel1.as new file mode 100644 index 0000000..d5078ba --- /dev/null +++ b/src/package_56/VectorCodecA3DTransformationLevel1.as @@ -0,0 +1,59 @@ +package package_56 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_50.A3DTransformation; + + public class VectorCodecA3DTransformationLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DTransformationLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DTransformation,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3DTransformation(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_56/VectorCodecA3DTransformationLevel2.as b/src/package_56/VectorCodecA3DTransformationLevel2.as new file mode 100644 index 0000000..8bda5a1 --- /dev/null +++ b/src/package_56/VectorCodecA3DTransformationLevel2.as @@ -0,0 +1,89 @@ +package package_56 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_50.A3DTransformation; + + public class VectorCodecA3DTransformationLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DTransformationLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DTransformation,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3DTransformation(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_56/VectorCodecA3DTransformationLevel3.as b/src/package_56/VectorCodecA3DTransformationLevel3.as new file mode 100644 index 0000000..ffea221 --- /dev/null +++ b/src/package_56/VectorCodecA3DTransformationLevel3.as @@ -0,0 +1,119 @@ +package package_56 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_50.A3DTransformation; + + public class VectorCodecA3DTransformationLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DTransformationLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DTransformation,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3DTransformation(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_57/name_213.as b/src/package_57/name_213.as new file mode 100644 index 0000000..3bc03eb --- /dev/null +++ b/src/package_57/name_213.as @@ -0,0 +1,31 @@ +package package_57 +{ + public class name_213 + { + private var var_101:uint; + + public function name_213(id:uint) + { + super(); + this.var_101 = id; + } + + public function get id() : uint + { + return this.var_101; + } + + public function set id(value:uint) : void + { + this.var_101 = value; + } + + public function toString() : String + { + var result:String = "Id ["; + result += "id = " + this.id + " "; + return result + "]"; + } + } +} + diff --git a/src/package_57/name_214.as b/src/package_57/name_214.as new file mode 100644 index 0000000..7fac1e6 --- /dev/null +++ b/src/package_57/name_214.as @@ -0,0 +1,185 @@ +package package_57 +{ + public class name_214 + { + private var var_316:Number; + + private var var_317:Number; + + private var var_310:Number; + + private var var_319:Number; + + private var var_311:Number; + + private var _f:Number; + + private var var_312:Number; + + private var var_315:Number; + + private var var_313:Number; + + private var var_320:Number; + + private var var_318:Number; + + private var var_314:Number; + + public function name_214(a:Number, b:Number, c:Number, d:Number, e:Number, f:Number, g:Number, h:Number, i:Number, j:Number, k:Number, l:Number) + { + super(); + this.var_316 = a; + this.var_317 = b; + this.var_310 = c; + this.var_319 = d; + this.var_311 = e; + this._f = f; + this.var_312 = g; + this.var_315 = h; + this.var_313 = i; + this.var_320 = j; + this.var_318 = k; + this.var_314 = l; + } + + public function get a() : Number + { + return this.var_316; + } + + public function set a(value:Number) : void + { + this.var_316 = value; + } + + public function get b() : Number + { + return this.var_317; + } + + public function set b(value:Number) : void + { + this.var_317 = value; + } + + public function get c() : Number + { + return this.var_310; + } + + public function set c(value:Number) : void + { + this.var_310 = value; + } + + public function get d() : Number + { + return this.var_319; + } + + public function set d(value:Number) : void + { + this.var_319 = value; + } + + public function get e() : Number + { + return this.var_311; + } + + public function set e(value:Number) : void + { + this.var_311 = value; + } + + public function get f() : Number + { + return this._f; + } + + public function set f(value:Number) : void + { + this._f = value; + } + + public function get g() : Number + { + return this.var_312; + } + + public function set g(value:Number) : void + { + this.var_312 = value; + } + + public function get h() : Number + { + return this.var_315; + } + + public function set h(value:Number) : void + { + this.var_315 = value; + } + + public function get i() : Number + { + return this.var_313; + } + + public function set i(value:Number) : void + { + this.var_313 = value; + } + + public function get j() : Number + { + return this.var_320; + } + + public function set j(value:Number) : void + { + this.var_320 = value; + } + + public function get k() : Number + { + return this.var_318; + } + + public function set k(value:Number) : void + { + this.var_318 = value; + } + + public function get l() : Number + { + return this.var_314; + } + + public function set l(value:Number) : void + { + this.var_314 = value; + } + + public function toString() : String + { + var result:String = "A3DMatrix ["; + result += "a = " + this.a + " "; + result += "b = " + this.b + " "; + result += "c = " + this.c + " "; + result += "d = " + this.d + " "; + result += "e = " + this.e + " "; + result += "f = " + this.f + " "; + result += "g = " + this.g + " "; + result += "h = " + this.h + " "; + result += "i = " + this.i + " "; + result += "j = " + this.j + " "; + result += "k = " + this.k + " "; + result += "l = " + this.l + " "; + return result + "]"; + } + } +} + diff --git a/src/package_58/CodecA3D2CubeMap.as b/src/package_58/CodecA3D2CubeMap.as new file mode 100644 index 0000000..c1c7500 --- /dev/null +++ b/src/package_58/CodecA3D2CubeMap.as @@ -0,0 +1,82 @@ +package package_58 +{ + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_51.A3D2CubeMap; + + public class CodecA3D2CubeMap implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_369:name_152; + + private var var_373:name_152; + + private var var_368:name_152; + + private var var_252:name_152; + + private var var_372:name_152; + + private var var_371:name_152; + + private var var_370:name_152; + + public function CodecA3D2CubeMap() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_369 = protocol.name_448(new name_148(int,true)); + this.var_373 = protocol.name_448(new name_148(int,true)); + this.var_368 = protocol.name_448(new name_148(int,true)); + this.var_252 = protocol.name_448(new name_148(int,false)); + this.var_372 = protocol.name_448(new name_148(int,true)); + this.var_371 = protocol.name_448(new name_148(int,true)); + this.var_370 = protocol.name_448(new name_148(int,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_backId:int = int(this.var_369.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2CubeMap","backId",value_backId); + var value_bottomId:int = int(this.var_373.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2CubeMap","bottomId",value_bottomId); + var value_frontId:int = int(this.var_368.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2CubeMap","frontId",value_frontId); + var value_id:int = int(this.var_252.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2CubeMap","id",value_id); + var value_leftId:int = int(this.var_372.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2CubeMap","leftId",value_leftId); + var value_rightId:int = int(this.var_371.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2CubeMap","rightId",value_rightId); + var value_topId:int = int(this.var_370.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2CubeMap","topId",value_topId); + return new A3D2CubeMap(value_backId,value_bottomId,value_frontId,value_id,value_leftId,value_rightId,value_topId); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2CubeMap = A3D2CubeMap(object); + this.var_369.method_295(protocolBuffer,struct.backId); + this.var_373.method_295(protocolBuffer,struct.bottomId); + this.var_368.method_295(protocolBuffer,struct.frontId); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_372.method_295(protocolBuffer,struct.leftId); + this.var_371.method_295(protocolBuffer,struct.rightId); + this.var_370.method_295(protocolBuffer,struct.topId); + } + } +} + diff --git a/src/package_58/CodecA3D2Image.as b/src/package_58/CodecA3D2Image.as new file mode 100644 index 0000000..ab18dc0 --- /dev/null +++ b/src/package_58/CodecA3D2Image.as @@ -0,0 +1,52 @@ +package package_58 +{ + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_51.A3D2Image; + + public class CodecA3D2Image implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_252:name_152; + + private var var_307:name_152; + + public function CodecA3D2Image() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_252 = protocol.name_448(new name_148(int,false)); + this.var_307 = protocol.name_448(new name_148(String,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_id:int = int(this.var_252.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Image","id",value_id); + var value_url:String = this.var_307.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Image","url",value_url); + return new A3D2Image(value_id,value_url); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Image = A3D2Image(object); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_307.method_295(protocolBuffer,struct.url); + } + } +} + diff --git a/src/package_58/CodecA3D2Map.as b/src/package_58/CodecA3D2Map.as new file mode 100644 index 0000000..06d05d1 --- /dev/null +++ b/src/package_58/CodecA3D2Map.as @@ -0,0 +1,59 @@ +package package_58 +{ + import package_32.name_148; + import package_33.name_156; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_51.A3D2Map; + + public class CodecA3D2Map implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_322:name_152; + + private var var_252:name_152; + + private var var_321:name_152; + + public function CodecA3D2Map() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_322 = protocol.name_448(new name_148(name_156,false)); + this.var_252 = protocol.name_448(new name_148(int,false)); + this.var_321 = protocol.name_448(new name_148(int,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_channel:uint = uint(this.var_322.method_296(protocolBuffer) as uint); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Map","channel",value_channel); + var value_id:int = int(this.var_252.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Map","id",value_id); + var value_imageId:int = int(this.var_321.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Map","imageId",value_imageId); + return new A3D2Map(value_channel,value_id,value_imageId); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Map = A3D2Map(object); + this.var_322.method_295(protocolBuffer,struct.channel); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_321.method_295(protocolBuffer,struct.imageId); + } + } +} + diff --git a/src/package_58/CodecA3D2Material.as b/src/package_58/CodecA3D2Material.as new file mode 100644 index 0000000..3b4a44e --- /dev/null +++ b/src/package_58/CodecA3D2Material.as @@ -0,0 +1,88 @@ +package package_58 +{ + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_51.A3D2Material; + + public class CodecA3D2Material implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_386:name_152; + + private var var_383:name_152; + + private var var_252:name_152; + + private var var_384:name_152; + + private var var_385:name_152; + + private var var_382:name_152; + + private var var_418:name_152; + + private var var_381:name_152; + + public function CodecA3D2Material() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_386 = protocol.name_448(new name_148(int,true)); + this.var_383 = protocol.name_448(new name_148(int,true)); + this.var_252 = protocol.name_448(new name_148(int,false)); + this.var_384 = protocol.name_448(new name_148(int,true)); + this.var_385 = protocol.name_448(new name_148(int,true)); + this.var_382 = protocol.name_448(new name_148(int,true)); + this.var_418 = protocol.name_448(new name_148(int,true)); + this.var_381 = protocol.name_448(new name_148(int,true)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_diffuseMapId:int = int(this.var_386.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Material","diffuseMapId",value_diffuseMapId); + var value_glossinessMapId:int = int(this.var_383.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Material","glossinessMapId",value_glossinessMapId); + var value_id:int = int(this.var_252.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Material","id",value_id); + var value_lightMapId:int = int(this.var_384.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Material","lightMapId",value_lightMapId); + var value_normalMapId:int = int(this.var_385.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Material","normalMapId",value_normalMapId); + var value_opacityMapId:int = int(this.var_382.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Material","opacityMapId",value_opacityMapId); + var value_reflectionCubeMapId:int = int(this.var_418.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Material","reflectionCubeMapId",value_reflectionCubeMapId); + var value_specularMapId:int = int(this.var_381.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.materials.A3D2Material","specularMapId",value_specularMapId); + return new A3D2Material(value_diffuseMapId,value_glossinessMapId,value_id,value_lightMapId,value_normalMapId,value_opacityMapId,value_reflectionCubeMapId,value_specularMapId); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Material = A3D2Material(object); + this.var_386.method_295(protocolBuffer,struct.diffuseMapId); + this.var_383.method_295(protocolBuffer,struct.glossinessMapId); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_384.method_295(protocolBuffer,struct.lightMapId); + this.var_385.method_295(protocolBuffer,struct.normalMapId); + this.var_382.method_295(protocolBuffer,struct.opacityMapId); + this.var_418.method_295(protocolBuffer,struct.reflectionCubeMapId); + this.var_381.method_295(protocolBuffer,struct.specularMapId); + } + } +} + diff --git a/src/package_58/VectorCodecA3D2CubeMapLevel1.as b/src/package_58/VectorCodecA3D2CubeMapLevel1.as new file mode 100644 index 0000000..14017d3 --- /dev/null +++ b/src/package_58/VectorCodecA3D2CubeMapLevel1.as @@ -0,0 +1,59 @@ +package package_58 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_51.A3D2CubeMap; + + public class VectorCodecA3D2CubeMapLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2CubeMapLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2CubeMap,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2CubeMap(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_58/VectorCodecA3D2CubeMapLevel2.as b/src/package_58/VectorCodecA3D2CubeMapLevel2.as new file mode 100644 index 0000000..a8b499b --- /dev/null +++ b/src/package_58/VectorCodecA3D2CubeMapLevel2.as @@ -0,0 +1,89 @@ +package package_58 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_51.A3D2CubeMap; + + public class VectorCodecA3D2CubeMapLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2CubeMapLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2CubeMap,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2CubeMap(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_58/VectorCodecA3D2CubeMapLevel3.as b/src/package_58/VectorCodecA3D2CubeMapLevel3.as new file mode 100644 index 0000000..91c2a04 --- /dev/null +++ b/src/package_58/VectorCodecA3D2CubeMapLevel3.as @@ -0,0 +1,119 @@ +package package_58 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_51.A3D2CubeMap; + + public class VectorCodecA3D2CubeMapLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2CubeMapLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2CubeMap,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2CubeMap(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_58/VectorCodecA3D2ImageLevel1.as b/src/package_58/VectorCodecA3D2ImageLevel1.as new file mode 100644 index 0000000..ae3f409 --- /dev/null +++ b/src/package_58/VectorCodecA3D2ImageLevel1.as @@ -0,0 +1,59 @@ +package package_58 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_51.A3D2Image; + + public class VectorCodecA3D2ImageLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2ImageLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Image,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Image(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_58/VectorCodecA3D2ImageLevel2.as b/src/package_58/VectorCodecA3D2ImageLevel2.as new file mode 100644 index 0000000..176a869 --- /dev/null +++ b/src/package_58/VectorCodecA3D2ImageLevel2.as @@ -0,0 +1,89 @@ +package package_58 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_51.A3D2Image; + + public class VectorCodecA3D2ImageLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2ImageLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Image,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Image(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_58/VectorCodecA3D2ImageLevel3.as b/src/package_58/VectorCodecA3D2ImageLevel3.as new file mode 100644 index 0000000..80a88e2 --- /dev/null +++ b/src/package_58/VectorCodecA3D2ImageLevel3.as @@ -0,0 +1,119 @@ +package package_58 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_51.A3D2Image; + + public class VectorCodecA3D2ImageLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2ImageLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Image,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Image(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_58/VectorCodecA3D2MapLevel1.as b/src/package_58/VectorCodecA3D2MapLevel1.as new file mode 100644 index 0000000..de17a8a --- /dev/null +++ b/src/package_58/VectorCodecA3D2MapLevel1.as @@ -0,0 +1,59 @@ +package package_58 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_51.A3D2Map; + + public class VectorCodecA3D2MapLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2MapLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Map,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Map(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_58/VectorCodecA3D2MapLevel2.as b/src/package_58/VectorCodecA3D2MapLevel2.as new file mode 100644 index 0000000..c06cf6a --- /dev/null +++ b/src/package_58/VectorCodecA3D2MapLevel2.as @@ -0,0 +1,89 @@ +package package_58 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_51.A3D2Map; + + public class VectorCodecA3D2MapLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2MapLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Map,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Map(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_58/VectorCodecA3D2MapLevel3.as b/src/package_58/VectorCodecA3D2MapLevel3.as new file mode 100644 index 0000000..ce61607 --- /dev/null +++ b/src/package_58/VectorCodecA3D2MapLevel3.as @@ -0,0 +1,119 @@ +package package_58 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_51.A3D2Map; + + public class VectorCodecA3D2MapLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2MapLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Map,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Map(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_58/VectorCodecA3D2MaterialLevel1.as b/src/package_58/VectorCodecA3D2MaterialLevel1.as new file mode 100644 index 0000000..e1c5103 --- /dev/null +++ b/src/package_58/VectorCodecA3D2MaterialLevel1.as @@ -0,0 +1,59 @@ +package package_58 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_51.A3D2Material; + + public class VectorCodecA3D2MaterialLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2MaterialLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Material,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Material(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_58/VectorCodecA3D2MaterialLevel2.as b/src/package_58/VectorCodecA3D2MaterialLevel2.as new file mode 100644 index 0000000..e00b6c5 --- /dev/null +++ b/src/package_58/VectorCodecA3D2MaterialLevel2.as @@ -0,0 +1,89 @@ +package package_58 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_51.A3D2Material; + + public class VectorCodecA3D2MaterialLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2MaterialLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Material,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Material(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_58/VectorCodecA3D2MaterialLevel3.as b/src/package_58/VectorCodecA3D2MaterialLevel3.as new file mode 100644 index 0000000..71b10b9 --- /dev/null +++ b/src/package_58/VectorCodecA3D2MaterialLevel3.as @@ -0,0 +1,119 @@ +package package_58 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_51.A3D2Material; + + public class VectorCodecA3D2MaterialLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2MaterialLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Material,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Material(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_59/CodecA3DImage.as b/src/package_59/CodecA3DImage.as new file mode 100644 index 0000000..093162c --- /dev/null +++ b/src/package_59/CodecA3DImage.as @@ -0,0 +1,53 @@ +package package_59 +{ + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_53.A3DImage; + import package_57.name_213; + + public class CodecA3DImage implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_252:name_152; + + private var var_307:name_152; + + public function CodecA3DImage() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_252 = protocol.name_448(new name_148(name_213,true)); + this.var_307 = protocol.name_448(new name_148(String,true)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_id:name_213 = this.var_252.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DImage","id",value_id); + var value_url:String = this.var_307.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DImage","url",value_url); + return new A3DImage(value_id,value_url); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3DImage = A3DImage(object); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_307.method_295(protocolBuffer,struct.url); + } + } +} + diff --git a/src/package_59/CodecA3DMap.as b/src/package_59/CodecA3DMap.as new file mode 100644 index 0000000..e87c8fd --- /dev/null +++ b/src/package_59/CodecA3DMap.as @@ -0,0 +1,85 @@ +package package_59 +{ + import package_32.name_148; + import package_33.name_156; + import package_33.name_157; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_53.A3DMap; + import package_57.name_213; + + public class CodecA3DMap implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_322:name_152; + + private var var_252:name_152; + + private var var_321:name_152; + + private var var_407:name_152; + + private var var_408:name_152; + + private var var_409:name_152; + + private var var_410:name_152; + + public function CodecA3DMap() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_322 = protocol.name_448(new name_148(name_156,false)); + this.var_252 = protocol.name_448(new name_148(name_213,true)); + this.var_321 = protocol.name_448(new name_148(name_213,true)); + this.var_407 = protocol.name_448(new name_148(name_157,true)); + this.var_408 = protocol.name_448(new name_148(name_157,true)); + this.var_409 = protocol.name_448(new name_148(name_157,true)); + this.var_410 = protocol.name_448(new name_148(name_157,true)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_channel:uint = uint(this.var_322.method_296(protocolBuffer) as uint); + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMap","channel",value_channel); + var value_id:name_213 = this.var_252.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMap","id",value_id); + var value_imageId:name_213 = this.var_321.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMap","imageId",value_imageId); + var value_uOffset:Number = Number(this.var_407.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMap","uOffset",value_uOffset); + var value_uScale:Number = Number(this.var_408.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMap","uScale",value_uScale); + var value_vOffset:Number = Number(this.var_409.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMap","vOffset",value_vOffset); + var value_vScale:Number = Number(this.var_410.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMap","vScale",value_vScale); + return new A3DMap(value_channel,value_id,value_imageId,value_uOffset,value_uScale,value_vOffset,value_vScale); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3DMap = A3DMap(object); + this.var_322.method_295(protocolBuffer,struct.channel); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_321.method_295(protocolBuffer,struct.imageId); + this.var_407.method_295(protocolBuffer,struct.uOffset); + this.var_408.method_295(protocolBuffer,struct.uScale); + this.var_409.method_295(protocolBuffer,struct.vOffset); + this.var_410.method_295(protocolBuffer,struct.vScale); + } + } +} + diff --git a/src/package_59/CodecA3DMaterial.as b/src/package_59/CodecA3DMaterial.as new file mode 100644 index 0000000..0fcfc82 --- /dev/null +++ b/src/package_59/CodecA3DMaterial.as @@ -0,0 +1,83 @@ +package package_59 +{ + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_53.A3DMaterial; + import package_57.name_213; + + public class CodecA3DMaterial implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_386:name_152; + + private var var_383:name_152; + + private var var_252:name_152; + + private var var_384:name_152; + + private var var_385:name_152; + + private var var_382:name_152; + + private var var_381:name_152; + + public function CodecA3DMaterial() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_386 = protocol.name_448(new name_148(name_213,true)); + this.var_383 = protocol.name_448(new name_148(name_213,true)); + this.var_252 = protocol.name_448(new name_148(name_213,true)); + this.var_384 = protocol.name_448(new name_148(name_213,true)); + this.var_385 = protocol.name_448(new name_148(name_213,true)); + this.var_382 = protocol.name_448(new name_148(name_213,true)); + this.var_381 = protocol.name_448(new name_148(name_213,true)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_diffuseMapId:name_213 = this.var_386.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMaterial","diffuseMapId",value_diffuseMapId); + var value_glossinessMapId:name_213 = this.var_383.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMaterial","glossinessMapId",value_glossinessMapId); + var value_id:name_213 = this.var_252.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMaterial","id",value_id); + var value_lightMapId:name_213 = this.var_384.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMaterial","lightMapId",value_lightMapId); + var value_normalMapId:name_213 = this.var_385.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMaterial","normalMapId",value_normalMapId); + var value_opacityMapId:name_213 = this.var_382.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMaterial","opacityMapId",value_opacityMapId); + var value_specularMapId:name_213 = this.var_381.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.materials.A3DMaterial","specularMapId",value_specularMapId); + return new A3DMaterial(value_diffuseMapId,value_glossinessMapId,value_id,value_lightMapId,value_normalMapId,value_opacityMapId,value_specularMapId); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3DMaterial = A3DMaterial(object); + this.var_386.method_295(protocolBuffer,struct.diffuseMapId); + this.var_383.method_295(protocolBuffer,struct.glossinessMapId); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_384.method_295(protocolBuffer,struct.lightMapId); + this.var_385.method_295(protocolBuffer,struct.normalMapId); + this.var_382.method_295(protocolBuffer,struct.opacityMapId); + this.var_381.method_295(protocolBuffer,struct.specularMapId); + } + } +} + diff --git a/src/package_59/VectorCodecA3DImageLevel1.as b/src/package_59/VectorCodecA3DImageLevel1.as new file mode 100644 index 0000000..04e0d3b --- /dev/null +++ b/src/package_59/VectorCodecA3DImageLevel1.as @@ -0,0 +1,59 @@ +package package_59 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_53.A3DImage; + + public class VectorCodecA3DImageLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DImageLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DImage,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3DImage(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_59/VectorCodecA3DImageLevel2.as b/src/package_59/VectorCodecA3DImageLevel2.as new file mode 100644 index 0000000..a046f76 --- /dev/null +++ b/src/package_59/VectorCodecA3DImageLevel2.as @@ -0,0 +1,89 @@ +package package_59 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_53.A3DImage; + + public class VectorCodecA3DImageLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DImageLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DImage,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3DImage(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_59/VectorCodecA3DImageLevel3.as b/src/package_59/VectorCodecA3DImageLevel3.as new file mode 100644 index 0000000..4f6f46d --- /dev/null +++ b/src/package_59/VectorCodecA3DImageLevel3.as @@ -0,0 +1,119 @@ +package package_59 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_53.A3DImage; + + public class VectorCodecA3DImageLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DImageLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DImage,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3DImage(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_59/VectorCodecA3DMapLevel1.as b/src/package_59/VectorCodecA3DMapLevel1.as new file mode 100644 index 0000000..0baed24 --- /dev/null +++ b/src/package_59/VectorCodecA3DMapLevel1.as @@ -0,0 +1,59 @@ +package package_59 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_53.A3DMap; + + public class VectorCodecA3DMapLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DMapLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DMap,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3DMap(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_59/VectorCodecA3DMapLevel2.as b/src/package_59/VectorCodecA3DMapLevel2.as new file mode 100644 index 0000000..d517a6a --- /dev/null +++ b/src/package_59/VectorCodecA3DMapLevel2.as @@ -0,0 +1,89 @@ +package package_59 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_53.A3DMap; + + public class VectorCodecA3DMapLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DMapLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DMap,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3DMap(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_59/VectorCodecA3DMapLevel3.as b/src/package_59/VectorCodecA3DMapLevel3.as new file mode 100644 index 0000000..df6555d --- /dev/null +++ b/src/package_59/VectorCodecA3DMapLevel3.as @@ -0,0 +1,119 @@ +package package_59 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_53.A3DMap; + + public class VectorCodecA3DMapLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DMapLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DMap,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3DMap(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_59/VectorCodecA3DMaterialLevel1.as b/src/package_59/VectorCodecA3DMaterialLevel1.as new file mode 100644 index 0000000..e6c57bd --- /dev/null +++ b/src/package_59/VectorCodecA3DMaterialLevel1.as @@ -0,0 +1,59 @@ +package package_59 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_53.A3DMaterial; + + public class VectorCodecA3DMaterialLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DMaterialLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DMaterial,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3DMaterial(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_59/VectorCodecA3DMaterialLevel2.as b/src/package_59/VectorCodecA3DMaterialLevel2.as new file mode 100644 index 0000000..2b4c638 --- /dev/null +++ b/src/package_59/VectorCodecA3DMaterialLevel2.as @@ -0,0 +1,89 @@ +package package_59 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_53.A3DMaterial; + + public class VectorCodecA3DMaterialLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DMaterialLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DMaterial,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3DMaterial(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_59/VectorCodecA3DMaterialLevel3.as b/src/package_59/VectorCodecA3DMaterialLevel3.as new file mode 100644 index 0000000..1f9a3a4 --- /dev/null +++ b/src/package_59/VectorCodecA3DMaterialLevel3.as @@ -0,0 +1,119 @@ +package package_59 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_53.A3DMaterial; + + public class VectorCodecA3DMaterialLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DMaterialLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DMaterial,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3DMaterial(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_6/name_354.as b/src/package_6/name_354.as new file mode 100644 index 0000000..64aaeba --- /dev/null +++ b/src/package_6/name_354.as @@ -0,0 +1,838 @@ +package package_6 +{ + import flash.display.Graphics; + import flash.display.Sprite; + import flash.display.Stage; + import flash.events.Event; + import flash.events.KeyboardEvent; + import flash.events.MouseEvent; + import flash.events.TextEvent; + import flash.system.System; + import flash.text.TextField; + import flash.text.TextFieldType; + import flash.text.TextFormat; + import flash.ui.Keyboard; + import flash.utils.setTimeout; + import package_1.name_22; + import package_15.name_632; + import package_15.name_634; + import package_15.name_635; + + public class name_354 implements name_4 + { + private static const DEFAULT_BG_COLOR:uint = 16777215; + + private static const DEFAULT_FONT_COLOR:uint = 0; + + private static const DEFAULT_TEXT_FORMAT:TextFormat = new TextFormat("Courier New",12,DEFAULT_FONT_COLOR); + + private static const INPUT_HEIGHT:int = 20; + + private static const LINE_SPLITTER:RegExp = /\n|\r|\n\r/; + + private static const TOKENIZER:RegExp = /(?:[^"\s]+)|(?:"[^"]*")/g; + + private var stage:Stage; + + private var container:Sprite = new Sprite(); + + private var var_538:Sprite; + + private var input:TextField; + + private var var_532:Vector. = new Vector.(); + + private var var_546:int; + + private var var_543:int; + + private var var_545:int = 0; + + private var var_544:Boolean; + + private var visible:Boolean; + + private var var_533:Array = []; + + private var var_531:int = 0; + + private var var_540:Object = {}; + + private var var_536:Object = {}; + + private var var_529:int; + + private var var_542:int; + + private var var_530:int; + + private var buffer:name_635; + + private var var_535:int; + + private var var_534:int; + + private var align:int; + + private var var_539:uint = 16777215; + + private var var_537:uint = 0; + + private var var_541:Number = 1; + + private var filter:String; + + public function name_354(stage:Stage, widthPercent:int, heightPercent:int, hAlign:int, vAlign:int) + { + super(); + this.stage = stage; + this.buffer = new name_634(1000); + this.method_566(stage); + this.method_584(); + this.method_580(); + this.method_140(widthPercent,heightPercent); + this.method_138 = hAlign; + this.method_137 = vAlign; + stage.addEventListener(KeyboardEvent.KEY_UP,this.method_233); + stage.addEventListener(Event.RESIZE,this.method_4); + this.name_45("hide",this.method_571); + this.name_45("copy",this.method_583); + this.name_45("clear",this.method_577); + this.name_45("cmdlist",this.method_574); + this.name_45("con_height",this.method_573); + this.name_45("con_width",this.method_564); + this.name_45("con_halign",this.method_575); + this.name_45("con_valign",this.method_572); + this.name_45("con_alpha",this.method_569); + this.name_45("con_bg",this.method_570); + this.name_45("con_fg",this.method_589); + this.name_45("filter",this.method_582); + this.name_45("varlist",this.method_565); + this.name_45("varlistv",this.method_579); + } + + public function name_147(variable:name_22) : void + { + this.var_536[variable.name_32()] = variable; + } + + public function name_146(variableName:String) : void + { + delete this.var_536[variableName]; + } + + public function set method_138(value:int) : void + { + value = this.clamp(value,1,3); + this.align = this.align & ~3 | value; + this.method_556(); + } + + public function get method_138() : int + { + return this.align & 3; + } + + public function set method_137(value:int) : void + { + value = this.clamp(value,1,3); + this.align = this.align & ~0x0C | value << 2; + this.method_556(); + } + + public function get method_137() : int + { + return this.align >> 2 & 3; + } + + public function name_145(text:String) : void + { + var needScroll:Boolean = this.buffer.size - this.var_530 <= this.var_529; + var linesAdded:int = this.method_558(text); + if(needScroll) + { + this.method_555(linesAdded); + } + } + + public function method_143(prefix:String, text:String) : void + { + var needScroll:Boolean = this.buffer.size - this.var_530 <= this.var_529; + var linesAdded:int = this.method_560(prefix,text); + if(needScroll) + { + this.method_555(linesAdded); + } + } + + public function method_145(lines:Vector.) : void + { + var linesAdded:int = 0; + var line:String = null; + var needScroll:Boolean = this.buffer.size - this.var_530 <= this.var_529; + for each(line in lines) + { + linesAdded += this.method_558(line); + } + if(needScroll) + { + this.method_555(linesAdded); + } + } + + public function method_142(prefix:String, lines:Vector.) : void + { + var linesAdded:int = 0; + var line:String = null; + var needScroll:Boolean = this.buffer.size - this.var_530 <= this.var_529; + for each(line in lines) + { + linesAdded += this.method_560(prefix,line); + } + if(needScroll) + { + this.method_555(linesAdded); + } + } + + public function show() : void + { + if(this.visible) + { + return; + } + this.stage.addChild(this.container); + this.stage.focus = this.input; + this.visible = true; + this.method_4(null); + this.method_555(0); + } + + public function hide() : void + { + if(this.stage == null) + { + return; + } + if(this.visible) + { + this.stage.removeChild(this.container); + this.stage.focus = this.stage; + this.visible = false; + } + } + + public function method_141() : Boolean + { + return this.visible; + } + + public function method_140(widthPercent:int, heightPercent:int) : void + { + widthPercent = this.clamp(widthPercent,1,100); + heightPercent = this.clamp(heightPercent,1,100); + if(widthPercent == this.var_535 && heightPercent == this.var_534) + { + return; + } + this.var_535 = widthPercent; + this.var_534 = heightPercent; + this.method_557(); + this.method_556(); + } + + public function set width(widthPercent:int) : void + { + this.method_140(widthPercent,this.var_534); + } + + public function get width() : int + { + return this.var_535; + } + + public function set height(heightPercent:int) : void + { + this.method_140(this.var_535,heightPercent); + } + + public function get height() : int + { + return this.var_534; + } + + public function name_45(commandName:String, handler:Function) : void + { + if(commandName == null || commandName == "") + { + throw new ArgumentError("Command name is null or empty"); + } + if(handler == null) + { + throw new ArgumentError("Handler is null"); + } + this.var_540[commandName] = handler; + } + + public function method_144(commandName:String) : void + { + if(commandName == null || commandName == "") + { + throw new ArgumentError("Command name is null or empty"); + } + delete this.var_540[commandName]; + } + + public function method_561(delay:uint) : void + { + setTimeout(this.hide,delay); + } + + public function method_139(text:String) : void + { + var commandHandler:Function = null; + if(Boolean(text.match(/^\s*$/))) + { + return; + } + var len:int = int(this.var_533.length); + if(len == 0 || this.var_533[len - 1] != text) + { + this.var_533.push(text); + } + this.var_531 = len + 1; + var tokens:Array = text.match(TOKENIZER); + var commandName:String = tokens.shift(); + var variable:name_22 = this.var_536[commandName]; + if(variable != null) + { + variable.method_77(this,tokens); + } + else + { + commandHandler = this.var_540[commandName]; + if(commandHandler != null) + { + commandHandler.call(null,this,tokens); + } + } + } + + public function set alpha(value:Number) : void + { + this.var_541 = value; + this.method_557(); + } + + public function get alpha() : Number + { + return this.var_541; + } + + private function method_566(stage:Stage) : void + { + var tf:TextField = new TextField(); + tf.defaultTextFormat = DEFAULT_TEXT_FORMAT; + tf.text = "j"; + stage.addChild(tf); + this.var_546 = tf.textWidth; + this.var_543 = tf.textHeight + 4; + stage.removeChild(tf); + } + + private function method_584() : void + { + this.input = new TextField(); + this.input.defaultTextFormat = DEFAULT_TEXT_FORMAT; + this.input.height = INPUT_HEIGHT; + this.input.type = TextFieldType.INPUT; + this.input.background = true; + this.input.backgroundColor = DEFAULT_BG_COLOR; + this.input.border = true; + this.input.borderColor = DEFAULT_FONT_COLOR; + this.input.addEventListener(KeyboardEvent.KEY_DOWN,this.method_568); + this.input.addEventListener(KeyboardEvent.KEY_UP,this.method_585); + this.input.addEventListener(TextEvent.TEXT_INPUT,this.method_567); + this.container.addChild(this.input); + } + + private function method_580() : void + { + this.var_538 = new Sprite(); + this.var_538.addEventListener(MouseEvent.MOUSE_WHEEL,this.onMouseWheel); + this.container.addChild(this.var_538); + } + + private function method_578(w:int, h:int) : void + { + this.var_529 = h / (this.var_543 + this.var_545); + this.var_542 = w / this.var_546 - 1; + this.method_581(w); + this.method_555(0); + var g:Graphics = this.var_538.graphics; + g.clear(); + g.beginFill(this.var_539,this.var_541); + g.drawRect(0,0,w,h); + g.endFill(); + } + + private function method_581(w:int) : void + { + for(var tf:TextField = null; this.var_532.length > this.var_529; ) + { + this.var_538.removeChild(this.var_532.pop()); + } + while(this.var_532.length < this.var_529) + { + this.method_457(); + } + var lineHeight:int = this.var_543 + this.var_545; + for(var i:int = 0; i < this.var_532.length; i++) + { + tf = this.var_532[i]; + tf.y = i * lineHeight; + tf.width = w; + } + } + + private function method_457() : void + { + var tf:TextField = new TextField(); + tf.height = this.var_543; + tf.defaultTextFormat = DEFAULT_TEXT_FORMAT; + tf.tabEnabled = false; + tf.selectable = true; + this.var_538.addChild(tf); + this.var_532.push(tf); + } + + private function method_555(delta:int) : void + { + this.var_530 += delta; + if(this.var_530 + this.var_529 > this.buffer.size) + { + this.var_530 = this.buffer.size - this.var_529; + } + if(this.var_530 < 0) + { + this.var_530 = 0; + } + this.method_576(); + } + + private function method_576() : void + { + if(this.container.parent != null) + { + this.method_588(); + } + } + + private function method_588() : void + { + var pageLineIndex:int = 0; + var iterator:name_632 = this.buffer.name_633(this.var_530); + while(pageLineIndex < this.var_529 && Boolean(iterator.hasNext())) + { + TextField(this.var_532[pageLineIndex++]).text = iterator.getNext(); + } + while(pageLineIndex < this.var_529) + { + TextField(this.var_532[pageLineIndex++]).text = ""; + } + } + + private function method_568(e:KeyboardEvent) : void + { + if(this.method_559(e)) + { + this.var_544 = true; + } + switch(e.keyCode) + { + case Keyboard.ENTER: + this.method_587(); + break; + case Keyboard.ESCAPE: + if(this.input.text != "") + { + this.input.text = ""; + break; + } + this.method_561(50); + break; + case Keyboard.UP: + this.method_563(); + break; + case Keyboard.DOWN: + this.method_586(); + break; + case Keyboard.PAGE_UP: + this.method_555(-this.var_529); + break; + case Keyboard.PAGE_DOWN: + this.method_555(this.var_529); + } + e.stopPropagation(); + } + + private function method_585(e:KeyboardEvent) : void + { + if(!this.method_559(e)) + { + e.stopPropagation(); + } + } + + private function method_567(e:TextEvent) : void + { + if(this.var_544) + { + e.preventDefault(); + this.var_544 = false; + } + } + + private function method_559(e:KeyboardEvent) : Boolean + { + return e.keyCode == 75 && Boolean(e.ctrlKey) && Boolean(e.shiftKey); + } + + private function method_587() : void + { + this.method_555(this.buffer.size); + var text:String = this.input.text; + this.input.text = ""; + this.name_145("> " + text); + this.method_139(text); + } + + private function method_563() : void + { + if(this.var_531 == 0) + { + return; + } + --this.var_531; + var command:String = this.var_533[this.var_531]; + this.input.text = command == null ? "" : command; + } + + private function method_586() : void + { + ++this.var_531; + if(this.var_531 >= this.var_533.length) + { + this.var_531 = this.var_533.length; + this.input.text = ""; + } + else + { + this.input.text = this.var_533[this.var_531]; + } + } + + private function method_233(e:KeyboardEvent) : void + { + if(this.method_559(e)) + { + if(this.visible) + { + this.hide(); + } + else + { + this.show(); + } + } + } + + private function method_4(event:Event) : void + { + this.method_557(); + this.method_556(); + } + + private function method_558(s:String) : int + { + var linesAdded:int = 0; + var line:String = null; + var i:int = 0; + var lines:Array = s.split(LINE_SPLITTER); + for each(line in lines) + { + if(!(Boolean(this.filter) && line.indexOf(this.filter) < 0)) + { + for(i = 0; i < line.length; ) + { + this.buffer.add(line.substr(i,this.var_542)); + linesAdded++; + i += this.var_542; + } + } + } + return linesAdded; + } + + private function method_560(prefix:String, s:String) : int + { + var linesAdded:int = 0; + var line:String = null; + var i:int = 0; + var lines:Array = s.split(LINE_SPLITTER); + var effectiveLineWidth:int = this.var_542 - prefix.length; + for each(line in lines) + { + if(!(Boolean(this.filter) && line.indexOf(this.filter) < 0)) + { + for(i = 0; i < line.length; ) + { + this.buffer.add(prefix + line.substr(i,effectiveLineWidth)); + linesAdded++; + i += effectiveLineWidth; + } + } + } + return linesAdded; + } + + private function onMouseWheel(event:MouseEvent) : void + { + this.method_555(-event.delta); + } + + private function clamp(value:int, min:int, max:int) : int + { + if(value < min) + { + return min; + } + if(value > max) + { + return max; + } + return value; + } + + private function method_557() : void + { + var pixelHeight:int = 0.01 * this.var_534 * this.stage.stageHeight; + var pixelWidth:int = 0.01 * this.var_535 * this.stage.stageWidth; + var outputHeight:int = pixelHeight - INPUT_HEIGHT; + this.method_578(pixelWidth,outputHeight); + this.input.y = outputHeight; + this.input.width = pixelWidth; + } + + private function method_556() : void + { + var hAlign:int = this.align & 3; + switch(hAlign) + { + case 1: + this.container.x = 0; + break; + case 2: + this.container.x = this.stage.stageWidth - this.container.width; + break; + case 3: + this.container.x = this.stage.stageWidth - this.container.width >> 1; + } + var vAlign:int = this.align >> 2 & 3; + switch(vAlign) + { + case 1: + this.container.y = 0; + break; + case 2: + this.container.y = this.stage.stageHeight - this.container.height; + break; + case 3: + this.container.y = this.stage.stageHeight - this.container.height >> 1; + } + } + + private function method_571(console:name_4, params:Array) : void + { + this.method_561(100); + } + + private function method_583(console:name_4, params:Array) : void + { + var iterator:name_632 = this.buffer.name_633(0); + var result:String = "Console content:\n"; + while(iterator.hasNext()) + { + result += iterator.getNext() + "\n"; + } + System.setClipboard(result); + this.name_145("Content has been copied to clipboard"); + } + + private function method_577(console:name_4, params:Array) : void + { + this.buffer.clear(); + this.method_555(0); + } + + private function method_574(console:name_4, params:Array) : void + { + var commandName:String = null; + var list:Array = []; + for(commandName in this.var_540) + { + list.push(commandName); + } + list.sort(); + for each(commandName in list) + { + this.name_145(commandName); + } + } + + private function method_575(console:name_4, params:Array) : void + { + if(params.length == 0) + { + this.name_145("Horizontal alignment=" + (this.align & 3)); + } + else + { + this.method_138 = int(params[0]); + } + } + + private function method_572(console:name_4, params:Array) : void + { + if(params.length == 0) + { + this.name_145("Vertical alignment=" + (this.align >> 2 & 3)); + } + else + { + this.method_137 = int(params[0]); + } + } + + private function method_564(console:name_4, params:Array) : void + { + if(params.length == 0) + { + this.name_145("Width=" + this.var_535); + } + else + { + this.method_140(int(params[0]),this.var_534); + } + } + + private function method_573(console:name_4, params:Array) : void + { + if(params.length == 0) + { + this.name_145("Height=" + this.var_534); + } + else + { + this.method_140(this.var_535,int(params[0])); + } + } + + private function method_569(console:name_4, params:Array) : void + { + if(params.length == 0) + { + this.name_145("Alpha=" + this.var_541); + } + else + { + this.alpha = Number(params[0]); + } + } + + private function method_570(console:name_4, params:Array) : void + { + if(params.length == 0) + { + this.name_145("Background color = " + this.var_539); + } + else + { + this.var_539 = uint(params[0]); + this.method_557(); + this.input.backgroundColor = this.var_539; + this.name_145("Background color set to " + this.var_539); + } + } + + private function method_589(console:name_4, params:Array) : void + { + var tf:TextField = null; + if(params.length == 0) + { + this.name_145("Foreground color = " + this.var_537); + } + else + { + this.var_537 = uint(params[0]); + DEFAULT_TEXT_FORMAT.color = this.var_537; + this.input.textColor = this.var_537; + this.input.defaultTextFormat = DEFAULT_TEXT_FORMAT; + for each(tf in this.var_532) + { + tf.textColor = this.var_537; + tf.defaultTextFormat = DEFAULT_TEXT_FORMAT; + } + this.name_145("Foreground color set to " + this.var_537); + } + } + + private function method_582(console:name_4, params:Array) : void + { + if(params.length < 2) + { + console.name_145("Usage: filter "); + return; + } + this.filter = params.shift(); + this.method_558("filter: " + this.filter); + this.method_139(params.join(" ")); + this.filter = null; + } + + private function method_565(console:name_4, args:Array) : void + { + this.method_562(args[0],false); + } + + private function method_579(console:name_4, args:Array) : void + { + this.method_562(args[0],true); + } + + private function method_562(start:String, showValues:Boolean) : void + { + var name:String = null; + var variable:name_22 = null; + var s:String = null; + var vars:Array = []; + for(name in this.var_536) + { + if(start == null || start == "" || name.indexOf(start) == 0) + { + variable = this.var_536[name]; + vars.push(showValues ? name + " = " + variable.toString() : name); + } + } + if(vars.length > 0) + { + vars.sort(); + for each(s in vars) + { + this.name_145(s); + } + } + } + } +} + diff --git a/src/package_6/name_356.as b/src/package_6/name_356.as new file mode 100644 index 0000000..de51176 --- /dev/null +++ b/src/package_6/name_356.as @@ -0,0 +1,138 @@ +package package_6 +{ + import package_39.name_160; + import package_39.name_450; + + public class name_356 implements name_450 + { + private static const ALL_CHANNELS:String = "all"; + + private var clientLog:name_160; + + private var console:name_4; + + public function name_356(clientLog:name_160, console:name_4) + { + super(); + this.clientLog = clientLog; + this.console = console; + } + + public function method_622(channelName:String, logText:String) : void + { + this.console.method_143(channelName + " ",logText); + } + + public function name_371(console:name_4, args:Array) : void + { + if(args.length < 1) + { + console.name_145("Usage: log action [arguments]"); + return; + } + var action:String = args.shift(); + switch(action) + { + case "c": + case "connect": + this.method_624(args); + break; + case "d": + case "disconnect": + this.method_625(args); + break; + case "show": + if(args.length == 0) + { + console.name_145("Usage: log show channel_name [filter_string]"); + break; + } + this.method_623(console,args[0],args[1]); + break; + case "ls": + case "list": + console.name_145("Existing channels:"); + console.method_145(this.clientLog.getChannelNames()); + } + } + + private function method_623(console:name_4, channelName:String, filterString:String) : void + { + var filteredStrings:Vector. = null; + var channelStrings:Vector. = this.clientLog.getChannelStrings(channelName); + if(channelStrings == null) + { + console.name_145("Channel not found"); + } + else + { + if(Boolean(filterString)) + { + filterString = filterString.toLowerCase(); + filteredStrings = channelStrings.filter(function(item:String, index:int, vector:Vector.):Boolean + { + return item.toLowerCase().indexOf(filterString) >= 0; + }); + } + else + { + filteredStrings = channelStrings; + } + console.method_142(channelName + " ",filteredStrings); + } + } + + private function method_624(channels:Array) : void + { + var channelName:String = null; + if(channels.length == 0) + { + this.console.name_145("Usage: log connect channel_name1 [channel_name2 ...]"); + return; + } + if(channels[0] == ALL_CHANNELS) + { + this.clientLog.addLogListener(this); + this.console.name_145("All log channels have been connected"); + } + else + { + for each(channelName in channels) + { + if(channelName != ALL_CHANNELS) + { + this.clientLog.addLogChannelListener(channelName,this); + this.console.name_145("Log channel " + channelName + " has been connected"); + } + } + } + } + + private function method_625(channels:Array) : void + { + var channelName:String = null; + if(channels.length == 0) + { + this.console.name_145("Usage: log disconnect channel_name1 [channel_name2 ...]"); + return; + } + if(channels[0] == ALL_CHANNELS) + { + this.clientLog.removeLogListener(this); + this.console.name_145("All log channels have been disconnected"); + } + else + { + for each(channelName in channels) + { + if(channelName != ALL_CHANNELS) + { + this.clientLog.removeLogChannelListener(channelName,this); + this.console.name_145("Log channel " + channelName + " has been disconnected"); + } + } + } + } + } +} + diff --git a/src/package_6/name_4.as b/src/package_6/name_4.as new file mode 100644 index 0000000..0c78b38 --- /dev/null +++ b/src/package_6/name_4.as @@ -0,0 +1,54 @@ +package package_6 +{ + import package_1.name_22; + + public interface name_4 + { + function show() : void; + + function hide() : void; + + function method_141() : Boolean; + + function name_145(param1:String) : void; + + function method_143(param1:String, param2:String) : void; + + function method_145(param1:Vector.) : void; + + function method_142(param1:String, param2:Vector.) : void; + + function method_140(param1:int, param2:int) : void; + + function set width(param1:int) : void; + + function get width() : int; + + function set height(param1:int) : void; + + function get height() : int; + + function set method_138(param1:int) : void; + + function get method_138() : int; + + function set method_137(param1:int) : void; + + function get method_137() : int; + + function set alpha(param1:Number) : void; + + function get alpha() : Number; + + function name_45(param1:String, param2:Function) : void; + + function method_144(param1:String) : void; + + function method_139(param1:String) : void; + + function name_147(param1:name_22) : void; + + function name_146(param1:String) : void; + } +} + diff --git a/src/package_60/CodecA3D2IndexBuffer.as b/src/package_60/CodecA3D2IndexBuffer.as new file mode 100644 index 0000000..c305c49 --- /dev/null +++ b/src/package_60/CodecA3D2IndexBuffer.as @@ -0,0 +1,59 @@ +package package_60 +{ + import flash.utils.ByteArray; + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_52.A3D2IndexBuffer; + + public class CodecA3D2IndexBuffer implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_241:name_152; + + private var var_252:name_152; + + private var var_308:name_152; + + public function CodecA3D2IndexBuffer() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_241 = protocol.name_448(new name_148(ByteArray,false)); + this.var_252 = protocol.name_448(new name_148(int,false)); + this.var_308 = protocol.name_448(new name_148(int,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_byteBuffer:ByteArray = this.var_241.method_296(protocolBuffer) as ByteArray; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.geometry.A3D2IndexBuffer","byteBuffer",value_byteBuffer); + var value_id:int = int(this.var_252.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.geometry.A3D2IndexBuffer","id",value_id); + var value_indexCount:int = int(this.var_308.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.geometry.A3D2IndexBuffer","indexCount",value_indexCount); + return new A3D2IndexBuffer(value_byteBuffer,value_id,value_indexCount); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2IndexBuffer = A3D2IndexBuffer(object); + this.var_241.method_295(protocolBuffer,struct.byteBuffer); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_308.method_295(protocolBuffer,struct.indexCount); + } + } +} + diff --git a/src/package_60/CodecA3D2VertexAttributes.as b/src/package_60/CodecA3D2VertexAttributes.as new file mode 100644 index 0000000..052935b --- /dev/null +++ b/src/package_60/CodecA3D2VertexAttributes.as @@ -0,0 +1,54 @@ +package package_60 +{ + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_52.A3D2VertexAttributes; + + public class CodecA3D2VertexAttributes implements name_152 + { + public function CodecA3D2VertexAttributes() + { + super(); + } + + public function init(protocol:name_163) : void + { + } + + public function method_296(protocolBuffer:name_442) : Object + { + var result:A3D2VertexAttributes = null; + var value:int = int(protocolBuffer.reader.readInt()); + switch(value) + { + case 0: + result = A3D2VertexAttributes.POSITION; + break; + case 1: + result = A3D2VertexAttributes.NORMAL; + break; + case 2: + result = A3D2VertexAttributes.TANGENT4; + break; + case 3: + result = A3D2VertexAttributes.JOINT; + break; + case 4: + result = A3D2VertexAttributes.TEXCOORD; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var value:int = int(object.value); + protocolBuffer.name_483.writeInt(value); + } + } +} + diff --git a/src/package_60/CodecA3D2VertexBuffer.as b/src/package_60/CodecA3D2VertexBuffer.as new file mode 100644 index 0000000..f6afa08 --- /dev/null +++ b/src/package_60/CodecA3D2VertexBuffer.as @@ -0,0 +1,69 @@ +package package_60 +{ + import flash.utils.ByteArray; + import package_32.name_148; + import package_32.name_149; + import package_32.name_209; + import package_33.name_156; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_52.A3D2VertexAttributes; + import package_52.A3D2VertexBuffer; + + public class CodecA3D2VertexBuffer implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_240:name_152; + + private var var_241:name_152; + + private var var_252:name_152; + + private var var_242:name_152; + + public function CodecA3D2VertexBuffer() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_240 = protocol.name_448(new name_149(new name_209(A3D2VertexAttributes,false),false,1)); + this.var_241 = protocol.name_448(new name_148(ByteArray,false)); + this.var_252 = protocol.name_448(new name_148(int,false)); + this.var_242 = protocol.name_448(new name_148(name_156,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_attributes:Vector. = this.var_240.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.geometry.A3D2VertexBuffer","attributes",value_attributes); + var value_byteBuffer:ByteArray = this.var_241.method_296(protocolBuffer) as ByteArray; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.geometry.A3D2VertexBuffer","byteBuffer",value_byteBuffer); + var value_id:int = int(this.var_252.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.geometry.A3D2VertexBuffer","id",value_id); + var value_vertexCount:uint = uint(this.var_242.method_296(protocolBuffer) as uint); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.geometry.A3D2VertexBuffer","vertexCount",value_vertexCount); + return new A3D2VertexBuffer(value_attributes,value_byteBuffer,value_id,value_vertexCount); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2VertexBuffer = A3D2VertexBuffer(object); + this.var_240.method_295(protocolBuffer,struct.attributes); + this.var_241.method_295(protocolBuffer,struct.byteBuffer); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_242.method_295(protocolBuffer,struct.vertexCount); + } + } +} + diff --git a/src/package_60/VectorCodecA3D2IndexBufferLevel1.as b/src/package_60/VectorCodecA3D2IndexBufferLevel1.as new file mode 100644 index 0000000..ecb6922 --- /dev/null +++ b/src/package_60/VectorCodecA3D2IndexBufferLevel1.as @@ -0,0 +1,59 @@ +package package_60 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_52.A3D2IndexBuffer; + + public class VectorCodecA3D2IndexBufferLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2IndexBufferLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2IndexBuffer,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2IndexBuffer(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_60/VectorCodecA3D2IndexBufferLevel2.as b/src/package_60/VectorCodecA3D2IndexBufferLevel2.as new file mode 100644 index 0000000..2e4a748 --- /dev/null +++ b/src/package_60/VectorCodecA3D2IndexBufferLevel2.as @@ -0,0 +1,89 @@ +package package_60 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_52.A3D2IndexBuffer; + + public class VectorCodecA3D2IndexBufferLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2IndexBufferLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2IndexBuffer,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2IndexBuffer(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_60/VectorCodecA3D2IndexBufferLevel3.as b/src/package_60/VectorCodecA3D2IndexBufferLevel3.as new file mode 100644 index 0000000..adc7e4d --- /dev/null +++ b/src/package_60/VectorCodecA3D2IndexBufferLevel3.as @@ -0,0 +1,119 @@ +package package_60 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_52.A3D2IndexBuffer; + + public class VectorCodecA3D2IndexBufferLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2IndexBufferLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2IndexBuffer,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2IndexBuffer(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_60/VectorCodecA3D2VertexAttributesLevel1.as b/src/package_60/VectorCodecA3D2VertexAttributesLevel1.as new file mode 100644 index 0000000..f0cc807 --- /dev/null +++ b/src/package_60/VectorCodecA3D2VertexAttributesLevel1.as @@ -0,0 +1,59 @@ +package package_60 +{ + import package_32.name_209; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_52.A3D2VertexAttributes; + + public class VectorCodecA3D2VertexAttributesLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2VertexAttributesLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_209(A3D2VertexAttributes,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2VertexAttributes(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_60/VectorCodecA3D2VertexAttributesLevel2.as b/src/package_60/VectorCodecA3D2VertexAttributesLevel2.as new file mode 100644 index 0000000..6083807 --- /dev/null +++ b/src/package_60/VectorCodecA3D2VertexAttributesLevel2.as @@ -0,0 +1,89 @@ +package package_60 +{ + import package_32.name_209; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_52.A3D2VertexAttributes; + + public class VectorCodecA3D2VertexAttributesLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2VertexAttributesLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_209(A3D2VertexAttributes,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2VertexAttributes(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_60/VectorCodecA3D2VertexAttributesLevel3.as b/src/package_60/VectorCodecA3D2VertexAttributesLevel3.as new file mode 100644 index 0000000..4bad0c1 --- /dev/null +++ b/src/package_60/VectorCodecA3D2VertexAttributesLevel3.as @@ -0,0 +1,119 @@ +package package_60 +{ + import package_32.name_209; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_52.A3D2VertexAttributes; + + public class VectorCodecA3D2VertexAttributesLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2VertexAttributesLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_209(A3D2VertexAttributes,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2VertexAttributes(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_60/VectorCodecA3D2VertexBufferLevel1.as b/src/package_60/VectorCodecA3D2VertexBufferLevel1.as new file mode 100644 index 0000000..3728e9b --- /dev/null +++ b/src/package_60/VectorCodecA3D2VertexBufferLevel1.as @@ -0,0 +1,59 @@ +package package_60 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_52.A3D2VertexBuffer; + + public class VectorCodecA3D2VertexBufferLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2VertexBufferLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2VertexBuffer,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2VertexBuffer(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_60/VectorCodecA3D2VertexBufferLevel2.as b/src/package_60/VectorCodecA3D2VertexBufferLevel2.as new file mode 100644 index 0000000..e4cbacf --- /dev/null +++ b/src/package_60/VectorCodecA3D2VertexBufferLevel2.as @@ -0,0 +1,89 @@ +package package_60 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_52.A3D2VertexBuffer; + + public class VectorCodecA3D2VertexBufferLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2VertexBufferLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2VertexBuffer,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2VertexBuffer(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_60/VectorCodecA3D2VertexBufferLevel3.as b/src/package_60/VectorCodecA3D2VertexBufferLevel3.as new file mode 100644 index 0000000..2199ea1 --- /dev/null +++ b/src/package_60/VectorCodecA3D2VertexBufferLevel3.as @@ -0,0 +1,119 @@ +package package_60 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_52.A3D2VertexBuffer; + + public class VectorCodecA3D2VertexBufferLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2VertexBufferLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2VertexBuffer,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2VertexBuffer(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_61/CodecA3D2AnimationClip.as b/src/package_61/CodecA3D2AnimationClip.as new file mode 100644 index 0000000..ad08049 --- /dev/null +++ b/src/package_61/CodecA3D2AnimationClip.as @@ -0,0 +1,72 @@ +package package_61 +{ + import package_32.name_148; + import package_32.name_149; + import package_33.name_155; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_55.A3D2AnimationClip; + + public class CodecA3D2AnimationClip implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_252:name_152; + + private var var_306:name_152; + + private var var_253:name_152; + + private var var_304:name_152; + + private var var_305:name_152; + + public function CodecA3D2AnimationClip() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_252 = protocol.name_448(new name_148(int,false)); + this.var_306 = protocol.name_448(new name_148(Boolean,false)); + this.var_253 = protocol.name_448(new name_148(String,true)); + this.var_304 = protocol.name_448(new name_149(new name_148(name_155,false),true,1)); + this.var_305 = protocol.name_448(new name_149(new name_148(int,false),false,1)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_id:int = int(this.var_252.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.animation.A3D2AnimationClip","id",value_id); + var value_loop:Boolean = Boolean(this.var_306.method_296(protocolBuffer) as Boolean); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.animation.A3D2AnimationClip","loop",value_loop); + var value_name:String = this.var_253.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.animation.A3D2AnimationClip","name",value_name); + var value_objectIDs:Vector. = this.var_304.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.animation.A3D2AnimationClip","objectIDs",value_objectIDs); + var value_tracks:Vector. = this.var_305.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.animation.A3D2AnimationClip","tracks",value_tracks); + return new A3D2AnimationClip(value_id,value_loop,value_name,value_objectIDs,value_tracks); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2AnimationClip = A3D2AnimationClip(object); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_306.method_295(protocolBuffer,struct.loop); + this.var_253.method_295(protocolBuffer,struct.name); + this.var_304.method_295(protocolBuffer,struct.objectIDs); + this.var_305.method_295(protocolBuffer,struct.tracks); + } + } +} + diff --git a/src/package_61/CodecA3D2Keyframe.as b/src/package_61/CodecA3D2Keyframe.as new file mode 100644 index 0000000..8cc1e11 --- /dev/null +++ b/src/package_61/CodecA3D2Keyframe.as @@ -0,0 +1,54 @@ +package package_61 +{ + import package_32.name_148; + import package_33.name_157; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2Transform; + import package_5.name_3; + import package_55.A3D2Keyframe; + + public class CodecA3D2Keyframe implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_395:name_152; + + private var var_249:name_152; + + public function CodecA3D2Keyframe() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_395 = protocol.name_448(new name_148(name_157,false)); + this.var_249 = protocol.name_448(new name_148(A3D2Transform,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_time:Number = Number(this.var_395.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.animation.A3D2Keyframe","time",value_time); + var value_transform:A3D2Transform = this.var_249.method_296(protocolBuffer) as A3D2Transform; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.animation.A3D2Keyframe","transform",value_transform); + return new A3D2Keyframe(value_time,value_transform); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Keyframe = A3D2Keyframe(object); + this.var_395.method_295(protocolBuffer,struct.time); + this.var_249.method_295(protocolBuffer,struct.transform); + } + } +} + diff --git a/src/package_61/CodecA3D2Track.as b/src/package_61/CodecA3D2Track.as new file mode 100644 index 0000000..d33ad98 --- /dev/null +++ b/src/package_61/CodecA3D2Track.as @@ -0,0 +1,60 @@ +package package_61 +{ + import package_32.name_148; + import package_32.name_149; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_55.A3D2Keyframe; + import package_55.A3D2Track; + + public class CodecA3D2Track implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_252:name_152; + + private var var_394:name_152; + + private var var_393:name_152; + + public function CodecA3D2Track() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_252 = protocol.name_448(new name_148(int,false)); + this.var_394 = protocol.name_448(new name_149(new name_148(A3D2Keyframe,false),false,1)); + this.var_393 = protocol.name_448(new name_148(String,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_id:int = int(this.var_252.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.animation.A3D2Track","id",value_id); + var value_keyframes:Vector. = this.var_394.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.animation.A3D2Track","keyframes",value_keyframes); + var value_objectName:String = this.var_393.method_296(protocolBuffer) as String; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.animation.A3D2Track","objectName",value_objectName); + return new A3D2Track(value_id,value_keyframes,value_objectName); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3D2Track = A3D2Track(object); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_394.method_295(protocolBuffer,struct.keyframes); + this.var_393.method_295(protocolBuffer,struct.objectName); + } + } +} + diff --git a/src/package_61/VectorCodecA3D2AnimationClipLevel1.as b/src/package_61/VectorCodecA3D2AnimationClipLevel1.as new file mode 100644 index 0000000..cf1e17f --- /dev/null +++ b/src/package_61/VectorCodecA3D2AnimationClipLevel1.as @@ -0,0 +1,59 @@ +package package_61 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_55.A3D2AnimationClip; + + public class VectorCodecA3D2AnimationClipLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2AnimationClipLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2AnimationClip,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2AnimationClip(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_61/VectorCodecA3D2AnimationClipLevel2.as b/src/package_61/VectorCodecA3D2AnimationClipLevel2.as new file mode 100644 index 0000000..4164d8c --- /dev/null +++ b/src/package_61/VectorCodecA3D2AnimationClipLevel2.as @@ -0,0 +1,89 @@ +package package_61 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_55.A3D2AnimationClip; + + public class VectorCodecA3D2AnimationClipLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2AnimationClipLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2AnimationClip,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2AnimationClip(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_61/VectorCodecA3D2AnimationClipLevel3.as b/src/package_61/VectorCodecA3D2AnimationClipLevel3.as new file mode 100644 index 0000000..b323b84 --- /dev/null +++ b/src/package_61/VectorCodecA3D2AnimationClipLevel3.as @@ -0,0 +1,119 @@ +package package_61 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_55.A3D2AnimationClip; + + public class VectorCodecA3D2AnimationClipLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2AnimationClipLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2AnimationClip,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2AnimationClip(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_61/VectorCodecA3D2KeyframeLevel1.as b/src/package_61/VectorCodecA3D2KeyframeLevel1.as new file mode 100644 index 0000000..5215f96 --- /dev/null +++ b/src/package_61/VectorCodecA3D2KeyframeLevel1.as @@ -0,0 +1,59 @@ +package package_61 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_55.A3D2Keyframe; + + public class VectorCodecA3D2KeyframeLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2KeyframeLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Keyframe,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Keyframe(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_61/VectorCodecA3D2KeyframeLevel2.as b/src/package_61/VectorCodecA3D2KeyframeLevel2.as new file mode 100644 index 0000000..f1716a7 --- /dev/null +++ b/src/package_61/VectorCodecA3D2KeyframeLevel2.as @@ -0,0 +1,89 @@ +package package_61 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_55.A3D2Keyframe; + + public class VectorCodecA3D2KeyframeLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2KeyframeLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Keyframe,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Keyframe(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_61/VectorCodecA3D2KeyframeLevel3.as b/src/package_61/VectorCodecA3D2KeyframeLevel3.as new file mode 100644 index 0000000..5145a80 --- /dev/null +++ b/src/package_61/VectorCodecA3D2KeyframeLevel3.as @@ -0,0 +1,119 @@ +package package_61 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_55.A3D2Keyframe; + + public class VectorCodecA3D2KeyframeLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2KeyframeLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Keyframe,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Keyframe(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_61/VectorCodecA3D2TrackLevel1.as b/src/package_61/VectorCodecA3D2TrackLevel1.as new file mode 100644 index 0000000..4f948b8 --- /dev/null +++ b/src/package_61/VectorCodecA3D2TrackLevel1.as @@ -0,0 +1,59 @@ +package package_61 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_55.A3D2Track; + + public class VectorCodecA3D2TrackLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2TrackLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Track,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3D2Track(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_61/VectorCodecA3D2TrackLevel2.as b/src/package_61/VectorCodecA3D2TrackLevel2.as new file mode 100644 index 0000000..a3fdca0 --- /dev/null +++ b/src/package_61/VectorCodecA3D2TrackLevel2.as @@ -0,0 +1,89 @@ +package package_61 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_55.A3D2Track; + + public class VectorCodecA3D2TrackLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2TrackLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Track,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3D2Track(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_61/VectorCodecA3D2TrackLevel3.as b/src/package_61/VectorCodecA3D2TrackLevel3.as new file mode 100644 index 0000000..c1b49e2 --- /dev/null +++ b/src/package_61/VectorCodecA3D2TrackLevel3.as @@ -0,0 +1,119 @@ +package package_61 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_55.A3D2Track; + + public class VectorCodecA3D2TrackLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2TrackLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3D2Track,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3D2Track(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_62/CodecA3DGeometry.as b/src/package_62/CodecA3DGeometry.as new file mode 100644 index 0000000..d715505 --- /dev/null +++ b/src/package_62/CodecA3DGeometry.as @@ -0,0 +1,62 @@ +package package_62 +{ + import package_32.name_148; + import package_32.name_149; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_54.A3DGeometry; + import package_54.A3DIndexBuffer; + import package_54.A3DVertexBuffer; + import package_57.name_213; + + public class CodecA3DGeometry implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_252:name_152; + + private var var_275:name_152; + + private var var_248:name_152; + + public function CodecA3DGeometry() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_252 = protocol.name_448(new name_148(name_213,true)); + this.var_275 = protocol.name_448(new name_148(A3DIndexBuffer,true)); + this.var_248 = protocol.name_448(new name_149(new name_148(A3DVertexBuffer,false),true,1)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_id:name_213 = this.var_252.method_296(protocolBuffer) as name_213; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.geometry.A3DGeometry","id",value_id); + var value_indexBuffer:A3DIndexBuffer = this.var_275.method_296(protocolBuffer) as A3DIndexBuffer; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.geometry.A3DGeometry","indexBuffer",value_indexBuffer); + var value_vertexBuffers:Vector. = this.var_248.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.geometry.A3DGeometry","vertexBuffers",value_vertexBuffers); + return new A3DGeometry(value_id,value_indexBuffer,value_vertexBuffers); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3DGeometry = A3DGeometry(object); + this.var_252.method_295(protocolBuffer,struct.id); + this.var_275.method_295(protocolBuffer,struct.indexBuffer); + this.var_248.method_295(protocolBuffer,struct.vertexBuffers); + } + } +} + diff --git a/src/package_62/CodecA3DIndexBuffer.as b/src/package_62/CodecA3DIndexBuffer.as new file mode 100644 index 0000000..3d71785 --- /dev/null +++ b/src/package_62/CodecA3DIndexBuffer.as @@ -0,0 +1,53 @@ +package package_62 +{ + import flash.utils.ByteArray; + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_54.A3DIndexBuffer; + + public class CodecA3DIndexBuffer implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_241:name_152; + + private var var_308:name_152; + + public function CodecA3DIndexBuffer() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_241 = protocol.name_448(new name_148(ByteArray,true)); + this.var_308 = protocol.name_448(new name_148(int,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_byteBuffer:ByteArray = this.var_241.method_296(protocolBuffer) as ByteArray; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.geometry.A3DIndexBuffer","byteBuffer",value_byteBuffer); + var value_indexCount:int = int(this.var_308.method_296(protocolBuffer) as int); + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.geometry.A3DIndexBuffer","indexCount",value_indexCount); + return new A3DIndexBuffer(value_byteBuffer,value_indexCount); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3DIndexBuffer = A3DIndexBuffer(object); + this.var_241.method_295(protocolBuffer,struct.byteBuffer); + this.var_308.method_295(protocolBuffer,struct.indexCount); + } + } +} + diff --git a/src/package_62/CodecA3DVertexBuffer.as b/src/package_62/CodecA3DVertexBuffer.as new file mode 100644 index 0000000..6ac21c2 --- /dev/null +++ b/src/package_62/CodecA3DVertexBuffer.as @@ -0,0 +1,62 @@ +package package_62 +{ + import flash.utils.ByteArray; + import package_32.name_148; + import package_32.name_149; + import package_33.name_154; + import package_33.name_156; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_54.A3DVertexBuffer; + + public class CodecA3DVertexBuffer implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_240:name_152; + + private var var_241:name_152; + + private var var_242:name_152; + + public function CodecA3DVertexBuffer() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_240 = protocol.name_448(new name_149(new name_148(name_154,false),true,1)); + this.var_241 = protocol.name_448(new name_148(ByteArray,true)); + this.var_242 = protocol.name_448(new name_148(name_156,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_attributes:Vector. = this.var_240.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.geometry.A3DVertexBuffer","attributes",value_attributes); + var value_byteBuffer:ByteArray = this.var_241.method_296(protocolBuffer) as ByteArray; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.geometry.A3DVertexBuffer","byteBuffer",value_byteBuffer); + var value_vertexCount:uint = uint(this.var_242.method_296(protocolBuffer) as uint); + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.geometry.A3DVertexBuffer","vertexCount",value_vertexCount); + return new A3DVertexBuffer(value_attributes,value_byteBuffer,value_vertexCount); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:A3DVertexBuffer = A3DVertexBuffer(object); + this.var_240.method_295(protocolBuffer,struct.attributes); + this.var_241.method_295(protocolBuffer,struct.byteBuffer); + this.var_242.method_295(protocolBuffer,struct.vertexCount); + } + } +} + diff --git a/src/package_62/VectorCodecA3DGeometryLevel1.as b/src/package_62/VectorCodecA3DGeometryLevel1.as new file mode 100644 index 0000000..4100c12 --- /dev/null +++ b/src/package_62/VectorCodecA3DGeometryLevel1.as @@ -0,0 +1,59 @@ +package package_62 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_54.A3DGeometry; + + public class VectorCodecA3DGeometryLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DGeometryLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DGeometry,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3DGeometry(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_62/VectorCodecA3DGeometryLevel2.as b/src/package_62/VectorCodecA3DGeometryLevel2.as new file mode 100644 index 0000000..996ff75 --- /dev/null +++ b/src/package_62/VectorCodecA3DGeometryLevel2.as @@ -0,0 +1,89 @@ +package package_62 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_54.A3DGeometry; + + public class VectorCodecA3DGeometryLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DGeometryLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DGeometry,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3DGeometry(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_62/VectorCodecA3DGeometryLevel3.as b/src/package_62/VectorCodecA3DGeometryLevel3.as new file mode 100644 index 0000000..9c783f1 --- /dev/null +++ b/src/package_62/VectorCodecA3DGeometryLevel3.as @@ -0,0 +1,119 @@ +package package_62 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_54.A3DGeometry; + + public class VectorCodecA3DGeometryLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DGeometryLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DGeometry,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3DGeometry(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_62/VectorCodecA3DIndexBufferLevel1.as b/src/package_62/VectorCodecA3DIndexBufferLevel1.as new file mode 100644 index 0000000..ed11cd8 --- /dev/null +++ b/src/package_62/VectorCodecA3DIndexBufferLevel1.as @@ -0,0 +1,59 @@ +package package_62 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_54.A3DIndexBuffer; + + public class VectorCodecA3DIndexBufferLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DIndexBufferLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DIndexBuffer,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3DIndexBuffer(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_62/VectorCodecA3DIndexBufferLevel2.as b/src/package_62/VectorCodecA3DIndexBufferLevel2.as new file mode 100644 index 0000000..fd32641 --- /dev/null +++ b/src/package_62/VectorCodecA3DIndexBufferLevel2.as @@ -0,0 +1,89 @@ +package package_62 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_54.A3DIndexBuffer; + + public class VectorCodecA3DIndexBufferLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DIndexBufferLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DIndexBuffer,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3DIndexBuffer(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_62/VectorCodecA3DIndexBufferLevel3.as b/src/package_62/VectorCodecA3DIndexBufferLevel3.as new file mode 100644 index 0000000..82aa9d7 --- /dev/null +++ b/src/package_62/VectorCodecA3DIndexBufferLevel3.as @@ -0,0 +1,119 @@ +package package_62 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_54.A3DIndexBuffer; + + public class VectorCodecA3DIndexBufferLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DIndexBufferLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DIndexBuffer,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3DIndexBuffer(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_62/VectorCodecA3DVertexBufferLevel1.as b/src/package_62/VectorCodecA3DVertexBufferLevel1.as new file mode 100644 index 0000000..c217c18 --- /dev/null +++ b/src/package_62/VectorCodecA3DVertexBufferLevel1.as @@ -0,0 +1,59 @@ +package package_62 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_54.A3DVertexBuffer; + + public class VectorCodecA3DVertexBufferLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DVertexBufferLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DVertexBuffer,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = A3DVertexBuffer(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_62/VectorCodecA3DVertexBufferLevel2.as b/src/package_62/VectorCodecA3DVertexBufferLevel2.as new file mode 100644 index 0000000..4015cb7 --- /dev/null +++ b/src/package_62/VectorCodecA3DVertexBufferLevel2.as @@ -0,0 +1,89 @@ +package package_62 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_54.A3DVertexBuffer; + + public class VectorCodecA3DVertexBufferLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DVertexBufferLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DVertexBuffer,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = A3DVertexBuffer(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_62/VectorCodecA3DVertexBufferLevel3.as b/src/package_62/VectorCodecA3DVertexBufferLevel3.as new file mode 100644 index 0000000..0fcd620 --- /dev/null +++ b/src/package_62/VectorCodecA3DVertexBufferLevel3.as @@ -0,0 +1,119 @@ +package package_62 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_54.A3DVertexBuffer; + + public class VectorCodecA3DVertexBufferLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DVertexBufferLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(A3DVertexBuffer,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = A3DVertexBuffer(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_63/VectorCodecA3DMatrixLevel1.as b/src/package_63/VectorCodecA3DMatrixLevel1.as new file mode 100644 index 0000000..5b533cb --- /dev/null +++ b/src/package_63/VectorCodecA3DMatrixLevel1.as @@ -0,0 +1,59 @@ +package package_63 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_57.name_214; + + public class VectorCodecA3DMatrixLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DMatrixLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_214,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = name_214(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_63/VectorCodecA3DMatrixLevel2.as b/src/package_63/VectorCodecA3DMatrixLevel2.as new file mode 100644 index 0000000..4b5b902 --- /dev/null +++ b/src/package_63/VectorCodecA3DMatrixLevel2.as @@ -0,0 +1,89 @@ +package package_63 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_57.name_214; + + public class VectorCodecA3DMatrixLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DMatrixLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_214,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = name_214(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_63/VectorCodecA3DMatrixLevel3.as b/src/package_63/VectorCodecA3DMatrixLevel3.as new file mode 100644 index 0000000..50ce5bc --- /dev/null +++ b/src/package_63/VectorCodecA3DMatrixLevel3.as @@ -0,0 +1,119 @@ +package package_63 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_57.name_214; + + public class VectorCodecA3DMatrixLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DMatrixLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_214,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = name_214(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_63/VectorCodecIdLevel1.as b/src/package_63/VectorCodecIdLevel1.as new file mode 100644 index 0000000..f346541 --- /dev/null +++ b/src/package_63/VectorCodecIdLevel1.as @@ -0,0 +1,59 @@ +package package_63 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_57.name_213; + + public class VectorCodecIdLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecIdLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_213,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = name_213(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_63/VectorCodecIdLevel2.as b/src/package_63/VectorCodecIdLevel2.as new file mode 100644 index 0000000..98099be --- /dev/null +++ b/src/package_63/VectorCodecIdLevel2.as @@ -0,0 +1,89 @@ +package package_63 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_57.name_213; + + public class VectorCodecIdLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecIdLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_213,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = name_213(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_63/VectorCodecIdLevel3.as b/src/package_63/VectorCodecIdLevel3.as new file mode 100644 index 0000000..5cbeb4e --- /dev/null +++ b/src/package_63/VectorCodecIdLevel3.as @@ -0,0 +1,119 @@ +package package_63 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_57.name_213; + + public class VectorCodecIdLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecIdLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_213,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = name_213(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_63/name_216.as b/src/package_63/name_216.as new file mode 100644 index 0000000..b2e2a2c --- /dev/null +++ b/src/package_63/name_216.as @@ -0,0 +1,46 @@ +package package_63 +{ + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_57.name_213; + + public class name_216 implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_252:name_152; + + public function name_216() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_252 = protocol.name_448(new name_148(uint,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_id:uint = uint(this.var_252.method_296(protocolBuffer) as uint); + log.log("codec","struct %1 field %2 value %3","commons.Id","id",value_id); + return new name_213(value_id); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:name_213 = name_213(object); + this.var_252.method_295(protocolBuffer,struct.id); + } + } +} + diff --git a/src/package_63/name_217.as b/src/package_63/name_217.as new file mode 100644 index 0000000..484be0c --- /dev/null +++ b/src/package_63/name_217.as @@ -0,0 +1,113 @@ +package package_63 +{ + import package_32.name_148; + import package_33.name_157; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_57.name_214; + + public class name_217 implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_333:name_152; + + private var var_327:name_152; + + private var var_331:name_152; + + private var var_329:name_152; + + private var var_326:name_152; + + private var var_328:name_152; + + private var var_332:name_152; + + private var var_325:name_152; + + private var var_334:name_152; + + private var var_330:name_152; + + private var var_324:name_152; + + private var var_323:name_152; + + public function name_217() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_333 = protocol.name_448(new name_148(name_157,false)); + this.var_327 = protocol.name_448(new name_148(name_157,false)); + this.var_331 = protocol.name_448(new name_148(name_157,false)); + this.var_329 = protocol.name_448(new name_148(name_157,false)); + this.var_326 = protocol.name_448(new name_148(name_157,false)); + this.var_328 = protocol.name_448(new name_148(name_157,false)); + this.var_332 = protocol.name_448(new name_148(name_157,false)); + this.var_325 = protocol.name_448(new name_148(name_157,false)); + this.var_334 = protocol.name_448(new name_148(name_157,false)); + this.var_330 = protocol.name_448(new name_148(name_157,false)); + this.var_324 = protocol.name_448(new name_148(name_157,false)); + this.var_323 = protocol.name_448(new name_148(name_157,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_a:Number = Number(this.var_333.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","commons.A3DMatrix","a",value_a); + var value_b:Number = Number(this.var_327.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","commons.A3DMatrix","b",value_b); + var value_c:Number = Number(this.var_331.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","commons.A3DMatrix","c",value_c); + var value_d:Number = Number(this.var_329.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","commons.A3DMatrix","d",value_d); + var value_e:Number = Number(this.var_326.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","commons.A3DMatrix","e",value_e); + var value_f:Number = Number(this.var_328.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","commons.A3DMatrix","f",value_f); + var value_g:Number = Number(this.var_332.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","commons.A3DMatrix","g",value_g); + var value_h:Number = Number(this.var_325.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","commons.A3DMatrix","h",value_h); + var value_i:Number = Number(this.var_334.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","commons.A3DMatrix","i",value_i); + var value_j:Number = Number(this.var_330.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","commons.A3DMatrix","j",value_j); + var value_k:Number = Number(this.var_324.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","commons.A3DMatrix","k",value_k); + var value_l:Number = Number(this.var_323.method_296(protocolBuffer) as Number); + log.log("codec","struct %1 field %2 value %3","commons.A3DMatrix","l",value_l); + return new name_214(value_a,value_b,value_c,value_d,value_e,value_f,value_g,value_h,value_i,value_j,value_k,value_l); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:name_214 = name_214(object); + this.var_333.method_295(protocolBuffer,struct.a); + this.var_327.method_295(protocolBuffer,struct.b); + this.var_331.method_295(protocolBuffer,struct.c); + this.var_329.method_295(protocolBuffer,struct.d); + this.var_326.method_295(protocolBuffer,struct.e); + this.var_328.method_295(protocolBuffer,struct.f); + this.var_332.method_295(protocolBuffer,struct.g); + this.var_325.method_295(protocolBuffer,struct.h); + this.var_334.method_295(protocolBuffer,struct.i); + this.var_330.method_295(protocolBuffer,struct.j); + this.var_324.method_295(protocolBuffer,struct.k); + this.var_323.method_295(protocolBuffer,struct.l); + } + } +} + diff --git a/src/package_64/name_212.as b/src/package_64/name_212.as new file mode 100644 index 0000000..3d3950f --- /dev/null +++ b/src/package_64/name_212.as @@ -0,0 +1,31 @@ +package package_64 +{ + public class name_212 + { + private var var_101:uint; + + public function name_212(id:uint) + { + super(); + this.var_101 = id; + } + + public function get id() : uint + { + return this.var_101; + } + + public function set id(value:uint) : void + { + this.var_101 = value; + } + + public function toString() : String + { + var result:String = "ParentId ["; + result += "id = " + this.id + " "; + return result + "]"; + } + } +} + diff --git a/src/package_65/name_210.as b/src/package_65/name_210.as new file mode 100644 index 0000000..244b58c --- /dev/null +++ b/src/package_65/name_210.as @@ -0,0 +1,108 @@ +package package_65 +{ + import package_50.A3DBox; + import package_50.A3DObject; + import package_53.A3DImage; + import package_53.A3DMap; + import package_53.A3DMaterial; + import package_54.A3DGeometry; + + public class name_210 + { + private var var_349:Vector.; + + private var name_447:Vector.; + + private var var_348:Vector.; + + private var var_347:Vector.; + + private var var_350:Vector.; + + private var var_346:Vector.; + + public function name_210(boxes:Vector., geometries:Vector., images:Vector., maps:Vector., materials:Vector., objects:Vector.) + { + super(); + this.var_349 = boxes; + this.name_447 = geometries; + this.var_348 = images; + this.var_347 = maps; + this.var_350 = materials; + this.var_346 = objects; + } + + public function get boxes() : Vector. + { + return this.var_349; + } + + public function set boxes(value:Vector.) : void + { + this.var_349 = value; + } + + public function get geometries() : Vector. + { + return this.name_447; + } + + public function set geometries(value:Vector.) : void + { + this.name_447 = value; + } + + public function get images() : Vector. + { + return this.var_348; + } + + public function set images(value:Vector.) : void + { + this.var_348 = value; + } + + public function get maps() : Vector. + { + return this.var_347; + } + + public function set maps(value:Vector.) : void + { + this.var_347 = value; + } + + public function get materials() : Vector. + { + return this.var_350; + } + + public function set materials(value:Vector.) : void + { + this.var_350 = value; + } + + public function get objects() : Vector. + { + return this.var_346; + } + + public function set objects(value:Vector.) : void + { + this.var_346 = value; + } + + public function toString() : String + { + var result:String = "A3D ["; + result += "boxes = " + this.boxes + " "; + result += "geometries = " + this.geometries + " "; + result += "images = " + this.images + " "; + result += "maps = " + this.maps + " "; + result += "materials = " + this.materials + " "; + result += "objects = " + this.objects + " "; + return result + "]"; + } + } +} + diff --git a/src/package_66/name_211.as b/src/package_66/name_211.as new file mode 100644 index 0000000..5086c4b --- /dev/null +++ b/src/package_66/name_211.as @@ -0,0 +1,303 @@ +package package_66 +{ + import package_48.A3D2AmbientLight; + import package_48.A3D2Box; + import package_48.A3D2Decal; + import package_48.A3D2DirectionalLight; + import package_48.A3D2Joint; + import package_48.A3D2Mesh; + import package_48.A3D2Object; + import package_48.A3D2OmniLight; + import package_48.A3D2Skin; + import package_48.A3D2SpotLight; + import package_48.A3D2Sprite; + import package_51.A3D2CubeMap; + import package_51.A3D2Image; + import package_51.A3D2Map; + import package_51.A3D2Material; + import package_52.A3D2IndexBuffer; + import package_52.A3D2VertexBuffer; + import package_55.A3D2AnimationClip; + import package_55.A3D2Track; + + public class name_211 + { + private var var_397:Vector.; + + private var var_404:Vector.; + + private var var_402:Vector.; + + private var var_349:Vector.; + + private var var_405:Vector.; + + private var var_406:Vector.; + + private var var_401:Vector.; + + private var var_348:Vector.; + + private var var_398:Vector.; + + private var var_392:Vector.; + + private var var_347:Vector.; + + private var var_350:Vector.; + + private var var_400:Vector.; + + private var var_346:Vector.; + + private var var_399:Vector.; + + private var var_396:Vector.; + + private var var_145:Vector.; + + private var var_403:Vector.; + + private var var_277:Vector.; + + public function name_211(ambientLights:Vector., animationClips:Vector., animationTracks:Vector., boxes:Vector., cubeMaps:Vector., decals:Vector., directionalLights:Vector., images:Vector., indexBuffers:Vector., joints:Vector., maps:Vector., materials:Vector., meshes:Vector., objects:Vector., omniLights:Vector., skins:Vector., spotLights:Vector., sprites:Vector., vertexBuffers:Vector.) + { + super(); + this.var_397 = ambientLights; + this.var_404 = animationClips; + this.var_402 = animationTracks; + this.var_349 = boxes; + this.var_405 = cubeMaps; + this.var_406 = decals; + this.var_401 = directionalLights; + this.var_348 = images; + this.var_398 = indexBuffers; + this.var_392 = joints; + this.var_347 = maps; + this.var_350 = materials; + this.var_400 = meshes; + this.var_346 = objects; + this.var_399 = omniLights; + this.var_396 = skins; + this.var_145 = spotLights; + this.var_403 = sprites; + this.var_277 = vertexBuffers; + } + + public function get ambientLights() : Vector. + { + return this.var_397; + } + + public function set ambientLights(value:Vector.) : void + { + this.var_397 = value; + } + + public function get animationClips() : Vector. + { + return this.var_404; + } + + public function set animationClips(value:Vector.) : void + { + this.var_404 = value; + } + + public function get animationTracks() : Vector. + { + return this.var_402; + } + + public function set animationTracks(value:Vector.) : void + { + this.var_402 = value; + } + + public function get boxes() : Vector. + { + return this.var_349; + } + + public function set boxes(value:Vector.) : void + { + this.var_349 = value; + } + + public function get cubeMaps() : Vector. + { + return this.var_405; + } + + public function set cubeMaps(value:Vector.) : void + { + this.var_405 = value; + } + + public function get decals() : Vector. + { + return this.var_406; + } + + public function set decals(value:Vector.) : void + { + this.var_406 = value; + } + + public function get directionalLights() : Vector. + { + return this.var_401; + } + + public function set directionalLights(value:Vector.) : void + { + this.var_401 = value; + } + + public function get images() : Vector. + { + return this.var_348; + } + + public function set images(value:Vector.) : void + { + this.var_348 = value; + } + + public function get indexBuffers() : Vector. + { + return this.var_398; + } + + public function set indexBuffers(value:Vector.) : void + { + this.var_398 = value; + } + + public function get joints() : Vector. + { + return this.var_392; + } + + public function set joints(value:Vector.) : void + { + this.var_392 = value; + } + + public function get maps() : Vector. + { + return this.var_347; + } + + public function set maps(value:Vector.) : void + { + this.var_347 = value; + } + + public function get materials() : Vector. + { + return this.var_350; + } + + public function set materials(value:Vector.) : void + { + this.var_350 = value; + } + + public function get meshes() : Vector. + { + return this.var_400; + } + + public function set meshes(value:Vector.) : void + { + this.var_400 = value; + } + + public function get objects() : Vector. + { + return this.var_346; + } + + public function set objects(value:Vector.) : void + { + this.var_346 = value; + } + + public function get omniLights() : Vector. + { + return this.var_399; + } + + public function set omniLights(value:Vector.) : void + { + this.var_399 = value; + } + + public function get skins() : Vector. + { + return this.var_396; + } + + public function set skins(value:Vector.) : void + { + this.var_396 = value; + } + + public function get spotLights() : Vector. + { + return this.var_145; + } + + public function set spotLights(value:Vector.) : void + { + this.var_145 = value; + } + + public function get sprites() : Vector. + { + return this.var_403; + } + + public function set sprites(value:Vector.) : void + { + this.var_403 = value; + } + + public function get vertexBuffers() : Vector. + { + return this.var_277; + } + + public function set vertexBuffers(value:Vector.) : void + { + this.var_277 = value; + } + + public function toString() : String + { + var result:String = "A3D2 ["; + result += "ambientLights = " + this.ambientLights + " "; + result += "animationClips = " + this.animationClips + " "; + result += "animationTracks = " + this.animationTracks + " "; + result += "boxes = " + this.boxes + " "; + result += "cubeMaps = " + this.cubeMaps + " "; + result += "decals = " + this.decals + " "; + result += "directionalLights = " + this.directionalLights + " "; + result += "images = " + this.images + " "; + result += "indexBuffers = " + this.indexBuffers + " "; + result += "joints = " + this.joints + " "; + result += "maps = " + this.maps + " "; + result += "materials = " + this.materials + " "; + result += "meshes = " + this.meshes + " "; + result += "objects = " + this.objects + " "; + result += "omniLights = " + this.omniLights + " "; + result += "skins = " + this.skins + " "; + result += "spotLights = " + this.spotLights + " "; + result += "sprites = " + this.sprites + " "; + result += "vertexBuffers = " + this.vertexBuffers + " "; + return result + "]"; + } + } +} + diff --git a/src/package_67/VectorCodecA3DLevel1.as b/src/package_67/VectorCodecA3DLevel1.as new file mode 100644 index 0000000..cb68226 --- /dev/null +++ b/src/package_67/VectorCodecA3DLevel1.as @@ -0,0 +1,59 @@ +package package_67 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_65.name_210; + + public class VectorCodecA3DLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_210,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = name_210(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_67/VectorCodecA3DLevel2.as b/src/package_67/VectorCodecA3DLevel2.as new file mode 100644 index 0000000..317fc6e --- /dev/null +++ b/src/package_67/VectorCodecA3DLevel2.as @@ -0,0 +1,89 @@ +package package_67 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_65.name_210; + + public class VectorCodecA3DLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_210,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = name_210(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_67/VectorCodecA3DLevel3.as b/src/package_67/VectorCodecA3DLevel3.as new file mode 100644 index 0000000..4a63066 --- /dev/null +++ b/src/package_67/VectorCodecA3DLevel3.as @@ -0,0 +1,119 @@ +package package_67 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_65.name_210; + + public class VectorCodecA3DLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3DLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_210,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = name_210(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_67/name_219.as b/src/package_67/name_219.as new file mode 100644 index 0000000..36df67a --- /dev/null +++ b/src/package_67/name_219.as @@ -0,0 +1,83 @@ +package package_67 +{ + import package_32.name_148; + import package_32.name_149; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_50.A3DBox; + import package_50.A3DObject; + import package_53.A3DImage; + import package_53.A3DMap; + import package_53.A3DMaterial; + import package_54.A3DGeometry; + import package_65.name_210; + + public class name_219 implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_356:name_152; + + private var var_419:name_152; + + private var var_355:name_152; + + private var var_366:name_152; + + private var var_361:name_152; + + private var var_360:name_152; + + public function name_219() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_356 = protocol.name_448(new name_149(new name_148(A3DBox,false),true,1)); + this.var_419 = protocol.name_448(new name_149(new name_148(A3DGeometry,false),true,1)); + this.var_355 = protocol.name_448(new name_149(new name_148(A3DImage,false),true,1)); + this.var_366 = protocol.name_448(new name_149(new name_148(A3DMap,false),true,1)); + this.var_361 = protocol.name_448(new name_149(new name_148(A3DMaterial,false),true,1)); + this.var_360 = protocol.name_448(new name_149(new name_148(A3DObject,false),true,1)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_boxes:Vector. = this.var_356.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.A3D","boxes",value_boxes); + var value_geometries:Vector. = this.var_419.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.A3D","geometries",value_geometries); + var value_images:Vector. = this.var_355.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.A3D","images",value_images); + var value_maps:Vector. = this.var_366.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.A3D","maps",value_maps); + var value_materials:Vector. = this.var_361.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.A3D","materials",value_materials); + var value_objects:Vector. = this.var_360.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.A3D","objects",value_objects); + return new name_210(value_boxes,value_geometries,value_images,value_maps,value_materials,value_objects); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:name_210 = name_210(object); + this.var_356.method_295(protocolBuffer,struct.boxes); + this.var_419.method_295(protocolBuffer,struct.geometries); + this.var_355.method_295(protocolBuffer,struct.images); + this.var_366.method_295(protocolBuffer,struct.maps); + this.var_361.method_295(protocolBuffer,struct.materials); + this.var_360.method_295(protocolBuffer,struct.objects); + } + } +} + diff --git a/src/package_68/VectorCodecA3D2Level1.as b/src/package_68/VectorCodecA3D2Level1.as new file mode 100644 index 0000000..d8b32f9 --- /dev/null +++ b/src/package_68/VectorCodecA3D2Level1.as @@ -0,0 +1,59 @@ +package package_68 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_66.name_211; + + public class VectorCodecA3D2Level1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2Level1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_211,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = name_211(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_68/VectorCodecA3D2Level2.as b/src/package_68/VectorCodecA3D2Level2.as new file mode 100644 index 0000000..4f6e388 --- /dev/null +++ b/src/package_68/VectorCodecA3D2Level2.as @@ -0,0 +1,89 @@ +package package_68 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_66.name_211; + + public class VectorCodecA3D2Level2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2Level2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_211,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = name_211(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_68/VectorCodecA3D2Level3.as b/src/package_68/VectorCodecA3D2Level3.as new file mode 100644 index 0000000..d175e0d --- /dev/null +++ b/src/package_68/VectorCodecA3D2Level3.as @@ -0,0 +1,119 @@ +package package_68 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_66.name_211; + + public class VectorCodecA3D2Level3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecA3D2Level3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_211,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = name_211(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_68/name_218.as b/src/package_68/name_218.as new file mode 100644 index 0000000..1c5b33c --- /dev/null +++ b/src/package_68/name_218.as @@ -0,0 +1,174 @@ +package package_68 +{ + import package_32.name_148; + import package_32.name_149; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_48.A3D2AmbientLight; + import package_48.A3D2Box; + import package_48.A3D2Decal; + import package_48.A3D2DirectionalLight; + import package_48.A3D2Joint; + import package_48.A3D2Mesh; + import package_48.A3D2Object; + import package_48.A3D2OmniLight; + import package_48.A3D2Skin; + import package_48.A3D2SpotLight; + import package_48.A3D2Sprite; + import package_5.name_3; + import package_51.A3D2CubeMap; + import package_51.A3D2Image; + import package_51.A3D2Map; + import package_51.A3D2Material; + import package_52.A3D2IndexBuffer; + import package_52.A3D2VertexBuffer; + import package_55.A3D2AnimationClip; + import package_55.A3D2Track; + import package_66.name_211; + + public class name_218 implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_351:name_152; + + private var var_365:name_152; + + private var var_364:name_152; + + private var var_356:name_152; + + private var var_352:name_152; + + private var var_353:name_152; + + private var var_359:name_152; + + private var var_355:name_152; + + private var var_358:name_152; + + private var var_251:name_152; + + private var var_366:name_152; + + private var var_361:name_152; + + private var var_362:name_152; + + private var var_360:name_152; + + private var var_354:name_152; + + private var var_363:name_152; + + private var var_357:name_152; + + private var var_367:name_152; + + private var var_248:name_152; + + public function name_218() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_351 = protocol.name_448(new name_149(new name_148(A3D2AmbientLight,false),true,1)); + this.var_365 = protocol.name_448(new name_149(new name_148(A3D2AnimationClip,false),true,1)); + this.var_364 = protocol.name_448(new name_149(new name_148(A3D2Track,false),true,1)); + this.var_356 = protocol.name_448(new name_149(new name_148(A3D2Box,false),true,1)); + this.var_352 = protocol.name_448(new name_149(new name_148(A3D2CubeMap,false),true,1)); + this.var_353 = protocol.name_448(new name_149(new name_148(A3D2Decal,false),true,1)); + this.var_359 = protocol.name_448(new name_149(new name_148(A3D2DirectionalLight,false),true,1)); + this.var_355 = protocol.name_448(new name_149(new name_148(A3D2Image,false),true,1)); + this.var_358 = protocol.name_448(new name_149(new name_148(A3D2IndexBuffer,false),true,1)); + this.var_251 = protocol.name_448(new name_149(new name_148(A3D2Joint,false),true,1)); + this.var_366 = protocol.name_448(new name_149(new name_148(A3D2Map,false),true,1)); + this.var_361 = protocol.name_448(new name_149(new name_148(A3D2Material,false),true,1)); + this.var_362 = protocol.name_448(new name_149(new name_148(A3D2Mesh,false),true,1)); + this.var_360 = protocol.name_448(new name_149(new name_148(A3D2Object,false),true,1)); + this.var_354 = protocol.name_448(new name_149(new name_148(A3D2OmniLight,false),true,1)); + this.var_363 = protocol.name_448(new name_149(new name_148(A3D2Skin,false),true,1)); + this.var_357 = protocol.name_448(new name_149(new name_148(A3D2SpotLight,false),true,1)); + this.var_367 = protocol.name_448(new name_149(new name_148(A3D2Sprite,false),true,1)); + this.var_248 = protocol.name_448(new name_149(new name_148(A3D2VertexBuffer,false),true,1)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_ambientLights:Vector. = this.var_351.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","ambientLights",value_ambientLights); + var value_animationClips:Vector. = this.var_365.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","animationClips",value_animationClips); + var value_animationTracks:Vector. = this.var_364.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","animationTracks",value_animationTracks); + var value_boxes:Vector. = this.var_356.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","boxes",value_boxes); + var value_cubeMaps:Vector. = this.var_352.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","cubeMaps",value_cubeMaps); + var value_decals:Vector. = this.var_353.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","decals",value_decals); + var value_directionalLights:Vector. = this.var_359.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","directionalLights",value_directionalLights); + var value_images:Vector. = this.var_355.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","images",value_images); + var value_indexBuffers:Vector. = this.var_358.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","indexBuffers",value_indexBuffers); + var value_joints:Vector. = this.var_251.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","joints",value_joints); + var value_maps:Vector. = this.var_366.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","maps",value_maps); + var value_materials:Vector. = this.var_361.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","materials",value_materials); + var value_meshes:Vector. = this.var_362.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","meshes",value_meshes); + var value_objects:Vector. = this.var_360.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","objects",value_objects); + var value_omniLights:Vector. = this.var_354.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","omniLights",value_omniLights); + var value_skins:Vector. = this.var_363.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","skins",value_skins); + var value_spotLights:Vector. = this.var_357.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","spotLights",value_spotLights); + var value_sprites:Vector. = this.var_367.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","sprites",value_sprites); + var value_vertexBuffers:Vector. = this.var_248.method_296(protocolBuffer) as Vector.; + log.log("codec","struct %1 field %2 value %3","versions.version2.a3d.A3D2","vertexBuffers",value_vertexBuffers); + return new name_211(value_ambientLights,value_animationClips,value_animationTracks,value_boxes,value_cubeMaps,value_decals,value_directionalLights,value_images,value_indexBuffers,value_joints,value_maps,value_materials,value_meshes,value_objects,value_omniLights,value_skins,value_spotLights,value_sprites,value_vertexBuffers); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:name_211 = name_211(object); + this.var_351.method_295(protocolBuffer,struct.ambientLights); + this.var_365.method_295(protocolBuffer,struct.animationClips); + this.var_364.method_295(protocolBuffer,struct.animationTracks); + this.var_356.method_295(protocolBuffer,struct.boxes); + this.var_352.method_295(protocolBuffer,struct.cubeMaps); + this.var_353.method_295(protocolBuffer,struct.decals); + this.var_359.method_295(protocolBuffer,struct.directionalLights); + this.var_355.method_295(protocolBuffer,struct.images); + this.var_358.method_295(protocolBuffer,struct.indexBuffers); + this.var_251.method_295(protocolBuffer,struct.joints); + this.var_366.method_295(protocolBuffer,struct.maps); + this.var_361.method_295(protocolBuffer,struct.materials); + this.var_362.method_295(protocolBuffer,struct.meshes); + this.var_360.method_295(protocolBuffer,struct.objects); + this.var_354.method_295(protocolBuffer,struct.omniLights); + this.var_363.method_295(protocolBuffer,struct.skins); + this.var_357.method_295(protocolBuffer,struct.spotLights); + this.var_367.method_295(protocolBuffer,struct.sprites); + this.var_248.method_295(protocolBuffer,struct.vertexBuffers); + } + } +} + diff --git a/src/package_69/VectorCodecParentIdLevel1.as b/src/package_69/VectorCodecParentIdLevel1.as new file mode 100644 index 0000000..e4b9331 --- /dev/null +++ b/src/package_69/VectorCodecParentIdLevel1.as @@ -0,0 +1,59 @@ +package package_69 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_64.name_212; + + public class VectorCodecParentIdLevel1 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecParentIdLevel1(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_212,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length:int = name_443.name_445(protocolBuffer); + var result:Vector. = new Vector.(length,true); + for(var i:int = 0; i < length; i++) + { + result[i] = name_212(this.elementCodec.method_296(protocolBuffer)); + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector. = Vector.(object); + var length:int = int(data.length); + name_443.name_446(protocolBuffer,length); + for(var i:int = 0; i < length; i++) + { + this.elementCodec.method_295(protocolBuffer,data[i]); + } + } + } +} + diff --git a/src/package_69/VectorCodecParentIdLevel2.as b/src/package_69/VectorCodecParentIdLevel2.as new file mode 100644 index 0000000..ffc5fed --- /dev/null +++ b/src/package_69/VectorCodecParentIdLevel2.as @@ -0,0 +1,89 @@ +package package_69 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_64.name_212; + + public class VectorCodecParentIdLevel2 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecParentIdLevel2(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_212,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector. = null; + var i2:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.> = new Vector.>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; i2++) + { + items2[i2] = name_212(this.elementCodec.method_296(protocolBuffer)); + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector. = null; + var length2:int = 0; + var i2:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.> = Vector.>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + this.elementCodec.method_295(protocolBuffer,items2[i2]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_69/VectorCodecParentIdLevel3.as b/src/package_69/VectorCodecParentIdLevel3.as new file mode 100644 index 0000000..d053405 --- /dev/null +++ b/src/package_69/VectorCodecParentIdLevel3.as @@ -0,0 +1,119 @@ +package package_69 +{ + import package_32.name_148; + import package_34.name_150; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_38.name_443; + import package_64.name_212; + + public class VectorCodecParentIdLevel3 implements name_152 + { + private var elementCodec:name_152; + + private var optionalElement:Boolean; + + public function VectorCodecParentIdLevel3(optionalElement:Boolean) + { + super(); + this.optionalElement = optionalElement; + } + + public function init(protocol:name_163) : void + { + this.elementCodec = protocol.name_448(new name_148(name_212,false)); + if(this.optionalElement) + { + this.elementCodec = new name_150(this.elementCodec); + } + } + + public function method_296(protocolBuffer:name_442) : Object + { + var length2:int = 0; + var items2:Vector.> = null; + var i2:int = 0; + var length3:int = 0; + var items3:Vector. = null; + var i3:int = 0; + var length1:int = name_443.name_445(protocolBuffer); + var result:Vector.>> = new Vector.>>(length1,true); + for(var i1:int = 0; i1 < length1; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length2 = name_443.name_445(protocolBuffer); + items2 = new Vector.>(length2,true); + result[i1] = items2; + for(i2 = 0; i2 < length2; ) + { + if(!protocolBuffer.optionalMap.name_447()) + { + length3 = name_443.name_445(protocolBuffer); + items3 = new Vector.(length3,true); + items2[i2] = items3; + for(i3 = 0; i3 < length3; i3++) + { + items3[i3] = name_212(this.elementCodec.method_296(protocolBuffer)); + } + } + i2++; + } + } + i1++; + } + return result; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + var items2:Vector.> = null; + var length2:int = 0; + var i2:int = 0; + var items3:Vector. = null; + var length3:int = 0; + var i3:int = 0; + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var data:Vector.>> = Vector.>>(object); + var length1:int = int(data.length); + name_443.name_446(protocolBuffer,length1); + for(var i1:int = 0; i1 < length1; i1++) + { + items2 = data[i1]; + if(items2 != null) + { + protocolBuffer.optionalMap.name_444(false); + length2 = int(items2.length); + name_443.name_446(protocolBuffer,length2); + for(i2 = 0; i2 < length2; i2++) + { + items3 = items2[i1]; + if(items3 != null) + { + protocolBuffer.optionalMap.name_444(false); + length3 = int(items3.length); + name_443.name_446(protocolBuffer,length3); + for(i3 = 0; i3 < length3; i3++) + { + this.elementCodec.method_295(protocolBuffer,items3[i3]); + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + else + { + protocolBuffer.optionalMap.name_444(true); + } + } + } + } +} + diff --git a/src/package_69/name_215.as b/src/package_69/name_215.as new file mode 100644 index 0000000..a595e58 --- /dev/null +++ b/src/package_69/name_215.as @@ -0,0 +1,46 @@ +package package_69 +{ + import package_32.name_148; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + import package_39.name_160; + import package_5.name_3; + import package_64.name_212; + + public class name_215 implements name_152 + { + public static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var var_252:name_152; + + public function name_215() + { + super(); + } + + public function init(protocol:name_163) : void + { + this.var_252 = protocol.name_448(new name_148(uint,false)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + log = name_160(name_3.name_8().name_30(name_160)); + var value_id:uint = uint(this.var_252.method_296(protocolBuffer) as uint); + log.log("codec","struct %1 field %2 value %3","versions.version1.a3d.id.ParentId","id",value_id); + return new name_212(value_id); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + if(object == null) + { + throw new Error("Object is null. Use @ProtocolOptional annotation."); + } + var struct:name_212 = name_212(object); + this.var_252.method_295(protocolBuffer,struct.id); + } + } +} + diff --git a/src/package_7/class_27.as b/src/package_7/class_27.as new file mode 100644 index 0000000..58c38b7 --- /dev/null +++ b/src/package_7/class_27.as @@ -0,0 +1,19 @@ +package package_7 +{ + import flash.display.BitmapData; + import flash.utils.ByteArray; + import package_28.name_241; + import package_28.name_93; + + public interface class_27 + { + function name_254(param1:ByteArray) : name_241; + + function method_435(param1:ByteArray) : void; + + function name_320(param1:BitmapData) : name_93; + + function method_434(param1:BitmapData) : void; + } +} + diff --git a/src/package_7/name_14.as b/src/package_7/name_14.as new file mode 100644 index 0000000..1ee8279 --- /dev/null +++ b/src/package_7/name_14.as @@ -0,0 +1,92 @@ +package package_7 +{ + import flash.display.DisplayObjectContainer; + import package_10.class_1; + import package_10.name_17; + import package_10.name_54; + import package_13.name_18; + import package_13.name_58; + import package_13.name_70; + import package_15.name_55; + import package_18.name_44; + import package_19.name_53; + import package_2.A3DMapComponent; + import package_9.name_20; + + public class name_14 extends class_1 + { + private var gameKernel:name_17; + + private var config:name_18; + + private var container:DisplayObjectContainer; + + private var preloader:Preloader; + + public function name_14(param1:name_17, param2:name_18, param3:DisplayObjectContainer, param4:Preloader) + { + super(name_17.EVENT_SYSTEM_PRIORITY + 1); + this.gameKernel = param1; + this.config = param2; + this.preloader = param4; + this.container = param3; + } + + override public function run() : void + { + var _loc1_:name_44 = this.gameKernel.name_5(); + var _loc2_:name_20 = new name_20(_loc1_.name_27(),this.gameKernel.name_66()); + _loc1_.name_63(_loc2_); + _loc2_.name_75(0,0,1000); + _loc2_.name_76(0,2000,0); + this.container.addChild(_loc1_.name_71()); + var _loc3_:name_54 = this.method_23(); + this.gameKernel.name_73(_loc3_); + this.preloader.name_69(0.75); + var_4.addTask(new name_43(name_17.INPUT_SYSTEM_PRIORITY + 1,this.config,this.gameKernel,_loc2_,this.preloader)); + var_4.killTask(this); + } + + private function method_23() : name_54 + { + var _loc2_:name_55 = null; + var _loc6_:name_58 = null; + var _loc7_:String = null; + var _loc3_:name_70 = this.config.name_68.name_72("skybox"); + if(_loc3_ != null) + { + _loc2_ = new name_55(); + _loc6_ = _loc3_.name_62(this.config.name_67()); + for each(_loc7_ in [name_53.BACK,name_53.BOTTOM,name_53.FRONT,name_53.LEFT,name_53.RIGHT,name_53.TOP]) + { + _loc2_.name_59(_loc7_,_loc6_.name_65(_loc7_)); + } + } + var _loc4_:name_54 = new name_54(name_54.name_74()); + var _loc5_:A3DMapComponent = new A3DMapComponent(this.config.mapData,_loc2_,1000000,new MapListener(this.gameKernel.name_61())); + _loc4_.name_60(_loc5_); + _loc4_.name_64(); + return _loc4_; + } + } +} + +import package_10.name_57; +import package_2.class_2; +import package_20.name_56; + +class MapListener implements class_2 +{ + private var eventSystem:name_56; + + public function MapListener(param1:name_56) + { + super(); + this.eventSystem = param1; + } + + public function onA3DMapComplete() : void + { + this.eventSystem.dispatchEvent(name_57.MAP_COMPLETE,null); + } +} diff --git a/src/package_7/name_238.as b/src/package_7/name_238.as new file mode 100644 index 0000000..9374812 --- /dev/null +++ b/src/package_7/name_238.as @@ -0,0 +1,75 @@ +package package_7 +{ + import package_40.name_564; + + public class name_238 + { + public static const defaultTankParams:name_238 = method_472(); + + public var x:Number = 0; + + public var y:Number = 0; + + public var z:Number = 0; + + public var rotationX:Number = 0; + + public var rotationY:Number = 0; + + public var rotationZ:Number = 0; + + public var hull:String = ""; + + public var turret:String = ""; + + public var coloring:int = 0; + + public var isUser:Boolean = false; + + public function name_238() + { + super(); + } + + private static function method_472() : name_238 + { + var _loc1_:name_238 = new name_238(); + _loc1_.y = 1000; + _loc1_.z = 1000; + _loc1_.isUser = true; + _loc1_.hull = "Wasp M1"; + _loc1_.turret = "Smoky M1"; + return _loc1_; + } + + public static function name_317(param1:XML, param2:Boolean = false) : name_238 + { + var _loc3_:name_238 = new name_238(); + _loc3_.isUser = param2; + var _loc4_:Array = name_564.name_565(XMLList(param1.xyz)[0]); + if(_loc4_.length == 3) + { + _loc3_.x = Number(_loc4_[0]); + _loc3_.y = Number(_loc4_[1]); + _loc3_.z = Number(_loc4_[2]); + } + _loc4_ = name_564.name_565(XMLList(param1.rotation)[0]); + if(_loc4_.length == 3) + { + _loc3_.rotationX = Number(_loc4_[0]); + _loc3_.rotationY = Number(_loc4_[1]); + _loc3_.rotationZ = Number(_loc4_[2]); + } + _loc3_.hull = param1.hull; + _loc3_.turret = param1.turret; + _loc3_.coloring = int(param1.coloring); + return _loc3_; + } + + public static function name_322(param1:Array) : name_238 + { + return new name_238(); + } + } +} + diff --git a/src/package_7/name_289.as b/src/package_7/name_289.as new file mode 100644 index 0000000..3c342f0 --- /dev/null +++ b/src/package_7/name_289.as @@ -0,0 +1,142 @@ +package package_7 +{ + import flash.display.BitmapData; + import flash.utils.ByteArray; + import flash.utils.Dictionary; + import package_10.name_17; + import package_117.name_542; + import package_28.name_241; + import package_28.name_93; + import package_79.name_326; + + public class name_289 implements class_27 + { + public var gameKernel:name_17; + + private var var_455:name_326; + + private var var_453:name_542; + + private var var_454:name_326; + + private var var_457:Dictionary; + + private var var_456:Dictionary; + + public function name_289(param1:name_17) + { + super(); + this.gameKernel = param1; + this.var_457 = new Dictionary(); + this.var_456 = new Dictionary(); + } + + public function name_254(param1:ByteArray) : name_241 + { + var _loc2_:name_241 = this.method_437(param1,true); + if(!_loc2_.isUploaded) + { + this.gameKernel.name_5().method_29(_loc2_); + } + return _loc2_; + } + + public function method_435(param1:ByteArray) : void + { + var _loc2_:name_241 = this.method_437(param1,false); + if(_loc2_ != null) + { + this.gameKernel.name_5().method_28(_loc2_); + } + } + + public function name_320(param1:BitmapData) : name_93 + { + var _loc2_:name_93 = this.method_436(param1,true); + this.gameKernel.name_5().method_29(_loc2_); + return _loc2_; + } + + public function method_434(param1:BitmapData) : void + { + var _loc2_:name_93 = this.method_436(param1,false); + if(_loc2_ != null) + { + this.gameKernel.name_5().method_28(_loc2_); + } + } + + private function method_437(param1:ByteArray, param2:Boolean) : name_241 + { + var _loc3_:name_241 = this.var_457[param1]; + if(_loc3_ == null && param2) + { + _loc3_ = new name_241(param1); + this.var_457[param1] = _loc3_; + } + return _loc3_; + } + + private function method_436(param1:BitmapData, param2:Boolean) : name_93 + { + var _loc3_:name_93 = this.var_456[param1]; + if(_loc3_ == null && param2) + { + _loc3_ = new name_93(param1); + this.var_456[param1] = _loc3_; + } + return _loc3_; + } + + public function clear() : void + { + this.gameKernel = null; + this.var_455 = null; + this.var_453 = null; + this.var_454 = null; + } + + public function method_440() : name_326 + { + if(this.var_455 == null) + { + throw new Error("Generic target evaluator is not set"); + } + return this.var_455; + } + + public function method_439(param1:name_326) : void + { + this.var_455 = param1; + } + + public function method_443() : name_542 + { + if(this.var_453 == null) + { + throw new Error("Railgun target evaluator is not set"); + } + return this.var_453; + } + + public function method_438(param1:name_542) : void + { + this.var_453 = param1; + } + + public function method_441() : name_326 + { + if(this.var_454 == null) + { + throw new Error("Flame/freeze target evaluator is not set"); + } + return this.var_454; + } + + public function method_442(param1:name_326) : void + { + this.var_454 = param1; + } + } +} + diff --git a/src/package_7/name_43.as b/src/package_7/name_43.as new file mode 100644 index 0000000..d7098fb --- /dev/null +++ b/src/package_7/name_43.as @@ -0,0 +1,1431 @@ +package package_7 +{ + import alternativa.engine3d.alternativa3d; + import alternativa.tanks.game.usertitle.component.name_245; + import flash.display.BitmapData; + import flash.geom.ColorTransform; + import flash.geom.Vector3D; + import flash.ui.Keyboard; + import package_1.name_1; + import package_1.name_12; + import package_10.class_1; + import package_10.name_17; + import package_10.name_54; + import package_10.name_57; + import package_100.name_301; + import package_13.name_18; + import package_15.name_275; + import package_15.name_55; + import package_18.name_102; + import package_18.name_44; + import package_20.class_11; + import package_20.name_56; + import package_21.name_77; + import package_21.name_78; + import package_22.name_83; + import package_22.name_87; + import package_25.name_250; + import package_28.name_129; + import package_28.name_241; + import package_28.name_259; + import package_28.name_93; + import package_29.MouseEvent3D; + import package_3.TankMaterial2; + import package_3.name_29; + import package_3.name_33; + import package_39.name_160; + import package_4.class_4; + import package_4.class_5; + import package_40.name_251; + import package_46.name_194; + import package_47.name_193; + import package_5.name_3; + import package_6.name_4; + import package_71.name_234; + import package_71.name_249; + import package_71.name_252; + import package_71.name_277; + import package_71.name_278; + import package_71.name_311; + import package_71.name_315; + import package_71.name_316; + import package_71.name_318; + import package_71.name_333; + import package_72.name_239; + import package_72.name_242; + import package_72.name_255; + import package_72.name_260; + import package_72.name_264; + import package_72.name_295; + import package_73.name_293; + import package_74.class_14; + import package_74.name_240; + import package_74.name_263; + import package_74.name_283; + import package_74.name_286; + import package_74.name_307; + import package_74.name_327; + import package_75.name_236; + import package_75.name_309; + import package_76.name_256; + import package_77.name_237; + import package_78.name_243; + import package_78.name_258; + import package_79.name_261; + import package_79.name_280; + import package_79.name_282; + import package_79.name_291; + import package_79.name_326; + import package_80.name_274; + import package_80.name_287; + import package_80.name_306; + import package_80.name_312; + import package_81.name_262; + import package_81.name_265; + import package_82.name_247; + import package_83.name_269; + import package_83.name_270; + import package_84.name_253; + import package_85.name_284; + import package_85.name_314; + import package_85.name_319; + import package_86.name_257; + import package_87.name_267; + import package_88.name_268; + import package_89.name_266; + import package_9.name_20; + import package_9.name_298; + import package_9.name_299; + import package_90.name_273; + import package_91.name_296; + import package_91.name_349; + import package_92.name_271; + import package_93.name_294; + import package_94.name_276; + import package_95.name_281; + import package_96.name_279; + import package_97.name_292; + import package_98.name_290; + import package_99.name_285; + + use namespace alternativa3d; + + public class name_43 extends class_1 implements class_11 + { + private static const DEAD_TEXTURE_ID:String = "dead"; + + private static var conShockSize:name_1 = new name_1("shock_size",1200,0,2000); + + private static var conShockSizeGrow:name_1 = new name_1("shock_size_grow",200,0,2000); + + private static var conPysicsDebug:name_12 = new name_12("physics_debug",0,0,1); + + private static var conMaxSpeed:name_1 = new name_1("max_speed",800,0,2000); + + private static var log:name_160 = name_160(name_3.name_8().name_30(name_160)); + + private var config:name_18; + + private var gameKernel:name_17; + + private var var_82:int = 0; + + private var var_79:Vector. = new Vector.(); + + private var tanks:Vector.; + + private var var_62:int; + + private var var_74:name_250; + + private var var_77:name_250; + + private var var_76:name_250; + + private var var_73:BitmapData; + + private var var_67:name_299; + + private var var_69:name_298; + + private var freeCameraController:name_20; + + private var var_68:name_102; + + private var var_81:name_290; + + private var var_75:name_285; + + private var var_70:name_268; + + private var var_63:int; + + private var var_66:int; + + private var var_78:int; + + private var var_61:TextureResourceCache; + + private var var_64:MultiBitmapTextureResourceCache; + + private var var_65:name_289; + + private var var_71:name_294; + + private var preloader:Preloader; + + private var var_72:name_54; + + private var var_80:name_293 = new name_293(); + + public function name_43(param1:int, param2:name_18, param3:name_17, param4:name_20, param5:Preloader) + { + super(param1); + this.preloader = param5; + this.config = param2; + this.gameKernel = param3; + this.freeCameraController = param4; + this.tanks = new Vector.(); + this.var_62 = -1; + this.var_73 = new BitmapData(1,1); + this.var_73.setPixel(0,0,11141120); + this.var_68 = param4; + this.var_61 = new TextureResourceCache(param2.var_37); + this.var_64 = new MultiBitmapTextureResourceCache(param2.var_37); + this.var_65 = new name_289(param3); + TanksTestingTool.testTask = this; + } + + override public function start() : void + { + var _loc1_:name_87 = name_87(var_4.getTaskInterface(name_87)); + _loc1_.name_94(name_83.KEY_DOWN,this.method_15); + var _loc2_:name_56 = name_56(var_4.getTaskInterface(name_56)); + _loc2_.addEventListener(name_253.TANK_CLICK,this); + this.var_67 = new name_299(this.gameKernel.name_5().name_27(),this.gameKernel.method_112().name_246().collisionDetector,name_257.STATIC,_loc1_); + this.var_69 = new name_298(this.gameKernel.name_5().name_27(),this.gameKernel.method_112().name_246().collisionDetector,name_257.STATIC,_loc1_); + this.var_81 = new name_290(this.gameKernel.name_5()); + this.var_75 = new name_285(); + this.gameKernel.stage.addChild(this.var_75); + var _loc3_:name_4 = name_4(name_3.name_8().name_30(name_4)); + _loc3_.name_45("addtank",this.method_166); + var _loc4_:XMLList = this.config.xml.elements("console-commands"); + if(_loc4_.length() > 0) + { + this.method_159(_loc3_,this.config.xml.elements("console-commands")[0].toString()); + } + _loc3_.name_45("lstanks",this.method_157); + this.var_71 = new name_294(name_17.RENDER_SYSTEM_PRIORITY + 1,10,this.gameKernel.stage,0,0); + this.gameKernel.addTask(this.var_71); + this.gameKernel.name_61().addEventListener(name_57.MAP_COMPLETE,this); + } + + private function get activeTank() : name_54 + { + return this.var_62 >= 0 ? this.tanks[this.var_62] : null; + } + + private function method_147(param1:int) : void + { + if(param1 >= 0 && param1 < this.tanks.length) + { + if(this.activeTank != null) + { + this.activeTank.dispatchEvent(name_252.SET_DISABLED_STATE); + } + this.var_62 = param1; + this.activeTank.dispatchEvent(name_252.SET_ACTIVE_STATE); + if(this.var_68 == this.var_67) + { + this.var_67.method_115(this.activeTank); + } + if(this.var_68 == this.var_69) + { + this.var_69.method_115(this.activeTank); + } + } + } + + public function include() : void + { + if(this.tanks.length > 0) + { + this.method_147((this.var_62 + 1) % this.tanks.length); + } + if(this.var_68 != this.var_67) + { + this.name_63(this.var_67); + } + } + + private function method_173() : void + { + var _loc1_:int = 0; + if(this.tanks.length > 0) + { + _loc1_ = this.var_62 - 1; + if(_loc1_ < 0) + { + _loc1_ = this.tanks.length - 1; + } + this.method_147(_loc1_); + } + } + + private function method_159(param1:name_4, param2:String) : void + { + var _loc4_:String = null; + var _loc3_:Array = param2.split(/\r*\n/); + for each(_loc4_ in _loc3_) + { + param1.method_139(_loc4_); + } + } + + private function method_166(param1:name_4, param2:Array) : void + { + this.method_149(name_238.name_322(param2)); + } + + private function method_15(param1:name_83, param2:uint) : void + { + var _loc3_:name_44 = null; + var _loc4_:int = 0; + switch(param2) + { + case Keyboard.Q: + _loc3_ = this.gameKernel.name_5(); + _loc4_ = _loc3_.method_72(); + _loc3_.method_54(_loc4_ == 0 ? 4 : 0); + break; + case Keyboard.M: + case Keyboard.BACKSLASH: + this.method_165(); + break; + case Keyboard.N: + if(this.var_68 == this.freeCameraController) + { + name_20.targeted = !name_20.targeted; + break; + } + name_20.targeted = true; + this.name_63(this.freeCameraController); + break; + case Keyboard.ENTER: + this.include(); + } + } + + private function method_188() : void + { + var _loc1_:name_237 = null; + var _loc2_:name_271 = null; + if(this.activeTank != null) + { + _loc1_ = name_237(this.activeTank.getComponent(name_237)); + _loc2_ = _loc1_.body; + _loc2_.state.velocity.z = 1000; + } + } + + private function method_182() : void + { + var _loc2_:name_245 = null; + var _loc1_:name_54 = this.activeTank; + if(_loc1_ != null) + { + _loc2_ = name_245(_loc1_.getComponent(name_245)); + if(_loc2_.name_328()) + { + _loc2_.removeFromScene(); + } + else + { + _loc2_.addToScene(); + } + } + } + + private function method_184() : void + { + this.var_71.name_305("Message: " + Math.random(),name_275.random()); + } + + private function method_186() : Boolean + { + return this.gameKernel.name_66().name_346(Keyboard.CONTROL); + } + + private function method_177(param1:int, param2:Boolean) : void + { + var _loc3_:name_245 = null; + if(this.activeTank != null) + { + _loc3_ = name_245(this.activeTank.getComponentStrict(name_245)); + if(param2) + { + _loc3_.name_339(param1,10000); + } + else + { + _loc3_.name_330(param1); + } + } + } + + private function method_181() : void + { + var _loc3_:name_129 = null; + var _loc4_:Vector. = null; + var _loc5_:int = 0; + var _loc8_:class_5 = null; + var _loc1_:Vector. = this.var_64.getFrames("thunder/explosion"); + var _loc2_:name_44 = this.gameKernel.name_5(); + for each(_loc3_ in _loc1_) + { + _loc2_.method_29(_loc3_); + } + _loc4_ = new Vector.(_loc1_.length); + _loc5_ = 0; + while(_loc5_ < _loc1_.length) + { + _loc8_ = new class_5(_loc1_[_loc5_]); + _loc8_.var_21 = true; + _loc4_[_loc5_] = _loc8_; + _loc5_++; + } + var _loc6_:name_239 = name_239(this.gameKernel.method_108().name_110(name_239)); + var _loc7_:name_194 = new name_194(Math.random() * 3000,Math.random() * 3000,1000 + Math.random() * 3000); + _loc6_.init(300,300,_loc4_,_loc7_,0,0,30,true); + _loc2_.method_37(_loc6_); + } + + private function method_178() : void + { + var _loc1_:name_129 = this.var_61.getResource("smoky/diffuse"); + var _loc2_:name_129 = this.var_61.getResource("smoky/opacity"); + var _loc3_:name_44 = this.gameKernel.name_5(); + _loc3_.method_29(_loc1_); + _loc3_.method_29(_loc2_); + var _loc4_:name_266 = name_266(this.gameKernel.method_108().name_110(name_266)); + _loc4_.init(new DummyTurret(),_loc1_,_loc2_); + _loc3_.method_37(_loc4_); + } + + private function method_179() : void + { + --this.var_66; + if(this.var_66 < 0) + { + this.var_66 += this.config.tankParts.name_302; + } + this.method_150(); + } + + private function method_172() : void + { + this.var_66 = (this.var_66 + 1) % this.config.tankParts.name_302; + this.method_150(); + } + + private function method_170() : void + { + --this.var_63; + if(this.var_63 < 0) + { + this.var_63 += this.config.tankParts.name_300; + } + this.method_150(); + } + + public function method_171() : void + { + this.var_63 = (this.var_63 + 1) % this.config.tankParts.name_300; + this.method_150(); + } + + private function method_150() : void + { + var _loc2_:name_238 = null; + var _loc3_:name_54 = null; + var _loc4_:name_236 = null; + var _loc5_:name_236 = null; + var _loc6_:name_194 = null; + var _loc1_:name_54 = this.activeTank; + if(_loc1_ != null) + { + this.method_161(); + _loc2_ = new name_238(); + _loc2_.hull = this.config.tankParts.name_351(this.var_63).id; + _loc2_.turret = this.config.tankParts.name_336(this.var_66).id; + _loc2_.coloring = this.var_78; + _loc3_ = this.method_149(_loc2_); + this.method_147(this.tanks.length - 1); + _loc4_ = name_236(_loc1_.getComponentStrict(name_236)); + _loc5_ = name_236(_loc3_.getComponentStrict(name_236)); + _loc5_.getBody().name_352(_loc4_.getBody().state.orientation); + _loc6_ = _loc4_.getBody().state.position.clone(); + _loc6_.z += 200; + _loc5_.getBody().name_201(_loc6_); + } + } + + override public function run() : void + { + } + + private function method_174() : void + { + var _loc1_:name_193 = null; + if(this.activeTank != null) + { + if(this.var_70 == null) + { + this.var_70 = name_268(this.gameKernel.method_108().name_110(name_268)); + _loc1_ = name_193(this.activeTank.getComponentStrict(name_193)); + this.var_70.init(5000,_loc1_.name_329(),this.method_158); + this.gameKernel.name_5().method_37(this.var_70); + } + this.var_70.name_305("Message " + Math.random(),65280); + } + } + + public function method_146(param1:String, param2:*) : void + { + var _loc3_:int = 0; + var _loc4_:Vector. = null; + var _loc5_:Vector. = null; + var _loc6_:name_238 = null; + var _loc7_:XMLList = null; + var _loc8_:int = 0; + var _loc9_:int = 0; + var _loc10_:name_54 = null; + var _loc11_:name_259 = null; + var _loc12_:name_241 = null; + switch(param1) + { + case name_253.TANK_CLICK: + _loc3_ = int(this.tanks.indexOf(name_54(param2))); + if(_loc3_ >= 0) + { + this.method_147(_loc3_); + } + break; + case name_57.MAP_COMPLETE: + this.name_63(this.var_67); + if(this.config.xml.user.length() > 0) + { + _loc6_ = name_238.name_317(this.config.xml.user[0],true); + this.var_78 = _loc6_.coloring; + this.var_63 = this.config.tankParts.name_350(_loc6_.hull); + this.var_66 = this.config.tankParts.name_338(_loc6_.turret); + if(this.var_63 < 0) + { + throw new ArgumentError("bad hull: " + _loc6_.hull); + } + if(this.var_66 < 0) + { + throw new ArgumentError("bad turret: " + _loc6_.turret); + } + this.method_149(_loc6_); + } + else + { + this.method_149(name_238.defaultTankParams); + } + this.method_147(this.tanks.length - 1); + if(this.config.xml.tanks.length() > 0) + { + _loc7_ = this.config.xml.tanks[0].tank; + _loc8_ = 0; + _loc9_ = int(_loc7_.length()); + while(_loc8_ < _loc9_) + { + _loc10_ = this.method_149(name_238.name_317(_loc7_[_loc8_])); + _loc10_.dispatchEvent(name_252.SET_ACTIVE_STATE); + _loc10_.dispatchEvent(name_252.SET_DISABLED_STATE); + _loc8_++; + } + } + _loc4_ = this.gameKernel.name_5().method_62().getResources(true,name_259); + if(_loc4_.length > 0) + { + _loc11_ = _loc4_[0] as name_259; + _loc11_.left = this.config.var_37.name_244("left_01") as BitmapData; + _loc11_.right = this.config.var_37.name_244("right_01") as BitmapData; + _loc11_.back = this.config.var_37.name_244("back_01") as BitmapData; + _loc11_.front = this.config.var_37.name_244("front_01") as BitmapData; + _loc11_.top = this.config.var_37.name_244("top_01") as BitmapData; + _loc11_.bottom = this.config.var_37.name_244("bottom_01") as BitmapData; + this.gameKernel.name_5().method_29(_loc11_); + } + this.method_156(); + this.config.clear(); + _loc5_ = this.gameKernel.name_5().method_62().getResources(true,name_241); + for each(_loc12_ in _loc5_) + { + _loc12_.data.clear(); + _loc12_.data = null; + } + this.preloader.name_69(1); + } + } + + private function onMouseDown(param1:MouseEvent3D) : void + { + var _loc2_:Vector3D = name_78(param1.target).localToGlobal(new Vector3D(param1.localX,param1.localY,param1.localZ)); + log.log("mouse","click pos %1 %2 %3",_loc2_.x.toFixed(),_loc2_.y.toFixed(),_loc2_.z.toFixed()); + } + + private function method_183() : void + { + } + + private function method_187() : void + { + this.gameKernel.name_73(this.var_72); + this.tanks.push(this.var_72); + this.method_147(this.tanks.length - 1); + } + + private function method_149(param1:name_238) : name_54 + { + var _loc2_:name_54 = this.method_155(param1); + this.gameKernel.name_73(_loc2_); + this.tanks.push(_loc2_); + return _loc2_; + } + + private function method_155(param1:name_238) : name_54 + { + var _loc2_:name_249 = this.config.tankParts.name_353(param1.hull); + var _loc3_:name_234 = this.config.tankParts.name_331(param1.turret); + var _loc4_:BitmapData = this.config.tankParts.name_347(param1.coloring); + var _loc5_:BitmapData = this.config.var_37.name_244(DEAD_TEXTURE_ID) as BitmapData; + var _loc6_:name_54 = new name_54(name_54.name_74()); + var _loc9_:name_237 = new name_237(_loc2_,1000,80000); + var _loc10_:int = conMaxSpeed.value; + _loc9_.name_321(_loc10_,true); + _loc9_.name_335(2,true); + _loc9_.name_201(new name_194(param1.x,param1.y,param1.z)); + _loc9_.body.name_332(param1.rotationX / 180 * Math.PI,param1.rotationY / 180 * Math.PI,param1.rotationZ / 180 * Math.PI); + var _loc12_:name_253 = new name_253(_loc2_); + _loc12_.name_343(this.method_152(_loc2_,_loc4_,_loc5_,6,6)); + _loc12_.name_342(this.method_163(_loc2_)); + _loc12_.name_344(this.method_153(_loc2_)); + _loc6_.name_60(_loc9_); + _loc6_.name_60(_loc12_); + _loc6_.name_60(new name_316(new name_312(this.config.soundsLibrary))); + var _loc13_:name_278 = new name_278(); + _loc6_.name_60(_loc13_); + _loc6_.name_60(new name_314()); + _loc6_.name_60(new name_309()); + var _loc14_:name_276 = new name_276(_loc3_,1,2); + var _loc15_:name_193 = new name_193(_loc3_); + _loc15_.name_348(this.method_152(_loc3_,_loc4_,_loc5_,3,3)); + _loc6_.name_60(_loc14_); + _loc6_.name_60(_loc15_); + _loc6_.name_60(new name_311(new name_306(this.config.soundsLibrary))); + if(_loc3_.id.indexOf("Smoky") >= 0) + { + this.method_169(_loc6_); + } + else if(_loc3_.id.indexOf("Thunder") >= 0) + { + this.method_164(_loc6_); + } + else + { + this.method_154(_loc6_); + } + _loc6_.name_60(new name_315()); + if(conPysicsDebug.value == 1) + { + _loc6_.name_60(new name_319()); + } + if(param1.isUser) + { + } + var _loc16_:Vector. = this.method_148(this.var_64.getFrames("tank_explosion/shock_wave")); + var _loc17_:Vector. = this.method_148(this.var_64.getFrames("tank_explosion/explosion")); + var _loc18_:Vector. = this.method_148(this.var_64.getFrames("tank_explosion/smoke")); + var _loc19_:name_284 = new name_284(1200,200,_loc16_,_loc17_,_loc18_); + _loc6_.name_60(_loc19_); + _loc6_.name_64(); + return _loc6_; + } + + private function method_185() : void + { + var _loc1_:name_237 = name_237(this.tanks[this.var_62].getComponent(name_237)); + var _loc2_:name_194 = new name_194(); + _loc1_.name_334.name_341(_loc2_); + _loc2_.x = _loc2_.x * 180 / Math.PI; + _loc2_.y = _loc2_.y * 180 / Math.PI; + _loc2_.z = _loc2_.z * 180 / Math.PI; + log.log("tank","position %1 %2 %3",_loc1_.name_288.x.toFixed(),_loc1_.name_288.y.toFixed(),_loc1_.name_288.z.toFixed()); + log.log("tank","rotation %1 %2 %3",_loc2_.x.toFixed(),_loc2_.y.toFixed(),_loc2_.z.toFixed()); + } + + private function method_156() : void + { + var _loc4_:XMLList = null; + var _loc5_:int = 0; + var _loc6_:int = 0; + var _loc7_:XML = null; + var _loc8_:name_255 = null; + var _loc9_:Array = null; + var _loc1_:name_129 = this.var_61.getResource("fire/diffuse"); + var _loc2_:name_129 = this.var_61.getResource("fire/opacity"); + var _loc3_:name_44 = this.gameKernel.name_5(); + _loc3_.method_29(_loc1_); + _loc3_.method_29(_loc2_); + this.var_74 = new name_250(_loc1_,_loc2_,8,8,0,16,30,true); + this.var_77 = new name_250(_loc1_,_loc2_,8,8,16,16,30,true); + this.var_76 = new name_250(_loc1_,_loc2_,8,8,32,32,45,true,0.5,0.5); + if(this.config.xml.effects.length() > 0) + { + _loc4_ = this.config.xml.effects[0].fire; + _loc5_ = 0; + _loc6_ = int(_loc4_.length()); + while(_loc5_ < _loc6_) + { + _loc7_ = _loc4_[_loc5_]; + _loc8_ = new name_255(this.var_74,this.var_77,this.var_76,5,true); + _loc9_ = _loc7_.@position.toString().split(/\s+/); + _loc8_.position = new Vector3D(Number(_loc9_[0]),Number(_loc9_[1]),Number(_loc9_[2])); + _loc8_.scale = Number(_loc7_.@scale); + this.var_79.push(_loc8_); + this.gameKernel.name_5().method_48(_loc8_); + _loc5_++; + } + } + } + + private function method_163(param1:name_249) : name_33 + { + var _loc2_:name_55 = param1.textureData; + var _loc3_:name_241 = this.var_65.name_254(_loc2_.name_248(name_243.KEY_TRACKS_DIFFUSE)); + var _loc4_:name_241 = this.var_65.name_254(_loc2_.name_248(name_243.KEY_TRACKS_NORMAL)); + var _loc5_:name_33 = new name_33(); + _loc5_.glossiness = 65; + _loc5_.var_25 = 0.6; + _loc5_.diffuseMap = _loc3_; + _loc5_.normalMap = _loc4_; + if(_loc2_.name_248(name_243.KEY_TRACKS_OPACITY) != null) + { + _loc5_.opacityMap = this.var_65.name_254(_loc2_.name_248(name_243.KEY_TRACKS_OPACITY)); + } + return _loc5_; + } + + private function method_153(param1:name_249) : name_29 + { + var _loc3_:name_241 = null; + var _loc2_:name_55 = param1.textureData; + if(_loc2_.name_248(name_243.KEY_SHADOW) != null) + { + _loc3_ = this.var_65.name_254(_loc2_.name_248(name_243.KEY_SHADOW)); + return new name_29(_loc3_); + } + return null; + } + + private function method_169(param1:name_54) : void + { + var _loc9_:name_129 = null; + var _loc10_:Vector. = null; + var _loc11_:int = 0; + var _loc18_:class_5 = null; + var _loc3_:Number = 10000000 / 3; + var _loc4_:name_256 = this.gameKernel.method_112().name_246().collisionDetector; + var _loc5_:name_240 = new name_240(); + var _loc6_:name_261 = new name_261(Math.PI / 9,20,Math.PI / 9,20,_loc4_,_loc5_); + _loc6_.name_310(this.gameKernel.method_112().name_246().collisionDetector); + _loc6_.name_303(new name_240()); + var _loc7_:Vector. = this.var_64.getFrames("thunder/explosion"); + var _loc8_:name_44 = this.gameKernel.name_5(); + for each(_loc9_ in _loc7_) + { + _loc8_.method_29(_loc9_); + } + _loc10_ = new Vector.(_loc7_.length); + _loc11_ = 0; + while(_loc11_ < _loc7_.length) + { + _loc18_ = new class_5(_loc7_[_loc11_]); + _loc18_.var_21 = true; + _loc10_[_loc11_] = _loc18_; + _loc11_++; + } + var _loc12_:name_129 = this.var_61.getResource("smoky/diffuse"); + var _loc13_:name_129 = this.var_61.getResource("smoky/opacity"); + _loc8_.method_29(_loc12_); + _loc8_.method_29(_loc13_); + name_270.init(_loc12_,_loc13_); + var _loc14_:class_14 = new name_269(this.gameKernel,1000,10000000,200,100,0.5,null,_loc10_); + var _loc15_:name_263 = new name_263(1000,_loc3_,_loc6_,_loc14_,new name_274(this.config.soundsLibrary.name_297("smoky/shot")),true); + _loc15_.name_308 = true; + param1.name_60(_loc15_); + var _loc16_:BitmapData = new BitmapData(20,20,false,0); + _loc16_.perlinNoise(20,20,3,13,false,true); + name_247.init(_loc12_,_loc13_); + var _loc17_:name_247 = new name_247(this.var_61.getResource("thunder/shot")); + param1.name_60(_loc17_); + } + + private function method_164(param1:name_54) : void + { + var _loc9_:name_129 = null; + var _loc10_:Vector. = null; + var _loc11_:int = 0; + var _loc18_:class_5 = null; + var _loc4_:name_256 = this.gameKernel.method_112().name_246().collisionDetector; + var _loc5_:name_240 = new name_240(); + var _loc6_:name_261 = new name_261(Math.PI / 9,20,Math.PI / 9,20,_loc4_,_loc5_); + _loc6_.name_310(this.gameKernel.method_112().name_246().collisionDetector); + _loc6_.name_303(new name_240()); + var _loc7_:Vector. = this.var_64.getFrames("thunder/explosion"); + var _loc8_:name_44 = this.gameKernel.name_5(); + for each(_loc9_ in _loc7_) + { + _loc8_.method_29(_loc9_); + } + _loc10_ = new Vector.(_loc7_.length); + _loc11_ = 0; + while(_loc11_ < _loc7_.length) + { + _loc18_ = new class_5(_loc7_[_loc11_]); + _loc18_.var_21 = true; + _loc10_[_loc11_] = _loc18_; + _loc11_++; + } + var _loc12_:name_129 = this.var_61.getResource("smoky/diffuse"); + var _loc13_:name_129 = this.var_61.getResource("smoky/opacity"); + _loc8_.method_29(_loc12_); + _loc8_.method_29(_loc13_); + name_270.init(_loc12_,_loc13_); + var _loc14_:class_14 = new name_269(this.gameKernel,1000,10000000,200,100,0.5,null,_loc10_); + var _loc15_:name_263 = new name_263(1000,3333333.3333333335,_loc6_,_loc14_,new name_274(this.config.soundsLibrary.name_297("thunder/shot")),true); + _loc15_.name_308 = true; + param1.name_60(_loc15_); + var _loc16_:BitmapData = new BitmapData(20,20,false,0); + _loc16_.perlinNoise(20,20,3,13,false,true); + name_247.init(_loc12_,_loc13_); + var _loc17_:name_247 = new name_247(this.var_61.getResource("thunder/shot")); + param1.name_60(_loc17_); + } + + private function method_176(param1:name_54) : void + { + var _loc5_:name_256 = this.gameKernel.method_112().name_246().collisionDetector; + var _loc6_:name_292 = new name_292(); + var _loc7_:name_291 = new name_291(Math.PI / 9,20,Math.PI / 9,20,_loc5_,_loc6_); + } + + private function method_175(param1:name_54) : void + { + var _loc9_:name_256 = this.gameKernel.method_112().name_246().collisionDetector; + var _loc10_:name_240 = new name_240(); + var _loc11_:name_280 = new name_280(Math.PI / 4,20,Math.PI / 4,20,100,_loc9_,_loc10_); + var _loc13_:Number = name_307.BASE_FORCE; + var _loc14_:name_327 = new name_267(2000,4000,0.5); + var _loc15_:BitmapData = this.config.var_37.name_244("plasma/charge") as BitmapData; + var _loc16_:Vector. = name_251.name_272(_loc15_,_loc15_.height); + var _loc17_:Vector. = this.method_151(_loc16_); + var _loc18_:BitmapData = this.config.var_37.name_244("plasma/explosion") as BitmapData; + _loc16_ = name_251.name_272(_loc18_,_loc18_.height); + var _loc19_:Vector. = this.method_151(_loc16_); + var _loc20_:ColorTransform = new ColorTransform(5); + var _loc22_:name_349 = new name_301(this.gameKernel,_loc17_,_loc19_,_loc20_); + var _loc23_:name_296 = new name_296(50,2000,100,_loc13_,_loc14_,_loc22_,null); + param1.name_60(_loc23_); + var _loc24_:name_283 = new name_283(1000,1000,1000,1000,0,8000,_loc11_,null,true); + param1.name_60(_loc24_); + var _loc25_:BitmapData = new BitmapData(20,20,false,0); + _loc25_.perlinNoise(20,20,3,13,false,true); + var _loc26_:name_129 = this.var_61.getResource("plasma/shot"); + var _loc27_:name_295 = new name_295(_loc26_,null); + param1.name_60(_loc27_); + } + + private function method_154(param1:name_54) : void + { + var _loc5_:name_286 = new name_286(1000,1,15,true); + param1.name_60(_loc5_); + var _loc7_:Number = 30 * Math.PI / 180; + var _loc10_:name_262 = this.method_167(); + var _loc11_:name_265 = new name_265(3000,_loc7_,20,3000,_loc10_); + param1.name_60(_loc11_); + var _loc16_:name_44 = this.gameKernel.name_5(); + var _loc17_:name_129 = this.var_61.getResource("firebird/diffuse"); + var _loc18_:name_129 = this.var_61.getResource("firebird/opacity"); + _loc16_.method_29(_loc17_); + _loc16_.method_29(_loc18_); + name_265.init(_loc17_,_loc18_); + var _loc19_:name_256 = this.gameKernel.method_112().name_246().collisionDetector; + var _loc20_:name_326 = name_240.INSTANCE; + var _loc21_:name_282 = new name_282(3000,_loc7_,10,10,_loc19_,_loc20_); + var _loc22_:name_287 = new name_287(this.config.soundsLibrary.name_297("flamethrower/shot")); + var _loc23_:name_281 = new name_281(1000,100,_loc21_,_loc22_,true,false); + param1.name_60(_loc23_); + } + + private function method_151(param1:Vector.) : Vector. + { + var _loc3_:BitmapData = null; + var _loc2_:Vector. = new Vector.(); + for each(_loc3_ in param1) + { + } + return _loc2_; + } + + private function method_161() : void + { + var _loc1_:name_54 = null; + if(this.var_62 >= 0) + { + _loc1_ = this.activeTank; + this.gameKernel.method_109(_loc1_); + this.tanks.splice(this.var_62,1); + if(this.tanks.length == 0) + { + this.var_62 = -1; + } + else + { + this.var_62--; + this.method_147(this.var_62); + } + } + } + + private function method_165() : void + { + if(this.var_68 == this.var_69) + { + this.name_63(this.var_67); + } + else if(this.var_68 == this.freeCameraController) + { + this.name_63(this.var_69); + } + else + { + this.name_63(this.freeCameraController); + } + } + + private function name_63(param1:name_102) : void + { + if(this.activeTank != null) + { + if(param1 == this.var_67) + { + this.var_67.method_115(this.activeTank); + } + if(param1 == this.var_69) + { + this.var_69.method_115(this.activeTank); + } + if(param1 == this.freeCameraController) + { + this.freeCameraController.method_115(this.activeTank); + } + } + this.gameKernel.name_5().name_63(param1); + this.var_68 = param1; + } + + private function method_152(param1:name_333, param2:BitmapData, param3:BitmapData, param4:Number, param5:Number) : name_277 + { + var _loc15_:name_249 = null; + var _loc16_:name_318 = null; + var _loc6_:name_44 = this.gameKernel.name_5(); + var _loc7_:name_55 = param1.textureData; + var _loc8_:name_241 = this.var_65.name_254(_loc7_.name_248(name_258.KEY_DIFFUSE_MAP)); + var _loc9_:name_241 = this.var_65.name_254(_loc7_.name_248(name_258.KEY_NORMAL_MAP)); + var _loc10_:name_241 = this.var_65.name_254(_loc7_.name_248(name_258.KEY_SURFACE_MAP)); + var _loc11_:name_93 = this.var_65.name_320(param2); + var _loc12_:name_93 = this.var_65.name_320(param3); + var _loc13_:TankMaterial2 = new TankMaterial2(_loc11_,_loc8_,_loc9_,_loc10_); + var _loc14_:TankMaterial2 = new TankMaterial2(_loc12_,_loc8_,_loc9_,_loc10_); + _loc13_.var_26 = param4; + _loc13_.var_24 = param5; + _loc14_.var_26 = param4; + _loc14_.var_24 = param5; + _loc6_.method_29(param1.geometry); + if(param1 is name_249) + { + _loc15_ = name_249(param1); + for each(var _loc19_ in _loc15_.name_325.concat(_loc15_.name_323)) + { + _loc16_ = _loc19_; + _loc19_; + _loc6_.method_29(_loc16_.geometry); + } + _loc6_.method_29(_loc15_.name_337.geometry); + _loc6_.method_29(_loc15_.name_340.geometry); + _loc6_.method_29(_loc15_.shadow.geometry); + } + return new name_277(_loc13_,_loc14_); + } + + private function method_180() : void + { + var _loc1_:name_279 = new name_279(20,20,20); + } + + private function method_158() : void + { + this.var_70 = null; + null; + } + + private function method_167() : name_262 + { + var _loc4_:BitmapData = null; + var _loc5_:Vector. = null; + var _loc6_:name_262 = null; + var _loc1_:BitmapData = this.config.var_37.name_244("flame/sprite") as BitmapData; + var _loc2_:Vector. = name_251.name_272(_loc1_); + var _loc3_:Vector. = new Vector.(); + for each(var _loc9_ in _loc2_) + { + _loc4_ = _loc9_; + _loc9_; + } + _loc5_ = new Vector.(); + _loc5_.push(new name_242(0,3)); + _loc5_.push(new name_242(0.5)); + _loc5_.push(new name_242(0.75,0.2,0.2,0.2)); + _loc5_.push(new name_242(1,0,0,0,0)); + return new name_262(_loc3_,_loc5_); + } + + private function method_189() : void + { + this.method_162(); + this.method_168(); + this.method_160(); + } + + private function method_162() : void + { + var _loc2_:name_256 = null; + var _loc3_:name_236 = null; + var _loc4_:name_194 = null; + var _loc5_:name_273 = null; + var _loc6_:name_194 = null; + var _loc7_:name_194 = null; + var _loc8_:Vector. = null; + var _loc9_:Vector. = null; + var _loc10_:name_264 = null; + var _loc1_:name_54 = this.activeTank; + if(_loc1_ != null) + { + _loc2_ = this.gameKernel.method_112().name_246().collisionDetector; + _loc3_ = name_236(_loc1_.getComponentStrict(name_236)); + _loc4_ = _loc3_.getBody().state.position; + _loc5_ = new name_273(); + if(_loc2_.name_324(_loc4_,name_194.DOWN,name_257.STATIC,1000,null,_loc5_)) + { + _loc6_ = _loc5_.position.clone(); + _loc6_.z = _loc6_.z + 1; + _loc7_ = new name_194(); + _loc7_.x = -Math.acos(_loc5_.normal.z); + if(_loc5_.normal.z < 0.999) + { + _loc7_.z = Math.atan2(-_loc5_.normal.x,_loc5_.normal.y); + } + _loc8_ = this.var_64.getFrames("tank_explosion/shock_wave"); + _loc9_ = this.method_148(_loc8_); + _loc10_ = name_264(this.gameKernel.method_108().name_110(name_264)); + _loc10_.init(conShockSize.value,_loc6_,_loc7_,_loc9_,30,conShockSizeGrow.value); + this.gameKernel.name_5().method_37(_loc10_); + } + } + } + + private function method_168() : void + { + var _loc2_:Vector. = null; + var _loc3_:Vector. = null; + var _loc4_:name_239 = null; + var _loc5_:name_236 = null; + var _loc6_:name_194 = null; + var _loc7_:Number = NaN; + var _loc8_:Number = NaN; + var _loc9_:Number = NaN; + var _loc1_:name_54 = this.activeTank; + if(_loc1_ != null) + { + _loc2_ = this.var_64.getFrames("tank_explosion/explosion"); + _loc3_ = this.method_148(_loc2_); + _loc4_ = name_239(this.gameKernel.method_108().name_110(name_239)); + _loc5_ = name_236(this.activeTank.getComponentStrict(name_236)); + _loc6_ = _loc5_.getBody().state.position.clone(); + _loc6_.z = _loc6_.z + 100; + _loc7_ = Math.random() * Math.PI; + _loc8_ = 400; + _loc9_ = 25; + _loc4_.init(600,600,_loc3_,_loc6_,_loc7_,_loc8_,_loc9_,false); + this.gameKernel.name_5().method_37(_loc4_); + } + } + + private function method_160() : void + { + var _loc2_:Number = NaN; + var _loc3_:Number = NaN; + var _loc4_:Number = NaN; + var _loc5_:Number = NaN; + var _loc6_:Number = NaN; + var _loc7_:Number = NaN; + var _loc8_:Number = NaN; + var _loc9_:int = 0; + var _loc10_:Vector. = null; + var _loc11_:Vector. = null; + var _loc12_:name_236 = null; + var _loc13_:name_194 = null; + var _loc14_:name_194 = null; + var _loc15_:Number = NaN; + var _loc16_:name_194 = null; + var _loc17_:int = 0; + var _loc18_:Number = NaN; + var _loc19_:Number = NaN; + var _loc20_:name_260 = null; + var _loc21_:Number = NaN; + var _loc1_:name_54 = this.activeTank; + if(_loc1_ != null) + { + _loc2_ = 100; + _loc3_ = 10 * Math.PI / 180; + _loc4_ = 60 * Math.PI / 180; + _loc5_ = 700; + _loc6_ = 1100; + _loc7_ = 15; + _loc8_ = -1000; + _loc9_ = 400; + _loc10_ = this.var_64.getFrames("tank_explosion/smoke"); + _loc11_ = this.method_148(_loc10_); + _loc12_ = name_236(this.activeTank.getComponentStrict(name_236)); + _loc13_ = _loc12_.getBody().state.position.clone(); + _loc13_.z = _loc13_.z + _loc2_; + _loc14_ = new name_194(); + _loc15_ = Math.random() * Math.PI; + _loc16_ = new name_194(); + _loc17_ = 0; + while(_loc17_ < 3) + { + _loc16_.x = Math.cos(_loc15_); + _loc16_.y = Math.sin(_loc15_); + _loc18_ = Math.random() * (_loc4_ - _loc3_) + _loc3_; + _loc19_ = _loc5_ + Math.random() * (_loc6_ - _loc5_); + _loc14_.copy(_loc16_).scale(Math.sin(_loc18_)).add(name_194.UP).normalize().scale(_loc19_); + _loc20_ = name_260(this.gameKernel.method_108().name_110(name_260)); + _loc21_ = Math.random() * Math.PI; + _loc20_.init(_loc9_,_loc9_,_loc11_,_loc13_,_loc14_,_loc8_,_loc21_,_loc7_,false); + this.gameKernel.name_5().method_37(_loc20_); + _loc15_ = _loc15_ + 2 / 3 * Math.PI; + _loc17_++; + } + } + } + + private function method_148(param1:Vector.) : Vector. + { + FrameMaterialsFactory.INSTANCE.renderSystem = this.gameKernel.name_5(); + return this.var_80.method_84(param1,FrameMaterialsFactory.INSTANCE) as Vector.; + } + + private function method_157(param1:name_4, param2:Array) : void + { + var _loc3_:name_54 = null; + var _loc4_:name_237 = null; + var _loc5_:name_271 = null; + for each(var _loc8_ in this.tanks) + { + _loc3_ = _loc8_; + _loc8_; + _loc4_ = name_237(_loc3_.getComponentStrict(name_237)); + _loc5_ = _loc4_.body; + param1.name_145("Tank " + _loc5_.id); + param1.name_145("position " + _loc5_.state.position); + param1.name_145("velocity " + _loc5_.state.velocity); + } + } + } +} + +import flash.display.BitmapData; +import flash.media.Sound; +import flash.utils.ByteArray; +import package_10.name_17; +import package_101.name_304; +import package_13.name_172; +import package_15.name_275; +import package_18.name_44; +import package_28.name_129; +import package_28.name_241; +import package_28.name_93; +import package_4.class_4; +import package_4.class_5; +import package_4.name_313; +import package_40.name_251; +import package_46.Matrix4; +import package_46.name_194; +import package_71.class_10; +import package_71.name_234; +import package_72.class_12; +import package_72.name_239; +import package_73.class_13; +import package_74.class_14; +import package_74.name_233; +import package_75.class_15; +import package_76.name_235; +import package_87.name_267; + +class FrameMaterialsFactory implements class_13 +{ + public static const INSTANCE:FrameMaterialsFactory = new FrameMaterialsFactory(); + + public var renderSystem:name_44; + + public function FrameMaterialsFactory() + { + super(); + } + + public function createData(param1:Object) : Object + { + var _loc6_:class_5 = null; + var _loc2_:Vector. = param1 as Vector.; + var _loc3_:int = int(_loc2_.length); + var _loc4_:Vector. = new Vector.(_loc3_); + var _loc5_:int = 0; + while(_loc5_ < _loc3_) + { + this.renderSystem.method_29(_loc2_[_loc5_]); + _loc6_ = new class_5(_loc2_[_loc5_]); + _loc6_.var_21 = true; + _loc4_[_loc5_] = _loc6_; + _loc5_++; + } + return _loc4_; + } +} + +class DummyTurretCallback implements class_10 +{ + public function DummyTurretCallback() + { + super(); + } + + public function onTurretControlChanged(param1:int, param2:Boolean) : void + { + } +} + +class PointHitRoundAmmo implements class_14 +{ + private var impactForce:Number; + + private var weaponDistanceWeakening:name_267; + + private var weaponHitEffects:WeaponHitEffects; + + public function PointHitRoundAmmo(param1:name_17) + { + var _loc5_:int = 0; + super(); + this.impactForce = 10000; + this.weaponDistanceWeakening = new name_267(10000,15000,0.5); + var _loc2_:Vector. = new Vector.(); + var _loc4_:int = 0; + while(_loc4_ < 20) + { + _loc5_ = 255 - 255 / (20 - 1) * _loc4_; + _loc2_.push(new name_313(name_275.name_345(_loc5_,_loc5_,_loc5_),_loc5_ / 255 + 0.5)); + _loc4_++; + } + this.weaponHitEffects = new WeaponHitEffects(null,_loc2_,param1); + } + + public function getRound() : name_233 + { + return new name_304(this.impactForce,this.weaponDistanceWeakening,this.weaponHitEffects); + } +} + +class WeaponHitEffects implements class_12 +{ + private var sound:Sound; + + private var frames:Vector.; + + private var gameKernel:name_17; + + public function WeaponHitEffects(param1:Sound, param2:Vector., param3:name_17) + { + super(); + this.sound = param1; + this.frames = param2; + this.gameKernel = param3; + } + + public function createEffects(param1:name_194, param2:Number, param3:Number) : void + { + var _loc4_:name_239 = name_239(this.gameKernel.method_108().name_110(name_239)); + _loc4_.init(600,600,this.frames,param1,0,50,30,false); + this.gameKernel.name_5().method_37(_loc4_); + } +} + +class TextureResourceCache +{ + private var textureLibrary:name_172; + + private var cache:Object = {}; + + public function TextureResourceCache(param1:name_172) + { + super(); + this.textureLibrary = param1; + } + + public function getResource(param1:String) : name_129 + { + var _loc3_:Object = null; + var _loc2_:name_129 = this.cache[param1]; + if(_loc2_ == null) + { + _loc3_ = this.textureLibrary.name_244(param1); + if(_loc3_ is BitmapData) + { + _loc2_ = new name_93(_loc3_ as BitmapData); + this.cache[param1] = _loc2_; + } + else if(_loc3_ is ByteArray) + { + _loc2_ = new name_241(_loc3_ as ByteArray); + this.cache[param1] = _loc2_; + } + } + return _loc2_; + } +} + +class MultiBitmapTextureResourceCache +{ + private var textureLibrary:name_172; + + private var cache:Object = {}; + + public function MultiBitmapTextureResourceCache(param1:name_172) + { + super(); + this.textureLibrary = param1; + } + + public function getFrames(param1:String) : Vector. + { + var _loc3_:BitmapData = null; + var _loc4_:Vector. = null; + var _loc5_:int = 0; + var _loc2_:Vector. = this.cache[param1]; + if(_loc2_ == null) + { + _loc3_ = this.textureLibrary.name_244(param1) as BitmapData; + _loc4_ = name_251.name_272(_loc3_); + _loc2_ = new Vector.(_loc4_.length); + _loc5_ = 0; + while(_loc5_ < _loc4_.length) + { + _loc2_[_loc5_] = new name_93(_loc4_[_loc5_]); + _loc5_++; + } + this.cache[param1] = _loc2_; + } + return _loc2_; + } +} + +class DummyTurret implements class_15 +{ + public function DummyTurret() + { + super(); + } + + public function setTurret(param1:name_234) : void + { + } + + public function getTurretDirection() : Number + { + return 0; + } + + public function setTurretDirection(param1:Number) : void + { + } + + public function setTurretControls(param1:int) : Boolean + { + return false; + } + + public function centerTurret(param1:Boolean) : void + { + } + + public function setTurretMountPoint(param1:name_194) : void + { + } + + public function getTurretPrimitives() : Vector. + { + return null; + } + + public function getChassisMatrix() : Matrix4 + { + return null; + } + + public function getInterpolatedTurretDirection() : Number + { + return 0; + } + + public function getSkinMountPoint(param1:name_194) : void + { + } + + public function getGunData(param1:int, param2:name_194, param3:name_194, param4:name_194) : void + { + } + + public function getGunMuzzleData(param1:int, param2:name_194, param3:name_194) : void + { + param2.reset(0,0,2000); + param3.reset(0,0,1); + } + + public function getGunMuzzleData2(param1:int, param2:name_194, param3:name_194) : void + { + } + + public function getBarrelLength(param1:int) : Number + { + return 0; + } + + public function getBarrelCount() : int + { + return 0; + } +} diff --git a/src/package_70/name_224.as b/src/package_70/name_224.as new file mode 100644 index 0000000..6c3cc0f --- /dev/null +++ b/src/package_70/name_224.as @@ -0,0 +1,33 @@ +package package_70 +{ + import package_36.name_163; + import package_36.name_442; + + public class name_224 implements name_451 + { + public function name_224() + { + super(); + } + + public function name_452() : Object + { + return int.MIN_VALUE; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + protocolBuffer.name_483.writeShort(int(object)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + return protocolBuffer.reader.readShort(); + } + + public function init(protocol:name_163) : void + { + } + } +} + diff --git a/src/package_70/name_225.as b/src/package_70/name_225.as new file mode 100644 index 0000000..dace750 --- /dev/null +++ b/src/package_70/name_225.as @@ -0,0 +1,33 @@ +package package_70 +{ + import package_36.name_163; + import package_36.name_442; + + public class name_225 implements name_451 + { + public function name_225() + { + super(); + } + + public function name_452() : Object + { + return int.MAX_VALUE; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + protocolBuffer.name_483.writeByte(int(object)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + return protocolBuffer.reader.readByte(); + } + + public function init(protocol:name_163) : void + { + } + } +} + diff --git a/src/package_70/name_226.as b/src/package_70/name_226.as new file mode 100644 index 0000000..596ff8f --- /dev/null +++ b/src/package_70/name_226.as @@ -0,0 +1,33 @@ +package package_70 +{ + import package_36.name_163; + import package_36.name_442; + + public class name_226 implements name_451 + { + public function name_226() + { + super(); + } + + public function name_452() : Object + { + return Number.NEGATIVE_INFINITY; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + protocolBuffer.name_483.writeFloat(Number(object)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + return protocolBuffer.reader.readFloat(); + } + + public function init(protocol:name_163) : void + { + } + } +} + diff --git a/src/package_70/name_227.as b/src/package_70/name_227.as new file mode 100644 index 0000000..c311fd5 --- /dev/null +++ b/src/package_70/name_227.as @@ -0,0 +1,31 @@ +package package_70 +{ + import package_33.name_155; + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + + public class name_227 implements name_152 + { + public function name_227() + { + super(); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + protocolBuffer.name_483.writeInt(name_155(object).high); + protocolBuffer.name_483.writeInt(name_155(object).low); + } + + public function method_296(protocolBuffer:name_442) : Object + { + return name_155.method_298(protocolBuffer.reader.readInt(),protocolBuffer.reader.readInt()); + } + + public function init(protocol:name_163) : void + { + } + } +} + diff --git a/src/package_70/name_228.as b/src/package_70/name_228.as new file mode 100644 index 0000000..af2870c --- /dev/null +++ b/src/package_70/name_228.as @@ -0,0 +1,29 @@ +package package_70 +{ + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + + public class name_228 implements name_152 + { + public function name_228() + { + super(); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + protocolBuffer.name_483.writeUnsignedInt(uint(object)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + return protocolBuffer.reader.readUnsignedInt(); + } + + public function init(protocol:name_163) : void + { + } + } +} + diff --git a/src/package_70/name_229.as b/src/package_70/name_229.as new file mode 100644 index 0000000..228b1e8 --- /dev/null +++ b/src/package_70/name_229.as @@ -0,0 +1,29 @@ +package package_70 +{ + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + + public class name_229 implements name_152 + { + public function name_229() + { + super(); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + protocolBuffer.name_483.writeUnsignedInt(uint(object)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + return protocolBuffer.reader.readUnsignedByte(); + } + + public function init(protocol:name_163) : void + { + } + } +} + diff --git a/src/package_70/name_230.as b/src/package_70/name_230.as new file mode 100644 index 0000000..ed933f0 --- /dev/null +++ b/src/package_70/name_230.as @@ -0,0 +1,29 @@ +package package_70 +{ + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + + public class name_230 implements name_152 + { + public function name_230() + { + super(); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + throw new Error("Not implemented"); + } + + public function method_296(protocolBuffer:name_442) : Object + { + return protocolBuffer.reader.readUnsignedShort(); + } + + public function init(protocol:name_163) : void + { + } + } +} + diff --git a/src/package_70/name_231.as b/src/package_70/name_231.as new file mode 100644 index 0000000..38480be --- /dev/null +++ b/src/package_70/name_231.as @@ -0,0 +1,33 @@ +package package_70 +{ + import package_36.name_163; + import package_36.name_442; + + public class name_231 implements name_451 + { + public function name_231() + { + super(); + } + + public function name_452() : Object + { + return Number.NEGATIVE_INFINITY; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + protocolBuffer.name_483.writeDouble(Number(object)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + return protocolBuffer.reader.readDouble(); + } + + public function init(protocol:name_163) : void + { + } + } +} + diff --git a/src/package_70/name_232.as b/src/package_70/name_232.as new file mode 100644 index 0000000..c680887 --- /dev/null +++ b/src/package_70/name_232.as @@ -0,0 +1,33 @@ +package package_70 +{ + import package_36.name_163; + import package_36.name_442; + + public class name_232 implements name_451 + { + public function name_232() + { + super(); + } + + public function name_452() : Object + { + return int.MIN_VALUE; + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + protocolBuffer.name_483.writeInt(int(object)); + } + + public function method_296(protocolBuffer:name_442) : Object + { + return protocolBuffer.reader.readInt(); + } + + public function init(protocol:name_163) : void + { + } + } +} + diff --git a/src/package_70/name_451.as b/src/package_70/name_451.as new file mode 100644 index 0000000..9e08a96 --- /dev/null +++ b/src/package_70/name_451.as @@ -0,0 +1,10 @@ +package package_70 +{ + import package_36.name_152; + + public interface name_451 extends name_152 + { + function name_452() : Object; + } +} + diff --git a/src/package_70/name_458.as b/src/package_70/name_458.as new file mode 100644 index 0000000..844576d --- /dev/null +++ b/src/package_70/name_458.as @@ -0,0 +1,29 @@ +package package_70 +{ + import package_36.name_152; + import package_36.name_163; + import package_36.name_442; + + public class name_458 implements name_152 + { + public function name_458() + { + super(); + } + + public function method_295(protocolBuffer:name_442, object:Object) : void + { + protocolBuffer.name_483.writeByte(!!Boolean(object) ? int(int(1)) : int(int(0))); + } + + public function method_296(protocolBuffer:name_442) : Object + { + return protocolBuffer.reader.readByte() != 0; + } + + public function init(protocol:name_163) : void + { + } + } +} + diff --git a/src/package_71/class_10.as b/src/package_71/class_10.as new file mode 100644 index 0000000..73ee0a7 --- /dev/null +++ b/src/package_71/class_10.as @@ -0,0 +1,8 @@ +package package_71 +{ + public interface class_10 + { + function onTurretControlChanged(param1:int, param2:Boolean) : void; + } +} + diff --git a/src/package_71/class_29.as b/src/package_71/class_29.as new file mode 100644 index 0000000..a747c50 --- /dev/null +++ b/src/package_71/class_29.as @@ -0,0 +1,10 @@ +package package_71 +{ + public interface class_29 + { + function method_448(param1:int, param2:int, param3:Boolean) : void; + + function method_447() : void; + } +} + diff --git a/src/package_71/class_30.as b/src/package_71/class_30.as new file mode 100644 index 0000000..6bb8164 --- /dev/null +++ b/src/package_71/class_30.as @@ -0,0 +1,27 @@ +package package_71 +{ + import package_46.name_194; + import package_46.name_566; + + public interface class_30 + { + function setChassisControls(param1:int, param2:int, param3:Boolean, param4:Boolean = false) : Boolean; + + function name_201(param1:name_194) : void; + + function name_75(param1:Number, param2:Number, param3:Number) : void; + + function method_478(param1:name_194) : void; + + function setLinearVelocityXYZ(param1:Number, param2:Number, param3:Number) : void; + + function method_477(param1:name_194) : void; + + function setAngularVelocityXYZ(param1:Number, param2:Number, param3:Number) : void; + + function name_352(param1:name_566) : void; + + function method_479(param1:Number, param2:Number, param3:Number) : void; + } +} + diff --git a/src/package_71/name_234.as b/src/package_71/name_234.as new file mode 100644 index 0000000..b01b6bd --- /dev/null +++ b/src/package_71/name_234.as @@ -0,0 +1,20 @@ +package package_71 +{ + import package_46.name_194; + import package_86.name_484; + + public class name_234 extends name_333 + { + public var var_422:Vector. = new Vector.(); + + public var var_421:Vector. = new Vector.(); + + public var var_423:name_194 = new name_194(); + + public function name_234() + { + super(); + } + } +} + diff --git a/src/package_71/name_249.as b/src/package_71/name_249.as new file mode 100644 index 0000000..c99b3fc --- /dev/null +++ b/src/package_71/name_249.as @@ -0,0 +1,44 @@ +package package_71 +{ + import package_19.name_380; + import package_19.name_528; + import package_46.name_194; + import package_86.name_484; + + public class name_249 extends name_333 + { + public var name_538:name_194 = new name_194(); + + public var name_533:name_194 = new name_194(); + + public var name_536:name_194 = new name_194(); + + public var name_517:name_484; + + public var name_534:Vector. = new Vector.(); + + public var name_535:Vector. = new Vector.(); + + public var name_539:Vector. = new Vector.(); + + public var name_537:Vector. = new Vector.(); + + public var name_597:Number = 1; + + public var name_325:Vector. = new Vector.(); + + public var name_323:Vector. = new Vector.(); + + public var name_337:name_528; + + public var name_340:name_528; + + public var shadow:name_380; + + public function name_249() + { + super(); + } + } +} + diff --git a/src/package_71/name_252.as b/src/package_71/name_252.as new file mode 100644 index 0000000..30805a4 --- /dev/null +++ b/src/package_71/name_252.as @@ -0,0 +1,23 @@ +package package_71 +{ + public class name_252 + { + public static const SET_ACTIVATING_STATE:String = "setActivatingState"; + + public static const SET_ACTIVE_STATE:String = "setActiveState"; + + public static const SET_DEAD_STATE:String = "setDeadState"; + + public static const SET_RESPAWN_STATE:String = "setRespState"; + + public static const SET_HEALTH:String = "setHealth"; + + public static const SET_DISABLED_STATE:String = "setDisabledState"; + + public function name_252() + { + super(); + } + } +} + diff --git a/src/package_71/name_277.as b/src/package_71/name_277.as new file mode 100644 index 0000000..e8f2150 --- /dev/null +++ b/src/package_71/name_277.as @@ -0,0 +1,19 @@ +package package_71 +{ + import package_4.class_5; + + public class name_277 + { + public var normalMaterial:class_5; + + public var deadMaterial:class_5; + + public function name_277(normalMaterial:class_5, deadMaterial:class_5) + { + super(); + this.normalMaterial = normalMaterial; + this.deadMaterial = deadMaterial; + } + } +} + diff --git a/src/package_71/name_278.as b/src/package_71/name_278.as new file mode 100644 index 0000000..2fd2650 --- /dev/null +++ b/src/package_71/name_278.as @@ -0,0 +1,54 @@ +package package_71 +{ + import flash.utils.Dictionary; + import package_10.class_17; + import package_10.name_17; + import package_10.name_57; + import package_20.class_11; + + public class name_278 extends class_17 implements class_11 + { + private static var stateEvents:Dictionary; + + private var gameKernel:name_17; + + public function name_278() + { + super(); + if(stateEvents == null) + { + stateEvents = new Dictionary(); + stateEvents[name_563.ACTIVATING] = name_252.SET_ACTIVATING_STATE; + stateEvents[name_563.ACTIVE] = name_252.SET_ACTIVE_STATE; + stateEvents[name_563.DEAD] = name_252.SET_DEAD_STATE; + stateEvents[name_563.IN_RESPAWN] = name_252.SET_RESPAWN_STATE; + } + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + gameKernel.name_61().addEventListener(name_57.BATTLE_FINISHED,this); + } + + override public function removeFromGame(gameKernel:name_17) : void + { + gameKernel.name_61().removeEventListener(name_57.BATTLE_FINISHED,this); + } + + public function method_470(state:name_563, data:* = undefined) : void + { + var eventType:String = stateEvents[state]; + if(Boolean(eventType)) + { + entity.dispatchEvent(eventType,data); + } + } + + public function method_146(eventType:String, eventData:*) : void + { + entity.dispatchEvent(eventType,eventData); + } + } +} + diff --git a/src/package_71/name_311.as b/src/package_71/name_311.as new file mode 100644 index 0000000..660b3a0 --- /dev/null +++ b/src/package_71/name_311.as @@ -0,0 +1,119 @@ +package package_71 +{ + import package_10.class_17; + import package_10.name_17; + import package_10.name_57; + import package_15.name_191; + import package_22.name_83; + import package_22.name_87; + import package_42.name_477; + import package_75.class_15; + + public class name_311 extends class_17 implements name_477 + { + private static const KEY_LEFT:int = name_191.Z; + + private static const KEY_RIGHT:int = name_191.X; + + private static const KEY_CENTER:int = name_191.C; + + private var callback:class_10; + + private var physicsComponent:class_15; + + private var gameKernel:name_17; + + private var name_308:Boolean; + + private var center:Boolean; + + private var input:name_87; + + public function name_311(callback:class_10) + { + super(); + if(callback == null) + { + throw new Error("Parameter callback is null"); + } + this.callback = callback; + } + + override public function initComponent() : void + { + this.physicsComponent = class_15(entity.getComponentStrict(class_15)); + entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.method_410); + entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.method_410); + entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_408); + entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.method_408); + entity.addEventHandler(name_252.SET_DISABLED_STATE,this.method_408); + entity.addEventHandler(name_57.BATTLE_FINISHED,this.method_386); + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + this.input = gameKernel.name_66(); + this.input.name_94(name_83.KEY_DOWN,this.method_15,KEY_CENTER); + } + + override public function removeFromGame(gameKernel:name_17) : void + { + this.method_409(); + this.input.name_384(name_83.KEY_DOWN,this.method_15,KEY_CENTER); + } + + public function runLogic() : void + { + var turnDirection:int = this.input.name_192(KEY_LEFT) - this.input.name_192(KEY_RIGHT); + if(this.physicsComponent.setTurretControls(turnDirection)) + { + this.callback.onTurretControlChanged(turnDirection,false); + } + if(this.center) + { + this.physicsComponent.centerTurret(true); + this.callback.onTurretControlChanged(0,true); + this.center = false; + } + } + + private function method_410(eventType:String, data:*) : void + { + this.name_108(); + } + + private function method_408(eventType:String, data:*) : void + { + this.method_409(); + } + + private function name_108() : void + { + if(!this.name_308) + { + this.name_308 = true; + this.gameKernel.getLogicSystem1().addLogicUnit(this); + } + } + + private function method_409() : void + { + if(this.name_308) + { + this.name_308 = false; + this.gameKernel.getLogicSystem1().removeLogicUnit(this); + } + } + + private function method_386(eventType:String, eventData:*) : void + { + this.method_409(); + } + + private function method_15(eventType:name_83, keyCode:uint) : void + { + } + } +} + diff --git a/src/package_71/name_315.as b/src/package_71/name_315.as new file mode 100644 index 0000000..db39b74 --- /dev/null +++ b/src/package_71/name_315.as @@ -0,0 +1,132 @@ +package package_71 +{ + import package_10.class_17; + import package_10.name_17; + import package_10.name_57; + import package_15.name_191; + import package_22.name_83; + import package_22.name_87; + import package_42.name_477; + import package_74.class_24; + + public class name_315 extends class_17 implements name_477 + { + private static const KEY_FIRE:uint = name_191.SPACE; + + private var gameKernel:name_17; + + private var name_308:Boolean; + + private var var_442:class_24; + + private var var_508:Boolean; + + private var var_507:Boolean; + + public function name_315() + { + super(); + } + + override public function initComponent() : void + { + this.var_442 = class_24(entity.getComponentStrict(class_24)); + entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.method_408); + entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_408); + entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.method_408); + entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.method_410); + entity.addEventHandler(name_252.SET_DISABLED_STATE,this.method_408); + entity.addEventHandler(name_57.BATTLE_FINISHED,this.method_386); + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + var inputSystem:name_87 = gameKernel.name_66(); + inputSystem.name_94(name_83.KEY_DOWN,this.method_193,KEY_FIRE); + inputSystem.name_94(name_83.KEY_UP,this.method_193,KEY_FIRE); + } + + override public function removeFromGame(gameKernel:name_17) : void + { + this.method_409(); + var inputSystem:name_87 = gameKernel.name_66(); + inputSystem.name_384(name_83.KEY_DOWN,this.method_193,KEY_FIRE); + inputSystem.name_384(name_83.KEY_UP,this.method_193,KEY_FIRE); + } + + public function runLogic() : void + { + if(this.var_508) + { + this.var_442.method_394(); + if(this.var_507) + { + this.var_442.method_395(); + } + } + if(this.var_507) + { + this.var_442.method_393(); + } + this.var_508 = false; + this.var_507 = false; + } + + private function method_193(eventType:name_83, keyCode:uint) : void + { + switch(eventType) + { + case name_83.KEY_DOWN: + this.var_508 = true; + if(!this.name_308) + { + this.var_507 = false; + } + break; + case name_83.KEY_UP: + this.var_507 = true; + if(!this.name_308) + { + this.var_442.method_393(); + this.var_508 = false; + break; + } + } + } + + private function name_108() : void + { + if(!this.name_308) + { + this.name_308 = true; + this.gameKernel.getLogicSystem1().addLogicUnit(this); + } + } + + private function method_409() : void + { + if(this.name_308) + { + this.name_308 = false; + this.gameKernel.getLogicSystem1().removeLogicUnit(this); + } + } + + private function method_408(eventType:String, data:*) : void + { + this.method_409(); + } + + private function method_410(eventType:String, data:*) : void + { + this.name_108(); + } + + private function method_386(gameType:String, gameData:*) : void + { + this.method_409(); + } + } +} + diff --git a/src/package_71/name_316.as b/src/package_71/name_316.as new file mode 100644 index 0000000..9a494bc --- /dev/null +++ b/src/package_71/name_316.as @@ -0,0 +1,114 @@ +package package_71 +{ + import flash.ui.Keyboard; + import package_1.name_12; + import package_10.class_17; + import package_10.name_17; + import package_10.name_57; + import package_22.name_87; + import package_42.name_477; + import package_45.name_182; + + public class name_316 extends class_17 implements name_477 + { + private static const KEY_FORWARD:uint = Keyboard.UP; + + private static const KEY_BACK:uint = Keyboard.DOWN; + + private static const KEY_LEFT:uint = Keyboard.LEFT; + + private static const KEY_RIGHT:uint = Keyboard.RIGHT; + + private static var conReverseBackTurn:name_12 = new name_12("reverse_back_turn",1,0,1); + + private static const SYNC_INTERVAL:int = 4000; + + private var input:name_87; + + private var physicsComponent:class_30; + + private var gameKernel:name_17; + + private var callback:class_29; + + private var name_308:Boolean; + + private var var_503:int; + + public function name_316(callback:class_29) + { + super(); + this.callback = callback; + } + + override public function initComponent() : void + { + this.physicsComponent = class_30(entity.getComponentStrict(class_30)); + entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.method_410); + entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.method_410); + entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_408); + entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.method_408); + entity.addEventHandler(name_252.SET_DISABLED_STATE,this.method_408); + entity.addEventHandler(name_57.BATTLE_FINISHED,this.method_386); + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + this.input = gameKernel.name_66(); + } + + override public function removeFromGame(gameKernel:name_17) : void + { + this.method_409(); + } + + public function runLogic() : void + { + var moveDirection:int = this.input.name_192(KEY_FORWARD) - this.input.name_192(KEY_BACK); + var turnDirection:int = this.input.name_192(KEY_RIGHT) - this.input.name_192(KEY_LEFT); + if(Boolean(this.physicsComponent.setChassisControls(moveDirection,turnDirection,Boolean(conReverseBackTurn.value))) || name_182.time - this.var_503 > SYNC_INTERVAL) + { + if(this.callback != null) + { + this.callback.method_448(moveDirection,turnDirection,Boolean(conReverseBackTurn.value)); + } + this.var_503 = name_182.time; + } + } + + private function method_410(eventType:String, eventData:*) : void + { + this.name_108(); + } + + private function method_408(eventType:String, eventData:*) : void + { + this.method_409(); + } + + private function name_108() : void + { + if(!this.name_308) + { + this.name_308 = true; + this.gameKernel.getLogicSystem1().addLogicUnit(this); + } + } + + private function method_409() : void + { + if(this.name_308) + { + this.name_308 = false; + this.gameKernel.getLogicSystem1().removeLogicUnit(this); + } + } + + private function method_386(gameType:String, gameData:*) : void + { + this.method_409(); + } + } +} + diff --git a/src/package_71/name_318.as b/src/package_71/name_318.as new file mode 100644 index 0000000..121a956 --- /dev/null +++ b/src/package_71/name_318.as @@ -0,0 +1,23 @@ +package package_71 +{ + import package_28.name_119; + import package_46.name_194; + + public class name_318 + { + public var name:String; + + public var geometry:name_119; + + public var position:name_194; + + public function name_318(name:String, geometry:name_119, position:name_194) + { + super(); + this.name = name; + this.geometry = geometry; + this.position = position; + } + } +} + diff --git a/src/package_71/name_333.as b/src/package_71/name_333.as new file mode 100644 index 0000000..cdd8464 --- /dev/null +++ b/src/package_71/name_333.as @@ -0,0 +1,20 @@ +package package_71 +{ + import package_15.name_55; + import package_28.name_119; + + public class name_333 + { + public var id:String; + + public var geometry:name_119; + + public var textureData:name_55 = new name_55(); + + public function name_333() + { + super(); + } + } +} + diff --git a/src/package_71/name_563.as b/src/package_71/name_563.as new file mode 100644 index 0000000..a9cc611 --- /dev/null +++ b/src/package_71/name_563.as @@ -0,0 +1,31 @@ +package package_71 +{ + public class name_563 + { + public static const PAUSED:name_563 = new name_563("PAUSED"); + + public static const DEAD:name_563 = new name_563("DEAD"); + + public static const ACTIVATING:name_563 = new name_563("ACTIVATING"); + + public static const ACTIVE:name_563 = new name_563("ACTIVE"); + + public static const IN_RESPAWN:name_563 = new name_563("IN_RESPAWN"); + + public static const DISABLED:name_563 = new name_563("DISABLED"); + + private var stringValue:String; + + public function name_563(code:String) + { + super(); + this.stringValue = code; + } + + public function toString() : String + { + return this.stringValue; + } + } +} + diff --git a/src/package_71/name_720.as b/src/package_71/name_720.as new file mode 100644 index 0000000..e4c9eff --- /dev/null +++ b/src/package_71/name_720.as @@ -0,0 +1,8 @@ +package package_71 +{ + public interface name_720 + { + function name_721() : void; + } +} + diff --git a/src/package_72/class_12.as b/src/package_72/class_12.as new file mode 100644 index 0000000..a0909c7 --- /dev/null +++ b/src/package_72/class_12.as @@ -0,0 +1,10 @@ +package package_72 +{ + import package_46.name_194; + + public interface class_12 + { + function createEffects(param1:name_194, param2:Number, param3:Number) : void; + } +} + diff --git a/src/package_72/name_239.as b/src/package_72/name_239.as new file mode 100644 index 0000000..cc6a599 --- /dev/null +++ b/src/package_72/name_239.as @@ -0,0 +1,117 @@ +package package_72 +{ + import alternativa.engine3d.alternativa3d; + import package_18.name_44; + import package_18.name_85; + import package_18.name_90; + import package_19.name_494; + import package_26.class_18; + import package_26.name_402; + import package_4.class_4; + import package_45.name_182; + import package_46.name_194; + + public class name_239 extends class_18 implements name_85 + { + private static var toCamera:name_194 = new name_194(); + + private var sprite:name_494; + + private var offsetToCamera:Number; + + private var var_458:Number; + + private var currFrame:Number; + + private var frames:Vector.; + + private var numFrames:int; + + private var position:name_194 = new name_194(); + + private var loop:Boolean; + + public function name_239(objectPool:name_402) + { + super(objectPool); + } + + public function init(width:Number, height:Number, frames:Vector., position:name_194, rotation:Number, offsetToCamera:Number, fps:Number, loop:Boolean, originX:Number = 0.5, originY:Number = 0.5) : void + { + this.method_444(width,height,rotation,originX,originY); + this.frames = frames; + this.offsetToCamera = offsetToCamera; + this.var_458 = 0.001 * fps; + this.position.copy(position); + this.loop = loop; + this.numFrames = frames.length; + this.currFrame = 0; + } + + public function name_201(position:name_194) : void + { + this.position.copy(position); + } + + public function addedToRenderSystem(system:name_44) : void + { + system.method_62().addChild(this.sprite); + } + + public function play(camera:name_90) : Boolean + { + if(!this.loop && this.currFrame >= this.numFrames) + { + return false; + } + toCamera.x = camera.x - this.position.x; + toCamera.y = camera.y - this.position.y; + toCamera.z = camera.z - this.position.z; + toCamera.normalize(); + this.sprite.x = this.position.x + this.offsetToCamera * toCamera.x; + this.sprite.y = this.position.y + this.offsetToCamera * toCamera.y; + this.sprite.z = this.position.z + this.offsetToCamera * toCamera.z; + this.sprite.material = this.frames[int(this.currFrame)]; + this.currFrame += this.var_458 * name_182.timeDelta; + if(this.loop) + { + while(this.currFrame >= this.numFrames) + { + this.currFrame -= this.numFrames; + } + } + return true; + } + + public function destroy() : void + { + this.sprite.alternativa3d::removeFromParent(); + this.sprite.material = null; + this.frames = null; + method_254(); + } + + public function method_255() : void + { + this.loop = false; + this.currFrame = this.numFrames; + } + + private function method_444(width:Number, height:Number, rotation:Number, originX:Number, originY:Number) : void + { + if(this.sprite == null) + { + this.sprite = new name_494(width,height); + } + else + { + this.sprite.width = width; + this.sprite.height = height; + } + this.sprite.rotation = rotation; + this.sprite.originX = originX; + this.sprite.originY = originY; + } + } +} + diff --git a/src/package_72/name_242.as b/src/package_72/name_242.as new file mode 100644 index 0000000..3f22cd4 --- /dev/null +++ b/src/package_72/name_242.as @@ -0,0 +1,24 @@ +package package_72 +{ + import flash.geom.ColorTransform; + + public class name_242 extends ColorTransform + { + public var t:Number; + + public function name_242(t:Number, redMultiplier:Number = 1, greenMultiplier:Number = 1, blueMultiplier:Number = 1, alphaMultiplier:Number = 1, redOffset:Number = 0, greenOffset:Number = 0, blueOffset:Number = 0, alphaOffset:Number = 0) + { + super(); + this.t = t; + this.redMultiplier = redMultiplier; + this.greenMultiplier = greenMultiplier; + this.blueMultiplier = blueMultiplier; + this.alphaMultiplier = alphaMultiplier; + this.redOffset = redOffset; + this.greenOffset = greenOffset; + this.blueOffset = blueOffset; + this.alphaOffset = alphaOffset; + } + } +} + diff --git a/src/package_72/name_255.as b/src/package_72/name_255.as new file mode 100644 index 0000000..b26162a --- /dev/null +++ b/src/package_72/name_255.as @@ -0,0 +1,146 @@ +package package_72 +{ + import flash.display3D.Context3DBlendFactor; + import flash.geom.Vector3D; + import flash.utils.setTimeout; + import package_21.name_386; + import package_25.name_113; + import package_25.name_250; + import package_25.name_626; + + public class name_255 extends name_113 + { + private static var smokePrototype:name_626; + + private static var firePrototype:name_626; + + private static var flamePrototype:name_626; + + private static var liftSpeed:Number = 60; + + private static var windSpeed:Number = 40; + + private static var pos:Vector3D = new Vector3D(); + + public function name_255(smoke:name_250, fire:name_250, flame:name_250, live:Number = 1, repeat:Boolean = false) + { + var i:int; + var ft:Number = NaN; + var keyTime:Number = NaN; + super(); + ft = 1 / 30; + if(smokePrototype == null) + { + smokePrototype = new name_626(128,128,smoke,false); + smokePrototype.method_257(0 * ft,0,0.4,0.4,0.65,0.25,0,0); + smokePrototype.method_257(9 * ft,0,0.58,0.58,0.65,0.45,0.23,0.3); + smokePrototype.method_257(19 * ft,0,0.78,0.78,0.65,0.55,0.5,0.66); + smokePrototype.method_257(40 * ft,0,1.21,1.21,0.4,0.4,0.4,0.27); + smokePrototype.method_257(54 * ft,0,1.5,1.5,0,0,0,0); + } + if(firePrototype == null) + { + firePrototype = new name_626(128,128,fire,false,Context3DBlendFactor.SOURCE_ALPHA,Context3DBlendFactor.ONE); + firePrototype.method_257(0 * ft,0,0.3,0.3,1,1,1,0); + firePrototype.method_257(8 * ft,0,0.4,0.4,1,1,1,0.85); + firePrototype.method_257(17 * ft,0,0.51,0.51,1,0.56,0.48,0.1); + firePrototype.method_257(24 * ft,0,0.6,0.6,1,0.56,0.48,0); + } + if(flamePrototype == null) + { + flamePrototype = new name_626(128,128,flame,true,Context3DBlendFactor.SOURCE_ALPHA,Context3DBlendFactor.ONE); + flamePrototype.method_257(0 * ft,0,1,1,1,1,1,0); + flamePrototype.method_257(10 * ft,0,1,1,1,1,1,1); + flamePrototype.method_257(live - 10 * ft,0,1,1,1,1,1,1); + flamePrototype.method_257(live,0,1,1,1,1,1,0); + } + boundBox = new name_386(); + boundBox.minX = -100; + boundBox.minY = -100; + boundBox.minZ = -20; + boundBox.maxX = 100; + boundBox.maxY = 100; + boundBox.maxZ = 200; + method_257(0,this.keyFrame1); + i = 0; + while(true) + { + keyTime = ft + i * 5 * ft; + if(keyTime >= live) + { + break; + } + method_257(keyTime,this.method_530); + i++; + } + if(repeat) + { + setTimeout(function():void + { + var newFire:name_255 = new name_255(smoke,fire,flame,live,repeat); + newFire.name = name; + newFire.scale = scale; + newFire.position = position; + newFire.direction = direction; + var_5.method_37(newFire); + },(live - 5 * ft) * 1000); + } + method_258(var_151[var_148 - 1] + smokePrototype.lifeTime); + } + + private function keyFrame1(keyTime:Number, time:Number) : void + { + pos.x = random() * 10 - 10 * 0.5; + pos.y = random() * 10 - 10 * 0.5; + pos.z = random() * 10 * 0.5; + var rnd:Number = 0.2 + random() * 0.2; + flamePrototype.name_627(this,time,pos,0,rnd,rnd,1,0); + pos.x = random() * 10 - 10 * 0.5; + pos.y = random() * 10 - 10 * 0.5; + pos.z = random() * 10 * 0.5; + rnd = 0.2 + random() * 0.2; + flamePrototype.name_627(this,time,pos,0,rnd,rnd,1,0.5 * flamePrototype.atlas.rangeLength); + } + + private function method_530(keyTime:Number, time:Number) : void + { + for(var i:int = 0; i < 1; i++) + { + pos.x = random() * 10 - 10 * 0.5; + pos.y = random() * 10 - 10 * 0.5; + pos.z = 10 + random() * 10 * 0.5; + this.method_529(time,0.7 + random() * 0.5,pos); + smokePrototype.name_627(this,time,pos,random() - 0.5,1,1,1,random() * smokePrototype.atlas.rangeLength); + pos.x = 0; + pos.y = 0; + pos.z = 0; + this.method_529(time,0.7 + random() * 0.5,pos); + firePrototype.name_627(this,time,pos,random() - 0.5,1,1,0.2,random() * firePrototype.atlas.rangeLength); + } + } + + private function method_531(direction:Vector3D, angle:Number, result:Vector3D) : void + { + var x:Number = random() * 2 - 1; + var y:Number = random() * 2 - 1; + var z:Number = random() * 2 - 1; + result.x = direction.z * y - direction.y * z; + result.y = direction.x * z - direction.z * x; + result.z = direction.y * x - direction.x * y; + result.normalize(); + result.scaleBy(Math.sin(angle / 2)); + result.x += direction.x; + result.y += direction.y; + result.z += direction.z; + result.normalize(); + } + + private function method_529(time:Number, factor:Number, result:Vector3D) : void + { + result.x += time * windSpeed * var_5.wind.x; + result.y += time * windSpeed * var_5.wind.y; + result.z += time * windSpeed * var_5.wind.z + time * liftSpeed * factor; + } + } +} + diff --git a/src/package_72/name_260.as b/src/package_72/name_260.as new file mode 100644 index 0000000..f91e7fc --- /dev/null +++ b/src/package_72/name_260.as @@ -0,0 +1,131 @@ +package package_72 +{ + import alternativa.engine3d.alternativa3d; + import package_18.name_44; + import package_18.name_85; + import package_18.name_90; + import package_19.name_494; + import package_26.class_18; + import package_26.name_402; + import package_4.class_4; + import package_45.name_182; + import package_46.name_194; + + public class name_260 extends class_18 implements name_85 + { + private var sprite:name_494; + + private var var_458:Number; + + private var currFrame:Number; + + private var frames:Vector.; + + private var numFrames:int; + + private var position:name_194 = new name_194(); + + private var loop:Boolean; + + private var velocity:name_194 = new name_194(); + + private var acceleration:Number; + + public function name_260(objectPool:name_402) + { + super(objectPool); + } + + public function init(width:Number, height:Number, frames:Vector., position:name_194, velocity:name_194, acceleration:Number, rotation:Number, fps:Number, loop:Boolean, originX:Number = 0.5, originY:Number = 0.5) : void + { + this.method_444(width,height,rotation,originX,originY); + this.frames = frames; + this.var_458 = 0.001 * fps; + this.position.copy(position); + this.velocity.copy(velocity); + this.acceleration = acceleration; + this.loop = loop; + this.numFrames = frames.length; + this.currFrame = 0; + } + + public function name_201(position:name_194) : void + { + this.position.copy(position); + } + + public function addedToRenderSystem(system:name_44) : void + { + system.method_60().addChild(this.sprite); + } + + public function play(camera:name_90) : Boolean + { + if(!this.loop && this.currFrame >= this.numFrames) + { + return false; + } + var dt:Number = name_182.timeDeltaSeconds; + this.sprite.x = this.position.x; + this.sprite.y = this.position.y; + this.sprite.z = this.position.z; + this.position.method_362(dt,this.velocity); + var speed:Number = this.velocity.length(); + speed += this.acceleration * dt; + if(speed <= 0) + { + this.velocity.x = 0; + this.velocity.y = 0; + this.velocity.z = 0; + } + else + { + this.velocity.normalize(); + this.velocity.x *= speed; + this.velocity.y *= speed; + this.velocity.z *= speed; + } + this.sprite.material = this.frames[int(this.currFrame)]; + this.currFrame += this.var_458 * name_182.timeDelta; + if(this.loop) + { + while(this.currFrame >= this.numFrames) + { + this.currFrame -= this.numFrames; + } + } + return true; + } + + public function destroy() : void + { + this.sprite.alternativa3d::removeFromParent(); + this.sprite.material = null; + this.frames = null; + method_254(); + } + + public function method_255() : void + { + this.loop = false; + this.currFrame = this.numFrames; + } + + private function method_444(width:Number, height:Number, rotation:Number, originX:Number, originY:Number) : void + { + if(this.sprite == null) + { + this.sprite = new name_494(width,height); + } + else + { + this.sprite.width = width; + this.sprite.height = height; + } + this.sprite.rotation = rotation; + this.sprite.originX = originX; + this.sprite.originY = originY; + } + } +} + diff --git a/src/package_72/name_264.as b/src/package_72/name_264.as new file mode 100644 index 0000000..dd88bba --- /dev/null +++ b/src/package_72/name_264.as @@ -0,0 +1,105 @@ +package package_72 +{ + import alternativa.engine3d.alternativa3d; + import package_18.name_44; + import package_18.name_85; + import package_18.name_90; + import package_19.name_380; + import package_26.class_18; + import package_26.name_402; + import package_28.name_119; + import package_4.class_4; + import package_45.name_182; + import package_46.name_194; + + use namespace alternativa3d; + + public class name_264 extends class_18 implements name_85 + { + private static var geometry:name_119; + + private var plane:name_380; + + private var frames:Vector.; + + private var fps:Number; + + private var var_472:Number; + + private var numFrames:int; + + private var sizeGrowSpeed:Number; + + private var size:Number; + + private var renderSystem:name_44; + + public function name_264(objectPool:name_402) + { + super(objectPool); + if(geometry == null) + { + this.method_471(); + } + this.plane = new name_380(); + this.plane.geometry = geometry; + this.plane.addSurface(null,0,geometry.numTriangles); + this.plane.calculateBoundBox(); + } + + public function init(startSize:Number, position:name_194, rotation:name_194, frames:Vector., fps:Number, sizeGrowSpeed:Number) : void + { + this.frames = frames; + this.fps = fps; + this.sizeGrowSpeed = sizeGrowSpeed; + this.var_472 = 0; + this.numFrames = frames.length; + this.size = startSize; + this.plane.scaleX = startSize; + this.plane.scaleY = startSize; + this.plane.x = position.x; + this.plane.y = position.y; + this.plane.z = position.z; + this.plane.rotationX = rotation.x; + this.plane.rotationY = rotation.y; + this.plane.rotationZ = rotation.z; + } + + public function addedToRenderSystem(renderSystem:name_44) : void + { + this.renderSystem = renderSystem; + renderSystem.method_29(geometry); + renderSystem.method_60().addChild(this.plane); + } + + public function play(camera:name_90) : Boolean + { + if(this.var_472 >= this.numFrames) + { + return false; + } + this.plane.setMaterialToAllSurfaces(this.frames[int(this.var_472)]); + this.plane.scaleX = this.size; + this.plane.scaleY = this.size; + var dt:Number = name_182.timeDeltaSeconds; + this.size += this.sizeGrowSpeed * dt; + this.var_472 += this.fps * dt; + return true; + } + + public function destroy() : void + { + this.renderSystem.method_28(geometry); + this.plane.alternativa3d::removeFromParent(); + this.plane.setMaterialToAllSurfaces(null); + this.frames = null; + method_254(); + } + + private function method_471() : void + { + geometry = new name_520(1,1).geometry; + } + } +} + diff --git a/src/package_72/name_295.as b/src/package_72/name_295.as new file mode 100644 index 0000000..f93093d --- /dev/null +++ b/src/package_72/name_295.as @@ -0,0 +1,122 @@ +package package_72 +{ + import flash.media.Sound; + import package_10.class_17; + import package_10.name_17; + import package_115.class_26; + import package_28.name_129; + import package_46.name_194; + import package_75.class_15; + + public class name_295 extends class_17 implements class_26 + { + private var shotTextureResource:name_129; + + private var shotSound:Sound; + + private var gameKernel:name_17; + + private var turret:class_15; + + public function name_295(shotTextureResource:name_129, shotSound:Sound) + { + super(); + this.shotTextureResource = shotTextureResource; + this.shotSound = shotSound; + } + + override public function initComponent() : void + { + this.turret = class_15(entity.getComponentStrict(class_15)); + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + } + + override public function removeFromGame(gameKernel:name_17) : void + { + } + + public function method_411(barrelIndex:int, barrelOrigin:name_194, muzzlePosition:name_194, gunDirection:name_194, gunElevationAxis:name_194) : void + { + var simpleWeaponShotEffect:SimpleWeaponShotEffect = SimpleWeaponShotEffect(this.gameKernel.method_108().name_110(SimpleWeaponShotEffect)); + simpleWeaponShotEffect.init(barrelIndex,this.turret,this.shotTextureResource,100); + this.gameKernel.name_5().method_37(simpleWeaponShotEffect); + } + } +} + +import alternativa.engine3d.alternativa3d; +import package_18.name_44; +import package_18.name_85; +import package_18.name_90; +import package_19.name_380; +import package_26.class_18; +import package_26.name_402; +import package_27.name_519; +import package_28.name_129; +import package_4.class_5; +import package_45.name_182; +import package_46.name_194; +import package_75.class_15; + +use namespace alternativa3d; + +class SimpleWeaponShotEffect extends class_18 implements name_85 +{ + private static var muzzlePosition:name_194 = new name_194(); + + private static var gunDirection:name_194 = new name_194(); + + private var turret:class_15; + + private var mesh:name_380; + + private var material:class_5; + + private var timeToLive:int; + + private var barrelIndex:int; + + public function SimpleWeaponShotEffect(objectPool:name_402) + { + super(objectPool); + this.mesh = new name_520(40,250,0,250 / 2); + this.material = new class_5(); + this.material.var_21 = true; + this.mesh.setMaterialToAllSurfaces(this.material); + } + + public function init(barrelIndex:int, turret:class_15, textureResource:name_129, timeToLive:int) : void + { + this.barrelIndex = barrelIndex; + this.turret = turret; + this.timeToLive = timeToLive; + this.material.diffuseMap = textureResource; + } + + public function addedToRenderSystem(system:name_44) : void + { + system.method_29(this.mesh.geometry); + system.method_60().addChild(this.mesh); + } + + public function play(camera:name_90) : Boolean + { + if(this.timeToLive < 0) + { + return false; + } + this.turret.getGunMuzzleData(this.barrelIndex,muzzlePosition,gunDirection); + name_519.name_521(this.mesh,muzzlePosition,gunDirection,camera.position); + this.timeToLive -= name_182.timeDelta; + return true; + } + + public function destroy() : void + { + this.mesh.alternativa3d::removeFromParent(); + } +} diff --git a/src/package_72/name_520.as b/src/package_72/name_520.as new file mode 100644 index 0000000..7c58226 --- /dev/null +++ b/src/package_72/name_520.as @@ -0,0 +1,53 @@ +package package_72 +{ + import package_19.name_380; + import package_21.name_126; + import package_28.name_119; + + public class name_520 extends name_380 + { + public function name_520(sizeX:Number, sizeY:Number, offsetX:Number = 0, offsetY:Number = 0) + { + super(); + geometry = new name_119(); + var attributes:Array = []; + attributes[0] = name_126.POSITION; + attributes[1] = name_126.POSITION; + attributes[2] = name_126.POSITION; + attributes[3] = name_126.TEXCOORDS[0]; + attributes[4] = name_126.TEXCOORDS[0]; + geometry.addVertexStream(attributes); + geometry.numVertices = 4; + var vc:Vector. = new Vector.(12); + var hsx:Number = sizeX / 2; + var hsy:Number = sizeY / 2; + vc[0] = offsetX - hsx; + vc[1] = offsetY - hsy; + vc[2] = 0; + vc[3] = offsetX + hsx; + vc[4] = offsetY - hsy; + vc[5] = 0; + vc[6] = offsetX + hsx; + vc[7] = offsetY + hsy; + vc[8] = 0; + vc[9] = offsetX - hsx; + vc[10] = offsetY + hsy; + vc[11] = 0; + geometry.setAttributeValues(name_126.POSITION,vc); + var uvs:Vector. = new Vector.(8); + uvs[0] = 0; + uvs[1] = 1; + uvs[2] = 1; + uvs[3] = 1; + uvs[4] = 1; + uvs[5] = 0; + uvs[6] = 0; + uvs[7] = 0; + geometry.setAttributeValues(name_126.TEXCOORDS[0],uvs); + geometry.indices = Vector.([0,1,2,0,2,3]); + addSurface(null,0,2); + calculateBoundBox(); + } + } +} + diff --git a/src/package_72/name_764.as b/src/package_72/name_764.as new file mode 100644 index 0000000..4787d7f --- /dev/null +++ b/src/package_72/name_764.as @@ -0,0 +1,107 @@ +package package_72 +{ + public class name_764 + { + private var initialInterval:int; + + private var minInterval:int; + + private var intervalDecrement:int; + + private var maxValue:Number; + + private var minValue:Number; + + private var speedCoeff:Number; + + private var value:Number; + + private var speed:Number; + + private var var_738:Number; + + private var var_739:int; + + private var var_737:int; + + public function name_764(initialInterval:int, minInterval:int, intervalDecrement:int, minValue:Number, maxValue:Number, speedCoeff:Number) + { + super(); + this.initialInterval = initialInterval; + this.minInterval = minInterval; + this.intervalDecrement = intervalDecrement; + this.minValue = minValue; + this.maxValue = maxValue; + this.speedCoeff = speedCoeff; + this.var_738 = maxValue - minValue; + } + + public function init(now:int) : void + { + this.value = this.maxValue; + this.var_737 = this.initialInterval; + this.speed = this.method_930(-1); + this.var_739 = now + this.var_737; + } + + public function method_931(value:Number) : void + { + if(value < this.minValue) + { + return; + } + this.maxValue = value; + this.var_738 = this.maxValue - this.minValue; + } + + public function name_765(value:Number) : void + { + if(value > this.maxValue) + { + return; + } + this.minValue = value; + this.var_738 = this.maxValue - this.minValue; + } + + public function name_766(now:int, delta:int) : Number + { + this.value += this.speed * delta; + if(this.value > this.maxValue) + { + this.value = this.maxValue; + } + if(this.value < this.minValue) + { + this.value = this.minValue; + } + if(now >= this.var_739) + { + if(this.var_737 > this.minInterval) + { + this.var_737 -= this.intervalDecrement; + if(this.var_737 < this.minInterval) + { + this.var_737 = this.minInterval; + } + } + this.var_739 = now + this.var_737; + if(this.speed < 0) + { + this.speed = this.method_930(1); + } + else + { + this.speed = this.method_930(-1); + } + } + return this.value; + } + + private function method_930(direction:Number) : Number + { + return direction * this.speedCoeff * this.var_738 / this.var_737; + } + } +} + diff --git a/src/package_73/class_13.as b/src/package_73/class_13.as new file mode 100644 index 0000000..1a6f6d8 --- /dev/null +++ b/src/package_73/class_13.as @@ -0,0 +1,8 @@ +package package_73 +{ + public interface class_13 + { + function createData(param1:Object) : Object; + } +} + diff --git a/src/package_73/name_293.as b/src/package_73/name_293.as new file mode 100644 index 0000000..6ae1641 --- /dev/null +++ b/src/package_73/name_293.as @@ -0,0 +1,43 @@ +package package_73 +{ + import flash.utils.Dictionary; + + public class name_293 + { + private var map:Dictionary; + + public function name_293() + { + super(); + this.map = new Dictionary(); + } + + public function method_84(key:Object, factory:class_13 = null) : Object + { + var data:Object = this.map[key]; + if(data == null && factory != null) + { + data = factory.createData(key); + this.map[key] = data; + } + return data; + } + + public function method_374() : Vector. + { + var key:* = undefined; + var keys:Vector. = new Vector.(); + for(key in this.map) + { + keys.push(key); + } + return keys; + } + + public function clear() : void + { + this.map = new Dictionary(); + } + } +} + diff --git a/src/package_74/class_14.as b/src/package_74/class_14.as new file mode 100644 index 0000000..c13b564 --- /dev/null +++ b/src/package_74/class_14.as @@ -0,0 +1,8 @@ +package package_74 +{ + public interface class_14 + { + function getRound() : name_233; + } +} + diff --git a/src/package_74/class_23.as b/src/package_74/class_23.as new file mode 100644 index 0000000..c7b355e --- /dev/null +++ b/src/package_74/class_23.as @@ -0,0 +1,8 @@ +package package_74 +{ + public interface class_23 + { + function getRound(param1:name_496, param2:Number) : name_233; + } +} + diff --git a/src/package_74/class_24.as b/src/package_74/class_24.as new file mode 100644 index 0000000..ef0e7b2 --- /dev/null +++ b/src/package_74/class_24.as @@ -0,0 +1,12 @@ +package package_74 +{ + public interface class_24 + { + function method_394() : void; + + function method_393() : void; + + function method_395() : void; + } +} + diff --git a/src/package_74/class_25.as b/src/package_74/class_25.as new file mode 100644 index 0000000..7b0523e --- /dev/null +++ b/src/package_74/class_25.as @@ -0,0 +1,8 @@ +package package_74 +{ + public interface class_25 + { + function method_396() : Number; + } +} + diff --git a/src/package_74/name_233.as b/src/package_74/name_233.as new file mode 100644 index 0000000..c74f934 --- /dev/null +++ b/src/package_74/name_233.as @@ -0,0 +1,12 @@ +package package_74 +{ + import package_10.name_17; + import package_46.name_194; + import package_92.name_271; + + public interface name_233 + { + function method_372(param1:name_17, param2:int, param3:name_271, param4:name_194, param5:Number, param6:name_194, param7:name_194) : void; + } +} + diff --git a/src/package_74/name_240.as b/src/package_74/name_240.as new file mode 100644 index 0000000..dc1489d --- /dev/null +++ b/src/package_74/name_240.as @@ -0,0 +1,21 @@ +package package_74 +{ + import package_79.name_326; + import package_92.name_271; + + public class name_240 implements name_326 + { + public static const INSTANCE:name_240 = new name_240(); + + public function name_240() + { + super(); + } + + public function name_541(shooter:name_271, target:name_271, distance:Number, angle:Number) : Number + { + return 1; + } + } +} + diff --git a/src/package_74/name_263.as b/src/package_74/name_263.as new file mode 100644 index 0000000..611094c --- /dev/null +++ b/src/package_74/name_263.as @@ -0,0 +1,224 @@ +package package_74 +{ + import package_10.class_17; + import package_10.name_17; + import package_10.name_57; + import package_115.class_26; + import package_27.name_501; + import package_42.name_184; + import package_42.name_477; + import package_45.name_182; + import package_46.name_194; + import package_71.name_252; + import package_75.class_15; + import package_75.name_236; + import package_92.name_271; + + public class name_263 extends class_17 implements class_25, class_24, name_477 + { + private static var barrelOrigin:name_194 = new name_194(); + + private static var muzzlePosition:name_194 = new name_194(); + + private static var gunDirection:name_194 = new name_194(); + + private static var gunElevationAxis:name_194 = new name_194(); + + private static var shotDirection:name_194 = new name_194(); + + private static var recoilForceVector:name_194 = new name_194(); + + private static const BARREL_INDEX:int = 0; + + private var reloadTime:int; + + private var recoilForce:Number; + + private var targetingSystem:name_524; + + private var ammunition:class_14; + + private var callback:name_523; + + private var var_446:int; + + private var var_445:class_15; + + private var chassisComponent:name_236; + + private var var_447:class_26; + + private var var_440:name_184; + + private var var_439:Boolean; + + private var var_438:Boolean; + + private var var_441:Boolean; + + private var var_448:int; + + private var gameKernel:name_17; + + private var isActive:Boolean; + + public function name_263(reloadTime:int, recoilForce:Number, targetingSystem:name_524, ammunition:class_14, callback:name_523, isActive:Boolean) + { + super(); + this.reloadTime = reloadTime; + this.recoilForce = recoilForce; + this.targetingSystem = targetingSystem; + this.ammunition = ammunition; + this.callback = callback; + this.isActive = isActive; + } + + override public function initComponent() : void + { + this.var_445 = class_15(entity.getComponentStrict(class_15)); + this.chassisComponent = name_236(entity.getComponentStrict(name_236)); + this.var_447 = class_26(entity.getComponentStrict(class_26)); + if(this.isActive) + { + entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.setActiveState); + entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.method_400); + entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_400); + entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.method_400); + entity.addEventHandler(name_57.BATTLE_FINISHED,this.method_400); + } + } + + private function setActiveState(eventType:String, eventData:*) : void + { + this.name_308 = true; + } + + private function method_400(eventType:String, eventData:*) : void + { + this.name_308 = false; + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + this.var_440 = gameKernel.getLogicSystem2(); + } + + override public function removeFromGame(gameKernel:name_17) : void + { + this.var_440 = null; + this.gameKernel = null; + } + + public function method_396() : Number + { + var readiness:Number = 1 + (name_182.time - this.var_446) / this.reloadTime; + return readiness > 1 ? 1 : readiness; + } + + public function method_394() : void + { + if(!this.var_438) + { + this.var_438 = true; + if(this.var_439) + { + this.method_403(); + } + } + } + + public function method_393() : void + { + if(this.var_438) + { + this.var_438 = false; + this.method_401(); + } + } + + public function method_395() : void + { + this.runLogic(); + } + + public function runLogic() : void + { + if(name_182.time < this.var_446) + { + return; + } + this.var_446 = name_182.time + this.reloadTime; + if(this.callback != null) + { + this.callback.name_526(); + } + this.var_445.getGunData(BARREL_INDEX,barrelOrigin,gunDirection,gunElevationAxis); + var barrelLength:Number = Number(this.var_445.getBarrelLength(BARREL_INDEX)); + muzzlePosition.copy(barrelOrigin).method_362(barrelLength,gunDirection); + this.method_415(barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis); + var shotId:int = this.var_448++; + var shooterBody:name_271 = this.chassisComponent.getBody(); + this.targetingSystem.name_527(shooterBody,muzzlePosition,barrelOrigin,gunDirection,barrelLength,gunElevationAxis,name_501.BIG_VALUE,shotDirection); + var round:name_233 = this.ammunition.getRound(); + round.method_372(this.gameKernel,shotId,shooterBody,barrelOrigin,barrelLength,shotDirection,muzzlePosition); + } + + public function get name_308() : Boolean + { + return this.var_439; + } + + public function set name_308(value:Boolean) : void + { + if(this.var_439 != value) + { + this.var_439 = value; + if(this.var_439) + { + if(this.var_438) + { + this.method_403(); + } + } + else + { + this.method_401(); + } + } + } + + public function method_416() : void + { + this.var_445.getGunData(BARREL_INDEX,barrelOrigin,gunDirection,gunElevationAxis); + muzzlePosition.copy(barrelOrigin).method_362(this.var_445.getBarrelLength(BARREL_INDEX),gunDirection); + this.method_415(barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis); + } + + private function method_415(barrelOrigin:name_194, muzzlePosition:name_194, gunDirection:name_194, gunElevationAxis:name_194) : void + { + recoilForceVector.copy(gunDirection).scale(-this.recoilForce); + this.chassisComponent.getBody().name_525(barrelOrigin,recoilForceVector); + this.var_447.method_411(BARREL_INDEX,barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis); + } + + private function method_403() : void + { + if(!this.var_441) + { + this.var_441 = true; + this.var_440.addLogicUnit(this); + } + } + + private function method_401() : void + { + if(this.var_441) + { + this.var_441 = false; + this.var_440.removeLogicUnit(this); + } + } + } +} + diff --git a/src/package_74/name_283.as b/src/package_74/name_283.as new file mode 100644 index 0000000..0975860 --- /dev/null +++ b/src/package_74/name_283.as @@ -0,0 +1,299 @@ +package package_74 +{ + import package_10.class_17; + import package_10.name_17; + import package_10.name_57; + import package_115.class_26; + import package_42.name_184; + import package_42.name_477; + import package_45.name_182; + import package_46.name_194; + import package_71.name_252; + import package_75.class_15; + import package_75.name_236; + import package_76.name_256; + import package_79.name_622; + import package_86.name_257; + import package_86.name_540; + import package_90.name_273; + import package_92.name_271; + + public class name_283 extends class_17 implements class_24, class_25, name_477 + { + private static const COLLISION_MASK:int = name_257.STATIC | name_257.WEAPON; + + private static var rayHit:name_273 = new name_273(); + + private static var filter:name_540 = new name_540(); + + private static var barrelOrigin:name_194 = new name_194(); + + private static var muzzlePosition:name_194 = new name_194(); + + private static var gunDirection:name_194 = new name_194(); + + private static var gunElevationAxis:name_194 = new name_194(); + + private static var shotDirection:name_194 = new name_194(); + + private static var recoilForceVector:name_194 = new name_194(); + + private var energyCapacity:Number; + + private var energyPerShot:Number; + + private var energyRechargeRate:Number; + + private var reloadTime:int; + + private var recoilForce:Number; + + private var targetingSystem:name_622; + + private var ammunition:class_23; + + private var callback:name_621; + + private var isActive:Boolean; + + private var var_439:Boolean; + + private var var_438:Boolean; + + private var var_441:Boolean; + + private var var_440:name_184; + + private var gameKernel:name_17; + + private var baseTime:int; + + private var var_446:int; + + private var var_445:class_15; + + private var chassisComponent:name_236; + + private var var_447:class_26; + + private var var_448:int; + + private var maxRange:Number; + + private var barrelIndex:int; + + public function name_283(energyCapacity:Number, energyPerShot:Number, energyRechargeRate:Number, reloadTime:int, recoilForce:Number, maxRange:Number, targetingSystem:name_622, callback:name_621, isActive:Boolean) + { + super(); + this.energyCapacity = energyCapacity; + this.energyPerShot = energyPerShot; + this.energyRechargeRate = energyRechargeRate; + this.reloadTime = reloadTime; + this.recoilForce = recoilForce; + this.maxRange = maxRange; + this.targetingSystem = targetingSystem; + this.callback = callback; + this.isActive = isActive; + } + + public function method_383(callback:name_621) : void + { + this.callback = callback; + } + + public function method_528(targetingSystem:name_622) : void + { + this.targetingSystem = targetingSystem; + } + + override public function initComponent() : void + { + this.var_445 = class_15(entity.getComponentStrict(class_15)); + this.chassisComponent = name_236(entity.getComponentStrict(name_236)); + this.var_447 = class_26(entity.getComponentStrict(class_26)); + this.ammunition = class_23(entity.getComponentStrict(class_23)); + if(this.isActive) + { + entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.setActiveState); + entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.method_400); + entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_400); + entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.method_400); + entity.addEventHandler(name_57.BATTLE_FINISHED,this.method_400); + } + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + this.var_440 = gameKernel.getLogicSystem2(); + } + + override public function removeFromGame(gameKernel:name_17) : void + { + this.var_440 = null; + this.gameKernel = null; + } + + public function method_394() : void + { + if(!this.var_438) + { + this.var_438 = true; + if(this.var_439) + { + this.method_403(); + } + } + } + + public function method_393() : void + { + if(this.var_438) + { + this.var_438 = false; + this.method_401(); + } + } + + public function method_395() : void + { + this.runLogic(); + } + + public function method_396() : Number + { + return this.method_398(name_182.time,this.baseTime) / this.energyCapacity; + } + + public function runLogic() : void + { + var barrelLength:Number = NaN; + var shotId:int = 0; + var shooterBody:name_271 = null; + var collisionDetector:name_256 = null; + var shotType:name_496 = null; + var round:name_233 = null; + var now:int = name_182.time; + var currentEnergy:Number = this.method_398(now,this.baseTime); + if(now >= this.var_446 && currentEnergy >= this.energyPerShot) + { + this.var_446 = now + this.reloadTime; + this.baseTime = now - 1000 * (currentEnergy - this.energyPerShot) / this.energyRechargeRate; + this.var_445.getGunData(this.barrelIndex,barrelOrigin,gunDirection,gunElevationAxis); + barrelLength = Number(this.var_445.getBarrelLength(this.barrelIndex)); + muzzlePosition.copy(barrelOrigin).method_362(barrelLength,gunDirection); + shotId = this.var_448++; + shooterBody = this.chassisComponent.getBody(); + collisionDetector = this.gameKernel.method_112().name_246().collisionDetector; + filter.body = shooterBody; + if(collisionDetector.raycast(barrelOrigin,gunDirection,COLLISION_MASK,barrelLength + 0.01,filter,rayHit)) + { + shotType = name_496.CLOSE_SHOT; + shotDirection.copy(gunDirection); + } + else + { + shotType = name_496.NORMAL_SHOT; + this.targetingSystem.name_624(shooterBody,muzzlePosition,gunDirection,gunElevationAxis,this.maxRange,shotDirection); + } + filter.body = null; + this.method_415(shotType,this.barrelIndex,barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis); + if(this.callback != null) + { + this.callback.name_623(shotId,shotType,shotDirection,this.barrelIndex); + } + round = this.ammunition.getRound(shotType,this.maxRange); + round.method_372(this.gameKernel,shotId,shooterBody,barrelOrigin,barrelLength,shotDirection,muzzlePosition); + this.barrelIndex = (this.barrelIndex + 1) % this.var_445.getBarrelCount(); + } + } + + public function method_372(shotId:int, shotType:name_496, shotDirection:name_194, barrelIndex:int) : void + { + var shooterBody:name_271 = this.chassisComponent.getBody(); + var barrelLength:Number = Number(this.var_445.getBarrelLength(barrelIndex)); + this.var_445.getGunData(barrelIndex,barrelOrigin,gunDirection,gunElevationAxis); + muzzlePosition.copy(barrelOrigin).method_362(barrelLength,gunDirection); + this.method_415(shotType,barrelIndex,barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis); + var round:name_233 = this.ammunition.getRound(shotType,this.maxRange); + round.method_372(this.gameKernel,shotId,shooterBody,barrelOrigin,barrelLength,shotDirection,muzzlePosition); + } + + public function get name_308() : Boolean + { + return this.var_439; + } + + public function set name_308(value:Boolean) : void + { + if(this.var_439 != value) + { + this.var_439 = value; + if(this.var_439) + { + if(this.var_438) + { + this.method_403(); + } + } + else + { + this.method_401(); + } + } + } + + private function method_415(shotType:name_496, barrelIndex:int, barrelOrigin:name_194, muzzlePosition:name_194, gunDirection:name_194, gunElevationAxis:name_194) : void + { + recoilForceVector.copy(gunDirection).scale(-this.recoilForce); + this.chassisComponent.getBody().name_525(barrelOrigin,recoilForceVector); + if(shotType == name_496.NORMAL_SHOT) + { + this.var_447.method_411(barrelIndex,barrelOrigin,muzzlePosition,gunDirection,gunElevationAxis); + } + } + + private function setActiveState(eventType:String, eventData:*) : void + { + this.name_308 = true; + } + + private function method_400(eventType:String, eventData:*) : void + { + this.name_308 = false; + } + + private function method_403() : void + { + if(!this.var_441) + { + this.var_441 = true; + this.var_440.addLogicUnit(this); + } + } + + private function method_401() : void + { + if(this.var_441) + { + this.var_441 = false; + this.var_440.removeLogicUnit(this); + } + } + + private function method_398(time:int, baseTime:int) : Number + { + var energy:Number = 0.001 * (time - baseTime) * this.energyRechargeRate; + if(energy < 0) + { + return 0; + } + if(energy > this.energyCapacity) + { + return this.energyCapacity; + } + return energy; + } + } +} + diff --git a/src/package_74/name_286.as b/src/package_74/name_286.as new file mode 100644 index 0000000..5b9806e --- /dev/null +++ b/src/package_74/name_286.as @@ -0,0 +1,235 @@ +package package_74 +{ + import package_10.class_17; + import package_10.name_17; + import package_10.name_57; + import package_39.name_160; + import package_42.name_184; + import package_42.name_477; + import package_45.name_182; + import package_5.name_3; + import package_71.name_252; + + public class name_286 extends class_17 implements class_25, class_24, name_477 + { + private var energyCapacity:Number; + + private var energyDrainRate:Number; + + private var energyRecoveryRate:Number; + + private var var_442:name_508; + + private var baseTime:Number; + + private var var_437:Boolean; + + private var var_438:Boolean; + + private var var_439:Boolean; + + private var var_441:Boolean; + + private var isLocal:Boolean; + + private var gameKernel:name_17; + + private var var_440:name_184; + + public function name_286(energyCapacity:Number, energyDrainRate:Number, energyRecoveryRate:Number, isLocal:Boolean) + { + super(); + this.energyCapacity = energyCapacity; + this.energyDrainRate = energyDrainRate; + this.energyRecoveryRate = energyRecoveryRate; + this.isLocal = isLocal; + this.baseTime = -1000; + } + + public function get name_308() : Boolean + { + return this.var_439; + } + + public function set name_308(value:Boolean) : void + { + if(this.var_439 != value) + { + this.var_439 = value; + if(value) + { + if(this.var_438) + { + this.method_397().log("gun","ContinuousActionGunPlatformComponent::enabled() activating"); + this.method_402(); + this.method_403(); + } + } + else + { + this.method_397().log("gun","ContinuousActionGunPlatformComponent::enabled() deactivating"); + this.method_399(); + this.method_401(); + } + } + } + + override public function initComponent() : void + { + this.var_442 = name_508(entity.getComponentStrict(name_508)); + if(this.isLocal) + { + entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.setActiveState); + entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.setActivatingState); + entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_400); + entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.method_400); + entity.addEventHandler(name_57.BATTLE_FINISHED,this.method_400); + } + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + this.var_440 = gameKernel.getLogicSystem2(); + } + + override public function removeFromGame(gameKernel:name_17) : void + { + this.var_440 = null; + this.gameKernel = null; + } + + public function method_396() : Number + { + return this.method_398(name_182.timeSeconds,this.var_437) / this.energyCapacity; + } + + public function method_394() : void + { + if(!this.var_438) + { + this.method_397().log("gun","ContinuousActionGunPlatformComponent::pullTrigger()"); + this.var_438 = true; + this.method_402(); + this.method_403(); + } + } + + public function method_393() : void + { + if(this.var_438) + { + this.method_397().log("gun","ContinuousActionGunPlatformComponent::releaseTrigger()"); + this.var_438 = false; + this.method_399(); + this.method_401(); + } + } + + private function method_397() : name_160 + { + return name_160(name_3.name_8().name_30(name_160)); + } + + public function method_395() : void + { + } + + public function runLogic() : void + { + var currentEnergy:Number = this.method_398(name_182.timeSeconds,this.var_437); + if(currentEnergy > 0) + { + this.var_442.update(); + } + else + { + this.method_399(); + this.method_401(); + } + } + + private function method_398(time:Number, active:Boolean) : Number + { + var energy:Number = NaN; + if(active) + { + energy = this.energyCapacity - (time - this.baseTime) * this.energyDrainRate; + } + else + { + energy = (time - this.baseTime) * this.energyRecoveryRate; + } + if(energy < 0) + { + energy = 0; + } + else if(energy > this.energyCapacity) + { + energy = this.energyCapacity; + } + return energy; + } + + private function method_403() : void + { + if(!this.var_441 && this.var_439) + { + this.var_441 = true; + this.var_440.addLogicUnit(this); + } + } + + private function method_401() : void + { + if(this.var_441) + { + this.var_441 = false; + this.var_440.removeLogicUnit(this); + } + } + + private function method_402() : void + { + var now:Number = NaN; + var currentEnergy:Number = NaN; + if(!this.var_437 && this.var_439) + { + this.var_437 = true; + this.var_442.start(); + now = name_182.timeSeconds; + currentEnergy = this.method_398(now,false); + this.baseTime = now - (this.energyCapacity - currentEnergy) / this.energyDrainRate; + } + } + + private function method_399() : void + { + var now:Number = NaN; + if(this.var_437) + { + this.var_437 = false; + this.var_442.stop(); + now = name_182.timeSeconds; + this.baseTime = now - this.method_398(now,true) / this.energyRecoveryRate; + } + } + + private function setActiveState(eventType:String, eventData:*) : void + { + this.name_308 = true; + } + + private function method_400(eventType:String, eventData:*) : void + { + this.name_308 = false; + } + + private function setActivatingState(eventType:String, eventData:*) : void + { + this.name_308 = false; + this.baseTime = -100000; + } + } +} + diff --git a/src/package_74/name_307.as b/src/package_74/name_307.as new file mode 100644 index 0000000..089d37a --- /dev/null +++ b/src/package_74/name_307.as @@ -0,0 +1,13 @@ +package package_74 +{ + public class name_307 + { + public static const BASE_FORCE:Number = 5000000; + + public function name_307() + { + super(); + } + } +} + diff --git a/src/package_74/name_327.as b/src/package_74/name_327.as new file mode 100644 index 0000000..033b979 --- /dev/null +++ b/src/package_74/name_327.as @@ -0,0 +1,12 @@ +package package_74 +{ + public interface name_327 + { + function name_554(param1:Number) : Number; + + function method_467() : Number; + + function method_468() : Number; + } +} + diff --git a/src/package_74/name_496.as b/src/package_74/name_496.as new file mode 100644 index 0000000..3369a2a --- /dev/null +++ b/src/package_74/name_496.as @@ -0,0 +1,15 @@ +package package_74 +{ + public class name_496 + { + public static const NORMAL_SHOT:name_496 = new name_496(); + + public static const CLOSE_SHOT:name_496 = new name_496(); + + public function name_496() + { + super(); + } + } +} + diff --git a/src/package_74/name_508.as b/src/package_74/name_508.as new file mode 100644 index 0000000..dc82856 --- /dev/null +++ b/src/package_74/name_508.as @@ -0,0 +1,12 @@ +package package_74 +{ + public interface name_508 + { + function start() : void; + + function stop() : void; + + function update() : void; + } +} + diff --git a/src/package_74/name_523.as b/src/package_74/name_523.as new file mode 100644 index 0000000..bae6897 --- /dev/null +++ b/src/package_74/name_523.as @@ -0,0 +1,8 @@ +package package_74 +{ + public interface name_523 + { + function name_526() : void; + } +} + diff --git a/src/package_74/name_524.as b/src/package_74/name_524.as new file mode 100644 index 0000000..6d312a2 --- /dev/null +++ b/src/package_74/name_524.as @@ -0,0 +1,11 @@ +package package_74 +{ + import package_46.name_194; + import package_92.name_271; + + public interface name_524 + { + function name_527(param1:name_271, param2:name_194, param3:name_194, param4:name_194, param5:Number, param6:name_194, param7:Number, param8:name_194) : void; + } +} + diff --git a/src/package_74/name_553.as b/src/package_74/name_553.as new file mode 100644 index 0000000..aec5797 --- /dev/null +++ b/src/package_74/name_553.as @@ -0,0 +1,29 @@ +package package_74 +{ + import package_46.name_194; + import package_92.name_271; + + public class name_553 + { + public var distance:Number; + + public var body:name_271; + + public var position:name_194 = new name_194(); + + public var direction:name_194 = new name_194(); + + public var normal:name_194 = new name_194(); + + public function name_553() + { + super(); + } + + public function toString() : String + { + return "[WeaponHit distance=" + this.distance + ", body=" + this.body + ", position=" + this.position + ", direction=" + this.direction + ", normal=" + this.normal + "]"; + } + } +} + diff --git a/src/package_74/name_621.as b/src/package_74/name_621.as new file mode 100644 index 0000000..4094ab7 --- /dev/null +++ b/src/package_74/name_621.as @@ -0,0 +1,10 @@ +package package_74 +{ + import package_46.name_194; + + public interface name_621 + { + function name_623(param1:int, param2:name_496, param3:name_194, param4:int) : void; + } +} + diff --git a/src/package_75/class_15.as b/src/package_75/class_15.as new file mode 100644 index 0000000..b9344e8 --- /dev/null +++ b/src/package_75/class_15.as @@ -0,0 +1,41 @@ +package package_75 +{ + import package_46.Matrix4; + import package_46.name_194; + import package_71.name_234; + import package_76.name_235; + + public interface class_15 + { + function setTurret(param1:name_234) : void; + + function getTurretDirection() : Number; + + function setTurretDirection(param1:Number) : void; + + function setTurretControls(param1:int) : Boolean; + + function centerTurret(param1:Boolean) : void; + + function setTurretMountPoint(param1:name_194) : void; + + function getTurretPrimitives() : Vector.; + + function getChassisMatrix() : Matrix4; + + function getInterpolatedTurretDirection() : Number; + + function getSkinMountPoint(param1:name_194) : void; + + function getGunData(param1:int, param2:name_194, param3:name_194, param4:name_194) : void; + + function getGunMuzzleData(param1:int, param2:name_194, param3:name_194) : void; + + function getGunMuzzleData2(param1:int, param2:name_194, param3:name_194) : void; + + function getBarrelLength(param1:int) : Number; + + function getBarrelCount() : int; + } +} + diff --git a/src/package_75/name_236.as b/src/package_75/name_236.as new file mode 100644 index 0000000..6d8da59 --- /dev/null +++ b/src/package_75/name_236.as @@ -0,0 +1,26 @@ +package package_75 +{ + import package_46.Matrix4; + import package_46.name_194; + import package_92.name_271; + + public interface name_236 + { + function setTurret(param1:class_15) : void; + + function name_503(param1:name_194) : void; + + function name_505(param1:name_194) : void; + + function name_502() : Matrix4; + + function getBody() : name_271; + + function method_473() : Vector.; + + function setDetailedCollisionGroup(param1:int) : void; + + function method_474(param1:String) : Number; + } +} + diff --git a/src/package_75/name_309.as b/src/package_75/name_309.as new file mode 100644 index 0000000..a3565d9 --- /dev/null +++ b/src/package_75/name_309.as @@ -0,0 +1,97 @@ +package package_75 +{ + import package_10.class_17; + import package_10.name_17; + import package_44.name_465; + import package_71.name_252; + + public class name_309 extends class_17 implements name_465 + { + private var chassisController:name_465; + + private var turretController:name_465; + + private var gameKernel:name_17; + + private var var_426:Boolean; + + public function name_309() + { + super(); + } + + public function method_463(chassisController:name_465) : void + { + this.chassisController = chassisController; + } + + public function name_507(turretController:name_465) : void + { + this.turretController = turretController; + } + + public function updateBeforeSimulation(physicsStep:int) : void + { + } + + public function updateAfterSimulation(physicsStep:int) : void + { + } + + public function interpolate(interpolationCoeff:Number) : void + { + this.chassisController.interpolate(interpolationCoeff); + this.turretController.interpolate(interpolationCoeff); + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + } + + override public function removeFromGame(gameKernel:name_17) : void + { + this.removeFromScene(); + this.chassisController = null; + this.turretController = null; + gameKernel = null; + } + + override public function initComponent() : void + { + entity.addEventHandler(name_252.SET_ACTIVATING_STATE,this.method_461); + entity.addEventHandler(name_252.SET_ACTIVE_STATE,this.method_461); + entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_461); + entity.addEventHandler(name_252.SET_RESPAWN_STATE,this.method_462); + } + + private function method_461(eventType:String, data:*) : void + { + this.addToScene(); + } + + private function method_462(eventType:String, data:*) : void + { + this.removeFromScene(); + } + + private function addToScene() : void + { + if(!this.var_426) + { + this.gameKernel.method_112().method_330(this); + this.var_426 = true; + } + } + + private function removeFromScene() : void + { + if(this.var_426) + { + this.gameKernel.method_112().method_332(this); + this.var_426 = false; + } + } + } +} + diff --git a/src/package_76/CollisionKdTree2D.as b/src/package_76/CollisionKdTree2D.as new file mode 100644 index 0000000..779f7d4 --- /dev/null +++ b/src/package_76/CollisionKdTree2D.as @@ -0,0 +1,310 @@ +package package_76 +{ + import package_90.name_386; + + public class CollisionKdTree2D + { + private static const nodeBoundBoxThreshold:name_386 = new name_386(); + + private static const splitCoordsX:Vector. = new Vector.(); + + private static const splitCoordsY:Vector. = new Vector.(); + + private static const splitCoordsZ:Vector. = new Vector.(); + + private static const _nodeBB:Vector. = new Vector.(6); + + private static const _bb:Vector. = new Vector.(6); + + public var threshold:Number = 0.1; + + public var var_681:int = 1; + + public var parentTree:name_663; + + public var parentNode:name_656; + + public var name_659:name_656; + + private var var_678:int; + + private var var_680:Number; + + private var var_677:Number; + + public function CollisionKdTree2D(parentTree:name_663, parentNode:name_656) + { + super(); + this.parentTree = parentTree; + this.parentNode = parentNode; + } + + public function name_669() : void + { + this.name_659 = new name_656(); + this.name_659.boundBox = this.parentNode.boundBox.clone(); + this.name_659.indices = new Vector.(); + var numObjects:int = int(this.parentNode.var_674.length); + for(var i:int = 0; i < numObjects; this.name_659.indices[i] = this.parentNode.var_674[i],i++) + { + } + this.splitNode(this.name_659); + splitCoordsX.length = splitCoordsY.length = splitCoordsZ.length = 0; + } + + private function splitNode(node:name_656) : void + { + var objects:Vector. = null; + var i:int = 0; + var j:int = 0; + var nodeBoundBox:name_386 = null; + var numSplitCoordsX:int = 0; + var numSplitCoordsY:int = 0; + var numSplitCoordsZ:int = 0; + var bb:name_386 = null; + var min:Number = NaN; + var max:Number = NaN; + if(node.indices.length <= this.var_681) + { + return; + } + objects = node.indices; + nodeBoundBox = node.boundBox; + nodeBoundBoxThreshold.minX = nodeBoundBox.minX + this.threshold; + nodeBoundBoxThreshold.minY = nodeBoundBox.minY + this.threshold; + nodeBoundBoxThreshold.minZ = nodeBoundBox.minZ + this.threshold; + nodeBoundBoxThreshold.maxX = nodeBoundBox.maxX - this.threshold; + nodeBoundBoxThreshold.maxY = nodeBoundBox.maxY - this.threshold; + nodeBoundBoxThreshold.maxZ = nodeBoundBox.maxZ - this.threshold; + var doubleThreshold:Number = this.threshold * 2; + var staticBoundBoxes:Vector. = this.parentTree.staticBoundBoxes; + var numObjects:int = int(objects.length); + for(i = 0; i < numObjects; ) + { + bb = staticBoundBoxes[objects[i]]; + if(this.parentNode.axis != 0) + { + if(bb.minX > nodeBoundBoxThreshold.minX) + { + var _loc19_:* = numSplitCoordsX++; + splitCoordsX[_loc19_] = bb.minX; + } + if(bb.maxX < nodeBoundBoxThreshold.maxX) + { + _loc19_ = numSplitCoordsX++; + splitCoordsX[_loc19_] = bb.maxX; + } + } + if(this.parentNode.axis != 1) + { + if(bb.minY > nodeBoundBoxThreshold.minY) + { + _loc19_ = numSplitCoordsY++; + splitCoordsY[_loc19_] = bb.minY; + } + if(bb.maxY < nodeBoundBoxThreshold.maxY) + { + _loc19_ = numSplitCoordsY++; + splitCoordsY[_loc19_] = bb.maxY; + } + } + if(this.parentNode.axis != 2) + { + if(bb.minZ > nodeBoundBoxThreshold.minZ) + { + _loc19_ = numSplitCoordsZ++; + splitCoordsZ[_loc19_] = bb.minZ; + } + if(bb.maxZ < nodeBoundBoxThreshold.maxZ) + { + _loc19_ = numSplitCoordsZ++; + splitCoordsZ[_loc19_] = bb.maxZ; + } + } + i++; + } + this.var_678 = -1; + this.var_680 = 1e+308; + _nodeBB[0] = nodeBoundBox.minX; + _nodeBB[1] = nodeBoundBox.minY; + _nodeBB[2] = nodeBoundBox.minZ; + _nodeBB[3] = nodeBoundBox.maxX; + _nodeBB[4] = nodeBoundBox.maxY; + _nodeBB[5] = nodeBoundBox.maxZ; + if(this.parentNode.axis != 0) + { + this.method_834(node,0,numSplitCoordsX,splitCoordsX,_nodeBB); + } + if(this.parentNode.axis != 1) + { + this.method_834(node,1,numSplitCoordsY,splitCoordsY,_nodeBB); + } + if(this.parentNode.axis != 2) + { + this.method_834(node,2,numSplitCoordsZ,splitCoordsZ,_nodeBB); + } + if(this.var_678 < 0) + { + return; + } + var axisX:Boolean = this.var_678 == 0; + var axisY:Boolean = this.var_678 == 1; + node.axis = this.var_678; + node.coord = this.var_677; + node.name_657 = new name_656(); + node.name_657.parent = node; + node.name_657.boundBox = nodeBoundBox.clone(); + node.name_658 = new name_656(); + node.name_658.parent = node; + node.name_658.boundBox = nodeBoundBox.clone(); + if(axisX) + { + node.name_657.boundBox.maxX = node.name_658.boundBox.minX = this.var_677; + } + else if(axisY) + { + node.name_657.boundBox.maxY = node.name_658.boundBox.minY = this.var_677; + } + else + { + node.name_657.boundBox.maxZ = node.name_658.boundBox.minZ = this.var_677; + } + var coordMin:Number = this.var_677 - this.threshold; + var coordMax:Number = this.var_677 + this.threshold; + for(i = 0; i < numObjects; ) + { + bb = staticBoundBoxes[objects[i]]; + min = axisX ? bb.minX : (axisY ? bb.minY : bb.minZ); + max = axisX ? bb.maxX : (axisY ? bb.maxY : bb.maxZ); + if(max <= coordMax) + { + if(min < coordMin) + { + if(node.name_657.indices == null) + { + node.name_657.indices = new Vector.(); + } + node.name_657.indices.push(objects[i]); + objects[i] = -1; + } + } + else if(min >= coordMin) + { + if(max > coordMax) + { + if(node.name_658.indices == null) + { + node.name_658.indices = new Vector.(); + } + node.name_658.indices.push(objects[i]); + objects[i] = -1; + } + } + i++; + } + for(i = 0,j = 0; i < numObjects; ) + { + if(objects[i] >= 0) + { + _loc19_ = j++; + objects[_loc19_] = objects[i]; + } + i++; + } + if(j > 0) + { + objects.length = j; + } + else + { + node.indices = null; + } + if(node.name_657.indices != null) + { + this.splitNode(node.name_657); + } + if(node.name_658.indices != null) + { + this.splitNode(node.name_658); + } + } + + private function method_834(node:name_656, axis:int, numSplitCoords:int, splitCoords:Vector., bb:Vector.) : void + { + var currSplitCoord:Number = NaN; + var minCoord:Number = NaN; + var maxCoord:Number = NaN; + var areaNegative:Number = NaN; + var areaPositive:Number = NaN; + var numNegative:int = 0; + var numPositive:int = 0; + var conflict:Boolean = false; + var numObjects:int = 0; + var j:int = 0; + var cost:Number = NaN; + var boundBox:name_386 = null; + var axis1:int = (axis + 1) % 3; + var axis2:int = (axis + 2) % 3; + var area:Number = (bb[axis1 + 3] - bb[axis1]) * (bb[axis2 + 3] - bb[axis2]); + var staticBoundBoxes:Vector. = this.parentTree.staticBoundBoxes; + for(var i:int = 0; i < numSplitCoords; i++) + { + currSplitCoord = splitCoords[i]; + if(!isNaN(currSplitCoord)) + { + minCoord = currSplitCoord - this.threshold; + maxCoord = currSplitCoord + this.threshold; + areaNegative = area * (currSplitCoord - bb[axis]); + areaPositive = area * (bb[int(axis + 3)] - currSplitCoord); + numNegative = 0; + numPositive = 0; + conflict = false; + numObjects = int(node.indices.length); + for(j = 0; j < numObjects; ) + { + boundBox = staticBoundBoxes[node.indices[j]]; + _bb[0] = boundBox.minX; + _bb[1] = boundBox.minY; + _bb[2] = boundBox.minZ; + _bb[3] = boundBox.maxX; + _bb[4] = boundBox.maxY; + _bb[5] = boundBox.maxZ; + if(_bb[axis + 3] <= maxCoord) + { + if(_bb[axis] < minCoord) + { + numNegative++; + } + } + else + { + if(_bb[axis] < minCoord) + { + conflict = true; + break; + } + numPositive++; + } + j++; + } + cost = areaNegative * numNegative + areaPositive * numPositive; + if(!conflict && cost < this.var_680 && numNegative > 0 && numPositive > 0) + { + this.var_678 = axis; + this.var_680 = cost; + this.var_677 = currSplitCoord; + } + for(j = i + 1; j < numSplitCoords; ) + { + if(splitCoords[j] >= currSplitCoord - this.threshold && splitCoords[j] <= currSplitCoord + this.threshold) + { + splitCoords[j] = NaN; + } + j++; + } + } + } + } + } +} + diff --git a/src/package_76/name_235.as b/src/package_76/name_235.as new file mode 100644 index 0000000..fb18f51 --- /dev/null +++ b/src/package_76/name_235.as @@ -0,0 +1,111 @@ +package package_76 +{ + import package_46.Matrix4; + import package_46.name_194; + import package_90.name_386; + import package_92.name_271; + + public class name_235 + { + public static const BOX:int = 1; + + public static const PLANE:int = 2; + + public static const SPHERE:int = 4; + + public static const RECT:int = 8; + + public static const TRIANGLE:int = 16; + + public var type:int; + + public var collisionGroup:int; + + public var collisionMask:int; + + public var postCollisionFilter:name_485; + + public var body:name_271; + + public var localTransform:Matrix4; + + public var transform:Matrix4 = new Matrix4(); + + public var aabb:name_386 = new name_386(); + + public var timestamp:int; + + public function name_235(type:int, collisionGroup:int, collisionMask:int) + { + super(); + this.type = type; + this.collisionGroup = collisionGroup; + this.collisionMask = collisionMask; + } + + public function method_373(body:name_271, localTransform:Matrix4 = null) : void + { + if(this.body == body) + { + return; + } + this.body = body; + if(body != null) + { + if(localTransform != null) + { + if(this.localTransform == null) + { + this.localTransform = new Matrix4(); + } + this.localTransform.copy(localTransform); + } + else + { + this.localTransform = null; + } + } + } + + public function calculateAABB() : name_386 + { + return this.aabb; + } + + public function raycast(origin:name_194, vector:name_194, epsilon:Number, normal:name_194) : Number + { + return -1; + } + + public function clone() : name_235 + { + var p:name_235 = this.createPrimitive(); + return p.copyFrom(this); + } + + public function copyFrom(source:name_235) : name_235 + { + if(source == null) + { + throw new ArgumentError("Parameter source cannot be null"); + } + this.type = source.type; + this.transform.copy(source.transform); + this.collisionGroup = source.collisionGroup; + this.method_373(source.body,source.localTransform); + this.aabb.copyFrom(source.aabb); + return this; + } + + public function toString() : String + { + return "[CollisionPrimitive type=" + this.type + "]"; + } + + protected function createPrimitive() : name_235 + { + return new name_235(this.type,this.collisionGroup,this.collisionMask); + } + } +} + diff --git a/src/package_76/name_256.as b/src/package_76/name_256.as new file mode 100644 index 0000000..bc40725 --- /dev/null +++ b/src/package_76/name_256.as @@ -0,0 +1,20 @@ +package package_76 +{ + import package_46.name_194; + import package_90.name_273; + import package_92.name_630; + + public interface name_256 + { + function method_553(param1:name_630) : name_630; + + function raycast(param1:name_194, param2:name_194, param3:int, param4:Number, param5:name_631, param6:name_273) : Boolean; + + function name_324(param1:name_194, param2:name_194, param3:int, param4:Number, param5:name_631, param6:name_273) : Boolean; + + function getContact(param1:name_235, param2:name_235, param3:name_630) : Boolean; + + function method_554(param1:name_235, param2:name_235) : Boolean; + } +} + diff --git a/src/package_76/name_485.as b/src/package_76/name_485.as new file mode 100644 index 0000000..bda537c --- /dev/null +++ b/src/package_76/name_485.as @@ -0,0 +1,8 @@ +package package_76 +{ + public interface name_485 + { + function name_662(param1:name_235, param2:name_235) : Boolean; + } +} + diff --git a/src/package_76/name_604.as b/src/package_76/name_604.as new file mode 100644 index 0000000..4e00df5 --- /dev/null +++ b/src/package_76/name_604.as @@ -0,0 +1,10 @@ +package package_76 +{ + import package_92.name_271; + + public interface name_604 + { + function acceptBodiesCollision(param1:name_271, param2:name_271) : Boolean; + } +} + diff --git a/src/package_76/name_631.as b/src/package_76/name_631.as new file mode 100644 index 0000000..6e3515b --- /dev/null +++ b/src/package_76/name_631.as @@ -0,0 +1,8 @@ +package package_76 +{ + public interface name_631 + { + function name_664(param1:name_235) : Boolean; + } +} + diff --git a/src/package_76/name_656.as b/src/package_76/name_656.as new file mode 100644 index 0000000..eab12d8 --- /dev/null +++ b/src/package_76/name_656.as @@ -0,0 +1,31 @@ +package package_76 +{ + import package_90.name_386; + + public class name_656 + { + public var indices:Vector.; + + public var var_674:Vector.; + + public var boundBox:name_386; + + public var parent:name_656; + + public var name_660:CollisionKdTree2D; + + public var axis:int = -1; + + public var coord:Number; + + public var name_658:name_656; + + public var name_657:name_656; + + public function name_656() + { + super(); + } + } +} + diff --git a/src/package_76/name_663.as b/src/package_76/name_663.as new file mode 100644 index 0000000..feca430 --- /dev/null +++ b/src/package_76/name_663.as @@ -0,0 +1,390 @@ +package package_76 +{ + import package_90.name_386; + + public class name_663 + { + private static const nodeBoundBoxThreshold:name_386 = new name_386(); + + private static const splitCoordsX:Vector. = new Vector.(); + + private static const splitCoordsY:Vector. = new Vector.(); + + private static const splitCoordsZ:Vector. = new Vector.(); + + private static const _nodeBB:Vector. = new Vector.(6); + + private static const _bb:Vector. = new Vector.(6); + + public var threshold:Number = 0.1; + + public var var_681:int = 1; + + public var name_659:name_656; + + public var name_661:Vector.; + + public var var_679:int; + + public var staticBoundBoxes:Vector. = new Vector.(); + + private var var_678:int; + + private var var_677:Number; + + private var var_680:Number; + + public function name_663() + { + super(); + } + + public function name_669(collisionPrimitives:Vector., boundBox:name_386 = null) : void + { + var child:name_235 = null; + var childBoundBox:name_386 = null; + this.name_661 = collisionPrimitives.concat(); + this.var_679 = this.name_661.length; + this.name_659 = new name_656(); + this.name_659.indices = new Vector.(); + var rootNodeBoundBox:name_386 = this.name_659.boundBox = boundBox != null ? boundBox : new name_386(); + for(var i:int = 0; i < this.var_679; i++) + { + child = this.name_661[i]; + childBoundBox = this.staticBoundBoxes[i] = child.calculateAABB(); + rootNodeBoundBox.name_583(childBoundBox); + this.name_659.indices[i] = i; + } + this.staticBoundBoxes.length = this.var_679; + this.splitNode(this.name_659); + splitCoordsX.length = splitCoordsY.length = splitCoordsZ.length = 0; + } + + private function splitNode(node:name_656) : void + { + var nodeBoundBox:name_386 = null; + var i:int = 0; + var j:int = 0; + var boundBox:name_386 = null; + var min:Number = NaN; + var max:Number = NaN; + var indices:Vector. = node.indices; + var numPrimitives:int = int(indices.length); + if(numPrimitives <= this.var_681) + { + return; + } + nodeBoundBox = node.boundBox; + nodeBoundBoxThreshold.minX = nodeBoundBox.minX + this.threshold; + nodeBoundBoxThreshold.minY = nodeBoundBox.minY + this.threshold; + nodeBoundBoxThreshold.minZ = nodeBoundBox.minZ + this.threshold; + nodeBoundBoxThreshold.maxX = nodeBoundBox.maxX - this.threshold; + nodeBoundBoxThreshold.maxY = nodeBoundBox.maxY - this.threshold; + nodeBoundBoxThreshold.maxZ = nodeBoundBox.maxZ - this.threshold; + var doubleThreshold:Number = this.threshold * 2; + var numSplitCoordsX:int = 0; + var numSplitCoordsY:int = 0; + var numSplitCoordsZ:int = 0; + for(i = 0; i < numPrimitives; ) + { + boundBox = this.staticBoundBoxes[indices[i]]; + if(boundBox.maxX - boundBox.minX <= doubleThreshold) + { + if(boundBox.minX <= nodeBoundBoxThreshold.minX) + { + var _loc18_:* = numSplitCoordsX++; + splitCoordsX[_loc18_] = nodeBoundBox.minX; + } + else if(boundBox.maxX >= nodeBoundBoxThreshold.maxX) + { + _loc18_ = numSplitCoordsX++; + splitCoordsX[_loc18_] = nodeBoundBox.maxX; + } + else + { + _loc18_ = numSplitCoordsX++; + splitCoordsX[_loc18_] = (boundBox.minX + boundBox.maxX) * 0.5; + } + } + else + { + if(boundBox.minX > nodeBoundBoxThreshold.minX) + { + _loc18_ = numSplitCoordsX++; + splitCoordsX[_loc18_] = boundBox.minX; + } + if(boundBox.maxX < nodeBoundBoxThreshold.maxX) + { + _loc18_ = numSplitCoordsX++; + splitCoordsX[_loc18_] = boundBox.maxX; + } + } + if(boundBox.maxY - boundBox.minY <= doubleThreshold) + { + if(boundBox.minY <= nodeBoundBoxThreshold.minY) + { + _loc18_ = numSplitCoordsY++; + splitCoordsY[_loc18_] = nodeBoundBox.minY; + } + else if(boundBox.maxY >= nodeBoundBoxThreshold.maxY) + { + _loc18_ = numSplitCoordsY++; + splitCoordsY[_loc18_] = nodeBoundBox.maxY; + } + else + { + _loc18_ = numSplitCoordsY++; + splitCoordsY[_loc18_] = (boundBox.minY + boundBox.maxY) * 0.5; + } + } + else + { + if(boundBox.minY > nodeBoundBoxThreshold.minY) + { + _loc18_ = numSplitCoordsY++; + splitCoordsY[_loc18_] = boundBox.minY; + } + if(boundBox.maxY < nodeBoundBoxThreshold.maxY) + { + _loc18_ = numSplitCoordsY++; + splitCoordsY[_loc18_] = boundBox.maxY; + } + } + if(boundBox.maxZ - boundBox.minZ <= doubleThreshold) + { + if(boundBox.minZ <= nodeBoundBoxThreshold.minZ) + { + _loc18_ = numSplitCoordsZ++; + splitCoordsZ[_loc18_] = nodeBoundBox.minZ; + } + else if(boundBox.maxZ >= nodeBoundBoxThreshold.maxZ) + { + _loc18_ = numSplitCoordsZ++; + splitCoordsZ[_loc18_] = nodeBoundBox.maxZ; + } + else + { + _loc18_ = numSplitCoordsZ++; + splitCoordsZ[_loc18_] = (boundBox.minZ + boundBox.maxZ) * 0.5; + } + } + else + { + if(boundBox.minZ > nodeBoundBoxThreshold.minZ) + { + _loc18_ = numSplitCoordsZ++; + splitCoordsZ[_loc18_] = boundBox.minZ; + } + if(boundBox.maxZ < nodeBoundBoxThreshold.maxZ) + { + _loc18_ = numSplitCoordsZ++; + splitCoordsZ[_loc18_] = boundBox.maxZ; + } + } + i++; + } + this.var_678 = -1; + this.var_680 = 1e+308; + _nodeBB[0] = nodeBoundBox.minX; + _nodeBB[1] = nodeBoundBox.minY; + _nodeBB[2] = nodeBoundBox.minZ; + _nodeBB[3] = nodeBoundBox.maxX; + _nodeBB[4] = nodeBoundBox.maxY; + _nodeBB[5] = nodeBoundBox.maxZ; + this.method_834(node,0,numSplitCoordsX,splitCoordsX,_nodeBB); + this.method_834(node,1,numSplitCoordsY,splitCoordsY,_nodeBB); + this.method_834(node,2,numSplitCoordsZ,splitCoordsZ,_nodeBB); + if(this.var_678 < 0) + { + return; + } + var axisX:Boolean = this.var_678 == 0; + var axisY:Boolean = this.var_678 == 1; + node.axis = this.var_678; + node.coord = this.var_677; + node.name_657 = new name_656(); + node.name_657.parent = node; + node.name_657.boundBox = nodeBoundBox.clone(); + node.name_658 = new name_656(); + node.name_658.parent = node; + node.name_658.boundBox = nodeBoundBox.clone(); + if(axisX) + { + node.name_657.boundBox.maxX = node.name_658.boundBox.minX = this.var_677; + } + else if(axisY) + { + node.name_657.boundBox.maxY = node.name_658.boundBox.minY = this.var_677; + } + else + { + node.name_657.boundBox.maxZ = node.name_658.boundBox.minZ = this.var_677; + } + var coordMin:Number = this.var_677 - this.threshold; + var coordMax:Number = this.var_677 + this.threshold; + for(i = 0; i < numPrimitives; ) + { + boundBox = this.staticBoundBoxes[indices[i]]; + min = axisX ? boundBox.minX : (axisY ? boundBox.minY : boundBox.minZ); + max = axisX ? boundBox.maxX : (axisY ? boundBox.maxY : boundBox.maxZ); + if(max <= coordMax) + { + if(min < coordMin) + { + if(node.name_657.indices == null) + { + node.name_657.indices = new Vector.(); + } + node.name_657.indices.push(indices[i]); + indices[i] = -1; + } + else + { + if(node.var_674 == null) + { + node.var_674 = new Vector.(); + } + node.var_674.push(indices[i]); + indices[i] = -1; + } + } + else if(min >= coordMin) + { + if(node.name_658.indices == null) + { + node.name_658.indices = new Vector.(); + } + node.name_658.indices.push(indices[i]); + indices[i] = -1; + } + i++; + } + for(i = 0,j = 0; i < numPrimitives; ) + { + if(indices[i] >= 0) + { + _loc18_ = j++; + indices[_loc18_] = indices[i]; + } + i++; + } + if(j > 0) + { + indices.length = j; + } + else + { + node.indices = null; + } + if(node.var_674 != null) + { + node.name_660 = new CollisionKdTree2D(this,node); + node.name_660.name_669(); + } + if(node.name_657.indices != null) + { + this.splitNode(node.name_657); + } + if(node.name_658.indices != null) + { + this.splitNode(node.name_658); + } + } + + private function method_834(node:name_656, axis:int, numSplitCoords:int, splitCoords:Vector., bb:Vector.) : void + { + var currSplitCoord:Number = NaN; + var minCoord:Number = NaN; + var maxCoord:Number = NaN; + var areaNegative:Number = NaN; + var areaPositive:Number = NaN; + var numNegative:int = 0; + var numPositive:int = 0; + var conflict:Boolean = false; + var numObjects:int = 0; + var j:int = 0; + var cost:Number = NaN; + var boundBox:name_386 = null; + var axis1:int = (axis + 1) % 3; + var axis2:int = (axis + 2) % 3; + var area:Number = (bb[axis1 + 3] - bb[axis1]) * (bb[axis2 + 3] - bb[axis2]); + for(var i:int = 0; i < numSplitCoords; i++) + { + currSplitCoord = splitCoords[i]; + if(!isNaN(currSplitCoord)) + { + minCoord = currSplitCoord - this.threshold; + maxCoord = currSplitCoord + this.threshold; + areaNegative = area * (currSplitCoord - bb[axis]); + areaPositive = area * (bb[int(axis + 3)] - currSplitCoord); + numNegative = 0; + numPositive = 0; + conflict = false; + numObjects = int(node.indices.length); + for(j = 0; j < numObjects; ) + { + boundBox = this.staticBoundBoxes[node.indices[j]]; + _bb[0] = boundBox.minX; + _bb[1] = boundBox.minY; + _bb[2] = boundBox.minZ; + _bb[3] = boundBox.maxX; + _bb[4] = boundBox.maxY; + _bb[5] = boundBox.maxZ; + if(_bb[axis + 3] <= maxCoord) + { + if(_bb[axis] < minCoord) + { + numNegative++; + } + } + else + { + if(_bb[axis] < minCoord) + { + conflict = true; + break; + } + numPositive++; + } + j++; + } + cost = areaNegative * numNegative + areaPositive * numPositive; + if(!conflict) + { + if(cost < this.var_680 && numNegative > 0 && numPositive > 0) + { + this.var_678 = axis; + this.var_680 = cost; + this.var_677 = currSplitCoord; + } + } + for(j = i + 1; j < numSplitCoords; ) + { + if(splitCoords[j] >= currSplitCoord - this.threshold && splitCoords[j] <= currSplitCoord + this.threshold) + { + splitCoords[j] = NaN; + } + j++; + } + } + } + } + + public function method_835() : void + { + this.method_833("",this.name_659); + } + + private function method_833(str:String, node:name_656) : void + { + if(node == null) + { + return; + } + trace(str,node.axis == -1 ? "end" : (node.axis == 0 ? "X" : (node.axis == 1 ? "Y" : "Z")),"splitCoord=" + this.var_677,"bound",node.boundBox,"objs:",node.indices); + this.method_833(str + "-",node.name_657); + this.method_833(str + "+",node.name_658); + } + } +} + diff --git a/src/package_76/name_665.as b/src/package_76/name_665.as new file mode 100644 index 0000000..40ae0c3 --- /dev/null +++ b/src/package_76/name_665.as @@ -0,0 +1,12 @@ +package package_76 +{ + import package_92.name_630; + + public interface name_665 + { + function getContact(param1:name_235, param2:name_235, param3:name_630) : Boolean; + + function haveCollision(param1:name_235, param2:name_235) : Boolean; + } +} + diff --git a/src/package_76/name_682.as b/src/package_76/name_682.as new file mode 100644 index 0000000..5f9c209 --- /dev/null +++ b/src/package_76/name_682.as @@ -0,0 +1,463 @@ +package package_76 +{ + import package_121.name_666; + import package_121.name_667; + import package_121.name_668; + import package_121.name_732; + import package_121.name_733; + import package_46.name_194; + import package_90.name_273; + import package_90.name_386; + import package_92.name_271; + import package_92.name_630; + + public class name_682 implements name_256 + { + private static var _rayAABB:name_386 = new name_386(); + + public var var_592:name_663; + + public var var_684:Vector.; + + public var var_685:int; + + public var threshold:Number = 0.0001; + + private var var_596:Object = {}; + + private var var_420:MinMax = new MinMax(); + + private var var_594:name_194 = new name_194(); + + private var var_590:name_194 = new name_194(); + + private var var_595:name_273 = new name_273(); + + public function name_682() + { + super(); + this.var_592 = new name_663(); + this.var_684 = new Vector.(); + this.method_655(name_235.BOX,name_235.BOX,new name_666()); + this.method_655(name_235.BOX,name_235.SPHERE,new name_733()); + this.method_655(name_235.BOX,name_235.RECT,new name_667()); + this.method_655(name_235.BOX,name_235.TRIANGLE,new name_668()); + this.method_655(name_235.SPHERE,name_235.SPHERE,new name_732()); + } + + public function method_844(primitive:name_235, isStatic:Boolean = true) : Boolean + { + return true; + } + + public function method_843(primitive:name_235, isStatic:Boolean = true) : Boolean + { + return true; + } + + public function init(collisionPrimitives:Vector.) : void + { + this.var_592.name_669(collisionPrimitives); + } + + public function method_553(contacts:name_630) : name_630 + { + return contacts; + } + + public function getContact(prim1:name_235, prim2:name_235, contact:name_630) : Boolean + { + if((prim1.collisionGroup & prim2.collisionGroup) == 0) + { + return false; + } + if(prim1.body != null && prim1.body == prim2.body) + { + return false; + } + if(!prim1.aabb.intersects(prim2.aabb,0.01)) + { + return false; + } + var collider:name_665 = this.var_596[prim1.type <= prim2.type ? prim1.type << 16 | prim2.type : prim2.type << 16 | prim1.type] as name_665; + if(collider != null && Boolean(collider.getContact(prim1,prim2,contact))) + { + if(prim1.postCollisionFilter != null && !prim1.postCollisionFilter.name_662(prim1,prim2)) + { + return false; + } + if(prim2.postCollisionFilter != null && !prim2.postCollisionFilter.name_662(prim2,prim1)) + { + return false; + } + return true; + } + return false; + } + + public function method_554(prim1:name_235, prim2:name_235) : Boolean + { + if((prim1.collisionGroup & prim2.collisionGroup) == 0) + { + return false; + } + if(prim1.body != null && prim1.body == prim2.body) + { + return false; + } + if(!prim1.aabb.intersects(prim2.aabb,0.01)) + { + return false; + } + var collider:name_665 = this.var_596[prim1.type <= prim2.type ? prim1.type << 16 | prim2.type : prim2.type << 16 | prim1.type] as name_665; + if(collider != null && Boolean(collider.haveCollision(prim1,prim2))) + { + if(prim1.postCollisionFilter != null && !prim1.postCollisionFilter.name_662(prim1,prim2)) + { + return false; + } + if(prim2.postCollisionFilter != null && !prim2.postCollisionFilter.name_662(prim2,prim1)) + { + return false; + } + return true; + } + return false; + } + + public function raycast(origin:name_194, dir:name_194, collisionGroup:int, maxTime:Number, predicate:name_631, result:name_273) : Boolean + { + var hasStaticIntersection:Boolean = this.name_324(origin,dir,collisionGroup,maxTime,predicate,result); + var hasDynamicIntersection:Boolean = this.method_841(origin,dir,collisionGroup,maxTime,predicate,this.var_595); + if(!(hasDynamicIntersection || hasStaticIntersection)) + { + return false; + } + if(hasDynamicIntersection && hasStaticIntersection) + { + if(result.t > this.var_595.t) + { + result.copy(this.var_595); + } + return true; + } + if(hasStaticIntersection) + { + return true; + } + result.copy(this.var_595); + return true; + } + + public function name_324(origin:name_194, dir:name_194, collisionGroup:int, maxTime:Number, predicate:name_631, result:name_273) : Boolean + { + if(!this.method_662(origin,dir,this.var_592.name_659.boundBox,this.var_420)) + { + return false; + } + if(this.var_420.max < 0 || this.var_420.min > maxTime) + { + return false; + } + if(this.var_420.min <= 0) + { + this.var_420.min = 0; + this.var_590.x = origin.x; + this.var_590.y = origin.y; + this.var_590.z = origin.z; + } + else + { + this.var_590.x = origin.x + this.var_420.min * dir.x; + this.var_590.y = origin.y + this.var_420.min * dir.y; + this.var_590.z = origin.z + this.var_420.min * dir.z; + } + if(this.var_420.max > maxTime) + { + this.var_420.max = maxTime; + } + var hasIntersection:Boolean = this.method_652(this.var_592.name_659,origin,this.var_590,dir,collisionGroup,this.var_420.min,this.var_420.max,predicate,result); + return hasIntersection ? result.t <= maxTime : false; + } + + public function method_842(body:name_271, primitive:name_235) : Boolean + { + return false; + } + + private function method_655(type1:int, type2:int, collider:name_665) : void + { + this.var_596[type1 <= type2 ? type1 << 16 | type2 : type2 << 16 | type1] = collider; + } + + private function method_653(node:name_656, primitive:name_235, contacts:name_630) : name_630 + { + return null; + } + + private function method_841(origin:name_194, dir:name_194, collisionGroup:int, maxTime:Number, filter:name_631, result:name_273) : Boolean + { + var yy:Number = NaN; + var minTime:Number = NaN; + var primitive:name_235 = null; + var paabb:name_386 = null; + var t:Number = NaN; + var xx:Number = origin.x + dir.x * maxTime; + yy = origin.y + dir.y * maxTime; + var zz:Number = origin.z + dir.z * maxTime; + if(xx < origin.x) + { + _rayAABB.minX = xx; + _rayAABB.maxX = origin.x; + } + else + { + _rayAABB.minX = origin.x; + _rayAABB.maxX = xx; + } + if(yy < origin.y) + { + _rayAABB.minY = yy; + _rayAABB.maxY = origin.y; + } + else + { + _rayAABB.minY = origin.y; + _rayAABB.maxY = yy; + } + if(zz < origin.z) + { + _rayAABB.minZ = zz; + _rayAABB.maxZ = origin.z; + } + else + { + _rayAABB.minZ = origin.z; + _rayAABB.maxZ = zz; + } + minTime = maxTime + 1; + for(var i:int = 0; i < this.var_685; ) + { + primitive = this.var_684[i]; + if((primitive.collisionGroup & collisionGroup) != 0) + { + paabb = primitive.aabb; + if(!(_rayAABB.maxX < paabb.minX || _rayAABB.minX > paabb.maxX || _rayAABB.maxY < paabb.minY || _rayAABB.minY > paabb.maxY || _rayAABB.maxZ < paabb.minZ || _rayAABB.minZ > paabb.maxZ)) + { + if(!(filter != null && !filter.name_664(primitive))) + { + t = primitive.raycast(origin,dir,this.threshold,this.var_594); + if(t > 0 && t < minTime) + { + minTime = t; + result.primitive = primitive; + result.normal.x = this.var_594.x; + result.normal.y = this.var_594.y; + result.normal.z = this.var_594.z; + } + } + } + } + i++; + } + if(minTime > maxTime) + { + return false; + } + result.position.x = origin.x + dir.x * minTime; + result.position.y = origin.y + dir.y * minTime; + result.position.z = origin.z + dir.z * minTime; + result.t = minTime; + return true; + } + + private function method_662(origin:name_194, dir:name_194, bb:name_386, time:MinMax) : Boolean + { + var t1:Number = NaN; + var t2:Number = NaN; + time.min = -1; + time.max = 1e+308; + for(var i:int = 0; i < 3; i++) + { + switch(i) + { + case 0: + if(!(dir.x < this.threshold && dir.x > -this.threshold)) + { + t1 = (bb.minX - origin.x) / dir.x; + t2 = (bb.maxX - origin.x) / dir.x; + break; + } + if(origin.x < bb.minX || origin.x > bb.maxX) + { + return false; + } + continue; + case 1: + if(!(dir.y < this.threshold && dir.y > -this.threshold)) + { + t1 = (bb.minY - origin.y) / dir.y; + t2 = (bb.maxY - origin.y) / dir.y; + break; + } + if(origin.y < bb.minY || origin.y > bb.maxY) + { + return false; + } + continue; + case 2: + if(!(dir.z < this.threshold && dir.z > -this.threshold)) + { + t1 = (bb.minZ - origin.z) / dir.z; + t2 = (bb.maxZ - origin.z) / dir.z; + break; + } + if(origin.z < bb.minZ || origin.z > bb.maxZ) + { + return false; + } + continue; + } + if(t1 < t2) + { + if(t1 > time.min) + { + time.min = t1; + } + if(t2 < time.max) + { + time.max = t2; + } + } + else + { + if(t2 > time.min) + { + time.min = t2; + } + if(t1 < time.max) + { + time.max = t1; + } + } + if(time.max < time.min) + { + return false; + } + } + return true; + } + + private function method_652(node:name_656, origin:name_194, localOrigin:name_194, dir:name_194, collisionGroup:int, t1:Number, t2:Number, predicate:name_631, result:name_273) : Boolean + { + var splitTime:Number = NaN; + var currChildNode:name_656 = null; + var intersects:Boolean = false; + if(node.indices != null && this.method_660(origin,dir,collisionGroup,this.var_592.name_661,node.indices,predicate,result)) + { + return true; + } + if(node.axis == -1) + { + return false; + } + switch(node.axis) + { + case 0: + if(dir.x > -this.threshold && dir.x < this.threshold) + { + splitTime = t2 + 1; + } + else + { + splitTime = (node.coord - origin.x) / dir.x; + } + currChildNode = localOrigin.x < node.coord ? node.name_657 : node.name_658; + break; + case 1: + if(dir.y > -this.threshold && dir.y < this.threshold) + { + splitTime = t2 + 1; + } + else + { + splitTime = (node.coord - origin.y) / dir.y; + } + currChildNode = localOrigin.y < node.coord ? node.name_657 : node.name_658; + break; + case 2: + if(dir.z > -this.threshold && dir.z < this.threshold) + { + splitTime = t2 + 1; + } + else + { + splitTime = (node.coord - origin.z) / dir.z; + } + currChildNode = localOrigin.z < node.coord ? node.name_657 : node.name_658; + } + if(splitTime < t1 || splitTime > t2) + { + return this.method_652(currChildNode,origin,localOrigin,dir,collisionGroup,t1,t2,predicate,result); + } + intersects = this.method_652(currChildNode,origin,localOrigin,dir,collisionGroup,t1,splitTime,predicate,result); + if(intersects) + { + return true; + } + this.var_590.x = origin.x + splitTime * dir.x; + this.var_590.y = origin.y + splitTime * dir.y; + this.var_590.z = origin.z + splitTime * dir.z; + return this.method_652(currChildNode == node.name_657 ? node.name_658 : node.name_657,origin,this.var_590,dir,collisionGroup,splitTime,t2,predicate,result); + } + + private function method_660(origin:name_194, dir:name_194, collisionGroup:int, primitives:Vector., indices:Vector., filter:name_631, intersection:name_273) : Boolean + { + var primitive:name_235 = null; + var t:Number = NaN; + var pnum:int = int(indices.length); + var minTime:Number = 1e+308; + for(var i:int = 0; i < pnum; ) + { + primitive = primitives[indices[i]]; + if((primitive.collisionGroup & collisionGroup) != 0) + { + if(!(filter != null && !filter.name_664(primitive))) + { + t = primitive.raycast(origin,dir,this.threshold,this.var_594); + if(t > 0 && t < minTime) + { + minTime = t; + intersection.primitive = primitive; + intersection.normal.x = this.var_594.x; + intersection.normal.y = this.var_594.y; + intersection.normal.z = this.var_594.z; + } + } + } + i++; + } + if(minTime == 1e+308) + { + return false; + } + intersection.position.x = origin.x + dir.x * minTime; + intersection.position.y = origin.y + dir.y * minTime; + intersection.position.z = origin.z + dir.z * minTime; + intersection.t = minTime; + return true; + } + } +} + +class MinMax +{ + public var min:Number = 0; + + public var max:Number = 0; + + public function MinMax() + { + super(); + } +} diff --git a/src/package_77/class_39.as b/src/package_77/class_39.as new file mode 100644 index 0000000..e1db5ab --- /dev/null +++ b/src/package_77/class_39.as @@ -0,0 +1,24 @@ +package package_77 +{ + import package_114.class_35; + + public class class_39 implements class_35 + { + protected var component:name_237; + + public function class_39(component:name_237) + { + super(); + this.component = component; + } + + public function start(data:*) : void + { + } + + public function stop() : void + { + } + } +} + diff --git a/src/package_77/name_237.as b/src/package_77/name_237.as new file mode 100644 index 0000000..36f4329 --- /dev/null +++ b/src/package_77/name_237.as @@ -0,0 +1,688 @@ +package package_77 +{ + import package_10.class_17; + import package_10.name_17; + import package_10.name_57; + import package_109.name_377; + import package_114.name_488; + import package_114.name_489; + import package_39.name_160; + import package_44.name_178; + import package_44.name_465; + import package_45.name_182; + import package_46.Matrix3; + import package_46.Matrix4; + import package_46.name_194; + import package_46.name_566; + import package_5.name_3; + import package_71.class_30; + import package_71.name_249; + import package_71.name_252; + import package_75.class_15; + import package_75.name_236; + import package_75.name_309; + import package_76.name_235; + import package_86.name_257; + import package_86.name_468; + import package_86.name_484; + import package_86.name_568; + import package_90.name_386; + import package_92.name_271; + import package_92.name_467; + import package_92.name_575; + + public class name_237 extends class_17 implements name_465, name_236, class_30 + { + private static var lastId:int; + + private static const RAY_OFFSET:Number = 5; + + private static var _v:name_194 = new name_194(); + + public var gameKernel:name_17; + + public var body:name_271; + + public var name_337:name_515; + + public var name_340:name_515; + + public var maxSpeed:Number = 0; + + private var var_480:ValueSmoother = new ValueSmoother(100,1000,0,0); + + public var maxTurnSpeed:Number = 0; + + private var var_478:ValueSmoother = new ValueSmoother(0.3,10,0,0); + + private var var_477:Number = 0; + + private var var_482:Number = 0; + + private var var_484:Boolean; + + private var var_486:Boolean; + + private var var_475:Vector.; + + public var var_476:Vector.; + + public var var_479:Vector.; + + public var name_288:name_194 = new name_194(); + + public var name_334:name_566 = new name_566(); + + public var var_483:Matrix4 = new Matrix4(); + + public var name_518:name_570 = new name_570(); + + public var moveDirection:int; + + public var turnDirection:int; + + private var hull:name_249; + + private var var_485:name_568; + + private var var_424:name_488; + + private var var_426:Boolean; + + private var turret:class_15; + + private var var_481:Vector.; + + private var mass:Number = 1; + + private var power:Number = 0; + + private var reverseBackTurn:Boolean; + + public function name_237(hull:name_249, mass:Number, power:Number) + { + super(); + this.mass = mass; + this.power = power; + this.var_481 = new Vector.(); + this.body = new name_271(1,Matrix3.IDENTITY); + this.body.id = lastId++; + this.var_475 = new Vector.(); + this.var_479 = new Vector.(); + this.var_476 = new Vector.(); + this.var_485 = new name_568(this.body,this.var_476,this.var_479); + this.method_488(hull); + } + + public function method_473() : Vector. + { + return this.var_481; + } + + public function getBody() : name_271 + { + return this.body; + } + + public function method_474(wheelName:String) : Number + { + var lastHitLength:Number = this.name_337.name_574(wheelName,this.name_518.rayLength); + if(lastHitLength < 0) + { + lastHitLength = this.name_340.name_574(wheelName,this.name_518.rayLength); + } + if(lastHitLength < 0) + { + return 0; + } + return this.name_518.name_579 - lastHitLength; + } + + public function method_492() : Number + { + return this.name_337.name_571; + } + + public function method_495() : Number + { + return this.name_340.name_571; + } + + public function method_488(hull:name_249) : void + { + if(hull == null) + { + throw new ArgumentError("Parameter hull is null"); + } + if(this.hull == hull) + { + return; + } + this.hull = hull; + this.method_485(hull.name_534,this.var_475,name_257.TANK,name_257.TANK | name_257.STATIC); + this.method_485(hull.name_535,this.var_476,name_257.TANK,name_257.TANK); + if(this.turret != null) + { + this.turret.setTurretMountPoint(hull.name_533); + } + this.method_482(); + this.method_489(); + var rayZ:Number = this.method_487(); + this.setSuspensionCollisionMask(name_257.TANK | name_257.STATIC); + this.name_518.rayLength = 75; + this.name_518.name_579 = rayZ - hull.name_538.z; + this.name_518.name_582 = 1000; + this.body.material.name_581 = 0.1; + this.setChassisControls(this.moveDirection,this.turnDirection,true); + var bb:name_386 = new name_386(); + this.calculateBoundBox(bb); + this.method_490(bb); + } + + public function name_335(value:Number, immediate:Boolean) : void + { + if(immediate) + { + this.maxTurnSpeed = value; + this.var_478.reset(value); + } + else + { + this.var_478.targetValue = value; + } + } + + public function name_321(value:Number, immediate:Boolean) : void + { + if(immediate) + { + this.maxSpeed = value; + this.var_480.reset(value); + } + else + { + this.var_480.targetValue = value; + } + } + + private function method_487() : Number + { + var matrix:Matrix4 = new Matrix4(); + matrix.name_201(this.hull.name_538); + this.name_337 = new name_515(this.body,matrix,this.hull.name_325); + this.name_340 = new name_515(this.body,matrix,this.hull.name_323); + return this.name_337.rays[0].getRelativeZ(); + } + + private function method_489() : void + { + var dimensions:name_194 = null; + var xx:Number = NaN; + var yy:Number = NaN; + var zz:Number = NaN; + if(this.mass == Infinity) + { + this.body.invMass = 0; + this.body.invInertia.copy(Matrix3.ZERO); + } + else + { + dimensions = this.hull.name_517.hs.clone(); + dimensions.scale(2); + this.body.invMass = 1 / this.mass; + xx = dimensions.x * dimensions.x; + yy = dimensions.y * dimensions.y; + zz = dimensions.z * dimensions.z; + this.body.invInertia.a = 12 * this.body.invMass / (yy + zz); + this.body.invInertia.f = 12 * this.body.invMass / (zz + xx); + this.body.invInertia.k = 12 * this.body.invMass / (xx + yy); + } + } + + private function calculateBoundBox(boundBox:name_386) : void + { + var collisionPrimitive:name_235 = null; + var primitiveTransform:Matrix4 = null; + boundBox.name_584(); + for each(collisionPrimitive in this.var_475) + { + primitiveTransform = collisionPrimitive.transform; + collisionPrimitive.transform = collisionPrimitive.localTransform || Matrix4.IDENTITY; + boundBox.name_583(collisionPrimitive.calculateAABB()); + collisionPrimitive.transform = primitiveTransform; + } + } + + private function method_490(boundBox:name_386) : void + { + var z:int = (boundBox.maxZ - boundBox.minZ) / 2; + this.method_481(0,boundBox.maxX,boundBox.maxY,z); + this.method_481(1,boundBox.minX,boundBox.maxY,z); + this.method_481(2,boundBox.minX,boundBox.minY,z); + this.method_481(3,boundBox.maxX,boundBox.minY,z); + } + + private function method_481(index:int, x:Number, y:Number, z:Number) : void + { + var point:name_194 = null; + var clientLog:name_160 = null; + clientLog = name_160(name_3.name_8().name_30(name_160)); + clientLog.log("tank","LegacyTrackedChassisComponent::setBoundPoint() point %1: %2, %3, %4",index,x.toFixed(2),y.toFixed(2),z.toFixed(2)); + if(index < this.var_481.length) + { + point = this.var_481[index]; + } + if(point == null) + { + point = new name_194(); + this.var_481[index] = point; + } + point.reset(x,y,z); + } + + public function method_482() : void + { + var collisionPrimitive:name_235 = null; + var turretPrimitives:Vector. = null; + if(this.body.collisionPrimitives != null) + { + this.body.collisionPrimitives.clear(); + } + this.method_483(this.var_475); + this.method_483(this.var_476); + this.var_479.length = 0; + for each(collisionPrimitive in this.var_475) + { + this.var_479.push(collisionPrimitive); + } + if(this.turret != null) + { + turretPrimitives = this.turret.getTurretPrimitives(); + this.method_483(turretPrimitives); + for each(collisionPrimitive in turretPrimitives) + { + this.var_479.push(collisionPrimitive); + } + } + } + + public function method_478(velocity:name_194) : void + { + this.body.name_587(velocity); + } + + public function method_477(velocity:name_194) : void + { + this.body.method_368(velocity); + } + + public function name_352(orientation:name_566) : void + { + this.body.name_352(orientation); + } + + public function name_75(x:Number, y:Number, z:Number) : void + { + this.body.name_75(x,y,z); + } + + public function method_484(w:Number, x:Number, y:Number, z:Number) : void + { + this.body.method_484(w,x,y,z); + } + + public function method_479(x:Number, y:Number, z:Number) : void + { + var w:Number = 1 - x * x - y * y - z * z; + this.body.method_484(w < 0 ? 0 : Number(Math.sqrt(w)),x,y,z); + } + + public function setLinearVelocityXYZ(x:Number, y:Number, z:Number) : void + { + this.body.name_588(x,y,z); + } + + public function setAngularVelocityXYZ(x:Number, y:Number, z:Number) : void + { + this.body.name_332(x,y,z); + } + + public function name_201(position:name_194) : void + { + this.body.name_201(position); + } + + public function method_494() : void + { + this.body.name_586(); + } + + private function method_486(throttleLeft:Number, throttleRight:Number) : void + { + this.var_477 = throttleLeft; + this.var_482 = throttleRight; + } + + private function method_480(lb:Boolean, rb:Boolean) : void + { + this.var_484 = lb; + this.var_486 = rb; + } + + public function setChassisControls(moveDirection:int, turnDirection:int, reverseBackTurn:Boolean, force:Boolean = false) : Boolean + { + var throttle:Number = NaN; + var throttleLeft:Number = NaN; + var throttleRight:Number = NaN; + var k:Number = NaN; + turnDirection = -turnDirection; + if(force || this.moveDirection != moveDirection || this.turnDirection != turnDirection) + { + this.moveDirection = moveDirection; + this.turnDirection = turnDirection; + this.reverseBackTurn = reverseBackTurn; + throttle = this.power; + throttleLeft = moveDirection * throttle; + throttleRight = moveDirection * throttle; + if(moveDirection == 0) + { + this.method_480(false,false); + k = 0.8; + throttleLeft -= turnDirection * throttle * k; + throttleRight += turnDirection * throttle * k; + } + else + { + k = 0.4; + if(moveDirection == 1) + { + this.method_480(turnDirection == 1,turnDirection == -1); + if(turnDirection == 1) + { + throttleLeft -= throttle * k; + } + if(turnDirection == -1) + { + throttleRight -= throttle * k; + } + } + else if(reverseBackTurn) + { + this.method_480(turnDirection == -1,turnDirection == 1); + if(turnDirection == -1) + { + throttleLeft += throttle * k; + } + if(turnDirection == 1) + { + throttleRight += throttle * k; + } + } + else + { + this.method_480(turnDirection == 1,turnDirection == -1); + if(turnDirection == 1) + { + throttleLeft += throttle * k; + } + if(turnDirection == -1) + { + throttleRight += throttle * k; + } + } + } + this.method_486(throttleLeft,throttleRight); + return true; + } + return false; + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + } + + override public function removeFromGame(gameKernel:name_17) : void + { + this.var_424.name_493.stop(); + this.removeFromScene(); + gameKernel = null; + } + + override public function initComponent() : void + { + name_309(entity.getComponentStrict(name_309)).method_463(this); + this.method_482(); + this.var_424 = new name_488(); + var respawnState:name_569 = new name_569(this); + this.var_424.name_486(entity,name_252.SET_RESPAWN_STATE,respawnState); + this.var_424.name_486(entity,name_252.SET_ACTIVATING_STATE,new name_576(this)); + this.var_424.name_486(entity,name_252.SET_ACTIVE_STATE,new name_572(this)); + this.var_424.name_486(entity,name_252.SET_DEAD_STATE,new name_578(this)); + this.var_424.name_493 = name_489.INSTANCE; + entity.addEventHandler(name_57.BATTLE_FINISHED,this.method_386); + } + + public function name_505(point:name_194) : void + { + point.copy(this.hull.name_536); + } + + public function name_502() : Matrix4 + { + return this.var_483; + } + + public function setTurret(turret:class_15) : void + { + this.turret = turret; + if(turret != null) + { + this.method_482(); + } + } + + public function name_503(point:name_194) : void + { + point.copy(this.hull.name_533); + } + + public function updateBeforeSimulation(physicsStep:int) : void + { + var d:Number = NaN; + var limit:Number = NaN; + var dt:Number = name_182.timeDeltaSeconds; + if(this.maxSpeed != this.var_480.targetValue) + { + this.maxSpeed = this.var_480.update(dt); + } + if(this.maxTurnSpeed != this.var_478.targetValue) + { + this.maxTurnSpeed = this.var_478.update(dt); + } + var slipTerm:int = this.var_477 > this.var_482 ? -1 : (this.var_477 < this.var_482 ? 1 : 0); + var world:name_467 = this.body.scene; + var weight:Number = this.mass * world.name_567.length(); + var k:Number = this.var_477 != this.var_482 && !(this.var_484 || this.var_486) && this.body.state.rotation.length() > this.maxTurnSpeed ? 0.1 : 1; + this.name_337.name_573(dt,k * this.var_477,this.maxSpeed,slipTerm,weight,this.name_518,this.var_484); + this.name_340.name_573(dt,k * this.var_482,this.maxSpeed,slipTerm,weight,this.name_518,this.var_486); + var baseMatrix:Matrix3 = this.body.baseMatrix; + if(this.name_340.name_577 >= this.name_340.numRays >> 1 || this.name_337.name_577 >= this.name_337.numRays >> 1) + { + d = world.name_567.x * baseMatrix.c + world.name_567.y * baseMatrix.g + world.name_567.z * baseMatrix.k; + limit = Math.SQRT1_2 * world.name_567.length(); + if(d < -limit || d > limit) + { + _v.x = (baseMatrix.c * d - world.name_567.x) * this.mass; + _v.y = (baseMatrix.g * d - world.name_567.y) * this.mass; + _v.z = (baseMatrix.k * d - world.name_567.z) * this.mass; + this.body.name_585(_v); + } + } + } + + public function updateAfterSimulation(physicsStep:int) : void + { + } + + public function interpolate(interpolationCoeff:Number) : void + { + this.body.interpolate(interpolationCoeff,this.name_288,this.name_334); + this.name_334.normalize(); + this.name_334.toMatrix4(this.var_483); + this.var_483.name_201(this.name_288); + } + + public function method_491(mask:int) : void + { + for(var i:int = 0; i < this.var_476.length; i++) + { + this.var_476[i].collisionMask = mask; + } + } + + public function setDetailedCollisionGroup(collisionGroup:int) : void + { + var collisionPrimitive:name_235 = null; + for each(collisionPrimitive in this.var_475) + { + collisionPrimitive.collisionGroup = collisionGroup; + } + if(this.turret != null) + { + for each(collisionPrimitive in this.turret.getTurretPrimitives()) + { + collisionPrimitive.collisionGroup = collisionGroup; + } + } + } + + public function setSuspensionCollisionMask(collisionMask:int) : void + { + this.name_337.collisionMask = collisionMask; + this.name_340.collisionMask = collisionMask; + } + + public function addToScene() : void + { + var physicsSystem:name_178 = null; + var physicsScene:name_467 = null; + var collisionDetector:name_468 = null; + if(!this.var_426) + { + physicsSystem = this.gameKernel.method_112(); + physicsScene = physicsSystem.name_246(); + collisionDetector = name_468(physicsScene.collisionDetector); + physicsScene.name_592(this.body); + collisionDetector.name_591(this.var_485); + physicsSystem.addControllerBefore(this); + this.var_426 = true; + } + } + + public function removeFromScene() : void + { + var physicsSystem:name_178 = null; + var physicsScene:name_467 = null; + var collisionDetector:name_468 = null; + if(this.var_426) + { + physicsSystem = this.gameKernel.method_112(); + physicsScene = physicsSystem.name_246(); + collisionDetector = name_468(physicsScene.collisionDetector); + physicsScene.name_593(this.body); + collisionDetector.name_590(this.var_485); + physicsSystem.removeControllerBefore(this); + this.var_426 = false; + } + } + + private function method_493(value:Number) : void + { + if(value <= 0) + { + throw new ArgumentError("Mass must have a positive value"); + } + this.body.invMass = 1 / value; + if(this.hull != null) + { + name_575.name_589(value,this.hull.name_517.hs,this.body.invInertia); + } + } + + private function method_485(geometryData:Vector., primitives:Vector., collisionGroup:int, collisionMask:int) : void + { + var boxData:name_484 = null; + var primitive:name_377 = null; + primitives.length = 0; + for each(boxData in geometryData) + { + primitive = new name_377(boxData.hs,collisionGroup,collisionMask); + primitive.localTransform = boxData.matrix.clone(); + primitive.body = this.body; + primitives.push(primitive); + } + } + + private function method_483(primitives:Vector.) : void + { + var collisionPrimitive:name_235 = null; + for each(collisionPrimitive in primitives) + { + this.body.name_580(collisionPrimitive,collisionPrimitive.localTransform); + } + } + + private function method_386(gameType:String, gameData:*) : void + { + this.setChassisControls(0,0,false); + } + } +} + +class ValueSmoother +{ + public var currentValue:Number; + + public var targetValue:Number; + + public var smoothingSpeedUp:Number; + + public var smoothingSpeedDown:Number; + + public function ValueSmoother(smoothingSpeedUp:Number, smoothingSpeedDown:Number, targetValue:Number, currentValue:Number) + { + super(); + this.smoothingSpeedUp = smoothingSpeedUp; + this.smoothingSpeedDown = smoothingSpeedDown; + this.targetValue = targetValue; + this.currentValue = currentValue; + } + + public function reset(value:Number) : void + { + this.currentValue = value; + this.targetValue = value; + } + + public function update(dt:Number) : Number + { + if(this.currentValue < this.targetValue) + { + this.currentValue += this.smoothingSpeedUp * dt; + if(this.currentValue > this.targetValue) + { + this.currentValue = this.targetValue; + } + } + else if(this.currentValue > this.targetValue) + { + this.currentValue -= this.smoothingSpeedDown * dt; + if(this.currentValue < this.targetValue) + { + this.currentValue = this.targetValue; + } + } + return this.currentValue; + } +} diff --git a/src/package_77/name_510.as b/src/package_77/name_510.as new file mode 100644 index 0000000..2aab0ac --- /dev/null +++ b/src/package_77/name_510.as @@ -0,0 +1,222 @@ +package package_77 +{ + import package_46.name_194; + import package_86.name_540; + import package_90.name_273; + import package_92.name_271; + import package_92.name_599; + + public class name_510 + { + private static var _groundUp:name_194; + + private static var _v:name_194 = new name_194(); + + private static var _worldUp:name_194 = new name_194(); + + private static var _groundForward:name_194 = new name_194(); + + private static var _groundRight:name_194 = new name_194(); + + private static var _relVel:name_194 = new name_194(); + + private static var _force:name_194 = new name_194(); + + public var collisionMask:int; + + public var name_692:Number = 0; + + private var body:name_271; + + private var relPos:name_194 = new name_194(); + + private var relDir:name_194 = new name_194(); + + public var worldPos:name_194 = new name_194(); + + public var name_512:name_194 = new name_194(); + + public var name_514:Boolean = false; + + public var name_516:name_273 = new name_273(); + + private var var_626:Number = 0; + + private var var_627:name_540; + + public function name_510(body:name_271, relPos:name_194, relDir:name_194) + { + super(); + this.body = body; + this.relPos.copy(relPos); + this.relDir.copy(relDir); + this.var_627 = new name_540(body); + } + + public function getRelativeZ() : Number + { + return this.relPos.z; + } + + public function method_713(value:name_194) : void + { + this.relPos.copy(value); + } + + public function method_714(x:Number, y:Number, z:Number) : void + { + this.relPos.x = x; + this.relPos.y = y; + this.relPos.z = z; + } + + public function name_693(maxLength:Number) : Boolean + { + this.body.baseMatrix.method_345(this.relDir,this.name_512); + this.body.baseMatrix.method_345(this.relPos,this.worldPos); + var p:name_194 = this.body.state.position; + this.worldPos.x += p.x; + this.worldPos.y += p.y; + this.worldPos.z += p.z; + if(this.name_514) + { + this.var_626 = maxLength - this.name_516.t; + } + this.name_514 = this.body.scene.collisionDetector.raycast(this.worldPos,this.name_512,this.collisionMask,maxLength,this.var_627,this.name_516); + if(this.name_514 && this.name_516.primitive == null) + { + throw new Error("Ray hit error. Body id = " + this.body.id); + } + return this.name_514; + } + + public function name_585(dt:Number, throttle:Number, maxSpeed:Number, slipTerm:int, springCoeff:Number, data:name_570, fwdBrake:Boolean) : void + { + var bState:name_599 = null; + var slipSpeed:Number = NaN; + var sideFriction:Number = NaN; + var frictionForce:Number = NaN; + var fwdFriction:Number = NaN; + this.name_692 = 0; + if(!this.name_514) + { + return; + } + _groundUp = this.name_516.normal; + _v.x = this.body.baseMatrix.b; + _v.y = this.body.baseMatrix.f; + _v.z = this.body.baseMatrix.j; + _groundRight.x = _v.y * _groundUp.z - _v.z * _groundUp.y; + _groundRight.y = _v.z * _groundUp.x - _v.x * _groundUp.z; + _groundRight.z = _v.x * _groundUp.y - _v.y * _groundUp.x; + var len:Number = _groundRight.x * _groundRight.x + _groundRight.y * _groundRight.y + _groundRight.z * _groundRight.z; + if(len == 0) + { + _groundRight.x = 1; + } + else + { + len = Number(Math.sqrt(len)); + _groundRight.x /= len; + _groundRight.y /= len; + _groundRight.z /= len; + } + _groundForward.x = _groundUp.y * _groundRight.z - _groundUp.z * _groundRight.y; + _groundForward.y = _groundUp.z * _groundRight.x - _groundUp.x * _groundRight.z; + _groundForward.z = _groundUp.x * _groundRight.y - _groundUp.y * _groundRight.x; + var state:name_599 = this.body.state; + _v.x = this.name_516.position.x - state.position.x; + _v.y = this.name_516.position.y - state.position.y; + _v.z = this.name_516.position.z - state.position.z; + var rot:name_194 = state.rotation; + _relVel.x = rot.y * _v.z - rot.z * _v.y + state.velocity.x; + _relVel.y = rot.z * _v.x - rot.x * _v.z + state.velocity.y; + _relVel.z = rot.x * _v.y - rot.y * _v.x + state.velocity.z; + if(this.name_516.primitive.body != null) + { + bState = this.name_516.primitive.body.state; + _v.x = this.name_516.position.x - bState.position.x; + _v.y = this.name_516.position.y - bState.position.y; + _v.z = this.name_516.position.z - bState.position.z; + rot = bState.rotation; + _relVel.x -= rot.y * _v.z - rot.z * _v.y + bState.velocity.x; + _relVel.y -= rot.z * _v.x - rot.x * _v.z + bState.velocity.y; + _relVel.z -= rot.x * _v.y - rot.y * _v.x + bState.velocity.z; + } + var relSpeed:Number = Number(Math.sqrt(_relVel.x * _relVel.x + _relVel.y * _relVel.y + _relVel.z * _relVel.z)); + var fwdSpeed:Number = _relVel.x * _groundForward.x + _relVel.y * _groundForward.y + _relVel.z * _groundForward.z; + this.name_692 = fwdSpeed; + if(throttle > 0 && fwdSpeed < maxSpeed || throttle < 0 && -fwdSpeed < maxSpeed) + { + _v.x = this.worldPos.x + data.name_696 * this.name_512.x; + _v.y = this.worldPos.y + data.name_696 * this.name_512.y; + _v.z = this.worldPos.z + data.name_696 * this.name_512.z; + _force.x = throttle * _groundForward.x; + _force.y = throttle * _groundForward.y; + _force.z = throttle * _groundForward.z; + this.body.name_525(_v,_force); + } + _worldUp.x = this.body.baseMatrix.c; + _worldUp.y = this.body.baseMatrix.g; + _worldUp.z = this.body.baseMatrix.k; + var t:Number = this.name_516.t; + var currDisplacement:Number = data.rayLength - t; + var springForce:Number = springCoeff * currDisplacement * (_worldUp.x * this.name_516.normal.x + _worldUp.y * this.name_516.normal.y + _worldUp.z * this.name_516.normal.z); + var upSpeed:Number = (currDisplacement - this.var_626) / dt; + springForce += upSpeed * data.name_582; + if(springForce < 0) + { + springForce = 0; + } + _force.x = -springForce * this.name_512.x; + _force.y = -springForce * this.name_512.y; + _force.z = -springForce * this.name_512.z; + if(relSpeed > 0.001) + { + slipSpeed = _relVel.dot(_groundRight); + sideFriction = slipTerm == 0 || slipSpeed >= 0 && slipTerm > 0 || slipSpeed <= 0 && slipTerm < 0 ? data.name_698 : 2 * data.name_699; + frictionForce = sideFriction * springForce * slipSpeed / relSpeed; + if(slipSpeed > -data.name_697 && slipSpeed < data.name_697) + { + frictionForce *= slipSpeed / data.name_697; + if(slipSpeed < 0) + { + frictionForce = -frictionForce; + } + } + _force.x -= frictionForce * _groundRight.x; + _force.y -= frictionForce * _groundRight.y; + _force.z -= frictionForce * _groundRight.z; + if(fwdBrake) + { + fwdFriction = 0.3 * data.name_698; + } + else if(fwdSpeed * throttle <= 0) + { + fwdFriction = 0.5 * data.name_698; + } + else + { + fwdFriction = data.name_699; + } + frictionForce = fwdFriction * springForce * fwdSpeed / relSpeed; + if(fwdSpeed > -data.name_697 && fwdSpeed < data.name_697) + { + frictionForce *= fwdSpeed / data.name_697; + if(fwdSpeed < 0) + { + frictionForce = -frictionForce; + } + } + _force.x -= frictionForce * _groundForward.x; + _force.y -= frictionForce * _groundForward.y; + _force.z -= frictionForce * _groundForward.z; + } + _v.x = this.worldPos.x + data.name_696 * this.name_512.x; + _v.y = this.worldPos.y + data.name_696 * this.name_512.y; + _v.z = this.worldPos.z + data.name_696 * this.name_512.z; + this.body.name_525(_v,_force); + } + } +} + diff --git a/src/package_77/name_515.as b/src/package_77/name_515.as new file mode 100644 index 0000000..134af2c --- /dev/null +++ b/src/package_77/name_515.as @@ -0,0 +1,151 @@ +package package_77 +{ + import package_1.name_1; + import package_27.name_501; + import package_46.Matrix4; + import package_46.name_194; + import package_71.name_318; + import package_92.name_271; + + public class name_515 + { + private static var conSpeedDamping:name_1 = new name_1("track_damping",0,0,1000); + + public var chassisBody:name_271; + + public var rays:Vector.; + + public var numRays:int; + + public var name_577:int; + + public var name_571:Number = 0; + + private var var_624:Object; + + public function name_515(chassisBody:name_271, matrix:Matrix4, wheels:Vector.) + { + super(); + this.chassisBody = chassisBody; + this.method_706(matrix,wheels); + } + + public function set collisionMask(value:int) : void + { + for(var i:int = 0; i < this.numRays; i++) + { + name_510(this.rays[i]).collisionMask = value; + } + } + + private function method_707(tankWheel:name_318) : Boolean + { + var parts:Array = tankWheel.name.split("_"); + return parts[1] == "1"; + } + + public function method_706(matrix:Matrix4, wheels:Vector.) : void + { + var position:name_194; + var i:int; + var tankWheel:name_318 = null; + var mainWheel:name_318 = null; + var ray:name_510 = null; + var mainWheels:Vector. = new Vector.(); + for each(tankWheel in wheels) + { + if(this.method_707(tankWheel)) + { + mainWheels.push(tankWheel); + } + } + if(mainWheels.length == 0) + { + throw new Error("No main wheels found"); + } + mainWheels.sort(function(a:name_318, b:name_318):Number + { + if(a.position.y > b.position.y) + { + return -1; + } + if(a.position.y < b.position.y) + { + return 1; + } + return 0; + }); + this.var_624 = {}; + this.numRays = mainWheels.length; + this.rays = new Vector.(this.numRays); + position = new name_194(); + for(i = 0; i < this.numRays; i++) + { + mainWheel = mainWheels[i]; + matrix.method_353(mainWheel.position,position); + ray = new name_510(this.chassisBody,position,new name_194(0,0,-1)); + this.rays[i] = ray; + this.var_624[mainWheel.name] = ray; + } + } + + public function name_574(name:String, maxRayLength:Number) : Number + { + var ray:name_510 = this.var_624[name]; + if(ray == null) + { + return -1; + } + return ray.name_514 ? ray.name_516.t : maxRayLength; + } + + public function name_573(dt:Number, throttle:Number, maxSpeed:Number, slipTerm:int, weight:Number, data:name_570, brake:Boolean) : void + { + var i:int = 0; + var springCoeff:Number = NaN; + var mid:int = 0; + var ray:name_510 = null; + this.name_577 = 0; + for(i = 0; i < this.numRays; ) + { + if(name_510(this.rays[i]).name_693(data.rayLength)) + { + ++this.name_577; + } + i++; + } + if(this.name_577 > 0) + { + this.name_571 = 0; + springCoeff = 0.5 * weight / (this.name_577 * (data.rayLength - data.name_579)); + throttle *= this.numRays / this.name_577; + mid = this.numRays >> 1; + if(Boolean(this.numRays & 1 == 0)) + { + for(i = 0; i < this.numRays; i++) + { + ray = this.rays[i]; + ray.name_585(dt,throttle,maxSpeed,i <= mid ? slipTerm : int(-slipTerm),springCoeff,data,brake); + this.name_571 += ray.name_692; + } + } + else + { + for(i = 0; i < this.numRays; ) + { + ray = this.rays[i]; + ray.name_585(dt,throttle,maxSpeed,i < mid ? slipTerm : (i > mid ? int(-slipTerm) : 0),springCoeff,data,brake); + this.name_571 += ray.name_692; + i++; + } + } + this.name_571 /= this.name_577; + } + else + { + this.name_571 = name_501.name_504(this.name_571,0,conSpeedDamping.value * dt); + } + } + } +} + diff --git a/src/package_77/name_569.as b/src/package_77/name_569.as new file mode 100644 index 0000000..73ddb09 --- /dev/null +++ b/src/package_77/name_569.as @@ -0,0 +1,23 @@ +package package_77 +{ + public class name_569 extends class_39 + { + public function name_569(component:name_237) + { + super(component); + } + + override public function start(data:*) : void + { + component.setChassisControls(0,0,false); + component.removeFromScene(); + } + + override public function stop() : void + { + component.setLinearVelocityXYZ(0,0,0); + component.setAngularVelocityXYZ(0,0,0); + } + } +} + diff --git a/src/package_77/name_570.as b/src/package_77/name_570.as new file mode 100644 index 0000000..2a351a9 --- /dev/null +++ b/src/package_77/name_570.as @@ -0,0 +1,25 @@ +package package_77 +{ + public class name_570 + { + public var rayLength:Number = 0; + + public var name_579:Number = 0; + + public var name_696:Number = 0; + + public var name_582:Number = 0; + + public var name_697:Number = 100; + + public var name_698:Number = 3; + + public var name_699:Number = 0.2; + + public function name_570() + { + super(); + } + } +} + diff --git a/src/package_77/name_572.as b/src/package_77/name_572.as new file mode 100644 index 0000000..7b1c459 --- /dev/null +++ b/src/package_77/name_572.as @@ -0,0 +1,20 @@ +package package_77 +{ + import package_86.name_257; + + public class name_572 extends class_39 + { + public function name_572(component:name_237) + { + super(component); + } + + override public function start(data:*) : void + { + component.addToScene(); + component.setDetailedCollisionGroup(name_257.TANK | name_257.WEAPON); + component.setSuspensionCollisionMask(name_257.STATIC | name_257.TANK); + } + } +} + diff --git a/src/package_77/name_576.as b/src/package_77/name_576.as new file mode 100644 index 0000000..bc30131 --- /dev/null +++ b/src/package_77/name_576.as @@ -0,0 +1,118 @@ +package package_77 +{ + import package_10.name_17; + import package_44.name_178; + import package_71.name_720; + import package_86.name_257; + + public class name_576 extends class_39 + { + private var var_644:ContactFilter; + + public function name_576(component:name_237) + { + super(component); + this.var_644 = new ContactFilter(); + } + + override public function start(data:*) : void + { + var gameKernel:name_17 = null; + var physicsSystem:name_178 = null; + component.addToScene(); + component.setDetailedCollisionGroup(name_257.TANK); + component.setSuspensionCollisionMask(name_257.STATIC); + component.body.postCollisionFilter = this.var_644; + var callback:name_720 = name_720(data); + if(callback != null) + { + gameKernel = component.gameKernel; + this.var_644.initCallback(callback); + gameKernel.getLogicSystem1().addLogicUnit(this.var_644); + physicsSystem = gameKernel.method_112(); + physicsSystem.addControllerAfter(this.var_644); + physicsSystem.addControllerBefore(this.var_644); + } + } + + override public function stop() : void + { + var gameKernel:name_17 = null; + var physicsSystem:name_178 = null; + component.body.postCollisionFilter = null; + if(this.var_644.callback != null) + { + gameKernel = component.gameKernel; + gameKernel.getLogicSystem1().removeLogicUnit(this.var_644); + physicsSystem = gameKernel.method_112(); + physicsSystem.removeControllerAfter(this.var_644); + physicsSystem.removeControllerBefore(this.var_644); + this.var_644.callback = null; + } + } + } +} + +import flash.utils.getTimer; +import package_42.name_477; +import package_44.name_465; +import package_45.name_182; +import package_71.name_720; +import package_76.name_604; +import package_92.name_271; + +class ContactFilter implements name_604, name_465, name_477 +{ + private static const MIN_TRANSPARENCY_DURATION:int = 3000; + + public var callback:name_720; + + private var numContacts:int; + + private var canActivate:Boolean; + + private var startTime:int; + + public function ContactFilter() + { + super(); + } + + public function initCallback(callback:name_720) : void + { + this.canActivate = false; + this.startTime = getTimer(); + this.callback = callback; + } + + public function acceptBodiesCollision(body1:name_271, body2:name_271) : Boolean + { + ++this.numContacts; + return false; + } + + public function updateBeforeSimulation(physicsStep:int) : void + { + this.numContacts = 0; + } + + public function updateAfterSimulation(physicsStep:int) : void + { + if(Boolean(this.canActivate) && this.numContacts == 0) + { + this.callback.name_721(); + } + } + + public function interpolate(interpolationCoeff:Number) : void + { + } + + public function runLogic() : void + { + if(name_182.time - this.startTime > MIN_TRANSPARENCY_DURATION) + { + this.canActivate = true; + } + } +} diff --git a/src/package_77/name_578.as b/src/package_77/name_578.as new file mode 100644 index 0000000..0ed86ae --- /dev/null +++ b/src/package_77/name_578.as @@ -0,0 +1,25 @@ +package package_77 +{ + import package_86.name_257; + import package_92.name_271; + + public class name_578 extends class_39 + { + public function name_578(component:name_237) + { + super(component); + } + + override public function start(data:*) : void + { + component.addToScene(); + component.setDetailedCollisionGroup(name_257.TANK | name_257.WEAPON); + component.setSuspensionCollisionMask(name_257.STATIC | name_257.TANK); + component.setChassisControls(0,0,false); + var body:name_271 = component.getBody(); + body.state.velocity.z += 500; + body.state.rotation.reset(2,2,2); + } + } +} + diff --git a/src/package_78/name_243.as b/src/package_78/name_243.as new file mode 100644 index 0000000..e88bb13 --- /dev/null +++ b/src/package_78/name_243.as @@ -0,0 +1,196 @@ +package package_78 +{ + import package_15.name_55; + import package_19.name_380; + import package_19.name_528; + import package_21.name_78; + import package_46.Matrix4; + import package_46.name_194; + import package_71.name_249; + import package_71.name_318; + import package_71.name_333; + import package_86.name_484; + + public class name_243 extends name_258 + { + private static var leftSprings:Array; + + private static var rightSprings:Array; + + public static const KEY_TRACKS_DIFFUSE:String = "tracksDiffuseMap"; + + public static const KEY_TRACKS_NORMAL:String = "tracksNormalMap"; + + public static const KEY_TRACKS_OPACITY:String = "tracksOpacityMap"; + + public static const KEY_SHADOW:String = "tracksShadowMap"; + + public static const TRACKS_NORMALMAP_ATF:String = "tracks_normalmap.atf"; + + public static const TRACKS_DIFFUSEMAP_ATF:String = "tracks_diffuse.atf"; + + public static const TRACKS_OPACITYMAP_ATF:String = "tracks_opacity.atf"; + + public static const SHADOW_ATF:String = "shadow.atf"; + + public function name_243() + { + super(); + } + + override protected function doParse(objects:Vector., tankPart:name_333, files:name_55) : void + { + super.doParse(objects,tankPart,files); + this.method_423(tankPart,files); + } + + private function method_423(tankPart:name_333, files:name_55) : void + { + tankPart.textureData.name_59(KEY_TRACKS_NORMAL,files.name_248(TRACKS_NORMALMAP_ATF)); + tankPart.textureData.name_59(KEY_TRACKS_DIFFUSE,files.name_248(TRACKS_DIFFUSEMAP_ATF)); + tankPart.textureData.name_59(KEY_TRACKS_OPACITY,files.name_248(TRACKS_OPACITYMAP_ATF)); + if(files.name_248(SHADOW_ATF) != null) + { + tankPart.textureData.name_59(KEY_SHADOW,files.name_248(SHADOW_ATF)); + } + } + + override protected function createTankPart() : name_333 + { + return new name_249(); + } + + override protected function getParsingFunctions() : Object + { + return { + "hull":this.method_429, + "mount":this.method_422, + "body":this.method_425, + "box":this.method_421, + "simp":this.method_426, + "sp":this.method_427, + "wh":this.method_428, + "track":this.method_424, + "shadow":this.method_430 + }; + } + + override protected function beginParsing(tankPart:name_333) : void + { + leftSprings = []; + rightSprings = []; + } + + override protected function endParsing(tankPart:name_333) : void + { + this.method_420(name_249(tankPart)); + } + + private function method_429(mesh:name_380, tankHull:name_249) : void + { + tankHull.geometry = mesh.geometry; + } + + private function method_422(mesh:name_380, tankHull:name_249) : void + { + tankHull.name_533.reset(mesh.x,mesh.y,mesh.z); + tankHull.name_536.copy(tankHull.name_533); + } + + private function method_425(mesh:name_380, tankHull:name_249) : void + { + tankHull.name_517 = name_531.name_532(mesh); + } + + private function method_421(mesh:name_380, tankHull:name_249) : void + { + var boxData:name_484 = name_531.name_532(mesh); + tankHull.name_534.push(boxData); + } + + private function method_426(mesh:name_380, tankHull:name_249) : void + { + var boxData:name_484 = name_531.name_532(mesh); + tankHull.name_535.push(boxData); + } + + private function method_427(mesh:name_380, tankHull:name_249) : void + { + var name:String = mesh.name.toLowerCase(); + var type:String = name.substr(2,1); + var index:int = int(int(name.substr(3,1))); + var array:Array = type == "r" ? rightSprings : leftSprings; + array[index] = new name_194(mesh.x,mesh.y,mesh.z); + } + + private function method_428(mesh:name_380, tankHull:name_249) : void + { + var tankWheel:name_318 = new name_318(mesh.name,mesh.geometry,new name_194(mesh.x,mesh.y,mesh.z)); + if(mesh.name.charAt(2) == "l") + { + tankHull.name_325.push(tankWheel); + } + else + { + tankHull.name_323.push(tankWheel); + } + } + + private function method_430(mesh:name_380, tankHull:name_249) : void + { + tankHull.shadow = mesh; + } + + private function method_424(skin:name_528, tankHull:name_249) : void + { + var child:name_78 = null; + for(var i:int = 0; i < skin.numChildren; i++) + { + child = skin.getChildAt(i); + child.name = child.name.toLowerCase(); + } + if(skin.name.toLowerCase().charAt(0) == "l") + { + tankHull.name_337 = skin; + } + else + { + tankHull.name_340 = skin; + } + } + + private function method_420(tankHull:name_249) : void + { + var skinMatrix:Matrix4 = tankHull.name_517.matrix.clone(); + skinMatrix.invert(); + skinMatrix.getAxis(3,tankHull.name_538); + tankHull.name_533.transform4(skinMatrix); + this.method_418(tankHull.name_534,skinMatrix); + this.method_418(tankHull.name_535,skinMatrix); + tankHull.name_539 = this.method_419(leftSprings,skinMatrix); + tankHull.name_537 = this.method_419(rightSprings,skinMatrix); + leftSprings = null; + rightSprings = null; + } + + private function method_418(geometry:Vector., m:Matrix4) : void + { + var cbData:name_484 = null; + for each(cbData in geometry) + { + cbData.matrix.append(m); + } + } + + private function method_419(points:Array, matrix:Matrix4) : Vector. + { + var v:name_194 = null; + for each(v in points) + { + v.transform4(matrix); + } + return Vector.(points); + } + } +} + diff --git a/src/package_78/name_258.as b/src/package_78/name_258.as new file mode 100644 index 0000000..c068611 --- /dev/null +++ b/src/package_78/name_258.as @@ -0,0 +1,120 @@ +package package_78 +{ + import package_116.name_529; + import package_116.name_530; + import package_15.name_55; + import package_19.name_528; + import package_21.name_78; + import package_71.name_333; + + public class name_258 + { + public static const KEY_DIFFUSE_MAP:String = "diffuseMap"; + + public static const KEY_NORMAL_MAP:String = "normalMap"; + + public static const KEY_SURFACE_MAP:String = "surfaceMap"; + + public function name_258() + { + super(); + } + + public function method_314(byteArrayMap:name_55, mainFile:String) : name_333 + { + var objects:Vector. = null; + var parserA3D:name_529 = null; + var parserCollada:name_530 = null; + var tankPart:name_333 = this.createTankPart(); + if(mainFile == "main.a3d") + { + parserA3D = new name_529(); + parserA3D.method_314(byteArrayMap.name_248(mainFile)); + objects = parserA3D.objects; + } + else + { + if(mainFile != "main.dae") + { + throw new Error("Unsupported type: " + mainFile); + } + parserCollada = new name_530(); + parserCollada.method_314(XML(byteArrayMap.name_248(mainFile).toString())); + objects = parserCollada.objects; + } + this.method_417(objects); + this.beginParsing(tankPart); + this.doParse(objects,tankPart,byteArrayMap); + this.endParsing(tankPart); + tankPart.textureData.name_59(KEY_DIFFUSE_MAP,byteArrayMap.name_248("diffuse.atf")); + tankPart.textureData.name_59(KEY_NORMAL_MAP,byteArrayMap.name_248("normalmap.atf")); + tankPart.textureData.name_59(KEY_SURFACE_MAP,byteArrayMap.name_248("surface.atf")); + return tankPart; + } + + private function method_417(objects:Vector.) : void + { + var object3D:name_78 = null; + var skin:name_528 = null; + var i:int = 0; + var childAt:name_78 = null; + for each(object3D in objects) + { + if(object3D is name_528) + { + skin = name_528(object3D); + for(i = 0; i < skin.numChildren; i++) + { + childAt = skin.getChildAt(i); + } + } + } + } + + protected function createTankPart() : name_333 + { + throw new Error("Not implemented"); + } + + protected function beginParsing(tankPart:name_333) : void + { + } + + protected function endParsing(tankPart:name_333) : void + { + } + + protected function getParsingFunctions() : Object + { + return {}; + } + + protected function doParse(objects:Vector., tankPart:name_333, byteArrayMap:name_55) : void + { + var object:name_78 = null; + var key:String = null; + var func:Function = null; + var parsingFunctions:Object = this.getParsingFunctions(); + var len:int = int(objects.length); + for(var i:int = 0; i < len; ) + { + object = objects[i]; + if(object.name != null) + { + object.name = object.name.toLowerCase(); + for(key in parsingFunctions) + { + if(object.name.indexOf(key) >= 0) + { + func = parsingFunctions[key]; + func.call(null,object,tankPart); + break; + } + } + } + i++; + } + } + } +} + diff --git a/src/package_78/name_531.as b/src/package_78/name_531.as new file mode 100644 index 0000000..350c0b7 --- /dev/null +++ b/src/package_78/name_531.as @@ -0,0 +1,31 @@ +package package_78 +{ + import package_19.name_380; + import package_21.name_386; + import package_46.Matrix4; + import package_46.name_194; + import package_86.name_484; + + public class name_531 + { + public function name_531() + { + super(); + } + + public static function name_532(mesh:name_380) : name_484 + { + mesh.calculateBoundBox(); + var bb:name_386 = mesh.boundBox; + var hs:name_194 = new name_194(0.5 * (bb.maxX - bb.minX),0.5 * (bb.maxY - bb.minY),0.5 * (bb.maxZ - bb.minZ)); + var midPoint:name_194 = new name_194(0.5 * (bb.minX + bb.maxX),0.5 * (bb.minY + bb.maxY),0.5 * (bb.minZ + bb.maxZ)); + var matrix:Matrix4 = new Matrix4(); + matrix.name_196(mesh.rotationX,mesh.rotationY,mesh.rotationZ); + matrix.name_75(mesh.x,mesh.y,mesh.z); + midPoint.transform4(matrix); + matrix.name_201(midPoint); + return new name_484(hs,matrix); + } + } +} + diff --git a/src/package_78/name_731.as b/src/package_78/name_731.as new file mode 100644 index 0000000..e772144 --- /dev/null +++ b/src/package_78/name_731.as @@ -0,0 +1,51 @@ +package package_78 +{ + import package_19.name_380; + import package_46.name_194; + import package_71.name_234; + import package_71.name_333; + + public class name_731 extends name_258 + { + public function name_731() + { + super(); + } + + override protected function createTankPart() : name_333 + { + return new name_234(); + } + + override protected function getParsingFunctions() : Object + { + return { + "turret":this.method_429, + "fmnt":this.method_886, + "box":this.method_887, + "muzzle":this.method_885 + }; + } + + private function method_429(mesh:name_380, tankTurret:name_234) : void + { + tankTurret.geometry = mesh.geometry; + } + + private function method_886(mesh:name_380, tankTurret:name_234) : void + { + tankTurret.var_423.reset(mesh.x,mesh.y,mesh.z); + } + + private function method_887(mesh:name_380, tankTurret:name_234) : void + { + tankTurret.var_422.push(name_531.name_532(mesh)); + } + + private function method_885(mesh:name_380, tankTurret:name_234) : void + { + tankTurret.var_421.push(new name_194(mesh.x,mesh.y,mesh.z)); + } + } +} + diff --git a/src/package_79/name_261.as b/src/package_79/name_261.as new file mode 100644 index 0000000..f6c7935 --- /dev/null +++ b/src/package_79/name_261.as @@ -0,0 +1,121 @@ +package package_79 +{ + import package_46.Matrix3; + import package_46.name_194; + import package_74.name_524; + import package_76.name_256; + import package_86.name_257; + import package_86.name_540; + import package_90.name_273; + import package_92.name_271; + + public class name_261 implements name_524 + { + private static var collisionMask:int = name_257.STATIC | name_257.WEAPON; + + private static var rayDirection:name_194 = new name_194(); + + private var var_469:Number; + + private var var_470:name_194 = new name_194(); + + private var matrix:Matrix3 = new Matrix3(); + + private var rayHit:name_273 = new name_273(); + + private var filter:name_540 = new name_540(); + + private var angleUp:Number; + + private var numRaysUp:int; + + private var angleDown:Number; + + private var numRaysDown:int; + + private var collisionDetector:name_256; + + private var targetValidator:name_326; + + public function name_261(angleUp:Number, numRaysUp:int, angleDown:Number, numRaysDown:int, collisionDetector:name_256, targetValidator:name_326) + { + super(); + this.angleUp = angleUp; + this.numRaysUp = numRaysUp; + this.angleDown = angleDown; + this.numRaysDown = numRaysDown; + this.collisionDetector = collisionDetector; + this.targetValidator = targetValidator; + } + + public function name_303(validator:name_326) : void + { + this.targetValidator = validator; + } + + public function name_310(collisionDetector:name_256) : void + { + this.collisionDetector = collisionDetector; + } + + public function name_527(shooter:name_271, muzzlePosition:name_194, barrelOrigin:name_194, barrelDirection:name_194, barrelLength:Number, gunElevationAxis:name_194, maxDistance:Number, result:name_194) : void + { + var body:name_271 = null; + this.filter.body = shooter; + this.var_469 = maxDistance + 1; + if(this.collisionDetector.raycast(barrelOrigin,barrelDirection,collisionMask,maxDistance,this.filter,this.rayHit)) + { + this.var_469 = this.rayHit.t; + body = this.rayHit.primitive.body; + if(body == null) + { + if(this.rayHit.t < barrelLength) + { + result.copy(barrelDirection); + return; + } + } + this.var_470.copy(barrelDirection); + } + if(this.numRaysUp > 0) + { + this.method_466(shooter,barrelOrigin,barrelDirection,gunElevationAxis,this.numRaysUp,this.angleUp / this.numRaysUp,maxDistance); + } + if(this.numRaysDown > 0) + { + this.method_466(shooter,barrelOrigin,barrelDirection,gunElevationAxis,this.numRaysDown,-this.angleDown / this.numRaysDown,maxDistance); + } + this.filter.body = null; + if(this.var_469 > maxDistance) + { + result.copy(barrelDirection); + } + else + { + result.copy(this.var_470); + } + } + + private function method_466(shooter:name_271, origin:name_194, barrelDirection:name_194, gunElevationAxis:name_194, numRays:int, angleStep:Number, maxDistance:Number) : void + { + var targetBody:name_271 = null; + this.matrix.method_344(gunElevationAxis,angleStep); + rayDirection.copy(barrelDirection); + for(var i:int = 1; i <= numRays; ) + { + rayDirection.transform3(this.matrix); + if(Boolean(this.collisionDetector.raycast(origin,rayDirection,collisionMask,maxDistance,this.filter,this.rayHit)) && this.rayHit.t < this.var_469) + { + targetBody = this.rayHit.primitive.body; + if(targetBody != null && this.targetValidator.name_541(shooter,targetBody,0,0) > 0) + { + this.var_469 = this.rayHit.t; + this.var_470.copy(rayDirection); + } + } + i++; + } + } + } +} + diff --git a/src/package_79/name_280.as b/src/package_79/name_280.as new file mode 100644 index 0000000..c1e1e93 --- /dev/null +++ b/src/package_79/name_280.as @@ -0,0 +1,142 @@ +package package_79 +{ + import package_46.Matrix3; + import package_46.name_194; + import package_76.name_256; + import package_86.name_257; + import package_86.name_540; + import package_90.name_273; + import package_92.name_271; + + public class name_280 implements name_622 + { + private static const RICOCHET_NORMAL_OFFSET:Number = 0.01; + + private static var COLLISION_MASK:int = name_257.STATIC | name_257.WEAPON; + + private static var direction:name_194 = new name_194(); + + private static var currDirection:name_194 = new name_194(); + + private static var currOrigin:name_194 = new name_194(); + + private var angleUp:Number; + + private var numRaysUp:int; + + private var angleDown:Number; + + private var numRaysDown:int; + + private var collisionDetector:name_256; + + private var maxRicochets:int; + + private var targetEvaluator:name_326; + + private var rayHit:name_273 = new name_273(); + + private var filter:name_540 = new name_540(); + + private var matrix:Matrix3 = new Matrix3(); + + private var var_509:Number; + + public function name_280(angleUp:Number, numRaysUp:int, angleDown:Number, numRaysDown:int, maxRicochets:int, collisionDetector:name_256, targetValidator:name_326) + { + super(); + this.angleUp = angleUp; + this.numRaysUp = numRaysUp; + this.angleDown = angleDown; + this.numRaysDown = numRaysDown; + this.maxRicochets = maxRicochets; + this.collisionDetector = collisionDetector; + this.targetEvaluator = targetValidator; + } + + public function name_310(collisionDetector:name_256) : void + { + this.collisionDetector = collisionDetector; + } + + public function name_303(validator:name_326) : void + { + this.targetEvaluator = validator; + } + + public function name_624(shooter:name_271, muzzlePosition:name_194, barrelDirection:name_194, gunElevationAxis:name_194, maxDistance:Number, result:name_194) : void + { + this.var_509 = 0; + this.method_431(shooter,muzzlePosition,barrelDirection,maxDistance,0,result); + this.method_466(shooter,muzzlePosition,barrelDirection,gunElevationAxis,maxDistance,this.angleUp / this.numRaysUp,this.numRaysUp,result); + this.method_466(shooter,muzzlePosition,barrelDirection,gunElevationAxis,maxDistance,-this.angleDown / this.numRaysDown,this.numRaysDown,result); + this.filter.body = null; + if(this.var_509 == 0) + { + result.copy(barrelDirection); + } + } + + private function method_431(shooter:name_271, origin:name_194, direction:name_194, maxDistance:Number, angle:Number, result:name_194) : void + { + var body:name_271 = null; + var distance:Number = NaN; + var targetPriority:Number = NaN; + var normal:name_194 = null; + var remainingDistance:Number = maxDistance; + currOrigin.copy(origin); + currDirection.copy(direction); + this.filter.body = shooter; + for(var ricochetCount:int = 0; remainingDistance > 0; ) + { + if(!this.collisionDetector.raycast(currOrigin,currDirection,COLLISION_MASK,remainingDistance,this.filter,this.rayHit)) + { + return; + } + remainingDistance -= this.rayHit.t; + if(remainingDistance < 0) + { + remainingDistance = 0; + } + body = this.rayHit.primitive.body; + if(body != null) + { + distance = maxDistance - remainingDistance; + targetPriority = Number(this.targetEvaluator.name_541(shooter,body,distance,angle)); + if(targetPriority > this.var_509) + { + this.var_509 = targetPriority; + result.copy(direction); + } + return; + } + ricochetCount++; + if(ricochetCount > this.maxRicochets) + { + return; + } + this.filter.body = null; + normal = this.rayHit.normal; + currDirection.method_362(-2 * currDirection.dot(normal),normal); + currOrigin.copy(this.rayHit.position).method_362(RICOCHET_NORMAL_OFFSET,normal); + } + } + + private function method_466(shooter:name_271, origin:name_194, gunDirection:name_194, gunElevationAxis:name_194, maxDistance:Number, angleStep:Number, numRays:int, result:name_194) : void + { + direction.copy(gunDirection); + this.matrix.method_344(gunElevationAxis,angleStep); + if(angleStep < 0) + { + angleStep = -angleStep; + } + var angle:Number = angleStep; + for(var i:int = 0; i < numRays; i++,angle += angleStep) + { + direction.transform3(this.matrix); + this.method_431(shooter,origin,direction,maxDistance,angle,result); + } + } + } +} + diff --git a/src/package_79/name_282.as b/src/package_79/name_282.as new file mode 100644 index 0000000..66c28ba --- /dev/null +++ b/src/package_79/name_282.as @@ -0,0 +1,134 @@ +package package_79 +{ + import flash.utils.Dictionary; + import package_46.Matrix3; + import package_46.name_194; + import package_76.name_256; + import package_86.name_257; + import package_86.name_540; + import package_90.name_273; + import package_92.name_271; + + public class name_282 + { + private static const COLLISION_MASK:int = name_257.WEAPON | name_257.STATIC; + + private var filter:name_540 = new name_540(); + + private var rayHit:name_273 = new name_273(); + + private var range:Number; + + private var var_452:Number; + + private var numRays:int; + + private var numSteps:int; + + private var collisionDetector:name_256; + + private var sideAxis:name_194 = new name_194(); + + private var rayDirection:name_194 = new name_194(); + + private var var_449:name_194 = new name_194(); + + private var var_450:Matrix3 = new Matrix3(); + + private var var_451:Matrix3 = new Matrix3(); + + private var targetToDistance:Dictionary; + + private var targetEvaluator:name_326; + + public function name_282(range:Number, coneAngle:Number, numRays:int, numSteps:int, collisionDetector:name_256, targetEvaluator:name_326) + { + super(); + this.range = range; + this.var_452 = 0.5 * coneAngle; + this.numRays = numRays; + this.numSteps = numSteps; + this.collisionDetector = collisionDetector; + this.targetEvaluator = targetEvaluator; + } + + public function method_433(shooter:name_271, barrelOrigin:name_194, barrelLength:Number, originOffsetCoeff:Number, gunDirection:name_194, gunElevationAxis:name_194, targetToDistance:Dictionary) : void + { + var key:* = undefined; + var body:name_271 = null; + var actualRange:Number = NaN; + var angleStep:Number = NaN; + var i:int = 0; + var realDistance:Number = NaN; + this.filter.body = shooter; + this.targetToDistance = targetToDistance; + var originOffset:Number = originOffsetCoeff * barrelLength; + if(this.collisionDetector.raycast(barrelOrigin,gunDirection,COLLISION_MASK,barrelLength,this.filter,this.rayHit)) + { + body = this.rayHit.primitive.body; + if(body != null && this.targetEvaluator.name_541(shooter,body,0,0) > 0) + { + targetToDistance[body] = 0; + } + } + else + { + this.sideAxis.copy(gunElevationAxis); + this.var_449.copy(barrelOrigin).method_362(barrelLength - originOffset,gunDirection); + actualRange = this.range + originOffset; + this.method_431(shooter,this.var_449,gunDirection,actualRange); + this.var_451.method_344(gunDirection,Math.PI / this.numSteps); + angleStep = this.var_452 / this.numRays; + for(i = 0; i < this.numSteps; i++) + { + this.method_432(shooter,this.var_449,actualRange,gunDirection,this.sideAxis,this.numRays,angleStep); + this.method_432(shooter,this.var_449,actualRange,gunDirection,this.sideAxis,this.numRays,-angleStep); + this.sideAxis.transform3(this.var_451); + } + } + for(key in targetToDistance) + { + realDistance = targetToDistance[key] - originOffset; + if(realDistance < 0) + { + realDistance = 0; + } + targetToDistance[key] = realDistance; + } + this.filter.body = null; + this.targetToDistance = null; + } + + private function method_432(shooter:name_271, rayOrigin:name_194, rayLength:Number, gunDirection:name_194, rotationAxis:name_194, numRays:int, angleStep:Number) : void + { + this.var_450.method_344(rotationAxis,angleStep); + this.rayDirection.copy(gunDirection); + for(var i:int = 0; i < numRays; i++) + { + this.rayDirection.transform3(this.var_450); + this.method_431(shooter,rayOrigin,this.rayDirection,rayLength); + } + } + + private function method_431(shooter:name_271, rayOrigin:name_194, rayDirection:name_194, rayLength:Number) : void + { + var body:name_271 = null; + var realDistance:Number = NaN; + var storedDistance:Number = NaN; + if(this.collisionDetector.raycast(rayOrigin,rayDirection,COLLISION_MASK,rayLength,this.filter,this.rayHit)) + { + body = this.rayHit.primitive.body; + if(body != null && this.targetEvaluator.name_541(shooter,body,0,0) > 0) + { + realDistance = this.rayHit.t; + storedDistance = Number(this.targetToDistance[body]); + if(Boolean(isNaN(storedDistance)) || storedDistance > realDistance) + { + this.targetToDistance[body] = realDistance; + } + } + } + } + } +} + diff --git a/src/package_79/name_291.as b/src/package_79/name_291.as new file mode 100644 index 0000000..0638432 --- /dev/null +++ b/src/package_79/name_291.as @@ -0,0 +1,122 @@ +package package_79 +{ + import flash.utils.Dictionary; + import package_117.name_542; + import package_120.name_606; + import package_46.Matrix3; + import package_46.name_194; + import package_74.name_524; + import package_76.name_256; + import package_86.name_257; + import package_90.name_273; + import package_92.name_271; + + public class name_291 implements name_524 + { + private const COLLISION_MASK:int = name_257.WEAPON | name_257.STATIC; + + private var collisionDetector:name_256; + + private var angleUp:Number; + + private var angleDown:Number; + + private var numRaysUp:int; + + private var numRaysDown:int; + + private var var_504:name_606 = new name_606(); + + private var rayHit:name_273 = new name_273(); + + private var direction:name_194 = new name_194(); + + private var rotationMatrix:Matrix3 = new Matrix3(); + + private var origin:name_194 = new name_194(); + + private var targetEvaluator:name_542; + + public function name_291(angleUp:Number, numRaysUp:int, angleDown:Number, numRaysDown:int, collisionDetector:name_256, targetEvaluator:name_542) + { + super(); + this.angleUp = angleUp; + this.angleDown = angleDown; + this.numRaysUp = numRaysUp; + this.numRaysDown = numRaysDown; + this.collisionDetector = collisionDetector; + this.targetEvaluator = targetEvaluator; + } + + public function name_527(shooter:name_271, muzzlePosition:name_194, barrelOrigin:name_194, barrelDirection:name_194, barrelLength:Number, gunElevationAxis:name_194, maxDistance:Number, result:name_194) : void + { + var centerLineValue:Number = this.method_522(shooter,barrelOrigin,barrelDirection,barrelLength,maxDistance); + var directionValue:Number = 0; + directionValue = this.method_523(this.numRaysUp,this.angleUp / this.numRaysUp,directionValue,shooter,barrelOrigin,barrelDirection,barrelLength,gunElevationAxis,maxDistance,result); + directionValue = this.method_523(this.numRaysDown,-this.angleDown / this.numRaysDown,directionValue,shooter,barrelOrigin,barrelDirection,barrelLength,gunElevationAxis,maxDistance,result); + if(centerLineValue >= directionValue) + { + result.copy(barrelDirection); + } + } + + private function method_523(numRays:int, angleStep:Number, maxDirectionValue:Number, shooter:name_271, barrelOrigin:name_194, barrelDirection:name_194, barrelLength:Number, gunElevationAxis:name_194, maxDistance:Number, result:name_194) : Number + { + var directionValue:Number = NaN; + this.rotationMatrix.method_344(gunElevationAxis,angleStep); + this.direction.copy(barrelDirection); + for(var i:int = 0; i < numRays; ) + { + this.direction.transform3(this.rotationMatrix); + directionValue = this.method_522(shooter,barrelOrigin,this.direction,barrelLength,maxDistance); + if(directionValue > maxDirectionValue) + { + maxDirectionValue = directionValue; + result.copy(this.direction); + } + i++; + } + return maxDirectionValue; + } + + private function method_522(shooter:name_271, barrelOrigin:name_194, barrelDirection:name_194, barrelLength:Number, maxDistance:Number) : Number + { + var body:name_271 = null; + var distance:Number = NaN; + var targetValue:Number = NaN; + var directionValue:Number = 0; + var firstTarget:Boolean = true; + this.var_504.name_605 = new Dictionary(); + this.var_504.name_605[shooter] = true; + this.origin.copy(barrelOrigin); + while(this.collisionDetector.raycast(this.origin,barrelDirection,this.COLLISION_MASK,maxDistance,this.var_504,this.rayHit)) + { + body = this.rayHit.primitive.body; + if(body == null) + { + break; + } + distance = this.rayHit.t - barrelLength; + if(distance < 0) + { + distance = 0; + } + targetValue = Number(this.targetEvaluator.name_541(body,distance)); + if(firstTarget) + { + if(targetValue < 0) + { + break; + } + firstTarget = false; + } + directionValue += targetValue; + this.var_504.name_605[body] = true; + this.origin.copy(this.rayHit.position); + } + this.var_504.name_605 = null; + return directionValue; + } + } +} + diff --git a/src/package_79/name_326.as b/src/package_79/name_326.as new file mode 100644 index 0000000..9d6e978 --- /dev/null +++ b/src/package_79/name_326.as @@ -0,0 +1,10 @@ +package package_79 +{ + import package_92.name_271; + + public interface name_326 + { + function name_541(param1:name_271, param2:name_271, param3:Number, param4:Number) : Number; + } +} + diff --git a/src/package_79/name_622.as b/src/package_79/name_622.as new file mode 100644 index 0000000..a1f3994 --- /dev/null +++ b/src/package_79/name_622.as @@ -0,0 +1,11 @@ +package package_79 +{ + import package_46.name_194; + import package_92.name_271; + + public interface name_622 + { + function name_624(param1:name_271, param2:name_194, param3:name_194, param4:name_194, param5:Number, param6:name_194) : void; + } +} + diff --git a/src/package_8/class_16.as b/src/package_8/class_16.as new file mode 100644 index 0000000..1e9c2e1 --- /dev/null +++ b/src/package_8/class_16.as @@ -0,0 +1,11 @@ +package package_8 +{ + import flash.display.DisplayObjectContainer; + import package_15.name_19; + + public interface class_16 + { + function start(param1:DisplayObjectContainer, param2:name_19, param3:Vector., param4:name_25, param5:Vector.) : void; + } +} + diff --git a/src/package_8/name_24.as b/src/package_8/name_24.as new file mode 100644 index 0000000..fb47830 --- /dev/null +++ b/src/package_8/name_24.as @@ -0,0 +1,36 @@ +package package_8 +{ + import flash.display.Loader; + import package_15.name_19; + + public class name_24 + { + public var name:String; + + public var resourceId:String; + + public var resourceVersion:String; + + public var manifestProperties:name_19; + + public var loader:Loader; + + public var size:int; + + public function name_24(name:String, resourceId:String, resourceVersion:String, manifestProperties:name_19, size:int) + { + super(); + this.name = name; + this.resourceId = resourceId; + this.resourceVersion = resourceVersion; + this.manifestProperties = manifestProperties; + this.size = size; + } + + public function toString() : String + { + return "[BundleInfo name=" + this.name + ", id=" + this.resourceId + ", version=" + this.resourceVersion + ", manifestProperties=" + this.manifestProperties + ", size=" + this.size; + } + } +} + diff --git a/src/package_8/name_25.as b/src/package_8/name_25.as new file mode 100644 index 0000000..b2d634f --- /dev/null +++ b/src/package_8/name_25.as @@ -0,0 +1,20 @@ +package package_8 +{ + public class name_25 + { + public var serverAddress:String; + + public var serverPorts:Vector.; + + public var resourcesRootURL:String; + + public function name_25(serverAddress:String, serverPorts:Vector., resourcesRootURL:String) + { + super(); + this.serverAddress = serverAddress; + this.serverPorts = serverPorts; + this.resourcesRootURL = resourcesRootURL; + } + } +} + diff --git a/src/package_80/name_274.as b/src/package_80/name_274.as new file mode 100644 index 0000000..a336be8 --- /dev/null +++ b/src/package_80/name_274.as @@ -0,0 +1,22 @@ +package package_80 +{ + import flash.media.Sound; + import package_74.name_523; + + public class name_274 implements name_523 + { + private var shotSound:Sound; + + public function name_274(param1:Sound) + { + super(); + this.shotSound = param1; + } + + public function name_526() : void + { + this.shotSound.play(); + } + } +} + diff --git a/src/package_80/name_287.as b/src/package_80/name_287.as new file mode 100644 index 0000000..24676cb --- /dev/null +++ b/src/package_80/name_287.as @@ -0,0 +1,53 @@ +package package_80 +{ + import flash.events.Event; + import flash.media.Sound; + import flash.media.SoundChannel; + import flash.media.SoundTransform; + import flash.utils.Dictionary; + import package_95.name_545; + + public class name_287 implements name_545 + { + private var shotSound:Sound; + + private var channel:SoundChannel; + + public function name_287(param1:Sound) + { + super(); + this.shotSound = param1; + } + + public function name_548() : void + { + this.loop(); + } + + private function loop() : void + { + this.channel = this.shotSound.play(0,0,new SoundTransform(0.25)); + this.channel.addEventListener(Event.SOUND_COMPLETE,this.method_460); + } + + private function method_460(param1:Event) : void + { + this.channel.removeEventListener(Event.SOUND_COMPLETE,this.method_460); + this.loop(); + } + + public function name_547() : void + { + if(this.channel != null) + { + this.channel.stop(); + this.channel.removeEventListener(Event.SOUND_COMPLETE,this.method_460); + } + } + + public function name_546(param1:Dictionary) : void + { + } + } +} + diff --git a/src/package_80/name_306.as b/src/package_80/name_306.as new file mode 100644 index 0000000..7cb3f28 --- /dev/null +++ b/src/package_80/name_306.as @@ -0,0 +1,56 @@ +package package_80 +{ + import flash.events.Event; + import flash.media.Sound; + import flash.media.SoundChannel; + import flash.media.SoundTransform; + import package_41.name_173; + import package_71.class_10; + + public class name_306 implements class_10 + { + private var soundLibrary:name_173; + + private var var_474:Sound; + + private var var_473:SoundChannel = null; + + public function name_306(param1:name_173) + { + super(); + this.soundLibrary = param1; + this.var_474 = param1.name_297("turret"); + } + + public function onTurretControlChanged(param1:int, param2:Boolean) : void + { + if(this.var_473 != null) + { + this.var_473.stop(); + } + if(param1 != 0) + { + this.method_476(); + } + } + + private function method_476() : void + { + if(this.var_474 != null) + { + this.var_473 = this.var_474.play(0,0,new SoundTransform(0.2)); + this.var_473.addEventListener(Event.SOUND_COMPLETE,this.method_475); + } + } + + private function method_475(param1:Event) : void + { + if(this.var_473 != null) + { + this.var_473.removeEventListener(Event.SOUND_COMPLETE,this.method_475); + this.method_476(); + } + } + } +} + diff --git a/src/package_80/name_312.as b/src/package_80/name_312.as new file mode 100644 index 0000000..75f8981 --- /dev/null +++ b/src/package_80/name_312.as @@ -0,0 +1,111 @@ +package package_80 +{ + import flash.events.Event; + import flash.media.Sound; + import flash.media.SoundChannel; + import package_41.name_173; + import package_71.class_29; + + public class name_312 implements class_29 + { + private var var_462:Sound; + + private var var_465:Sound; + + private var var_464:Sound; + + private var var_463:Sound; + + private var var_460:SoundChannel; + + private var var_461:Boolean = false; + + public function name_312(param1:name_173) + { + super(); + this.var_462 = param1.name_297("startmoving"); + this.var_465 = param1.name_297("endmoving"); + this.var_464 = param1.name_297("move"); + this.var_463 = param1.name_297("idle"); + this.method_449(); + } + + public function method_448(param1:int, param2:int, param3:Boolean) : void + { + var _loc4_:Boolean = param1 != 0 || param2 != 0; + if(_loc4_ && !this.var_461) + { + if(this.var_460 != null) + { + this.var_460.stop(); + } + this.method_454(); + } + else if(!_loc4_ && this.var_461) + { + if(this.var_460 != null) + { + this.var_460.stop(); + } + this.method_455(); + } + this.var_461 = _loc4_; + } + + private function method_455() : void + { + this.method_449(); + } + + private function method_453(param1:Event) : void + { + this.var_460.removeEventListener(Event.SOUND_COMPLETE,this.method_453); + this.method_449(); + } + + private function method_454() : void + { + if(this.var_460 != null) + { + this.var_460.stop(); + } + this.var_460 = this.var_462.play(); + this.var_460.addEventListener(Event.SOUND_COMPLETE,this.method_456); + } + + private function method_456(param1:Event) : void + { + this.var_460.stop(); + this.method_450(); + } + + private function method_450() : void + { + this.var_460 = this.var_464.play(0); + this.var_460.addEventListener(Event.SOUND_COMPLETE,this.method_451); + } + + private function method_451(param1:Event) : void + { + this.var_460.removeEventListener(Event.SOUND_COMPLETE,this.method_451); + this.method_450(); + } + + private function method_449() : void + { + this.var_460 = this.var_463.play(0); + this.var_460.addEventListener(Event.SOUND_COMPLETE,this.method_452); + } + + private function method_452(param1:Event) : void + { + this.var_460.removeEventListener(Event.SOUND_COMPLETE,this.method_452); + this.method_449(); + } + + public function method_447() : void + { + } + } +} + diff --git a/src/package_81/name_262.as b/src/package_81/name_262.as new file mode 100644 index 0000000..66f878e --- /dev/null +++ b/src/package_81/name_262.as @@ -0,0 +1,20 @@ +package package_81 +{ + import package_4.class_4; + import package_72.name_242; + + public class name_262 + { + public var frames:Vector.; + + public var colorTransformPoints:Vector.; + + public function name_262(frames:Vector., colorTransformPoints:Vector.) + { + super(); + this.frames = frames; + this.colorTransformPoints = colorTransformPoints; + } + } +} + diff --git a/src/package_81/name_265.as b/src/package_81/name_265.as new file mode 100644 index 0000000..4c61565 --- /dev/null +++ b/src/package_81/name_265.as @@ -0,0 +1,95 @@ +package package_81 +{ + import package_10.class_17; + import package_10.name_17; + import package_25.name_250; + import package_28.name_129; + import package_75.class_15; + import package_75.name_236; + import package_76.name_256; + import package_95.class_28; + + public class name_265 extends class_17 implements class_28 + { + private static var flamethrowerSmokeAtlas:name_250; + + private static var flamethrowerFlashAtlas:name_250; + + private static var flamethrowerFireAtlas:name_250; + + private var gameKernel:name_17; + + private var effect:name_544; + + private var range:Number; + + private var coneAngle:Number; + + private var maxParticles:int; + + private var particleSpeed:Number; + + private var sfxData:name_262; + + private var chassis:name_236; + + private var turret:class_15; + + public function name_265(range:Number, coneAngle:Number, maxParticles:int, particleSpeed:Number, sfxData:name_262) + { + super(); + this.range = range; + this.coneAngle = coneAngle; + this.maxParticles = maxParticles; + this.particleSpeed = particleSpeed; + this.sfxData = sfxData; + this.chassis = this.chassis; + this.turret = this.turret; + } + + public static function init(diffuse:name_129, opacity:name_129) : void + { + flamethrowerSmokeAtlas = new name_250(diffuse,opacity,8,8,0,16,30,true); + flamethrowerFlashAtlas = new name_250(diffuse,opacity,8,8,16,16,60,true); + flamethrowerFireAtlas = new name_250(diffuse,opacity,8,8,32,32,60,false); + } + + override public function initComponent() : void + { + this.turret = class_15(entity.getComponentStrict(class_15)); + this.chassis = name_236(entity.getComponentStrict(name_236)); + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + } + + override public function removeFromGame(gameKernel:name_17) : void + { + this.gameKernel = null; + } + + public function start() : void + { + if(this.effect != null) + { + this.effect.method_255(); + } + this.effect = name_544(this.gameKernel.method_108().name_110(name_544)); + var collisionDetector:name_256 = this.gameKernel.method_112().name_246().collisionDetector; + this.effect.init(this.turret,flamethrowerSmokeAtlas,flamethrowerFlashAtlas,flamethrowerFireAtlas); + this.gameKernel.name_5().method_37(this.effect); + } + + public function stop() : void + { + if(this.effect != null) + { + this.effect.method_255(); + } + this.effect = null; + } + } +} + diff --git a/src/package_81/name_544.as b/src/package_81/name_544.as new file mode 100644 index 0000000..7aca484 --- /dev/null +++ b/src/package_81/name_544.as @@ -0,0 +1,298 @@ +package package_81 +{ + import flash.geom.Vector3D; + import package_1.name_1; + import package_18.name_44; + import package_18.name_85; + import package_18.name_90; + import package_25.name_250; + import package_26.class_18; + import package_26.name_402; + import package_46.Matrix3; + import package_46.name_194; + import package_75.class_15; + import package_75.name_236; + import package_76.name_256; + import package_86.name_257; + import package_90.name_273; + + public class name_544 extends class_18 implements name_85 + { + private static const ANIMATION_FPS:Number = 30; + + private static const START_SCALE:Number = 0.5; + + private static const END_SCALE:Number = 4; + + private static const BARREL_INDEX:Number = 0; + + private static var particleBaseSize:name_1 = new name_1("flame_base_size",100,1,1000); + + private static var matrix:Matrix3 = new Matrix3(); + + private static var particlePosition:name_194 = new name_194(); + + private static var barrelOrigin:name_194 = new name_194(); + + private static var particleDirection:name_194 = new name_194(); + + private static var xAxis:name_194 = new name_194(); + + private static var sourcePosition:name_194 = new name_194(); + + private static var rayHit:name_273 = new name_273(); + + private var range:Number; + + private var var_641:Number; + + private var var_639:Number; + + private var maxParticles:int; + + private var particleSpeed:Number; + + private var sfxData:name_262; + + private var var_637:Vector. = new Vector.(); + + private var var_638:int; + + private var numFrames:int; + + private var collisionDetector:name_256; + + private var dead:Boolean; + + private var var_640:int; + + private var var_642:int; + + private var collisionGroup:int = name_257.WEAPON | name_257.STATIC; + + private var origin:name_194 = new name_194(); + + private var direction:name_194 = new name_194(); + + private var sideAxis:name_194 = new name_194(); + + private var var_636:Number; + + private var renderSystem:name_44; + + private var turret:class_15; + + private var chassis:name_236; + + private var flame:name_717; + + private var position:Vector3D = new Vector3D(); + + private var dir:Vector3D = new Vector3D(); + + public function name_544(objectPool:name_402) + { + super(objectPool); + } + + public function addedToRenderSystem(system:name_44) : void + { + this.renderSystem = system; + this.turret.getGunData(BARREL_INDEX,this.origin,this.direction,this.sideAxis); + this.var_636 = this.turret.getBarrelLength(BARREL_INDEX); + this.position.x = this.origin.x + this.direction.x * this.var_636; + this.position.y = this.origin.y + this.direction.y * this.var_636; + this.position.z = this.origin.z + this.direction.z * this.var_636; + this.flame.position = this.position; + this.dir.x = this.direction.x; + this.dir.y = this.direction.y; + this.dir.z = this.direction.z; + this.flame.direction = this.dir; + this.renderSystem.method_48(this.flame); + } + + public function init(turret:class_15, flamethrowerSmokeAtlas:name_250, flamethrowerFlashAtlas:name_250, flamethrowerFireAtlas:name_250) : void + { + this.turret = turret; + this.flame = new name_717(flamethrowerSmokeAtlas,flamethrowerFireAtlas,flamethrowerFlashAtlas,15); + this.flame.scale = 5 * 1.4; + this.flame.name = "firebird"; + } + + public function play(camera:name_90) : Boolean + { + if(this.flame == null) + { + return false; + } + this.turret.getGunData(BARREL_INDEX,this.origin,this.direction,this.sideAxis); + this.var_636 = this.turret.getBarrelLength(BARREL_INDEX); + this.position.x = this.origin.x + this.direction.x * this.var_636; + this.position.y = this.origin.y + this.direction.y * this.var_636; + this.position.z = this.origin.z + this.direction.z * this.var_636; + this.flame.position = this.position; + this.dir.x = this.direction.x; + this.dir.y = this.direction.y; + this.dir.z = this.direction.z; + this.flame.direction = this.dir; + return true; + } + + public function destroy() : void + { + } + + public function method_255() : void + { + this.flame.stop(); + this.flame = null; + } + + private function method_756() : void + { + var offset:Number = Math.random() * 50; + if(!this.collisionDetector.name_324(this.origin,this.direction,name_257.STATIC,this.var_636 + offset,null,rayHit)) + { + sourcePosition.x = this.origin.x + this.direction.x * this.var_636; + sourcePosition.y = this.origin.y + this.direction.y * this.var_636; + sourcePosition.z = this.origin.z + this.direction.z * this.var_636; + particleDirection.copy(this.direction); + xAxis.copy(this.sideAxis); + this.method_755(sourcePosition,particleDirection,xAxis,offset); + } + } + + private function method_755(sourcePosition:name_194, direction:name_194, sideAxis:name_194, offset:Number) : void + { + var particle:Particle = Particle.getParticle(); + particle.currFrame = Math.random() * this.numFrames; + var angle:Number = 2 * Math.PI * Math.random(); + matrix.method_344(direction,angle); + sideAxis.transform3(matrix); + var d:Number = this.range * this.var_639 * Math.random(); + direction.x = direction.x * this.range + sideAxis.x * d; + direction.y = direction.y * this.range + sideAxis.y * d; + direction.z = direction.z * this.range + sideAxis.z * d; + direction.normalize(); + var bodyVelocity:name_194 = this.chassis.getBody().state.velocity; + particle.velocity.x = this.particleSpeed * direction.x + bodyVelocity.x; + particle.velocity.y = this.particleSpeed * direction.y + bodyVelocity.y; + particle.velocity.z = this.particleSpeed * direction.z + bodyVelocity.z; + particle.distance = offset; + particle.x = sourcePosition.x + offset * direction.x; + particle.y = sourcePosition.y + offset * direction.y; + particle.z = sourcePosition.z + offset * direction.z; + var _loc9_:* = this.var_638++; + this.var_637[_loc9_] = particle; + } + + private function method_757(index:int) : void + { + var particle:Particle = this.var_637[index]; + this.var_637[index] = this.var_637[--this.var_638]; + this.var_637[this.var_638] = null; + particle.dispose(); + } + } +} + +import flash.geom.ColorTransform; +import package_19.name_494; +import package_21.name_78; +import package_46.name_194; +import package_72.name_242; + +class Particle extends name_494 +{ + private static var INITIAL_POOL_SIZE:int = 20; + + private static var pool:Vector. = new Vector.(INITIAL_POOL_SIZE); + + private static var poolIndex:int = -1; + + public var velocity:name_194 = new name_194(); + + public var distance:Number = 0; + + public var currFrame:Number; + + public function Particle() + { + super(300,300); + } + + public static function getParticle() : Particle + { + if(poolIndex == -1) + { + return new Particle(); + } + var particle:Particle = pool[poolIndex]; + var _loc2_:* = poolIndex--; + pool[_loc2_] = null; + return particle; + } + + public function dispose() : void + { + material = null; + var _loc1_:* = ++poolIndex; + pool[_loc1_] = this; + } + + public function updateColorTransofrm(maxDistance:Number, points:Vector.) : void + { + var point1:name_242 = null; + var point2:name_242 = null; + var i:int = 0; + if(points == null) + { + return; + } + var t:Number = this.distance / maxDistance; + if(t <= 0) + { + point1 = points[0]; + } + else if(t >= 1) + { + point1 = points[points.length - 1]; + } + else + { + i = 1; + point1 = points[0]; + for(point2 = points[1]; point2.t < t; ) + { + i++; + point1 = point2; + point2 = points[i]; + } + t = (t - point1.t) / (point2.t - point1.t); + } + } + + private function interpolateColorTransform(ct1:ColorTransform, ct2:ColorTransform, t:Number, result:ColorTransform) : void + { + result.alphaMultiplier = ct1.alphaMultiplier + t * (ct2.alphaMultiplier - ct1.alphaMultiplier); + result.alphaOffset = ct1.alphaOffset + t * (ct2.alphaOffset - ct1.alphaOffset); + result.redMultiplier = ct1.redMultiplier + t * (ct2.redMultiplier - ct1.redMultiplier); + result.redOffset = ct1.redOffset + t * (ct2.redOffset - ct1.redOffset); + result.greenMultiplier = ct1.greenMultiplier + t * (ct2.greenMultiplier - ct1.greenMultiplier); + result.greenOffset = ct1.greenOffset + t * (ct2.greenOffset - ct1.greenOffset); + result.blueMultiplier = ct1.blueMultiplier + t * (ct2.blueMultiplier - ct1.blueMultiplier); + result.blueOffset = ct1.blueOffset + t * (ct2.blueOffset - ct1.blueOffset); + } + + private function copyStructToColorTransform(source:ColorTransform, result:ColorTransform) : void + { + result.alphaMultiplier = source.alphaMultiplier; + result.alphaOffset = source.alphaOffset; + result.redMultiplier = source.redMultiplier; + result.redOffset = source.redOffset; + result.greenMultiplier = source.greenMultiplier; + result.greenOffset = source.greenOffset; + result.blueMultiplier = source.blueMultiplier; + result.blueOffset = source.blueOffset; + } +} diff --git a/src/package_81/name_717.as b/src/package_81/name_717.as new file mode 100644 index 0000000..b92f4e4 --- /dev/null +++ b/src/package_81/name_717.as @@ -0,0 +1,157 @@ +package package_81 +{ + import flash.display3D.Context3DBlendFactor; + import flash.geom.Vector3D; + import package_21.name_386; + import package_25.name_113; + import package_25.name_250; + import package_25.name_626; + + public class name_717 extends name_113 + { + private static var smokePrototype1:name_626; + + private static var smokePrototype2:name_626; + + private static var flashPrototype1:name_626; + + private static var flashPrototype2:name_626; + + private static var flashPrototype3:name_626; + + private static var firePrototype:name_626; + + private static var pos:Vector3D = new Vector3D(); + + private static var dir:Vector3D = new Vector3D(); + + private static var liftSpeed:Number = 25; + + private static var windSpeed:Number = 10; + + public function name_717(smoke:name_250, fire:name_250, flash:name_250, live:Number = 1) + { + var keyTime:Number = NaN; + super(); + if(flashPrototype1 == null) + { + flashPrototype1 = new name_626(50,50,flash,true,Context3DBlendFactor.SOURCE_ALPHA,Context3DBlendFactor.ONE); + flashPrototype1.method_257(0 * 0.03333333333333333,0,0.13,0.13,1,1,1,0.8); + flashPrototype1.method_257(2 * 0.03333333333333333,0,0.4,0.4,1,1,1,1); + flashPrototype1.method_257(6 * 0.03333333333333333,0,1.1,1.1,1,1,1,0.8); + flashPrototype1.method_257(11 * 0.03333333333333333,0,1.26,1.26,1,1,1,0.8); + flashPrototype1.method_257(17 * 0.03333333333333333,0,1.47,1.47,1,1,0.3,0); + flashPrototype2 = new name_626(50,50,flash,true,Context3DBlendFactor.SOURCE_ALPHA,Context3DBlendFactor.ONE); + flashPrototype2.method_257(1 * 0.03333333333333333,0,0.13,0.13,1,1,1,0.8); + flashPrototype2.method_257(3 * 0.03333333333333333,0,0.3,0.3,1,1,1,1); + flashPrototype2.method_257(8 * 0.03333333333333333,0,0.8,0.8,1,1,1,0.5); + flashPrototype2.method_257(12 * 0.03333333333333333,0,1.26,1.26,1,1,1,0); + flashPrototype3 = new name_626(50,50,flash,true,Context3DBlendFactor.SOURCE_ALPHA,Context3DBlendFactor.ONE); + flashPrototype3.method_257(2 * 0.03333333333333333,0,0.13,0.13,1,1,1,0.8); + flashPrototype3.method_257(4 * 0.03333333333333333,0,0.3,0.3,1,1,1,1); + flashPrototype3.method_257(8 * 0.03333333333333333,0,0.6,0.6,1,1,1,0); + } + if(firePrototype == null) + { + firePrototype = new name_626(50,50,fire,true); + firePrototype.method_257(6 * 0.03333333333333333,0,1.53,1.53,1,1,1,0); + firePrototype.method_257(11 * 0.03333333333333333,0,1.53,1.53,1,1,1,0.6); + firePrototype.method_257(17 * 0.03333333333333333,0,1.85,1.85,1,0.7,0,0.8); + firePrototype.method_257(24 * 0.03333333333333333,0,1.98,1.98,1,0.3,0,0.2); + } + if(smokePrototype1 == null) + { + smokePrototype1 = new name_626(50,50,smoke,true); + smokePrototype1.method_257(6 * 0.03333333333333333,0,1.51,1.51,1,1,1,0); + smokePrototype1.method_257(11 * 0.03333333333333333,0,1.92,1.92,1,1,1,0.9); + smokePrototype1.method_257(17 * 0.03333333333333333,0,2.49,2.49,0.5,0.5,0.5,1); + smokePrototype1.method_257(24 * 0.03333333333333333,0,2.66,2.66,0,0,0,0); + smokePrototype2 = new name_626(50,50,smoke,false); + smokePrototype2.method_257(15 * 0.03333333333333333,0,1.51,1.51,1,1,1,0); + smokePrototype2.method_257(20 * 0.03333333333333333,0,1.92,1.92,0.8,0.8,0.8,0.3); + smokePrototype2.method_257(26 * 0.03333333333333333,0,2.49,2.49,0.5,0.5,0.5,0.6); + smokePrototype2.method_257(55 * 0.03333333333333333,0,2.66,2.66,0,0,0,0); + } + boundBox = new name_386(); + boundBox.minX = -350; + boundBox.minY = -350; + boundBox.minZ = -350; + boundBox.maxX = 350; + boundBox.maxY = 350; + boundBox.maxZ = 350; + var i:int = 0; + while(true) + { + keyTime = i * 2 * 0.03333333333333333; + if(keyTime >= live) + { + break; + } + method_257(keyTime,this.keyFrame1); + i++; + } + method_258(var_151[var_148 - 1] + smokePrototype2.lifeTime); + } + + private function keyFrame1(keyTime:Number, time:Number) : void + { + var ang:Number = 6 * 3.14 / 180; + dir.x = var_156.x; + dir.y = var_156.y; + dir.z = var_156.z + 0.2; + dir.normalize(); + this.method_531(var_156,ang,pos); + pos.scaleBy(time * 300 + 10); + flashPrototype1.name_627(this,time,pos,random() * 6.28,1,1,1,random() * flashPrototype1.atlas.rangeLength); + this.method_531(var_156,ang,pos); + pos.scaleBy((time - 0.03333333333333333) * 150 + 10); + flashPrototype2.name_627(this,time,pos,random() * 6.28,1,1,1,random() * flashPrototype1.atlas.rangeLength); + this.method_531(var_156,ang,pos); + pos.scaleBy((time - 0.03333333333333333 - 0.03333333333333333) * 80 + 10); + flashPrototype3.name_627(this,time,pos,random() * 6.28,1,1,1,random() * flashPrototype1.atlas.rangeLength); + this.method_531(var_156,ang,pos); + pos.scaleBy(time * 240 + 10); + firePrototype.name_627(this,time,pos,random() * 6.28,1,1,1,-6 * 0.03333333333333333 * firePrototype.atlas.fps); + this.method_531(dir,ang,pos); + pos.scaleBy(time * 300 + 10); + firePrototype.name_627(this,time,pos,random() * 6.28,1,1,1,-6 * 0.03333333333333333 * firePrototype.atlas.fps); + this.method_531(var_156,ang,pos); + pos.scaleBy(time * 300 + 10); + smokePrototype1.name_627(this,time,pos,random() * 6.28,1,1,1,random() * smokePrototype1.atlas.rangeLength); + this.method_531(dir,ang,pos); + pos.scaleBy(time * 330 + 10); + smokePrototype1.name_627(this,time,pos,random() * 6.28,1,1,1,random() * smokePrototype1.atlas.rangeLength); + this.method_531(dir,ang,pos); + pos.scaleBy(time * 40 + 100 + random() * 120); + pos.x += random() * 50 - 25; + pos.y += random() * 50 - 25; + pos.z += random() * 50 - 25; + this.method_529(time - 15 * 0.03333333333333333,1,pos); + smokePrototype2.name_627(this,time,pos,random() * 6.28,1,1,1,random() * smokePrototype1.atlas.rangeLength); + } + + private function method_531(direction:Vector3D, angle:Number, result:Vector3D) : void + { + var x:Number = random() * 2 - 1; + var y:Number = random() * 2 - 1; + var z:Number = random() * 2 - 1; + result.x = direction.z * y - direction.y * z; + result.y = direction.x * z - direction.z * x; + result.z = direction.y * x - direction.x * y; + result.normalize(); + result.scaleBy(Math.sin(angle / 2)); + result.x += direction.x; + result.y += direction.y; + result.z += direction.z; + result.normalize(); + } + + private function method_529(time:Number, factor:Number, result:Vector3D) : void + { + result.x += time * windSpeed * var_5.wind.x; + result.y += time * windSpeed * var_5.wind.y; + result.z += time * windSpeed * var_5.wind.z + time * liftSpeed * factor; + } + } +} + diff --git a/src/package_82/name_247.as b/src/package_82/name_247.as new file mode 100644 index 0000000..aef58ac --- /dev/null +++ b/src/package_82/name_247.as @@ -0,0 +1,68 @@ +package package_82 +{ + import flash.geom.Vector3D; + import package_10.class_17; + import package_10.name_17; + import package_115.class_26; + import package_25.name_250; + import package_28.name_129; + import package_46.name_194; + import package_75.class_15; + import package_83.name_594; + + public class name_247 extends class_17 implements class_26 + { + private static var smokyShotAtlas:name_250; + + private var gameKernel:name_17; + + private var turretPhysicsComponent:class_15; + + private var textureResource:name_129; + + private var var_487:Vector3D = new Vector3D(); + + public function name_247(textureResource:name_129) + { + super(); + this.textureResource = textureResource; + } + + public static function init(diffuse:name_129, opacity:name_129) : void + { + smokyShotAtlas = new name_250(diffuse,opacity,8,8,58,1,30,true); + } + + override public function initComponent() : void + { + this.turretPhysicsComponent = class_15(entity.getComponentStrict(class_15)); + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + gameKernel.name_5().method_29(this.textureResource); + } + + override public function removeFromGame(gameKernel:name_17) : void + { + gameKernel.name_5().method_28(this.textureResource); + } + + public function method_411(barrelIndex:int, barrelOrigin:name_194, muzzlePosition:name_194, gunDirection:name_194, gunElevationAxis:name_194) : void + { + var eff:name_594 = new name_594(smokyShotAtlas); + this.var_487.x = muzzlePosition.x; + this.var_487.y = muzzlePosition.y; + this.var_487.z = muzzlePosition.z + 20; + eff.position = this.var_487; + this.var_487.x = gunDirection.x; + this.var_487.y = gunDirection.y; + this.var_487.z = gunDirection.z; + eff.direction = this.var_487; + eff.scale = 3; + this.gameKernel.name_5().method_48(eff); + } + } +} + diff --git a/src/package_83/name_269.as b/src/package_83/name_269.as new file mode 100644 index 0000000..bd5664e --- /dev/null +++ b/src/package_83/name_269.as @@ -0,0 +1,34 @@ +package package_83 +{ + import package_10.name_17; + import package_118.name_550; + import package_119.name_552; + import package_4.class_4; + import package_74.class_14; + import package_74.name_233; + import package_86.name_468; + import package_87.name_267; + + public class name_269 implements class_14 + { + private var var_468:name_550; + + public function name_269(gameKernel:name_17, radius:Number, impactForce:Number, maximumDamageRadius:Number, minimumDamageRadius:Number, minimumDamageCoefficient:Number, callback:name_552, frames:Vector.) + { + super(); + var splashDamage:name_551 = new name_551(radius); + var weaponDistanceWeakening:name_267 = new name_267(maximumDamageRadius,minimumDamageRadius,minimumDamageCoefficient); + var splashDamageEffects:name_270 = new name_270(gameKernel,frames); + var collisionDetector:name_468 = name_468(gameKernel.method_112().name_246().collisionDetector); + var debugSplashTargetFilter:name_549 = new name_549(); + this.var_468 = new name_550(impactForce,weaponDistanceWeakening,splashDamage,splashDamageEffects,collisionDetector,debugSplashTargetFilter); + this.var_468.method_383(callback); + } + + public function getRound() : name_233 + { + return this.var_468; + } + } +} + diff --git a/src/package_83/name_270.as b/src/package_83/name_270.as new file mode 100644 index 0000000..2d866f4 --- /dev/null +++ b/src/package_83/name_270.as @@ -0,0 +1,62 @@ +package package_83 +{ + import flash.geom.Vector3D; + import package_10.name_17; + import package_18.name_44; + import package_25.name_250; + import package_28.name_129; + import package_4.class_4; + import package_46.name_194; + import package_72.class_12; + + public class name_270 implements class_12 + { + private static var smokeAtlas:name_250; + + private static var fireAtlas:name_250; + + private static var flashAtlas:name_250; + + private static var fragmentAtlas:name_250; + + private static var glowAtlas:name_250; + + private static var sparkAtlas:name_250; + + private static const tempVector:Vector3D = new Vector3D(); + + private var gameKernel:name_17; + + private var frames:Vector.; + + public function name_270(gameKernel:name_17, frames:Vector.) + { + super(); + this.gameKernel = gameKernel; + this.frames = frames; + } + + public static function init(diffuse:name_129, opacity:name_129) : void + { + smokeAtlas = new name_250(diffuse,opacity,8,8,0,16,30,true); + fireAtlas = new name_250(diffuse,opacity,8,8,16,16,30,true); + flashAtlas = new name_250(diffuse,opacity,8,8,32,16,30,true,0.5,0.5); + fragmentAtlas = new name_250(diffuse,opacity,8,8,48,8,30,true); + glowAtlas = new name_250(diffuse,opacity,8,8,56,1,30,true); + sparkAtlas = new name_250(diffuse,opacity,8,8,57,1,30,true); + } + + public function createEffects(position:name_194, weakeningCoefficient:Number, radius:Number) : void + { + var renderSystem:name_44 = this.gameKernel.name_5(); + var explosion:name_543 = new name_543(smokeAtlas,fireAtlas,flashAtlas,glowAtlas,sparkAtlas,fragmentAtlas); + tempVector.x = position.x; + tempVector.y = position.y; + tempVector.z = position.z; + explosion.position = tempVector; + explosion.scale = 6; + renderSystem.method_48(explosion); + } + } +} + diff --git a/src/package_83/name_543.as b/src/package_83/name_543.as new file mode 100644 index 0000000..0a58b1f --- /dev/null +++ b/src/package_83/name_543.as @@ -0,0 +1,327 @@ +package package_83 +{ + import flash.display3D.Context3DBlendFactor; + import flash.geom.Vector3D; + import package_21.name_386; + import package_25.name_113; + import package_25.name_250; + import package_25.name_626; + + public class name_543 extends name_113 + { + private static var smokePrototype:name_626; + + private static var firePrototype:name_626; + + private static var flashPrototype:name_626; + + private static var glowPrototype:name_626; + + private static var sparkPrototype:name_626; + + private static var fragmentPrototype:name_626; + + private static const smokeDirections:Vector. = Vector.([new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D()]); + + private static const smokeDirectionsCount:int = 7; + + private static const sparkDirections:Vector. = Vector.([new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D()]); + + private static const sparkDirectionsCount:int = 20; + + private static const fragmentDirections:Vector. = Vector.([new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D(),new Vector3D()]); + + private static const fragmentDirectionsCount:int = 20; + + private static var pos:Vector3D = new Vector3D(); + + private static var dir:Vector3D = new Vector3D(); + + private static var gravity:Number = 700; + + private static var movingSpeed:Number = 700; + + private static var liftSpeed:Number = 17; + + private static var windSpeed:Number = 10; + + private static var littleTime:Number = 0.01; + + public function name_543(smoke:name_250, fire:name_250, flash:name_250, glow:name_250, spark:name_250, fragment:name_250) + { + super(); + if(smokePrototype == null) + { + smokePrototype = new name_626(128,128,smoke,false); + smokePrototype.method_257(0 * 0.03333333333333333,0,0.4,0.4,1,1,1,0); + smokePrototype.method_257(2 * 0.03333333333333333,0,0.74,0.74,0.86,0.86,0.86,0.34); + smokePrototype.method_257(4 * 0.03333333333333333,0,0.94,0.94,0.78,0.78,0.78,0.54); + smokePrototype.method_257(6 * 0.03333333333333333,0,1,1,0.75,0.75,0.75,0.6); + smokePrototype.method_257(100 * 0.03333333333333333,0,1.5,1.5,0,0,0,0); + } + if(firePrototype == null) + { + firePrototype = new name_626(128,128,fire,false,Context3DBlendFactor.SOURCE_ALPHA,Context3DBlendFactor.ONE); + firePrototype.method_257(0 * 0.03333333333333333,0,0.4,0.4,1,1,1,0); + firePrototype.method_257(1 * 0.03333333333333333,0,0.85,0.85,1,1,1,0.85); + firePrototype.method_257(2 * 0.03333333333333333,0,1,1,1,1,1,1); + firePrototype.method_257(9 * 0.03333333333333333,0,1,1,0,0,0,0); + } + if(flashPrototype == null) + { + flashPrototype = new name_626(128,128,flash,false,Context3DBlendFactor.SOURCE_ALPHA,Context3DBlendFactor.ONE); + flashPrototype.method_257(0 * 0.03333333333333333,0,0.6,0.6,1,1,1,1); + flashPrototype.method_257(1 * 0.03333333333333333,0,1,1,1,1,1,1); + flashPrototype.method_257(3 * 0.03333333333333333,0,0.95,0.95,1,1,1,0.75); + flashPrototype.method_257(5 * 0.03333333333333333,0,0.79,0.79,1,1,1,0); + } + if(glowPrototype == null) + { + glowPrototype = new name_626(256,256,glow,false,Context3DBlendFactor.SOURCE_ALPHA,Context3DBlendFactor.ONE); + glowPrototype.method_257(0 * 0.03333333333333333,0,0.6,0.6,1,1,1,0.4); + glowPrototype.method_257(1 * 0.03333333333333333,0,1,1,1,1,1,0.45); + glowPrototype.method_257(8 * 0.03333333333333333,0,1,1,1,1,1,0); + } + if(sparkPrototype == null) + { + sparkPrototype = new name_626(8,8,spark,false,Context3DBlendFactor.SOURCE_ALPHA,Context3DBlendFactor.ONE); + sparkPrototype.method_257(0 * 0.03333333333333333,0,1,1,1,1,1,1); + sparkPrototype.method_257(4.5 * 0.03333333333333333,0,0.3,0.3,1,1,0.5,0.5); + } + if(fragmentPrototype == null) + { + fragmentPrototype = new name_626(16,16,fragment,false); + fragmentPrototype.method_257(0 * 0.03333333333333333,0,0.5,0.5,2,1.4,0.7,0.6); + fragmentPrototype.method_257(7 * 0.03333333333333333,0,0.3,0.3,0.6,0.6,0.6,0.5); + } + boundBox = new name_386(); + boundBox.minX = -160; + boundBox.minY = -160; + boundBox.minZ = -90; + boundBox.maxX = 160; + boundBox.maxY = 160; + boundBox.maxZ = 200; + method_257(0 * 0.03333333333333333,this.keyFrame1); + method_257(1 * 0.03333333333333333,this.keyFrame2); + method_257(2 * 0.03333333333333333,this.keyFrame3); + method_257(3 * 0.03333333333333333,this.keyFrame4); + method_257(4 * 0.03333333333333333,this.keyFrame5); + method_257(4.7 * 0.03333333333333333,this.keyFrame6); + method_258(var_151[var_148 - 1] + smokePrototype.lifeTime); + } + + private function keyFrame1(keyTime:Number, time:Number) : void + { + var i:int = 0; + var direction:Vector3D = null; + var t:Number = NaN; + var j:int = 0; + var deg:Number = Math.PI / 180; + var delta:Number = 30 * deg; + var bot:Number = -15 * deg; + var top:Number = 30 * deg; + this.method_531(45 * deg - delta,45 * deg + delta,bot,top,smokeDirections[0]); + this.method_531(135 * deg - delta,135 * deg + delta,bot,top,smokeDirections[1]); + this.method_531(225 * deg - delta,225 * deg + delta,bot,top,smokeDirections[2]); + this.method_531(315 * deg - delta,315 * deg + delta,bot,top,smokeDirections[3]); + this.method_531(0,Math.PI + Math.PI,40 * deg,90 * deg,smokeDirections[4]); + this.method_531(0,Math.PI + Math.PI,40 * deg,90 * deg,smokeDirections[5]); + this.method_531(0,Math.PI + Math.PI,40 * deg,90 * deg,smokeDirections[6]); + (smokeDirections[0] as Vector3D).scaleBy(0.8 + random() * 0.2); + (smokeDirections[1] as Vector3D).scaleBy(0.8 + random() * 0.2); + (smokeDirections[2] as Vector3D).scaleBy(0.8 + random() * 0.2); + (smokeDirections[3] as Vector3D).scaleBy(0.8 + random() * 0.2); + (smokeDirections[4] as Vector3D).scaleBy(1 + random() * 0.2); + (smokeDirections[5] as Vector3D).scaleBy(0.8 + random() * 0.2); + (smokeDirections[6] as Vector3D).scaleBy(0.8 + random() * 0.2); + for(i = 0; i < sparkDirectionsCount; i++) + { + direction = sparkDirections[i]; + this.method_531(0,360 * deg,bot,90 * deg,direction); + direction.scaleBy(0.4 + random() * 0.3); + } + for(i = 0; i < fragmentDirectionsCount; i++) + { + direction = fragmentDirections[i]; + this.method_531(0,360 * deg,bot,90 * deg,direction); + direction.scaleBy(0.4 + random() * 0.3); + } + for(i = 0; i < smokeDirectionsCount; i++) + { + direction = smokeDirections[i]; + this.method_754(keyTime + littleTime,direction,pos); + this.method_529(time,1.17,pos); + smokePrototype.name_627(this,time,pos,random() - 0.5,1.17,1.17,1,random() * smokePrototype.atlas.rangeLength); + this.method_754((keyTime + littleTime) * 0.9,direction,pos); + firePrototype.name_627(this,time,pos,random() - 0.5,1.07,1.07,1,random() * firePrototype.atlas.rangeLength); + this.method_754(keyTime + 0 * 0.03333333333333333,direction,pos); + flashPrototype.name_627(this,time,pos,random() - 0.5,0.8,0.8,1,random() * flashPrototype.atlas.rangeLength); + this.method_754(keyTime + 1.3 * 0.03333333333333333,direction,pos); + flashPrototype.name_627(this,time,pos,random() - 0.5,0.5,0.5,1,random() * flashPrototype.atlas.rangeLength); + this.method_754(keyTime + 2 * 0.03333333333333333,direction,pos); + flashPrototype.name_627(this,time,pos,random() - 0.5,0.3,0.3,1,random() * flashPrototype.atlas.rangeLength); + } + pos.x = 0; + pos.y = 0; + pos.z = 0; + flashPrototype.name_627(this,time,pos,random() - 0.5,1,1,1,random() * flashPrototype.atlas.rangeLength); + glowPrototype.name_627(this,time,pos,0,0.75,0.75,1,0); + for(i = 0; i < sparkDirectionsCount >> 1; i++) + { + direction = sparkDirections[i]; + t = keyTime + 0.1; + for(j = 0; j < 8; j++) + { + this.method_754(time + t,direction,pos,0.4); + sparkPrototype.name_627(this,time,pos,0,1 - j * 0.05,1 - j * 0.05,1,0); + t -= 0.003; + } + } + } + + private function keyFrame2(keyTime:Number, time:Number) : void + { + var i:int = 0; + var rnd:Number = NaN; + var direction:Vector3D = null; + var t:Number = NaN; + var j:int = 0; + for(i = 0; i < smokeDirectionsCount; i++) + { + direction = smokeDirections[i]; + this.method_754(keyTime + littleTime,direction,pos); + this.method_529(time,0.95,pos); + smokePrototype.name_627(this,time,pos,random() - 0.5,0.95,0.95,1,random() * smokePrototype.atlas.rangeLength); + this.method_754((keyTime + littleTime) * 0.9,direction,pos); + firePrototype.name_627(this,time,pos,random() - 0.5,0.87,0.87,1,random() * firePrototype.atlas.rangeLength); + rnd = 0.5 + random(); + this.method_754(time + littleTime,direction,pos); + fragmentPrototype.name_627(this,time,pos,random() * 6.28,rnd,rnd,1,random() * fragmentPrototype.atlas.rangeLength); + } + for(i = sparkDirectionsCount >> 1; i < sparkDirectionsCount; i++) + { + direction = sparkDirections[i]; + t = keyTime + 0.1; + for(j = 0; j < 8; j++) + { + this.method_754(time + t,direction,pos,0.4); + sparkPrototype.name_627(this,time,pos,0,1 - j * 0.05,1 - j * 0.05,1,0); + t -= 0.003; + } + } + for(i = 0; i < fragmentDirectionsCount; i++) + { + direction = fragmentDirections[i]; + rnd = 0.5 + random(); + this.method_754(time + littleTime,direction,pos); + fragmentPrototype.name_627(this,time,pos,random() * 6.28,rnd,rnd,1,random() * fragmentPrototype.atlas.rangeLength); + } + } + + private function keyFrame3(keyTime:Number, time:Number) : void + { + var direction:Vector3D = null; + for(var i:int = 0; i < smokeDirectionsCount; i++) + { + direction = smokeDirections[i]; + this.method_754(keyTime + littleTime,direction,pos); + this.method_529(time,0.85,pos); + smokePrototype.name_627(this,time,pos,random() - 0.5,0.85,0.85,1,random() * smokePrototype.atlas.rangeLength); + this.method_754((keyTime + littleTime) * 0.9,direction,pos); + firePrototype.name_627(this,time,pos,random() - 0.5,0.78,0.78,0.73,random() * firePrototype.atlas.rangeLength); + } + } + + private function keyFrame4(keyTime:Number, time:Number) : void + { + var direction:Vector3D = null; + for(var i:int = 0; i < smokeDirectionsCount; i++) + { + direction = smokeDirections[i]; + this.method_754(keyTime + littleTime,direction,pos); + this.method_529(time,0.7,pos); + smokePrototype.name_627(this,time,pos,random() - 0.5,0.7,0.7,1,random() * smokePrototype.atlas.rangeLength); + this.method_754((keyTime + littleTime) * 0.9,direction,pos); + firePrototype.name_627(this,time,pos,random() - 0.5,0.44,0.44,0.53,random() * firePrototype.atlas.rangeLength); + } + } + + private function keyFrame5(keyTime:Number, time:Number) : void + { + var direction:Vector3D = null; + var rnd:Number = NaN; + for(var i:int = 0; i < smokeDirectionsCount; i++) + { + direction = smokeDirections[i]; + this.method_754(keyTime + littleTime,direction,pos); + this.method_529(time,0.4,pos); + smokePrototype.name_627(this,time,pos,random() - 0.5,0.4,0.4,1,random() * smokePrototype.atlas.rangeLength); + } + for(var j:int = 0; j < 3; j++) + { + pos.x = random() * 50 - 25; + pos.y = random() * 50 - 25; + pos.z = random() * 20 - 10; + this.method_529(time,0.18,pos); + rnd = 0.5 + random() * 0.5; + smokePrototype.name_627(this,time,pos,random() - 0.5,rnd,rnd,1,random() * smokePrototype.atlas.rangeLength); + pos.x = random() * 10 - 5; + pos.y = random() * 10 - 5; + pos.z = random() * 10 - 5; + rnd = 0.3 + random() * 0.5; + firePrototype.name_627(this,time,pos,random() - 0.5,rnd,rnd,1,random() * firePrototype.atlas.rangeLength); + } + } + + private function keyFrame6(keyTime:Number, time:Number) : void + { + var direction:Vector3D = null; + var rnd:Number = NaN; + for(var i:int = 0; i < smokeDirectionsCount; ) + { + direction = smokeDirections[i]; + if(random() > 0.25) + { + this.method_754(keyTime + littleTime,direction,pos); + this.method_529(time,0.25,pos); + smokePrototype.name_627(this,time,pos,random() - 0.5,0.19,0.19,1,random() * smokePrototype.atlas.rangeLength); + } + i++; + } + for(var j:int = 0; j < 3; j++) + { + pos.x = random() * 50 - 25; + pos.y = random() * 50 - 25; + pos.z = random() * 20 - 10; + this.method_529(time,0.16,pos); + rnd = 0.5 + random() * 0.5; + smokePrototype.name_627(this,time,pos,random() - 0.5,rnd,rnd,1,random() * smokePrototype.atlas.rangeLength); + } + } + + private function method_531(xyBegin:Number, xyEnd:Number, zBegin:Number, zEnd:Number, result:Vector3D) : void + { + var xyAng:Number = xyBegin + random() * (xyEnd - xyBegin); + var zAng:Number = zBegin + random() * (zEnd - zBegin); + var cosZAng:Number = Number(Math.cos(zAng)); + result.x = Math.cos(xyAng) * cosZAng; + result.y = Math.sin(xyAng) * cosZAng; + result.z = Math.sin(zAng); + } + + private function method_754(time:Number, direction:Vector3D, result:Vector3D, gravityInfluence:Number = 1) : void + { + result.x = time * movingSpeed * direction.x; + result.y = time * movingSpeed * direction.y; + result.z = time * movingSpeed * direction.z - time * time * gravity * gravityInfluence; + } + + private function method_529(time:Number, factor:Number, result:Vector3D) : void + { + result.x += time * windSpeed * var_5.wind.x; + result.y += time * windSpeed * var_5.wind.y; + result.z += time * windSpeed * var_5.wind.z + time * liftSpeed * factor; + } + } +} + diff --git a/src/package_83/name_549.as b/src/package_83/name_549.as new file mode 100644 index 0000000..e58781c --- /dev/null +++ b/src/package_83/name_549.as @@ -0,0 +1,27 @@ +package package_83 +{ + import package_118.class_38; + import package_46.name_194; + import package_92.name_271; + + public class name_549 implements class_38 + { + private var primaryTarget:name_271; + + public function name_549() + { + super(); + } + + public function method_759(body:name_271) : void + { + this.primaryTarget = body; + } + + public function name_670(center:name_194, body:name_271) : Boolean + { + return body != this.primaryTarget; + } + } +} + diff --git a/src/package_83/name_551.as b/src/package_83/name_551.as new file mode 100644 index 0000000..ddf8a4c --- /dev/null +++ b/src/package_83/name_551.as @@ -0,0 +1,26 @@ +package package_83 +{ + import package_118.class_37; + + public class name_551 implements class_37 + { + private var var_643:Number; + + public function name_551(radius:Number) + { + super(); + this.var_643 = radius; + } + + public function get radius() : Number + { + return this.var_643; + } + + public function method_758(basePower:Number, radius:Number) : Number + { + return basePower; + } + } +} + diff --git a/src/package_83/name_594.as b/src/package_83/name_594.as new file mode 100644 index 0000000..219362c --- /dev/null +++ b/src/package_83/name_594.as @@ -0,0 +1,52 @@ +package package_83 +{ + import flash.display3D.Context3DBlendFactor; + import flash.geom.Vector3D; + import package_21.name_386; + import package_25.name_113; + import package_25.name_250; + import package_25.name_626; + + public class name_594 extends name_113 + { + private static var shotPrototype:name_626; + + private static var pos:Vector3D = new Vector3D(); + + public function name_594(shot:name_250) + { + super(); + if(shotPrototype == null) + { + shotPrototype = new name_626(50,50,shot,false,Context3DBlendFactor.SOURCE_ALPHA,Context3DBlendFactor.ONE); + shotPrototype.method_257(0 * 0.03333333333333333,0,0.85,0.85,1,1,1,0.6); + shotPrototype.method_257(1 * 0.03333333333333333,0,1,1,1,1,1,1); + shotPrototype.method_257(2 * 0.03333333333333333,0,1,1,1,1,1,0.5); + shotPrototype.method_257(3 * 0.03333333333333333,0,1,1,1,1,1,0.5); + } + boundBox = new name_386(); + boundBox.minX = -100; + boundBox.minY = -100; + boundBox.minZ = -100; + boundBox.maxX = 100; + boundBox.maxY = 100; + boundBox.maxZ = 100; + method_257(0 * 0.03333333333333333,this.keyFrame1); + method_258(var_151[var_148 - 1] + shotPrototype.lifeTime); + } + + private function keyFrame1(keyTime:Number, time:Number) : void + { + pos.copyFrom(var_156); + pos.scaleBy(time * 100 + 25); + shotPrototype.name_627(this,time,pos,random() * 6.28,1,1,1,0); + pos.copyFrom(var_156); + pos.scaleBy(time * 300 + 32); + shotPrototype.name_627(this,time,pos,random() * 6.28,0.88,0.88,1,0); + pos.copyFrom(var_156); + pos.scaleBy(time * 400 + 39); + shotPrototype.name_627(this,time,pos,random() * 6.28,0.66,0.66,1,0); + } + } +} + diff --git a/src/package_84/name_253.as b/src/package_84/name_253.as new file mode 100644 index 0000000..8c1cad7 --- /dev/null +++ b/src/package_84/name_253.as @@ -0,0 +1,436 @@ +package package_84 +{ + import alternativa.engine3d.alternativa3d; + import flash.geom.Point; + import package_10.class_17; + import package_10.name_17; + import package_18.name_44; + import package_19.name_380; + import package_19.name_528; + import package_19.name_91; + import package_21.name_126; + import package_21.name_78; + import package_23.name_208; + import package_29.MouseEvent3D; + import package_3.name_29; + import package_3.name_33; + import package_4.class_5; + import package_45.name_182; + import package_46.Matrix4; + import package_46.name_194; + import package_71.*; + import package_77.name_237; + import package_85.class_22; + import package_85.class_31; + import package_85.name_314; + import package_85.name_481; + import package_85.name_596; + + use namespace alternativa3d; + + public class name_253 extends class_17 implements class_22, class_31 + { + public static const TANK_CLICK:String = "tankClick"; + + private static var hullMatrix:Matrix4 = new Matrix4(); + + private static var eulerAngles:name_194 = new name_194(); + + private var shadow:name_91; + + private var hull:name_249; + + private var var_488:name_380; + + private var hullMaterials:name_277; + + private var container:name_78; + + private var physicsComponent:name_237; + + private var gameKernel:name_17; + + private var var_233:class_5; + + private var name_325:Vector.; + + private var name_323:Vector.; + + private var name_337:name_528; + + private var name_340:name_528; + + private var var_489:name_595; + + private var var_490:name_595; + + private var shadowRenderer:name_208; + + private var var_491:name_596; + + public function name_253(hull:name_249) + { + super(); + this.method_488(hull); + } + + public function name_351() : name_249 + { + return this.hull; + } + + public function name_342(tracksMaterial:name_33) : void + { + this.var_489.material = name_33(tracksMaterial.clone()); + this.name_337.setMaterialToAllSurfaces(this.var_489.material); + this.var_490.material = name_33(tracksMaterial.clone()); + this.name_340.setMaterialToAllSurfaces(this.var_490.material); + } + + public function name_344(material:name_29) : void + { + if(this.shadow != null) + { + this.shadow.setMaterialToAllSurfaces(material); + } + } + + public function name_329() : name_78 + { + return this.var_488; + } + + public function method_496(shadowRenderer:name_208) : void + { + this.shadowRenderer = shadowRenderer; + this.var_491 = null; + if(this.container != null) + { + this.gameKernel.name_5().method_70(shadowRenderer); + } + } + + public function method_488(newHull:name_249) : void + { + var dUdY:Number = NaN; + if(this.hull == newHull) + { + return; + } + if(this.hull != null && this.container != null) + { + this.container.removeChild(this.var_488); + } + this.hull = newHull; + if(this.hull != null) + { + this.var_488 = new name_380(); + this.var_488.geometry = this.hull.geometry; + this.var_488.addSurface(this.var_233,0,this.hull.geometry.numTriangles); + this.var_488.calculateBoundBox(); + this.name_325 = this.method_499(this.var_488,this.hull.name_325); + this.name_323 = this.method_499(this.var_488,this.hull.name_323); + this.name_337 = this.method_497(this.hull.name_337,this.var_488); + this.name_340 = this.method_497(this.hull.name_340,this.var_488); + dUdY = this.method_504(this.name_337); + this.var_489 = new name_595(this.name_337,this.name_325,dUdY); + this.var_490 = new name_595(this.name_340,this.name_323,dUdY); + if(this.hull.shadow != null) + { + this.shadow = new name_91(100); + this.shadow.geometry = this.hull.shadow.geometry; + this.shadow.matrix = this.hull.shadow.matrix; + this.shadow.addSurface(null,0,this.shadow.geometry.numTriangles); + this.shadow.useShadow = false; + this.name_482.addChild(this.shadow); + } + if(this.container != null) + { + this.container.addChild(this.var_488); + } + } + } + + private function method_504(mesh:name_380) : Number + { + var j:int = 0; + var vertexIndex:int = 0; + var vertexBaseIndex:uint = 0; + var v:name_194 = null; + var uv:Point = null; + var ratio:Number = 0; + var indices:Vector. = mesh.geometry.indices; + var vertexCoordinates:Vector. = mesh.geometry.method_275(name_126.POSITION); + var uvs:Vector. = mesh.geometry.method_275(name_126.TEXCOORDS[0]); + var faceVertices:Vector. = Vector.([new name_194(),new name_194(),new name_194()]); + var faceUVs:Vector. = Vector.([new Point(),new Point(),new Point()]); + for(var i:int = 0; i < indices.length; i += 3) + { + for(j = 0; j < 3; j++) + { + vertexIndex = int(indices[i + j]); + vertexBaseIndex = uint(3 * vertexIndex); + v = faceVertices[j]; + v.x = vertexCoordinates[vertexBaseIndex]; + v.y = vertexCoordinates[vertexBaseIndex + 1]; + v.z = vertexCoordinates[vertexBaseIndex + 2]; + v.scale(mesh.scaleX); + uv = faceUVs[j]; + uv.x = uvs[2 * vertexIndex]; + uv.y = uvs[2 * vertexIndex + 1]; + } + ratio = this.method_500(faceVertices,faceUVs,ratio); + } + return ratio; + } + + private function method_500(faceVertices:Vector., faceUVs:Vector., ratio:Number) : Number + { + var v2:name_194 = null; + var p2:Point = null; + var dy:Number = NaN; + var dv:Number = NaN; + var newRatio:Number = NaN; + var v1:name_194 = faceVertices[2]; + var p1:Point = faceUVs[2]; + for(var i:int = 0; i < 3; i++) + { + v2 = faceVertices[i]; + p2 = faceUVs[i]; + dy = Number(Math.abs(v2.y - v1.y)); + dv = Number(Math.abs(p2.y - p1.y)); + if(dy > 100) + { + newRatio = dv / dy; + if(newRatio > ratio) + { + ratio = newRatio; + } + } + v1 = v2; + p1 = p2; + } + return ratio; + } + + private function method_497(tankTrack:name_528, container:name_380) : name_528 + { + var skin:name_528 = name_528(tankTrack.clone()); + skin.calculateBoundBox(); + container.addChild(skin); + return skin; + } + + private function method_499(container:name_78, wheels:Vector.) : Vector. + { + var tankWheel:name_318 = null; + var wheelMesh:name_380 = null; + var position:name_194 = null; + var numWheels:int = int(wheels.length); + var wheelMeshes:Vector. = new Vector.(numWheels); + for(var i:int = 0; i < numWheels; i++) + { + tankWheel = wheels[i]; + wheelMesh = new name_380(); + wheelMesh.name = tankWheel.name; + wheelMesh.geometry = tankWheel.geometry; + wheelMesh.addSurface(this.var_233,0,wheelMesh.geometry.numTriangles); + wheelMesh.calculateBoundBox(); + position = tankWheel.position; + wheelMesh.x = position.x; + wheelMesh.y = position.y; + wheelMesh.z = position.z; + wheelMesh.rotationX = Math.random() * Math.PI * 2; + container.addChild(wheelMesh); + wheelMeshes[i] = wheelMesh; + } + return wheelMeshes; + } + + public function name_343(hullMaterials:name_277) : void + { + this.hullMaterials = hullMaterials; + } + + public function get visible() : Boolean + { + return this.var_488.visible; + } + + public function addToScene() : void + { + var renderSystem:name_44 = null; + if(this.container == null) + { + renderSystem = this.gameKernel.name_5(); + this.container = renderSystem.method_46(); + if(this.var_488 != null) + { + this.container.addChild(this.var_488); + if(this.shadowRenderer != null) + { + renderSystem.method_70(this.shadowRenderer); + } + } + this.method_501(); + } + } + + public function removeFromScene() : void + { + if(this.container != null) + { + if(this.var_488 != null) + { + this.container.removeChild(this.var_488); + if(this.shadowRenderer != null) + { + this.gameKernel.name_5().method_65(this.shadowRenderer); + } + } + this.container = null; + } + this.method_503(); + } + + public function get name_482() : name_380 + { + return this.var_488; + } + + override public function initComponent() : void + { + this.physicsComponent = name_237(entity.getComponentStrict(name_237)); + name_314(entity.getComponentStrict(name_314)).name_60(this); + this.var_489.physicsComponent = this.physicsComponent; + this.var_490.physicsComponent = this.physicsComponent; + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + var renderSystem:name_44 = gameKernel.name_5(); + this.var_491 = new name_596(this.var_488,renderSystem,this); + if(renderSystem.method_57()) + { + this.var_491.name_111(); + this.var_491 = null; + } + else + { + renderSystem.method_59(this.var_491); + } + } + + override public function removeFromGame(gameKernel:name_17) : void + { + if(this.var_491 != null) + { + gameKernel.name_5().method_49(this.var_491); + this.var_491 = null; + } + this.removeFromScene(); + gameKernel = null; + } + + public function render() : void + { + if(this.hull == null) + { + return; + } + hullMatrix.method_347(); + hullMatrix.name_201(this.hull.name_538); + hullMatrix.append(this.physicsComponent.var_483); + hullMatrix.name_341(eulerAngles); + this.var_488.x = hullMatrix.d; + this.var_488.y = hullMatrix.h; + this.var_488.z = hullMatrix.l; + this.var_488.rotationX = eulerAngles.x; + this.var_488.rotationY = eulerAngles.y; + this.var_488.rotationZ = eulerAngles.z; + this.method_502(); + } + + private function method_502() : void + { + var dt:Number = NaN; + if(this.var_489 != null) + { + dt = name_182.timeDeltaSeconds; + this.var_489.name_598(this.hull.name_597,this.physicsComponent.method_492(),dt); + this.var_490.name_598(this.hull.name_597,this.physicsComponent.method_495(),dt); + } + } + + public function setMaterial(materialType:name_481) : void + { + switch(materialType) + { + case name_481.DEAD: + this.hullMaterials.deadMaterial.alpha = 1; + this.var_489.material.alpha = 1; + this.var_490.material.alpha = 1; + this.var_488.setMaterialToAllSurfaces(this.hullMaterials.deadMaterial); + this.var_233 = this.hullMaterials.deadMaterial; + break; + case name_481.NORMAL: + this.hullMaterials.normalMaterial.alpha = 1; + this.var_489.material.alpha = 1; + this.var_490.material.alpha = 1; + this.var_488.setMaterialToAllSurfaces(this.hullMaterials.normalMaterial); + this.var_233 = this.hullMaterials.normalMaterial; + break; + case name_481.ACTIVATING: + this.hullMaterials.normalMaterial.alpha = 0.5; + this.var_489.material.alpha = 0.5; + this.var_490.material.alpha = 0.5; + this.var_488.setMaterialToAllSurfaces(this.hullMaterials.normalMaterial); + this.var_233 = this.hullMaterials.normalMaterial; + } + var numWheels:int = int(this.name_325.length); + for(var i:int = 0; i < numWheels; i++) + { + this.name_325[i].setMaterialToAllSurfaces(this.var_233); + this.name_323[i].setMaterialToAllSurfaces(this.var_233); + } + } + + public function method_342(value:Number) : void + { + this.var_233.alpha = value; + this.var_489.material.alpha = value; + this.var_490.material.alpha = value; + } + + private function method_501() : void + { + if(this.var_488 != null) + { + this.var_488.addEventListener(MouseEvent3D.CLICK,this.method_498); + } + } + + private function method_503() : void + { + if(this.var_488 != null) + { + this.var_488.removeEventListener(MouseEvent3D.CLICK,this.method_498); + } + } + + private function method_505(event:MouseEvent3D) : void + { + } + + private function onMouseOut(event:MouseEvent3D) : void + { + } + + private function method_498(event:MouseEvent3D) : void + { + this.gameKernel.name_61().dispatchEvent(TANK_CLICK,entity); + } + } +} + diff --git a/src/package_84/name_595.as b/src/package_84/name_595.as new file mode 100644 index 0000000..f2e9036 --- /dev/null +++ b/src/package_84/name_595.as @@ -0,0 +1,119 @@ +package package_84 +{ + import package_19.name_380; + import package_19.name_528; + import package_21.name_78; + import package_3.name_33; + import package_75.name_236; + + public class name_595 + { + public var material:name_33; + + public var physicsComponent:name_236; + + private var wheels:Vector.; + + private var var_648:Vector.; + + private var var_647:Vector.; + + private var var_646:Vector.; + + private var dUdY:Number; + + private var var_645:Number = 0; + + private var trackSkin:name_528; + + public function name_595(trackSkin:name_528, wheels:Vector., dUdY:Number) + { + super(); + this.trackSkin = trackSkin; + this.wheels = wheels; + this.dUdY = dUdY; + this.physicsComponent = this.physicsComponent; + this.var_646 = new Vector.(wheels.length); + for(var i:int = 0; i < wheels.length; i++) + { + this.var_646[i] = wheels[i].boundBox.maxY; + } + this.method_775(); + } + + public function name_598(period:Number, speed:Number, dt:Number) : void + { + var wheelMesh:name_380 = null; + var wheelDeltaZ:Number = NaN; + var bone:name_78 = null; + var delta:Number = NaN; + var newOffset:Number = NaN; + var ds:Number = speed * dt; + var numWheels:int = int(this.wheels.length); + for(var i:int = 0; i < numWheels; ) + { + wheelMesh = this.wheels[i]; + wheelMesh.rotationX -= ds / this.var_646[i]; + wheelDeltaZ = Number(this.physicsComponent.method_474(wheelMesh.name)); + wheelMesh.z = this.var_648[i] + wheelDeltaZ; + bone = this.trackSkin.getChildByName(this.method_774(wheelMesh.name)); + if(bone != null) + { + bone.z = this.var_647[i] + wheelDeltaZ; + } + i++; + } + if(period > 0) + { + delta = ds * this.dUdY; + newOffset = this.var_645 + delta; + if(newOffset < 0) + { + while(newOffset < 0) + { + newOffset += period; + } + delta = newOffset - this.var_645; + this.var_645 = newOffset; + } + else if(newOffset < period) + { + this.var_645 = newOffset; + } + else + { + while(newOffset >= period) + { + newOffset -= period; + } + delta = newOffset - this.var_645; + this.var_645 = newOffset; + } + this.material.vOffset = this.var_645; + } + } + + private function method_775() : void + { + var bone:name_78 = null; + this.var_648 = new Vector.(this.wheels.length); + this.var_647 = new Vector.(this.wheels.length); + for(var i:int = 0; i < this.wheels.length; ) + { + this.var_648[i] = this.wheels[i].z; + bone = this.trackSkin.getChildByName(this.method_774(this.wheels[i].name)); + if(bone != null) + { + this.var_647[i] = bone.z; + } + i++; + } + } + + private function method_774(wheelName:String) : String + { + return "bn" + wheelName.substr(2); + } + } +} + diff --git a/src/package_85/class_22.as b/src/package_85/class_22.as new file mode 100644 index 0000000..7dc9ee2 --- /dev/null +++ b/src/package_85/class_22.as @@ -0,0 +1,19 @@ +package package_85 +{ + import package_18.name_82; + import package_21.name_78; + + public interface class_22 extends name_82 + { + function addToScene() : void; + + function removeFromScene() : void; + + function setMaterial(param1:name_481) : void; + + function method_342(param1:Number) : void; + + function name_329() : name_78; + } +} + diff --git a/src/package_85/class_31.as b/src/package_85/class_31.as new file mode 100644 index 0000000..2045cfe --- /dev/null +++ b/src/package_85/class_31.as @@ -0,0 +1,10 @@ +package package_85 +{ + import package_23.name_208; + + public interface class_31 + { + function method_496(param1:name_208) : void; + } +} + diff --git a/src/package_85/class_36.as b/src/package_85/class_36.as new file mode 100644 index 0000000..0106fd6 --- /dev/null +++ b/src/package_85/class_36.as @@ -0,0 +1,24 @@ +package package_85 +{ + import package_114.class_35; + + public class class_36 implements class_35 + { + protected var component:name_314; + + public function class_36(component:name_314) + { + super(); + this.component = component; + } + + public function start(data:*) : void + { + } + + public function stop() : void + { + } + } +} + diff --git a/src/package_85/name_284.as b/src/package_85/name_284.as new file mode 100644 index 0000000..c610c6a --- /dev/null +++ b/src/package_85/name_284.as @@ -0,0 +1,145 @@ +package package_85 +{ + import package_10.class_17; + import package_10.name_17; + import package_4.class_4; + import package_46.name_194; + import package_71.name_252; + import package_72.name_239; + import package_72.name_260; + import package_72.name_264; + import package_75.name_236; + import package_76.name_256; + import package_86.name_257; + import package_90.name_273; + + public class name_284 extends class_17 + { + private static const MAX_SHOCK_WAVE_DISTANCE:Number = 1500; + + private static const FULL_SHOCK_WAVE_SIZE_DISTANCE:Number = 300; + + private static const SHOCK_WAVE_FPS:int = 30; + + private static const EXPLOSION_FPS:int = 25; + + private static const SMOKE_FPS:int = 25; + + private var shockWaveStartSize:Number; + + private var shockWaveGrowSpeed:Number; + + private var shockWaveFrames:Vector.; + + private var explosionFrames:Vector.; + + private var smokeFrames:Vector.; + + private var gameKernel:name_17; + + public function name_284(shockWaveStartSize:Number, shockWaveGrowSpeed:Number, shockWaveFrames:Vector., explosionFrames:Vector., smokeFrames:Vector.) + { + super(); + this.shockWaveStartSize = shockWaveStartSize; + this.shockWaveGrowSpeed = shockWaveGrowSpeed; + this.shockWaveFrames = shockWaveFrames; + this.explosionFrames = explosionFrames; + this.smokeFrames = smokeFrames; + } + + override public function initComponent() : void + { + entity.addEventHandler(name_252.SET_DEAD_STATE,this.method_446); + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + } + + override public function removeFromGame(gameKernel:name_17) : void + { + this.gameKernel = null; + } + + private function method_446(eventType:String, eventData:*) : void + { + var chassisPhysicsComponent:name_236 = name_236(entity.getComponentStrict(name_236)); + this.method_162(chassisPhysicsComponent); + this.method_168(chassisPhysicsComponent); + this.method_445(chassisPhysicsComponent); + } + + private function method_162(chassisPhysicsComponent:name_236) : void + { + var actualSize:Number = NaN; + var position:name_194 = null; + var rotation:name_194 = null; + var effect:name_264 = null; + var collisionDetector:name_256 = this.gameKernel.method_112().name_246().collisionDetector; + var origin:name_194 = chassisPhysicsComponent.getBody().state.position; + var result:name_273 = new name_273(); + if(collisionDetector.name_324(origin,name_194.DOWN,name_257.STATIC,MAX_SHOCK_WAVE_DISTANCE,null,result)) + { + if(result.t < FULL_SHOCK_WAVE_SIZE_DISTANCE) + { + actualSize = this.shockWaveStartSize; + } + else + { + actualSize = this.shockWaveStartSize * (MAX_SHOCK_WAVE_DISTANCE - result.t) / (MAX_SHOCK_WAVE_DISTANCE - FULL_SHOCK_WAVE_SIZE_DISTANCE); + } + position = result.position.clone(); + position.z += 1; + rotation = new name_194(); + rotation.x = -Math.acos(result.normal.z); + if(result.normal.z < 0.999) + { + rotation.z = Math.atan2(-result.normal.x,result.normal.y); + } + effect = name_264(this.gameKernel.method_108().name_110(name_264)); + effect.init(actualSize,position,rotation,this.shockWaveFrames,SHOCK_WAVE_FPS,this.shockWaveGrowSpeed); + this.gameKernel.name_5().method_37(effect); + } + } + + private function method_168(chassisPhysicsComponent:name_236) : void + { + var animatedSpriteEffect:name_239 = name_239(this.gameKernel.method_108().name_110(name_239)); + var position:name_194 = chassisPhysicsComponent.getBody().state.position.clone(); + position.z += 100; + var rotation:Number = Math.random() * Math.PI; + animatedSpriteEffect.init(600,600,this.explosionFrames,position,rotation,400,EXPLOSION_FPS,false); + this.gameKernel.name_5().method_37(animatedSpriteEffect); + } + + private function method_445(chassisPhysicsComponent:name_236) : void + { + var angle:Number = NaN; + var speed:Number = NaN; + var movingAnimatedSprite:name_260 = null; + var rotation:Number = NaN; + var minAngle:Number = 10 * Math.PI / 180; + var maxAngle:Number = 60 * Math.PI / 180; + var position:name_194 = chassisPhysicsComponent.getBody().state.position.clone(); + position.z += 100; + var velocity:name_194 = new name_194(); + var rotationAngle:Number = Math.random() * Math.PI; + var direction:name_194 = new name_194(); + for(var i:int = 0; i < 3; i++) + { + direction.x = Math.cos(rotationAngle); + direction.y = Math.sin(rotationAngle); + angle = Math.random() * (maxAngle - minAngle) + minAngle; + speed = 900 + Math.random() * (1000 - 900); + velocity.copy(direction).scale(Math.sin(angle)).add(name_194.UP).normalize().scale(speed); + movingAnimatedSprite = name_260(this.gameKernel.method_108().name_110(name_260)); + rotation = Math.random() * Math.PI; + movingAnimatedSprite.init(400,400,this.smokeFrames,position,velocity,-1000,rotation,SMOKE_FPS,false); + this.gameKernel.name_5().method_37(movingAnimatedSprite); + rotationAngle += 2 / 3 * Math.PI; + } + } + } +} + diff --git a/src/package_85/name_314.as b/src/package_85/name_314.as new file mode 100644 index 0000000..e71e7de --- /dev/null +++ b/src/package_85/name_314.as @@ -0,0 +1,131 @@ +package package_85 +{ + import alternativa.engine3d.alternativa3d; + import package_10.class_17; + import package_10.name_17; + import package_114.name_488; + import package_114.name_489; + import package_18.name_44; + import package_18.name_82; + import package_45.name_182; + import package_71.name_252; + + use namespace alternativa3d; + + public class name_314 extends class_17 implements name_82 + { + private var var_424:name_488; + + private var components:Vector.; + + private var var_426:Boolean; + + private var var_425:Boolean; + + private var alpha:Number = 1; + + private var gameKernel:name_17; + + public function name_314() + { + super(); + this.components = new Vector.(); + } + + override public function initComponent() : void + { + this.var_424 = new name_488(); + this.var_424.name_486(entity,name_252.SET_ACTIVATING_STATE,new name_490(this)); + this.var_424.name_486(entity,name_252.SET_ACTIVE_STATE,new name_491(this)); + this.var_424.name_486(entity,name_252.SET_DEAD_STATE,new name_492(this)); + var respawnState:name_487 = new name_487(this); + this.var_424.name_486(entity,name_252.SET_RESPAWN_STATE,respawnState); + this.var_424.name_493 = name_489.INSTANCE; + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + } + + public function addToScene() : void + { + var tankGraphicsComponent:class_22 = null; + var renderSystem:name_44 = null; + if(!this.var_426) + { + for each(tankGraphicsComponent in this.components) + { + tankGraphicsComponent.addToScene(); + } + renderSystem = this.gameKernel.name_5(); + renderSystem.method_63(this); + this.var_426 = true; + } + this.var_425 = false; + this.alpha = 1; + } + + public function removeFromScene() : void + { + if(this.var_426) + { + this.var_425 = true; + } + } + + public function method_376() : void + { + var tankGraphicsComponent:class_22 = null; + this.var_425 = false; + this.var_426 = false; + for each(tankGraphicsComponent in this.components) + { + tankGraphicsComponent.removeFromScene(); + } + this.gameKernel.name_5().method_64(this); + } + + public function setMaterial(materialType:name_481) : void + { + var tankGraphicsComponent:class_22 = null; + for each(tankGraphicsComponent in this.components) + { + tankGraphicsComponent.setMaterial(materialType); + } + } + + public function name_60(component:class_22) : void + { + this.components.push(component); + } + + public function render() : void + { + var tankGraphicsComponent:class_22 = null; + if(this.var_425) + { + if(this.alpha == 0) + { + this.method_376(); + } + this.alpha -= name_182.timeDeltaSeconds; + if(this.alpha < 0) + { + this.alpha = 0; + } + for each(tankGraphicsComponent in this.components) + { + tankGraphicsComponent.method_342(this.alpha); + } + } + var numComponents:int = int(this.components.length); + for(var i:int = 0; i < numComponents; i++) + { + tankGraphicsComponent = this.components[i]; + tankGraphicsComponent.render(); + } + } + } +} + diff --git a/src/package_85/name_319.as b/src/package_85/name_319.as new file mode 100644 index 0000000..faf787a --- /dev/null +++ b/src/package_85/name_319.as @@ -0,0 +1,231 @@ +package package_85 +{ + import alternativa.engine3d.alternativa3d; + import package_10.class_17; + import package_10.name_17; + import package_109.name_377; + import package_18.name_44; + import package_18.name_82; + import package_19.name_509; + import package_21.name_78; + import package_4.name_313; + import package_46.Matrix4; + import package_46.name_194; + import package_71.name_249; + import package_77.name_237; + import package_77.name_510; + import package_77.name_515; + import package_84.name_253; + import package_92.name_271; + import package_92.name_513; + import package_94.name_276; + import package_96.name_279; + + use namespace alternativa3d; + + public class name_319 extends class_17 implements name_82 + { + private static var material:name_313 = new name_313(11141120); + + private static var bodyMaterial:name_313 = new name_313(43520); + + private static var eulerAngles:name_194 = new name_194(); + + private var chassis:name_237; + + private var turret:name_276; + + private var var_444:Vector.; + + private var var_443:name_78; + + private var rays:Vector.; + + public function name_319() + { + super(); + } + + override public function initComponent() : void + { + var collisionBox:name_377 = null; + var hs:name_194 = null; + var box:name_279 = null; + var wireFrame:name_509 = null; + this.chassis = name_237(entity.getComponentStrict(name_237)); + this.turret = name_276(entity.getComponentStrict(name_276)); + this.var_444 = new Vector.(); + var body:name_271 = this.chassis.getBody(); + for(var item:name_513 = body.collisionPrimitives.head; item != null; ) + { + collisionBox = name_377(item.primitive); + hs = collisionBox.hs.clone().scale(2); + box = new name_279(hs.x,hs.y,hs.z); + wireFrame = name_509.name_511(box,16711680); + this.var_444.push(new CollisionPrimitive3D(collisionBox,wireFrame)); + item = item.next; + } + var trackedChassisGraphicsComponent:name_253 = name_253(entity.getComponentStrict(name_253)); + var hull:name_249 = trackedChassisGraphicsComponent.name_351(); + hs = hull.name_517.hs.clone().scale(2); + box = new name_279(hs.x,hs.y,hs.z); + this.var_443 = name_509.name_511(box,65280); + this.method_407(); + } + + private function method_407() : void + { + this.rays = new Vector.(); + this.method_406(this.chassis.name_337,this.rays); + this.method_406(this.chassis.name_340,this.rays); + } + + private function method_406(track:name_515, rays:Vector.) : void + { + var ray:name_510 = null; + var box:name_279 = null; + var wireFrame1:name_509 = null; + var wireFrame2:name_509 = null; + for each(ray in track.rays) + { + box = new name_279(10,10,10); + wireFrame1 = name_509.name_511(box,255); + box = new name_279(10,10,10); + wireFrame2 = name_509.name_511(box,65535); + rays.push(new RayEntry(ray,wireFrame1,wireFrame2)); + } + } + + override public function addToGame(gameKernel:name_17) : void + { + var collisionPrimitive3D:CollisionPrimitive3D = null; + var rayEntry:RayEntry = null; + var renderSystem:name_44 = gameKernel.name_5(); + for each(collisionPrimitive3D in this.var_444) + { + this.method_404(renderSystem,collisionPrimitive3D.skin); + } + this.method_404(renderSystem,this.var_443); + for each(rayEntry in this.rays) + { + this.method_404(renderSystem,rayEntry.originSkin); + this.method_404(renderSystem,rayEntry.endSkin); + } + renderSystem.method_63(this); + } + + override public function removeFromGame(gameKernel:name_17) : void + { + var collisionPrimitive3D:CollisionPrimitive3D = null; + var rayEntry:RayEntry = null; + var renderSystem:name_44 = gameKernel.name_5(); + for each(collisionPrimitive3D in this.var_444) + { + this.method_405(renderSystem,collisionPrimitive3D.skin); + } + for each(rayEntry in this.rays) + { + this.method_405(renderSystem,rayEntry.originSkin); + this.method_405(renderSystem,rayEntry.endSkin); + } + this.method_405(renderSystem,this.var_443); + gameKernel.name_5().method_64(this); + } + + private function method_404(renderSystem:name_44, object:name_78) : void + { + renderSystem.method_46().addChild(object); + renderSystem.method_32(object.getResources()); + } + + private function method_405(renderSystem:name_44, object:name_78) : void + { + object.alternativa3d::removeFromParent(); + renderSystem.method_31(object.getResources()); + } + + public function render() : void + { + var entry:CollisionPrimitive3D = null; + var body:name_271 = null; + var rayEntry:RayEntry = null; + var transform:Matrix4 = null; + var skin:name_78 = null; + var worldPos:name_194 = null; + var rayLength:Number = NaN; + for each(entry in this.var_444) + { + transform = entry.collisionPrimitive.transform; + transform.name_341(eulerAngles); + skin = entry.skin; + skin.x = transform.d; + skin.y = transform.h; + skin.z = transform.l; + skin.rotationX = eulerAngles.x; + skin.rotationY = eulerAngles.y; + skin.rotationZ = eulerAngles.z; + } + body = this.chassis.getBody(); + body.baseMatrix.name_341(eulerAngles); + this.var_443.rotationX = eulerAngles.x; + this.var_443.rotationY = eulerAngles.y; + this.var_443.rotationZ = eulerAngles.z; + this.var_443.x = body.state.position.x; + this.var_443.y = body.state.position.y; + this.var_443.z = body.state.position.z; + for each(rayEntry in this.rays) + { + worldPos = rayEntry.ray.worldPos; + rayEntry.originSkin.x = worldPos.x; + rayEntry.originSkin.y = worldPos.y; + rayEntry.originSkin.z = worldPos.z; + if(rayEntry.ray.name_514) + { + rayLength = rayEntry.ray.name_516.t; + } + else + { + rayLength = this.chassis.name_518.rayLength; + } + rayEntry.endSkin.x = worldPos.x + rayEntry.ray.name_512.x * rayLength; + rayEntry.endSkin.y = worldPos.y + rayEntry.ray.name_512.y * rayLength; + rayEntry.endSkin.z = worldPos.z + rayEntry.ray.name_512.z * rayLength; + } + } + } +} + +import package_21.name_78; +import package_76.name_235; +import package_77.name_510; + +class CollisionPrimitive3D +{ + public var collisionPrimitive:name_235; + + public var skin:name_78; + + public function CollisionPrimitive3D(collisionPrimitive:name_235, skin:name_78) + { + super(); + this.collisionPrimitive = collisionPrimitive; + this.skin = skin; + } +} + +class RayEntry +{ + public var ray:name_510; + + public var originSkin:name_78; + + public var endSkin:name_78; + + public function RayEntry(ray:name_510, originSkin:name_78, endSkin:name_78) + { + super(); + this.ray = ray; + this.originSkin = originSkin; + this.endSkin = endSkin; + } +} diff --git a/src/package_85/name_481.as b/src/package_85/name_481.as new file mode 100644 index 0000000..fb4eb64 --- /dev/null +++ b/src/package_85/name_481.as @@ -0,0 +1,25 @@ +package package_85 +{ + public class name_481 + { + public static const NORMAL:name_481 = new name_481("NORMAL"); + + public static const ACTIVATING:name_481 = new name_481("ACTIVATING"); + + public static const DEAD:name_481 = new name_481("DEAD"); + + private var stringValue:String; + + public function name_481(stringValue:String) + { + super(); + this.stringValue = stringValue; + } + + public function toString() : String + { + return this.stringValue; + } + } +} + diff --git a/src/package_85/name_487.as b/src/package_85/name_487.as new file mode 100644 index 0000000..fcb9e00 --- /dev/null +++ b/src/package_85/name_487.as @@ -0,0 +1,16 @@ +package package_85 +{ + public class name_487 extends class_36 + { + public function name_487(component:name_314) + { + super(component); + } + + override public function start(data:*) : void + { + component.removeFromScene(); + } + } +} + diff --git a/src/package_85/name_490.as b/src/package_85/name_490.as new file mode 100644 index 0000000..2e0c6b0 --- /dev/null +++ b/src/package_85/name_490.as @@ -0,0 +1,17 @@ +package package_85 +{ + public class name_490 extends class_36 + { + public function name_490(component:name_314) + { + super(component); + } + + override public function start(data:*) : void + { + component.addToScene(); + component.setMaterial(name_481.ACTIVATING); + } + } +} + diff --git a/src/package_85/name_491.as b/src/package_85/name_491.as new file mode 100644 index 0000000..3de6db7 --- /dev/null +++ b/src/package_85/name_491.as @@ -0,0 +1,17 @@ +package package_85 +{ + public class name_491 extends class_36 + { + public function name_491(component:name_314) + { + super(component); + } + + override public function start(data:*) : void + { + component.addToScene(); + component.setMaterial(name_481.NORMAL); + } + } +} + diff --git a/src/package_85/name_492.as b/src/package_85/name_492.as new file mode 100644 index 0000000..f86793f --- /dev/null +++ b/src/package_85/name_492.as @@ -0,0 +1,17 @@ +package package_85 +{ + public class name_492 extends class_36 + { + public function name_492(component:name_314) + { + super(component); + } + + override public function start(data:*) : void + { + component.addToScene(); + component.setMaterial(name_481.DEAD); + } + } +} + diff --git a/src/package_85/name_596.as b/src/package_85/name_596.as new file mode 100644 index 0000000..96d24b3 --- /dev/null +++ b/src/package_85/name_596.as @@ -0,0 +1,46 @@ +package package_85 +{ + import package_18.name_44; + import package_18.name_84; + import package_21.name_78; + import package_23.name_208; + import package_24.DirectionalLight; + + public class name_596 implements name_84 + { + private var object:name_78; + + private var renderSystem:name_44; + + private var consumer:class_31; + + public function name_596(object:name_78, renderSystem:name_44, consumer:class_31) + { + super(); + this.object = object; + this.renderSystem = renderSystem; + this.consumer = consumer; + } + + public function name_111() : void + { + var worldSize:Number = NaN; + var textureSize:int = 0; + var pcfSize:int = 0; + var directionalShadowRenderer:name_208 = null; + var directionalLights:Vector. = this.renderSystem.lights.directionalLigths.lights; + if(directionalLights != null && directionalLights.length > 0) + { + worldSize = 1300; + textureSize = 256; + pcfSize = 4; + directionalShadowRenderer = new name_208(this.renderSystem.method_42(),textureSize,worldSize,pcfSize); + directionalShadowRenderer.var_235 = this.object; + directionalShadowRenderer.method_371(directionalLights[0]); + this.renderSystem.method_70(directionalShadowRenderer); + this.consumer.method_496(directionalShadowRenderer); + } + } + } +} + diff --git a/src/package_86/name_257.as b/src/package_86/name_257.as new file mode 100644 index 0000000..4380d5d --- /dev/null +++ b/src/package_86/name_257.as @@ -0,0 +1,17 @@ +package package_86 +{ + public class name_257 + { + public static const STATIC:int = 1; + + public static const TANK:int = 1 << 1; + + public static const WEAPON:int = 1 << 2; + + public function name_257() + { + super(); + } + } +} + diff --git a/src/package_86/name_466.as b/src/package_86/name_466.as new file mode 100644 index 0000000..8dec7f7 --- /dev/null +++ b/src/package_86/name_466.as @@ -0,0 +1,829 @@ +package package_86 +{ + import package_121.name_666; + import package_121.name_667; + import package_121.name_668; + import package_46.name_194; + import package_76.name_235; + import package_76.name_631; + import package_76.name_656; + import package_76.name_663; + import package_76.name_665; + import package_90.name_273; + import package_90.name_386; + import package_92.name_271; + import package_92.name_513; + import package_92.name_601; + import package_92.name_630; + + public class name_466 implements name_468 + { + public var var_592:name_663; + + public var threshold:Number = 0.0001; + + private var var_596:Object; + + private var var_591:Vector.; + + private var var_593:int; + + private var name_605:Vector.; + + private var numBodies:int; + + private var var_420:MinMax = new MinMax(); + + private var var_594:name_194 = new name_194(); + + private var var_590:name_194 = new name_194(); + + private var var_595:name_273 = new name_273(); + + private var _rayAABB:name_386 = new name_386(); + + public function name_466() + { + super(); + this.var_592 = new name_663(); + this.name_605 = new Vector.(); + this.var_591 = new Vector.(); + this.var_596 = new Object(); + this.method_655(name_235.BOX,name_235.BOX,new name_666()); + this.method_655(name_235.BOX,name_235.RECT,new name_667()); + this.method_655(name_235.BOX,name_235.TRIANGLE,new name_668()); + } + + public function method_665(primitive:name_235) : void + { + } + + public function method_664(primitive:name_235) : void + { + } + + public function name_470() : void + { + } + + public function name_473(collisionPrimitives:Vector., boundBox:name_386 = null) : void + { + this.var_592.name_669(collisionPrimitives,boundBox); + } + + public function name_591(tankPhysicsEntry:name_568) : void + { + if(this.var_591.indexOf(tankPhysicsEntry) >= 0) + { + throw new Error("Tank entry already exists"); + } + var _loc2_:* = this.var_593++; + this.var_591[_loc2_] = tankPhysicsEntry; + } + + public function name_590(tankPhysicsEntry:name_568) : void + { + var index:Number = Number(this.var_591.indexOf(tankPhysicsEntry)); + if(index < 0) + { + throw new Error("Tank entry not found"); + } + this.var_591[index] = this.var_591[--this.var_593]; + this.var_591[this.var_593] = null; + } + + public function name_592(body:name_271) : void + { + var _loc2_:* = this.numBodies++; + this.name_605[_loc2_] = body; + } + + public function name_593(body:name_271) : void + { + var index:int = int(this.name_605.indexOf(body)); + if(index < 0) + { + throw new Error("Body not found"); + } + this.name_605[index] = this.name_605[--this.numBodies]; + this.name_605[this.numBodies] = null; + } + + public function method_651(center:name_194, radius:Number, filter:name_655) : Vector. + { + var result:Vector. = null; + var tankPhysicsEntry:name_568 = null; + var position:name_194 = null; + var dx:Number = NaN; + var dy:Number = NaN; + var dz:Number = NaN; + var distance:Number = NaN; + radius *= radius; + for(var i:int = 0; i < this.var_593; ) + { + tankPhysicsEntry = this.var_591[i]; + position = tankPhysicsEntry.body.state.position; + dx = position.x - center.x; + dy = position.y - center.y; + dz = position.z - center.z; + distance = dx * dx + dy * dy + dz * dz; + if(distance < radius) + { + if(filter == null || Boolean(filter.name_670(center,tankPhysicsEntry.body))) + { + if(result == null) + { + result = new Vector.(); + } + result.push(new name_654(tankPhysicsEntry.body,Math.sqrt(distance))); + } + } + i++; + } + return result; + } + + public function method_553(contact:name_630) : name_630 + { + return this.method_659(contact); + } + + public function getContact(prim1:name_235, prim2:name_235, contact:name_630) : Boolean + { + if((prim1.collisionMask & prim2.collisionGroup) == 0 || (prim2.collisionMask & prim1.collisionGroup) == 0 || !prim1.aabb.intersects(prim2.aabb,0.01)) + { + return false; + } + var collider:name_665 = this.var_596[prim1.type | prim2.type]; + if(collider != null && Boolean(collider.getContact(prim1,prim2,contact))) + { + if(prim1.postCollisionFilter != null && !prim1.postCollisionFilter.name_662(prim1,prim2)) + { + return false; + } + return !(prim2.postCollisionFilter != null && !prim2.postCollisionFilter.name_662(prim2,prim1)); + } + return false; + } + + public function method_554(prim1:name_235, prim2:name_235) : Boolean + { + if((prim1.collisionMask & prim2.collisionGroup) == 0 || (prim2.collisionMask & prim1.collisionGroup) == 0) + { + return false; + } + if(prim1.body != null && prim1.body == prim2.body) + { + return false; + } + if(!prim1.aabb.intersects(prim2.aabb,0.01)) + { + return false; + } + var collider:name_665 = this.var_596[prim1.type | prim2.type]; + if(collider != null && Boolean(collider.haveCollision(prim1,prim2))) + { + if(prim1.postCollisionFilter != null && !prim1.postCollisionFilter.name_662(prim1,prim2)) + { + return false; + } + return !(prim2.postCollisionFilter != null && !prim2.postCollisionFilter.name_662(prim2,prim1)); + } + return false; + } + + public function raycast(origin:name_194, dir:name_194, collisionMask:int, maxTime:Number, filter:name_631, result:name_273) : Boolean + { + var hasStaticIntersection:Boolean = this.name_324(origin,dir,collisionMask,maxTime,filter,result); + var hasDynamicIntersection:Boolean = this.method_658(origin,dir,collisionMask,maxTime,filter,this.var_595); + if(!(hasDynamicIntersection || hasStaticIntersection)) + { + return false; + } + if(hasDynamicIntersection && hasStaticIntersection) + { + if(result.t > this.var_595.t) + { + result.copy(this.var_595); + } + return true; + } + if(hasStaticIntersection) + { + return true; + } + result.copy(this.var_595); + return true; + } + + public function name_324(origin:name_194, dir:name_194, collisionMask:int, maxTime:Number, filter:name_631, result:name_273) : Boolean + { + if(!this.method_662(origin,dir,this.var_592.name_659.boundBox,this.var_420)) + { + return false; + } + if(this.var_420.max < 0 || this.var_420.min > maxTime) + { + return false; + } + if(this.var_420.min <= 0) + { + this.var_420.min = 0; + this.var_590.x = origin.x; + this.var_590.y = origin.y; + this.var_590.z = origin.z; + } + else + { + this.var_590.x = origin.x + this.var_420.min * dir.x; + this.var_590.y = origin.y + this.var_420.min * dir.y; + this.var_590.z = origin.z + this.var_420.min * dir.z; + } + if(this.var_420.max > maxTime) + { + this.var_420.max = maxTime; + } + var hasIntersection:Boolean = this.method_652(this.var_592.name_659,origin,this.var_590,dir,collisionMask,this.var_420.min,this.var_420.max,filter,result); + return hasIntersection ? result.t <= maxTime : false; + } + + public function method_657(primitive:name_235) : Boolean + { + return this.method_654(primitive,this.var_592.name_659); + } + + private function method_655(type1:int, type2:int, collider:name_665) : void + { + this.var_596[type1 | type2] = collider; + } + + private function method_659(contact:name_630) : name_630 + { + var tankEntry:name_568 = null; + var body:name_271 = null; + var listItem:name_513 = null; + var j:int = 0; + var otherTankEntry:name_568 = null; + for(var i:int = 0; i < this.var_593; i++) + { + tankEntry = this.var_591[i]; + body = tankEntry.body; + for(listItem = body.collisionPrimitives.head; listItem != null; ) + { + contact = this.method_653(this.var_592.name_659,listItem.primitive,contact); + listItem = listItem.next; + } + for(j = i + 1; j < this.var_593; ) + { + otherTankEntry = this.var_591[j]; + if(body.aabb.intersects(otherTankEntry.body.aabb,0.1)) + { + contact = this.method_656(tankEntry,otherTankEntry,contact); + } + j++; + } + } + return contact; + } + + private function method_656(tankEntry1:name_568, tankEntry2:name_568, contact:name_630) : name_630 + { + var primitive1:name_235 = null; + var numSimplePrimitives2:int = 0; + var j:int = 0; + var primitive2:name_235 = null; + var skipCollision:Boolean = false; + var body1:name_271 = tankEntry1.body; + var body2:name_271 = tankEntry2.body; + var numSimplePrimitives1:int = int(tankEntry1.simplePrimitives.length); + var firstFilterTest:Boolean = true; + for(var i:int = 0; i < numSimplePrimitives1; i++) + { + primitive1 = tankEntry1.simplePrimitives[i]; + numSimplePrimitives2 = int(tankEntry2.simplePrimitives.length); + for(j = 0; j < numSimplePrimitives2; ) + { + primitive2 = tankEntry2.simplePrimitives[j]; + if(this.getContact(primitive1,primitive2,contact)) + { + if(firstFilterTest) + { + firstFilterTest = false; + skipCollision = false; + if(body1.postCollisionFilter != null && !body1.postCollisionFilter.acceptBodiesCollision(body1,body2)) + { + skipCollision = true; + } + if(body2.postCollisionFilter != null && !body2.postCollisionFilter.acceptBodiesCollision(body2,body1)) + { + skipCollision = true; + } + if(skipCollision) + { + return contact; + } + } + contact = contact.next; + } + j++; + } + } + return contact; + } + + private function method_666(primitives1:name_601, primitives2:name_601) : Boolean + { + var item2:name_513 = null; + for(var item1:name_513 = primitives1.head; item1 != null; ) + { + for(item2 = primitives2.head; item2 != null; ) + { + if(this.method_554(item1.primitive,item2.primitive)) + { + return true; + } + item2 = item2.next; + } + item1 = item1.next; + } + return false; + } + + private function method_667(primitives:name_601) : Boolean + { + for(var item:name_513 = primitives.head; item != null; ) + { + if(this.method_657(item.primitive)) + { + return true; + } + item = item.next; + } + return false; + } + + private function method_653(node:name_656, primitive:name_235, contact:name_630) : name_630 + { + var min:Number = NaN; + var max:Number = NaN; + var primitives:Vector. = null; + var indices:Vector. = null; + var i:int = 0; + if(node.indices != null) + { + primitives = this.var_592.name_661; + indices = node.indices; + for(i = indices.length - 1; i >= 0; ) + { + if(this.getContact(primitive,primitives[indices[i]],contact)) + { + contact = contact.next; + } + i--; + } + } + if(node.axis == -1) + { + return contact; + } + switch(node.axis) + { + case 0: + min = primitive.aabb.minX; + max = primitive.aabb.maxX; + break; + case 1: + min = primitive.aabb.minY; + max = primitive.aabb.maxY; + break; + case 2: + min = primitive.aabb.minZ; + max = primitive.aabb.maxZ; + } + if(min < node.coord) + { + contact = this.method_653(node.name_657,primitive,contact); + } + if(max > node.coord) + { + contact = this.method_653(node.name_658,primitive,contact); + } + if(node.name_660 != null && min < node.coord && max > node.coord) + { + contact = this.method_653(node.name_660.name_659,primitive,contact); + } + return contact; + } + + private function method_654(primitive:name_235, node:name_656) : Boolean + { + var min:Number = NaN; + var max:Number = NaN; + var primitives:Vector. = null; + var indices:Vector. = null; + var i:int = 0; + if(node.indices != null) + { + primitives = this.var_592.name_661; + indices = node.indices; + for(i = indices.length - 1; i >= 0; ) + { + if(this.method_554(primitive,primitives[indices[i]])) + { + return true; + } + i--; + } + } + if(node.axis == -1) + { + return false; + } + switch(node.axis) + { + case 0: + min = primitive.aabb.minX; + max = primitive.aabb.maxX; + break; + case 1: + min = primitive.aabb.minY; + max = primitive.aabb.maxY; + break; + case 2: + min = primitive.aabb.minZ; + max = primitive.aabb.maxZ; + } + if(node.name_660 != null && min < node.coord && max > node.coord) + { + if(this.method_654(primitive,node.name_660.name_659)) + { + return true; + } + } + if(min < node.coord) + { + if(this.method_654(primitive,node.name_657)) + { + return true; + } + } + if(max > node.coord) + { + if(this.method_654(primitive,node.name_658)) + { + return true; + } + } + return false; + } + + private function method_658(origin:name_194, dir:name_194, collisionMask:int, maxTime:Number, filter:name_631, result:name_273) : Boolean + { + var tankPhysicsEntry:name_568 = null; + var body:name_271 = null; + var aabb:name_386 = null; + var collisionPrimitiveListItem:name_513 = null; + var primitive:name_235 = null; + var t:Number = NaN; + var xx:Number = origin.x + dir.x * maxTime; + var yy:Number = origin.y + dir.y * maxTime; + var zz:Number = origin.z + dir.z * maxTime; + if(xx < origin.x) + { + this._rayAABB.minX = xx; + this._rayAABB.maxX = origin.x; + } + else + { + this._rayAABB.minX = origin.x; + this._rayAABB.maxX = xx; + } + if(yy < origin.y) + { + this._rayAABB.minY = yy; + this._rayAABB.maxY = origin.y; + } + else + { + this._rayAABB.minY = origin.y; + this._rayAABB.maxY = yy; + } + if(zz < origin.z) + { + this._rayAABB.minZ = zz; + this._rayAABB.maxZ = origin.z; + } + else + { + this._rayAABB.minZ = origin.z; + this._rayAABB.maxZ = zz; + } + var minTime:Number = maxTime + 1; + for(var i:int = 0; i < this.var_593; i++) + { + tankPhysicsEntry = this.var_591[i]; + body = tankPhysicsEntry.body; + if(!(filter != null && !filter.name_664(body.collisionPrimitives.head.primitive))) + { + aabb = body.aabb; + if(!(this._rayAABB.maxX < aabb.minX || this._rayAABB.minX > aabb.maxX || this._rayAABB.maxY < aabb.minY || this._rayAABB.minY > aabb.maxY || this._rayAABB.maxZ < aabb.minZ || this._rayAABB.minZ > aabb.maxZ)) + { + for(collisionPrimitiveListItem = body.collisionPrimitives.head; collisionPrimitiveListItem != null; ) + { + primitive = collisionPrimitiveListItem.primitive; + if((primitive.collisionGroup & collisionMask) == 0) + { + collisionPrimitiveListItem = collisionPrimitiveListItem.next; + } + else + { + aabb = primitive.aabb; + if(this._rayAABB.maxX < aabb.minX || this._rayAABB.minX > aabb.maxX || this._rayAABB.maxY < aabb.minY || this._rayAABB.minY > aabb.maxY || this._rayAABB.maxZ < aabb.minZ || this._rayAABB.minZ > aabb.maxZ) + { + collisionPrimitiveListItem = collisionPrimitiveListItem.next; + } + else + { + t = primitive.raycast(origin,dir,this.threshold,this.var_594); + if(t > 0 && t < minTime) + { + minTime = t; + result.primitive = primitive; + result.normal.x = this.var_594.x; + result.normal.y = this.var_594.y; + result.normal.z = this.var_594.z; + } + collisionPrimitiveListItem = collisionPrimitiveListItem.next; + } + } + } + } + } + } + if(minTime > maxTime) + { + return false; + } + result.position.x = origin.x + dir.x * minTime; + result.position.y = origin.y + dir.y * minTime; + result.position.z = origin.z + dir.z * minTime; + result.t = minTime; + return true; + } + + private function method_662(origin:name_194, dir:name_194, bb:name_386, time:MinMax) : Boolean + { + var t1:Number = NaN; + var t2:Number = NaN; + time.min = -1; + time.max = 1e+308; + for(var i:int = 0; i < 3; i++) + { + switch(i) + { + case 0: + if(!(dir.x < this.threshold && dir.x > -this.threshold)) + { + t1 = (bb.minX - origin.x) / dir.x; + t2 = (bb.maxX - origin.x) / dir.x; + break; + } + if(origin.x < bb.minX || origin.x > bb.maxX) + { + return false; + } + continue; + case 1: + if(!(dir.y < this.threshold && dir.y > -this.threshold)) + { + t1 = (bb.minY - origin.y) / dir.y; + t2 = (bb.maxY - origin.y) / dir.y; + break; + } + if(origin.y < bb.minY || origin.y > bb.maxY) + { + return false; + } + continue; + case 2: + if(!(dir.z < this.threshold && dir.z > -this.threshold)) + { + t1 = (bb.minZ - origin.z) / dir.z; + t2 = (bb.maxZ - origin.z) / dir.z; + break; + } + if(origin.z < bb.minZ || origin.z > bb.maxZ) + { + return false; + } + continue; + } + if(t1 < t2) + { + if(t1 > time.min) + { + time.min = t1; + } + if(t2 < time.max) + { + time.max = t2; + } + } + else + { + if(t2 > time.min) + { + time.min = t2; + } + if(t1 < time.max) + { + time.max = t1; + } + } + if(time.max < time.min) + { + return false; + } + } + return true; + } + + private function method_652(node:name_656, origin:name_194, localOrigin:name_194, dir:name_194, collisionMask:int, t1:Number, t2:Number, filter:name_631, result:name_273) : Boolean + { + var splitTime:Number = NaN; + var currChildNode:name_656 = null; + var intersects:Boolean = false; + var splitNode:name_656 = null; + var i:int = 0; + var primitive:name_235 = null; + if(node.indices != null && this.method_660(origin,dir,collisionMask,this.var_592.name_661,node.indices,filter,result)) + { + return true; + } + if(node.axis == -1) + { + return false; + } + switch(node.axis) + { + case 0: + if(dir.x > -this.threshold && dir.x < this.threshold) + { + splitTime = t2 + 1; + } + else + { + splitTime = (node.coord - origin.x) / dir.x; + } + currChildNode = localOrigin.x < node.coord ? node.name_657 : node.name_658; + break; + case 1: + if(dir.y > -this.threshold && dir.y < this.threshold) + { + splitTime = t2 + 1; + } + else + { + splitTime = (node.coord - origin.y) / dir.y; + } + currChildNode = localOrigin.y < node.coord ? node.name_657 : node.name_658; + break; + case 2: + if(dir.z > -this.threshold && dir.z < this.threshold) + { + splitTime = t2 + 1; + } + else + { + splitTime = (node.coord - origin.z) / dir.z; + } + currChildNode = localOrigin.z < node.coord ? node.name_657 : node.name_658; + } + if(splitTime < t1 || splitTime > t2) + { + return this.method_652(currChildNode,origin,localOrigin,dir,collisionMask,t1,t2,filter,result); + } + intersects = this.method_652(currChildNode,origin,localOrigin,dir,collisionMask,t1,splitTime,filter,result); + if(intersects) + { + return true; + } + this.var_590.x = origin.x + splitTime * dir.x; + this.var_590.y = origin.y + splitTime * dir.y; + this.var_590.z = origin.z + splitTime * dir.z; + if(node.name_660 != null) + { + splitNode = node.name_660.name_659; + while(splitNode != null && splitNode.axis != -1) + { + switch(splitNode.axis) + { + case 0: + splitNode = this.var_590.x < splitNode.coord ? splitNode.name_657 : splitNode.name_658; + break; + case 1: + splitNode = this.var_590.y < splitNode.coord ? splitNode.name_657 : splitNode.name_658; + break; + case 2: + splitNode = this.var_590.z < splitNode.coord ? splitNode.name_657 : splitNode.name_658; + break; + } + } + if(splitNode != null && splitNode.indices != null) + { + for(i = splitNode.indices.length - 1; i >= 0; ) + { + primitive = this.var_592.name_661[splitNode.indices[i]]; + if((primitive.collisionGroup & collisionMask) != 0) + { + if(!(filter != null && !filter.name_664(primitive))) + { + result.t = primitive.raycast(origin,dir,this.threshold,result.normal); + if(result.t >= 0) + { + result.position.copy(this.var_590); + result.primitive = primitive; + return true; + } + } + } + i--; + } + } + } + return this.method_652(currChildNode == node.name_657 ? node.name_658 : node.name_657,origin,this.var_590,dir,collisionMask,splitTime,t2,filter,result); + } + + private function method_660(origin:name_194, dir:name_194, collisionMask:int, primitives:Vector., indices:Vector., filter:name_631, intersection:name_273) : Boolean + { + var primitive:name_235 = null; + var t:Number = NaN; + var pnum:int = int(indices.length); + var minTime:Number = 1e+308; + for(var i:int = 0; i < pnum; ) + { + primitive = primitives[indices[i]]; + if((primitive.collisionGroup & collisionMask) != 0) + { + if(!(filter != null && !filter.name_664(primitive))) + { + t = primitive.raycast(origin,dir,this.threshold,this.var_594); + if(t > 0 && t < minTime) + { + minTime = t; + intersection.primitive = primitive; + intersection.normal.x = this.var_594.x; + intersection.normal.y = this.var_594.y; + intersection.normal.z = this.var_594.z; + } + } + } + i++; + } + if(minTime == 1e+308) + { + return false; + } + intersection.position.x = origin.x + dir.x * minTime; + intersection.position.y = origin.y + dir.y * minTime; + intersection.position.z = origin.z + dir.z * minTime; + intersection.t = minTime; + return true; + } + + private function method_663(body1:name_271, body2:name_271, contact:name_630) : name_630 + { + return this.method_661(body1.collisionPrimitives,body2.collisionPrimitives,contact); + } + + private function method_661(primitives1:name_601, primitives2:name_601, contact:name_630) : name_630 + { + var item2:name_513 = null; + for(var item1:name_513 = primitives1.head; item1 != null; ) + { + for(item2 = primitives2.head; item2 != null; ) + { + if(this.getContact(item1.primitive,item2.primitive,contact)) + { + contact = contact.next; + } + item2 = item2.next; + } + item1 = item1.next; + } + return contact; + } + } +} + +class MinMax +{ + public var min:Number = 0; + + public var max:Number = 0; + + public function MinMax() + { + super(); + } +} diff --git a/src/package_86/name_468.as b/src/package_86/name_468.as new file mode 100644 index 0000000..eb3a600 --- /dev/null +++ b/src/package_86/name_468.as @@ -0,0 +1,17 @@ +package package_86 +{ + import package_46.name_194; + import package_76.name_256; + + public interface name_468 extends name_256 + { + function method_651(param1:name_194, param2:Number, param3:name_655) : Vector.; + + function name_591(param1:name_568) : void; + + function name_590(param1:name_568) : void; + + function name_470() : void; + } +} + diff --git a/src/package_86/name_484.as b/src/package_86/name_484.as new file mode 100644 index 0000000..72870db --- /dev/null +++ b/src/package_86/name_484.as @@ -0,0 +1,25 @@ +package package_86 +{ + import package_46.Matrix4; + import package_46.name_194; + + public class name_484 + { + public var hs:name_194; + + public var matrix:Matrix4; + + public function name_484(hs:name_194, matrix:Matrix4) + { + super(); + this.hs = hs; + this.matrix = matrix; + } + + public function toString() : String + { + return "BoxData(hs=" + this.hs + ", matrix=" + this.matrix + ")"; + } + } +} + diff --git a/src/package_86/name_500.as b/src/package_86/name_500.as new file mode 100644 index 0000000..d103874 --- /dev/null +++ b/src/package_86/name_500.as @@ -0,0 +1,18 @@ +package package_86 +{ + import package_109.name_377; + import package_46.Matrix4; + import package_46.name_194; + + public class name_500 extends name_377 + { + public var m:Matrix4; + + public function name_500(hs:name_194, localMatrix:Matrix4, collisionGroup:int, collisionMask:int) + { + super(hs,collisionGroup,collisionMask); + this.m = localMatrix.clone(); + } + } +} + diff --git a/src/package_86/name_540.as b/src/package_86/name_540.as new file mode 100644 index 0000000..01f5b5b --- /dev/null +++ b/src/package_86/name_540.as @@ -0,0 +1,23 @@ +package package_86 +{ + import package_76.name_235; + import package_76.name_631; + import package_92.name_271; + + public class name_540 implements name_631 + { + public var body:name_271; + + public function name_540(body:name_271 = null) + { + super(); + this.body = body; + } + + public function name_664(primitive:name_235) : Boolean + { + return this.body != primitive.body; + } + } +} + diff --git a/src/package_86/name_568.as b/src/package_86/name_568.as new file mode 100644 index 0000000..924dd07 --- /dev/null +++ b/src/package_86/name_568.as @@ -0,0 +1,23 @@ +package package_86 +{ + import package_76.name_235; + import package_92.name_271; + + public class name_568 + { + public var body:name_271; + + public var simplePrimitives:Vector.; + + public var detailedPrimitives:Vector.; + + public function name_568(body:name_271, simplePrimitives:Vector., detailedPrimitives:Vector.) + { + super(); + this.body = body; + this.simplePrimitives = simplePrimitives; + this.detailedPrimitives = detailedPrimitives; + } + } +} + diff --git a/src/package_86/name_654.as b/src/package_86/name_654.as new file mode 100644 index 0000000..ebfecd1 --- /dev/null +++ b/src/package_86/name_654.as @@ -0,0 +1,24 @@ +package package_86 +{ + import package_92.name_271; + + public class name_654 + { + public var body:name_271; + + public var distance:Number; + + public function name_654(body:name_271, distance:Number) + { + super(); + this.body = body; + this.distance = distance; + } + + public function toString() : String + { + return "[BodyDistance body=" + this.body + ", distance=" + this.distance + "]"; + } + } +} + diff --git a/src/package_86/name_655.as b/src/package_86/name_655.as new file mode 100644 index 0000000..cc8c04d --- /dev/null +++ b/src/package_86/name_655.as @@ -0,0 +1,11 @@ +package package_86 +{ + import package_46.name_194; + import package_92.name_271; + + public interface name_655 + { + function name_670(param1:name_194, param2:name_271) : Boolean; + } +} + diff --git a/src/package_87/name_267.as b/src/package_87/name_267.as new file mode 100644 index 0000000..d2890f2 --- /dev/null +++ b/src/package_87/name_267.as @@ -0,0 +1,45 @@ +package package_87 +{ + import package_74.name_327; + + public class name_267 implements name_327 + { + private var maximumDamageRadius:Number; + + private var minimumDamageRadius:Number; + + private var minimumDamageCoefficient:Number; + + public function name_267(maximumDamageRadius:Number, minimumDamageRadius:Number, minimumDamageCoefficient:Number) + { + super(); + this.maximumDamageRadius = maximumDamageRadius; + this.minimumDamageRadius = minimumDamageRadius; + this.minimumDamageCoefficient = minimumDamageCoefficient; + } + + public function name_554(distance:Number) : Number + { + if(distance <= this.maximumDamageRadius) + { + return 1; + } + if(distance > this.minimumDamageRadius) + { + return this.minimumDamageCoefficient; + } + return this.minimumDamageCoefficient + (1 - this.minimumDamageCoefficient) * (this.minimumDamageRadius - distance) / (this.minimumDamageRadius - this.maximumDamageRadius); + } + + public function method_467() : Number + { + return this.maximumDamageRadius; + } + + public function method_468() : Number + { + return this.minimumDamageRadius; + } + } +} + diff --git a/src/package_88/name_268.as b/src/package_88/name_268.as new file mode 100644 index 0000000..dc61a94 --- /dev/null +++ b/src/package_88/name_268.as @@ -0,0 +1,185 @@ +package package_88 +{ + import alternativa.engine3d.alternativa3d; + import flash.display.DisplayObjectContainer; + import flash.display.Sprite; + import flash.geom.Vector3D; + import package_18.name_44; + import package_18.name_85; + import package_18.name_90; + import package_21.name_78; + import package_26.class_18; + import package_26.name_402; + import package_45.name_182; + + use namespace alternativa3d; + + public class name_268 extends class_18 implements name_85 + { + private static var vector1:Vector3D = new Vector3D(); + + private static var vector2:Vector3D = new Vector3D(); + + private var messageLifeTime:int; + + private var var_435:Vector.; + + private var anchor:name_78; + + private var var_466:DisplayObjectContainer; + + private var var_467:Function; + + public function name_268(objectPool:name_402) + { + super(objectPool); + this.var_435 = new Vector.(); + this.var_466 = new Sprite(); + } + + public function init(messageLifeTime:int, anchor:name_78, destuctionCallback:Function) : void + { + this.messageLifeTime = messageLifeTime; + this.anchor = anchor; + this.var_467 = destuctionCallback; + } + + public function name_305(text:String, color:uint) : void + { + var message:Message = Message.create(); + message.color = color; + message.text = text; + message.lifeTime = 0; + this.var_435.push(message); + this.var_466.addChild(message); + } + + public function addedToRenderSystem(system:name_44) : void + { + system.method_41("debug_messages").addChild(this.var_466); + } + + public function play(camera:name_90) : Boolean + { + var i:int = 0; + var message:Message = null; + var timeDelta:int = name_182.timeDelta; + for(i = 0; i < this.var_435.length; ) + { + message = this.var_435[i]; + message.lifeTime += timeDelta; + if(message.lifeTime >= this.messageLifeTime) + { + message.destroy(); + this.var_435.shift(); + i--; + } + i++; + } + if(this.var_435.length == 0) + { + return false; + } + vector1.x = 0; + vector1.y = 0; + vector1.z = 0; + var vector2:Vector3D = camera.projectGlobal(this.anchor.localToGlobal(vector1)); + vector2.x -= camera.view.width / 2; + vector2.y -= camera.view.height / 2; + if(vector2.z > 0.01 && vector2.z > camera.nearClipping) + { + this.var_466.visible = true; + this.var_466.x = int(vector2.x); + this.var_466.y = int(vector2.y); + } + else + { + this.var_466.visible = false; + } + var messageY:int = 0; + for(i = this.var_435.length - 1; i >= 0; i--) + { + message = this.var_435[i]; + message.y = messageY; + message.x = -int(message.textWidth / 2); + messageY -= 20; + } + return true; + } + + public function destroy() : void + { + var message:Message = null; + var func:Function = null; + if(this.var_466.parent != null) + { + this.var_466.parent.removeChild(this.var_466); + } + for each(message in this.var_435) + { + message.destroy(); + } + this.var_435.length = 0; + if(this.var_467 != null) + { + func = this.var_467; + this.var_467 = null; + func.call(); + } + } + } +} + +import flash.display.DisplayObject; +import flash.display.InteractiveObject; +import flash.events.EventDispatcher; +import flash.text.TextField; +import flash.text.TextFieldAutoSize; +import flash.text.TextFormat; + +class Message extends TextField +{ + private static var poolSize:int; + + private static const DEFAULT_TEXT_FORMAT:TextFormat = new TextFormat("Tahoma",12); + + private static var pool:Vector. = new Vector.(); + + public var lifeTime:int; + + public function Message() + { + super(); + autoSize = TextFieldAutoSize.LEFT; + defaultTextFormat = DEFAULT_TEXT_FORMAT; + background = true; + backgroundColor = 0; + } + + public static function create() : Message + { + if(poolSize == 0) + { + return new Message(); + } + return pool[--poolSize]; + } + + public function set color(value:uint) : void + { + var textFormat:TextFormat = defaultTextFormat; + textFormat.color = value; + defaultTextFormat = textFormat; + } + + public function destroy() : void + { + if(parent != null) + { + parent.removeChild(this); + } + text = ""; + var _loc1_:* = poolSize++; + pool[_loc1_] = this; + } +} diff --git a/src/package_89/name_266.as b/src/package_89/name_266.as new file mode 100644 index 0000000..87120a3 --- /dev/null +++ b/src/package_89/name_266.as @@ -0,0 +1,221 @@ +package package_89 +{ + import alternativa.engine3d.alternativa3d; + import flash.display3D.Context3DBlendFactor; + import package_18.name_44; + import package_18.name_495; + import package_18.name_85; + import package_18.name_90; + import package_19.name_380; + import package_19.name_494; + import package_21.name_78; + import package_26.class_18; + import package_26.name_402; + import package_28.name_129; + import package_4.name_313; + import package_45.name_182; + import package_46.Matrix3; + import package_46.name_194; + import package_75.class_15; + + use namespace alternativa3d; + + public class name_266 extends class_18 implements name_85 + { + private static const BARREL_INDEX:int = 0; + + private static const EFFECT_DURATION:int = 50; + + private static const speed1:Number = 500; + + private static const speed2:Number = 1000; + + private static const speed3:Number = 1500; + + private static const trailSpeed1:Number = 1500; + + private static const trailSpeed2:Number = 2500; + + private static const trailSpeed3:Number = 1300; + + private static var muzzlePosition:name_194 = new name_194(); + + private static var gunDirection:name_194 = new name_194(); + + private static var axis:name_194 = new name_194(); + + private static var eulerAngles:name_194 = new name_194(); + + private static var trailMatrix:Matrix3 = new Matrix3(); + + private static var trailMatrix2:Matrix3 = new Matrix3(); + + private var turret:class_15; + + private var sprite1:name_494; + + private var sprite2:name_494; + + private var sprite3:name_494; + + private var var_427:name_495; + + private var var_428:name_313 = new name_313(16563726,0.1); + + private var trail1:Trail; + + private var trail2:Trail; + + private var trail3:Trail; + + private var distance1:Number = 40; + + private var distance2:Number = 75; + + private var distance3:Number = 80; + + private var trailDistance1:Number = 0; + + private var trailDistance2:Number = 0; + + private var trailDistance3:Number = 0; + + private var angle1:Number; + + private var angle2:Number; + + private var angle3:Number; + + private var timeToLive:int; + + public function name_266(objectPool:name_402) + { + super(objectPool); + this.var_427 = new name_495(); + this.var_427.var_21 = true; + this.var_427.blendModeSource = Context3DBlendFactor.ONE; + this.var_427.blendModeDestination = Context3DBlendFactor.ONE; + this.method_378(); + } + + public function init(turret:class_15, diffuse:name_129, opacity:name_129) : void + { + this.turret = turret; + } + + public function addedToRenderSystem(system:name_44) : void + { + var container:name_78 = system.method_62(); + container.addChild(this.sprite1); + container.addChild(this.sprite2); + container.addChild(this.sprite3); + } + + public function play(camera:name_90) : Boolean + { + if(this.timeToLive <= 0) + { + return false; + } + this.turret.getGunMuzzleData(BARREL_INDEX,muzzlePosition,gunDirection); + var dt:Number = name_182.timeDeltaSeconds; + this.timeToLive -= name_182.timeDelta; + return true; + } + + public function destroy() : void + { + this.sprite1.alternativa3d::removeFromParent(); + this.sprite2.alternativa3d::removeFromParent(); + this.sprite3.alternativa3d::removeFromParent(); + method_254(); + } + + private function method_378() : void + { + this.sprite1 = this.method_377(120); + this.sprite2 = this.method_377(99.75); + this.sprite3 = this.method_377(79.5); + } + + private function method_377(size:Number) : name_494 + { + var sprite:name_494 = new name_494(size,size); + sprite.rotation = 2 * Math.PI * Math.random(); + sprite.material = this.var_427; + return sprite; + } + + private function method_380(sprite:name_494, basePoint:name_194, direction:name_194, distance:Number) : void + { + sprite.x = basePoint.x + direction.x * distance; + sprite.y = basePoint.y + direction.y * distance; + sprite.z = basePoint.z + direction.z * distance; + } + + private function method_379(trail:name_380, angle:Number, basePoint:name_194, direction:name_194, distance:Number, dx:Number, dz:Number) : void + { + trailMatrix.method_344(name_194.Y_AXIS,angle); + if(direction.y < -0.99999 || direction.y > 0.99999) + { + axis.x = 0; + axis.y = 0; + axis.z = 1; + angle = direction.y < 0 ? Number(Math.PI) : 0; + } + else + { + axis.x = direction.z; + axis.y = 0; + axis.z = -direction.x; + axis.normalize(); + angle = Number(Math.acos(direction.y)); + } + trailMatrix2.method_344(axis,angle); + trailMatrix.append(trailMatrix2); + trailMatrix.name_341(eulerAngles); + trail.rotationX = eulerAngles.x; + trail.rotationY = eulerAngles.y; + trail.rotationZ = eulerAngles.z; + trail.x = basePoint.x + direction.x * distance + dx * trailMatrix.a + dz * trailMatrix.c; + trail.y = basePoint.y + direction.y * distance + dx * trailMatrix.e + dz * trailMatrix.g; + trail.z = basePoint.z + direction.z * distance + dx * trailMatrix.i + dz * trailMatrix.k; + } + } +} + +import package_19.name_380; +import package_21.name_126; +import package_21.name_78; +import package_28.name_119; +import package_4.class_4; + +class Trail extends name_380 +{ + private static var verts:Vector. = Vector.([0,0,0,0,0,0,0,0,0]); + + public function Trail(scale:Number, material:class_4) + { + super(); + var h:Number = 240 * scale; + verts[0] = -4; + verts[3] = 4; + verts[7] = h; + geometry = new name_119(); + var attributes:Array = []; + attributes[0] = name_126.POSITION; + attributes[1] = name_126.POSITION; + attributes[2] = name_126.POSITION; + geometry.addVertexStream(attributes); + geometry.numVertices = 3; + var values:Vector. = new Vector.(9); + for(var i:int = 0; i < 9; i++) + { + values[i] = verts[i]; + } + geometry.setAttributeValues(name_126.POSITION,values); + geometry.indices = Vector.([0,1,2]); + addSurface(material,0,1); + calculateBoundBox(); + } +} diff --git a/src/package_9/class_32.as b/src/package_9/class_32.as new file mode 100644 index 0000000..ee650f9 --- /dev/null +++ b/src/package_9/class_32.as @@ -0,0 +1,51 @@ +package package_9 +{ + import package_18.name_90; + import package_46.name_194; + + public class class_32 + { + protected var camera:name_90; + + public function class_32() + { + super(); + } + + protected function name_201(position:name_194) : void + { + this.camera.x = position.x; + this.camera.y = position.y; + this.camera.z = position.z; + } + + protected function name_352(eulerAngles:name_194) : void + { + this.camera.rotationX = eulerAngles.x; + this.camera.rotationY = eulerAngles.y; + this.camera.rotationZ = eulerAngles.z; + } + + protected function method_479(rx:Number, ry:Number, rz:Number) : void + { + this.camera.rotationX = rx; + this.camera.rotationY = ry; + this.camera.rotationZ = rz; + } + + protected function method_532(dx:Number, dy:Number, dz:Number) : void + { + this.camera.x += dx; + this.camera.y += dy; + this.camera.z += dz; + } + + protected function method_533(rx:Number, ry:Number, rz:Number) : void + { + this.camera.rotationX += rx; + this.camera.rotationY += ry; + this.camera.rotationZ += rz; + } + } +} + diff --git a/src/package_9/name_20.as b/src/package_9/name_20.as new file mode 100644 index 0000000..b5213c6 --- /dev/null +++ b/src/package_9/name_20.as @@ -0,0 +1,206 @@ +package package_9 +{ + import flash.geom.Vector3D; + import package_10.name_195; + import package_10.name_54; + import package_15.name_191; + import package_18.name_102; + import package_18.name_90; + import package_21.name_78; + import package_22.name_87; + import package_45.name_182; + import package_46.Matrix3; + import package_46.Matrix4; + import package_46.name_194; + import package_47.name_193; + + public class name_20 implements name_102 + { + public static var smoothing:Number = 20; + + public static var targeted:Boolean = false; + + private static const KEY_FORWARD:int = name_191.W; + + private static const KEY_BACK:int = name_191.S; + + private static const KEY_LEFT:int = name_191.A; + + private static const KEY_RIGHT:int = name_191.D; + + private static const KEY_UP:int = name_191.E; + + private static const KEY_DOWN:int = name_191.C; + + private static const KEY_SPEED:int = name_191.SHIFT; + + private static var matrix:Matrix3 = new Matrix3(); + + private static var vector:name_194 = new name_194(); + + public var var_50:Number = 0.01; + + public var var_48:Number = 0.01; + + public var speed:Number = 500; + + public var var_49:Number = 3; + + private var var_47:Number = 0; + + private var var_46:Number = 0; + + private var currentPosition:Vector3D = new Vector3D(); + + private var input:name_87; + + private var controller:name_195; + + private var target:name_78; + + private var parentMatrix:Matrix4 = new Matrix4(); + + private var var_45:Matrix4 = new Matrix4(); + + public function name_20(camera:name_90, input:name_87) + { + super(); + this.input = input; + this.controller = new name_195(); + this.controller.object = camera; + this.var_46 = camera.rotationX; + this.var_47 = camera.rotationZ; + this.currentPosition.x = camera.x; + this.currentPosition.y = camera.y; + this.currentPosition.z = camera.z; + } + + public function name_108() : void + { + var object:name_78 = this.controller.object; + this.var_46 = object.rotationX; + this.var_47 = object.rotationZ; + this.currentPosition.x = object.x; + this.currentPosition.y = object.y; + this.currentPosition.z = object.z; + } + + public function name_75(x:Number, y:Number, z:Number) : void + { + this.controller.name_201(x,y,z); + this.currentPosition.x = this.controller.object.x; + this.currentPosition.y = this.controller.object.y; + this.currentPosition.z = this.controller.object.z; + } + + public function name_76(x:Number, y:Number, z:Number) : void + { + this.controller.name_76(x,y,z); + this.var_46 = this.controller.object.rotationX; + this.var_47 = this.controller.object.rotationZ; + } + + public function method_115(value:name_54) : void + { + if(value == null) + { + this.target = null; + } + else + { + this.target = name_193(value.getComponentStrict(name_193)).name_198; + } + } + + public function update() : void + { + var dx:Number = NaN; + var dy:Number = NaN; + var dz:Number = NaN; + var k:Number = NaN; + var yaw:Number = NaN; + var pitch:Number = NaN; + var timeDelta:Number = name_182.timeDeltaSeconds; + if(smoothing > 0) + { + k = 100 / smoothing * timeDelta; + k = k > 1 ? 1 : k; + } + if(this.input.name_199()) + { + yaw = -this.input.name_197() * this.var_50; + pitch = -this.input.name_200() * this.var_48; + this.var_47 += yaw; + this.var_46 += pitch; + } + var object:name_78 = this.controller.object; + var drX:Number = this.var_46 - object.rotationX; + var drZ:Number = this.var_47 - object.rotationZ; + if(drX != 0 || drZ != 0) + { + if(smoothing > 0) + { + drX *= k; + drZ *= k; + } + object.rotationX += drX; + object.rotationZ += drZ; + } + vector.x = this.input.name_192(KEY_RIGHT) - this.input.name_192(KEY_LEFT); + vector.y = this.input.name_192(KEY_DOWN) - this.input.name_192(KEY_UP); + vector.z = this.input.name_192(KEY_FORWARD) - this.input.name_192(KEY_BACK); + var moved:Boolean = vector.x != 0 || vector.y != 0 || vector.z != 0; + if(moved) + { + vector.normalize(); + vector.scale(this.speed * timeDelta * (1 + this.input.name_192(KEY_SPEED) * (this.var_49 - 1))); + } + matrix.name_196(object.rotationX,object.rotationY,object.rotationZ); + vector.reset(vector.x,vector.y,vector.z); + vector.transform3(matrix); + this.currentPosition.x += vector.x; + this.currentPosition.y += vector.y; + this.currentPosition.z += vector.z; + vector.reset(); + dx = this.currentPosition.x - object.x; + dy = this.currentPosition.y - object.y; + dz = this.currentPosition.z - object.z; + if(smoothing > 0) + { + object.x += dx * k; + object.y += dy * k; + object.z += dz * k; + } + else + { + object.x += dx; + object.y += dy; + object.z += dz; + } + if(targeted && this.target != null) + { + this.method_114(); + dx = this.var_45.d - object.x; + dy = this.var_45.h - object.y; + dz = this.var_45.l - object.z; + object.rotationX = Math.atan2(dz,Math.sqrt(dx * dx + dy * dy)) - 0.5 * Math.PI; + object.rotationY = 0; + object.rotationZ = -Math.atan2(dx,dy); + } + } + + private function method_114() : void + { + this.method_113(this.target.parent,this.parentMatrix); + this.method_113(this.target,this.var_45); + this.var_45.append(this.parentMatrix); + } + + private function method_113(object:name_78, matrix:Matrix4) : void + { + matrix.name_196(object.rotationX,object.rotationY,object.rotationZ); + matrix.name_75(object.x,object.y,object.z); + } + } +} + diff --git a/src/package_9/name_23.as b/src/package_9/name_23.as new file mode 100644 index 0000000..53db891 --- /dev/null +++ b/src/package_9/name_23.as @@ -0,0 +1,46 @@ +package package_9 +{ + import flash.display.Shape; + import package_18.name_90; + + public class name_23 extends Shape + { + private var var_32:int; + + private var axis:Vector. = Vector.([0,0,0,0,0,0]); + + public function name_23(size:int) + { + super(); + this.var_32 = size; + } + + public function update(camera:name_90) : void + { + var kx:Number = NaN; + var ky:Number = NaN; + graphics.clear(); + this.axis[0] = camera.xAxis.x; + this.axis[1] = camera.yAxis.x; + this.axis[2] = camera.xAxis.y; + this.axis[3] = camera.yAxis.y; + this.axis[4] = camera.xAxis.z; + this.axis[5] = camera.yAxis.z; + var halfSize:int = this.var_32 / 2; + for(var i:int = 0,var bitOffset:int = 16; i < 6; i += 2,bitOffset -= 8) + { + kx = this.axis[i] + 1; + ky = this.axis[int(i + 1)] + 1; + graphics.lineStyle(0,255 << bitOffset); + graphics.moveTo(halfSize,halfSize); + graphics.lineTo(halfSize * kx,halfSize * ky); + } + } + + public function get size() : int + { + return this.var_32; + } + } +} + diff --git a/src/package_9/name_298.as b/src/package_9/name_298.as new file mode 100644 index 0000000..9f34cb8 --- /dev/null +++ b/src/package_9/name_298.as @@ -0,0 +1,443 @@ +package package_9 +{ + import flash.ui.Keyboard; + import flash.utils.getTimer; + import package_1.name_1; + import package_1.name_12; + import package_10.name_54; + import package_18.name_102; + import package_18.name_90; + import package_19.name_380; + import package_21.name_78; + import package_22.name_87; + import package_27.name_501; + import package_45.name_182; + import package_46.Matrix3; + import package_46.Matrix4; + import package_46.name_194; + import package_47.name_193; + import package_76.name_256; + import package_90.name_273; + + public class name_298 extends class_32 implements name_102 + { + private static var parentMatrix:Matrix4 = new Matrix4(); + + private static var matrix:Matrix4 = new Matrix4(); + + private static var maxPositionError:Number = 10; + + private static var maxAngleError:Number = Math.PI / 180; + + private static var camSpeedThreshold:Number = 10; + + private static var fixedPitch:name_1 = new name_1("cam_fixedpitch",10 * Math.PI / 180,-1,1); + + private static var noPitchCorrection:name_12 = new name_12("cam_nopitchcorrection",1,0,1); + + private static var pitchCorrectionCoeff:name_1 = new name_1("cam_pitchcorrectioncoeff",1,0,10); + + private static var reboundDelay:name_12 = new name_12("cam_rebound",1000,0,2000); + + private static var elevationAngles:Vector. = new Vector.(1,true); + + private static var rotationMatrix:Matrix3 = new Matrix3(); + + private static var axis:name_194 = new name_194(); + + private static var rayDirection:name_194 = new name_194(); + + private static const MIN_CAMERA_ANGLE:Number = 5 * Math.PI / 180; + + private static const KEY_CAMERA_UP:uint = Keyboard.PAGE_UP; + + private static const KEY_CAMERA_DOWN:uint = Keyboard.PAGE_DOWN; + + private static const HEIGHT_CHANGE_STEP:Number = 50; + + private static const MIN_HEIGHT:Number = 150; + + private static const MAX_HEIGHT:Number = 3100; + + private static const MIN_DISTANCE:Number = 300; + + private static const COLLISION_OFFSET:Number = 100; + + private static const targetOffset:name_194 = new name_194(0,0,50); + + private static var currentPosition:name_194 = new name_194(); + + private static var currentRotation:name_194 = new name_194(); + + private static var rayOrigin:name_194 = new name_194(); + + private static var flatDirection:name_194 = new name_194(); + + private static var positionDelta:name_194 = new name_194(); + + private static var rayHit:name_273 = new name_273(); + + private var collisionDetector:name_256; + + private var collisionMask:int; + + private var var_510:Number = 0; + + private var var_511:Number = 0; + + private var locked:Boolean; + + private var position:name_194 = new name_194(); + + private var rotation:name_194 = new name_194(); + + private var targetPosition:name_194 = new name_194(); + + private var targetDirection:name_194 = new name_194(); + + private var var_526:Number = 0; + + private var var_525:Number = 0; + + private var var_527:Number = 0; + + private var var_518:Number = 10000000; + + private var var_522:int; + + private var cameraPositionData:CameraPositionData = new CameraPositionData(); + + private var var_521:Number; + + private var input:name_87; + + private var var_515:name_380; + + private var var_514:Number = 0; + + private var var_513:Number = 0; + + private var var_516:Number = 1000; + + private var var_519:Number = 0; + + private var var_520:Number = 0; + + private var var_517:Number = 1000; + + public var smoothing:Number = 40; + + private var angles:name_194 = new name_194(); + + private var var_512:name_194 = new name_194(); + + private var rotationMatrix:Matrix4 = new Matrix4(); + + private var var_524:Matrix4 = new Matrix4(); + + private var var_523:name_194 = new name_194(); + + public function name_298(camera:name_90, collisionDetector:name_256, collisionMask:int, input:name_87) + { + super(); + this.camera = camera; + if(collisionDetector == null) + { + throw new ArgumentError("Parameter collisionDetector cannot be null"); + } + this.collisionDetector = collisionDetector; + this.collisionMask = collisionMask; + this.input = input; + this.method_534 = 600; + } + + public function name_108() : void + { + } + + public function method_115(target:name_54) : void + { + if(target == null) + { + this.var_515 = null; + } + else + { + this.var_515 = name_193(target.getComponentStrict(name_193)).name_198; + } + } + + public function update() : void + { + if(this.var_515 == null) + { + throw new Error("Target is not set"); + } + if(camera == null) + { + throw new Error("Camera is not set"); + } + var dt:Number = name_182.timeDeltaSeconds; + if(dt > 0.1) + { + dt = 0.1; + } + this.method_114(); + matrix.method_353(targetOffset,this.var_512); + var distanceChangeDir:int = this.input.name_192(KEY_CAMERA_UP) - this.input.name_192(KEY_CAMERA_DOWN) - this.input.method_261(); + if(distanceChangeDir != 0) + { + this.var_517 *= Math.pow(10,distanceChangeDir * 0.02); + } + if(this.input.name_199()) + { + this.var_519 -= this.input.name_200() * 0.01; + this.var_520 -= this.input.name_197() * 0.01; + } + var k:Number = 1; + if(this.smoothing > 0) + { + k = 100 / this.smoothing * dt; + k = k > 1 ? 1 : k; + this.var_514 += (this.var_519 - this.var_514) * k; + this.var_513 += (this.var_520 - this.var_513) * k; + } + else + { + this.var_514 = this.var_519; + this.var_513 = this.var_520; + } + this.rotationMatrix.name_196(this.var_514,0,this.var_513); + this.rotationMatrix.name_75(matrix.d,matrix.h,matrix.l); + matrix.getAxis(3,rayOrigin); + this.rotationMatrix.method_345(name_194.Y_AXIS,rayDirection); + rayDirection.reverse(); + var distance:Number = this.var_517; + if(this.collisionDetector.raycast(rayOrigin,rayDirection,this.collisionMask,distance,null,rayHit)) + { + distance = rayHit.t - COLLISION_OFFSET; + } + if(distanceChangeDir != 0) + { + this.var_517 = distance; + } + if(this.smoothing > 0) + { + this.var_516 += (distance - this.var_516) * k; + } + else + { + this.var_516 = distance; + } + this.position.x = 0; + this.position.y = -this.var_516; + this.position.z = 0; + this.rotationMatrix.method_353(this.position,currentPosition); + camera.x = currentPosition.x; + camera.y = currentPosition.y; + camera.z = currentPosition.z; + var dx:Number = this.var_512.x - camera.x; + var dy:Number = this.var_512.y - camera.y; + var dz:Number = this.var_512.z - camera.z; + camera.rotationX = Math.atan2(dz,Math.sqrt(dx * dx + dy * dy)) - 0.5 * Math.PI; + camera.rotationY = 0; + camera.rotationZ = -Math.atan2(dx,dy); + } + + private function set method_534(value:Number) : void + { + this.var_510 = name_501.clamp(value,MIN_HEIGHT,MAX_HEIGHT); + var d:Number = this.method_535(this.var_510); + this.var_521 = Math.atan2(this.var_510,d); + this.var_511 = Math.sqrt(this.var_510 * this.var_510 + d * d); + this.var_522 = 0; + } + + private function method_540(targetPosition:name_194, targetDirection:name_194, useReboundDelay:Boolean, dt:Number, result:CameraPositionData) : void + { + var angle:Number = NaN; + var now:int = 0; + var delta:Number = NaN; + var actualElevation:Number = this.var_521; + var xyLength:Number = Number(Math.sqrt(targetDirection.x * targetDirection.x + targetDirection.y * targetDirection.y)); + if(xyLength < 0.00001) + { + flatDirection.x = 1; + flatDirection.y = 0; + } + else + { + flatDirection.x = targetDirection.x / xyLength; + flatDirection.y = targetDirection.y / xyLength; + } + result.extraPitch = 0; + result.t = 1; + var minCollisionDistance:Number = this.var_511; + rayOrigin.copy(targetPosition); + elevationAngles[0] = actualElevation; + axis.x = flatDirection.y; + axis.y = -flatDirection.x; + flatDirection.reverse(); + for each(angle in elevationAngles) + { + this.rotationMatrix.method_344(axis,-angle); + this.rotationMatrix.method_345(flatDirection,rayDirection); + minCollisionDistance = this.method_536(rayOrigin,rayDirection,this.var_511,minCollisionDistance); + } + if(useReboundDelay) + { + now = int(getTimer()); + if(minCollisionDistance <= this.var_518 + 0.001) + { + this.var_518 = minCollisionDistance; + this.var_522 = now; + } + else if(now - this.var_522 < reboundDelay.value) + { + minCollisionDistance = this.var_518; + } + else + { + this.var_518 = minCollisionDistance; + } + } + if(minCollisionDistance < this.var_511) + { + result.t = minCollisionDistance / this.var_511; + if(minCollisionDistance < MIN_DISTANCE) + { + rayOrigin.method_362(minCollisionDistance,rayDirection); + delta = MIN_DISTANCE - minCollisionDistance; + if(this.collisionDetector.raycast(rayOrigin,name_194.Z_AXIS,this.collisionMask,delta,null,rayHit)) + { + delta = rayHit.t - 10; + if(delta < 0) + { + delta = 0; + } + } + result.position.copy(rayOrigin).method_362(delta,name_194.Z_AXIS); + } + else + { + result.position.copy(rayOrigin).method_362(minCollisionDistance,rayDirection); + } + } + else + { + result.position.copy(rayOrigin).method_362(this.var_511,rayDirection); + } + } + + private function method_536(rayOrigin:name_194, rayDirection:name_194, rayLength:Number, minCollisionDistance:Number) : Number + { + var distance:Number = NaN; + if(this.collisionDetector.raycast(rayOrigin,rayDirection,this.collisionMask,rayLength,null,rayHit)) + { + distance = rayHit.t; + if(distance < COLLISION_OFFSET) + { + distance = 0; + } + else + { + distance -= COLLISION_OFFSET; + } + if(distance < minCollisionDistance) + { + return distance; + } + } + return minCollisionDistance; + } + + private function method_114() : void + { + this.method_113(this.var_515.parent,parentMatrix); + this.method_113(this.var_515,matrix); + matrix.append(parentMatrix); + matrix.getAxis(3,this.targetPosition); + this.targetDirection.reset(matrix.b,matrix.f,matrix.j); + } + + private function method_113(object:name_78, matrix:Matrix4) : void + { + matrix.name_196(object.rotationX,object.rotationY,object.rotationZ); + matrix.name_75(object.x,object.y,object.z); + } + + private function method_538() : void + { + var heightChangeDir:int = this.input.name_192(KEY_CAMERA_UP) - this.input.name_192(KEY_CAMERA_DOWN); + if(heightChangeDir != 0) + { + this.method_534 = this.var_510 + heightChangeDir * HEIGHT_CHANGE_STEP; + } + } + + private function method_535(h:Number) : Number + { + var v:Number = 200 - 1750; + var k:Number = (1300 - 600) / (v * v); + return -k * (h - 1750) * (h - 1750) + 1300; + } + + private function method_539(positionError:Number) : Number + { + return 3 * positionError; + } + + private function method_537(angleError:Number, currentSpeed:Number) : Number + { + if(angleError < -maxAngleError) + { + return 3 * (angleError + maxAngleError); + } + if(angleError > maxAngleError) + { + return 3 * (angleError - maxAngleError); + } + return currentSpeed; + } + + private function method_541(value:Number, snapValue:Number, epsilon:Number) : Number + { + if(value > snapValue - epsilon && value < snapValue + epsilon) + { + return snapValue; + } + return value; + } + + private function method_542(cameraPositionData:CameraPositionData) : Number + { + var angle:Number = this.var_521 - fixedPitch.value; + if(angle < 0) + { + angle = 0; + } + var t:Number = cameraPositionData.t; + if(t >= 1 || angle < MIN_CAMERA_ANGLE || noPitchCorrection.value == 1) + { + return cameraPositionData.extraPitch - angle; + } + return cameraPositionData.extraPitch - Math.atan2(t * this.var_510,pitchCorrectionCoeff.value * this.var_510 * (1 / Math.tan(angle) - (1 - t) / Math.tan(this.var_521))); + } + } +} + +import package_46.name_194; + +class CameraPositionData +{ + public var t:Number; + + public var extraPitch:Number; + + public var position:name_194 = new name_194(); + + public function CameraPositionData() + { + super(); + } +} diff --git a/src/package_9/name_299.as b/src/package_9/name_299.as new file mode 100644 index 0000000..67d798d --- /dev/null +++ b/src/package_9/name_299.as @@ -0,0 +1,473 @@ +package package_9 +{ + import flash.ui.Keyboard; + import flash.utils.getTimer; + import package_1.name_1; + import package_1.name_12; + import package_10.name_54; + import package_18.name_102; + import package_18.name_90; + import package_19.name_380; + import package_21.name_78; + import package_22.name_87; + import package_27.name_501; + import package_45.name_182; + import package_46.Matrix3; + import package_46.Matrix4; + import package_46.name_194; + import package_47.name_193; + import package_76.name_256; + import package_90.name_273; + + public class name_299 extends class_32 implements name_102 + { + private static var parentMatrix:Matrix4 = new Matrix4(); + + private static var matrix:Matrix4 = new Matrix4(); + + public static var maxPositionError:Number = 10; + + public static var maxAngleError:Number = Math.PI / 180; + + public static var camSpeedThreshold:Number = 10; + + private static var fixedPitch:name_1 = new name_1("cam_fixedpitch",10 * Math.PI / 180,-1,1); + + private static var noPitchCorrection:name_12 = new name_12("cam_nopitchcorrection",1,0,1); + + private static var pitchCorrectionCoeff:name_1 = new name_1("cam_pitchcorrectioncoeff",1,0,10); + + private static var reboundDelay:name_12 = new name_12("cam_rebound",1000,0,2000); + + private static var elevationAngles:Vector. = new Vector.(1,true); + + private static var rotationMatrix:Matrix3 = new Matrix3(); + + private static var axis:name_194 = new name_194(); + + private static var rayDirection:name_194 = new name_194(); + + private static const MIN_CAMERA_ANGLE:Number = 5 * Math.PI / 180; + + private static const KEY_CAMERA_UP:uint = Keyboard.PAGE_UP; + + private static const ALT_KEY_CAMERA_UP:uint = 221; + + private static const KEY_CAMERA_DOWN:uint = Keyboard.PAGE_DOWN; + + private static const ALT_KEY_CAMERA_DOWN:uint = 219; + + private static const HEIGHT_CHANGE_STEP:Number = 50; + + private static const MIN_HEIGHT:Number = 150; + + private static const MAX_HEIGHT:Number = 3100; + + private static const MIN_DISTANCE:Number = 300; + + private static const COLLISION_OFFSET:Number = 50; + + private static var currentPosition:name_194 = new name_194(); + + private static var currentRotation:name_194 = new name_194(); + + private static var rayOrigin:name_194 = new name_194(); + + private static var flatDirection:name_194 = new name_194(); + + private static var positionDelta:name_194 = new name_194(); + + private static var rayHit:name_273 = new name_273(); + + private var collisionDetector:name_256; + + private var collisionMask:int; + + private var var_510:Number = 0; + + private var var_511:Number = 0; + + private var locked:Boolean; + + private var position:name_194 = new name_194(); + + private var rotation:name_194 = new name_194(); + + private var targetPosition:name_194 = new name_194(); + + private var targetDirection:name_194 = new name_194(); + + private var var_526:Number = 0; + + private var var_525:Number = 0; + + private var var_527:Number = 0; + + private var var_518:Number = 10000000; + + private var var_522:int; + + private var cameraPositionData:CameraPositionData = new CameraPositionData(); + + private var var_521:Number; + + private var var_528:Number = 0; + + private var input:name_87; + + private var var_515:name_380; + + public function name_299(camera:name_90, collisionDetector:name_256, collisionMask:int, input:name_87) + { + super(); + this.camera = camera; + if(collisionDetector == null) + { + throw new ArgumentError("Parameter collisionDetector cannot be null"); + } + this.collisionDetector = collisionDetector; + this.collisionMask = collisionMask; + this.input = input; + this.method_534 = 600; + } + + public function name_108() : void + { + } + + public function method_115(target:name_54) : void + { + if(target == null) + { + this.var_515 = null; + } + else + { + this.var_515 = name_193(target.getComponentStrict(name_193)).name_198; + } + } + + public function method_545() : void + { + noPitchCorrection.value = 1; + } + + public function method_544() : void + { + noPitchCorrection.value = 0; + } + + public function method_548(targetPosition:name_194, targetDirection:name_194) : void + { + this.targetPosition.copy(targetPosition); + this.targetDirection.copy(targetDirection); + this.var_522 = 0; + this.method_540(targetPosition,targetDirection,false,10000,this.cameraPositionData); + this.position.copy(this.cameraPositionData.position); + this.rotation.x = this.method_542(this.cameraPositionData) - 0.5 * Math.PI; + this.rotation.z = Math.atan2(-targetDirection.x,targetDirection.y); + name_201(this.position); + name_352(this.rotation); + } + + public function method_549() : void + { + this.position.reset(camera.x,camera.y,camera.z); + this.rotation.reset(camera.rotationX,camera.rotationY,camera.rotationZ); + } + + public function update() : void + { + if(this.var_515 == null) + { + throw new Error("Target is not set"); + } + if(camera == null) + { + throw new Error("Camera is not set"); + } + var dt:Number = name_182.timeDeltaSeconds; + if(dt > 0.1) + { + dt = 0.1; + } + this.method_538(); + if(!this.locked) + { + this.method_114(); + } + this.method_540(this.targetPosition,this.targetDirection,true,dt,this.cameraPositionData); + positionDelta.method_366(this.cameraPositionData.position,this.position); + var positionError:Number = positionDelta.length(); + if(positionError > maxPositionError) + { + this.var_526 = this.method_539(positionError - maxPositionError); + } + var distance:Number = this.var_526 * dt; + if(distance > positionError) + { + distance = positionError; + } + positionDelta.normalize().scale(distance); + var targetPitchAngle:Number = this.method_542(this.cameraPositionData); + var targetYawAngle:Number = Number(Math.atan2(-this.targetDirection.x,this.targetDirection.y)); + var currentPitchAngle:Number = name_501.name_506(this.rotation.x + 0.5 * Math.PI); + var currentYawAngle:Number = name_501.name_506(this.rotation.z); + var pitchError:Number = name_501.name_628(targetPitchAngle - currentPitchAngle); + this.var_525 = this.method_537(pitchError,this.var_525); + var deltaPitch:Number = this.var_525 * dt; + if(pitchError > 0 && deltaPitch > pitchError || pitchError < 0 && deltaPitch < pitchError) + { + deltaPitch = pitchError; + } + var yawError:Number = name_501.name_628(targetYawAngle - currentYawAngle); + this.var_527 = this.method_537(yawError,this.var_527); + var deltaYaw:Number = this.var_527 * dt; + if(yawError > 0 && deltaYaw > yawError || yawError < 0 && deltaYaw < yawError) + { + deltaYaw = yawError; + } + this.var_526 = this.method_541(this.var_526,0,camSpeedThreshold); + this.var_525 = this.method_541(this.var_525,0,camSpeedThreshold); + this.var_527 = this.method_541(this.var_527,0,camSpeedThreshold); + this.position.add(positionDelta); + this.rotation.x += deltaPitch; + this.rotation.z += deltaYaw; + currentPosition.copy(this.position); + currentRotation.copy(this.rotation); + name_201(currentPosition); + name_352(currentRotation); + } + + public function method_550(locked:Boolean) : void + { + this.locked = locked; + } + + public function get method_534() : Number + { + return this.var_510; + } + + public function set method_534(value:Number) : void + { + this.var_510 = name_501.clamp(value,MIN_HEIGHT,MAX_HEIGHT); + var d:Number = this.method_535(this.var_510); + this.var_521 = Math.atan2(this.var_510,d); + this.var_511 = Math.sqrt(this.var_510 * this.var_510 + d * d); + this.var_522 = 0; + } + + public function method_546(targetPosition:name_194, targetDirection:name_194, resultingPosition:name_194, resultingAngles:name_194) : void + { + this.method_540(targetPosition,targetDirection,false,10000,this.cameraPositionData); + resultingAngles.x = this.method_542(this.cameraPositionData) - 0.5 * Math.PI; + resultingAngles.z = Math.atan2(-targetDirection.x,targetDirection.y); + resultingPosition.copy(this.cameraPositionData.position); + } + + private function method_540(targetPosition:name_194, targetDirection:name_194, useReboundDelay:Boolean, dt:Number, result:CameraPositionData) : void + { + var angle:Number = NaN; + var now:int = 0; + var delta:Number = NaN; + var actualElevation:Number = this.var_521; + var xyLength:Number = Number(Math.sqrt(targetDirection.x * targetDirection.x + targetDirection.y * targetDirection.y)); + if(xyLength < 0.00001) + { + flatDirection.x = 1; + flatDirection.y = 0; + } + else + { + flatDirection.x = targetDirection.x / xyLength; + flatDirection.y = targetDirection.y / xyLength; + } + result.extraPitch = 0; + result.t = 1; + var minCollisionDistance:Number = this.var_511; + rayOrigin.copy(targetPosition); + elevationAngles[0] = actualElevation; + axis.x = flatDirection.y; + axis.y = -flatDirection.x; + flatDirection.reverse(); + for each(angle in elevationAngles) + { + rotationMatrix.method_344(axis,-angle); + rotationMatrix.method_345(flatDirection,rayDirection); + minCollisionDistance = this.method_543(rayOrigin,rayDirection,this.var_511,minCollisionDistance); + } + if(useReboundDelay) + { + now = int(getTimer()); + if(minCollisionDistance <= this.var_518 + 0.001) + { + this.var_518 = minCollisionDistance; + this.var_522 = now; + } + else if(now - this.var_522 < reboundDelay.value) + { + minCollisionDistance = this.var_518; + } + else + { + this.var_518 = minCollisionDistance; + } + } + if(minCollisionDistance < this.var_511) + { + result.t = minCollisionDistance / this.var_511; + if(minCollisionDistance < MIN_DISTANCE) + { + rayOrigin.method_362(minCollisionDistance,rayDirection); + delta = MIN_DISTANCE - minCollisionDistance; + if(this.collisionDetector.raycast(rayOrigin,name_194.Z_AXIS,this.collisionMask,delta,null,rayHit)) + { + delta = rayHit.t - 10; + if(delta < 0) + { + delta = 0; + } + } + result.position.copy(rayOrigin).method_362(delta,name_194.Z_AXIS); + } + else + { + result.position.copy(rayOrigin).method_362(minCollisionDistance,rayDirection); + } + } + else + { + result.position.copy(rayOrigin).method_362(this.var_511,rayDirection); + } + } + + private function method_543(rayOrigin:name_194, rayDirection:name_194, rayLength:Number, minCollisionDistance:Number) : Number + { + var distance:Number = NaN; + if(this.collisionDetector.raycast(rayOrigin,rayDirection,this.collisionMask,rayLength,null,rayHit)) + { + distance = rayHit.t; + if(distance < COLLISION_OFFSET) + { + distance = 0; + } + else + { + distance -= COLLISION_OFFSET; + } + if(distance < minCollisionDistance) + { + return distance; + } + } + return minCollisionDistance; + } + + private function method_114() : void + { + this.setMatrix(this.var_515.parent,parentMatrix); + this.setMatrix(this.var_515,matrix); + matrix.append(parentMatrix); + matrix.getAxis(3,this.targetPosition); + this.targetDirection.reset(matrix.b,matrix.f,matrix.j); + } + + private function setMatrix(object:name_78, matrix:Matrix4) : void + { + matrix.name_196(object.rotationX,object.rotationY,object.rotationZ); + matrix.name_75(object.x,object.y,object.z); + } + + private function method_538() : void + { + var heightChangeDir:int = this.input.name_192(KEY_CAMERA_UP) - this.input.name_192(KEY_CAMERA_DOWN); + if(heightChangeDir != 0) + { + this.method_534 = this.var_510 + heightChangeDir * HEIGHT_CHANGE_STEP; + } + } + + private function method_535(h:Number) : Number + { + var hMid:Number = 0.5 * (3300 + 200); + var a:Number = hMid; + var v:Number = 200 - hMid; + var k:Number = (1300 - 600) / (v * v); + return -k * (h - a) * (h - a) + 1300; + } + + private function method_539(positionError:Number) : Number + { + return 3 * positionError; + } + + private function method_537(angleError:Number, currentSpeed:Number) : Number + { + if(angleError < -maxAngleError) + { + return 3 * (angleError + maxAngleError); + } + if(angleError > maxAngleError) + { + return 3 * (angleError - maxAngleError); + } + return currentSpeed; + } + + private function method_541(value:Number, snapValue:Number, epsilon:Number) : Number + { + if(value > snapValue - epsilon && value < snapValue + epsilon) + { + return snapValue; + } + return value; + } + + private function method_542(cameraPositionData:CameraPositionData) : Number + { + var angle:Number = this.var_521 - fixedPitch.value; + if(angle < 0) + { + angle = 0; + } + var t:Number = cameraPositionData.t; + if(t >= 1 || angle < MIN_CAMERA_ANGLE || noPitchCorrection.value == 1) + { + return cameraPositionData.extraPitch - angle; + } + return cameraPositionData.extraPitch - Math.atan2(t * this.var_510,pitchCorrectionCoeff.value * this.var_510 * (1 / Math.tan(angle) - (1 - t) / Math.tan(this.var_521))); + } + + private function method_547(value:Number, targetValue:Number, delta:Number) : Number + { + if(value < targetValue) + { + value += delta; + return value > targetValue ? targetValue : value; + } + if(value > targetValue) + { + value -= delta; + return value < targetValue ? targetValue : value; + } + return value; + } + } +} + +import package_46.name_194; + +class CameraPositionData +{ + public var t:Number; + + public var extraPitch:Number; + + public var position:name_194 = new name_194(); + + public function CameraPositionData() + { + super(); + } +} diff --git a/src/package_90/name_273.as b/src/package_90/name_273.as new file mode 100644 index 0000000..dca2ae0 --- /dev/null +++ b/src/package_90/name_273.as @@ -0,0 +1,30 @@ +package package_90 +{ + import package_46.name_194; + import package_76.name_235; + + public class name_273 + { + public var t:Number = 0; + + public var position:name_194 = new name_194(); + + public var normal:name_194 = new name_194(); + + public var primitive:name_235; + + public function name_273() + { + super(); + } + + public function copy(source:name_273) : void + { + this.t = source.t; + this.position.copy(source.position); + this.normal.copy(source.normal); + this.primitive = source.primitive; + } + } +} + diff --git a/src/package_90/name_386.as b/src/package_90/name_386.as new file mode 100644 index 0000000..5476e63 --- /dev/null +++ b/src/package_90/name_386.as @@ -0,0 +1,140 @@ +package package_90 +{ + import package_46.name_194; + + public class name_386 + { + public var minX:Number = 1e+308; + + public var minY:Number = 1e+308; + + public var minZ:Number = 1e+308; + + public var maxX:Number = -1e+308; + + public var maxY:Number = -1e+308; + + public var maxZ:Number = -1e+308; + + public function name_386() + { + super(); + } + + public function method_140(minX:Number, minY:Number, minZ:Number, maxX:Number, maxY:Number, maxZ:Number) : void + { + this.minX = minX; + this.minY = minY; + this.minZ = minZ; + this.maxX = maxX; + this.maxY = maxY; + this.maxZ = maxZ; + } + + public function name_686(delta:Number) : void + { + this.minX -= delta; + this.minY -= delta; + this.minZ -= delta; + this.maxX += delta; + this.maxY += delta; + this.maxZ += delta; + } + + public function name_583(boundBox:name_386) : void + { + this.minX = boundBox.minX < this.minX ? boundBox.minX : this.minX; + this.minY = boundBox.minY < this.minY ? boundBox.minY : this.minY; + this.minZ = boundBox.minZ < this.minZ ? boundBox.minZ : this.minZ; + this.maxX = boundBox.maxX > this.maxX ? boundBox.maxX : this.maxX; + this.maxY = boundBox.maxY > this.maxY ? boundBox.maxY : this.maxY; + this.maxZ = boundBox.maxZ > this.maxZ ? boundBox.maxZ : this.maxZ; + } + + public function method_702(x:Number, y:Number, z:Number) : void + { + if(x < this.minX) + { + this.minX = x; + } + if(x > this.maxX) + { + this.maxX = x; + } + if(y < this.minY) + { + this.minY = y; + } + if(y > this.maxY) + { + this.maxY = y; + } + if(z < this.minZ) + { + this.minZ = z; + } + if(z > this.maxZ) + { + this.maxZ = z; + } + } + + public function name_584() : void + { + this.minX = 1e+308; + this.minY = 1e+308; + this.minZ = 1e+308; + this.maxX = -1e+308; + this.maxY = -1e+308; + this.maxZ = -1e+308; + } + + public function intersects(bb:name_386, epsilon:Number) : Boolean + { + return !(this.minX > bb.maxX + epsilon || this.maxX < bb.minX - epsilon || this.minY > bb.maxY + epsilon || this.maxY < bb.minY - epsilon || this.minZ > bb.maxZ + epsilon || this.maxZ < bb.minZ - epsilon); + } + + public function name_687(point:name_194, epsilon:Number) : Boolean + { + return point.x > this.minX - epsilon && point.x < this.maxX + epsilon && point.y > this.minY - epsilon && point.y < this.maxY + epsilon && point.z > this.minZ - epsilon && point.z < this.maxZ + epsilon; + } + + public function name_689() : Number + { + return this.maxX - this.minX; + } + + public function name_688() : Number + { + return this.maxY - this.minY; + } + + public function name_690() : Number + { + return this.maxZ - this.minZ; + } + + public function copyFrom(boundBox:name_386) : void + { + this.minX = boundBox.minX; + this.minY = boundBox.minY; + this.minZ = boundBox.minZ; + this.maxX = boundBox.maxX; + this.maxY = boundBox.maxY; + this.maxZ = boundBox.maxZ; + } + + public function clone() : name_386 + { + var clone:name_386 = new name_386(); + clone.copyFrom(this); + return clone; + } + + public function toString() : String + { + return "BoundBox [" + this.minX + ", " + this.minY + ", " + this.minZ + " : " + this.maxX + ", " + this.maxY + ", " + this.maxZ + "]"; + } + } +} + diff --git a/src/package_91/name_296.as b/src/package_91/name_296.as new file mode 100644 index 0000000..2925539 --- /dev/null +++ b/src/package_91/name_296.as @@ -0,0 +1,68 @@ +package package_91 +{ + import package_10.class_17; + import package_10.name_54; + import package_74.class_23; + import package_74.name_233; + import package_74.name_327; + import package_74.name_496; + + public class name_296 extends class_17 implements class_23 + { + private static var poolSize:int; + + private static var pool:Vector. = new Vector.(); + + private var roundData:name_498; + + private var callback:name_499; + + private var effectsFactory:name_349; + + public function name_296(radius:Number, roundSpeed:Number, maxRicochets:uint, impactForce:Number, weakening:name_327, effectsFactory:name_349, callback:name_499) + { + super(); + this.roundData = new name_498(radius,roundSpeed,maxRicochets,impactForce,weakening); + this.effectsFactory = effectsFactory; + this.callback = callback; + } + + public static function method_382(entity:name_54) : void + { + var _loc2_:* = poolSize++; + pool[_loc2_] = entity; + } + + public function getRound(shotType:name_496, maxRange:Number) : name_233 + { + var roundEntity:name_54 = null; + if(poolSize == 0) + { + roundEntity = this.method_381(); + } + else + { + roundEntity = pool[--poolSize]; + pool[poolSize] = null; + } + var plasmaRoundComponent:name_497 = name_497(roundEntity.getComponentStrict(name_497)); + plasmaRoundComponent.init(shotType,this.roundData,maxRange,this.effectsFactory,this.callback); + return plasmaRoundComponent; + } + + private function method_381() : name_54 + { + var entity:name_54 = new name_54(name_54.name_74()); + var energyRoundComponent:name_497 = new name_497(); + entity.name_60(energyRoundComponent); + entity.name_64(); + return entity; + } + + public function method_383(callback:name_499) : void + { + this.callback = callback; + } + } +} + diff --git a/src/package_91/name_349.as b/src/package_91/name_349.as new file mode 100644 index 0000000..93880e9 --- /dev/null +++ b/src/package_91/name_349.as @@ -0,0 +1,14 @@ +package package_91 +{ + import package_46.name_194; + + public interface name_349 + { + function method_414() : name_522; + + function method_413(param1:name_194) : void; + + function method_412(param1:name_194, param2:name_194, param3:name_194) : void; + } +} + diff --git a/src/package_91/name_497.as b/src/package_91/name_497.as new file mode 100644 index 0000000..7f203a3 --- /dev/null +++ b/src/package_91/name_497.as @@ -0,0 +1,295 @@ +package package_91 +{ + import package_10.class_17; + import package_10.name_17; + import package_27.name_501; + import package_44.name_178; + import package_44.name_465; + import package_45.name_182; + import package_46.Matrix3; + import package_46.name_194; + import package_74.name_233; + import package_74.name_496; + import package_76.name_235; + import package_76.name_256; + import package_76.name_631; + import package_86.name_257; + import package_90.name_273; + import package_92.name_271; + + public class name_497 extends class_17 implements name_465, name_233, name_631 + { + private static const NUM_PERIPHERAL_RAYS:int = 8; + + private static const RADIAL_ANGLE_STEP:Number = 2 * Math.PI / NUM_PERIPHERAL_RAYS; + + private static var rayHit:name_273 = new name_273(); + + private static var _rotationMatrix:Matrix3 = new Matrix3(); + + private static var _vector:name_194 = new name_194(); + + private static var _normal:name_194 = new name_194(); + + private var gameKernel:name_17; + + private var var_623:name_194 = new name_194(); + + private var var_620:name_194 = new name_194(); + + private var direction:name_194 = new name_194(); + + private var var_621:Number; + + private var shotId:int; + + private var shooter:name_271; + + private var collisionDetector:name_256; + + private var callback:name_499; + + private var roundData:name_498; + + private var maxRange:Number; + + private var effect:name_522; + + private var shotType:name_496; + + private var ricochetCount:int; + + private var var_622:Vector.; + + private var effectsFactory:name_349; + + public function name_497() + { + super(); + this.var_622 = new Vector.(NUM_PERIPHERAL_RAYS); + for(var i:int = 0; i < NUM_PERIPHERAL_RAYS; i++) + { + this.var_622[i] = new name_194(); + } + } + + public function init(shotType:name_496, roundData:name_498, maxRange:Number, effectsFactory:name_349, callback:name_499) : void + { + this.shotType = shotType; + this.roundData = roundData; + this.maxRange = maxRange; + this.callback = callback; + this.effectsFactory = effectsFactory; + this.ricochetCount = 0; + } + + override public function initComponent() : void + { + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + var physicsSystem:name_178 = gameKernel.method_112(); + this.collisionDetector = physicsSystem.name_246().collisionDetector; + physicsSystem.addControllerBefore(this); + if(this.shotType == name_496.NORMAL_SHOT) + { + physicsSystem.method_330(this); + this.effect = this.effectsFactory.method_414(); + } + } + + override public function removeFromGame(gameKernel:name_17) : void + { + var physicsSystem:name_178 = gameKernel.method_112(); + physicsSystem.removeControllerBefore(this); + this.gameKernel = null; + this.roundData = null; + this.effectsFactory = null; + this.shooter = null; + this.collisionDetector = null; + if(this.effect != null) + { + physicsSystem.method_332(this); + this.effect.method_255(); + this.effect = null; + } + name_296.method_382(entity); + } + + public function name_664(primitive:name_235) : Boolean + { + return primitive.body != this.shooter; + } + + public function updateBeforeSimulation(physicsStep:int) : void + { + var i:int = 0; + var raycastResult:int = 0; + var filter:name_631 = null; + var hitTime:Number = NaN; + var body:name_271 = null; + var origin:name_194 = null; + var impactForce:Number = NaN; + var deltaDistance:Number = this.roundData.speed * name_182.timeDeltaSeconds; + for(var frameDistance:Number = 0; deltaDistance > name_501.EPSILON; ) + { + raycastResult = 0; + filter = this.ricochetCount == 0 ? this : null; + hitTime = deltaDistance + 1; + body = null; + if(this.collisionDetector.raycast(this.var_620,this.direction,name_257.WEAPON | name_257.STATIC,deltaDistance,filter,rayHit)) + { + raycastResult = 1; + hitTime = rayHit.t; + body = rayHit.primitive.body; + _normal.copy(rayHit.normal); + } + for(i = 0; i < NUM_PERIPHERAL_RAYS; ) + { + origin = this.var_622[i]; + if(this.collisionDetector.raycast(origin,this.direction,name_257.WEAPON,deltaDistance,filter,rayHit)) + { + if(rayHit.t < hitTime) + { + raycastResult = 2; + hitTime = rayHit.t; + body = rayHit.primitive.body; + _normal.copy(rayHit.normal); + } + } + i++; + } + if(raycastResult <= 0) + { + this.var_621 += deltaDistance; + if(this.var_621 > this.maxRange) + { + this.gameKernel.method_109(entity); + } + else + { + this.var_623.copy(this.var_620); + _vector.copy(this.direction).scale(deltaDistance); + this.var_620.add(_vector); + for(i = 0; i < NUM_PERIPHERAL_RAYS; i++) + { + name_194(this.var_622[i]).add(_vector); + } + } + return; + } + this.var_621 += hitTime; + if(this.var_621 >= this.maxRange) + { + this.gameKernel.method_109(entity); + return; + } + if(!(raycastResult == 1 && this.ricochetCount < this.roundData.maxRicochets && body == null)) + { + this.effectsFactory.method_413(rayHit.position); + if(body != null) + { + impactForce = this.roundData.weakening.name_554(this.var_621) * this.roundData.impactForce; + body.name_556(rayHit.position,this.direction,impactForce); + if(this.callback != null) + { + this.callback.name_691(this.shotId,rayHit.position,this.var_621,body); + } + } + this.gameKernel.method_109(entity); + return; + } + ++this.ricochetCount; + frameDistance += hitTime; + this.var_621 += hitTime; + deltaDistance -= hitTime; + _vector.copy(this.var_620).method_362(hitTime,this.direction); + this.effectsFactory.method_412(_vector,_normal,this.direction); + this.var_620.method_362(hitTime,this.direction).method_362(0.01,_normal); + this.direction.method_362(-2 * this.direction.dot(_normal),_normal); + this.var_623.copy(this.var_620).method_362(-frameDistance,this.direction); + this.method_705(this.var_620,this.direction,this.roundData.radius); + } + } + + public function updateAfterSimulation(physicsStep:int) : void + { + } + + public function interpolate(interpolationCoeff:Number) : void + { + _vector.method_366(this.var_620,this.var_623).scale(interpolationCoeff).add(this.var_623); + this.effect.name_201(_vector); + } + + public function method_372(gameKernel:name_17, shotId:int, shooter:name_271, barrelOrigin:name_194, barrelLength:Number, shotDirection:name_194, muzzlePosition:name_194) : void + { + this.shotId = shotId; + this.shooter = shooter; + this.direction.copy(shotDirection); + this.var_621 = 0; + switch(this.shotType) + { + case name_496.CLOSE_SHOT: + this.var_620.copy(barrelOrigin); + break; + case name_496.NORMAL_SHOT: + this.var_620.copy(muzzlePosition); + } + this.method_705(this.var_620,shotDirection,this.roundData.radius); + gameKernel.name_73(entity); + } + + private function method_705(centerPoint:name_194, shotDirection:name_194, radius:Number) : void + { + var axis:int = 0; + var min:Number = 10; + var d:Number = shotDirection.x < 0 ? -shotDirection.x : shotDirection.x; + if(d < min) + { + min = d; + axis = 0; + } + d = shotDirection.y < 0 ? -shotDirection.y : shotDirection.y; + if(d < min) + { + min = d; + axis = 1; + } + d = shotDirection.z < 0 ? -shotDirection.z : shotDirection.z; + if(d < min) + { + axis = 2; + } + var v:name_194 = new name_194(); + switch(axis) + { + case 0: + v.x = 0; + v.y = shotDirection.z; + v.z = -shotDirection.y; + break; + case 1: + v.x = -shotDirection.z; + v.y = 0; + v.z = shotDirection.x; + break; + case 2: + v.x = shotDirection.y; + v.y = -shotDirection.x; + v.z = 0; + } + v.normalize().scale(radius); + _rotationMatrix.method_344(shotDirection,RADIAL_ANGLE_STEP); + name_194(this.var_622[0]).copy(centerPoint).add(v); + for(var i:int = 1; i < NUM_PERIPHERAL_RAYS; i++) + { + v.transform3(_rotationMatrix); + name_194(this.var_622[i]).copy(centerPoint).add(v); + } + } + } +} + diff --git a/src/package_91/name_498.as b/src/package_91/name_498.as new file mode 100644 index 0000000..8402a9f --- /dev/null +++ b/src/package_91/name_498.as @@ -0,0 +1,28 @@ +package package_91 +{ + import package_74.name_327; + + public class name_498 + { + public var radius:Number; + + public var speed:Number; + + public var maxRicochets:uint; + + public var impactForce:Number; + + public var weakening:name_327; + + public function name_498(radius:Number, speed:Number, maxRicochets:uint, impactForce:Number, weakening:name_327) + { + super(); + this.radius = radius; + this.speed = speed; + this.maxRicochets = maxRicochets; + this.impactForce = impactForce; + this.weakening = weakening; + } + } +} + diff --git a/src/package_91/name_499.as b/src/package_91/name_499.as new file mode 100644 index 0000000..eb7734f --- /dev/null +++ b/src/package_91/name_499.as @@ -0,0 +1,11 @@ +package package_91 +{ + import package_46.name_194; + import package_92.name_271; + + public interface name_499 + { + function name_691(param1:int, param2:name_194, param3:Number, param4:name_271) : void; + } +} + diff --git a/src/package_91/name_522.as b/src/package_91/name_522.as new file mode 100644 index 0000000..e9cee15 --- /dev/null +++ b/src/package_91/name_522.as @@ -0,0 +1,13 @@ +package package_91 +{ + import package_18.name_85; + import package_46.name_194; + + public interface name_522 extends name_85 + { + function method_255() : void; + + function name_201(param1:name_194) : void; + } +} + diff --git a/src/package_92/name_271.as b/src/package_92/name_271.as new file mode 100644 index 0000000..19dd731 --- /dev/null +++ b/src/package_92/name_271.as @@ -0,0 +1,346 @@ +package package_92 +{ + import package_46.Matrix3; + import package_46.Matrix4; + import package_46.name_194; + import package_46.name_566; + import package_76.name_235; + import package_76.name_604; + import package_90.name_386; + + public class name_271 + { + public static var linDamping:Number = 0.997; + + public static var rotDamping:Number = 0.997; + + private static var _r:name_194 = new name_194(); + + private static var _f:name_194 = new name_194(); + + private static var _q:name_566 = new name_566(); + + public var id:int; + + public var name:String; + + public var scene:name_467; + + public var var_499:Boolean = true; + + public var var_502:Boolean = false; + + public var var_498:int; + + public var var_501:Boolean = false; + + public var var_500:Boolean = true; + + public var aabb:name_386 = new name_386(); + + public var postCollisionFilter:name_604; + + public var state:name_599 = new name_599(); + + public var var_492:name_599 = new name_599(); + + public var var_497:name_194 = new name_194(); + + public var var_496:name_194 = new name_194(); + + public var material:name_600 = new name_600(); + + public var invMass:Number = 1; + + public var invInertia:Matrix3 = new Matrix3(); + + public var var_495:Matrix3 = new Matrix3(); + + public var baseMatrix:Matrix3 = new Matrix3(); + + public var collisionPrimitives:name_601; + + public var var_494:name_194 = new name_194(); + + public var var_493:name_194 = new name_194(); + + public var data:Object; + + public function name_271(invMass:Number, invInertia:Matrix3) + { + super(); + this.invMass = invMass; + this.invInertia.copy(invInertia); + } + + public function name_580(primitive:name_235, localTransform:Matrix4 = null) : void + { + if(primitive == null) + { + throw new ArgumentError("Primitive cannot be null"); + } + if(this.collisionPrimitives == null) + { + this.collisionPrimitives = new name_601(); + } + this.collisionPrimitives.append(primitive); + primitive.method_373(this,localTransform); + } + + public function method_509(primitive:name_235) : void + { + if(this.collisionPrimitives == null) + { + return; + } + primitive.method_373(null); + this.collisionPrimitives.remove(primitive); + if(this.collisionPrimitives.size == 0) + { + this.collisionPrimitives = null; + } + } + + public function interpolate(t:Number, pos:name_194, orientation:name_566) : void + { + var t1:Number = NaN; + t1 = 1 - t; + pos.x = this.var_492.position.x * t1 + this.state.position.x * t; + pos.y = this.var_492.position.y * t1 + this.state.position.y * t; + pos.z = this.var_492.position.z * t1 + this.state.position.z * t; + orientation.w = this.var_492.orientation.w * t1 + this.state.orientation.w * t; + orientation.x = this.var_492.orientation.x * t1 + this.state.orientation.x * t; + orientation.y = this.var_492.orientation.y * t1 + this.state.orientation.y * t; + orientation.z = this.var_492.orientation.z * t1 + this.state.orientation.z * t; + } + + public function method_515(t:Number, pos:name_194, orientation:name_566) : void + { + var t1:Number = NaN; + t1 = 1 - t; + pos.x = this.var_492.position.x * t1 + this.state.position.x * t; + pos.y = this.var_492.position.y * t1 + this.state.position.y * t; + pos.z = this.var_492.position.z * t1 + this.state.position.z * t; + orientation.name_602(this.var_492.orientation,this.state.orientation,t); + } + + public function method_517(t:Number, m:Matrix4) : void + { + var t1:Number = NaN; + t1 = 1 - t; + m.d = this.var_492.position.x * t1 + this.state.position.x * t; + m.h = this.var_492.position.y * t1 + this.state.position.y * t; + m.l = this.var_492.position.z * t1 + this.state.position.z * t; + _q.w = this.var_492.orientation.w * t1 + this.state.orientation.w * t; + _q.x = this.var_492.orientation.x * t1 + this.state.orientation.x * t; + _q.y = this.var_492.orientation.y * t1 + this.state.orientation.y * t; + _q.z = this.var_492.orientation.z * t1 + this.state.orientation.z * t; + _q.normalize(); + _q.toMatrix4(m); + } + + public function method_514(t:Number, m:Matrix4) : void + { + var t1:Number = 1 - t; + m.d = this.var_492.position.x * t1 + this.state.position.x * t; + m.h = this.var_492.position.y * t1 + this.state.position.y * t; + m.l = this.var_492.position.z * t1 + this.state.position.z * t; + _q.name_602(this.var_492.orientation,this.state.orientation,t); + _q.normalize(); + _q.toMatrix4(m); + } + + public function name_201(pos:name_194) : void + { + this.state.position.copy(pos); + } + + public function name_75(x:Number, y:Number, z:Number) : void + { + this.state.position.reset(x,y,z); + } + + public function name_587(vel:name_194) : void + { + this.state.velocity.copy(vel); + } + + public function name_588(x:Number, y:Number, z:Number) : void + { + this.state.velocity.reset(x,y,z); + } + + public function method_368(rot:name_194) : void + { + this.state.rotation.copy(rot); + } + + public function name_332(x:Number, y:Number, z:Number) : void + { + this.state.rotation.reset(x,y,z); + } + + public function name_352(q:name_566) : void + { + this.state.orientation.copy(q); + } + + public function method_484(w:Number, x:Number, y:Number, z:Number) : void + { + this.state.orientation.reset(w,x,y,z); + } + + public function method_518(r:name_194, dir:name_194, magnitude:Number) : void + { + var x:Number = NaN; + var y:Number = NaN; + var d:Number = magnitude * this.invMass; + this.state.velocity.x += d * dir.x; + this.state.velocity.y += d * dir.y; + this.state.velocity.z += d * dir.z; + x = (r.y * dir.z - r.z * dir.y) * magnitude; + y = (r.z * dir.x - r.x * dir.z) * magnitude; + var z:Number = (r.x * dir.y - r.y * dir.x) * magnitude; + this.state.rotation.x += this.var_495.a * x + this.var_495.b * y + this.var_495.c * z; + this.state.rotation.y += this.var_495.e * x + this.var_495.f * y + this.var_495.g * z; + this.state.rotation.z += this.var_495.i * x + this.var_495.j * y + this.var_495.k * z; + } + + public function name_585(f:name_194) : void + { + this.var_494.add(f); + } + + public function method_519(fx:Number, fy:Number, fz:Number) : void + { + this.var_494.x += fx; + this.var_494.y += fy; + this.var_494.z += fz; + } + + public function method_507(px:Number, py:Number, pz:Number, fx:Number, fy:Number, fz:Number) : void + { + var rx:Number = NaN; + this.var_494.x += fx; + this.var_494.y += fy; + this.var_494.z += fz; + var pos:name_194 = this.state.position; + rx = px - pos.x; + var ry:Number = py - pos.y; + var rz:Number = pz - pos.z; + this.var_493.x += ry * fz - rz * fy; + this.var_493.y += rz * fx - rx * fz; + this.var_493.z += rx * fy - ry * fx; + } + + public function name_525(pos:name_194, force:name_194) : void + { + this.var_494.add(force); + this.var_493.add(_r.method_366(pos,this.state.position).method_360(force)); + } + + public function name_556(pos:name_194, force:name_194, scale:Number) : void + { + _f.x = scale * force.x; + _f.y = scale * force.y; + _f.z = scale * force.z; + this.var_494.add(_f); + this.var_493.add(_r.method_366(pos,this.state.position).method_360(_f)); + } + + public function method_516(pos:name_194, force:name_194) : void + { + this.baseMatrix.method_345(pos,_r); + this.baseMatrix.method_345(force,_f); + this.var_494.add(_f); + this.var_493.add(_r.method_360(_f)); + } + + public function method_521(localPos:name_194, worldForce:name_194) : void + { + this.baseMatrix.method_345(localPos,_r); + this.var_494.add(worldForce); + this.var_493.add(_r.method_360(worldForce)); + } + + public function method_520(t:name_194) : void + { + this.var_493.add(t); + } + + internal function method_513() : void + { + this.var_494.x = this.var_494.y = this.var_494.z = 0; + this.var_493.x = this.var_493.y = this.var_493.z = 0; + } + + internal function method_508() : void + { + this.var_497.x = this.var_494.x * this.invMass; + this.var_497.y = this.var_494.y * this.invMass; + this.var_497.z = this.var_494.z * this.invMass; + this.var_496.x = this.var_495.a * this.var_493.x + this.var_495.b * this.var_493.y + this.var_495.c * this.var_493.z; + this.var_496.y = this.var_495.e * this.var_493.x + this.var_495.f * this.var_493.y + this.var_495.g * this.var_493.z; + this.var_496.z = this.var_495.i * this.var_493.x + this.var_495.j * this.var_493.y + this.var_495.k * this.var_493.z; + } + + public function method_512() : void + { + var item:name_513 = null; + var primitive:name_235 = null; + this.state.orientation.toMatrix3(this.baseMatrix); + this.var_495.copy(this.invInertia).append(this.baseMatrix).method_348(this.baseMatrix); + if(this.collisionPrimitives != null) + { + this.aabb.name_584(); + for(item = this.collisionPrimitives.head; item != null; ) + { + primitive = item.primitive; + primitive.transform.method_350(this.baseMatrix,this.state.position); + if(primitive.localTransform != null) + { + primitive.transform.prepend(primitive.localTransform); + } + primitive.calculateAABB(); + this.aabb.name_583(primitive.aabb); + item = item.next; + } + } + } + + public function name_586() : void + { + this.var_492.copy(this.state); + } + + internal function method_506() : void + { + this.state.copy(this.var_492); + } + + internal function method_510(dt:Number) : void + { + this.state.velocity.x += this.var_497.x * dt; + this.state.velocity.y += this.var_497.y * dt; + this.state.velocity.z += this.var_497.z * dt; + this.state.rotation.x += this.var_496.x * dt; + this.state.rotation.y += this.var_496.y * dt; + this.state.rotation.z += this.var_496.z * dt; + this.state.velocity.x *= linDamping; + this.state.velocity.y *= linDamping; + this.state.velocity.z *= linDamping; + this.state.rotation.x *= rotDamping; + this.state.rotation.y *= rotDamping; + this.state.rotation.z *= rotDamping; + } + + internal function method_511(dt:Number) : void + { + this.state.position.x += this.state.velocity.x * dt; + this.state.position.y += this.state.velocity.y * dt; + this.state.position.z += this.state.velocity.z * dt; + this.state.orientation.name_603(this.state.rotation,dt); + } + } +} + diff --git a/src/package_92/name_467.as b/src/package_92/name_467.as new file mode 100644 index 0000000..4f69868 --- /dev/null +++ b/src/package_92/name_467.as @@ -0,0 +1,519 @@ +package package_92 +{ + import package_122.name_672; + import package_46.Matrix3; + import package_46.name_194; + import package_76.name_256; + import package_76.name_682; + + public class name_467 + { + private static var lastBodyId:int; + + public const const_2:int = 1000; + + public var var_605:int = 10; + + public var name_471:Number = 0.1; + + public var name_474:Number = 0.5; + + public var var_608:int = 5; + + public var var_603:int = 5; + + public var name_475:Boolean = false; + + public var var_606:int = 10; + + public var var_604:Number = 1; + + public var var_607:Number = 0.01; + + public var name_567:name_194 = new name_194(0,0,-9.8); + + public var var_602:Number = 9.8; + + public var collisionDetector:name_256; + + public var name_605:name_681 = new name_681(); + + public var contacts:name_630; + + public var var_599:Vector. = new Vector.(); + + public var var_598:int; + + public var var_601:int; + + public var time:int; + + private var var_600:name_630; + + private var var_597:name_194 = new name_194(); + + private var _v:name_194 = new name_194(); + + public function name_467() + { + super(); + this.contacts = new name_630(0); + var contact:name_630 = this.contacts; + for(var i:int = 1; i < this.const_2; i++) + { + contact.next = new name_630(i); + contact = contact.next; + } + this.collisionDetector = new name_682(); + } + + public function get gravity() : name_194 + { + return this.name_567.clone(); + } + + public function set gravity(value:name_194) : void + { + this.name_567.copy(value); + this.var_602 = this.name_567.length(); + } + + public function name_592(body:name_271) : void + { + body.id = lastBodyId++; + body.scene = this; + this.name_605.append(body); + } + + public function name_593(body:name_271) : void + { + if(this.name_605.remove(body)) + { + body.scene = null; + } + } + + public function method_679(c:name_672) : void + { + var _loc2_:* = this.var_598++; + this.var_599[_loc2_] = c; + c.world = this; + } + + public function method_678(c:name_672) : Boolean + { + var idx:int = int(this.var_599.indexOf(c)); + if(idx < 0) + { + return false; + } + this.var_599.splice(idx,1); + --this.var_598; + c.world = null; + return true; + } + + private function method_676(dt:Number) : void + { + var body:name_271 = null; + for(var item:name_671 = this.name_605.head; item != null; ) + { + body = item.body; + body.method_508(); + if(body.var_500 && body.var_499 && !body.var_501) + { + body.var_497.x += this.name_567.x; + body.var_497.y += this.name_567.y; + body.var_497.z += this.name_567.z; + } + item = item.next; + } + } + + private function method_673(dt:Number) : void + { + var body:name_271 = null; + var b1:name_271 = null; + var b2:name_271 = null; + var j:int = 0; + var cp:name_674 = null; + var bPos:name_194 = null; + for(var item:name_671 = this.name_605.head; item != null; ) + { + body = item.body; + if(!body.var_501) + { + body.name_586(); + if(this.name_475) + { + body.method_510(dt); + body.method_511(dt); + } + body.method_512(); + } + item = item.next; + } + this.var_600 = this.collisionDetector.method_553(this.contacts); + for(var contact:name_630 = this.contacts; contact != this.var_600; ) + { + b1 = contact.body1; + b2 = contact.body2; + for(j = 0; j < contact.name_679; ) + { + cp = contact.points[j]; + bPos = b1.state.position; + cp.r1.x = cp.pos.x - bPos.x; + cp.r1.y = cp.pos.y - bPos.y; + cp.r1.z = cp.pos.z - bPos.z; + if(b2 != null) + { + bPos = b2.state.position; + cp.r2.x = cp.pos.x - bPos.x; + cp.r2.y = cp.pos.y - bPos.y; + cp.r2.z = cp.pos.z - bPos.z; + } + j++; + } + contact = contact.next; + } + if(this.name_475) + { + for(item = this.name_605.head; item != null; ) + { + body = item.body; + if(!body.var_501) + { + body.method_506(); + body.method_512(); + } + item = item.next; + } + } + } + + private function method_671(dt:Number) : void + { + var b1:name_271 = null; + var b2:name_271 = null; + var j:int = 0; + var cp:name_674 = null; + var constraint:name_672 = null; + for(var contact:name_630 = this.contacts; contact != this.var_600; ) + { + b1 = contact.body1; + b2 = contact.body2; + if(b1.var_501) + { + b1.var_501 = false; + b1.var_498 = 0; + } + if(b2 != null && b2.var_501) + { + b2.var_501 = false; + b2.var_498 = 0; + } + contact.name_673 = b1.material.name_673; + if(b2 != null && b2.material.name_673 < contact.name_673) + { + contact.name_673 = b2.material.name_673; + } + contact.name_581 = b1.material.name_581; + if(b2 != null && b2.material.name_581 < contact.name_581) + { + contact.name_581 = b2.material.name_581; + } + for(j = 0; j < contact.name_679; ) + { + cp = contact.points[j]; + cp.name_676 = 0; + cp.name_675 = 0; + if(b1.var_499) + { + cp.angularInertia1 = this._v.cross2(cp.r1,contact.normal).transform3(b1.var_495).method_360(cp.r1).dot(contact.normal); + cp.name_675 += b1.invMass + cp.angularInertia1; + } + if(b2 != null && b2.var_499) + { + cp.angularInertia2 = this._v.cross2(cp.r2,contact.normal).transform3(b2.var_495).method_360(cp.r2).dot(contact.normal); + cp.name_675 += b2.invMass + cp.angularInertia2; + } + this.method_668(b1,b2,cp,this._v); + cp.name_677 = this._v.dot(contact.normal); + if(cp.name_677 < 0) + { + cp.name_677 = -contact.name_673 * cp.name_677; + } + cp.name_678 = cp.penetration > this.name_471 ? (cp.penetration - this.name_471) / (this.var_605 * dt) : 0; + if(cp.name_678 > this.name_474) + { + cp.name_678 = this.name_474; + } + j++; + } + contact = contact.next; + } + for(var i:int = 0; i < this.var_598; i++) + { + constraint = this.var_599[i]; + constraint.name_684(dt); + } + } + + private function method_669(dt:Number, forceInelastic:Boolean) : void + { + var i:int = 0; + var contact:name_630 = null; + var constraint:name_672 = null; + var iterNum:int = forceInelastic ? this.var_603 : this.var_608; + var forwardLoop:Boolean = false; + for(var iter:int = 0; iter < iterNum; iter++) + { + forwardLoop = !forwardLoop; + for(contact = this.contacts; contact != this.var_600; ) + { + this.method_675(contact,forceInelastic,forwardLoop); + contact = contact.next; + } + for(i = 0; i < this.var_598; i++) + { + constraint = this.var_599[i]; + constraint.name_683(dt); + } + } + } + + private function method_675(contactInfo:name_630, forceInelastic:Boolean, forwardLoop:Boolean) : void + { + var i:int = 0; + var b1:name_271 = contactInfo.body1; + var b2:name_271 = contactInfo.body2; + var normal:name_194 = contactInfo.normal; + if(forwardLoop) + { + for(i = 0; i < contactInfo.name_679; this.method_670(i,b1,b2,contactInfo,normal,forceInelastic),i++) + { + } + } + else + { + for(i = contactInfo.name_679 - 1; i >= 0; this.method_670(i,b1,b2,contactInfo,normal,forceInelastic),i--) + { + } + } + } + + private function method_670(idx:int, b1:name_271, b2:name_271, contact:name_630, normal:name_194, forceInelastic:Boolean) : void + { + var r:name_194 = null; + var m:Matrix3 = null; + var xx:Number = NaN; + var yy:Number = NaN; + var zz:Number = NaN; + var minSpeVel:Number = NaN; + var cp:name_674 = contact.points[idx]; + if(!forceInelastic) + { + cp.name_680 = true; + } + var newVel:Number = 0; + this.method_668(b1,b2,cp,this._v); + var cnormal:name_194 = contact.normal; + var sepVel:Number = this._v.x * cnormal.x + this._v.y * cnormal.y + this._v.z * cnormal.z; + if(forceInelastic) + { + minSpeVel = cp.name_678; + if(sepVel < minSpeVel) + { + cp.name_680 = false; + } + else if(cp.name_680) + { + return; + } + newVel = minSpeVel; + } + else + { + newVel = cp.name_677; + } + var deltaVel:Number = newVel - sepVel; + var impulse:Number = deltaVel / cp.name_675; + var accumImpulse:Number = cp.name_676 + impulse; + if(accumImpulse < 0) + { + accumImpulse = 0; + } + var deltaImpulse:Number = accumImpulse - cp.name_676; + cp.name_676 = accumImpulse; + if(b1.var_499) + { + b1.method_518(cp.r1,normal,deltaImpulse); + } + if(b2 != null && b2.var_499) + { + b2.method_518(cp.r2,normal,-deltaImpulse); + } + this.method_668(b1,b2,cp,this._v); + var tanSpeedByUnitImpulse:Number = 0; + var dot:Number = this._v.x * cnormal.x + this._v.y * cnormal.y + this._v.z * cnormal.z; + this._v.x -= dot * cnormal.x; + this._v.y -= dot * cnormal.y; + this._v.z -= dot * cnormal.z; + var tanSpeed:Number = this._v.length(); + if(tanSpeed < 0.001) + { + return; + } + this.var_597.x = -this._v.x; + this.var_597.y = -this._v.y; + this.var_597.z = -this._v.z; + this.var_597.normalize(); + if(b1.var_499) + { + r = cp.r1; + m = b1.var_495; + this._v.x = r.y * this.var_597.z - r.z * this.var_597.y; + this._v.y = r.z * this.var_597.x - r.x * this.var_597.z; + this._v.z = r.x * this.var_597.y - r.y * this.var_597.x; + xx = m.a * this._v.x + m.b * this._v.y + m.c * this._v.z; + yy = m.e * this._v.x + m.f * this._v.y + m.g * this._v.z; + zz = m.i * this._v.x + m.j * this._v.y + m.k * this._v.z; + this._v.x = yy * r.z - zz * r.y; + this._v.y = zz * r.x - xx * r.z; + this._v.z = xx * r.y - yy * r.x; + tanSpeedByUnitImpulse += b1.invMass + this._v.x * this.var_597.x + this._v.y * this.var_597.y + this._v.z * this.var_597.z; + } + if(b2 != null && b2.var_499) + { + r = cp.r2; + m = b2.var_495; + this._v.x = r.y * this.var_597.z - r.z * this.var_597.y; + this._v.y = r.z * this.var_597.x - r.x * this.var_597.z; + this._v.z = r.x * this.var_597.y - r.y * this.var_597.x; + xx = m.a * this._v.x + m.b * this._v.y + m.c * this._v.z; + yy = m.e * this._v.x + m.f * this._v.y + m.g * this._v.z; + zz = m.i * this._v.x + m.j * this._v.y + m.k * this._v.z; + this._v.x = yy * r.z - zz * r.y; + this._v.y = zz * r.x - xx * r.z; + this._v.z = xx * r.y - yy * r.x; + tanSpeedByUnitImpulse += b2.invMass + this._v.x * this.var_597.x + this._v.y * this.var_597.y + this._v.z * this.var_597.z; + } + var tanImpulse:Number = tanSpeed / tanSpeedByUnitImpulse; + var max:Number = contact.name_581 * cp.name_676; + if(max < 0) + { + if(tanImpulse < max) + { + tanImpulse = max; + } + } + else if(tanImpulse > max) + { + tanImpulse = max; + } + if(b1.var_499) + { + b1.method_518(cp.r1,this.var_597,tanImpulse); + } + if(b2 != null && b2.var_499) + { + b2.method_518(cp.r2,this.var_597,-tanImpulse); + } + } + + private function method_668(body1:name_271, body2:name_271, cp:name_674, result:name_194) : void + { + var rot:name_194 = body1.state.rotation; + var v:name_194 = cp.r1; + var x:Number = rot.y * v.z - rot.z * v.y; + var y:Number = rot.z * v.x - rot.x * v.z; + var z:Number = rot.x * v.y - rot.y * v.x; + v = body1.state.velocity; + result.x = v.x + x; + result.y = v.y + y; + result.z = v.z + z; + if(body2 != null) + { + rot = body2.state.rotation; + v = cp.r2; + x = rot.y * v.z - rot.z * v.y; + y = rot.z * v.x - rot.x * v.z; + z = rot.x * v.y - rot.y * v.x; + v = body2.state.velocity; + result.x -= v.x + x; + result.y -= v.y + y; + result.z -= v.z + z; + } + } + + private function method_672(dt:Number) : void + { + for(var item:name_671 = this.name_605.head; item != null; ) + { + item.body.method_510(dt); + item = item.next; + } + } + + private function method_677(dt:Number) : void + { + var body:name_271 = null; + for(var item:name_671 = this.name_605.head; item != null; ) + { + body = item.body; + if(body.var_499 && !body.var_501) + { + body.method_511(dt); + } + item = item.next; + } + } + + private function method_674() : void + { + var body:name_271 = null; + for(var item:name_671 = this.name_605.head; item != null; ) + { + body = item.body; + body.method_513(); + body.method_512(); + if(body.var_502) + { + if(body.state.velocity.length() < this.var_604 && body.state.rotation.length() < this.var_607) + { + if(!body.var_501) + { + ++body.var_498; + if(body.var_498 >= this.var_606) + { + body.var_501 = true; + } + } + } + else + { + body.var_498 = 0; + body.var_501 = false; + } + } + item = item.next; + } + } + + public function update(delta:int) : void + { + ++this.var_601; + this.time += delta; + var dt:Number = 0.001 * delta; + this.method_676(dt); + this.method_673(dt); + this.method_671(dt); + this.method_669(dt,false); + this.method_672(dt); + this.method_669(dt,true); + this.method_677(dt); + this.method_674(); + } + } +} + diff --git a/src/package_92/name_513.as b/src/package_92/name_513.as new file mode 100644 index 0000000..47b995d --- /dev/null +++ b/src/package_92/name_513.as @@ -0,0 +1,57 @@ +package package_92 +{ + import package_76.name_235; + + public class name_513 + { + private static var poolTop:name_513; + + public var primitive:name_235; + + public var next:name_513; + + public var prev:name_513; + + public function name_513(primitive:name_235) + { + super(); + this.primitive = primitive; + } + + public static function create(primitive:name_235) : name_513 + { + var item:name_513 = null; + if(poolTop == null) + { + item = new name_513(primitive); + } + else + { + item = poolTop; + item.primitive = primitive; + poolTop = item.next; + item.next = null; + } + return item; + } + + public static function method_712() : void + { + for(var curr:name_513 = poolTop; curr != null; ) + { + poolTop = curr.next; + curr.next = null; + curr = poolTop; + } + } + + public function dispose() : void + { + this.primitive = null; + this.prev = null; + this.next = poolTop; + poolTop = this; + } + } +} + diff --git a/src/package_92/name_575.as b/src/package_92/name_575.as new file mode 100644 index 0000000..9ae5f2b --- /dev/null +++ b/src/package_92/name_575.as @@ -0,0 +1,48 @@ +package package_92 +{ + import package_46.Matrix3; + import package_46.name_194; + + public class name_575 + { + public function name_575() + { + super(); + } + + public static function name_589(mass:Number, halfSize:name_194, result:Matrix3) : void + { + if(mass <= 0) + { + throw new ArgumentError(); + } + result.copy(Matrix3.ZERO); + if(mass == Infinity) + { + return; + } + var xx:Number = halfSize.x * halfSize.x; + var yy:Number = halfSize.y * halfSize.y; + var zz:Number = halfSize.z * halfSize.z; + result.a = 3 / (mass * (yy + zz)); + result.f = 3 / (mass * (zz + xx)); + result.k = 3 / (mass * (xx + yy)); + } + + public static function method_773(mass:Number, r:Number, h:Number, result:Matrix3) : void + { + if(mass <= 0) + { + throw new ArgumentError(); + } + result.copy(Matrix3.ZERO); + if(mass == Infinity) + { + return; + } + result.a = result.f = 1 / (mass * (h * h / 12 + r * r / 4)); + result.k = 2 / (mass * r * r); + } + } +} + diff --git a/src/package_92/name_599.as b/src/package_92/name_599.as new file mode 100644 index 0000000..09fd044 --- /dev/null +++ b/src/package_92/name_599.as @@ -0,0 +1,30 @@ +package package_92 +{ + import package_46.name_194; + import package_46.name_566; + + public class name_599 + { + public var position:name_194 = new name_194(); + + public var orientation:name_566 = new name_566(); + + public var velocity:name_194 = new name_194(); + + public var rotation:name_194 = new name_194(); + + public function name_599() + { + super(); + } + + public function copy(state:name_599) : void + { + this.position.copy(state.position); + this.orientation.copy(state.orientation); + this.velocity.copy(state.velocity); + this.rotation.copy(state.rotation); + } + } +} + diff --git a/src/package_92/name_600.as b/src/package_92/name_600.as new file mode 100644 index 0000000..b083c17 --- /dev/null +++ b/src/package_92/name_600.as @@ -0,0 +1,15 @@ +package package_92 +{ + public class name_600 + { + public var name_673:Number = 0; + + public var name_581:Number = 0.3; + + public function name_600() + { + super(); + } + } +} + diff --git a/src/package_92/name_601.as b/src/package_92/name_601.as new file mode 100644 index 0000000..b736cab --- /dev/null +++ b/src/package_92/name_601.as @@ -0,0 +1,90 @@ +package package_92 +{ + import package_76.name_235; + + public class name_601 + { + public var head:name_513; + + public var tail:name_513; + + public var size:int; + + public function name_601() + { + super(); + } + + public function append(primitive:name_235) : void + { + var item:name_513 = name_513.create(primitive); + if(this.head == null) + { + this.head = this.tail = item; + } + else + { + this.tail.next = item; + item.prev = this.tail; + this.tail = item; + } + ++this.size; + } + + public function remove(primitve:name_235) : void + { + var item:name_513 = this.method_628(primitve); + if(item == null) + { + return; + } + if(item == this.head) + { + if(this.size == 1) + { + this.head = this.tail = null; + } + else + { + this.head = item.next; + this.head.prev = null; + } + } + else if(item == this.tail) + { + this.tail = this.tail.prev; + this.tail.next = null; + } + else + { + item.prev.next = item.next; + item.next.prev = item.prev; + } + item.dispose(); + --this.size; + } + + public function method_628(primitive:name_235) : name_513 + { + var item:name_513 = this.head; + while(item != null && item.primitive != primitive) + { + item = item.next; + } + return item; + } + + public function clear() : void + { + for(var item:name_513 = null; this.head != null; ) + { + item = this.head; + this.head = this.head.next; + item.dispose(); + } + this.tail = null; + this.size = 0; + } + } +} + diff --git a/src/package_92/name_630.as b/src/package_92/name_630.as new file mode 100644 index 0000000..b43051d --- /dev/null +++ b/src/package_92/name_630.as @@ -0,0 +1,43 @@ +package package_92 +{ + import package_46.name_194; + + public class name_630 + { + public var body1:name_271; + + public var body2:name_271; + + public var name_673:Number; + + public var name_581:Number; + + public var normal:name_194 = new name_194(); + + public var points:Vector.; + + public var name_679:int; + + public var var_663:Number = 0; + + public var name_680:Boolean; + + public var next:name_630; + + public var index:int; + + private const const_3:int = 8; + + public function name_630(index:int) + { + this.points = new Vector.(this.const_3,true); + super(); + this.index = index; + for(var i:int = 0; i < this.const_3; i++) + { + this.points[i] = new name_674(); + } + } + } +} + diff --git a/src/package_92/name_671.as b/src/package_92/name_671.as new file mode 100644 index 0000000..f4d11de --- /dev/null +++ b/src/package_92/name_671.as @@ -0,0 +1,55 @@ +package package_92 +{ + public class name_671 + { + private static var poolTop:name_671; + + public var body:name_271; + + public var next:name_671; + + public var prev:name_671; + + public function name_671(body:name_271) + { + super(); + this.body = body; + } + + public static function create(body:name_271) : name_671 + { + var item:name_671 = null; + if(poolTop == null) + { + item = new name_671(body); + } + else + { + item = poolTop; + poolTop = item.next; + item.next = null; + item.body = body; + } + return item; + } + + public static function method_712() : void + { + for(var item:name_671 = poolTop; item != null; ) + { + poolTop = item.next; + item.next = null; + item = poolTop; + } + } + + public function dispose() : void + { + this.body = null; + this.prev = null; + this.next = poolTop; + poolTop = this; + } + } +} + diff --git a/src/package_92/name_674.as b/src/package_92/name_674.as new file mode 100644 index 0000000..092ceae --- /dev/null +++ b/src/package_92/name_674.as @@ -0,0 +1,49 @@ +package package_92 +{ + import package_46.name_194; + + public class name_674 + { + public var pos:name_194 = new name_194(); + + public var penetration:Number; + + public var feature1:int; + + public var feature2:int; + + public var name_677:Number; + + public var name_678:Number; + + public var name_675:Number; + + public var angularInertia1:Number; + + public var angularInertia2:Number; + + public var r1:name_194 = new name_194(); + + public var r2:name_194 = new name_194(); + + public var name_676:Number; + + public var name_680:Boolean; + + public function name_674() + { + super(); + } + + public function copyFrom(cp:name_674) : void + { + this.pos.copy(cp.pos); + this.penetration = cp.penetration; + this.feature1 = cp.feature1; + this.feature2 = cp.feature2; + this.r1.copy(cp.r1); + this.r2.copy(cp.r2); + } + } +} + diff --git a/src/package_92/name_681.as b/src/package_92/name_681.as new file mode 100644 index 0000000..d78cbb8 --- /dev/null +++ b/src/package_92/name_681.as @@ -0,0 +1,77 @@ +package package_92 +{ + public class name_681 + { + public var head:name_671; + + public var tail:name_671; + + public var size:int; + + public function name_681() + { + super(); + } + + public function append(body:name_271) : void + { + var item:name_671 = name_671.create(body); + if(this.head == null) + { + this.head = this.tail = item; + } + else + { + this.tail.next = item; + item.prev = this.tail; + this.tail = item; + } + ++this.size; + } + + public function remove(body:name_271) : Boolean + { + var item:name_671 = this.method_628(body); + if(item == null) + { + return false; + } + if(item == this.head) + { + if(this.size == 1) + { + this.head = this.tail = null; + } + else + { + this.head = item.next; + this.head.prev = null; + } + } + else if(item == this.tail) + { + this.tail = item.prev; + this.tail.next = null; + } + else + { + item.prev.next = item.next; + item.next.prev = item.prev; + } + item.dispose(); + --this.size; + return true; + } + + public function method_628(body:name_271) : name_671 + { + var item:name_671 = this.head; + while(item != null && item.body != body) + { + item = item.next; + } + return item; + } + } +} + diff --git a/src/package_93/name_294.as b/src/package_93/name_294.as new file mode 100644 index 0000000..06a74a2 --- /dev/null +++ b/src/package_93/name_294.as @@ -0,0 +1,142 @@ +package package_93 +{ + import flash.display.DisplayObjectContainer; + import flash.display.Sprite; + import flash.events.TimerEvent; + import flash.utils.Timer; + import flash.utils.getTimer; + import package_10.class_1; + + public class name_294 extends class_1 + { + private static const MESSAGE_SPACING_Y:int = 19; + + private static const MESSAGE_LIFE_TIME:int = 5000; + + private var maxMessagesNumber:int; + + private var var_436:Sprite; + + private var var_435:Vector.; + + private var timer:Timer; + + public function name_294(priority:int, maxMessagesNumber:int, container:DisplayObjectContainer, messagesX:int, messagesY:int) + { + super(priority); + this.maxMessagesNumber = maxMessagesNumber; + this.var_436 = new Sprite(); + this.var_436.x = messagesX; + this.var_436.y = messagesY; + container.addChild(this.var_436); + this.var_435 = new Vector.(); + this.timer = new Timer(1000); + this.timer.addEventListener(TimerEvent.TIMER,this.method_391); + } + + public function set messagesX(value:int) : void + { + this.var_436.x = value; + } + + public function set messagesY(value:int) : void + { + this.var_436.y = value; + } + + public function name_305(text:String, color:uint) : void + { + var message:Message = new Message(text,color,MESSAGE_LIFE_TIME); + this.var_435.push(message); + this.var_436.addChild(message); + if(this.var_435.length > this.maxMessagesNumber) + { + this.method_389(0); + } + this.method_390(); + this.method_388(); + } + + override public function stop() : void + { + this.var_436.parent.removeChild(this.var_436); + this.timer.stop(); + } + + private function method_388() : void + { + if(this.var_435.length > 0) + { + if(!this.timer.running) + { + this.timer.start(); + } + } + else if(this.timer.running) + { + this.timer.stop(); + } + } + + private function method_390() : void + { + var message:Message = null; + for(var i:int = 0; i < this.var_435.length; i++) + { + message = this.var_435[i]; + message.y = i * MESSAGE_SPACING_Y; + } + } + + private function method_391(event:TimerEvent) : void + { + this.method_392(getTimer()); + this.method_390(); + this.method_388(); + } + + private function method_392(time:int) : void + { + if(this.var_435.length > 0) + { + if(Message(this.var_435[0]).expirationTime <= time) + { + this.method_389(0); + } + } + } + + private function method_389(i:int) : void + { + this.var_436.removeChild(this.var_435[i]); + this.var_435.splice(i,1); + } + } +} + +import flash.display.DisplayObject; +import flash.display.InteractiveObject; +import flash.events.EventDispatcher; +import flash.text.TextField; +import flash.text.TextFieldAutoSize; +import flash.text.TextFormat; +import flash.utils.getTimer; + +class Message extends TextField +{ + private static const DEFAULT_TEXT_FORMAT:TextFormat = new TextFormat("Tahoma",12); + + public var expirationTime:int; + + public function Message(text:String, color:uint, lifeTime:int) + { + super(); + autoSize = TextFieldAutoSize.LEFT; + defaultTextFormat = DEFAULT_TEXT_FORMAT; + textColor = color; + this.text = text; + this.expirationTime = getTimer() + lifeTime; + background = true; + backgroundColor = 0; + } +} diff --git a/src/package_94/name_276.as b/src/package_94/name_276.as new file mode 100644 index 0000000..08ce264 --- /dev/null +++ b/src/package_94/name_276.as @@ -0,0 +1,327 @@ +package package_94 +{ + import package_10.class_17; + import package_10.name_17; + import package_10.name_57; + import package_114.name_488; + import package_114.name_489; + import package_27.name_501; + import package_44.name_465; + import package_46.Matrix4; + import package_46.name_194; + import package_71.name_234; + import package_71.name_252; + import package_75.class_15; + import package_75.name_236; + import package_75.name_309; + import package_76.name_235; + import package_86.name_257; + import package_86.name_484; + import package_86.name_500; + + public class name_276 extends class_17 implements class_15, name_465 + { + public var var_430:Number; + + private var turnDirection:int; + + private var direction:Number = 0; + + private var var_433:Number = 0; + + private var maxRotationSpeed:Number = 0; + + private var rotationAcceleration:Number = 0; + + private var var_431:Number = 0; + + private var var_434:Boolean; + + private var chassisComponent:name_236; + + private var gameKernel:name_17; + + private var turret:name_234; + + private var primitives:Vector.; + + private var var_432:name_194; + + private var var_426:Boolean; + + private var var_424:name_488; + + private var var_429:Matrix4 = new Matrix4(); + + public function name_276(turret:name_234, maxRotationSpeed:Number, rotationAcceleration:Number) + { + super(); + this.maxRotationSpeed = maxRotationSpeed; + this.rotationAcceleration = rotationAcceleration; + this.primitives = new Vector.(); + this.var_432 = new name_194(); + this.setTurret(turret); + } + + override public function addToGame(gameKernel:name_17) : void + { + this.gameKernel = gameKernel; + } + + override public function initComponent() : void + { + this.chassisComponent = name_236(entity.getComponentStrict(name_236)); + this.chassisComponent.name_503(this.var_432); + this.chassisComponent.setTurret(this); + this.method_384(); + name_309(entity.getComponentStrict(name_309)).name_507(this); + this.var_424 = new name_488(); + this.var_424.name_486(entity,name_252.SET_RESPAWN_STATE,new name_487(this)); + var activeState:name_491 = new name_491(this); + this.var_424.name_486(entity,name_252.SET_ACTIVATING_STATE,activeState); + this.var_424.name_486(entity,name_252.SET_ACTIVE_STATE,activeState); + this.var_424.name_486(entity,name_252.SET_DEAD_STATE,new name_492(this)); + this.var_424.name_493 = name_489.INSTANCE; + entity.addEventHandler(name_57.BATTLE_FINISHED,this.method_386); + } + + public function getBarrelCount() : int + { + return this.turret.var_421.length; + } + + public function getGunData(barrelIndex:int, barrelOrigin:name_194, gunDirection:name_194, gunElevationAxis:name_194) : void + { + var muzzlePoint:name_194 = this.method_385(barrelIndex); + barrelOrigin.reset(muzzlePoint.x,0,muzzlePoint.z); + barrelOrigin.transform4(this.var_429); + this.var_429.getAxis(0,gunElevationAxis); + this.var_429.getAxis(1,gunDirection); + } + + public function getGunMuzzleData(barrelIndex:int, muzzlePosition:name_194, gunDirection:name_194) : void + { + var localMuzzlePoint:name_194 = this.method_385(barrelIndex); + this.var_429.method_353(localMuzzlePoint,muzzlePosition); + this.var_429.getAxis(1,gunDirection); + } + + public function getGunMuzzleData2(barrelIndex:int, barrelOrigin:name_194, muzzlePosition:name_194) : void + { + var localMuzzlePoint:name_194 = this.method_385(barrelIndex); + barrelOrigin.reset(localMuzzlePoint.x,0,localMuzzlePoint.z); + barrelOrigin.transform4(this.var_429); + this.var_429.method_353(localMuzzlePoint,muzzlePosition); + } + + public function getBarrelLength(barrelIndex:int) : Number + { + return this.turret.var_421[barrelIndex].y; + } + + public function getInterpolatedTurretDirection() : Number + { + return this.var_430; + } + + public function getChassisMatrix() : Matrix4 + { + return this.chassisComponent.name_502(); + } + + public function getSkinMountPoint(vector:name_194) : void + { + this.chassisComponent.name_505(vector); + } + + public function setTurret(turret:name_234) : void + { + if(turret == null) + { + throw new ArgumentError("Parameter turret is null"); + } + if(this.turret == turret) + { + return; + } + this.turret = turret; + this.method_387(name_257.TANK,name_257.TANK | name_257.STATIC); + if(this.chassisComponent != null) + { + this.chassisComponent.setTurret(this); + this.method_384(); + } + } + + public function setTurretMountPoint(point:name_194) : void + { + this.var_432.copy(point); + this.method_384(); + } + + public function getTurretDirection() : Number + { + return this.direction; + } + + public function setTurretDirection(value:Number) : void + { + this.direction = name_501.name_506(value); + this.method_384(); + } + + public function setTurretControls(turretTurnDirection:int) : Boolean + { + if(this.turnDirection == turretTurnDirection) + { + return false; + } + this.turnDirection = turretTurnDirection; + this.var_434 = false; + return true; + } + + public function centerTurret(value:Boolean) : void + { + this.var_434 = value; + } + + public function getTurretPrimitives() : Vector. + { + return this.primitives; + } + + public function updateBeforeSimulation(physicsStep:int) : void + { + var dt:Number = NaN; + this.var_433 = this.direction; + if(!this.var_434 && this.turnDirection == 0) + { + this.var_431 = 0; + } + else + { + dt = 0.001 * physicsStep; + this.var_431 += this.rotationAcceleration * dt; + if(this.var_431 > this.maxRotationSpeed) + { + this.var_431 = this.maxRotationSpeed; + } + if(this.var_434) + { + this.direction = name_501.name_504(this.direction,0,this.var_431 * dt); + if(this.direction == 0) + { + this.var_434 = false; + } + this.method_384(); + } + else + { + this.setTurretDirection(this.direction + this.turnDirection * this.var_431 * dt); + } + } + } + + public function updateAfterSimulation(physicsStep:int) : void + { + } + + public function interpolate(interpolationCoeff:Number) : void + { + var angleDiff:Number = this.direction - this.var_433; + if(angleDiff > Math.PI) + { + angleDiff = 2 * Math.PI - angleDiff; + this.var_430 = this.var_433 - angleDiff * interpolationCoeff; + if(this.var_430 < -Math.PI) + { + this.var_430 += 2 * Math.PI; + } + } + else if(angleDiff < -Math.PI) + { + angleDiff += 2 * Math.PI; + this.var_430 = this.var_433 + angleDiff * interpolationCoeff; + if(this.var_430 > Math.PI) + { + this.var_430 -= 2 * Math.PI; + } + } + else + { + this.var_430 = this.var_433 * (1 - interpolationCoeff) + this.direction * interpolationCoeff; + } + this.var_429.method_347(); + this.var_429.name_196(0,0,this.var_430); + this.var_429.name_201(this.var_432); + this.var_429.append(this.chassisComponent.name_502()); + } + + internal function addToScene() : void + { + if(!this.var_426) + { + this.gameKernel.method_112().addControllerBefore(this); + this.var_426 = true; + } + } + + internal function removeFromScene() : void + { + if(this.var_426) + { + this.gameKernel.method_112().removeControllerBefore(this); + this.var_426 = false; + } + } + + private function method_385(barrelIndex:int) : name_194 + { + return this.turret.var_421[barrelIndex]; + } + + private function method_387(collisionGroup:int, collisionMask:int) : void + { + var boxData:name_484 = null; + var collisioinBox:name_500 = null; + this.primitives.length = 0; + for each(boxData in this.turret.var_422) + { + collisioinBox = new name_500(boxData.hs,boxData.matrix,collisionGroup,collisionMask); + collisioinBox.localTransform = new Matrix4(); + this.primitives.push(collisioinBox); + } + } + + private function method_384() : void + { + var collisionPrimitive:name_500 = null; + var m:Matrix4 = null; + var actualDirection:Number = -this.direction; + var cos:Number = Number(Math.cos(actualDirection)); + var sin:Number = Number(Math.sin(actualDirection)); + var numPrimitives:uint = uint(this.primitives.length); + for(var i:int = 0; i < numPrimitives; i++) + { + collisionPrimitive = name_500(this.primitives[i]); + m = collisionPrimitive.localTransform; + m.method_347(); + m.a = cos; + m.b = sin; + m.e = -sin; + m.f = cos; + m.d = this.var_432.x; + m.h = this.var_432.y; + m.l = this.var_432.z; + m.prepend(collisionPrimitive.m); + } + } + + private function method_386(gameType:String, gameData:*) : void + { + this.setTurretControls(0); + } + } +} + diff --git a/src/package_94/name_487.as b/src/package_94/name_487.as new file mode 100644 index 0000000..563f0cd --- /dev/null +++ b/src/package_94/name_487.as @@ -0,0 +1,29 @@ +package package_94 +{ + import package_114.class_35; + + public class name_487 implements class_35 + { + private var component:name_276; + + public function name_487(component:name_276) + { + super(); + this.component = component; + } + + public function start(data:*) : void + { + this.component.setTurretControls(0); + this.component.centerTurret(false); + this.component.setTurretDirection(0); + this.component.removeFromScene(); + } + + public function stop() : void + { + this.component.addToScene(); + } + } +} + diff --git a/src/package_94/name_491.as b/src/package_94/name_491.as new file mode 100644 index 0000000..e6a6141 --- /dev/null +++ b/src/package_94/name_491.as @@ -0,0 +1,25 @@ +package package_94 +{ + import package_114.class_35; + + public class name_491 implements class_35 + { + private var component:name_276; + + public function name_491(component:name_276) + { + super(); + this.component = component; + } + + public function start(data:*) : void + { + this.component.addToScene(); + } + + public function stop() : void + { + } + } +} + diff --git a/src/package_94/name_492.as b/src/package_94/name_492.as new file mode 100644 index 0000000..63d8cf6 --- /dev/null +++ b/src/package_94/name_492.as @@ -0,0 +1,26 @@ +package package_94 +{ + import package_114.class_35; + + public class name_492 implements class_35 + { + private var component:name_276; + + public function name_492(component:name_276) + { + super(); + this.component = component; + } + + public function start(data:*) : void + { + this.component.setTurretControls(0); + this.component.centerTurret(false); + } + + public function stop() : void + { + } + } +} + diff --git a/src/package_95/class_28.as b/src/package_95/class_28.as new file mode 100644 index 0000000..df4ee2c --- /dev/null +++ b/src/package_95/class_28.as @@ -0,0 +1,10 @@ +package package_95 +{ + public interface class_28 + { + function start() : void; + + function stop() : void; + } +} + diff --git a/src/package_95/name_281.as b/src/package_95/name_281.as new file mode 100644 index 0000000..d3dc03d --- /dev/null +++ b/src/package_95/name_281.as @@ -0,0 +1,165 @@ +package package_95 +{ + import flash.utils.Dictionary; + import package_10.class_17; + import package_10.name_17; + import package_46.name_194; + import package_74.name_508; + import package_75.class_15; + import package_75.name_236; + import package_79.name_282; + + public class name_281 extends class_17 implements name_508 + { + private static var barrelOrigin:name_194 = new name_194(); + + private static var gunDirection:name_194 = new name_194(); + + private static var gunElevationAxis:name_194 = new name_194(); + + private static var BARREL_INDEX:int = 0; + + private var turret:class_15; + + private var chassis:name_236; + + private var targetingSystem:name_282; + + private var effects:class_28; + + private var fullDamageRange:Number; + + private var rangeDiscretization:Number; + + private var targetToDistance:Dictionary; + + private var var_459:Dictionary; + + private var callback:name_545; + + private var isLocal:Boolean; + + private var createStarted:Boolean; + + public function name_281(fullDamageRange:Number, rangeDiscretization:Number, targetingSystem:name_282, callback:name_545, isLocal:Boolean, createStarted:Boolean) + { + super(); + this.fullDamageRange = fullDamageRange; + this.rangeDiscretization = rangeDiscretization; + this.targetingSystem = targetingSystem; + this.callback = callback; + this.isLocal = isLocal; + this.createStarted = createStarted; + this.targetToDistance = new Dictionary(); + this.var_459 = new Dictionary(); + } + + public function method_383(callback:name_545) : void + { + this.callback = callback; + } + + override public function initComponent() : void + { + this.turret = class_15(entity.getComponentStrict(class_15)); + this.chassis = name_236(entity.getComponentStrict(name_236)); + this.effects = class_28(entity.getComponentStrict(class_28)); + } + + override public function addToGame(gameKernel:name_17) : void + { + if(this.createStarted) + { + this.start(); + } + } + + override public function removeFromGame(gameKernel:name_17) : void + { + } + + public function start() : void + { + this.effects.start(); + if(this.callback != null) + { + this.callback.name_548(); + } + } + + public function stop() : void + { + var key:* = undefined; + this.effects.stop(); + if(this.callback != null) + { + this.callback.name_547(); + } + if(this.isLocal) + { + for(key in this.targetToDistance) + { + delete this.targetToDistance[key]; + } + } + } + + public function update() : void + { + var key:* = undefined; + var targetsChanged:Boolean = false; + var storedDistance:Number = NaN; + var newDistance:Number = NaN; + var difference:Number = NaN; + var tmp:Dictionary = null; + this.turret.getGunData(BARREL_INDEX,barrelOrigin,gunDirection,gunElevationAxis); + var barrelLength:Number = Number(this.turret.getBarrelLength(BARREL_INDEX)); + this.targetingSystem.method_433(this.chassis.getBody(),barrelOrigin,barrelLength,0,gunDirection,gunElevationAxis,this.var_459); + for(key in this.var_459) + { + storedDistance = Number(this.targetToDistance[key]); + if(isNaN(storedDistance)) + { + targetsChanged = true; + break; + } + newDistance = Number(this.var_459[key]); + if(storedDistance > this.fullDamageRange || newDistance > this.fullDamageRange) + { + difference = newDistance - storedDistance; + if(difference > this.rangeDiscretization || difference < -this.rangeDiscretization) + { + targetsChanged = true; + break; + } + } + } + if(!targetsChanged) + { + for(key in this.targetToDistance) + { + if(this.var_459[key] == null) + { + targetsChanged = true; + break; + } + } + } + if(targetsChanged) + { + tmp = this.targetToDistance; + this.targetToDistance = this.var_459; + this.var_459 = tmp; + if(this.callback != null) + { + this.callback.name_546(this.targetToDistance); + } + } + for(key in this.var_459) + { + delete this.var_459[key]; + } + } + } +} + diff --git a/src/package_95/name_545.as b/src/package_95/name_545.as new file mode 100644 index 0000000..9476c67 --- /dev/null +++ b/src/package_95/name_545.as @@ -0,0 +1,14 @@ +package package_95 +{ + import flash.utils.Dictionary; + + public interface name_545 + { + function name_548() : void; + + function name_547() : void; + + function name_546(param1:Dictionary) : void; + } +} + diff --git a/src/package_96/name_279.as b/src/package_96/name_279.as new file mode 100644 index 0000000..e1931f3 --- /dev/null +++ b/src/package_96/name_279.as @@ -0,0 +1,289 @@ +package package_96 +{ + import alternativa.engine3d.alternativa3d; + import flash.utils.ByteArray; + import flash.utils.Endian; + import package_19.name_380; + import package_21.name_126; + import package_21.name_386; + import package_21.name_78; + import package_28.name_119; + import package_4.class_4; + + use namespace alternativa3d; + + public class name_279 extends name_380 + { + public function name_279(width:Number = 100, length:Number = 100, height:Number = 100, widthSegments:uint = 1, lengthSegments:uint = 1, heightSegments:uint = 1, reverse:Boolean = false, material:class_4 = null) + { + var x:int = 0; + var y:int = 0; + var z:int = 0; + var halfHeight:Number = NaN; + super(); + if(widthSegments <= 0 || lengthSegments <= 0 || heightSegments <= 0) + { + return; + } + var indices:Vector. = new Vector.(); + var wp:int = widthSegments + 1; + var lp:int = lengthSegments + 1; + var hp:int = heightSegments + 1; + var halfWidth:Number = width * 0.5; + var halfLength:Number = length * 0.5; + halfHeight = height * 0.5; + var wd:Number = 1 / widthSegments; + var ld:Number = 1 / lengthSegments; + var hd:Number = 1 / heightSegments; + var ws:Number = width / widthSegments; + var ls:Number = length / lengthSegments; + var hs:Number = height / heightSegments; + var vertices:ByteArray = new ByteArray(); + vertices.endian = Endian.LITTLE_ENDIAN; + var offset:uint = 0; + for(x = 0; x < wp; x++) + { + for(y = 0; y < lp; y++) + { + vertices.writeFloat(x * ws - halfWidth); + vertices.writeFloat(y * ls - halfLength); + vertices.writeFloat(-halfHeight); + vertices.writeFloat((widthSegments - x) * wd); + vertices.writeFloat((lengthSegments - y) * ld); + vertices.length = vertices.position = vertices.position + 28; + } + } + offset = uint(vertices.position); + for(x = 0; x < wp; x++) + { + for(y = 0; y < lp; ) + { + if(x < widthSegments && y < lengthSegments) + { + this.method_375(indices,vertices,(x + 1) * lp + y + 1,(x + 1) * lp + y,x * lp + y,x * lp + y + 1,0,0,-1,halfHeight,0,-1,0,0,reverse); + } + y++; + } + } + vertices.position = offset; + var o:uint = uint(wp * lp); + for(x = 0; x < wp; x++) + { + for(y = 0; y < lp; y++) + { + vertices.writeFloat(x * ws - halfWidth); + vertices.writeFloat(y * ls - halfLength); + vertices.writeFloat(halfHeight); + vertices.writeFloat(x * wd); + vertices.writeFloat((lengthSegments - y) * ld); + vertices.length = vertices.position = vertices.position + 28; + } + } + offset = uint(vertices.position); + for(x = 0; x < wp; x++) + { + for(y = 0; y < lp; ) + { + if(x < widthSegments && y < lengthSegments) + { + this.method_375(indices,vertices,o + x * lp + y,o + (x + 1) * lp + y,o + (x + 1) * lp + y + 1,o + x * lp + y + 1,0,0,1,halfHeight,0,-1,0,0,reverse); + } + y++; + } + } + vertices.position = offset; + o += wp * lp; + for(x = 0; x < wp; x++) + { + for(z = 0; z < hp; z++) + { + vertices.writeFloat(x * ws - halfWidth); + vertices.writeFloat(-halfLength); + vertices.writeFloat(z * hs - halfHeight); + vertices.writeFloat(x * wd); + vertices.writeFloat((heightSegments - z) * hd); + vertices.length = vertices.position = vertices.position + 28; + } + } + offset = uint(vertices.position); + for(x = 0; x < wp; x++) + { + for(z = 0; z < hp; ) + { + if(x < widthSegments && z < heightSegments) + { + this.method_375(indices,vertices,o + x * hp + z,o + (x + 1) * hp + z,o + (x + 1) * hp + z + 1,o + x * hp + z + 1,0,-1,0,halfLength,0,0,-1,0,reverse); + } + z++; + } + } + vertices.position = offset; + o += wp * hp; + for(x = 0; x < wp; x++) + { + for(z = 0; z < hp; z++) + { + vertices.writeFloat(x * ws - halfWidth); + vertices.writeFloat(halfLength); + vertices.writeFloat(z * hs - halfHeight); + vertices.writeFloat((widthSegments - x) * wd); + vertices.writeFloat((heightSegments - z) * hd); + vertices.length = vertices.position = vertices.position + 28; + } + } + offset = uint(vertices.position); + for(x = 0; x < wp; x++) + { + for(z = 0; z < hp; ) + { + if(x < widthSegments && z < heightSegments) + { + this.method_375(indices,vertices,o + x * hp + z,o + x * hp + z + 1,o + (x + 1) * hp + z + 1,o + (x + 1) * hp + z,0,1,0,halfLength,0,0,-1,0,reverse); + } + z++; + } + } + vertices.position = offset; + o += wp * hp; + for(y = 0; y < lp; y++) + { + for(z = 0; z < hp; z++) + { + vertices.writeFloat(-halfWidth); + vertices.writeFloat(y * ls - halfLength); + vertices.writeFloat(z * hs - halfHeight); + vertices.writeFloat((lengthSegments - y) * ld); + vertices.writeFloat((heightSegments - z) * hd); + vertices.length = vertices.position = vertices.position + 28; + } + } + offset = uint(vertices.position); + for(y = 0; y < lp; y++) + { + for(z = 0; z < hp; ) + { + if(y < lengthSegments && z < heightSegments) + { + this.method_375(indices,vertices,o + y * hp + z,o + y * hp + z + 1,o + (y + 1) * hp + z + 1,o + (y + 1) * hp + z,-1,0,0,halfWidth,0,0,-1,0,reverse); + } + z++; + } + } + vertices.position = offset; + o += lp * hp; + for(y = 0; y < lp; y++) + { + for(z = 0; z < hp; z++) + { + vertices.writeFloat(halfWidth); + vertices.writeFloat(y * ls - halfLength); + vertices.writeFloat(z * hs - halfHeight); + vertices.writeFloat(y * ld); + vertices.writeFloat((heightSegments - z) * hd); + vertices.length = vertices.position = vertices.position + 28; + } + } + for(y = 0; y < lp; y++) + { + for(z = 0; z < hp; ) + { + if(y < lengthSegments && z < heightSegments) + { + this.method_375(indices,vertices,o + y * hp + z,o + (y + 1) * hp + z,o + (y + 1) * hp + z + 1,o + y * hp + z + 1,1,0,0,halfWidth,0,0,-1,0,reverse); + } + z++; + } + } + geometry = new name_119(); + geometry.alternativa3d::_indices = indices; + var attributes:Array = new Array(); + attributes[0] = name_126.POSITION; + attributes[1] = name_126.POSITION; + attributes[2] = name_126.POSITION; + attributes[3] = name_126.TEXCOORDS[0]; + attributes[4] = name_126.TEXCOORDS[0]; + attributes[5] = name_126.NORMAL; + attributes[6] = name_126.NORMAL; + attributes[7] = name_126.NORMAL; + attributes[8] = name_126.TANGENT4; + attributes[9] = name_126.TANGENT4; + attributes[10] = name_126.TANGENT4; + attributes[11] = name_126.TANGENT4; + geometry.addVertexStream(attributes); + geometry.alternativa3d::_vertexStreams[0].data = vertices; + geometry.alternativa3d::_numVertices = vertices.length / 48; + addSurface(material,0,indices.length / 3); + boundBox = new name_386(); + boundBox.minX = -halfWidth; + boundBox.minY = -halfLength; + boundBox.minZ = -halfHeight; + boundBox.maxX = halfWidth; + boundBox.maxY = halfLength; + boundBox.maxZ = halfHeight; + } + + private function method_375(indices:Vector., vertices:ByteArray, a:int, b:int, c:int, d:int, nx:Number, ny:Number, nz:Number, no:Number, tx:Number, ty:Number, tz:Number, tw:Number, reverse:Boolean) : void + { + var v:int = 0; + if(reverse) + { + nx = -nx; + ny = -ny; + nz = -nz; + no = -no; + v = a; + a = d; + d = v; + v = b; + b = c; + c = v; + } + indices.push(a); + indices.push(b); + indices.push(c); + indices.push(a); + indices.push(c); + indices.push(d); + vertices.position = a * 48 + 20; + vertices.writeFloat(nx); + vertices.writeFloat(ny); + vertices.writeFloat(nz); + vertices.writeFloat(tx); + vertices.writeFloat(ty); + vertices.writeFloat(tz); + vertices.writeFloat(tw); + vertices.position = b * 48 + 20; + vertices.writeFloat(nx); + vertices.writeFloat(ny); + vertices.writeFloat(nz); + vertices.writeFloat(tx); + vertices.writeFloat(ty); + vertices.writeFloat(tz); + vertices.writeFloat(tw); + vertices.position = c * 48 + 20; + vertices.writeFloat(nx); + vertices.writeFloat(ny); + vertices.writeFloat(nz); + vertices.writeFloat(tx); + vertices.writeFloat(ty); + vertices.writeFloat(tz); + vertices.writeFloat(tw); + vertices.position = d * 48 + 20; + vertices.writeFloat(nx); + vertices.writeFloat(ny); + vertices.writeFloat(nz); + vertices.writeFloat(tx); + vertices.writeFloat(ty); + vertices.writeFloat(tz); + vertices.writeFloat(tw); + } + + override public function clone() : name_78 + { + var res:name_279 = new name_279(0,0,0,0,0,0); + res.clonePropertiesFrom(this); + return res; + } + } +} + diff --git a/src/package_97/name_292.as b/src/package_97/name_292.as new file mode 100644 index 0000000..794549f --- /dev/null +++ b/src/package_97/name_292.as @@ -0,0 +1,19 @@ +package package_97 +{ + import package_117.name_542; + import package_92.name_271; + + public class name_292 implements name_542 + { + public function name_292() + { + super(); + } + + public function name_541(body:name_271, distance:Number) : Number + { + return 1; + } + } +} + diff --git a/src/package_98/name_290.as b/src/package_98/name_290.as new file mode 100644 index 0000000..1762246 --- /dev/null +++ b/src/package_98/name_290.as @@ -0,0 +1,53 @@ +package package_98 +{ + import package_18.name_44; + import package_5.name_3; + import package_6.name_4; + + public class name_290 + { + private static const LIGHT_TYPE_AMBIENT:String = "a"; + + private static const LIGHT_TYPE_DIRECTIONAL:String = "d"; + + private static const LIGHT_TYPE_OMNI:String = "o"; + + private static const LIGHT_TYPE_SPOT:String = "s"; + + private var renderSystem:name_44; + + private var var_471:Object = {}; + + public function name_290(param1:name_44) + { + super(); + this.renderSystem = param1; + var _loc2_:name_4 = name_4(name_3.name_8().name_30(name_4)); + _loc2_.name_45("light",this.method_469); + this.var_471[LIGHT_TYPE_AMBIENT] = new name_558(param1); + this.var_471[LIGHT_TYPE_DIRECTIONAL] = new name_559(param1); + this.var_471[LIGHT_TYPE_OMNI] = new name_560(param1); + this.var_471[LIGHT_TYPE_SPOT] = new name_561(param1); + } + + private function method_469(param1:name_4, param2:Array) : void + { + var _loc3_:String = null; + var _loc4_:name_557 = null; + if(param2.length != 0) + { + _loc3_ = param2.shift(); + _loc4_ = this.var_471[_loc3_]; + if(_loc4_ == null) + { + param1.name_145("Unknown light type"); + } + else + { + _loc4_.name_562(param1,param2); + } + } + } + } +} + diff --git a/src/package_98/name_557.as b/src/package_98/name_557.as new file mode 100644 index 0000000..adc7131 --- /dev/null +++ b/src/package_98/name_557.as @@ -0,0 +1,131 @@ +package package_98 +{ + import package_18.name_44; + import package_21.name_116; + import package_6.name_4; + + public class name_557 + { + protected var lastId:int; + + protected var renderSystem:name_44; + + public function name_557(param1:name_44) + { + super(); + this.renderSystem = param1; + } + + final public function name_562(param1:name_4, param2:Array) : void + { + var _loc4_:int = 0; + var _loc5_:name_116 = null; + var _loc6_:String = null; + if(param2.length == 0) + { + param1.name_145("Parameters are expected:"); + param1.name_145("ls -- list lights"); + param1.name_145("add -- add light"); + param1.name_145("del -- delete light"); + param1.name_145("clear -- delete all lights"); + param1.name_145(" -- set property of the light"); + return; + } + var _loc3_:String = param2.shift(); + switch(_loc3_) + { + case "ls": + this.list(param1); + break; + case "add": + _loc4_ = ++this.lastId; + _loc5_ = this.create(param1,param2,_loc4_); + if(_loc5_ != null) + { + param1.name_145("Light has been created: " + _loc5_.name); + param1.name_145(this.lightToString(_loc5_)); + } + break; + case "del": + _loc6_ = param2[0]; + this.del(param1,_loc6_); + break; + case "clear": + this.clear(param1); + break; + default: + _loc5_ = this.modify(param1,_loc3_,param2); + if(_loc5_ != null) + { + param1.name_145("Light has been changed: " + _loc5_.name); + param1.name_145(this.lightToString(_loc5_)); + break; + } + param1.name_145("Light has not been changed or found"); + break; + } + } + + private function clear(param1:name_4) : void + { + var _loc3_:Vector. = null; + var _loc4_:name_116 = null; + var _loc5_:String = null; + var _loc2_:Vector. = this.getLigts(); + if(_loc2_ != null) + { + _loc3_ = new Vector.(); + for each(_loc4_ in _loc2_) + { + _loc3_.push(_loc4_.name); + } + for each(_loc5_ in _loc3_) + { + this.del(param1,_loc5_); + } + } + } + + private function list(param1:name_4) : void + { + var _loc3_:name_116 = null; + var _loc2_:Vector. = this.getLigts(); + for each(_loc3_ in _loc2_) + { + param1.name_145(_loc3_.name + " " + this.lightToString(_loc3_)); + } + } + + protected function getLigts() : Vector. + { + throw new Error("Not imlemented"); + } + + protected function lightToString(param1:name_116) : String + { + return "[None]"; + } + + protected function modify(param1:name_4, param2:String, param3:Array) : name_116 + { + throw new Error("Not implemented"); + } + + protected function create(param1:name_4, param2:Array, param3:int) : name_116 + { + throw new Error("Not implemented"); + } + + protected function del(param1:name_4, param2:String) : name_116 + { + throw new Error("Not implemented"); + } + + final protected function method_761(param1:String, param2:Number = 0) : Number + { + var _loc3_:Number = Number(Number(param1)); + return !!isNaN(_loc3_) ? param2 : _loc3_; + } + } +} + diff --git a/src/package_98/name_558.as b/src/package_98/name_558.as new file mode 100644 index 0000000..bbc38b2 --- /dev/null +++ b/src/package_98/name_558.as @@ -0,0 +1,67 @@ +package package_98 +{ + import package_18.name_44; + import package_21.name_116; + import package_24.name_376; + import package_6.name_4; + + public class name_558 extends name_557 + { + public function name_558(param1:name_44) + { + super(param1); + } + + override protected function lightToString(param1:name_116) : String + { + return "AmbientLight color: 0x" + name_376(param1).color.toString(16); + } + + override protected function create(param1:name_4, param2:Array, param3:int) : name_116 + { + var _loc4_:uint = 0; + var _loc5_:name_376 = null; + if(param2.length == 0) + { + param1.name_145("Color is expected"); + return null; + } + _loc4_ = uint(param2[0]); + _loc5_ = new name_376(_loc4_); + _loc5_.name = "Ambient_" + param3; + renderSystem.lights.ambientLight = _loc5_; + return _loc5_; + } + + override protected function modify(param1:name_4, param2:String, param3:Array) : name_116 + { + var _loc4_:name_376 = renderSystem.lights.ambientLight; + if(_loc4_ != null) + { + if(param3[0] != "color") + { + param1.name_145("Available commands:"); + param1.name_145("color color_value"); + } + else + { + _loc4_.color = param3[1]; + } + } + return _loc4_; + } + + override protected function getLigts() : Vector. + { + return Vector.([renderSystem.lights.ambientLight]); + } + + override protected function del(param1:name_4, param2:String) : name_116 + { + var _loc3_:name_376 = renderSystem.lights.ambientLight; + renderSystem.lights.ambientLight = null; + return _loc3_; + } + } +} + diff --git a/src/package_98/name_559.as b/src/package_98/name_559.as new file mode 100644 index 0000000..2177d8f --- /dev/null +++ b/src/package_98/name_559.as @@ -0,0 +1,48 @@ +package package_98 +{ + import package_18.name_44; + import package_21.name_116; + import package_24.DirectionalLight; + import package_6.name_4; + + public class name_559 extends name_557 + { + public function name_559(param1:name_44) + { + super(param1); + } + + override protected function getLigts() : Vector. + { + return Vector.(renderSystem.lights.directionalLigths.lights); + } + + override protected function del(param1:name_4, param2:String) : name_116 + { + var _loc3_:DirectionalLight = this.method_762(param2); + if(_loc3_ != null) + { + renderSystem.lights.directionalLigths.remove(_loc3_); + } + return _loc3_; + } + + private function method_762(param1:String) : DirectionalLight + { + var _loc3_:DirectionalLight = null; + var _loc2_:Vector. = renderSystem.lights.directionalLigths.lights; + if(_loc2_ != null) + { + for each(_loc3_ in _loc2_) + { + if(_loc3_.name == param1) + { + return _loc3_; + } + } + } + return null; + } + } +} + diff --git a/src/package_98/name_560.as b/src/package_98/name_560.as new file mode 100644 index 0000000..2a7b020 --- /dev/null +++ b/src/package_98/name_560.as @@ -0,0 +1,103 @@ +package package_98 +{ + import package_15.name_718; + import package_18.name_44; + import package_21.name_116; + import package_24.OmniLight; + import package_6.name_4; + + public class name_560 extends name_557 + { + public function name_560(param1:name_44) + { + super(param1); + } + + override protected function lightToString(param1:name_116) : String + { + var _loc2_:OmniLight = OmniLight(param1); + return name_718.name_719("OmniLight color: 0x%1, attenuationBegin: %2, attenuationEnd: %3, x: %4, y: %5, z: %6",_loc2_.color.toString(16),_loc2_.attenuationBegin.toFixed(2),_loc2_.attenuationEnd.toFixed(2),_loc2_.x.toFixed(2),_loc2_.y.toFixed(2),_loc2_.z.toFixed(2)); + } + + override protected function modify(param1:name_4, param2:String, param3:Array) : name_116 + { + var _loc4_:OmniLight = this.method_762(param2); + if(_loc4_ == null) + { + return null; + } + var _loc5_:String = param3.shift(); + switch(_loc5_) + { + case "pos": + _loc4_.x = param3[0]; + _loc4_.y = param3[1]; + _loc4_.z = param3[2]; + break; + case "color": + _loc4_.color = param3[0]; + break; + case "att": + _loc4_.attenuationBegin = method_761(param3[0]); + _loc4_.attenuationEnd = method_761(param3[1]); + break; + default: + param1.method_145(Vector.(["Available commands:","color value","pos x y z","att attenuationBegin attenuationEnd"])); + return null; + } + return _loc4_; + } + + override protected function create(param1:name_4, param2:Array, param3:int) : name_116 + { + if(param2.length == 0) + { + param1.name_145("parameters: color attenuationBegin attenuationEnd x y z"); + return null; + } + var _loc4_:uint = uint(param2[0]); + var _loc5_:Number = method_761(param2[1]); + var _loc6_:Number = method_761(param2[2]); + var _loc7_:OmniLight = new OmniLight(_loc4_,_loc5_,_loc6_); + _loc7_.name = "Omni_" + param3; + _loc7_.x = method_761(param2[3]); + _loc7_.y = method_761(param2[4]); + _loc7_.z = method_761(param2[5]); + renderSystem.lights.omniLigths.add(_loc7_); + return _loc7_; + } + + override protected function getLigts() : Vector. + { + return Vector.(renderSystem.lights.omniLigths.lights); + } + + override protected function del(param1:name_4, param2:String) : name_116 + { + var _loc3_:OmniLight = this.method_762(param2); + if(_loc3_ != null) + { + renderSystem.lights.omniLigths.remove(OmniLight(_loc3_)); + } + return _loc3_; + } + + private function method_762(param1:String) : OmniLight + { + var _loc3_:OmniLight = null; + var _loc2_:Vector. = renderSystem.lights.omniLigths.lights; + if(_loc2_ != null) + { + for each(_loc3_ in _loc2_) + { + if(_loc3_.name == param1) + { + return _loc3_; + } + } + } + return null; + } + } +} + diff --git a/src/package_98/name_561.as b/src/package_98/name_561.as new file mode 100644 index 0000000..881ef2b --- /dev/null +++ b/src/package_98/name_561.as @@ -0,0 +1,126 @@ +package package_98 +{ + import package_15.name_718; + import package_18.name_44; + import package_21.name_116; + import package_24.SpotLight; + import package_6.name_4; + + public class name_561 extends name_557 + { + public function name_561(param1:name_44) + { + super(param1); + } + + override protected function lightToString(param1:name_116) : String + { + var _loc2_:SpotLight = SpotLight(param1); + return name_718.name_719("SpotLight color: 0x%1, attenuationBegin: %2, attenuationEnd: %3, hotspot: %4, falloff: %5, x: %6, y: %7, z: %8",_loc2_.color.toString(16),_loc2_.attenuationBegin.toFixed(2),_loc2_.attenuationEnd.toFixed(2),_loc2_.hotspot.toFixed(2),_loc2_.falloff.toFixed(2),_loc2_.x.toFixed(2),_loc2_.y.toFixed(2),_loc2_.z.toFixed(2)); + } + + override protected function modify(param1:name_4, param2:String, param3:Array) : name_116 + { + var _loc6_:Number = NaN; + var _loc7_:Number = NaN; + var _loc8_:Number = NaN; + var _loc4_:SpotLight = this.method_762(param2); + if(_loc4_ == null) + { + return null; + } + var _loc5_:String = param3.shift(); + switch(_loc5_) + { + case "pos": + _loc4_.x = param3[0]; + _loc4_.y = param3[1]; + _loc4_.z = param3[2]; + break; + case "color": + _loc4_.color = param3[0]; + break; + case "cone": + _loc4_.hotspot = method_761(param3[0],0); + _loc4_.falloff = method_761(param3[1],0); + break; + case "lookAt": + _loc6_ = method_761(param3[0],0); + _loc7_ = method_761(param3[1],0); + _loc8_ = method_761(param3[2],0); + _loc4_.lookAt(_loc6_,_loc7_,_loc8_); + param1.name_145("Looking at " + _loc6_ + ", " + _loc7_ + ", " + _loc8_); + break; + case "att": + _loc4_.attenuationBegin = method_761(param3[0]); + _loc4_.attenuationEnd = method_761(param3[1]); + break; + default: + param1.method_145(Vector.(["Available commands:","color value","att attenuationBegin attenuationEnd","cone hotspot falloff","pos x y z","lookAt x y z"])); + return null; + } + return _loc4_; + } + + override protected function create(param1:name_4, param2:Array, param3:int) : name_116 + { + if(param2.length == 0) + { + param1.name_145("parameters: color attenuationBegin attenuationEnd hotspot falloff x y z lookX lookY lookZ"); + return null; + } + var _loc4_:int = int(param2[0]); + var _loc5_:Number = method_761(param2[1]); + var _loc6_:Number = method_761(param2[2]); + var _loc7_:Number = method_761(param2[3]); + var _loc8_:Number = method_761(param2[4]); + var _loc9_:Number = method_761(param2[5]); + var _loc10_:Number = method_761(param2[6]); + var _loc11_:Number = method_761(param2[7]); + var _loc12_:Number = method_761(param2[8]); + var _loc13_:Number = method_761(param2[9]); + var _loc14_:Number = method_761(param2[10]); + var _loc15_:SpotLight = new SpotLight(_loc4_,_loc5_,_loc6_,_loc7_,_loc8_); + _loc15_.name = "Spot_" + param3; + _loc15_.x = _loc9_; + _loc15_.y = _loc10_; + _loc15_.z = _loc11_; + _loc15_.lookAt(_loc12_,_loc13_,_loc14_); + renderSystem.lights.spotLights.add(_loc15_); + return _loc15_; + } + + override protected function getLigts() : Vector. + { + return Vector.(renderSystem.lights.spotLights.lights); + } + + override protected function del(param1:name_4, param2:String) : name_116 + { + var _loc3_:SpotLight = this.method_762(param2); + if(_loc3_ != null) + { + renderSystem.lights.spotLights.remove(SpotLight(_loc3_)); + } + return _loc3_; + } + + private function method_762(param1:String) : SpotLight + { + var _loc3_:SpotLight = null; + var _loc2_:Vector. = renderSystem.lights.spotLights.lights; + if(_loc2_ != null) + { + for each(_loc3_ in _loc2_) + { + if(_loc3_.name == param1) + { + return _loc3_; + } + } + } + return null; + } + } +} + diff --git a/src/package_99/name_285.as b/src/package_99/name_285.as new file mode 100644 index 0000000..047b96d --- /dev/null +++ b/src/package_99/name_285.as @@ -0,0 +1,53 @@ +package package_99 +{ + import flash.display.Sprite; + import flash.text.TextField; + import flash.text.TextFieldAutoSize; + import flash.text.TextFormat; + import flash.utils.Dictionary; + + public class name_285 extends Sprite + { + private var values:Dictionary; + + private var count:int; + + public function name_285() + { + super(); + this.values = new Dictionary(); + mouseEnabled = false; + tabEnabled = false; + mouseChildren = false; + tabChildren = false; + } + + public function method_458(param1:String, ... rest) : void + { + var _loc3_:TextField = this.values[param1]; + if(_loc3_ == null) + { + _loc3_ = this.method_457(); + this.values[param1] = _loc3_; + } + _loc3_.text = param1 + ": " + rest.join(" "); + } + + public function method_459(param1:String) : void + { + this.method_457().text = param1; + } + + private function method_457() : TextField + { + var _loc1_:TextField = new TextField(); + _loc1_.autoSize = TextFieldAutoSize.LEFT; + addChild(_loc1_); + _loc1_.defaultTextFormat = new TextFormat("Tahoma",11,16777215); + _loc1_.y = this.count * 20; + ++this.count; + return _loc1_; + } + } +} +