Section 1
//AdLoader (CPMStar.AdLoader)
package CPMStar {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
public class AdLoader {
private static var cpmstarLoader:Loader;
public static function LoadAd(_arg1:int, _arg2:int):DisplayObject{
var _local3:String;
Security.allowDomain("server.cpmstar.com");
_local3 = "http://server.cpmstar.com/adviewas3.swf";
cpmstarLoader = new Loader();
cpmstarLoader.contentLoaderInfo.addEventListener("ioError", onError);
cpmstarLoader.load(new URLRequest(((((_local3 + "?poolid=") + _arg1) + "&subpoolid=") + _arg2)));
return (cpmstarLoader);
}
public static function onError(_arg1:Event){
trace("URL ERROR CPMStar");
}
}
}//package CPMStar
Section 2
//BaseScrollPane (fl.containers.BaseScrollPane)
package fl.containers {
import fl.controls.*;
import flash.display.*;
import fl.core.*;
import flash.events.*;
import flash.geom.*;
import fl.events.*;
public class BaseScrollPane extends UIComponent {
protected var defaultLineScrollSize:Number;// = 4
protected var _maxHorizontalScrollPosition:Number;// = 0
protected var vScrollBar:Boolean;
protected var disabledOverlay:Shape;
protected var hScrollBar:Boolean;
protected var availableWidth:Number;
protected var _verticalPageScrollSize:Number;// = 0
protected var vOffset:Number;// = 0
protected var _verticalScrollBar:ScrollBar;
protected var useFixedHorizontalScrolling:Boolean;// = false
protected var contentWidth:Number;// = 0
protected var contentHeight:Number;// = 0
protected var _horizontalPageScrollSize:Number;// = 0
protected var background:DisplayObject;
protected var _useBitmpScrolling:Boolean;// = false
protected var contentPadding:Number;// = 0
protected var availableHeight:Number;
protected var _horizontalScrollBar:ScrollBar;
protected var contentScrollRect:Rectangle;
protected var _horizontalScrollPolicy:String;
protected var _verticalScrollPolicy:String;
protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"};
private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5};
public function BaseScrollPane(){
contentWidth = 0;
contentHeight = 0;
contentPadding = 0;
vOffset = 0;
_maxHorizontalScrollPosition = 0;
_horizontalPageScrollSize = 0;
_verticalPageScrollSize = 0;
defaultLineScrollSize = 4;
useFixedHorizontalScrolling = false;
_useBitmpScrolling = false;
super();
}
protected function handleWheel(_arg1:MouseEvent):void{
if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){
return;
};
_verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize));
setVerticalScrollPosition(_verticalScrollBar.scrollPosition);
dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition));
}
public function get verticalScrollPosition():Number{
return (_verticalScrollBar.scrollPosition);
}
protected function drawDisabledOverlay():void{
if (enabled){
if (contains(disabledOverlay)){
removeChild(disabledOverlay);
};
} else {
disabledOverlay.x = (disabledOverlay.y = contentPadding);
disabledOverlay.width = availableWidth;
disabledOverlay.height = availableHeight;
disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number);
addChild(disabledOverlay);
};
}
public function set verticalScrollPosition(_arg1:Number):void{
drawNow();
_verticalScrollBar.scrollPosition = _arg1;
setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false);
}
protected function setContentSize(_arg1:Number, _arg2:Number):void{
if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){
return;
};
contentWidth = _arg1;
contentHeight = _arg2;
invalidate(InvalidationType.SIZE);
}
public function get horizontalScrollPosition():Number{
return (_horizontalScrollBar.scrollPosition);
}
public function get horizontalScrollBar():ScrollBar{
return (_horizontalScrollBar);
}
override public function set enabled(_arg1:Boolean):void{
if (enabled == _arg1){
return;
};
_verticalScrollBar.enabled = _arg1;
_horizontalScrollBar.enabled = _arg1;
super.enabled = _arg1;
}
public function get verticalLineScrollSize():Number{
return (_verticalScrollBar.lineScrollSize);
}
public function get horizontalScrollPolicy():String{
return (_horizontalScrollPolicy);
}
protected function calculateAvailableSize():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local1 = ScrollBar.WIDTH;
_local2 = (contentPadding = Number(getStyleValue("contentPadding")));
_local3 = ((height - (2 * _local2)) - vOffset);
vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3)))));
_local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2));
_local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4);
hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0)))));
if (hScrollBar){
_local3 = (_local3 - _local1);
};
if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){
vScrollBar = true;
_local4 = (_local4 - _local1);
};
availableHeight = (_local3 + vOffset);
availableWidth = _local4;
}
public function get maxVerticalScrollPosition():Number{
drawNow();
return (Math.max(0, (contentHeight - availableHeight)));
}
public function set horizontalScrollPosition(_arg1:Number):void{
drawNow();
_horizontalScrollBar.scrollPosition = _arg1;
setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false);
}
public function get horizontalLineScrollSize():Number{
return (_horizontalScrollBar.lineScrollSize);
}
public function set verticalPageScrollSize(_arg1:Number):void{
_verticalPageScrollSize = _arg1;
invalidate(InvalidationType.SIZE);
}
public function get verticalScrollPolicy():String{
return (_verticalScrollPolicy);
}
protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{
}
public function get useBitmapScrolling():Boolean{
return (_useBitmpScrolling);
}
protected function handleScroll(_arg1:ScrollEvent):void{
if (_arg1.target == _verticalScrollBar){
setVerticalScrollPosition(_arg1.position);
} else {
setHorizontalScrollPosition(_arg1.position);
};
}
public function set verticalLineScrollSize(_arg1:Number):void{
_verticalScrollBar.lineScrollSize = _arg1;
}
public function get verticalScrollBar():ScrollBar{
return (_verticalScrollBar);
}
protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{
}
public function set horizontalPageScrollSize(_arg1:Number):void{
_horizontalPageScrollSize = _arg1;
invalidate(InvalidationType.SIZE);
}
override protected function draw():void{
if (isInvalid(InvalidationType.STYLES)){
setStyles();
drawBackground();
if (contentPadding != getStyleValue("contentPadding")){
invalidate(InvalidationType.SIZE, false);
};
};
if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){
drawLayout();
};
updateChildren();
super.draw();
}
public function set horizontalScrollPolicy(_arg1:String):void{
_horizontalScrollPolicy = _arg1;
invalidate(InvalidationType.SIZE);
}
override protected function configUI():void{
var _local1:Graphics;
super.configUI();
contentScrollRect = new Rectangle(0, 0, 85, 85);
_verticalScrollBar = new ScrollBar();
_verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true);
_verticalScrollBar.visible = false;
_verticalScrollBar.lineScrollSize = defaultLineScrollSize;
addChild(_verticalScrollBar);
copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES);
_horizontalScrollBar = new ScrollBar();
_horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL;
_horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true);
_horizontalScrollBar.visible = false;
_horizontalScrollBar.lineScrollSize = defaultLineScrollSize;
addChild(_horizontalScrollBar);
copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES);
disabledOverlay = new Shape();
_local1 = disabledOverlay.graphics;
_local1.beginFill(0xFFFFFF);
_local1.drawRect(0, 0, width, height);
_local1.endFill();
addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true);
}
protected function calculateContentWidth():void{
}
public function get verticalPageScrollSize():Number{
if (isNaN(availableHeight)){
drawNow();
};
return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize);
}
protected function drawLayout():void{
calculateAvailableSize();
calculateContentWidth();
background.width = width;
background.height = height;
if (vScrollBar){
_verticalScrollBar.visible = true;
_verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding);
_verticalScrollBar.y = contentPadding;
_verticalScrollBar.height = availableHeight;
} else {
_verticalScrollBar.visible = false;
};
_verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize);
setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false);
if (hScrollBar){
_horizontalScrollBar.visible = true;
_horizontalScrollBar.x = contentPadding;
_horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding);
_horizontalScrollBar.width = availableWidth;
} else {
_horizontalScrollBar.visible = false;
};
_horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize);
setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false);
drawDisabledOverlay();
}
protected function drawBackground():void{
var _local1:DisplayObject;
_local1 = background;
background = getDisplayObjectInstance(getStyleValue("skin"));
background.width = width;
background.height = height;
addChildAt(background, 0);
if (((!((_local1 == null))) && (!((_local1 == background))))){
removeChild(_local1);
};
}
public function set horizontalLineScrollSize(_arg1:Number):void{
_horizontalScrollBar.lineScrollSize = _arg1;
}
public function get horizontalPageScrollSize():Number{
if (isNaN(availableWidth)){
drawNow();
};
return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize);
}
public function get maxHorizontalScrollPosition():Number{
drawNow();
return (Math.max(0, (contentWidth - availableWidth)));
}
protected function setStyles():void{
copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES);
copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES);
}
protected function updateChildren():void{
_verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled);
_verticalScrollBar.drawNow();
_horizontalScrollBar.drawNow();
}
public function set verticalScrollPolicy(_arg1:String):void{
_verticalScrollPolicy = _arg1;
invalidate(InvalidationType.SIZE);
}
public function set useBitmapScrolling(_arg1:Boolean):void{
_useBitmpScrolling = _arg1;
invalidate(InvalidationType.STATE);
}
public static function getStyleDefinition():Object{
return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition()));
}
}
}//package fl.containers
Section 3
//ScrollPane (fl.containers.ScrollPane)
package fl.containers {
import fl.controls.*;
import flash.display.*;
import fl.core.*;
import flash.events.*;
import fl.managers.*;
import fl.events.*;
import flash.net.*;
import flash.system.*;
import flash.ui.*;
public class ScrollPane extends BaseScrollPane implements IFocusManagerComponent {
protected var scrollDragHPos:Number;
protected var loader:Loader;
protected var yOffset:Number;
protected var currentContent:Object;
protected var xOffset:Number;
protected var _source:Object;// = ""
protected var scrollDragVPos:Number;
protected var _scrollDrag:Boolean;// = false
protected var contentClip:Sprite;
private static var defaultStyles:Object = {upSkin:"ScrollPane_upSkin", disabledSkin:"ScrollPane_disabledSkin", focusRectSkin:null, focusRectPadding:null, contentPadding:0};
public function ScrollPane(){
_source = "";
_scrollDrag = false;
super();
}
public function get source():Object{
return (_source);
}
public function set source(_arg1:Object):void{
var _local2:*;
clearContent();
if (isLivePreview){
return;
};
_source = _arg1;
if ((((_source == "")) || ((_source == null)))){
return;
};
currentContent = getDisplayObjectInstance(_arg1);
if (currentContent != null){
_local2 = contentClip.addChild((currentContent as DisplayObject));
dispatchEvent(new Event(Event.INIT));
update();
} else {
load(new URLRequest(_source.toString()));
};
}
public function get bytesLoaded():Number{
return (((((loader == null)) || ((loader.contentLoaderInfo == null)))) ? 0 : loader.contentLoaderInfo.bytesLoaded);
}
protected function doDrag(_arg1:MouseEvent):void{
var _local2:*;
var _local3:*;
_local2 = (scrollDragVPos - (mouseY - yOffset));
_verticalScrollBar.setScrollPosition(_local2);
setVerticalScrollPosition(_verticalScrollBar.scrollPosition, true);
_local3 = (scrollDragHPos - (mouseX - xOffset));
_horizontalScrollBar.setScrollPosition(_local3);
setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, true);
}
override protected function keyDownHandler(_arg1:KeyboardEvent):void{
var _local2:int;
_local2 = calculateAvailableHeight();
switch (_arg1.keyCode){
case Keyboard.DOWN:
verticalScrollPosition++;
break;
case Keyboard.UP:
verticalScrollPosition--;
break;
case Keyboard.RIGHT:
horizontalScrollPosition++;
break;
case Keyboard.LEFT:
horizontalScrollPosition--;
break;
case Keyboard.END:
verticalScrollPosition = maxVerticalScrollPosition;
break;
case Keyboard.HOME:
verticalScrollPosition = 0;
break;
case Keyboard.PAGE_UP:
verticalScrollPosition = (verticalScrollPosition - _local2);
break;
case Keyboard.PAGE_DOWN:
verticalScrollPosition = (verticalScrollPosition + _local2);
break;
};
}
protected function doStartDrag(_arg1:MouseEvent):void{
if (!enabled){
return;
};
xOffset = mouseX;
yOffset = mouseY;
scrollDragHPos = horizontalScrollPosition;
scrollDragVPos = verticalScrollPosition;
stage.addEventListener(MouseEvent.MOUSE_MOVE, doDrag, false, 0, true);
}
public function get content():DisplayObject{
var _local1:Object;
_local1 = currentContent;
if ((_local1 is URLRequest)){
_local1 = loader.content;
};
return ((_local1 as DisplayObject));
}
public function get percentLoaded():Number{
if (loader != null){
return (Math.round(((bytesLoaded / bytesTotal) * 100)));
};
return (0);
}
protected function endDrag(_arg1:MouseEvent):void{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, doDrag);
}
public function update():void{
var _local1:DisplayObject;
_local1 = contentClip.getChildAt(0);
setContentSize(_local1.width, _local1.height);
}
override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{
var _local3:*;
_local3 = contentClip.scrollRect;
_local3.x = _arg1;
contentClip.scrollRect = _local3;
}
public function refreshPane():void{
if ((_source is URLRequest)){
_source = _source.url;
};
source = _source;
}
protected function passEvent(_arg1:Event):void{
dispatchEvent(_arg1);
}
protected function calculateAvailableHeight():Number{
var _local1:Number;
_local1 = Number(getStyleValue("contentPadding"));
return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0));
}
public function load(_arg1:URLRequest, _arg2:LoaderContext=null):void{
if (_arg2 == null){
_arg2 = new LoaderContext(false, ApplicationDomain.currentDomain);
};
clearContent();
initLoader();
currentContent = (_source = _arg1);
loader.load(_arg1, _arg2);
}
override protected function handleScroll(_arg1:ScrollEvent):void{
passEvent(_arg1);
super.handleScroll(_arg1);
}
override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{
var _local3:*;
_local3 = contentClip.scrollRect;
_local3.y = _arg1;
contentClip.scrollRect = _local3;
}
protected function initLoader():void{
loader = new Loader();
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, passEvent, false, 0, true);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onContentLoad, false, 0, true);
loader.contentLoaderInfo.addEventListener(Event.INIT, passEvent, false, 0, true);
contentClip.addChild(loader);
}
override protected function draw():void{
if (isInvalid(InvalidationType.STYLES)){
drawBackground();
};
if (isInvalid(InvalidationType.STATE)){
setScrollDrag();
};
super.draw();
}
override protected function configUI():void{
super.configUI();
contentClip = new Sprite();
addChild(contentClip);
contentClip.scrollRect = contentScrollRect;
_horizontalScrollPolicy = ScrollPolicy.AUTO;
_verticalScrollPolicy = ScrollPolicy.AUTO;
}
public function set scrollDrag(_arg1:Boolean):void{
_scrollDrag = _arg1;
invalidate(InvalidationType.STATE);
}
protected function clearContent():void{
if (contentClip.numChildren == 0){
return;
};
contentClip.removeChildAt(0);
currentContent = null;
if (loader != null){
try {
loader.close();
} catch(e) {
};
try {
loader.unload();
} catch(e) {
};
loader = null;
};
}
override protected function drawLayout():void{
super.drawLayout();
contentScrollRect = contentClip.scrollRect;
contentScrollRect.width = availableWidth;
contentScrollRect.height = availableHeight;
contentClip.cacheAsBitmap = useBitmapScrolling;
contentClip.scrollRect = contentScrollRect;
contentClip.x = (contentClip.y = contentPadding);
}
override protected function drawBackground():void{
var _local1:DisplayObject;
_local1 = background;
background = getDisplayObjectInstance(getStyleValue((enabled) ? "upSkin" : "disabledSkin"));
background.width = width;
background.height = height;
addChildAt(background, 0);
if (((!((_local1 == null))) && (!((_local1 == background))))){
removeChild(_local1);
};
}
public function get bytesTotal():Number{
return (((((loader == null)) || ((loader.contentLoaderInfo == null)))) ? 0 : loader.contentLoaderInfo.bytesTotal);
}
protected function onContentLoad(_arg1:Event):void{
var _local2:*;
update();
_local2 = calculateAvailableHeight();
calculateAvailableSize();
horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), availableWidth);
verticalScrollBar.setScrollProperties(_local2, 0, (contentHeight - _local2), _local2);
passEvent(_arg1);
}
public function get scrollDrag():Boolean{
return (_scrollDrag);
}
protected function setScrollDrag():void{
if (_scrollDrag){
contentClip.addEventListener(MouseEvent.MOUSE_DOWN, doStartDrag, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, endDrag, false, 0, true);
} else {
contentClip.removeEventListener(MouseEvent.MOUSE_DOWN, doStartDrag);
stage.removeEventListener(MouseEvent.MOUSE_UP, endDrag);
removeEventListener(MouseEvent.MOUSE_MOVE, doDrag);
};
contentClip.buttonMode = _scrollDrag;
}
public static function getStyleDefinition():Object{
return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition()));
}
}
}//package fl.containers
Section 4
//BaseButton (fl.controls.BaseButton)
package fl.controls {
import flash.display.*;
import fl.core.*;
import flash.events.*;
import flash.utils.*;
import fl.events.*;
public class BaseButton extends UIComponent {
protected var _selected:Boolean;// = false
private var unlockedMouseState:String;
protected var pressTimer:Timer;
protected var mouseState:String;
protected var background:DisplayObject;
private var _mouseStateLocked:Boolean;// = false
protected var _autoRepeat:Boolean;// = false
private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35};
public function BaseButton(){
_selected = false;
_autoRepeat = false;
_mouseStateLocked = false;
super();
buttonMode = true;
mouseChildren = false;
useHandCursor = false;
setupMouseEvents();
setMouseState("up");
pressTimer = new Timer(1, 0);
pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true);
}
protected function endPress():void{
pressTimer.reset();
}
public function set mouseStateLocked(_arg1:Boolean):void{
_mouseStateLocked = _arg1;
if (_arg1 == false){
setMouseState(unlockedMouseState);
} else {
unlockedMouseState = mouseState;
};
}
public function get autoRepeat():Boolean{
return (_autoRepeat);
}
public function set autoRepeat(_arg1:Boolean):void{
_autoRepeat = _arg1;
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
mouseEnabled = _arg1;
}
public function get selected():Boolean{
return (_selected);
}
protected function mouseEventHandler(_arg1:MouseEvent):void{
if (_arg1.type == MouseEvent.MOUSE_DOWN){
setMouseState("down");
startPress();
} else {
if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){
setMouseState("over");
endPress();
} else {
if (_arg1.type == MouseEvent.ROLL_OUT){
setMouseState("up");
endPress();
};
};
};
}
public function setMouseState(_arg1:String):void{
if (_mouseStateLocked){
unlockedMouseState = _arg1;
return;
};
if (mouseState == _arg1){
return;
};
mouseState = _arg1;
invalidate(InvalidationType.STATE);
}
protected function startPress():void{
if (_autoRepeat){
pressTimer.delay = Number(getStyleValue("repeatDelay"));
pressTimer.start();
};
dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
}
protected function buttonDown(_arg1:TimerEvent):void{
if (!_autoRepeat){
endPress();
return;
};
if (pressTimer.currentCount == 1){
pressTimer.delay = Number(getStyleValue("repeatInterval"));
};
dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
}
public function set selected(_arg1:Boolean):void{
if (_selected == _arg1){
return;
};
_selected = _arg1;
invalidate(InvalidationType.STATE);
}
override public function get enabled():Boolean{
return (super.enabled);
}
override protected function draw():void{
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawBackground();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
super.draw();
}
protected function setupMouseEvents():void{
addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true);
}
protected function drawLayout():void{
background.width = width;
background.height = height;
}
protected function drawBackground():void{
var _local1:String;
var _local2:DisplayObject;
_local1 = (enabled) ? mouseState : "disabled";
if (selected){
_local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1));
};
_local1 = (_local1 + "Skin");
_local2 = background;
background = getDisplayObjectInstance(getStyleValue(_local1));
addChildAt(background, 0);
if (((!((_local2 == null))) && (!((_local2 == background))))){
removeChild(_local2);
};
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 5
//Button (fl.controls.Button)
package fl.controls {
import flash.display.*;
import fl.core.*;
import fl.managers.*;
public class Button extends LabelButton implements IFocusManagerComponent {
protected var emphasizedBorder:DisplayObject;
protected var _emphasized:Boolean;// = false
private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2};
public static var createAccessibilityImplementation:Function;
public function Button(){
_emphasized = false;
super();
}
override public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
var _local3:*;
super.drawFocus(_arg1);
if (_arg1){
_local2 = Number(getStyleValue("emphasizedPadding"));
if ((((_local2 < 0)) || (!(_emphasized)))){
_local2 = 0;
};
_local3 = getStyleValue("focusRectPadding");
_local3 = ((_local3)==null) ? 2 : _local3;
_local3 = (_local3 + _local2);
uiFocusRect.x = -(_local3);
uiFocusRect.y = -(_local3);
uiFocusRect.width = (width + (_local3 * 2));
uiFocusRect.height = (height + (_local3 * 2));
};
}
public function set emphasized(_arg1:Boolean):void{
_emphasized = _arg1;
invalidate(InvalidationType.STYLES);
}
override protected function draw():void{
if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){
drawEmphasized();
};
super.draw();
if (emphasizedBorder != null){
setChildIndex(emphasizedBorder, (numChildren - 1));
};
}
public function get emphasized():Boolean{
return (_emphasized);
}
override protected function initializeAccessibility():void{
if (Button.createAccessibilityImplementation != null){
Button.createAccessibilityImplementation(this);
};
}
protected function drawEmphasized():void{
var _local1:Object;
var _local2:Number;
if (emphasizedBorder != null){
removeChild(emphasizedBorder);
};
emphasizedBorder = null;
if (!_emphasized){
return;
};
_local1 = getStyleValue("emphasizedSkin");
if (_local1 != null){
emphasizedBorder = getDisplayObjectInstance(_local1);
};
if (emphasizedBorder != null){
addChildAt(emphasizedBorder, 0);
_local2 = Number(getStyleValue("emphasizedPadding"));
emphasizedBorder.x = (emphasizedBorder.y = -(_local2));
emphasizedBorder.width = (width + (_local2 * 2));
emphasizedBorder.height = (height + (_local2 * 2));
};
}
public static function getStyleDefinition():Object{
return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles));
}
}
}//package fl.controls
Section 6
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement)
package fl.controls {
public class ButtonLabelPlacement {
public static const TOP:String = "top";
public static const LEFT:String = "left";
public static const BOTTOM:String = "bottom";
public static const RIGHT:String = "right";
}
}//package fl.controls
Section 7
//CheckBox (fl.controls.CheckBox)
package fl.controls {
import flash.display.*;
public class CheckBox extends LabelButton {
private static var defaultStyles:Object = {icon:null, upIcon:"CheckBox_upIcon", downIcon:"CheckBox_downIcon", overIcon:"CheckBox_overIcon", disabledIcon:"CheckBox_disabledIcon", selectedDisabledIcon:"CheckBox_selectedDisabledIcon", focusRectSkin:null, focusRectPadding:null, selectedUpIcon:"CheckBox_selectedUpIcon", selectedDownIcon:"CheckBox_selectedDownIcon", selectedOverIcon:"CheckBox_selectedOverIcon", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5};
public static var createAccessibilityImplementation:Function;
override public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
super.drawFocus(_arg1);
if (_arg1){
_local2 = Number(getStyleValue("focusRectPadding"));
uiFocusRect.x = (background.x - _local2);
uiFocusRect.y = (background.y - _local2);
uiFocusRect.width = (background.width + (_local2 << 1));
uiFocusRect.height = (background.height + (_local2 << 1));
};
}
override public function get autoRepeat():Boolean{
return (false);
}
override public function set autoRepeat(_arg1:Boolean):void{
}
override public function set toggle(_arg1:Boolean):void{
throw (new Error("Warning: You cannot change a CheckBox's toggle."));
}
override public function get toggle():Boolean{
return (true);
}
override protected function configUI():void{
var _local1:Shape;
var _local2:Graphics;
super.configUI();
super.toggle = true;
_local1 = new Shape();
_local2 = _local1.graphics;
_local2.beginFill(0, 0);
_local2.drawRect(0, 0, 100, 100);
_local2.endFill();
background = (_local1 as DisplayObject);
addChildAt(background, 0);
}
override protected function drawLayout():void{
var _local1:Number;
super.drawLayout();
_local1 = Number(getStyleValue("textPadding"));
switch (_labelPlacement){
case ButtonLabelPlacement.RIGHT:
icon.x = _local1;
textField.x = (icon.x + (icon.width + _local1));
background.width = ((textField.x + textField.width) + _local1);
background.height = (Math.max(textField.height, icon.height) + (_local1 * 2));
break;
case ButtonLabelPlacement.LEFT:
icon.x = ((width - icon.width) - _local1);
textField.x = (((width - icon.width) - (_local1 * 2)) - textField.width);
background.width = ((textField.width + icon.width) + (_local1 * 3));
background.height = (Math.max(textField.height, icon.height) + (_local1 * 2));
break;
case ButtonLabelPlacement.TOP:
case ButtonLabelPlacement.BOTTOM:
background.width = (Math.max(textField.width, icon.width) + (_local1 * 2));
background.height = ((textField.height + icon.height) + (_local1 * 3));
break;
};
background.x = Math.min((icon.x - _local1), (textField.x - _local1));
background.y = Math.min((icon.y - _local1), (textField.y - _local1));
}
override protected function drawBackground():void{
}
override protected function initializeAccessibility():void{
if (CheckBox.createAccessibilityImplementation != null){
CheckBox.createAccessibilityImplementation(this);
};
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 8
//LabelButton (fl.controls.LabelButton)
package fl.controls {
import flash.display.*;
import fl.core.*;
import flash.events.*;
import flash.text.*;
import fl.managers.*;
import fl.events.*;
import flash.ui.*;
public class LabelButton extends BaseButton implements IFocusManagerComponent {
protected var _labelPlacement:String;// = "right"
protected var _toggle:Boolean;// = false
protected var icon:DisplayObject;
protected var oldMouseState:String;
protected var mode:String;// = "center"
public var textField:TextField;
protected var _label:String;// = "Label"
private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false};
public static var createAccessibilityImplementation:Function;
public function LabelButton(){
_labelPlacement = ButtonLabelPlacement.RIGHT;
_toggle = false;
_label = "Label";
mode = "center";
super();
}
protected function toggleSelected(_arg1:MouseEvent):void{
selected = !(selected);
dispatchEvent(new Event(Event.CHANGE, true));
}
public function get labelPlacement():String{
return (_labelPlacement);
}
override protected function keyDownHandler(_arg1:KeyboardEvent):void{
if (!enabled){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
if (oldMouseState == null){
oldMouseState = mouseState;
};
setMouseState("down");
startPress();
};
}
protected function setEmbedFont(){
var _local1:Object;
_local1 = getStyleValue("embedFonts");
if (_local1 != null){
textField.embedFonts = _local1;
};
}
override protected function keyUpHandler(_arg1:KeyboardEvent):void{
if (!enabled){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
setMouseState(oldMouseState);
oldMouseState = null;
endPress();
dispatchEvent(new MouseEvent(MouseEvent.CLICK));
};
}
override public function get selected():Boolean{
return ((_toggle) ? _selected : false);
}
public function set labelPlacement(_arg1:String):void{
_labelPlacement = _arg1;
invalidate(InvalidationType.SIZE);
}
public function set toggle(_arg1:Boolean):void{
if (((!(_arg1)) && (super.selected))){
selected = false;
};
_toggle = _arg1;
if (_toggle){
addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true);
} else {
removeEventListener(MouseEvent.CLICK, toggleSelected);
};
invalidate(InvalidationType.STATE);
}
public function get label():String{
return (_label);
}
override public function set selected(_arg1:Boolean):void{
_selected = _arg1;
if (_toggle){
invalidate(InvalidationType.STATE);
};
}
override protected function draw():void{
if (textField.text != _label){
label = _label;
};
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawBackground();
drawIcon();
drawTextFormat();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
if (((isFocused) && (focusManager.showFocusIndicator))){
drawFocus(true);
};
};
validate();
}
public function get toggle():Boolean{
return (_toggle);
}
override protected function configUI():void{
super.configUI();
textField = new TextField();
textField.type = TextFieldType.DYNAMIC;
textField.selectable = false;
addChild(textField);
}
override protected function drawLayout():void{
var _local1:Number;
var _local2:String;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local1 = Number(getStyleValue("textPadding"));
_local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement;
textField.height = (textField.textHeight + 4);
_local3 = (textField.textWidth + 4);
_local4 = (textField.textHeight + 4);
_local5 = ((icon)==null) ? 0 : (icon.width + _local1);
_local6 = ((icon)==null) ? 0 : (icon.height + _local1);
textField.visible = (label.length > 0);
if (icon != null){
icon.x = Math.round(((width - icon.width) / 2));
icon.y = Math.round(((height - icon.height) / 2));
};
if (textField.visible == false){
textField.width = 0;
textField.height = 0;
} else {
if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){
_local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1))));
if ((height - 2) > _local4){
_local8 = _local4;
} else {
_local8 = (height - 2);
};
_local3 = _local7;
textField.width = _local3;
_local4 = _local8;
textField.height = _local4;
textField.x = Math.round(((width - _local3) / 2));
textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0));
if (icon != null){
icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1));
};
} else {
_local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1))));
_local3 = _local7;
textField.width = _local3;
textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0));
textField.y = Math.round(((height - textField.height) / 2));
if (icon != null){
icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1));
};
};
};
super.drawLayout();
}
override protected function initializeAccessibility():void{
if (LabelButton.createAccessibilityImplementation != null){
LabelButton.createAccessibilityImplementation(this);
};
}
protected function drawIcon():void{
var _local1:DisplayObject;
var _local2:String;
var _local3:Object;
_local1 = icon;
_local2 = (enabled) ? mouseState : "disabled";
if (selected){
_local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1));
};
_local2 = (_local2 + "Icon");
_local3 = getStyleValue(_local2);
if (_local3 == null){
_local3 = getStyleValue("icon");
};
if (_local3 != null){
icon = getDisplayObjectInstance(_local3);
};
if (icon != null){
addChildAt(icon, 1);
};
if (((!((_local1 == null))) && (!((_local1 == icon))))){
removeChild(_local1);
};
}
public function set label(_arg1:String):void{
_label = _arg1;
if (textField.text != _label){
textField.text = _label;
dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE));
};
invalidate(InvalidationType.SIZE);
invalidate(InvalidationType.STYLES);
}
protected function drawTextFormat():void{
var _local1:Object;
var _local2:TextFormat;
var _local3:TextFormat;
_local1 = UIComponent.getStyleDefinition();
_local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat);
textField.setTextFormat(_local2);
_local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat);
if (_local3 != null){
textField.setTextFormat(_local3);
} else {
_local3 = _local2;
};
textField.defaultTextFormat = _local3;
setEmbedFont();
}
public static function getStyleDefinition():Object{
return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition()));
}
}
}//package fl.controls
Section 9
//ScrollBar (fl.controls.ScrollBar)
package fl.controls {
import fl.core.*;
import flash.events.*;
import fl.events.*;
public class ScrollBar extends UIComponent {
private var _direction:String;// = "vertical"
protected var inDrag:Boolean;// = false
protected var upArrow:BaseButton;
private var _pageScrollSize:Number;// = 0
protected var downArrow:BaseButton;
private var _pageSize:Number;// = 10
private var thumbScrollOffset:Number;
private var _maxScrollPosition:Number;// = 0
private var _scrollPosition:Number;// = 0
protected var track:BaseButton;
private var _minScrollPosition:Number;// = 0
private var _lineScrollSize:Number;// = 1
protected var thumb:LabelButton;
protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0};
public static const WIDTH:Number = 15;
protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"};
protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"};
protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"};
private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35};
public function ScrollBar(){
_pageSize = 10;
_pageScrollSize = 0;
_lineScrollSize = 1;
_minScrollPosition = 0;
_maxScrollPosition = 0;
_scrollPosition = 0;
_direction = ScrollBarDirection.VERTICAL;
inDrag = false;
super();
setStyles();
focusEnabled = false;
}
public function get minScrollPosition():Number{
return (_minScrollPosition);
}
public function set minScrollPosition(_arg1:Number):void{
setScrollProperties(_pageSize, _arg1, _maxScrollPosition);
}
public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{
var _local3:Number;
_local3 = scrollPosition;
_scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1));
if (_local3 == _scrollPosition){
return;
};
if (_arg2){
dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition));
};
updateThumb();
}
public function set scrollPosition(_arg1:Number):void{
setScrollPosition(_arg1, true);
}
public function get pageScrollSize():Number{
return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize);
}
public function set pageSize(_arg1:Number):void{
if (_arg1 > 0){
_pageSize = _arg1;
};
}
public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{
this.pageSize = _arg1;
_minScrollPosition = _arg2;
_maxScrollPosition = _arg3;
if (_arg4 >= 0){
_pageScrollSize = _arg4;
};
enabled = (_maxScrollPosition > _minScrollPosition);
setScrollPosition(_scrollPosition, false);
updateThumb();
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition))))));
updateThumb();
}
protected function updateThumb():void{
var _local1:Number;
_local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize);
if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){
thumb.height = 12;
thumb.visible = false;
} else {
thumb.height = Math.max(13, ((_pageSize / _local1) * track.height));
thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition))));
thumb.visible = enabled;
};
}
protected function thumbPressHandler(_arg1:MouseEvent):void{
inDrag = true;
thumbScrollOffset = (mouseY - thumb.y);
thumb.mouseStateLocked = true;
mouseChildren = false;
stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true);
}
protected function thumbReleaseHandler(_arg1:MouseEvent):void{
inDrag = false;
mouseChildren = true;
thumb.mouseStateLocked = false;
stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag);
stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler);
}
public function set pageScrollSize(_arg1:Number):void{
if (_arg1 >= 0){
_pageScrollSize = _arg1;
};
}
protected function handleThumbDrag(_arg1:MouseEvent):void{
var _local2:Number;
_local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset)));
setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition));
}
public function set direction(_arg1:String):void{
var _local2:Boolean;
if (_direction == _arg1){
return;
};
_direction = _arg1;
if (isLivePreview){
return;
};
setScaleY(1);
_local2 = (_direction == ScrollBarDirection.HORIZONTAL);
if (((_local2) && (componentInspectorSetting))){
if (rotation == 90){
return;
};
setScaleX(-1);
rotation = -90;
};
if (!componentInspectorSetting){
if (((_local2) && ((rotation == 0)))){
rotation = -90;
setScaleX(-1);
} else {
if (((!(_local2)) && ((rotation == -90)))){
rotation = 0;
setScaleX(1);
};
};
};
invalidate(InvalidationType.SIZE);
}
public function set lineScrollSize(_arg1:Number):void{
if (_arg1 > 0){
_lineScrollSize = _arg1;
};
}
override public function get height():Number{
return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height);
}
protected function scrollPressHandler(_arg1:ComponentEvent):void{
var _local2:Number;
var _local3:Number;
_arg1.stopImmediatePropagation();
if (_arg1.currentTarget == upArrow){
setScrollPosition((_scrollPosition - _lineScrollSize));
} else {
if (_arg1.currentTarget == downArrow){
setScrollPosition((_scrollPosition + _lineScrollSize));
} else {
_local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition);
_local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize;
if (_scrollPosition < _local2){
setScrollPosition(Math.min(_local2, (_scrollPosition + _local3)));
} else {
if (_scrollPosition > _local2){
setScrollPosition(Math.max(_local2, (_scrollPosition - _local3)));
};
};
};
};
}
public function get pageSize():Number{
return (_pageSize);
}
public function set maxScrollPosition(_arg1:Number):void{
setScrollProperties(_pageSize, _minScrollPosition, _arg1);
}
public function get scrollPosition():Number{
return (_scrollPosition);
}
override public function get enabled():Boolean{
return (super.enabled);
}
override protected function draw():void{
var _local1:Number;
if (isInvalid(InvalidationType.SIZE)){
_local1 = super.height;
downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height)));
track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height))));
updateThumb();
};
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
setStyles();
};
downArrow.drawNow();
upArrow.drawNow();
track.drawNow();
thumb.drawNow();
validate();
}
override protected function configUI():void{
super.configUI();
track = new BaseButton();
track.move(0, 14);
track.useHandCursor = false;
track.autoRepeat = true;
track.focusEnabled = false;
addChild(track);
thumb = new LabelButton();
thumb.label = "";
thumb.setSize(WIDTH, 15);
thumb.move(0, 15);
thumb.focusEnabled = false;
addChild(thumb);
downArrow = new BaseButton();
downArrow.setSize(WIDTH, 14);
downArrow.autoRepeat = true;
downArrow.focusEnabled = false;
addChild(downArrow);
upArrow = new BaseButton();
upArrow.setSize(WIDTH, 14);
upArrow.move(0, 0);
upArrow.autoRepeat = true;
upArrow.focusEnabled = false;
addChild(upArrow);
upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true);
downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true);
track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true);
thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true);
enabled = false;
}
public function get direction():String{
return (_direction);
}
public function get lineScrollSize():Number{
return (_lineScrollSize);
}
override public function setSize(_arg1:Number, _arg2:Number):void{
if (_direction == ScrollBarDirection.HORIZONTAL){
super.setSize(_arg2, _arg1);
} else {
super.setSize(_arg1, _arg2);
};
}
public function get maxScrollPosition():Number{
return (_maxScrollPosition);
}
override public function get width():Number{
return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width);
}
protected function setStyles():void{
copyStylesToChild(downArrow, DOWN_ARROW_STYLES);
copyStylesToChild(thumb, THUMB_STYLES);
copyStylesToChild(track, TRACK_STYLES);
copyStylesToChild(upArrow, UP_ARROW_STYLES);
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 10
//ScrollBarDirection (fl.controls.ScrollBarDirection)
package fl.controls {
public class ScrollBarDirection {
public static const HORIZONTAL:String = "horizontal";
public static const VERTICAL:String = "vertical";
}
}//package fl.controls
Section 11
//ScrollPolicy (fl.controls.ScrollPolicy)
package fl.controls {
public class ScrollPolicy {
public static const OFF:String = "off";
public static const ON:String = "on";
public static const AUTO:String = "auto";
}
}//package fl.controls
Section 12
//Slider (fl.controls.Slider)
package fl.controls {
import flash.display.*;
import fl.core.*;
import flash.events.*;
import fl.managers.*;
import fl.events.*;
import flash.ui.*;
public class Slider extends UIComponent implements IFocusManagerComponent {
protected var _direction:String;
protected var _liveDragging:Boolean;// = false
protected var _value:Number;// = 0
protected var _snapInterval:Number;// = 0
protected var _minimum:Number;// = 0
protected var _maximum:Number;// = 10
protected var track:BaseButton;
protected var _tickInterval:Number;// = 0
protected var tickContainer:Sprite;
protected var thumb:BaseButton;
protected static const TICK_STYLES:Object = {upSkin:"tickSkin"};
protected static const TRACK_STYLES:Object = {upSkin:"sliderTrackSkin", overSkin:"sliderTrackSkin", downSkin:"sliderTrackSkin", disabledSkin:"sliderTrackDisabledSkin"};
protected static const THUMB_STYLES:Object = {upSkin:"thumbUpSkin", overSkin:"thumbOverSkin", downSkin:"thumbDownSkin", disabledSkin:"thumbDisabledSkin"};
protected static var defaultStyles:Object = {thumbUpSkin:"SliderThumb_upSkin", thumbOverSkin:"SliderThumb_overSkin", thumbDownSkin:"SliderThumb_downSkin", thumbDisabledSkin:"SliderThumb_disabledSkin", sliderTrackSkin:"SliderTrack_skin", sliderTrackDisabledSkin:"SliderTrack_disabledSkin", tickSkin:"SliderTick_skin", focusRectSkin:null, focusRectPadding:null};
public function Slider(){
_direction = SliderDirection.HORIZONTAL;
_minimum = 0;
_maximum = 10;
_value = 0;
_tickInterval = 0;
_snapInterval = 0;
_liveDragging = false;
super();
setStyles();
}
public function get minimum():Number{
return (_minimum);
}
public function set minimum(_arg1:Number):void{
_minimum = _arg1;
this.value = Math.max(_arg1, this.value);
invalidate(InvalidationType.DATA);
}
public function get maximum():Number{
return (_maximum);
}
protected function positionThumb():void{
thumb.x = ((((_direction)==SliderDirection.VERTICAL) ? ((maximum - minimum) - value) : (value - minimum) / (maximum - minimum)) * _width);
}
protected function clearTicks():void{
if (((!(tickContainer)) || (!(tickContainer.parent)))){
return;
};
removeChild(tickContainer);
}
protected function onTrackClick(_arg1:MouseEvent):void{
calculateValue(track.mouseX, InteractionInputType.MOUSE, SliderEventClickTarget.TRACK);
if (!liveDragging){
dispatchEvent(new SliderEvent(SliderEvent.CHANGE, value, SliderEventClickTarget.TRACK, InteractionInputType.MOUSE));
};
}
public function set maximum(_arg1:Number):void{
_maximum = _arg1;
this.value = Math.min(_arg1, this.value);
invalidate(InvalidationType.DATA);
}
public function get liveDragging():Boolean{
return (_liveDragging);
}
protected function doDrag(_arg1:MouseEvent):void{
var _local2:Number;
var _local3:Number;
_local2 = (_width / snapInterval);
_local3 = track.mouseX;
calculateValue(_local3, InteractionInputType.MOUSE, SliderEventClickTarget.THUMB);
dispatchEvent(new SliderEvent(SliderEvent.THUMB_DRAG, value, SliderEventClickTarget.THUMB, InteractionInputType.MOUSE));
}
override protected function keyDownHandler(_arg1:KeyboardEvent):void{
var _local2:uint;
var _local3:Number;
var _local4:Boolean;
if (!enabled){
return;
};
_local2 = ((snapInterval)>0) ? snapInterval : 1;
_local4 = (direction == SliderDirection.HORIZONTAL);
if ((((((_arg1.keyCode == Keyboard.DOWN)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.LEFT)) && (_local4))))){
_local3 = (value - _local2);
} else {
if ((((((_arg1.keyCode == Keyboard.UP)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.RIGHT)) && (_local4))))){
_local3 = (value + _local2);
} else {
if ((((((_arg1.keyCode == Keyboard.PAGE_DOWN)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.HOME)) && (_local4))))){
_local3 = minimum;
} else {
if ((((((_arg1.keyCode == Keyboard.PAGE_UP)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.END)) && (_local4))))){
_local3 = maximum;
};
};
};
};
if (!isNaN(_local3)){
_arg1.stopPropagation();
doSetValue(_local3, InteractionInputType.KEYBOARD, null, _arg1.keyCode);
};
}
override public function set enabled(_arg1:Boolean):void{
if (enabled == _arg1){
return;
};
super.enabled = _arg1;
track.enabled = (thumb.enabled = _arg1);
}
protected function thumbPressHandler(_arg1:MouseEvent):void{
stage.addEventListener(MouseEvent.MOUSE_MOVE, doDrag, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true);
dispatchEvent(new SliderEvent(SliderEvent.THUMB_PRESS, value, InteractionInputType.MOUSE, SliderEventClickTarget.THUMB));
}
public function get snapInterval():Number{
return (_snapInterval);
}
protected function thumbReleaseHandler(_arg1:MouseEvent):void{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, doDrag);
stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler);
dispatchEvent(new SliderEvent(SliderEvent.THUMB_RELEASE, value, InteractionInputType.MOUSE, SliderEventClickTarget.THUMB));
dispatchEvent(new SliderEvent(SliderEvent.CHANGE, value, SliderEventClickTarget.THUMB, InteractionInputType.MOUSE));
}
public function set liveDragging(_arg1:Boolean):void{
_liveDragging = _arg1;
}
public function set value(_arg1:Number):void{
doSetValue(_arg1);
}
public function set direction(_arg1:String):void{
var _local2:Boolean;
_direction = _arg1;
_local2 = (_direction == SliderDirection.VERTICAL);
if (isLivePreview){
if (_local2){
setScaleY(-1);
y = track.height;
} else {
setScaleY(1);
y = 0;
};
positionThumb();
return;
};
if (((_local2) && (componentInspectorSetting))){
if ((rotation % 90) == 0){
setScaleY(-1);
};
};
if (!componentInspectorSetting){
rotation = (_local2) ? 90 : 0;
};
}
public function set tickInterval(_arg1:Number):void{
_tickInterval = _arg1;
invalidate(InvalidationType.SIZE);
}
override public function get enabled():Boolean{
return (super.enabled);
}
override protected function draw():void{
if (isInvalid(InvalidationType.STYLES)){
setStyles();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
track.setSize(_width, track.height);
track.drawNow();
thumb.drawNow();
};
if (tickInterval > 0){
drawTicks();
} else {
clearTicks();
};
positionThumb();
super.draw();
}
override protected function configUI():void{
super.configUI();
thumb = new BaseButton();
thumb.setSize(13, 13);
thumb.autoRepeat = false;
addChild(thumb);
thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true);
track = new BaseButton();
track.move(0, 0);
track.setSize(80, 4);
track.autoRepeat = false;
track.useHandCursor = false;
track.addEventListener(MouseEvent.CLICK, onTrackClick, false, 0, true);
addChildAt(track, 0);
}
public function set snapInterval(_arg1:Number):void{
_snapInterval = _arg1;
}
public function get value():Number{
return (_value);
}
public function get direction():String{
return (_direction);
}
public function get tickInterval():Number{
return (_tickInterval);
}
override public function setSize(_arg1:Number, _arg2:Number):void{
if ((((_direction == SliderDirection.VERTICAL)) && (!(isLivePreview)))){
super.setSize(_arg2, _arg1);
} else {
super.setSize(_arg1, _arg2);
};
invalidate(InvalidationType.SIZE);
}
protected function drawTicks():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:uint;
var _local5:DisplayObject;
clearTicks();
tickContainer = new Sprite();
_local1 = ((maximum)<1) ? (tickInterval / 100) : tickInterval;
_local2 = ((maximum - minimum) / _local1);
_local3 = (_width / _local2);
_local4 = 0;
while (_local4 <= _local2) {
_local5 = getDisplayObjectInstance(getStyleValue("tickSkin"));
_local5.x = (_local3 * _local4);
_local5.y = ((track.y - _local5.height) - 2);
tickContainer.addChild(_local5);
_local4++;
};
addChild(tickContainer);
}
protected function calculateValue(_arg1:Number, _arg2:String, _arg3:String, _arg4:int=undefined):void{
var _local5:Number;
_local5 = ((_arg1 / _width) * (maximum - minimum));
if (_direction == SliderDirection.VERTICAL){
_local5 = (maximum - _local5);
} else {
_local5 = (minimum + _local5);
};
doSetValue(_local5, _arg2, _arg3, _arg4);
}
protected function getPrecision(_arg1:Number):Number{
var _local2:String;
_local2 = _arg1.toString();
if (_local2.indexOf(".") == -1){
return (0);
};
return (_local2.split(".").pop().length);
}
protected function doSetValue(_arg1:Number, _arg2:String=null, _arg3:String=null, _arg4:int=undefined):void{
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
_local5 = _value;
if (((!((_snapInterval == 0))) && (!((_snapInterval == 1))))){
_local6 = Math.pow(10, getPrecision(snapInterval));
_local7 = (_snapInterval * _local6);
_local8 = Math.round((_arg1 * _local6));
_local9 = (Math.round((_local8 / _local7)) * _local7);
_arg1 = (_local9 / _local6);
_value = Math.max(minimum, Math.min(maximum, _arg1));
} else {
_value = Math.max(minimum, Math.min(maximum, Math.round(_arg1)));
};
if (((!((_local5 == _value))) && (((((liveDragging) && (!((_arg3 == null))))) || ((_arg2 == InteractionInputType.KEYBOARD)))))){
dispatchEvent(new SliderEvent(SliderEvent.CHANGE, value, _arg3, _arg2, _arg4));
};
positionThumb();
}
protected function setStyles():void{
copyStylesToChild(thumb, THUMB_STYLES);
copyStylesToChild(track, TRACK_STYLES);
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 13
//SliderDirection (fl.controls.SliderDirection)
package fl.controls {
public class SliderDirection {
public static var HORIZONTAL:String = "horizontal";
public static var VERTICAL:String = "vertical";
}
}//package fl.controls
Section 14
//TextArea (fl.controls.TextArea)
package fl.controls {
import flash.display.*;
import fl.core.*;
import flash.events.*;
import flash.text.*;
import fl.managers.*;
import fl.events.*;
import flash.system.*;
import flash.ui.*;
public class TextArea extends UIComponent implements IFocusManagerComponent {
protected var _html:Boolean;// = false
protected var _verticalScrollBar:UIScrollBar;
protected var _savedHTML:String;
protected var background:DisplayObject;
protected var _horizontalScrollBar:UIScrollBar;
protected var _horizontalScrollPolicy:String;// = "auto"
protected var _editable:Boolean;// = true
protected var textHasChanged:Boolean;// = false
public var textField:TextField;
protected var _wordWrap:Boolean;// = true
protected var _verticalScrollPolicy:String;// = "auto"
protected static const SCROLL_BAR_STYLES:Object = {downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"};
private static var defaultStyles:Object = {upSkin:"TextArea_upSkin", disabledSkin:"TextArea_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, embedFonts:false};
public static var createAccessibilityImplementation:Function;
public function TextArea(){
_editable = true;
_wordWrap = true;
_horizontalScrollPolicy = ScrollPolicy.AUTO;
_verticalScrollPolicy = ScrollPolicy.AUTO;
_html = false;
textHasChanged = false;
super();
}
override public function drawFocus(_arg1:Boolean):void{
if (focusTarget != null){
focusTarget.drawFocus(_arg1);
return;
};
super.drawFocus(_arg1);
}
public function set imeMode(_arg1:String):void{
_imeMode = _arg1;
}
protected function handleWheel(_arg1:MouseEvent):void{
if (((!(enabled)) || (!(_verticalScrollBar.visible)))){
return;
};
_verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * _verticalScrollBar.lineScrollSize));
dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, (_arg1.delta * _verticalScrollBar.lineScrollSize), _verticalScrollBar.scrollPosition));
}
public function get verticalScrollPosition():Number{
return (textField.scrollV);
}
override protected function isOurFocus(_arg1:DisplayObject):Boolean{
return ((((_arg1 == textField)) || (super.isOurFocus(_arg1))));
}
public function set verticalScrollPosition(_arg1:Number):void{
drawNow();
textField.scrollV = _arg1;
}
protected function handleKeyDown(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == Keyboard.ENTER){
dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true));
};
}
public function set text(_arg1:String):void{
if (((componentInspectorSetting) && ((_arg1 == "")))){
return;
};
textField.text = _arg1;
_html = false;
invalidate(InvalidationType.DATA);
invalidate(InvalidationType.STYLES);
textHasChanged = true;
}
protected function updateTextFieldType():void{
textField.type = (((enabled) && (_editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC;
textField.selectable = enabled;
textField.wordWrap = _wordWrap;
textField.multiline = true;
}
public function get selectionEndIndex():int{
return (textField.selectionEndIndex);
}
public function get editable():Boolean{
return (_editable);
}
override protected function focusInHandler(_arg1:FocusEvent):void{
var _local2:IFocusManager;
setIMEMode(true);
if (_arg1.target == this){
stage.focus = textField;
};
_local2 = focusManager;
if (_local2){
if (editable){
_local2.showFocusIndicator = true;
};
_local2.defaultButtonEnabled = false;
};
super.focusInHandler(_arg1);
if (editable){
setIMEMode(true);
};
}
public function get wordWrap():Boolean{
return (_wordWrap);
}
public function get selectionBeginIndex():int{
return (textField.selectionBeginIndex);
}
public function get horizontalScrollBar():UIScrollBar{
return (_horizontalScrollBar);
}
public function set alwaysShowSelection(_arg1:Boolean):void{
textField.alwaysShowSelection = _arg1;
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
mouseChildren = enabled;
invalidate(InvalidationType.STATE);
}
protected function setEmbedFont(){
var _local1:Object;
_local1 = getStyleValue("embedFonts");
if (_local1 != null){
textField.embedFonts = _local1;
};
}
public function get horizontalScrollPosition():Number{
return (textField.scrollH);
}
public function set condenseWhite(_arg1:Boolean):void{
textField.condenseWhite = _arg1;
invalidate(InvalidationType.DATA);
}
public function get horizontalScrollPolicy():String{
return (_horizontalScrollPolicy);
}
public function set displayAsPassword(_arg1:Boolean):void{
textField.displayAsPassword = _arg1;
}
public function get maxVerticalScrollPosition():int{
return (textField.maxScrollV);
}
public function set horizontalScrollPosition(_arg1:Number):void{
drawNow();
textField.scrollH = _arg1;
}
public function get textHeight():Number{
drawNow();
return (textField.textHeight);
}
public function get textWidth():Number{
drawNow();
return (textField.textWidth);
}
public function get restrict():String{
return (textField.restrict);
}
public function set editable(_arg1:Boolean):void{
_editable = _arg1;
invalidate(InvalidationType.STATE);
}
protected function updateScrollBars(){
_horizontalScrollBar.update();
_verticalScrollBar.update();
_verticalScrollBar.enabled = enabled;
_horizontalScrollBar.enabled = enabled;
_horizontalScrollBar.drawNow();
_verticalScrollBar.drawNow();
}
public function get maxChars():int{
return (textField.maxChars);
}
public function get length():Number{
return (textField.text.length);
}
public function set wordWrap(_arg1:Boolean):void{
_wordWrap = _arg1;
invalidate(InvalidationType.STATE);
}
public function get verticalScrollPolicy():String{
return (_verticalScrollPolicy);
}
public function getLineMetrics(_arg1:int):TextLineMetrics{
return (textField.getLineMetrics(_arg1));
}
public function get imeMode():String{
return (IME.conversionMode);
}
protected function handleScroll(_arg1:ScrollEvent):void{
dispatchEvent(_arg1);
}
override protected function focusOutHandler(_arg1:FocusEvent):void{
var _local2:IFocusManager;
_local2 = focusManager;
if (_local2){
_local2.defaultButtonEnabled = true;
};
setSelection(0, 0);
super.focusOutHandler(_arg1);
if (editable){
setIMEMode(false);
};
}
protected function delayedLayoutUpdate(_arg1:Event):void{
if (textHasChanged){
textHasChanged = false;
drawLayout();
return;
};
removeEventListener(Event.ENTER_FRAME, delayedLayoutUpdate);
}
public function set htmlText(_arg1:String):void{
if (((componentInspectorSetting) && ((_arg1 == "")))){
return;
};
if (_arg1 == ""){
text = "";
return;
};
_html = true;
_savedHTML = _arg1;
textField.htmlText = _arg1;
invalidate(InvalidationType.DATA);
invalidate(InvalidationType.STYLES);
textHasChanged = true;
}
public function get text():String{
return (textField.text);
}
public function get verticalScrollBar():UIScrollBar{
return (_verticalScrollBar);
}
override public function get enabled():Boolean{
return (super.enabled);
}
public function get condenseWhite():Boolean{
return (textField.condenseWhite);
}
public function set horizontalScrollPolicy(_arg1:String):void{
_horizontalScrollPolicy = _arg1;
invalidate(InvalidationType.SIZE);
}
public function get displayAsPassword():Boolean{
return (textField.displayAsPassword);
}
override protected function draw():void{
if (isInvalid(InvalidationType.STATE)){
updateTextFieldType();
};
if (isInvalid(InvalidationType.STYLES)){
setStyles();
setEmbedFont();
};
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawTextFormat();
drawBackground();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA)){
drawLayout();
};
super.draw();
}
protected function handleTextInput(_arg1:TextEvent):void{
_arg1.stopPropagation();
dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text));
}
override protected function configUI():void{
super.configUI();
tabChildren = true;
textField = new TextField();
addChild(textField);
updateTextFieldType();
_verticalScrollBar = new UIScrollBar();
_verticalScrollBar.name = "V";
_verticalScrollBar.visible = false;
_verticalScrollBar.focusEnabled = false;
copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES);
_verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true);
addChild(_verticalScrollBar);
_horizontalScrollBar = new UIScrollBar();
_horizontalScrollBar.name = "H";
_horizontalScrollBar.visible = false;
_horizontalScrollBar.focusEnabled = false;
_horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL;
copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES);
_horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true);
addChild(_horizontalScrollBar);
textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true);
textField.addEventListener(Event.CHANGE, handleChange, false, 0, true);
textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true);
_horizontalScrollBar.scrollTarget = textField;
_verticalScrollBar.scrollTarget = textField;
addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true);
}
protected function setTextSize(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Number;
var _local5:Number;
_local4 = (_arg1 - (_arg3 * 2));
_local5 = (_arg2 - (_arg3 * 2));
if (_local4 != textField.width){
textField.width = _local4;
};
if (_local5 != textField.height){
textField.height = _local5;
};
}
public function appendText(_arg1:String):void{
textField.appendText(_arg1);
invalidate(InvalidationType.DATA);
}
protected function needVScroll():Boolean{
if (_verticalScrollPolicy == ScrollPolicy.OFF){
return (false);
};
if (_verticalScrollPolicy == ScrollPolicy.ON){
return (true);
};
return ((textField.maxScrollV > 1));
}
public function setSelection(_arg1:int, _arg2:int):void{
textField.setSelection(_arg1, _arg2);
}
public function get alwaysShowSelection():Boolean{
return (textField.alwaysShowSelection);
}
public function get htmlText():String{
return (textField.htmlText);
}
public function set restrict(_arg1:String):void{
if (((componentInspectorSetting) && ((_arg1 == "")))){
_arg1 = null;
};
textField.restrict = _arg1;
}
protected function drawBackground():void{
var _local1:DisplayObject;
var _local2:String;
_local1 = background;
_local2 = (enabled) ? "upSkin" : "disabledSkin";
background = getDisplayObjectInstance(getStyleValue(_local2));
if (background != null){
addChildAt(background, 0);
};
if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){
removeChild(_local1);
};
}
public function set maxChars(_arg1:int):void{
textField.maxChars = _arg1;
}
public function get maxHorizontalScrollPosition():int{
return (textField.maxScrollH);
}
protected function drawLayout():void{
var _local1:Number;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
var _local5:Boolean;
_local1 = Number(getStyleValue("textPadding"));
textField.x = (textField.y = _local1);
background.width = width;
background.height = height;
_local2 = height;
_local3 = needVScroll();
_local4 = (width - (_local3) ? _verticalScrollBar.width : 0);
_local5 = needHScroll();
if (_local5){
_local2 = (_local2 - _horizontalScrollBar.height);
};
setTextSize(_local4, _local2, _local1);
if (((((_local5) && (!(_local3)))) && (needVScroll()))){
_local3 = true;
_local4 = (_local4 - _verticalScrollBar.width);
setTextSize(_local4, _local2, _local1);
};
if (_local3){
_verticalScrollBar.visible = true;
_verticalScrollBar.x = (width - _verticalScrollBar.width);
_verticalScrollBar.height = _local2;
_verticalScrollBar.visible = true;
_verticalScrollBar.enabled = enabled;
} else {
_verticalScrollBar.visible = false;
};
if (_local5){
_horizontalScrollBar.visible = true;
_horizontalScrollBar.y = (height - _horizontalScrollBar.height);
_horizontalScrollBar.width = _local4;
_horizontalScrollBar.visible = true;
_horizontalScrollBar.enabled = enabled;
} else {
_horizontalScrollBar.visible = false;
};
updateScrollBars();
addEventListener(Event.ENTER_FRAME, delayedLayoutUpdate, false, 0, true);
}
protected function setStyles():void{
copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES);
copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES);
}
protected function needHScroll():Boolean{
if (_horizontalScrollPolicy == ScrollPolicy.OFF){
return (false);
};
if (_horizontalScrollPolicy == ScrollPolicy.ON){
return (true);
};
return ((textField.maxScrollH > 0));
}
protected function drawTextFormat():void{
var _local1:Object;
var _local2:TextFormat;
var _local3:TextFormat;
_local1 = UIComponent.getStyleDefinition();
_local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat);
textField.setTextFormat(_local2);
_local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat);
if (_local3 != null){
textField.setTextFormat(_local3);
} else {
_local3 = _local2;
};
textField.defaultTextFormat = _local3;
setEmbedFont();
if (_html){
textField.htmlText = _savedHTML;
};
}
public function set verticalScrollPolicy(_arg1:String):void{
_verticalScrollPolicy = _arg1;
invalidate(InvalidationType.SIZE);
}
protected function handleChange(_arg1:Event):void{
_arg1.stopPropagation();
dispatchEvent(new Event(Event.CHANGE, true));
invalidate(InvalidationType.DATA);
}
public static function getStyleDefinition():Object{
return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition()));
}
}
}//package fl.controls
Section 15
//UIScrollBar (fl.controls.UIScrollBar)
package fl.controls {
import fl.core.*;
import flash.events.*;
import flash.text.*;
import fl.events.*;
public class UIScrollBar extends ScrollBar {
protected var inScroll:Boolean;// = false
protected var _scrollTarget:TextField;
protected var inEdit:Boolean;// = false
private static var defaultStyles:Object = {};
public function UIScrollBar(){
inEdit = false;
inScroll = false;
super();
}
protected function handleTargetScroll(_arg1:Event):void{
if (inDrag){
return;
};
if (!enabled){
return;
};
inEdit = true;
updateScrollTargetProperties();
scrollPosition = ((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV;
inEdit = false;
}
override public function set minScrollPosition(_arg1:Number):void{
super.minScrollPosition = ((_arg1)<0) ? 0 : _arg1;
}
override public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{
super.setScrollPosition(_arg1, _arg2);
if (!_scrollTarget){
inScroll = false;
return;
};
updateTargetScroll();
}
override public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{
var _local5:Number;
var _local6:Number;
_local5 = _arg3;
_local6 = ((_arg2)<0) ? 0 : _arg2;
if (_scrollTarget != null){
if (direction == ScrollBarDirection.HORIZONTAL){
_local5 = ((_arg3)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local5;
} else {
_local5 = ((_arg3)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local5;
};
};
super.setScrollProperties(_arg1, _local6, _local5, _arg4);
}
public function get scrollTargetName():String{
return (_scrollTarget.name);
}
public function get scrollTarget():TextField{
return (_scrollTarget);
}
protected function updateScrollTargetProperties():void{
var _local1:Boolean;
var _local2:Number;
if (_scrollTarget == null){
setScrollProperties(pageSize, minScrollPosition, maxScrollPosition, pageScrollSize);
scrollPosition = 0;
} else {
_local1 = (direction == ScrollBarDirection.HORIZONTAL);
_local2 = (_local1) ? _scrollTarget.width : 10;
setScrollProperties(_local2, (_local1) ? 0 : 1, (_local1) ? _scrollTarget.maxScrollH : _scrollTarget.maxScrollV, pageScrollSize);
scrollPosition = (_local1) ? _scrollTarget.scrollH : _scrollTarget.scrollV;
};
}
public function update():void{
inEdit = true;
updateScrollTargetProperties();
inEdit = false;
}
public function set scrollTargetName(_arg1:String):void{
var target = _arg1;
try {
scrollTarget = (parent.getChildByName(target) as TextField);
} catch(error:Error) {
throw (new Error("ScrollTarget not found, or is not a TextField"));
};
}
override public function set direction(_arg1:String):void{
if (isLivePreview){
return;
};
super.direction = _arg1;
updateScrollTargetProperties();
}
protected function handleTargetChange(_arg1:Event):void{
inEdit = true;
setScrollPosition(((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV, true);
updateScrollTargetProperties();
inEdit = false;
}
override public function set maxScrollPosition(_arg1:Number):void{
var _local2:Number;
_local2 = _arg1;
if (_scrollTarget != null){
if (direction == ScrollBarDirection.HORIZONTAL){
_local2 = ((_local2)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local2;
} else {
_local2 = ((_local2)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local2;
};
};
super.maxScrollPosition = _local2;
}
protected function updateTargetScroll(_arg1:ScrollEvent=null):void{
if (inEdit){
return;
};
if (direction == ScrollBarDirection.HORIZONTAL){
_scrollTarget.scrollH = scrollPosition;
} else {
_scrollTarget.scrollV = scrollPosition;
};
}
override protected function draw():void{
if (isInvalid(InvalidationType.DATA)){
updateScrollTargetProperties();
};
super.draw();
}
public function set scrollTarget(_arg1:TextField):void{
if (_scrollTarget != null){
_scrollTarget.removeEventListener(Event.CHANGE, handleTargetChange, false);
_scrollTarget.removeEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false);
_scrollTarget.removeEventListener(Event.SCROLL, handleTargetScroll, false);
removeEventListener(ScrollEvent.SCROLL, updateTargetScroll, false);
};
_scrollTarget = _arg1;
if (_scrollTarget != null){
_scrollTarget.addEventListener(Event.CHANGE, handleTargetChange, false, 0, true);
_scrollTarget.addEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false, 0, true);
_scrollTarget.addEventListener(Event.SCROLL, handleTargetScroll, false, 0, true);
addEventListener(ScrollEvent.SCROLL, updateTargetScroll, false, 0, true);
};
invalidate(InvalidationType.DATA);
}
override public function get direction():String{
return (super.direction);
}
public static function getStyleDefinition():Object{
return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition()));
}
}
}//package fl.controls
Section 16
//ComponentShim (fl.core.ComponentShim)
package fl.core {
import flash.display.*;
public dynamic class ComponentShim extends MovieClip {
}
}//package fl.core
Section 17
//InvalidationType (fl.core.InvalidationType)
package fl.core {
public class InvalidationType {
public static const SIZE:String = "size";
public static const ALL:String = "all";
public static const DATA:String = "data";
public static const SCROLL:String = "scroll";
public static const STATE:String = "state";
public static const STYLES:String = "styles";
public static const SELECTED:String = "selected";
public static const RENDERER_STYLES:String = "rendererStyles";
}
}//package fl.core
Section 18
//UIComponent (fl.core.UIComponent)
package fl.core {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.text.*;
import fl.managers.*;
import fl.events.*;
import flash.system.*;
public class UIComponent extends Sprite {
protected var _enabled:Boolean;// = true
private var _mouseFocusEnabled:Boolean;// = true
protected var startHeight:Number;
protected var _height:Number;
protected var _oldIMEMode:String;// = null
protected var startWidth:Number;
public var focusTarget:IFocusManagerComponent;
protected var errorCaught:Boolean;// = false
protected var uiFocusRect:DisplayObject;
protected var _width:Number;
public var version:String;// = "3.0.0.15"
protected var isFocused:Boolean;// = false
protected var callLaterMethods:Dictionary;
private var _focusEnabled:Boolean;// = true
private var tempText:TextField;
protected var invalidateFlag:Boolean;// = false
protected var _inspector:Boolean;// = false
protected var sharedStyles:Object;
protected var invalidHash:Object;
protected var isLivePreview:Boolean;// = false
protected var _imeMode:String;// = null
protected var instanceStyles:Object;
protected var _x:Number;
protected var _y:Number;
public static var inCallLaterPhase:Boolean = false;
private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)};
public static var createAccessibilityImplementation:Function;
private static var focusManagers:Dictionary = new Dictionary(false);
public function UIComponent(){
version = "3.0.0.15";
isLivePreview = false;
invalidateFlag = false;
_enabled = true;
isFocused = false;
_focusEnabled = true;
_mouseFocusEnabled = true;
_imeMode = null;
_oldIMEMode = null;
errorCaught = false;
_inspector = false;
super();
instanceStyles = {};
sharedStyles = {};
invalidHash = {};
callLaterMethods = new Dictionary();
StyleManager.registerInstance(this);
configUI();
invalidate(InvalidationType.ALL);
tabEnabled = (this is IFocusManagerComponent);
focusRect = false;
if (tabEnabled){
addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
};
initializeFocusManager();
addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true);
}
public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
isFocused = _arg1;
if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){
removeChild(uiFocusRect);
uiFocusRect = null;
};
if (_arg1){
uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite);
if (uiFocusRect == null){
return;
};
_local2 = Number(getStyleValue("focusRectPadding"));
uiFocusRect.x = -(_local2);
uiFocusRect.y = -(_local2);
uiFocusRect.width = (width + (_local2 * 2));
uiFocusRect.height = (height + (_local2 * 2));
addChildAt(uiFocusRect, 0);
};
}
private function callLaterDispatcher(_arg1:Event):void{
var _local2:Dictionary;
var _local3:Object;
if (_arg1.type == Event.ADDED_TO_STAGE){
removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher);
stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true);
stage.invalidate();
return;
};
_arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher);
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true);
return;
};
inCallLaterPhase = true;
_local2 = callLaterMethods;
for (_local3 in _local2) {
_local3();
delete _local2[_local3];
};
inCallLaterPhase = false;
}
private function addedHandler(_arg1:Event):void{
removeEventListener("addedToStage", addedHandler);
initializeFocusManager();
}
protected function getStyleValue(_arg1:String):Object{
return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]);
}
protected function isOurFocus(_arg1:DisplayObject):Boolean{
return ((_arg1 == this));
}
override public function get scaleX():Number{
return ((width / startWidth));
}
override public function get scaleY():Number{
return ((height / startHeight));
}
override public function set height(_arg1:Number):void{
if (_height == _arg1){
return;
};
setSize(width, _arg1);
}
protected function keyDownHandler(_arg1:KeyboardEvent):void{
}
protected function focusInHandler(_arg1:FocusEvent):void{
var _local2:IFocusManager;
if (isOurFocus((_arg1.target as DisplayObject))){
_local2 = focusManager;
if (((_local2) && (_local2.showFocusIndicator))){
drawFocus(true);
isFocused = true;
};
};
}
public function setStyle(_arg1:String, _arg2:Object):void{
if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
instanceStyles[_arg1] = _arg2;
invalidate(InvalidationType.STYLES);
}
override public function get visible():Boolean{
return (super.visible);
}
public function get componentInspectorSetting():Boolean{
return (_inspector);
}
override public function get x():Number{
return ((isNaN(_x)) ? super.x : _x);
}
override public function get y():Number{
return ((isNaN(_y)) ? super.y : _y);
}
protected function setIMEMode(_arg1:Boolean){
var enabled = _arg1;
if (_imeMode != null){
if (enabled){
IME.enabled = true;
_oldIMEMode = IME.conversionMode;
try {
if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){
IME.conversionMode = _imeMode;
};
errorCaught = false;
} catch(e:Error) {
errorCaught = true;
throw (new Error(("IME mode not supported: " + _imeMode)));
};
} else {
if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){
IME.conversionMode = _oldIMEMode;
};
IME.enabled = false;
};
};
}
public function set enabled(_arg1:Boolean):void{
if (_arg1 == _enabled){
return;
};
_enabled = _arg1;
invalidate(InvalidationType.STATE);
}
public function setSharedStyle(_arg1:String, _arg2:Object):void{
if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
sharedStyles[_arg1] = _arg2;
if (instanceStyles[_arg1] == null){
invalidate(InvalidationType.STYLES);
};
}
protected function keyUpHandler(_arg1:KeyboardEvent):void{
}
public function set focusEnabled(_arg1:Boolean):void{
_focusEnabled = _arg1;
}
override public function set scaleX(_arg1:Number):void{
setSize((startWidth * _arg1), height);
}
public function get mouseFocusEnabled():Boolean{
return (_mouseFocusEnabled);
}
override public function set scaleY(_arg1:Number):void{
setSize(width, (startHeight * _arg1));
}
protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{
var classDef:Object;
var skin = _arg1;
classDef = null;
if ((skin is Class)){
return ((new (skin) as DisplayObject));
};
if ((skin is DisplayObject)){
(skin as DisplayObject).x = 0;
(skin as DisplayObject).y = 0;
return ((skin as DisplayObject));
};
try {
classDef = getDefinitionByName(skin.toString());
} catch(e:Error) {
try {
classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object);
} catch(e:Error) {
};
};
if (classDef == null){
return (null);
};
return ((new (classDef) as DisplayObject));
}
protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{
var _local3:String;
for (_local3 in _arg2) {
_arg1.setStyle(_local3, getStyleValue(_arg2[_local3]));
};
}
protected function beforeComponentParameters():void{
}
protected function callLater(_arg1:Function):void{
if (inCallLaterPhase){
return;
};
callLaterMethods[_arg1] = true;
if (stage != null){
stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true);
stage.invalidate();
} else {
addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true);
};
}
protected function createFocusManager():void{
if (focusManagers[stage] == null){
focusManagers[stage] = new FocusManager(stage);
};
}
override public function set visible(_arg1:Boolean):void{
var _local2:String;
if (super.visible == _arg1){
return;
};
super.visible = _arg1;
_local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE;
dispatchEvent(new ComponentEvent(_local2, true));
}
protected function hookAccessibility(_arg1:Event):void{
removeEventListener(Event.ENTER_FRAME, hookAccessibility);
initializeAccessibility();
}
public function set componentInspectorSetting(_arg1:Boolean):void{
_inspector = _arg1;
if (_inspector){
beforeComponentParameters();
} else {
afterComponentParameters();
};
}
override public function set x(_arg1:Number):void{
move(_arg1, _y);
}
public function drawNow():void{
draw();
}
override public function set y(_arg1:Number):void{
move(_x, _arg1);
}
protected function checkLivePreview():Boolean{
var className:String;
if (parent == null){
return (false);
};
try {
className = getQualifiedClassName(parent);
} catch(e:Error) {
};
return ((className == "fl.livepreview::LivePreviewParent"));
}
protected function focusOutHandler(_arg1:FocusEvent):void{
if (isOurFocus((_arg1.target as DisplayObject))){
drawFocus(false);
isFocused = false;
};
}
public function set mouseFocusEnabled(_arg1:Boolean):void{
_mouseFocusEnabled = _arg1;
}
public function getFocus():InteractiveObject{
if (stage){
return (stage.focus);
};
return (null);
}
protected function validate():void{
invalidHash = {};
}
override public function get height():Number{
return (_height);
}
public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{
invalidHash[_arg1] = true;
if (_arg2){
this.callLater(draw);
};
}
public function get enabled():Boolean{
return (_enabled);
}
protected function getScaleX():Number{
return (super.scaleX);
}
protected function getScaleY():Number{
return (super.scaleY);
}
public function get focusEnabled():Boolean{
return (_focusEnabled);
}
protected function afterComponentParameters():void{
}
protected function draw():void{
if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
if (((isFocused) && (focusManager.showFocusIndicator))){
drawFocus(true);
};
};
validate();
}
protected function configUI():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
isLivePreview = checkLivePreview();
_local1 = rotation;
rotation = 0;
_local2 = super.width;
_local3 = super.height;
var _local4 = 1;
super.scaleY = _local4;
super.scaleX = _local4;
setSize(_local2, _local3);
move(super.x, super.y);
rotation = _local1;
startWidth = _local2;
startHeight = _local3;
if (numChildren > 0){
removeChildAt(0);
};
}
protected function setScaleX(_arg1:Number):void{
super.scaleX = _arg1;
}
protected function setScaleY(_arg1:Number):void{
super.scaleY = _arg1;
}
private function initializeFocusManager():void{
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true);
} else {
createFocusManager();
};
}
public function set focusManager(_arg1:IFocusManager):void{
UIComponent.focusManagers[this] = _arg1;
}
public function clearStyle(_arg1:String):void{
setStyle(_arg1, null);
}
protected function isInvalid(_arg1:String, ... _args):Boolean{
if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){
return (true);
};
while (_args.length > 0) {
if (invalidHash[_args.pop()]){
return (true);
};
};
return (false);
}
public function setSize(_arg1:Number, _arg2:Number):void{
_width = _arg1;
_height = _arg2;
invalidate(InvalidationType.SIZE);
dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false));
}
override public function set width(_arg1:Number):void{
if (_width == _arg1){
return;
};
setSize(_arg1, height);
}
public function setFocus():void{
if (stage){
stage.focus = this;
};
}
protected function initializeAccessibility():void{
if (UIComponent.createAccessibilityImplementation != null){
UIComponent.createAccessibilityImplementation(this);
};
}
public function get focusManager():IFocusManager{
var _local1:DisplayObject;
_local1 = this;
while (_local1) {
if (UIComponent.focusManagers[_local1] != null){
return (IFocusManager(UIComponent.focusManagers[_local1]));
};
_local1 = _local1.parent;
};
return (null);
}
override public function get width():Number{
return (_width);
}
public function move(_arg1:Number, _arg2:Number):void{
_x = _arg1;
_y = _arg2;
super.x = Math.round(_arg1);
super.y = Math.round(_arg2);
dispatchEvent(new ComponentEvent(ComponentEvent.MOVE));
}
public function validateNow():void{
invalidate(InvalidationType.ALL, false);
draw();
}
public function getStyle(_arg1:String):Object{
return (instanceStyles[_arg1]);
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
public static function mergeStyles(... _args):Object{
var _local2:Object;
var _local3:uint;
var _local4:uint;
var _local5:Object;
var _local6:String;
_local2 = {};
_local3 = _args.length;
_local4 = 0;
while (_local4 < _local3) {
_local5 = _args[_local4];
for (_local6 in _local5) {
if (_local2[_local6] != null){
} else {
_local2[_local6] = _args[_local4][_local6];
};
};
_local4++;
};
return (_local2);
}
}
}//package fl.core
Section 19
//ComponentEvent (fl.events.ComponentEvent)
package fl.events {
import flash.events.*;
public class ComponentEvent extends Event {
public static const HIDE:String = "hide";
public static const BUTTON_DOWN:String = "buttonDown";
public static const MOVE:String = "move";
public static const RESIZE:String = "resize";
public static const ENTER:String = "enter";
public static const LABEL_CHANGE:String = "labelChange";
public static const SHOW:String = "show";
public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
override public function toString():String{
return (formatToString("ComponentEvent", "type", "bubbles", "cancelable"));
}
override public function clone():Event{
return (new ComponentEvent(type, bubbles, cancelable));
}
}
}//package fl.events
Section 20
//InteractionInputType (fl.events.InteractionInputType)
package fl.events {
public class InteractionInputType {
public static const MOUSE:String = "mouse";
public static const KEYBOARD:String = "keyboard";
}
}//package fl.events
Section 21
//ScrollEvent (fl.events.ScrollEvent)
package fl.events {
import flash.events.*;
public class ScrollEvent extends Event {
private var _position:Number;
private var _direction:String;
private var _delta:Number;
public static const SCROLL:String = "scroll";
public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){
super(ScrollEvent.SCROLL, false, false);
_direction = _arg1;
_delta = _arg2;
_position = _arg3;
}
override public function clone():Event{
return (new ScrollEvent(_direction, _delta, _position));
}
public function get position():Number{
return (_position);
}
override public function toString():String{
return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position"));
}
public function get delta():Number{
return (_delta);
}
public function get direction():String{
return (_direction);
}
}
}//package fl.events
Section 22
//SliderEvent (fl.events.SliderEvent)
package fl.events {
import flash.events.*;
public class SliderEvent extends Event {
protected var _triggerEvent:String;
protected var _keyCode:Number;
protected var _value:Number;
protected var _clickTarget:String;
public static const CHANGE:String = "change";
public static const THUMB_PRESS:String = "thumbPress";
public static const THUMB_DRAG:String = "thumbDrag";
public static const THUMB_RELEASE:String = "thumbRelease";
public function SliderEvent(_arg1:String, _arg2:Number, _arg3:String, _arg4:String, _arg5:int=0){
_value = _arg2;
_keyCode = _arg5;
_triggerEvent = _arg4;
_clickTarget = _arg3;
super(_arg1);
}
public function get clickTarget():String{
return (_clickTarget);
}
override public function clone():Event{
return (new SliderEvent(type, _value, _clickTarget, _triggerEvent, _keyCode));
}
override public function toString():String{
return (formatToString("SliderEvent", "type", "value", "bubbles", "cancelable", "keyCode", "triggerEvent", "clickTarget"));
}
public function get triggerEvent():String{
return (_triggerEvent);
}
public function get value():Number{
return (_value);
}
public function get keyCode():Number{
return (_keyCode);
}
}
}//package fl.events
Section 23
//SliderEventClickTarget (fl.events.SliderEventClickTarget)
package fl.events {
public class SliderEventClickTarget {
public static const TRACK:String = "track";
public static const THUMB:String = "thumb";
}
}//package fl.events
Section 24
//FocusManager (fl.managers.FocusManager)
package fl.managers {
import fl.controls.*;
import flash.display.*;
import fl.core.*;
import flash.events.*;
import flash.utils.*;
import flash.text.*;
import flash.ui.*;
public class FocusManager implements IFocusManager {
private var focusableObjects:Dictionary;
private var _showFocusIndicator:Boolean;// = true
private var defButton:Button;
private var focusableCandidates:Array;
private var _form:DisplayObjectContainer;
private var _defaultButtonEnabled:Boolean;// = true
private var activated:Boolean;// = false
private var _defaultButton:Button;
private var calculateCandidates:Boolean;// = true
private var lastFocus:InteractiveObject;
private var lastAction:String;
public function FocusManager(_arg1:DisplayObjectContainer){
activated = false;
calculateCandidates = true;
_showFocusIndicator = true;
_defaultButtonEnabled = true;
super();
focusableObjects = new Dictionary(true);
if (_arg1 != null){
_form = _arg1;
addFocusables(DisplayObject(_arg1));
_arg1.addEventListener(Event.ADDED, addedHandler);
_arg1.addEventListener(Event.REMOVED, removedHandler);
activate();
};
}
public function get showFocusIndicator():Boolean{
return (_showFocusIndicator);
}
private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{
var _local5:int;
var _local6:int;
var _local7:DisplayObject;
var _local8:IFocusManagerGroup;
var _local9:int;
var _local10:DisplayObject;
var _local11:IFocusManagerGroup;
_local5 = focusableCandidates.length;
_local6 = _arg1;
while (true) {
if (_arg2){
_arg1--;
} else {
_arg1++;
};
if (_arg3){
if (((_arg2) && ((_arg1 < 0)))){
break;
};
if (((!(_arg2)) && ((_arg1 == _local5)))){
break;
};
} else {
_arg1 = ((_arg1 + _local5) % _local5);
if (_local6 == _arg1){
break;
};
};
if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){
_local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1]));
if ((_local7 is IFocusManagerGroup)){
_local8 = IFocusManagerGroup(_local7);
_local9 = 0;
while (_local9 < focusableCandidates.length) {
_local10 = focusableCandidates[_local9];
if ((_local10 is IFocusManagerGroup)){
_local11 = IFocusManagerGroup(_local10);
if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){
_arg1 = _local9;
break;
};
};
_local9++;
};
};
return (_arg1);
};
};
return (_arg1);
}
public function set form(_arg1:DisplayObjectContainer):void{
_form = _arg1;
}
private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{
var focusable:IFocusManagerComponent;
var io:InteractiveObject;
var doc:DisplayObjectContainer;
var i:int;
var child:DisplayObject;
var o = _arg1;
var skipTopLevel = _arg2;
if (!skipTopLevel){
if ((o is IFocusManagerComponent)){
focusable = IFocusManagerComponent(o);
if (focusable.focusEnabled){
if (((focusable.tabEnabled) && (isTabVisible(o)))){
focusableObjects[o] = true;
calculateCandidates = true;
};
o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
};
} else {
if ((o is InteractiveObject)){
io = (o as InteractiveObject);
if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){
focusableObjects[io] = true;
calculateCandidates = true;
};
io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
};
};
};
if ((o is DisplayObjectContainer)){
doc = DisplayObjectContainer(o);
o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler);
if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){
i = 0;
while (i < doc.numChildren) {
try {
child = doc.getChildAt(i);
if (child != null){
addFocusables(doc.getChildAt(i));
};
} catch(error:SecurityError) {
};
i = (i + 1);
};
};
};
}
private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{
return (_arg1.getChildIndex(_arg2));
}
private function mouseFocusChangeHandler(_arg1:FocusEvent):void{
if ((_arg1.relatedObject is TextField)){
return;
};
_arg1.preventDefault();
}
private function focusOutHandler(_arg1:FocusEvent):void{
var _local2:InteractiveObject;
_local2 = (_arg1.target as InteractiveObject);
}
private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{
var _local3:IFocusManagerGroup;
if (!isEnabledAndVisible(_arg1)){
return (false);
};
if ((_arg1 is IFocusManagerGroup)){
_local3 = IFocusManagerGroup(_arg1);
if (_arg2 == _local3.groupName){
return (false);
};
};
return (true);
}
public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{
var _local2:InteractiveObject;
_local2 = _arg1;
while (_arg1) {
if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){
return (_arg1);
};
_arg1 = _arg1.parent;
};
return (_local2);
}
private function sortFocusableObjectsTabIndex():void{
var _local1:Object;
var _local2:InteractiveObject;
focusableCandidates = [];
for (_local1 in focusableObjects) {
_local2 = InteractiveObject(_local1);
if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){
focusableCandidates.push(_local2);
};
};
focusableCandidates.sort(sortByTabIndex);
}
private function removeFocusables(_arg1:DisplayObject):void{
var _local2:Object;
var _local3:DisplayObject;
if ((_arg1 is DisplayObjectContainer)){
_arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler);
_arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
for (_local2 in focusableObjects) {
_local3 = DisplayObject(_local2);
if (DisplayObjectContainer(_arg1).contains(_local3)){
if (_local3 == lastFocus){
lastFocus = null;
};
_local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
delete focusableObjects[_local2];
calculateCandidates = true;
};
};
};
}
private function addedHandler(_arg1:Event):void{
var _local2:DisplayObject;
_local2 = DisplayObject(_arg1.target);
if (_local2.stage){
addFocusables(DisplayObject(_arg1.target));
};
}
private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{
while (_arg1 != InteractiveObject(form)) {
if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){
return (_arg1);
};
_arg1 = _arg1.parent;
if (_arg1 == null){
break;
};
};
return (null);
}
private function tabChildrenChangeHandler(_arg1:Event):void{
var _local2:DisplayObjectContainer;
if (_arg1.target != _arg1.currentTarget){
return;
};
calculateCandidates = true;
_local2 = DisplayObjectContainer(_arg1.target);
if (_local2.tabChildren){
addFocusables(_local2, true);
} else {
removeFocusables(_local2);
};
}
public function sendDefaultButtonEvent():void{
defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
public function getFocus():InteractiveObject{
var _local1:InteractiveObject;
_local1 = form.stage.focus;
return (findFocusManagerComponent(_local1));
}
private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{
var _local2:DisplayObjectContainer;
var _local3:TextField;
var _local4:SimpleButton;
_local2 = DisplayObject(form).parent;
while (_arg1 != _local2) {
if ((_arg1 is UIComponent)){
if (!UIComponent(_arg1).enabled){
return (false);
};
} else {
if ((_arg1 is TextField)){
_local3 = TextField(_arg1);
if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){
return (false);
};
} else {
if ((_arg1 is SimpleButton)){
_local4 = SimpleButton(_arg1);
if (!_local4.enabled){
return (false);
};
};
};
};
if (!_arg1.visible){
return (false);
};
_arg1 = _arg1.parent;
};
return (true);
}
public function set defaultButton(_arg1:Button):void{
var _local2:Button;
_local2 = (_arg1) ? Button(_arg1) : null;
if (_local2 != _defaultButton){
if (_defaultButton){
_defaultButton.emphasized = false;
};
if (defButton){
defButton.emphasized = false;
};
_defaultButton = _local2;
defButton = _local2;
if (_local2){
_local2.emphasized = true;
};
};
}
private function deactivateHandler(_arg1:Event):void{
var _local2:InteractiveObject;
_local2 = InteractiveObject(_arg1.target);
}
public function setFocus(_arg1:InteractiveObject):void{
if ((_arg1 is IFocusManagerComponent)){
IFocusManagerComponent(_arg1).setFocus();
} else {
form.stage.focus = _arg1;
};
}
private function setFocusToNextObject(_arg1:FocusEvent):void{
var _local2:InteractiveObject;
if (!hasFocusableObjects()){
return;
};
_local2 = getNextFocusManagerComponent(_arg1.shiftKey);
if (_local2){
setFocus(_local2);
};
}
private function hasFocusableObjects():Boolean{
var _local1:Object;
for (_local1 in focusableObjects) {
return (true);
};
return (false);
}
private function tabIndexChangeHandler(_arg1:Event):void{
calculateCandidates = true;
}
private function sortFocusableObjects():void{
var _local1:Object;
var _local2:InteractiveObject;
focusableCandidates = [];
for (_local1 in focusableObjects) {
_local2 = InteractiveObject(_local1);
if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){
sortFocusableObjectsTabIndex();
return;
};
focusableCandidates.push(_local2);
};
focusableCandidates.sort(sortByDepth);
}
private function keyFocusChangeHandler(_arg1:FocusEvent):void{
showFocusIndicator = true;
if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){
setFocusToNextObject(_arg1);
_arg1.preventDefault();
};
}
private function getIndexOfFocusedObject(_arg1:DisplayObject):int{
var _local2:int;
var _local3:int;
_local2 = focusableCandidates.length;
_local3 = 0;
_local3 = 0;
while (_local3 < _local2) {
if (focusableCandidates[_local3] == _arg1){
return (_local3);
};
_local3++;
};
return (-1);
}
public function hideFocus():void{
}
private function removedHandler(_arg1:Event):void{
var _local2:int;
var _local3:DisplayObject;
var _local4:InteractiveObject;
_local3 = DisplayObject(_arg1.target);
if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){
if (_local3 == lastFocus){
IFocusManagerComponent(lastFocus).drawFocus(false);
lastFocus = null;
};
_local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
delete focusableObjects[_local3];
calculateCandidates = true;
} else {
if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){
_local4 = (_local3 as InteractiveObject);
if (_local4){
if (_local4 == lastFocus){
lastFocus = null;
};
delete focusableObjects[_local4];
calculateCandidates = true;
};
_local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
};
};
removeFocusables(_local3);
}
private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{
var _local3:String;
var _local4:String;
var _local5:int;
var _local6:String;
var _local7:String;
var _local8:String;
var _local9:DisplayObject;
var _local10:DisplayObject;
_local3 = "";
_local4 = "";
_local8 = "0000";
_local9 = DisplayObject(_arg1);
_local10 = DisplayObject(_arg2);
while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) {
_local5 = getChildIndex(_local9.parent, _local9);
_local6 = _local5.toString(16);
if (_local6.length < 4){
_local7 = (_local8.substring(0, (4 - _local6.length)) + _local6);
};
_local3 = (_local7 + _local3);
_local9 = _local9.parent;
};
while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) {
_local5 = getChildIndex(_local10.parent, _local10);
_local6 = _local5.toString(16);
if (_local6.length < 4){
_local7 = (_local8.substring(0, (4 - _local6.length)) + _local6);
};
_local4 = (_local7 + _local4);
_local10 = _local10.parent;
};
return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0);
}
public function get defaultButton():Button{
return (_defaultButton);
}
private function activateHandler(_arg1:Event):void{
var _local2:InteractiveObject;
_local2 = InteractiveObject(_arg1.target);
if (lastFocus){
if ((lastFocus is IFocusManagerComponent)){
IFocusManagerComponent(lastFocus).setFocus();
} else {
form.stage.focus = lastFocus;
};
};
lastAction = "ACTIVATE";
}
public function showFocus():void{
}
public function set defaultButtonEnabled(_arg1:Boolean):void{
_defaultButtonEnabled = _arg1;
}
public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{
var _local2:DisplayObject;
var _local3:String;
var _local4:int;
var _local5:Boolean;
var _local6:int;
var _local7:int;
var _local8:IFocusManagerGroup;
if (!hasFocusableObjects()){
return (null);
};
if (calculateCandidates){
sortFocusableObjects();
calculateCandidates = false;
};
_local2 = form.stage.focus;
_local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2)));
_local3 = "";
if ((_local2 is IFocusManagerGroup)){
_local8 = IFocusManagerGroup(_local2);
_local3 = _local8.groupName;
};
_local4 = getIndexOfFocusedObject(_local2);
_local5 = false;
_local6 = _local4;
if (_local4 == -1){
if (_arg1){
_local4 = focusableCandidates.length;
};
_local5 = true;
};
_local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3);
return (findFocusManagerComponent(focusableCandidates[_local7]));
}
private function mouseDownHandler(_arg1:MouseEvent):void{
var _local2:InteractiveObject;
if (_arg1.isDefaultPrevented()){
return;
};
_local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target));
if (!_local2){
return;
};
showFocusIndicator = false;
if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){
setFocus(_local2);
};
lastAction = "MOUSEDOWN";
}
private function isTabVisible(_arg1:DisplayObject):Boolean{
var _local2:DisplayObjectContainer;
_local2 = _arg1.parent;
while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) {
if (!_local2.tabChildren){
return (false);
};
_local2 = _local2.parent;
};
return (true);
}
public function get nextTabIndex():int{
return (0);
}
private function keyDownHandler(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == Keyboard.TAB){
lastAction = "KEY";
if (calculateCandidates){
sortFocusableObjects();
calculateCandidates = false;
};
};
if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){
sendDefaultButtonEvent();
};
}
private function focusInHandler(_arg1:FocusEvent):void{
var _local2:InteractiveObject;
var _local3:Button;
_local2 = InteractiveObject(_arg1.target);
if (form.contains(_local2)){
lastFocus = findFocusManagerComponent(InteractiveObject(_local2));
if ((lastFocus is Button)){
_local3 = Button(lastFocus);
if (defButton){
defButton.emphasized = false;
defButton = _local3;
_local3.emphasized = true;
};
} else {
if (((defButton) && (!((defButton == _defaultButton))))){
defButton.emphasized = false;
defButton = _defaultButton;
_defaultButton.emphasized = true;
};
};
};
}
private function tabEnabledChangeHandler(_arg1:Event):void{
var _local2:InteractiveObject;
var _local3:Boolean;
calculateCandidates = true;
_local2 = InteractiveObject(_arg1.target);
_local3 = (focusableObjects[_local2] == true);
if (_local2.tabEnabled){
if (((!(_local3)) && (isTabVisible(_local2)))){
if (!(_local2 is IFocusManagerComponent)){
_local2.focusRect = false;
};
focusableObjects[_local2] = true;
};
} else {
if (_local3){
delete focusableObjects[_local2];
};
};
}
public function set showFocusIndicator(_arg1:Boolean):void{
_showFocusIndicator = _arg1;
}
public function get form():DisplayObjectContainer{
return (_form);
}
private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{
return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2));
}
public function activate():void{
if (activated){
return;
};
form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true);
form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true);
form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true);
form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true);
form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
activated = true;
if (lastFocus){
setFocus(lastFocus);
};
}
public function deactivate():void{
form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler);
form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
form.stage.removeEventListener(Event.ACTIVATE, activateHandler);
form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler);
form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
activated = false;
}
public function get defaultButtonEnabled():Boolean{
return (_defaultButtonEnabled);
}
}
}//package fl.managers
Section 25
//IFocusManager (fl.managers.IFocusManager)
package fl.managers {
import fl.controls.*;
import flash.display.*;
public interface IFocusManager {
function getFocus():InteractiveObject;
function deactivate():void;
function set defaultButton(_arg1:Button):void;
function set showFocusIndicator(_arg1:Boolean):void;
function get defaultButtonEnabled():Boolean;
function get nextTabIndex():int;
function get defaultButton():Button;
function get showFocusIndicator():Boolean;
function setFocus(_arg1:InteractiveObject):void;
function activate():void;
function showFocus():void;
function set defaultButtonEnabled(_arg1:Boolean):void;
function hideFocus():void;
function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject;
function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject;
}
}//package fl.managers
Section 26
//IFocusManagerComponent (fl.managers.IFocusManagerComponent)
package fl.managers {
public interface IFocusManagerComponent {
function set focusEnabled(_arg1:Boolean):void;
function drawFocus(_arg1:Boolean):void;
function setFocus():void;
function get focusEnabled():Boolean;
function get tabEnabled():Boolean;
function get tabIndex():int;
function get mouseFocusEnabled():Boolean;
}
}//package fl.managers
Section 27
//IFocusManagerGroup (fl.managers.IFocusManagerGroup)
package fl.managers {
public interface IFocusManagerGroup {
function set groupName(_arg1:String):void;
function set selected(_arg1:Boolean):void;
function get groupName():String;
function get selected():Boolean;
}
}//package fl.managers
Section 28
//StyleManager (fl.managers.StyleManager)
package fl.managers {
import fl.core.*;
import flash.utils.*;
import flash.text.*;
public class StyleManager {
private var globalStyles:Object;
private var classToDefaultStylesDict:Dictionary;
private var styleToClassesHash:Object;
private var classToStylesDict:Dictionary;
private var classToInstancesDict:Dictionary;
private static var _instance:StyleManager;
public function StyleManager(){
styleToClassesHash = {};
classToInstancesDict = new Dictionary(true);
classToStylesDict = new Dictionary(true);
classToDefaultStylesDict = new Dictionary(true);
globalStyles = UIComponent.getStyleDefinition();
}
public static function clearComponentStyle(_arg1:Object, _arg2:String):void{
var _local3:Class;
var _local4:Object;
_local3 = getClassDef(_arg1);
_local4 = getInstance().classToStylesDict[_local3];
if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){
delete _local4[_arg2];
invalidateComponentStyle(_local3, _arg2);
};
}
private static function getClassDef(_arg1:Object):Class{
var component = _arg1;
if ((component is Class)){
return ((component as Class));
};
try {
return ((getDefinitionByName(getQualifiedClassName(component)) as Class));
} catch(e:Error) {
if ((component is UIComponent)){
try {
return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class));
} catch(e:Error) {
};
};
};
return (null);
}
public static function clearStyle(_arg1:String):void{
setStyle(_arg1, null);
}
public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Class;
var _local5:Object;
_local4 = getClassDef(_arg1);
_local5 = getInstance().classToStylesDict[_local4];
if (_local5 == null){
_local5 = (getInstance().classToStylesDict[_local4] = {});
};
if (_local5 == _arg3){
return;
};
_local5[_arg2] = _arg3;
invalidateComponentStyle(_local4, _arg2);
}
private static function setSharedStyles(_arg1:UIComponent):void{
var _local2:StyleManager;
var _local3:Class;
var _local4:Object;
var _local5:String;
_local2 = getInstance();
_local3 = getClassDef(_arg1);
_local4 = _local2.classToDefaultStylesDict[_local3];
for (_local5 in _local4) {
_arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5));
};
}
public static function getComponentStyle(_arg1:Object, _arg2:String):Object{
var _local3:Class;
var _local4:Object;
_local3 = getClassDef(_arg1);
_local4 = getInstance().classToStylesDict[_local3];
return (((_local4)==null) ? null : _local4[_arg2]);
}
private static function getInstance(){
if (_instance == null){
_instance = new (StyleManager);
};
return (_instance);
}
private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{
var _local3:Dictionary;
var _local4:Object;
var _local5:UIComponent;
_local3 = getInstance().classToInstancesDict[_arg1];
if (_local3 == null){
return;
};
for (_local4 in _local3) {
_local5 = (_local4 as UIComponent);
if (_local5 == null){
} else {
_local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2));
};
};
}
private static function invalidateStyle(_arg1:String):void{
var _local2:Dictionary;
var _local3:Object;
_local2 = getInstance().styleToClassesHash[_arg1];
if (_local2 == null){
return;
};
for (_local3 in _local2) {
invalidateComponentStyle(Class(_local3), _arg1);
};
}
public static function registerInstance(_arg1:UIComponent):void{
var inst:StyleManager;
var classDef:Class;
var target:Class;
var defaultStyles:Object;
var styleToClasses:Object;
var n:String;
var instance = _arg1;
inst = getInstance();
classDef = getClassDef(instance);
if (classDef == null){
return;
};
if (inst.classToInstancesDict[classDef] == null){
inst.classToInstancesDict[classDef] = new Dictionary(true);
target = classDef;
while (defaultStyles == null) {
if (target["getStyleDefinition"] != null){
defaultStyles = target["getStyleDefinition"]();
break;
};
try {
target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class);
} catch(err:Error) {
try {
target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class);
} catch(e:Error) {
defaultStyles = UIComponent.getStyleDefinition();
break;
};
};
};
styleToClasses = inst.styleToClassesHash;
for (n in defaultStyles) {
if (styleToClasses[n] == null){
styleToClasses[n] = new Dictionary(true);
};
styleToClasses[n][classDef] = true;
};
inst.classToDefaultStylesDict[classDef] = defaultStyles;
inst.classToStylesDict[classDef] = {};
};
inst.classToInstancesDict[classDef][instance] = true;
setSharedStyles(instance);
}
public static function getStyle(_arg1:String):Object{
return (getInstance().globalStyles[_arg1]);
}
private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{
var _local3:Class;
var _local4:StyleManager;
var _local5:Object;
_local3 = getClassDef(_arg1);
_local4 = getInstance();
_local5 = _local4.classToStylesDict[_local3][_arg2];
if (_local5 != null){
return (_local5);
};
_local5 = _local4.globalStyles[_arg2];
if (_local5 != null){
return (_local5);
};
return (_local4.classToDefaultStylesDict[_local3][_arg2]);
}
public static function setStyle(_arg1:String, _arg2:Object):void{
var _local3:Object;
_local3 = getInstance().globalStyles;
if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
_local3[_arg1] = _arg2;
invalidateStyle(_arg1);
}
}
}//package fl.managers
Section 29
//wblCeiling (gdk.fps.wbl.wblCeiling)
package gdk.fps.wbl {
import gdk.fps.*;
import gdk.*;
public class wblCeiling extends fpsNode {
public static var COUNTER = 0;
public function wblCeiling(_arg1:fpsRoom, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:gdkTexture){
super(_arg1, _arg2, _arg3, _arg4, _arg5);
ROOM.GAME.MAP.ceiling(this, u, v);
}
override public function loadNode(){
}
public static function section(_arg1:fpsRoom, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:gdkTexture, _arg6:Number=1, _arg7:Number=1){
var _local8:*;
var _local9:Number;
_local8 = 0;
while (_local8 < _arg6) {
_local9 = 0;
while (_local9 < _arg7) {
new wblCeiling(_arg1, (_arg2 + _local8), (_arg3 + _local9), _arg4, _arg5);
_local9++;
};
_local8++;
};
}
}
}//package gdk.fps.wbl
Section 30
//wblDoor (gdk.fps.wbl.wblDoor)
package gdk.fps.wbl {
import gdk.fps.*;
public class wblDoor {
public var DUMMY:Boolean;
public var LOCKED:Boolean;
public var CLOSING:Boolean;
public var DOORLOCK:Object;
public var ROOM:fpsRoom;
public var OPENED:Boolean;
public var CLOSED:Boolean;
public var ROOMID:Number;
public var ROOM2:fpsRoom;
public var OPENING:Boolean;
public var KEY:String;
public function wblDoor(_arg1:fpsRoom, _arg2:fpsRoom, _arg3:Object){
ROOM = _arg1;
ROOMID = _arg1.ID;
ROOM.door(this);
ROOM2 = _arg2;
OPENED = false;
CLOSED = true;
OPENING = false;
CLOSING = false;
DOORLOCK = _arg3;
if (DOORLOCK.dummy == null){
DUMMY = false;
} else {
DUMMY = DOORLOCK.dummy;
};
if (DOORLOCK.locked == null){
LOCKED = false;
} else {
LOCKED = DOORLOCK.locked;
};
if (DOORLOCK.key == null){
KEY = null;
} else {
KEY = DOORLOCK.key;
};
}
public function init(){
OPENED = false;
CLOSED = true;
OPENING = false;
CLOSING = false;
}
}
}//package gdk.fps.wbl
Section 31
//wblDoorA (gdk.fps.wbl.wblDoorA)
package gdk.fps.wbl {
import gdk.fps.*;
import gdk.*;
import flash.geom.*;
import gdk.math.*;
public class wblDoorA extends wblDoor {
public var PART_L:wblDoorPanel;
public var v2:Number;
public var PART_R:wblDoorPanel;
public var z:Number;
private var ANIM_RX0:Number;
private var ANIM_LZ0:Number;
private var ANIM_LDX:Number;
private var ANIM_LDZ:Number;
private var ANIM_RZ0:Number;
private var ANIM_RATIO:Number;
public var dDEPTH:Number;
private var ANIM_RDX:Number;
public var LINE:mathLine;
private var ANIM_RDZ:Number;
public var u2:Number;
public var h:Number;
public var k:Number;
public var o:Number;
public var CDOOR:wblDoorA;
public var v:Number;
public var w:Number;
public var y:Number;
public var PART_F:wblDoorFrame;
public var u:Number;
private var ANIM_LX0:Number;
public var x:Number;
public function wblDoorA(_arg1:fpsRoom, _arg2:fpsRoom, _arg3:Object, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:gdkTexture, _arg9:gdkTexture, _arg10:gdkTexture){
var _local11:Point;
var _local12:Point;
super(_arg1, _arg2, _arg3);
u = _arg4;
v = _arg5;
k = _arg6;
w = fpsSetup.FLOOR_WIDTH;
h = fpsSetup.WALL_HEIGHT;
ANIM_RATIO = 0.6;
o = _arg7;
switch (o){
case wblWall.W_E:
x = ((u * w) + (w / 2));
y = ((k * h) + (h / 2));
z = (v * w);
u2 = (u + 1);
v2 = v;
break;
case wblWall.E_W:
x = ((u * w) - (w / 2));
y = ((k * h) + (h / 2));
z = (v * w);
u2 = (u - 1);
v2 = v;
break;
case wblWall.S_N:
x = (u * w);
y = ((k * h) + (h / 2));
z = ((v * w) + (w / 2));
u2 = u;
v2 = (v + 1);
break;
case wblWall.N_S:
x = (u * w);
y = ((k * h) + (h / 2));
z = ((v * w) - (w / 2));
u2 = u;
v2 = (v - 1);
break;
};
w = fpsSetup.FLOOR_WIDTH;
h = fpsSetup.WALL_HEIGHT;
PART_F = new wblDoorFrame(ROOM, u, v, k, o, _arg8);
PART_L = new wblDoorPanel(ROOM, u, v, k, o, _arg9, -1, PART_F);
PART_R = new wblDoorPanel(ROOM, u, v, k, o, _arg10, 1, PART_F);
_local11 = new Point((u * w), (v * w));
_local12 = new Point((u2 * w), (v2 * w));
LINE = new mathLine(_local11, _local12);
ROOM.GAME.MAP.door(this);
ROOM.GAME.MAP.closedDoor(u, v, u2, v2);
dDEPTH = 80;
}
public function openDoor(){
if (((OPENING) || (CLOSING))){
return;
};
OPENING = true;
ROOM.GAME.MAP.loadRoomBehindDoor(this);
if (CDOOR != null){
CDOOR.openDoor();
};
if (PART_L.SHAPE != null){
ANIM_LX0 = PART_L.SHAPE.x;
ANIM_LZ0 = PART_L.SHAPE.z;
ANIM_RX0 = PART_R.SHAPE.x;
ANIM_RZ0 = PART_R.SHAPE.z;
};
switch (o){
case wblWall.W_E:
ANIM_LDX = (-(w) * ANIM_RATIO);
ANIM_LDZ = 0;
ANIM_RDX = (w * ANIM_RATIO);
ANIM_RDZ = 0;
break;
case wblWall.E_W:
ANIM_LDX = (w * 0.6);
ANIM_LDZ = 0;
ANIM_RDX = (-(w) * 0.6);
ANIM_RDZ = 0;
break;
case wblWall.S_N:
ANIM_LDX = 0;
ANIM_LDZ = (-(w) * 0.6);
ANIM_RDX = 0;
ANIM_RDZ = (w * 0.6);
break;
case wblWall.N_S:
ANIM_LDX = 0;
ANIM_LDZ = (w * 0.6);
ANIM_RDX = 0;
ANIM_RDZ = (-(w) * 0.6);
break;
};
ROOM.GAME.animation(this, 30);
if (PART_L.SHAPE != null){
PART_L.MOVING = true;
PART_R.MOVING = true;
ROOM.GAME.MAP.zDepth();
};
}
public function getPartsDepth(){
}
public function closeDoor(){
if (((OPENING) || (CLOSING))){
return;
};
CLOSING = true;
if (CDOOR != null){
CDOOR.closeDoor();
};
if (PART_L.SHAPE != null){
PART_L.SHAPE.visible = true;
PART_R.SHAPE.visible = true;
ANIM_LX0 = PART_L.SHAPE.x;
ANIM_LZ0 = PART_L.SHAPE.z;
ANIM_RX0 = PART_R.SHAPE.x;
ANIM_RZ0 = PART_R.SHAPE.z;
};
switch (o){
case wblWall.W_E:
ANIM_LDX = (w * ANIM_RATIO);
ANIM_LDZ = 0;
ANIM_RDX = (-(w) * ANIM_RATIO);
ANIM_RDZ = 0;
break;
case wblWall.E_W:
ANIM_LDX = (-(w) * 0.6);
ANIM_LDZ = 0;
ANIM_RDX = (w * 0.6);
ANIM_RDZ = 0;
break;
case wblWall.S_N:
ANIM_LDX = 0;
ANIM_LDZ = (w * 0.6);
ANIM_RDX = 0;
ANIM_RDZ = (-(w) * 0.6);
break;
case wblWall.N_S:
ANIM_LDX = 0;
ANIM_LDZ = (-(w) * 0.6);
ANIM_RDX = 0;
ANIM_RDZ = (w * 0.6);
break;
};
ROOM.GAME.animation(this, 30);
if (PART_L.SHAPE != null){
PART_L.MOVING = true;
PART_R.MOVING = true;
ROOM.GAME.MAP.zDepth();
};
}
public function unloadRoomBehind(_arg1:Object=null){
ROOM.GAME.MAP.unloadRoomBehindDoor(this);
}
public function animate(_arg1:Number, _arg2:Number){
if (PART_L.SHAPE != null){
PART_L.SHAPE.x = (ANIM_LX0 + (ANIM_LDX * (_arg1 / _arg2)));
PART_L.SHAPE.z = (ANIM_LZ0 + (ANIM_LDZ * (_arg1 / _arg2)));
PART_R.SHAPE.x = (ANIM_RX0 + (ANIM_RDX * (_arg1 / _arg2)));
PART_R.SHAPE.z = (ANIM_RZ0 + (ANIM_RDZ * (_arg1 / _arg2)));
ROOM.GAME.MAP.zDepth();
};
if (((((OPENING) && (!(OPENED)))) && ((_arg1 > (_arg2 * 0.05))))){
OPENED = true;
CLOSED = false;
};
if (((OPENING) && ((_arg1 > (_arg2 * 0.5))))){
ROOM.GAME.MAP.openedDoor(u, v, u2, v2);
};
if (((CLOSING) && ((_arg1 > (_arg2 * 0.25))))){
ROOM.GAME.MAP.closedDoor(u, v, u2, v2);
};
if (_arg1 >= _arg2){
if (OPENING){
OPENING = false;
if (PART_L.SHAPE != null){
PART_L.SHAPE.visible = false;
PART_R.SHAPE.visible = false;
};
} else {
CLOSING = false;
CLOSED = true;
OPENED = false;
};
if (PART_L.SHAPE != null){
PART_L.MOVING = false;
PART_R.MOVING = false;
};
};
}
public static function create(_arg1:fpsRoom, _arg2:fpsRoom, _arg3:Object, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:gdkTexture, _arg9:gdkTexture, _arg10:gdkTexture, _arg11:gdkTexture=null, _arg12:gdkTexture=null, _arg13:gdkTexture=null){
var _local14:*;
var _local15:wblDoorA;
_local14 = new wblDoorA(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10);
if (_arg11 == null){
_arg11 = _arg8;
};
if (_arg12 == null){
_arg12 = _arg9;
};
if (_arg13 == null){
_arg13 = _arg10;
};
switch (_arg7){
case wblWall.W_E:
_local15 = new wblDoorA(_arg2, _arg1, _arg3, (_arg4 + 1), _arg5, _arg6, wblWall.E_W, _arg11, _arg12, _arg13);
break;
case wblWall.E_W:
_local15 = new wblDoorA(_arg2, _arg1, _arg3, (_arg4 - 1), _arg5, _arg6, wblWall.W_E, _arg11, _arg12, _arg13);
break;
case wblWall.S_N:
_local15 = new wblDoorA(_arg2, _arg1, _arg3, _arg4, (_arg5 + 1), _arg6, wblWall.N_S, _arg11, _arg12, _arg13);
break;
case wblWall.N_S:
_local15 = new wblDoorA(_arg2, _arg1, _arg3, _arg4, (_arg5 - 1), _arg6, wblWall.S_N, _arg11, _arg12, _arg13);
break;
};
_local14.CDOOR = _local15;
_local15.CDOOR = _local14;
}
}
}//package gdk.fps.wbl
Section 32
//wblDoorFrame (gdk.fps.wbl.wblDoorFrame)
package gdk.fps.wbl {
import gdk.fps.*;
import gdk.*;
import flash.geom.*;
import gdk.math.*;
public class wblDoorFrame extends fpsNode {
public var o:Number;
public static var COUNTER = 0;
public function wblDoorFrame(_arg1:fpsRoom, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:gdkTexture){
var _local7:*;
var _local8:Number;
var _local9:Point;
var _local10:Point;
super(_arg1, _arg2, _arg3, _arg4, _arg6);
o = _arg5;
ROOM.GAME.MAP.doorPart(this);
switch (o){
case wblWall.W_E:
_local7 = 1;
_local8 = 0;
break;
case wblWall.E_W:
_local7 = -1;
_local8 = 0;
break;
case wblWall.S_N:
_local7 = 0;
_local8 = 1;
break;
case wblWall.N_S:
_local7 = 0;
_local8 = -1;
break;
};
_local9 = new Point((u * w), (v * w));
_local10 = new Point(((u + _local7) * w), ((v + _local8) * w));
LINE = new mathLine(_local9, _local10);
}
override public function loadNode(){
LOADED = true;
opt_cli = true;
opt_tex = true;
GO = GAME.GPOOL.getShape(GAME.GPOOL.PLANEXY_100x75);
SHAPE = GO.obj;
SHAPE.rotateZ = 0;
SHAPE.rotateX = 0;
SHAPE.appearance = TEX.LQ;
switch (o){
case wblWall.W_E:
SHAPE.x = ((u * w) + (w / 2));
SHAPE.y = ((k * h) + (h / 2));
SHAPE.z = (v * w);
SHAPE.rotateY = 0;
break;
case wblWall.E_W:
SHAPE.x = ((u * w) - (w / 2));
SHAPE.y = ((k * h) + (h / 2));
SHAPE.z = (v * w);
SHAPE.rotateY = 180;
break;
case wblWall.S_N:
SHAPE.x = (u * w);
SHAPE.y = ((k * h) + (h / 2));
SHAPE.z = ((v * w) + (w / 2));
SHAPE.rotateY = 90;
break;
case wblWall.N_S:
SHAPE.x = (u * w);
SHAPE.y = ((k * h) + (h / 2));
SHAPE.z = ((v * w) - (w / 2));
SHAPE.rotateY = 270;
break;
};
}
}
}//package gdk.fps.wbl
Section 33
//wblDoorPanel (gdk.fps.wbl.wblDoorPanel)
package gdk.fps.wbl {
import gdk.fps.*;
import gdk.*;
import flash.geom.*;
import gdk.math.*;
public class wblDoorPanel extends fpsNode {
public var zWALL:Object;
public var FRAME:Object;
public var o:Number;
public var MOVING:Boolean;
public var SIDE:Number;
public var zLOC:Object;
public static var COUNTER = 0;
public function wblDoorPanel(_arg1:fpsRoom, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:gdkTexture, _arg7:Number, _arg8:fpsNode){
var _local9:*;
var _local10:Number;
var _local11:Point;
var _local12:Point;
var _local13:*;
var _local14:*;
super(_arg1, _arg2, _arg3, _arg4, _arg6);
o = _arg5;
SIDE = _arg7;
FRAME = _arg8;
ROOM.GAME.MAP.doorPart(this);
zLOC = new Object();
switch (o){
case wblWall.W_E:
_local9 = 1;
_local10 = 0;
zLOC.u = (u + SIDE);
zLOC.v = (v - 1);
break;
case wblWall.E_W:
_local9 = -1;
_local10 = 0;
zLOC.u = ((u - 1) - SIDE);
zLOC.v = v;
break;
case wblWall.S_N:
_local9 = 0;
_local10 = 1;
zLOC.u = u;
zLOC.v = (v + SIDE);
break;
case wblWall.N_S:
_local9 = 0;
_local10 = -1;
zLOC.u = (u - 1);
zLOC.v = ((v - 1) - SIDE);
break;
};
_local11 = new Point((u * w), (v * w));
_local12 = new Point(((u + _local9) * w), ((v + _local10) * w));
LINE = new mathLine(_local11, _local12);
_local13 = GAME.MAP.zWalls(zLOC.u, zLOC.v);
for (_local14 in _local13) {
if (_local13[_local14].o == o){
zWALL = _local13[_local14];
break;
};
};
MOVING = false;
}
override public function loadNode(){
LOADED = true;
opt_cli = true;
opt_tex = true;
GO = GAME.GPOOL.getShape(GAME.GPOOL.PLANEXY_100x75);
SHAPE = GO.obj;
SHAPE.rotateZ = 0;
SHAPE.rotateX = 0;
SHAPE.appearance = TEX.LQ;
switch (o){
case wblWall.W_E:
SHAPE.x = ((u * w) + (w / 2));
SHAPE.y = ((k * h) + (h / 2));
SHAPE.z = ((v * w) + 1);
SHAPE.rotateY = 0;
break;
case wblWall.E_W:
SHAPE.x = ((u * w) - (w / 2));
SHAPE.y = ((k * h) + (h / 2));
SHAPE.z = ((v * w) - 1);
SHAPE.rotateY = 180;
break;
case wblWall.S_N:
SHAPE.x = ((u * w) - 1);
SHAPE.y = ((k * h) + (h / 2));
SHAPE.z = ((v * w) + (w / 2));
SHAPE.rotateY = 90;
break;
case wblWall.N_S:
SHAPE.x = ((u * w) + 1);
SHAPE.y = ((k * h) + (h / 2));
SHAPE.z = ((v * w) - (w / 2));
SHAPE.rotateY = 270;
break;
};
}
override public function zDepth(_arg1:Object=null, _arg2:Number=0, _arg3:Number=0){
super.zDepth(_arg1, _arg2, _arg3);
if (((zWALL) && (FRAME))){
FRAME.zDepth(_arg1);
zWALL.zDepth(_arg1);
SHAPE.forcedDepth = (zDEPTH = Math.max((FRAME.zDEPTH + 25), (zWALL.zDEPTH + 25)));
};
}
}
}//package gdk.fps.wbl
Section 34
//wblFloor (gdk.fps.wbl.wblFloor)
package gdk.fps.wbl {
import gdk.fps.*;
import gdk.*;
public class wblFloor extends fpsNode {
public static var COUNTER = 0;
public function wblFloor(_arg1:fpsRoom, _arg2:Number, _arg3:Number, _arg4:gdkTexture){
super(_arg1, _arg2, _arg3, 0, _arg4);
ROOM.GAME.MAP.floor(this, u, v);
}
override public function loadNode(){
}
public static function section(_arg1:fpsRoom, _arg2:Number, _arg3:Number, _arg4:gdkTexture, _arg5:Number=1, _arg6:Number=1){
var _local7:*;
var _local8:Number;
_local7 = 0;
while (_local7 < _arg5) {
_local8 = 0;
while (_local8 < _arg6) {
new wblFloor(_arg1, (_arg2 + _local7), (_arg3 + _local8), _arg4);
_local8++;
};
_local7++;
};
}
}
}//package gdk.fps.wbl
Section 35
//wblWall (gdk.fps.wbl.wblWall)
package gdk.fps.wbl {
import gdk.fps.*;
import gdk.*;
import flash.geom.*;
import gdk.math.*;
public class wblWall extends fpsNode {
public var o:Number;
public var N:Number;
public var BASETEX:gdkTexture;
public static var W_E = 1;
public static var S_N = 3;
public static var COUNTER = 0;
public static var E_W = 2;
public static var N_S = 4;
public function wblWall(_arg1:fpsRoom, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:gdkTexture, _arg7:Number=1){
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:Point;
var _local12:Point;
super(_arg1, _arg2, _arg3, _arg4, _arg6);
o = _arg5;
N = _arg7;
BASETEX = _arg6;
switch (_arg5){
case wblWall.W_E:
_local9 = 1;
_local10 = 0;
break;
case wblWall.E_W:
_local9 = -1;
_local10 = 0;
break;
case wblWall.S_N:
_local9 = 0;
_local10 = 1;
break;
case wblWall.N_S:
_local9 = 0;
_local10 = -1;
break;
};
GAME.MAP.wallNode(this);
_local8 = 0;
while (_local8 < N) {
GAME.MAP.wall(this, (u + (_local8 * _local9)), (v + (_local8 * _local10)), ((u + (_local8 * _local9)) + _local9), ((v + (_local8 * _local10)) + _local10));
_local8++;
};
_local11 = new Point((u * w), (v * w));
_local12 = new Point(((u + (N * _local9)) * w), ((v + (N * _local10)) * w));
LINE = new mathLine(_local11, _local12);
}
override public function loadNode(){
LOADED = true;
opt_cli = true;
opt_tex = true;
switch (N){
case 1:
GO = GAME.GPOOL.getShape(GAME.GPOOL.PLANEXY_100x75);
TEX = BASETEX;
break;
case 2:
GO = GAME.GPOOL.getShape(GAME.GPOOL.PLANEXY_200x75);
TEX = BASETEX.TEXx2;
break;
case 3:
GO = GAME.GPOOL.getShape(GAME.GPOOL.PLANEXY_300x75);
TEX = BASETEX.TEXx3;
break;
case 4:
GO = GAME.GPOOL.getShape(GAME.GPOOL.PLANEXY_400x75);
TEX = BASETEX.TEXx4;
break;
case 5:
GO = GAME.GPOOL.getShape(GAME.GPOOL.PLANEXY_500x75);
TEX = BASETEX.TEXx5;
break;
case 6:
GO = GAME.GPOOL.getShape(GAME.GPOOL.PLANEXY_600x75);
TEX = BASETEX.TEXx6;
break;
};
SHAPE = GO.obj;
SHAPE.rotateZ = 0;
SHAPE.rotateX = 0;
SHAPE.appearance = TEX.LQ;
switch (o){
case wblWall.W_E:
SHAPE.x = ((u * w) + ((N * w) / 2));
SHAPE.y = ((k * h) + (h / 2));
SHAPE.z = (v * w);
SHAPE.rotateY = 0;
break;
case wblWall.E_W:
SHAPE.x = ((u * w) - ((N * w) / 2));
SHAPE.y = ((k * h) + (h / 2));
SHAPE.z = (v * w);
SHAPE.rotateY = 180;
break;
case wblWall.S_N:
SHAPE.x = (u * w);
SHAPE.y = ((k * h) + (h / 2));
SHAPE.z = ((v * w) + ((N * w) / 2));
SHAPE.rotateY = 90;
break;
case wblWall.N_S:
SHAPE.x = (u * w);
SHAPE.y = ((k * h) + (h / 2));
SHAPE.z = ((v * w) - ((N * w) / 2));
SHAPE.rotateY = 270;
break;
};
}
public function isFacing(_arg1:Object):Boolean{
var _local2:*;
var _local3:*;
var _local4:*;
_local2 = (_arg1.x - (u * w));
_local3 = (_arg1.z - (v * w));
_local4 = ((Math.atan2(_local3, _local2) * 180) / Math.PI);
if (_local4 < 0){
_local4 = (_local4 + 360);
};
switch (o){
case wblWall.W_E:
if ((((_local4 > 180)) && ((_local4 < 360)))){
return (true);
};
break;
case wblWall.E_W:
if ((((_local4 > 0)) && ((_local4 < 180)))){
return (true);
};
break;
case wblWall.S_N:
if ((((_local4 < 90)) || ((_local4 > 270)))){
return (true);
};
break;
case wblWall.N_S:
if ((((_local4 > 90)) && ((_local4 < 270)))){
return (true);
};
break;
};
return (false);
}
public static function section(_arg1:fpsRoom, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:gdkTexture, _arg7:Number=1, _arg8:Number=1):Array{
var _local9:Number;
var _local10:Number;
var _local11:Array;
var _local12:*;
var _local13:Number;
_local9 = 0;
_local10 = 0;
switch (_arg5){
case wblWall.W_E:
_local9 = 1;
_local10 = 0;
break;
case wblWall.E_W:
_local9 = -1;
_local10 = 0;
break;
case wblWall.S_N:
_local9 = 0;
_local10 = 1;
break;
case wblWall.N_S:
_local9 = 0;
_local10 = -1;
break;
};
_local11 = [];
_local12 = 0;
while (_local12 < _arg7) {
_local13 = 0;
while (_local13 < _arg8) {
_local11.push(new wblWall(_arg1, (_arg2 + (_local12 * _local9)), (_arg3 + (_local12 * _local10)), (_arg4 + _local13), _arg5, _arg6));
_local13++;
};
_local12++;
};
return (_local11);
}
}
}//package gdk.fps.wbl
Section 36
//fpsAnimation (gdk.fps.fpsAnimation)
package gdk.fps {
import gdk.fps.*;
class fpsAnimation {
public var method:Function;
public var time:Object;
public var totaltime:Number;
public var obj:Object;
function fpsAnimation(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Function=null){
obj = _arg1;
totaltime = _arg2;
time = _arg3;
method = _arg4;
}
}
}//package gdk.fps
Section 37
//fpsBullet (gdk.fps.fpsBullet)
package gdk.fps {
import gdk.sprite.*;
import sandy.core.data.*;
public class fpsBullet {
public var GPOS:Vector;
public var AREAFX_DAMAGE:Number;
public var DELAYTIMER:Number;
public var SPEED:Number;
public var EXPLODEBACK:Number;
public var DELETE:Boolean;
public var ALIVE:Boolean;
public var REACHTIMER:Number;
public var AREAFX_RADIUS:Number;
private var EXP_OBJECT:Object;
public var EXPLOSIONTIME:Number;
public var SPRITE:gBitmapSprite;
public var TPOS:Object;
private var EXP_METHOD:Function;
public var TRAIL:Array;
public var TRAILSIZE:Number;
public var LPOS:Vector;
public var EXPLODEONUNIT:Boolean;
public var DAMAGE:Number;
public var GAME:fpsGame;
public var EXPLOSION:Class;
public var DIRG:Vector;
public var DIRL:Vector;
public static var COUNTER:Number = 0;
public static var TRAIL_INTERVAL:Number = 10;
public function fpsBullet(_arg1:fpsGame, _arg2:gBitmapSprite, _arg3:Object, _arg4:Object, _arg5:Object, _arg6:Number, _arg7:Number=5){
var _local8:Number;
var _local9:*;
super();
GAME = _arg1;
TPOS = _arg5;
GPOS = new Vector(_arg3.x, _arg3.y, _arg3.z);
LPOS = new Vector(_arg4.x, _arg4.y, _arg4.z);
SPRITE = _arg2;
SPRITE.x = GPOS.x;
SPRITE.y = GPOS.y;
SPRITE.z = GPOS.z;
SPEED = _arg6;
DELAYTIMER = 0;
DIRG = new Vector((_arg5.x - GPOS.x), (_arg5.y - GPOS.y), (_arg5.z - GPOS.z));
DIRL = new Vector((_arg5.x - LPOS.x), (_arg5.y - LPOS.y), (_arg5.z - LPOS.z));
REACHTIMER = Math.ceil((DIRG.getNorm() / SPEED));
DIRG.normalize();
DIRL.normalize();
TRAILSIZE = _arg7;
TRAIL = [];
_local9 = 0;
while (_local9 < (TRAILSIZE + 1)) {
_local8 = (_local9 * fpsBullet.TRAIL_INTERVAL);
TRAIL.push(new Vector((LPOS.x - (DIRL.x * _local8)), (LPOS.y - (DIRL.y * _local8)), (LPOS.z - (DIRL.z * _local8))));
_local9++;
};
DAMAGE = 10;
ALIVE = true;
DELETE = false;
GAME.bullet(this);
EXPLOSIONTIME = 40;
EXPLODEONUNIT = false;
EXPLODEBACK = 6;
AREAFX_RADIUS = 0;
AREAFX_DAMAGE = 0;
}
public function destroy(){
ALIVE = false;
DELETE = true;
if (SPRITE){
SPRITE.release();
};
SPRITE = null;
}
public function explosionHandler(_arg1:Function, _arg2:Object){
EXP_METHOD = _arg1;
EXP_OBJECT = _arg2;
}
public function getPos():Vector{
return (LPOS);
}
public function nextState(){
var _local1:*;
if (DELAYTIMER > 0){
DELAYTIMER--;
return;
};
GPOS.x = (SPRITE.x = (SPRITE.x + (DIRG.x * SPEED)));
GPOS.y = (SPRITE.y = (SPRITE.y + (DIRG.y * SPEED)));
GPOS.z = (SPRITE.z = (SPRITE.z + (DIRG.z * SPEED)));
LPOS.x = (LPOS.x + (DIRL.x * SPEED));
LPOS.y = (LPOS.y + (DIRL.y * SPEED));
LPOS.z = (LPOS.z + (DIRL.z * SPEED));
_local1 = 0;
while (_local1 < (TRAILSIZE + 1)) {
TRAIL[_local1].x = (LPOS.x - ((DIRL.x * _local1) * fpsBullet.TRAIL_INTERVAL));
TRAIL[_local1].y = (LPOS.y - ((DIRL.y * _local1) * fpsBullet.TRAIL_INTERVAL));
TRAIL[_local1].z = (LPOS.z - ((DIRL.z * _local1) * fpsBullet.TRAIL_INTERVAL));
_local1++;
};
REACHTIMER--;
EXPLODEBACK = (EXPLODEBACK + 0.25);
if (REACHTIMER < 1){
explode(Math.round(EXPLODEBACK), true);
GAME.areaFX(this);
};
}
public function explode(_arg1:Number=1, _arg2:Boolean=false){
var _local3:Vector;
_arg1 = EXPLODEBACK;
if (((!((EXP_METHOD == null))) && (!((EXP_OBJECT == null))))){
EXP_METHOD.call(EXP_OBJECT, this);
};
if ((((REACHTIMER > 0)) && (!(EXPLODEONUNIT)))){
destroy();
return;
};
if (EXPLOSION){
_local3 = new Vector(0, 0, 0);
if (_arg2){
_local3.x = (TPOS.x - ((DIRG.x * _arg1) * fpsBullet.TRAIL_INTERVAL));
_local3.y = (TPOS.y - ((DIRG.y * _arg1) * fpsBullet.TRAIL_INTERVAL));
_local3.z = (TPOS.z - ((DIRG.z * _arg1) * fpsBullet.TRAIL_INTERVAL));
} else {
_local3.x = (SPRITE.x - ((DIRG.x * _arg1) * fpsBullet.TRAIL_INTERVAL));
_local3.y = (SPRITE.y - ((DIRG.y * _arg1) * fpsBullet.TRAIL_INTERVAL));
_local3.z = (SPRITE.z - ((DIRG.z * _arg1) * fpsBullet.TRAIL_INTERVAL));
};
new EXPLOSION(_local3);
};
destroy();
}
}
}//package gdk.fps
Section 38
//fpsBulletInstant (gdk.fps.fpsBulletInstant)
package gdk.fps {
import sandy.core.data.*;
public class fpsBulletInstant {
public var TPOS:Object;
public var LPOS:Vector;
public var DAMAGE:Number;
public var GAME:fpsGame;
public var EXPLOSION:Class;
public var MOUSELOC:Object;
public var DIRL:Vector;
public function fpsBulletInstant(_arg1:fpsGame, _arg2:Object, _arg3:Object){
GAME = _arg1;
MOUSELOC = _arg3;
TPOS = GAME.CAM.loc2pos(MOUSELOC);
if (TPOS == null){
return;
};
LPOS = new Vector(_arg2.x, _arg2.y, _arg2.z);
DIRL = new Vector((TPOS.x - LPOS.x), (TPOS.y - LPOS.y), (TPOS.z - LPOS.z));
DIRL.normalize();
DAMAGE = 10;
}
public function shoot(){
var _local1:Object;
var _local2:Object;
_local1 = {x:MOUSELOC.x, y:MOUSELOC.y, damage:DAMAGE};
_local2 = GAME.hitDetection(_local1);
if (_local2.maxdamage == 0){
explode(4);
};
}
public function explode(_arg1:Number=1){
if (EXPLOSION){
new EXPLOSION(new Vector(TPOS.x, TPOS.y, TPOS.z));
};
}
}
}//package gdk.fps
Section 39
//fpsCamera (gdk.fps.fpsCamera)
package gdk.fps {
import sandy.core.scenegraph.*;
import sandy.math.*;
public class fpsCamera extends Camera3D {
public var GAME:fpsGame;
public var VIEW_H:Number;
public var VIEW_W:Number;
public var PAN:Number;
public var VIEW_W2:Number;
public var TILT:Number;
public var VIEW_H2:Number;
public function fpsCamera(_arg1:fpsGame, _arg2:Number=600, _arg3:Number=350){
super(_arg2, _arg3);
GAME = _arg1;
VIEW_W = _arg2;
VIEW_H = _arg3;
VIEW_W2 = (VIEW_W / 2);
VIEW_H2 = (VIEW_H / 2);
PAN = 0;
TILT = 0;
this.y = 50;
}
public function lookTarget(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local1 = ((PAN * FastMath.TWO_PI) / 360);
_local2 = ((TILT * FastMath.TWO_PI) / 360);
_local3 = (x + (FastMath.cos(_local1) * 500));
_local4 = (y + (FastMath.sin(_local2) * 250));
_local5 = (z + (FastMath.sin(_local1) * 500));
lookAt(_local3, _local4, _local5);
}
public function sidewaysPos(_arg1:Number):Object{
var _local2:Object;
var _local3:Number;
_local2 = new Object();
_local3 = (((PAN + 90) * FastMath.TWO_PI) / 360);
_local2.x = (x - (FastMath.cos(_local3) * _arg1));
_local2.y = y;
_local2.z = (z - (FastMath.sin(_local3) * _arg1));
return (_local2);
}
public function getPos():Object{
return ({x:x, y:y, z:z});
}
public function forwardMove(_arg1:Number):Object{
var _local2:Object;
var _local3:Number;
_local2 = new Object();
_local3 = ((PAN * FastMath.TWO_PI) / 360);
_local2.x = (FastMath.cos(_local3) * _arg1);
_local2.y = 0;
_local2.z = (FastMath.sin(_local3) * _arg1);
return (_local2);
}
public function forwardPos(_arg1:Number):Object{
var _local2:Object;
var _local3:Number;
_local2 = new Object();
_local3 = ((PAN * FastMath.TWO_PI) / 360);
_local2.x = (x + (FastMath.cos(_local3) * _arg1));
_local2.y = y;
_local2.z = (z + (FastMath.sin(_local3) * _arg1));
return (_local2);
}
public function loc2pos(_arg1:Object){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:Number;
var _local6:*;
var _local7:Number;
var _local8:*;
var _local9:Object;
var _local10:*;
var _local11:Object;
var _local12:Number;
var _local13:Number;
var _local14:Number;
_local2 = (_arg1.x - VIEW_W2);
_local3 = (_arg1.y - VIEW_H2);
_local6 = ((PAN * 1) - ((47 * _local2) / VIEW_W2));
_local7 = ((TILT * 0.4) - ((25 * _local3) / VIEW_H2));
_local8 = {x:x, y:y, z:z};
_local9 = {x:x, y:y, z:z};
{x:x, y:y, z:z}.x = (_local9.x + (FastMath.cos(((_local6 * FastMath.TWO_PI) / 360)) * 9999));
_local9.y = (_local9.y + (FastMath.sin(((_local7 * FastMath.TWO_PI) / 360)) * 9999));
_local9.z = (_local9.z + (FastMath.sin(((_local6 * FastMath.TWO_PI) / 360)) * 9999));
_local14 = Infinity;
if (_local7 != 0){
_local10 = new Object();
if (_local7 < 0){
_local10.y = 0;
_local13 = ((_local10.y - _local8.y) / FastMath.sin(((_local7 * FastMath.TWO_PI) / 360)));
_local10.x = (_local8.x + (FastMath.cos(((_local6 * FastMath.TWO_PI) / 360)) * _local13));
_local10.z = (_local8.z + (FastMath.sin(((_local6 * FastMath.TWO_PI) / 360)) * _local13));
} else {
_local10.y = 75;
_local13 = ((_local10.y - _local8.y) / FastMath.sin(((_local7 * FastMath.TWO_PI) / 360)));
_local10.x = (_local8.x + (FastMath.cos(((_local6 * FastMath.TWO_PI) / 360)) * _local13));
_local10.z = (_local8.z + (FastMath.sin(((_local6 * FastMath.TWO_PI) / 360)) * _local13));
};
_local10.d = _local13;
_local14 = _local13;
};
_local11 = GAME.MAP.stingRay(_local8, _local9);
if (_local11.intersect){
for (_local12 in _local11.pts) {
_local2 = (_local11.pts[_local12].x - _local8.x);
_local3 = (_local11.pts[_local12].y - _local8.y);
_local4 = (_local11.pts[_local12].z - _local8.z);
_local5 = Math.sqrt((((_local2 * _local2) + (_local3 * _local3)) + (_local4 * _local4)));
if (_local5 < _local14){
_local10 = _local11.pts[_local12];
_local10.y = (_local8.y + (FastMath.sin(((_local7 * FastMath.TWO_PI) / 360)) * _local5));
_local10.d = _local5;
_local14 = _local5;
};
};
return (_local10);
};
return (null);
}
public function setTilt(_arg1:Number){
TILT = _arg1;
if (TILT > 60){
TILT = 60;
};
if (TILT < -60){
TILT = -60;
};
lookTarget();
}
public function sidewaysMove(_arg1:Number):Object{
var _local2:Object;
var _local3:Number;
_local2 = new Object();
_local3 = (((PAN + 90) * FastMath.TWO_PI) / 360);
_local2.x = (-(FastMath.cos(_local3)) * _arg1);
_local2.y = 0;
_local2.z = (-(FastMath.sin(_local3)) * _arg1);
return (_local2);
}
public function _tilt(_arg1:Number){
TILT = (TILT - _arg1);
if (TILT > 60){
TILT = 60;
};
if (TILT < -60){
TILT = -60;
};
lookTarget();
}
public function setPan(_arg1:Number){
PAN = (_arg1 % 360);
lookTarget();
}
public function _pan(_arg1:Number){
PAN = (PAN - _arg1);
PAN = (PAN % 360);
lookTarget();
}
}
}//package gdk.fps
Section 40
//fpsGame (gdk.fps.fpsGame)
package gdk.fps {
import sandy.core.data.*;
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
public class fpsGame extends Sprite {
private var KEY4EVTUP:Array;
public var TEXLIB:Object;
public var GPOOL:Object;
public var GAMEALIVE:Boolean;
public var CREATEDUNITCOUNT:Number;
public var OBJECTS:Array;
private var ZONES:Array;
private var KEY2TRACK:Array;
public var MAP:fpsMap;
public var viewH:Number;
public var viewW:Number;
public var UNITS:Array;
private var ANIMATIONS:Array;
private var EVT_QUEUE:Array;
private var KEY4EVTDOWN:Array;
public var SCENE:fpsScene;
public var BULLETS:Array;
private var MAPS:Array;
public var GAMEPAUSED:Boolean;
private var EVT_TIMER:Number;
public var CAM:fpsCamera;
public var ZONE:fpsZone;
public var BITMAPLIB:Object;
public var ITEMS:Array;
public var ROOM:fpsRoom;
public var PLAYER:Object;
private static var UNIQUEIDCOUNTER:Number = 1;
public function fpsGame(_arg1:Number, _arg2:Number){
viewW = _arg1;
viewH = _arg2;
EVT_TIMER = 0;
EVT_QUEUE = [];
ANIMATIONS = [];
GAMEALIVE = false;
GAMEPAUSED = false;
UNITS = [];
CREATEDUNITCOUNT = 0;
ZONES = [];
MAPS = [];
ITEMS = [];
OBJECTS = [];
BULLETS = [];
KEY2TRACK = [];
KEY4EVTDOWN = [];
KEY4EVTUP = [];
CAM = new fpsCamera(this, _arg1, _arg2);
SCENE = new fpsScene(this, CAM);
stage.addEventListener(KeyboardEvent.KEY_DOWN, evtKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, evtKeyUp);
addEventListener(Event.ENTER_FRAME, evtEnterFrame);
}
public function resumePlay(){
var _local1:*;
if (!GAMEPAUSED){
return;
};
GAMEPAUSED = false;
for (_local1 in UNITS) {
if (UNITS[_local1].LOADED){
UNITS[_local1].resumePlay();
};
};
}
public function destroy(){
var i:Number;
trace("fpsGame->destroy()");
GAMEALIVE = false;
MAP.destroy();
for (i in UNITS) {
UNITS[i].destroy();
};
for (i in BULLETS) {
BULLETS[i].destroy();
BULLETS[i].destroyExplosion();
};
for (i in ITEMS) {
ITEMS[i].destroy();
};
for (i in OBJECTS) {
OBJECTS[i].destroy();
};
for (i in ZONE.NODES) {
ZONE.NODES[i].destroy();
};
PLAYER = null;
ZONE = null;
ROOM = null;
UNITS = [];
ITEMS = [];
OBJECTS = [];
BULLETS = [];
EVT_QUEUE = [];
KEY2TRACK = [];
KEY4EVTDOWN = [];
KEY4EVTUP = [];
ANIMATIONS = [];
onDestroy();
try {
System.gc();
} catch(e:Error) {
};
try {
new LocalConnection().connect("foo");
new LocalConnection().connect("foo");
} catch(e) {
};
}
public function anyActiveUnitInRoom(_arg1:fpsRoom):Boolean{
var _local2:Number;
var _local3:Object;
var _local4:fpsRoom;
var _local5:fpsUnit;
if (_arg1 == null){
return (false);
};
for (_local2 in UNITS) {
_local5 = UNITS[_local2];
if (((_local5.ATTACKING) && (_local5.ALIVE))){
_local3 = MAP.pos2uv(_local5.POS);
_local4 = MAP.roomObjAtLoc(_local3);
if (_local4.ID == _arg1.ID){
return (true);
};
};
};
return (false);
}
public function isKeyDown(_arg1:uint):Boolean{
var _local2:*;
for (_local2 in KEY2TRACK) {
if ((((KEY2TRACK[_local2].keycode == _arg1)) && (KEY2TRACK[_local2].isdown))){
return (true);
};
};
return (false);
}
public function item(_arg1:fpsItem):Boolean{
if (keepItem(_arg1)){
ITEMS.push(_arg1);
return (true);
};
return (false);
}
protected function onDestroy(){
}
public function evt(_arg1:Number, _arg2:Function, _arg3:Object=null, _arg4:Object=null){
var _local5:fpsTimedEvent;
var _local6:Number;
var _local7:*;
_local5 = new fpsTimedEvent((EVT_TIMER + _arg1), _arg2, _arg3, _arg4, false);
_local6 = EVT_QUEUE.length;
_local7 = 0;
while (_local7 < _local6) {
if (_local5.t < EVT_QUEUE[_local7].t){
EVT_QUEUE.splice(_local7, 0, _local5);
return;
};
_local7++;
};
EVT_QUEUE.push(_local5);
return (_local5);
}
public function areaFX(_arg1:fpsBullet){
var _local2:*;
if (_arg1.AREAFX_RADIUS == 0){
return;
};
for (_local2 in UNITS) {
UNITS[_local2].areaFX(_arg1);
};
PLAYER.areaFX(_arg1);
}
public function getUniqueID():Number{
return (fpsGame.UNIQUEIDCOUNTER++);
}
public function trackKey(_arg1:uint){
KEY2TRACK.push({keycode:_arg1, isdown:false});
}
public function hitDetection(_arg1:Object):Object{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Object;
var _local6:fpsUnit;
var _local7:fpsUnit;
var _local8:Number;
var _local9:Number;
_local5 = {hit:false, maxdamage:0};
_local6 = null;
_local7 = null;
_local8 = 0;
_local9 = Infinity;
for (_local2 in UNITS) {
_local6 = UNITS[_local2];
_local3 = _local6.hitDetection(_arg1);
if (_local3 > 0){
_local4 = _local6.distanceFromPlayer();
if (_local4 < _local9){
_local7 = _local6;
_local8 = _local3;
_local9 = _local4;
};
};
};
if (_local7 != null){
_local5.hit = true;
_local7.damage(_local8);
};
_local5.maxdamage = _local8;
return (_local5);
}
public function evtKeyUp(_arg1:KeyboardEvent){
var _local2:*;
for (_local2 in KEY2TRACK) {
if (KEY2TRACK[_local2].keycode == _arg1.keyCode){
KEY2TRACK[_local2].isdown = false;
break;
};
};
}
public function bullet(_arg1:fpsBullet){
BULLETS.push(_arg1);
}
public function evtKeyDown(_arg1:KeyboardEvent){
var _local2:*;
for (_local2 in KEY2TRACK) {
if (KEY2TRACK[_local2].keycode == _arg1.keyCode){
KEY2TRACK[_local2].isdown = true;
break;
};
};
for (_local2 in KEY4EVTDOWN) {
if (KEY4EVTDOWN[_local2].keycode == _arg1.keyCode){
KEY4EVTDOWN[_local2].handler.call(KEY4EVTDOWN[_local2].obj, _arg1);
break;
};
};
}
public function keepItem(_arg1:fpsItem):Boolean{
return (true);
}
public function unitInRange(_arg1:Vector, _arg2:Number):fpsUnit{
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:Number;
var _local7:*;
var _local8:fpsUnit;
_local7 = (_arg2 * _arg2);
for (_local3 in UNITS) {
_local8 = UNITS[_local3];
_local4 = (_local8.POS.x - _arg1.x);
_local5 = (_local8.POS.z - _arg1.z);
_local6 = ((_local4 * _local4) + (_local5 * _local5));
if (_local6 < _local7){
return (_local8);
};
};
return (null);
}
public function setZone(_arg1:Number){
var _local2:Number;
CREATEDUNITCOUNT = 0;
ZONE = ZONES[_arg1];
MAP = MAPS[_arg1];
MAP.init();
PLAYER.init();
PLAYER.setInitialPosAndDir(ZONE.STARTPOS.x, ZONE.STARTPOS.y, ZONE.STARTPOS.z, ZONE.STARTDIR);
for (_local2 in ZONE.UNITS) {
ZONE.UNITS[_local2].init();
};
for (_local2 in ZONE.ITEMS) {
ZONE.ITEMS[_local2].init();
};
for (_local2 in ZONE.OBJECTS) {
ZONE.OBJECTS[_local2].init();
};
for (_local2 in ZONE.NODES) {
ZONE.NODES[_local2].loadNode();
};
}
public function object(_arg1:Object){
OBJECTS.push(_arg1);
}
public function zDepth(_arg1:Object, _arg2:Number, _arg3:Number){
var _local4:Number;
var _local5:fpsUnit;
var _local6:fpsObject;
var _local7:fpsItem;
for (_local4 in ITEMS) {
_local7 = ITEMS[_local4];
if (_local7.LOADED){
_local7.zDepth(_arg1);
};
};
for (_local4 in OBJECTS) {
_local6 = OBJECTS[_local4];
if (_local6.LOADED){
_local6.zDepth(_arg1);
};
};
for (_local4 in UNITS) {
_local5 = UNITS[_local4];
if (_local5.LOADED){
_local5.zDepth(_arg1);
};
};
}
public function pausePlay(){
var _local1:*;
if (GAMEPAUSED){
return;
};
GAMEPAUSED = true;
for (_local1 in UNITS) {
if (UNITS[_local1].LOADED){
UNITS[_local1].pausePlay();
};
};
}
public function animation(_arg1:Object, _arg2:Number, _arg3:Function=null){
ANIMATIONS.push(new fpsAnimation(_arg1, _arg2, 0, _arg3));
}
public function keyUpHandler(_arg1:uint, _arg2:Function, _arg3:Object){
KEY4EVTUP.push({keycode:_arg1, handler:_arg2, obj:_arg3});
}
public function keyDownHandler(_arg1:uint, _arg2:Function, _arg3:Object){
KEY4EVTDOWN.push({keycode:_arg1, handler:_arg2, obj:_arg3});
}
public function unit(_arg1:fpsUnit):Boolean{
CREATEDUNITCOUNT++;
if (keepUnit(_arg1)){
UNITS.push(_arg1);
return (true);
};
return (false);
}
public function keepUnit(_arg1:fpsUnit):Boolean{
return (true);
}
public function eventQueue(){
var _local1:fpsTimedEvent;
var _local2:Number;
var _local3:Array;
var _local4:Number;
var _local5:Number;
EVT_TIMER++;
_local2 = 0;
_local3 = [];
_local4 = EVT_QUEUE.length;
_local5 = 0;
while (_local5 < _local4) {
_local1 = EVT_QUEUE[_local5];
if (_local1.cancel){
_local2++;
} else {
if (EVT_TIMER >= _local1.t){
_local3.push(_local1);
_local2++;
} else {
break;
};
};
_local5++;
};
EVT_QUEUE.splice(0, _local2);
for (_local5 in _local3) {
_local1 = _local3[_local5];
_local1.method.call(_local1.obj, _local1.data);
};
}
public function ready(){
GAMEALIVE = true;
GAMEPAUSED = false;
MAP.cleaner();
evt((10 * 24), cleanUp, this);
}
public function loadedUnitInRange(_arg1:Object, _arg2:Number):fpsUnit{
var _local3:fpsUnit;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:Number;
var _local8:*;
_local8 = (_arg2 * _arg2);
for (_local4 in UNITS) {
_local3 = UNITS[_local4];
if (((_local3.LOADED) && (_local3.ALIVE))){
_local5 = (_local3.POS.x - _arg1.x);
_local6 = (_local3.POS.z - _arg1.z);
_local7 = ((_local5 * _local5) + (_local6 * _local6));
if (_local7 < _local8){
return (_local3);
};
};
};
return (null);
}
protected function nextState(){
}
public function anyActiveUnit():Boolean{
var _local1:Number;
var _local2:fpsUnit;
for (_local1 in UNITS) {
_local2 = UNITS[_local1];
if (((_local2.ATTACKING) && (_local2.ALIVE))){
return (true);
};
};
return (false);
}
public function evtEnterFrame(_arg1:Event){
var _local2:*;
var _local3:Number;
var _local4:fpsBullet;
var _local5:Array;
var _local6:fpsObject;
var _local7:fpsItem;
var _local8:fpsUnit;
var _local9:Object;
var _local10:Array;
var _local11:fpsAnimation;
if (!GAMEALIVE){
return;
};
if (GAMEPAUSED){
return;
};
eventQueue();
_local5 = [];
for (_local2 in BULLETS) {
_local4 = BULLETS[_local2];
if (_local4.ALIVE){
_local4.nextState();
_local5.push(_local4);
};
};
BULLETS = _local5;
PLAYER.nextState(mouseX, mouseY);
if (PLAYER.HASMOVED){
_local9 = PLAYER.getPos();
for (_local2 in ITEMS) {
_local7 = ITEMS[_local2];
_local7.nextState(_local9);
};
for (_local2 in OBJECTS) {
_local6 = OBJECTS[_local2];
_local6.nextState();
};
};
for (_local2 in OBJECTS) {
_local6 = OBJECTS[_local2];
if (_local6.LOADED){
_local6.render();
};
};
for (_local2 in ITEMS) {
_local7 = ITEMS[_local2];
if (_local7.LOADED){
_local7.render();
};
};
for (_local2 in UNITS) {
_local8 = UNITS[_local2];
_local8.nextState();
};
for (_local2 in BULLETS) {
_local4 = BULLETS[_local2];
if (_local4.ALIVE){
for (_local3 in UNITS) {
_local8 = UNITS[_local3];
if (_local8.bulletCollision(_local4)){
_local4.explode(4);
areaFX(_local4);
break;
};
};
};
};
if (ANIMATIONS.length > 0){
_local10 = [];
for (_local2 in ANIMATIONS) {
_local11 = ANIMATIONS[_local2];
_local11.time++;
if (_local11.method == null){
_local11.obj.animate(_local11.time, _local11.totaltime);
} else {
_local11.method.call(_local11.obj, _local11.time, _local11.totaltime);
};
if (_local11.time < _local11.totaltime){
_local10.push(_local11);
};
};
ANIMATIONS = _local10;
};
if (ZONE == null){
return;
};
MAP.nextState(CAM.getPosition());
SCENE.render();
}
public function createZone(_arg1:fpsZone){
ZONE = _arg1;
ZONES.push(ZONE);
MAP = new fpsMap(this, ZONE.NU, ZONE.NV);
MAPS.push(MAP);
ZONE.loadWorld(this);
ZONE.loadUnits(this);
}
public function cleanUp(_arg1:Object){
var _evt = _arg1;
try {
System.gc();
} catch(e:Error) {
};
try {
new LocalConnection().connect("foo");
new LocalConnection().connect("foo");
} catch(e) {
};
evt((10 * 24), cleanUp, this);
}
}
}//package gdk.fps
Section 41
//fpsItem (gdk.fps.fpsItem)
package gdk.fps {
import gdk.sprite.*;
import sandy.core.data.*;
public class fpsItem {
public var PICKED:Boolean;
public var LOADED:Boolean;
public var OBSTACLE:Boolean;
public var INIT:Boolean;
public var GAME:fpsGame;
public var LOC:Object;
public var DATA:Object;
public var DELETE:Boolean;
public var ACTIVATED:Boolean;
public var OBJID:String;
public var POS:Vector;
public var TYPE:String;
public var INTERACTIVE:Boolean;
public var SPRITE:gSprite;
public var FACING_CAM:Boolean;
public var ROOM:fpsRoom;
public var zDEPTH:Number;
public var DESTRUCTIBLE:Boolean;
public var DESTROYED:Boolean;
public var PICKABLE:Boolean;
public var PICK_RANGE:Number;
public function fpsItem(_arg1:fpsRoom=null, _arg2:Vector=null){
ROOM = _arg1;
GAME = glo.bal.GAME;
POS = _arg2;
if (POS == null){
POS = new Vector(0, 0, 0);
};
LOC = GAME.MAP.pos2uv(POS);
zDEPTH = 999999;
FACING_CAM = false;
DESTRUCTIBLE = false;
DESTROYED = false;
INTERACTIVE = false;
ACTIVATED = false;
PICKABLE = false;
PICK_RANGE = 50;
PICKED = false;
LOADED = false;
DELETE = false;
INIT = false;
GAME.ZONE.item(this);
}
public function init(){
if (INIT){
return;
};
INIT = true;
PICKED = false;
LOADED = false;
ACTIVATED = false;
DESTROYED = false;
if (GAME.item(this)){
if (ROOM != null){
ROOM.item(this);
};
};
}
public function setPos(_arg1:Vector){
POS.x = _arg1.x;
POS.y = 0;
POS.z = _arg1.z;
LOC = GAME.MAP.pos2uv(POS);
if (LOADED){
SPRITE.x = POS.x;
SPRITE.y = POS.y;
SPRITE.z = POS.z;
};
}
public function loadItem(_arg1:Vector=null){
if (PICKED){
return;
};
if (LOADED){
return;
};
LOADED = true;
createSprite();
SPRITE.x = POS.x;
SPRITE.y = POS.y;
SPRITE.z = POS.z;
SPRITE.setBoundingSphereRadius(75);
if (_arg1){
setPos(_arg1);
};
}
public function render(){
}
public function getPos():Vector{
return (POS);
}
public function movement(_arg1:Number, _arg2:Number, _arg3:Number){
POS.x = (POS.x + _arg1);
POS.y = (POS.y + _arg2);
POS.z = (POS.z + _arg3);
SPRITE.x = (SPRITE.x + _arg1);
SPRITE.y = (SPRITE.y + _arg2);
SPRITE.z = (SPRITE.z + _arg3);
LOC = GAME.MAP.pos2uv(POS);
}
public function faceCam(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = (GAME.CAM.x - POS.x);
_local2 = (GAME.CAM.z - POS.z);
_local3 = ((Math.atan2(_local2, _local1) * 180) / Math.PI);
if (_local3 < 0){
_local3 = (_local3 + 360);
};
_local4 = Math.round((_local3 / 10));
if (_local4 == 36){
_local4 = 0;
};
}
public function unloadItem(){
destroy();
}
public function nextState(_arg1:Object){
var _local2:Object;
var _local3:*;
var _local4:*;
var _local5:Number;
if (!LOADED){
return;
};
if (((PICKABLE) && (!(PICKED)))){
_local3 = (_arg1.x - POS.x);
_local4 = (_arg1.z - POS.z);
_local5 = ((_local3 * _local3) + (_local4 * _local4));
if (_local5 < (PICK_RANGE * PICK_RANGE)){
if (GAME.PLAYER.tryPick(this)){
PICKED = true;
itemPicked();
destroy();
};
};
};
}
public function createSprite(){
}
public function zDepth(_arg1:Object){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:Object;
var _local9:*;
_local2 = Math.abs((POS.x - _arg1.x));
_local3 = Math.abs((POS.z - _arg1.z));
_local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
_local5 = Math.max(_local2, _local3);
_local6 = ((_local4 + _local5) * 0.5);
LOC = GAME.MAP.pos2uv(POS);
_local7 = GAME.MAP.zWalls(LOC.u, LOC.v);
for (_local9 in _local7) {
if (_local7[_local9].zDEPTH < _local6){
if (_local7[_local9].isFacing(_arg1)){
_local8 = GAME.MAP.stingRayBoxI(POS, _arg1, 25);
if (!_local8.intersect){
_local6 = (_local7[_local9].zDEPTH - 10);
};
};
};
};
SPRITE.forcedDepth = (zDEPTH = _local6);
}
public function itemPicked(){
}
public function destroy(){
LOADED = false;
INIT = false;
if (SPRITE){
SPRITE.release();
};
SPRITE = null;
}
}
}//package gdk.fps
Section 42
//fpsMap (gdk.fps.fpsMap)
package gdk.fps {
import gdk.fps.wbl.*;
import flash.geom.*;
import gdk.math.*;
public class fpsMap {
public var PATHFINDER:fpsPathFinder;
private var D_TEX:Number;
public var NODES:Array;
private var CAMPOS:Object;
private var BORDER:Number;
private var DUV_TEX:Number;
public var MAP:Array;
public var ROOMID:Number;
public var NU:Number;
public var NV:Number;
public var WALLS:Array;
public var ROOM:fpsRoom;
private var DUV_CLIPPING:Number;
private var D_CLIPPING:Number;
public var ROOMS:Array;
public var DOORS:Array;
public var TILEW:Number;
public var GAME:fpsGame;
private var CV:Number;
private var CU:Number;
private var zDONE:Boolean;
public static var STINGRAY_BOXSIZE:Number = 25;
public function fpsMap(_arg1:fpsGame, _arg2:Number, _arg3:Number){
GAME = _arg1;
reset(_arg2, _arg3);
D_CLIPPING = 1000;
D_TEX = 1000;
DUV_CLIPPING = 10;
DUV_TEX = 10;
zDONE = false;
}
public function stingRayBox(_arg1:Object, _arg2:Object, _arg3:Number=25):Object{
var _local4:Object;
var _local5:Object;
var _local6:Object;
var _local7:Object;
var _local8:Object;
_local4 = {x:(_arg1.x + _arg3), y:_arg1.y, z:(_arg1.z + _arg3)};
_local5 = {x:(_arg1.x + _arg3), y:_arg1.y, z:(_arg1.z - _arg3)};
_local6 = {x:(_arg1.x - _arg3), y:_arg1.y, z:(_arg1.z - _arg3)};
_local7 = {x:(_arg1.x - _arg3), y:_arg1.y, z:(_arg1.z + _arg3)};
_local8 = stingRay(_local4, _arg2, false);
if (_local8.intersect){
return (_local8);
};
_local8 = stingRay(_local5, _arg2, false);
if (_local8.intersect){
return (_local8);
};
_local8 = stingRay(_local6, _arg2, false);
if (_local8.intersect){
return (_local8);
};
_local8 = stingRay(_local7, _arg2, false);
if (_local8.intersect){
return (_local8);
};
return (_local8);
}
public function pos2uv(_arg1:Object):Object{
var _local2:Object;
_local2 = new Object();
_local2.divU = (_arg1.x / TILEW);
_local2.divV = (_arg1.z / TILEW);
_local2.u = Math.floor(_local2.divU);
_local2.v = Math.floor(_local2.divV);
_local2.ru = Math.floor((_local2.divU - _local2.u));
_local2.rv = Math.floor((_local2.divV - _local2.v));
return (_local2);
}
public function stingRay(_arg1:Object, _arg2:Object, _arg3:Boolean=true):Object{
var _local4:Object;
var _local5:Point;
var _local6:Point;
var _local7:mathLine;
var _local8:Point;
var _local9:*;
_local4 = new Object();
_local4.intersect = false;
_local4.pts = [];
_local5 = new Point(_arg1.x, _arg1.z);
_local6 = new Point(_arg2.x, _arg2.z);
_local7 = new mathLine(_local5, _local6);
for (_local9 in WALLS) {
if (WALLS[_local9].ROOM.LOADED){
_local8 = _local7.intersect(WALLS[_local9].LINE);
if (_local8 != null){
_local4.intersect = true;
_local4.pts.push({x:_local8.x, y:0, z:_local8.y});
if (!_arg3){
return (_local4);
};
};
};
};
for (_local9 in DOORS) {
if (DOORS[_local9].CLOSED){
_local8 = _local7.intersect(DOORS[_local9].LINE);
if (_local8 != null){
_local4.intersect = true;
_local4.pts.push({x:_local8.x, y:0, z:_local8.y});
if (!_arg3){
return (_local4);
};
};
};
};
return (_local4);
}
public function doorInRange(_arg1:Object, _arg2:Number):wblDoor{
var _local3:Number;
var _local4:Number;
var _local5:wblDoor;
var _local6:*;
var _local7:*;
var _local8:Number;
var _local9:*;
_local3 = (_arg2 * _arg2);
_local4 = Infinity;
_local5 = null;
for (_local9 in DOORS) {
if ((((DOORS[_local9].ROOMID == ROOMID)) && (!(DOORS[_local9].DUMMY)))){
_local6 = (DOORS[_local9].x - _arg1.x);
_local7 = (DOORS[_local9].z - _arg1.z);
_local8 = ((_local6 * _local6) + (_local7 * _local7));
if ((((_local8 < _local3)) && ((_local8 < _local4)))){
_local4 = _local8;
_local5 = DOORS[_local9];
};
};
};
return (_local5);
}
public function floor(_arg1:Object, _arg2:Number, _arg3:Number){
NODES.push(_arg1);
MAP[_arg2][_arg3].isfree = true;
MAP[_arg2][_arg3].room = _arg1.ROOMID;
MAP[_arg2][_arg3].roomobj = _arg1.ROOM;
}
public function roomAtLoc(_arg1:Object):Number{
return (MAP[_arg1.u][_arg1.v].room);
}
public function roomConnect(){
var _local1:*;
var _local2:Object;
for (_local1 in ROOMS) {
ROOMS[_local1].TO_UNLOAD = true;
ROOMS[_local1].TO_LOAD = false;
};
if (ROOM == null){
return;
};
ROOM.TO_UNLOAD = false;
ROOM.TO_LOAD = true;
for (_local1 in ROOM.CONNECTIONS) {
_local2 = ROOM.CONNECTIONS[_local1];
_local2.room.TO_UNLOAD = false;
_local2.room.TO_LOAD = true;
};
for (_local1 in ROOMS) {
if (ROOMS[_local1].LOADED){
if (ROOMS[_local1].TO_UNLOAD){
};
} else {
if (ROOMS[_local1].TO_LOAD){
ROOMS[_local1].loadRoom();
};
};
};
}
public function init(){
var _local1:*;
var _local2:Number;
_local1 = 0;
while (_local1 < NU) {
_local2 = 0;
while (_local2 < NV) {
MAP[_local1][_local2].fogofwar = true;
_local2++;
};
_local1++;
};
for (_local1 in DOORS) {
DOORS[_local1].init();
};
}
public function zWalls(_arg1:Number, _arg2:Number):Array{
return (MAP[_arg1][_arg2].zWALLS);
}
public function stingRayBoxI(_arg1:Object, _arg2:Object, _arg3:Number=25):Object{
var _local4:Object;
var _local5:Object;
var _local6:Object;
var _local7:Object;
var _local8:Object;
_local4 = {x:(_arg1.x + _arg3), y:_arg1.y, z:(_arg1.z + _arg3)};
_local5 = {x:(_arg1.x + _arg3), y:_arg1.y, z:(_arg1.z - _arg3)};
_local6 = {x:(_arg1.x - _arg3), y:_arg1.y, z:(_arg1.z - _arg3)};
_local7 = {x:(_arg1.x - _arg3), y:_arg1.y, z:(_arg1.z + _arg3)};
_local8 = stingRay(_local4, _arg2, false);
if (!_local8.intersect){
return (_local8);
};
_local8 = stingRay(_local5, _arg2, false);
if (!_local8.intersect){
return (_local8);
};
_local8 = stingRay(_local6, _arg2, false);
if (!_local8.intersect){
return (_local8);
};
_local8 = stingRay(_local7, _arg2, false);
if (!_local8.intersect){
return (_local8);
};
return (_local8);
}
public function unloadRoomBehindDoor(_arg1:wblDoor){
var _local2:*;
var _local3:*;
trace("fpsMap->unloadRoomBehindDoor");
if (ROOMID == _arg1.ROOM.ID){
_arg1.ROOM2.unloadRoom();
} else {
if (ROOMID != _arg1.ROOM2.ID){
_local2 = true;
for (_local3 in DOORS) {
if ((((DOORS[_local3].ROOM.ID == _arg1.ROOM2.ID)) && (DOORS[_local3].OPENED))){
_local2 = false;
};
};
if (_local2){
_arg1.ROOM2.unloadRoom();
};
};
};
}
public function door(_arg1:Object){
DOORS.push(_arg1);
}
public function collision(_arg1:Object, _arg2:Object):Object{
var _local3:Object;
var _local4:Object;
var _local5:Object;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
_local3 = {collision:false, bbpos:{x:_arg2.x, y:_arg2.y, z:_arg2.z}};
_local4 = pos2uv(_arg1);
if (_local4.u >= NU){
return (_local3);
};
if (_local4.v >= NV){
return (_local3);
};
_local5 = MAP[_local4.u][_local4.v];
if (_local5 == null){
return (_local3);
};
_local6 = (_arg2.x - _arg1.x);
_local7 = (_arg2.z - _arg1.z);
if ((((_local6 < 0)) && (_local5.bW))){
_local8 = ((_local5.u * TILEW) + BORDER);
if (_arg2.x < _local8){
_local3.bbpos.x = _local8;
_local3.collision = true;
};
};
if ((((_local6 > 0)) && (_local5.bE))){
_local8 = (((_local5.u * TILEW) + TILEW) - BORDER);
if (_arg2.x > _local8){
_local3.bbpos.x = _local8;
_local3.collision = true;
};
};
if ((((_local7 < 0)) && (_local5.bS))){
_local9 = ((_local5.v * TILEW) + BORDER);
if (_arg2.z < _local9){
_local3.bbpos.z = _local9;
_local3.collision = true;
};
};
if ((((_local7 > 0)) && (_local5.bN))){
_local9 = (((_local5.v * TILEW) + TILEW) - BORDER);
if (_arg2.z > _local9){
_local3.bbpos.z = _local9;
_local3.collision = true;
};
};
if ((((_local6 > 0)) && ((_local7 > 0)))){
if (((((_local5.bNE) && (!(_local5.bN)))) && (!(_local5.bE)))){
_local8 = (((_local5.u * TILEW) + TILEW) - BORDER);
_local9 = (((_local5.v * TILEW) + TILEW) - BORDER);
if ((((_arg2.x > _local8)) && ((_arg2.z > _local9)))){
if (_local6 > _local7){
_local3.bbpos.z = _local9;
_local3.collision = true;
} else {
_local3.bbpos.x = _local8;
_local3.collision = true;
};
};
};
};
if ((((_local6 < 0)) && ((_local7 > 0)))){
if (((((_local5.bNW) && (!(_local5.bN)))) && (!(_local5.bW)))){
_local8 = ((_local5.u * TILEW) + BORDER);
_local9 = (((_local5.v * TILEW) + TILEW) - BORDER);
if ((((_arg2.x < _local8)) && ((_arg2.z > _local9)))){
if (Math.abs(_local6) > _local7){
_local3.bbpos.z = _local9;
_local3.collision = true;
} else {
_local3.bbpos.x = _local8;
_local3.collision = true;
};
};
};
};
if ((((_local6 > 0)) && ((_local7 < 0)))){
if (((((_local5.bSE) && (!(_local5.bS)))) && (!(_local5.bE)))){
_local8 = (((_local5.u * TILEW) + TILEW) - BORDER);
_local9 = ((_local5.v * TILEW) + BORDER);
if ((((_arg2.x > _local8)) && ((_arg2.z < _local9)))){
if (_local6 > Math.abs(_local7)){
_local3.bbpos.z = _local9;
_local3.collision = true;
} else {
_local3.bbpos.x = _local8;
_local3.collision = true;
};
};
};
};
if ((((_local6 > 0)) && ((_local7 < 0)))){
if (((((_local5.bSW) && (!(_local5.bS)))) && (!(_local5.bW)))){
_local8 = ((_local5.u * TILEW) + BORDER);
_local9 = ((_local5.v * TILEW) + BORDER);
if ((((_arg2.x < _local8)) && ((_arg2.z < _local9)))){
if (_local6 < _local7){
_local3.bbpos.z = _local9;
_local3.collision = true;
} else {
_local3.bbpos.x = _local8;
_local3.collision = true;
};
};
};
};
return (_local3);
}
public function openedDoor(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){
if (_arg1 == _arg3){
if (_arg4 > _arg2){
MAP[_arg1][_arg2].bW = false;
MAP[_arg1][(_arg2 - 1)].bNW = false;
MAP[_arg3][_arg4].bSW = false;
} else {
MAP[(_arg3 - 1)][_arg4].bE = false;
MAP[(_arg3 - 1)][(_arg4 - 1)].bNE = false;
MAP[(_arg1 - 1)][_arg2].bSE = false;
};
} else {
if (_arg3 > _arg1){
MAP[_arg1][(_arg2 - 1)].bN = false;
MAP[(_arg1 - 1)][(_arg2 - 1)].bNE = false;
MAP[_arg3][(_arg4 - 1)].bNW = false;
} else {
MAP[_arg3][_arg4].bS = false;
MAP[(_arg3 - 1)][_arg4].bSE = false;
MAP[_arg1][_arg2].bSW = false;
};
};
}
public function closedDoor(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){
if (_arg1 == _arg3){
if (_arg4 > _arg2){
MAP[_arg1][_arg2].bW = true;
MAP[_arg1][(_arg2 - 1)].bNW = true;
MAP[_arg3][_arg4].bSW = true;
} else {
MAP[(_arg3 - 1)][_arg4].bE = true;
MAP[(_arg3 - 1)][(_arg4 - 1)].bNE = true;
MAP[(_arg1 - 1)][_arg2].bSE = true;
};
} else {
if (_arg3 > _arg1){
MAP[_arg1][(_arg2 - 1)].bN = true;
MAP[(_arg1 - 1)][(_arg2 - 1)].bNE = true;
MAP[_arg3][(_arg4 - 1)].bNW = true;
} else {
MAP[_arg3][_arg4].bS = true;
MAP[(_arg3 - 1)][_arg4].bSE = true;
MAP[_arg1][_arg2].bSW = true;
};
};
}
public function cleaner_doors(_arg1:fpsRoom){
var _local2:wblDoor;
var _local3:*;
if (_arg1 == null){
return;
};
if (!_arg1.TO_UNLOAD){
return;
};
_arg1.TO_UNLOAD = false;
for (_local3 in _arg1.DOORS) {
_local2 = _arg1.DOORS[_local3];
if (((_local2.OPENING) || (_local2.OPENED))){
cleaner_doors(_local2.ROOM2);
};
};
}
public function ceiling(_arg1:Object, _arg2:Number, _arg3:Number){
NODES.push(_arg1);
}
public function cleaner(_arg1:Object=null){
var _local2:*;
var _local3:*;
for (_local2 in ROOMS) {
ROOMS[_local2].TO_UNLOAD = true;
};
cleaner_doors(ROOM);
for (_local2 in ROOMS) {
if (ROOMS[_local2].TO_UNLOAD){
if (ROOMS[_local2].LOADED){
ROOMS[_local2].unloadRoom();
};
};
};
GAME.evt(32, cleaner, this);
}
public function reset(_arg1:Number, _arg2:Number){
var _local3:*;
var _local4:Number;
var _local5:Object;
MAP = [];
NU = _arg1;
NV = _arg2;
NODES = [];
CU = 0;
CV = 0;
ROOMID = -1;
ROOMS = [];
WALLS = [];
DOORS = [];
_local3 = 0;
while (_local3 < NU) {
MAP.push([]);
_local4 = 0;
while (_local4 < NV) {
_local5 = new fpsMapTile();
_local5.room = null;
_local5.roomobj = null;
_local5.u = _local3;
_local5.v = _local4;
_local5.isfree = false;
_local5.underobj = false;
_local5.bN = false;
_local5.bE = false;
_local5.bS = false;
_local5.bW = false;
_local5.bNE = false;
_local5.bNW = false;
_local5.bSE = false;
_local5.bSW = false;
_local5.fogofwar = true;
_local5.zWALLS = [];
MAP[_local3].push(_local5);
_local4++;
};
_local3++;
};
TILEW = fpsSetup.FLOOR_WIDTH;
BORDER = (TILEW * 0.5);
PATHFINDER = new fpsPathFinder(MAP, NU, NV);
}
public function loadRoomBehindDoor(_arg1:wblDoor){
if (ROOMID == _arg1.ROOM.ID){
_arg1.ROOM2.loadRoom();
_arg1.ROOM2.LOADED = true;
zDepth();
};
}
public function wall(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number){
if (_arg2 == _arg4){
if (_arg5 > _arg3){
MAP[_arg2][_arg3].bW = true;
MAP[_arg2][(_arg3 - 1)].bNW = true;
MAP[_arg4][_arg5].bSW = true;
MAP[_arg2][_arg3].zWALLS.push(_arg1);
} else {
MAP[(_arg4 - 1)][_arg5].bE = true;
MAP[(_arg4 - 1)][(_arg5 - 1)].bNE = true;
MAP[(_arg2 - 1)][_arg3].bSE = true;
MAP[(_arg4 - 1)][_arg5].zWALLS.push(_arg1);
};
} else {
if (_arg4 > _arg2){
MAP[_arg2][(_arg3 - 1)].bN = true;
MAP[(_arg2 - 1)][(_arg3 - 1)].bNE = true;
MAP[_arg4][(_arg5 - 1)].bNW = true;
MAP[_arg2][(_arg3 - 1)].zWALLS.push(_arg1);
} else {
MAP[_arg4][_arg5].bS = true;
MAP[(_arg4 - 1)][_arg5].bSE = true;
MAP[_arg2][_arg3].bSW = true;
MAP[_arg4][_arg5].zWALLS.push(_arg1);
};
};
}
public function nextState(_arg1:Object){
var _local2:Object;
var _local3:*;
var _local4:Number;
var _local5:*;
var _local6:Number;
var _local7:Number;
zDONE = false;
if (GAME.ZONE == null){
trace("fpsMap_>nextState() : No zone defined");
return;
};
CAMPOS = _arg1;
_local2 = pos2uv(_arg1);
if ((((_local2.u == CU)) && ((_local2.v == CV)))){
return;
};
CU = _local2.u;
CV = _local2.v;
if (ROOMID != MAP[CU][CV].room){
ROOMID = MAP[CU][CV].room;
for (_local3 in ROOMS) {
if (ROOMS[_local3].ID == ROOMID){
if (ROOM != null){
ROOM.onLeaveRoom();
};
ROOM = ROOMS[_local3];
ROOM.onEnterRoom();
};
};
roomConnect();
};
_local7 = 2;
_local3 = -(_local7);
while (_local3 <= _local7) {
_local4 = -(_local7);
while (_local4 <= _local7) {
_local5 = (CU + _local3);
_local6 = (CV + _local4);
if ((((((((_local5 > 0)) && ((_local5 < NU)))) && ((_local6 > 0)))) && ((_local6 < NV)))){
if (MAP[_local5][_local6].room == ROOMID){
MAP[_local5][_local6].fogofwar = false;
};
};
_local4++;
};
_local3++;
};
zDepth();
}
public function roomObjAtLoc(_arg1:Object):fpsRoom{
return (MAP[_arg1.u][_arg1.v].roomobj);
}
public function room(_arg1:fpsRoom){
ROOMS.push(_arg1);
}
public function doorPart(_arg1:Object){
NODES.push(_arg1);
}
public function traceNode(_arg1:Number, _arg2:Number){
var _local3:*;
_local3 = MAP[_arg1][_arg2];
trace((((("Trace node [" + _local3.u) + ",") + _local3.v) + "]"));
trace(("isfree = " + _local3.isfree));
trace(("bN = " + _local3.bN));
trace(("bNE = " + _local3.bNE));
trace(("bE = " + _local3.bE));
trace(("bSE = " + _local3.bSE));
trace(("bS = " + _local3.bS));
trace(("bSW = " + _local3.bSW));
trace(("bW = " + _local3.bW));
trace(("bNW = " + _local3.bNW));
}
public function zDepth(){
var _local1:fpsNode;
var _local2:*;
if (zDONE){
return;
};
zDONE = true;
for (_local2 in NODES) {
_local1 = NODES[_local2];
if (_local1.LOADED){
_local1.zDepth(CAMPOS, D_CLIPPING, D_TEX);
};
};
GAME.zDepth(CAMPOS, D_CLIPPING, D_TEX);
}
public function destroy(){
var _local1:*;
CU = 0;
CV = 0;
ROOM = null;
ROOMID = -1;
for (_local1 in ROOMS) {
ROOMS[_local1].destroy();
};
for (_local1 in NODES) {
NODES[_local1].destroy();
};
}
public function wallNode(_arg1:Object){
NODES.push(_arg1);
WALLS.push(_arg1);
}
public function findPath(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Array{
return (PATHFINDER.findPath(_arg1, _arg2, _arg3, _arg4));
}
}
}//package gdk.fps
Section 43
//fpsMapTile (gdk.fps.fpsMapTile)
package gdk.fps {
import gdk.fps.*;
class fpsMapTile {
public var sub:Number;
public var parent:fpsMapTile;
public var roomobj:fpsRoom;
public var closed:Boolean;
public var bSW:Boolean;
public var cost:Number;
public var isfree:Boolean;
public var bNE:Boolean;
public var room:Number;
public var zWALLS:Array;
public var underobj:Boolean;
public var bE:Boolean;
public var bNW:Boolean;
public var bN:Boolean;
public var bS:Boolean;
public var bSE:Boolean;
public var bW:Boolean;
public var fogofwar:Boolean;
public var u:Number;
public var v:Number;
}
}//package gdk.fps
Section 44
//fpsNode (gdk.fps.fpsNode)
package gdk.fps {
import gdk.*;
import sandy.core.scenegraph.*;
import flash.geom.*;
import gdk.math.*;
public class fpsNode {
public var GO:gdkShape;
public var ROOMID:Number;
public var SHAPE:Shape3D;
public var LOADED:Boolean;
public var TEX:gdkTexture;
public var ROOM:fpsRoom;
public var zDEPTH:Number;
public var k:Number;
public var h:Number;
public var GAME:fpsGame;
public var LINE:mathLine;
public var u:Number;
public var w:Number;
public var v:Number;
public function fpsNode(_arg1:fpsRoom, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:gdkTexture){
GAME = glo.bal.GAME;
if (_arg1){
ROOM = _arg1;
ROOMID = _arg1.ID;
ROOM.node(this);
} else {
ROOM = null;
ROOMID = 0;
GAME.ZONE.node(this);
};
u = _arg2;
v = _arg3;
k = _arg4;
zDEPTH = 999999;
w = fpsSetup.FLOOR_WIDTH;
h = fpsSetup.WALL_HEIGHT;
TEX = _arg5;
LOADED = false;
}
public function destroy(){
LOADED = false;
if (GO){
GO.release();
};
SHAPE = null;
GO = null;
}
public function init(){
}
public function loadNode(){
}
public function unloadNode(){
destroy();
}
public function zDepth(_arg1:Object=null, _arg2:Number=0, _arg3:Number=0){
var _local4:*;
if (LINE == null){
return;
};
if (_arg1 == null){
_arg1 = GAME.CAM.getPos();
};
_local4 = LINE.distFromPt(new Point(_arg1.x, _arg1.z));
if (_local4 == -1){
trace("fpsNode : Invalid LINE for zDepth");
};
if (_arg2 > 0){
SHAPE.enableClipping = (_local4 < _arg2);
};
if (_arg3 > 0){
if (_local4 < _arg3){
SHAPE.appearance = TEX.HQ;
} else {
SHAPE.appearance = TEX.LQ;
};
};
SHAPE.forcedDepth = (zDEPTH = _local4);
}
}
}//package gdk.fps
Section 45
//fpsObject (gdk.fps.fpsObject)
package gdk.fps {
import gdk.sprite.*;
import sandy.core.data.*;
public class fpsObject {
public var DESTROYED:Boolean;
public var LOADED:Boolean;
private var ININTERACTIONRANGE:Boolean;
private var FACING_DR:Number;
public var OBSTACLE:Boolean;
public var LOC:Object;
private var INTERACTIONRANGE2:Number;
public var DELETE:Boolean;
private var ACTIVATED:Boolean;
public var POS:Vector;
public var TYPE:String;
private var INTERACTIVE:Boolean;
public var SPRITE:gSprite;
private var FACING_CAM:Boolean;
public var ROOM:fpsRoom;
public var zDEPTH:Number;
private var INTERACTIONRANGE:Number;
public var DESTRUCTIBLE:Boolean;
public var GAME:fpsGame;
public function fpsObject(_arg1:fpsRoom, _arg2:Vector){
ROOM = _arg1;
GAME = ROOM.GAME;
POS = _arg2;
LOC = GAME.MAP.pos2uv(POS);
zDEPTH = 999999;
FACING_CAM = false;
FACING_DR = 0;
DESTRUCTIBLE = false;
DESTROYED = false;
INTERACTIVE = false;
ACTIVATED = false;
INTERACTIONRANGE = 0;
INTERACTIONRANGE2 = 0;
ININTERACTIONRANGE = false;
LOADED = false;
DELETE = false;
GAME.ZONE.object(this);
}
public function interaction(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
_local1 = (GAME.CAM.x - SPRITE.x);
_local2 = (GAME.CAM.z - SPRITE.z);
_local3 = ((_local1 * _local1) + (_local2 * _local2));
if (_local3 < INTERACTIONRANGE2){
if (!ININTERACTIONRANGE){
ININTERACTIONRANGE = true;
inInteractionRange();
};
} else {
if (ININTERACTIONRANGE){
ININTERACTIONRANGE = false;
outOfInteractionRange();
};
};
}
public function init(){
GAME.object(this);
ROOM.object(this);
}
public function getLoc():Object{
return (GAME.MAP.pos2uv(getPos()));
}
public function render(){
}
public function getPos():Vector{
return (POS);
}
protected function inInteractionRange(){
}
protected function outOfInteractionRange(){
}
public function loadObj(){
if (LOADED){
return;
};
createSprite();
if (SPRITE){
SPRITE.x = POS.x;
SPRITE.y = POS.y;
SPRITE.z = POS.z;
};
LOADED = true;
}
public function movement(_arg1:Number, _arg2:Number, _arg3:Number){
POS.x = (POS.x + _arg1);
POS.y = (POS.y + _arg2);
POS.z = (POS.z + _arg3);
SPRITE.x = (SPRITE.x + _arg1);
SPRITE.y = (SPRITE.y + _arg2);
SPRITE.z = (SPRITE.z + _arg3);
}
public function setInteractive(_arg1:Boolean, _arg2:Number){
INTERACTIVE = _arg1;
INTERACTIONRANGE = _arg2;
INTERACTIONRANGE2 = (_arg2 * _arg2);
}
public function setFacing(_arg1:Boolean, _arg2:Number=0){
FACING_CAM = _arg1;
FACING_DR = _arg2;
}
public function nextState(){
if (!LOADED){
return;
};
if (INTERACTIVE){
interaction();
};
}
public function createSprite(){
}
public function zDepth(_arg1:Object){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:Object;
var _local7:*;
_local2 = (POS.x - _arg1.x);
_local3 = (POS.z - _arg1.z);
_local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
_local5 = GAME.MAP.zWalls(LOC.u, LOC.v);
for (_local7 in _local5) {
if (_local5[_local7].zDEPTH < _local4){
if (_local5[_local7].isFacing(_arg1)){
_local6 = GAME.MAP.stingRayBoxI(POS, _arg1, 25);
if (!_local6.intersect){
_local4 = (_local5[_local7].zDEPTH - 10);
};
};
};
};
SPRITE.forcedDepth = (zDEPTH = _local4);
}
public function unloadObj(){
destroy();
}
public function destroy(){
LOADED = false;
if (SPRITE){
SPRITE.release();
};
SPRITE = null;
}
}
}//package gdk.fps
Section 46
//fpsPathFinder (gdk.fps.fpsPathFinder)
package gdk.fps {
public class fpsPathFinder {
private var MAP:Array;
private var NU:Number;
private var NV:Number;
private var ADJV:Array;
private var ADJU:Array;
public function fpsPathFinder(_arg1:Array, _arg2:Number, _arg3:Number){
MAP = _arg1;
NU = _arg2;
NV = _arg3;
ADJU = new Array(-1, 0, 1, 1, 1, 0, -1, -1);
ADJV = new Array(1, 1, 1, 0, -1, -1, -1, 0);
}
public function resetNodes(){
var _local1:*;
var _local2:Number;
_local1 = 0;
while (_local1 < NU) {
_local2 = 0;
while (_local2 < NV) {
MAP[_local1][_local2].closed = false;
MAP[_local1][_local2].cost = 0;
MAP[_local1][_local2].sub = 0;
MAP[_local1][_local2].parent = undefined;
_local2++;
};
_local1++;
};
}
public function findPath(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Array{
var _local5:Array;
var _local6:Array;
var _local7:*;
var _local8:Object;
var _local9:Object;
var _local10:Number;
var _local11:Number;
var _local12:Object;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:*;
var _local17:*;
var _local18:Number;
var _local19:Boolean;
_local5 = new Array();
_local7 = MAP[_arg1][_arg2];
_local8 = MAP[_arg3][_arg4];
if ((((_local7 == null)) || ((_local8 == null)))){
return (_local5);
};
if (!_local8.isfree){
return (_local5);
};
if (_local7 == _local8){
return (_local5);
};
resetNodes();
_local6 = new Array(_local7);
_local7.closed = true;
while (_local6.length > 0) {
_local9 = _local6[0];
_local10 = 0;
if (_local6.length > 1){
_local11 = _local6[0].cost;
_local17 = _local6.length;
_local16 = 1;
while (_local16 < _local17) {
if (_local6[_local16].cost < _local11){
_local9 = _local6[_local16];
_local10 = _local16;
_local11 = _local6[_local16].cost;
};
_local16++;
};
};
_local16 = 0;
while (_local16 < 8) {
_local19 = true;
switch (_local16){
case 0:
if (((((_local9.bN) || (_local9.bW))) || (_local9.bNW))){
_local19 = false;
};
break;
case 1:
if (_local9.bN){
_local19 = false;
};
break;
case 2:
if (((((_local9.bN) || (_local9.bE))) || (_local9.bNE))){
_local19 = false;
};
break;
case 3:
if (_local9.bE){
_local19 = false;
};
break;
case 4:
if (((((_local9.bS) || (_local9.bE))) || (_local9.bSE))){
_local19 = false;
};
break;
case 5:
if (_local9.bS){
_local19 = false;
};
break;
case 6:
if (((((_local9.bS) || (_local9.bW))) || (_local9.bSW))){
_local19 = false;
};
break;
case 7:
if (_local9.bW){
_local19 = false;
};
break;
};
_local12 = MAP[(_local9.u + ADJU[_local16])][(_local9.v + ADJV[_local16])];
if (((!((_local12 == null))) && (_local19))){
if (_local12 == _local8){
_local5.push({u:_local12.u, v:_local12.v});
_local5.push({u:_local9.u, v:_local9.v});
while (true) {
_local9 = _local9.parent;
if (_local9 == null){
_local5.reverse();
return (_local5);
};
_local5.push({u:_local9.u, v:_local9.v});
};
} else {
if (_local12.isfree){
_local13 = ((_local9.sub + 1) + 1);
_local14 = Math.min(Math.abs((_local8.u - _local12.u)), Math.abs((_local8.v - _local12.v)));
_local15 = (_local13 + _local14);
if (((!(_local12.closed)) || ((_local12.cost > _local15)))){
_local12.cost = _local15;
_local12.sub = _local13;
_local12.parent = _local9;
if (!_local12.closed){
_local6.push(_local12);
_local12.closed = true;
};
};
};
};
};
_local16++;
};
_local6.splice(_local10, 1);
};
return (_local5);
}
public function traceMap(){
}
}
}//package gdk.fps
Section 47
//fpsRoom (gdk.fps.fpsRoom)
package gdk.fps {
import sandy.core.scenegraph.*;
public class fpsRoom {
public var TO_UNLOAD:Boolean;
public var LOADED:Boolean;
public var NODES:Array;
public var ID:Number;
public var ITEMS:Array;
public var ROOT:Group;
public var DOORS:Array;
public var TO_LOAD:Boolean;
public var GAME:fpsGame;
public var OBJECTS:Array;
public var CONNECTIONS:Array;
public static var COUNTER:Number = 0;
public function fpsRoom(_arg1:fpsGame, _arg2:Number){
ID = _arg2;
GAME = _arg1;
CONNECTIONS = [];
NODES = [];
DOORS = [];
OBJECTS = [];
ITEMS = [];
LOADED = false;
TO_LOAD = false;
TO_UNLOAD = false;
GAME.MAP.room(this);
}
public function node(_arg1:Object){
NODES.push(_arg1);
}
public function destroy(){
unloadRoom();
}
public function item(_arg1:Object){
ITEMS.push(_arg1);
}
public function onLeaveRoom(){
}
public function connection(_arg1:fpsRoom, _arg2:Object=null, _arg3:Boolean=false){
CONNECTIONS.push({room:_arg1, door:_arg2, loadwithdoor:_arg3});
}
public function loadRoom(){
var _local1:*;
if (LOADED){
return;
};
LOADED = true;
for (_local1 in NODES) {
NODES[_local1].loadNode();
};
for (_local1 in ITEMS) {
ITEMS[_local1].loadItem();
};
for (_local1 in OBJECTS) {
OBJECTS[_local1].loadObj();
};
}
public function door(_arg1:Object){
DOORS.push(_arg1);
}
public function unloadRoom(){
var _local1:*;
if (!LOADED){
return;
};
LOADED = false;
for (_local1 in NODES) {
NODES[_local1].unloadNode();
};
for (_local1 in ITEMS) {
ITEMS[_local1].destroy();
};
for (_local1 in OBJECTS) {
OBJECTS[_local1].destroy();
};
}
public function onEnterRoom(){
}
public function object(_arg1:Object){
OBJECTS.push(_arg1);
}
}
}//package gdk.fps
Section 48
//fpsScene (gdk.fps.fpsScene)
package gdk.fps {
import flash.display.*;
import sandy.core.scenegraph.*;
import sandy.core.*;
public class fpsScene extends Scene3D {
public var SCENEROOT:Group;
public var ROOT:Group;
public function fpsScene(_arg1:Sprite, _arg2:fpsCamera){
ROOT = new Group();
super("fpsscene", _arg1, _arg2, ROOT);
}
public function reset(){
trace("fpsScene->reset ???");
}
}
}//package gdk.fps
Section 49
//fpsSetup (gdk.fps.fpsSetup)
package gdk.fps {
public class fpsSetup {
public static var FLOOR_WIDTH:Number = 100;
public static var WALL_HEIGHT:Number = 75;
}
}//package gdk.fps
Section 50
//fpsTimedEvent (gdk.fps.fpsTimedEvent)
package gdk.fps {
import gdk.fps.*;
class fpsTimedEvent {
public var method:Function;
public var data:Object;
public var t:Number;
public var obj:Object;
public var cancel:Boolean;
function fpsTimedEvent(_arg1:Number, _arg2:Function, _arg3:Object, _arg4:Object=null, _arg5:Boolean=false){
t = _arg1;
method = _arg2;
obj = _arg3;
data = _arg4;
cancel = _arg5;
}
}
}//package gdk.fps
Section 51
//fpsUnit (gdk.fps.fpsUnit)
package gdk.fps {
import gdk.sprite.*;
import sandy.core.data.*;
public class fpsUnit {
public var LOADED:Boolean;
public var INITIALPOS:Vector;
public var RELEASEITEMS:Array;
public var LOC:Object;
public var DELETE:Boolean;
public var ALIVE:Boolean;
public var NATURALSHIELD:Number;
public var POS:Vector;
public var OBJID:String;
public var SPRITE:gBitmapSprite;
public var ROOM:fpsRoom;
public var HEALTH:Number;
public var KEPT:Boolean;
public var PLAYER:aiPlayer;
public var GAME:fpsGame;
public function fpsUnit(_arg1:fpsGame, _arg2:Vector){
GAME = _arg1;
INITIALPOS = new Vector(_arg2.x, _arg2.y, _arg2.z);
POS = _arg2;
ALIVE = false;
DELETE = false;
LOADED = false;
HEALTH = 100;
NATURALSHIELD = 1;
RELEASEITEMS = [];
GAME.ZONE.unit(this);
}
public function distanceFromPlayer():Number{
var _local1:Object;
var _local2:Number;
var _local3:Number;
_local1 = PLAYER.getPos();
_local2 = (_local1.x - POS.x);
_local3 = (_local1.z - POS.z);
return (Math.sqrt(((_local2 * _local2) + (_local3 * _local3))));
}
public function resumePlay(){
}
public function setPos(_arg1:Object){
POS.x = _arg1.x;
POS.y = _arg1.y;
POS.z = _arg1.z;
SPRITE.x = _arg1.x;
SPRITE.y = _arg1.y;
SPRITE.z = _arg1.z;
}
public function init(_arg1:Object=null){
PLAYER = glo.bal.PLAYER;
POS = new Vector(INITIALPOS.x, INITIALPOS.y, INITIALPOS.z);
LOC = GAME.MAP.pos2uv(POS);
ROOM = GAME.MAP.roomObjAtLoc(LOC);
if (!ROOM){
trace("fpsUnit->init -> ROOM = null ???");
releaseItems();
return;
};
HEALTH = 100;
KEPT = GAME.unit(this);
if (!KEPT){
releaseItems();
};
}
public function getPos():Object{
return (POS);
}
public function loadUnit(){
}
public function clearTween(_arg1:Number, _arg2:Number){
var _local3:*;
_local3 = (_arg1 / _arg2);
if (_local3 < 1){
SPRITE.BMP.alpha = (1 - _local3);
} else {
destroy();
};
}
public function getLoc():Object{
return (GAME.MAP.pos2uv(getPos()));
}
public function movement(_arg1:Number, _arg2:Number, _arg3:Number){
POS.x = (POS.x + _arg1);
POS.y = (POS.y + _arg2);
POS.z = (POS.z + _arg3);
SPRITE.x = POS.x;
SPRITE.y = POS.y;
SPRITE.z = POS.z;
zDepth(GAME.CAM.getPos());
}
public function damageSuffered(_arg1:Number){
}
public function itemToRelease(_arg1:fpsItem){
RELEASEITEMS.push(_arg1);
}
public function pausePlay(){
}
public function nextState(){
}
public function zDepth(_arg1:Object){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:Object;
var _local9:*;
_local2 = Math.abs((POS.x - _arg1.x));
_local3 = Math.abs((POS.z - _arg1.z));
_local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
_local5 = Math.max(_local2, _local3);
_local6 = ((_local4 + _local5) * 0.5);
LOC = GAME.MAP.pos2uv(POS);
_local7 = GAME.MAP.zWalls(LOC.u, LOC.v);
for (_local9 in _local7) {
if (_local7[_local9].zDEPTH < _local6){
if (_local7[_local9].isFacing(_arg1)){
_local8 = GAME.MAP.stingRayBoxI(POS, _arg1, 25);
if (!_local8.intersect){
_local6 = (_local7[_local9].zDEPTH - 10);
};
};
};
};
SPRITE.forcedDepth = _local6;
}
public function damage(_arg1:Number){
if (!ALIVE){
return;
};
HEALTH = (HEALTH - (_arg1 * NATURALSHIELD));
if (HEALTH > 0){
damageSuffered(_arg1);
} else {
ALIVE = false;
releaseItems();
death();
};
}
public function clearUnit(_arg1:Number){
GAME.animation(this, _arg1, clearTween);
}
public function death(){
}
public function releaseItems(){
var _local1:*;
for (_local1 in RELEASEITEMS) {
RELEASEITEMS[_local1].init();
RELEASEITEMS[_local1].loadItem(POS);
};
}
public function destroy(_arg1:Object=null){
LOADED = false;
DELETE = true;
ALIVE = false;
if (SPRITE){
SPRITE.release();
};
SPRITE = null;
}
}
}//package gdk.fps
Section 52
//fpsZone (gdk.fps.fpsZone)
package gdk.fps {
import sandy.core.data.*;
public class fpsZone {
public var NU:Number;
public var NV:Number;
public var NODES:Array;
public var ID:Number;
public var ITEMS:Array;
public var UNITS:Array;
public var STARTDIR:Number;
public var STARTPOS:Vector;
public var OBJECTS:Array;
public function fpsZone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Vector, _arg5:Number){
ID = _arg1;
NU = _arg2;
NV = _arg3;
STARTPOS = _arg4;
STARTDIR = _arg5;
NODES = [];
UNITS = [];
ITEMS = [];
OBJECTS = [];
}
public function node(_arg1:fpsNode){
NODES.push(_arg1);
}
public function unit(_arg1:fpsUnit){
UNITS.push(_arg1);
}
public function loadWorld(_arg1:fpsGame){
}
public function item(_arg1:fpsItem){
ITEMS.push(_arg1);
}
public function loadObjects(_arg1:fpsGame){
}
public function loadUnits(_arg1:fpsGame){
}
public function object(_arg1:fpsObject){
OBJECTS.push(_arg1);
}
}
}//package gdk.fps
Section 53
//mathLine (gdk.math.mathLine)
package gdk.math {
import flash.geom.*;
public class mathLine {
public var B:Number;
public var M:Number;
public var YMAX:Number;
public var MDX:Number;
public var MDY:Number;
public var L2:Number;
public var XMAX:Number;
public var PT1:Point;
public var PT2:Point;
public var YMIN:Number;
public var XMIN:Number;
public function mathLine(_arg1:Point, _arg2:Point){
PT1 = _arg1;
PT2 = _arg2;
XMIN = Math.min(PT1.x, PT2.x);
XMAX = Math.max(PT1.x, PT2.x);
YMIN = Math.min(PT1.y, PT2.y);
YMAX = Math.max(PT1.y, PT2.y);
MDX = (PT2.x - PT1.x);
MDY = (PT2.y - PT1.y);
if (Math.abs(MDX) < 0.001){
M = Infinity;
} else {
M = (MDY / MDX);
B = (PT1.y - (M * PT1.x));
};
L2 = ((MDX * MDX) + (MDY * MDY));
}
public function distFromPt(_arg1:Point):Number{
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
if (L2 == 0){
return (-1);
};
_local2 = (_arg1.x - PT1.x);
_local3 = (_arg1.y - PT1.y);
_local4 = (((_local2 * MDX) + (_local3 * MDY)) / L2);
if ((((_local4 < 0)) || ((_local4 > 1)))){
_local5 = (_arg1.x - PT2.x);
_local6 = (_arg1.y - PT2.y);
_local7 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
_local8 = Math.sqrt(((_local5 * _local5) + (_local6 * _local6)));
return (Math.min(_local7, _local8));
};
_local9 = (PT1.x + (_local4 * MDX));
_local10 = (PT1.y + (_local4 * MDY));
_local11 = (_arg1.x - _local9);
_local12 = (_arg1.y - _local10);
return (Math.sqrt(((_local11 * _local11) + (_local12 * _local12))));
}
public function intersect(_arg1:mathLine):Point{
var _local2:Point;
var _local3:Number;
_local2 = null;
_local3 = 0.005;
if (M == Infinity){
if (_arg1.M == Infinity){
return (null);
};
_local2 = new Point(0, 0);
_local2.x = PT1.x;
_local2.y = ((_arg1.M * _local2.x) + _arg1.B);
if ((((((((_local2.x >= (XMIN - _local3))) && ((_local2.x <= (XMAX + _local3))))) && ((_local2.y >= (YMIN - _local3))))) && ((_local2.y <= (YMAX + _local3))))){
if ((((((((_local2.x >= (_arg1.XMIN - _local3))) && ((_local2.x <= (_arg1.XMAX + _local3))))) && ((_local2.y >= (_arg1.YMIN - _local3))))) && ((_local2.y <= (_arg1.YMAX + _local3))))){
return (_local2);
};
};
return (null);
};
if (M == _arg1.M){
return (null);
};
if (_arg1.M == Infinity){
_local2 = new Point(0, 0);
_local2.x = _arg1.PT1.x;
_local2.y = ((M * _local2.x) + B);
if ((((((((_local2.x >= (XMIN - _local3))) && ((_local2.x <= (XMAX + _local3))))) && ((_local2.y >= (YMIN - _local3))))) && ((_local2.y <= (YMAX + _local3))))){
if ((((((((_local2.x >= (_arg1.XMIN - _local3))) && ((_local2.x <= (_arg1.XMAX + _local3))))) && ((_local2.y >= (_arg1.YMIN - _local3))))) && ((_local2.y <= (_arg1.YMAX + _local3))))){
return (_local2);
};
};
return (null);
};
_local2 = new Point(0, 0);
_local2.x = ((B - _arg1.B) / (_arg1.M - M));
_local2.y = ((M * _local2.x) + B);
if ((((((((_local2.x >= (XMIN - _local3))) && ((_local2.x <= (XMAX + _local3))))) && ((_local2.y >= (YMIN - _local3))))) && ((_local2.y <= (YMAX + _local3))))){
if ((((((((_local2.x >= (_arg1.XMIN - _local3))) && ((_local2.x <= (_arg1.XMAX + _local3))))) && ((_local2.y >= (_arg1.YMIN - _local3))))) && ((_local2.y <= (_arg1.YMAX + _local3))))){
return (_local2);
};
};
return (null);
}
public function toStr():String{
return ((((((((("[(" + PT1.x) + ",") + PT1.y) + "),(") + PT2.x) + ",") + PT2.y) + ")]"));
}
}
}//package gdk.math
Section 54
//gBitmapSprite (gdk.sprite.gBitmapSprite)
package gdk.sprite {
import flash.display.*;
public class gBitmapSprite extends gSprite {
public var BUFFER:BitmapData;
public var H:Number;
public var BMP:Bitmap;
public var W:Number;
public function gBitmapSprite(_arg1:String, _arg2:Number, _arg3:Number){
super(_arg1);
W = _arg2;
H = _arg3;
BUFFER = new BitmapData(W, H, true, 0);
BMP = new Bitmap(BUFFER);
CONTENT.addChild(BMP);
BMP.x = (W * -0.5);
BMP.y = (H * -0.5);
}
override public function release(){
super.release();
BUFFER.dispose();
if (BMP.parent){
BMP.parent.removeChild(BMP);
};
BMP = null;
BUFFER = null;
}
}
}//package gdk.sprite
Section 55
//gSequencer (gdk.sprite.gSequencer)
package gdk.sprite {
import flash.display.*;
import flash.geom.*;
public class gSequencer {
public var SET:Object;
public var C_SEQ:Number;
public var SEQi:Number;
public var N_IMG:Number;
public var LOOP:Boolean;
public var C_IMG:Number;
public function gSequencer(_arg1:Object, _arg2:Number){
SEQi = _arg2;
SET = _arg1;
setSequence(0);
}
public function setSequence(_arg1:Number, _arg2:Boolean=true){
C_SEQ = _arg1;
C_IMG = 0;
N_IMG = SET.getLength(SEQi, C_SEQ);
LOOP = _arg2;
}
public function nextState(_arg1:BitmapData, _arg2:Point, _arg3:Boolean=false){
SET.getFrame(SEQi, C_SEQ, C_IMG, _arg1, _arg2, _arg3);
C_IMG++;
if (C_IMG >= N_IMG){
if (LOOP){
C_IMG = 0;
} else {
C_IMG = (N_IMG - 1);
};
};
}
}
}//package gdk.sprite
Section 56
//gSprite (gdk.sprite.gSprite)
package gdk.sprite {
import flash.display.*;
import sandy.core.scenegraph.*;
public class gSprite extends Sprite2D {
public var CONTENT:Sprite;
public function gSprite(_arg1:String){
CONTENT = new Sprite();
super(_arg1, CONTENT);
glo.bal.GAME.SCENE.ROOT.addChild(this);
this.enableForcedDepth = true;
}
public function release(){
destroy();
if (CONTENT.parent){
CONTENT.parent.removeChild(CONTENT);
};
CONTENT = null;
}
}
}//package gdk.sprite
Section 57
//gdkBitmapTexture (gdk.gdkBitmapTexture)
package gdk {
import flash.display.*;
import sandy.materials.*;
import sandy.materials.attributes.*;
public class gdkBitmapTexture extends gdkTexture {
public function gdkBitmapTexture(_arg1:BitmapData, _arg2:Boolean=false, _arg3:MaterialAttributes=null){
var _local4:BitmapMaterial;
var _local5:BitmapMaterial;
_local4 = new BitmapMaterial(_arg1, _arg3, 0);
_local5 = new BitmapMaterial(_arg1, _arg3, 50);
super(_local4, _local5, _arg2);
_arg1.dispose();
}
}
}//package gdk
Section 58
//gdkGraphic (gdk.gdkGraphic)
package gdk {
public class gdkGraphic {
public var free:Boolean;
public var obj:Object;
public var type:Number;
public var pool:Object;
public function gdkGraphic(_arg1:Object, _arg2:Number, _arg3:Object){
pool = _arg1;
type = _arg2;
obj = _arg3;
free = false;
}
public function release(){
free = true;
pool.objectReleased(type);
}
public function take(){
free = false;
}
}
}//package gdk
Section 59
//gdkShape (gdk.gdkShape)
package gdk {
public class gdkShape extends gdkGraphic {
public function gdkShape(_arg1:Object, _arg2:Number, _arg3:Object){
super(_arg1, _arg2, _arg3);
glo.bal.GAME.SCENE.ROOT.addChild(_arg3);
}
override public function release(){
free = true;
pool.objectReleased(type);
obj.visible = false;
}
override public function take(){
free = false;
obj.enableForcedDepth = true;
obj.visible = true;
}
}
}//package gdk
Section 60
//gdkTexture (gdk.gdkTexture)
package gdk {
import sandy.materials.*;
public class gdkTexture {
public var LQ:Appearance;
public var HQ:Appearance;
public function gdkTexture(_arg1:Material, _arg2:Material, _arg3:Boolean=false){
_arg1.lightingEnable = _arg3;
_arg2.lightingEnable = _arg3;
LQ = new Appearance(_arg1);
HQ = new Appearance(_arg2);
}
public function setTiling(_arg1:Number=1, _arg2:Number=1){
LQ.frontMaterial.setTiling(_arg1, _arg2);
HQ.frontMaterial.setTiling(_arg1, _arg2);
}
}
}//package gdk
Section 61
//BBox (sandy.bounds.BBox)
package sandy.bounds {
import sandy.core.data.*;
public class BBox {
public var aTCorners:Array;
public var max:Vector;
public var tmax:Vector;
public var min:Vector;
public var uptodate:Boolean;// = false
public var aCorners:Array;
public var tmin:Vector;
public function BBox(_arg1:Vector=null, _arg2:Vector=null){
uptodate = false;
super();
min = ((_arg1)!=null) ? _arg1 : new Vector(-0.5, -0.5, -0.5);
max = ((_arg2)!=null) ? _arg2 : new Vector(0.5, 0.5, 0.5);
tmin = new Vector();
tmax = new Vector();
aCorners = new Array(8);
aTCorners = new Array(8);
__computeCorners(false);
}
public function transform(_arg1:Matrix4):void{
var _local2:Vector;
var _local3:uint;
aTCorners[0].copy(aCorners[0]);
_arg1.vectorMult(aTCorners[0]);
tmin.copy(aTCorners[0]);
tmax.copy(tmin);
_local3 = 1;
while (_local3 < 8) {
aTCorners[_local3].copy(aCorners[_local3]);
_arg1.vectorMult(aTCorners[_local3]);
_local2 = aTCorners[_local3];
if (_local2.x < tmin.x){
tmin.x = _local2.x;
} else {
if (_local2.x > tmax.x){
tmax.x = _local2.x;
};
};
if (_local2.y < tmin.y){
tmin.y = _local2.y;
} else {
if (_local2.y > tmax.y){
tmax.y = _local2.y;
};
};
if (_local2.z < tmin.z){
tmin.z = _local2.z;
} else {
if (_local2.z > tmax.z){
tmax.z = _local2.z;
};
};
_local3++;
};
uptodate = true;
}
public function getCenter():Vector{
return (new Vector(((max.x + min.x) / 2), ((max.y + min.y) / 2), ((max.z + min.z) / 2)));
}
private function __computeCorners(_arg1:Boolean=false):Array{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
if (_arg1 == true){
_local2 = tmin.x;
_local3 = tmin.y;
_local4 = tmin.z;
_local5 = tmax.x;
_local6 = tmax.y;
_local7 = tmax.z;
} else {
_local2 = min.x;
_local3 = min.y;
_local4 = min.z;
_local5 = max.x;
_local6 = max.y;
_local7 = max.z;
};
aTCorners[0] = new Vector();
aCorners[0] = new Vector(_local2, _local6, _local7);
aTCorners[1] = new Vector();
aCorners[1] = new Vector(_local5, _local6, _local7);
aTCorners[2] = new Vector();
aCorners[2] = new Vector(_local5, _local3, _local7);
aTCorners[3] = new Vector();
aCorners[3] = new Vector(_local2, _local3, _local7);
aTCorners[4] = new Vector();
aCorners[4] = new Vector(_local2, _local6, _local4);
aTCorners[5] = new Vector();
aCorners[5] = new Vector(_local5, _local6, _local4);
aTCorners[6] = new Vector();
aCorners[6] = new Vector(_local5, _local3, _local4);
aTCorners[7] = new Vector();
aCorners[7] = new Vector(_local2, _local3, _local4);
return (aCorners);
}
public function clone():BBox{
var _local1:BBox;
_local1 = new BBox();
_local1.max = max.clone();
_local1.min = min.clone();
_local1.tmax = tmax.clone();
_local1.tmin = tmin.clone();
return (_local1);
}
public function getSize():Vector{
return (new Vector(Math.abs((max.x - min.x)), Math.abs((max.y - min.y)), Math.abs((max.z - min.z))));
}
public function toString():String{
return ("sandy.bounds.BBox");
}
public static function create(_arg1:Array):BBox{
var _local2:Number;
var _local3:Vector;
var _local4:Vector;
var _local5:Array;
if (_arg1.length == 0){
return (null);
};
_local2 = _arg1.length;
_local3 = new Vector();
_local4 = new Vector();
_local5 = _arg1.sortOn(["x"], [(Array.NUMERIC | Array.RETURNINDEXEDARRAY)]);
_local3.x = _arg1[_local5[0]].x;
_local4.x = _arg1[_local5[(_local5.length - 1)]].x;
_local5 = _arg1.sortOn(["y"], [(Array.NUMERIC | Array.RETURNINDEXEDARRAY)]);
_local3.y = _arg1[_local5[0]].y;
_local4.y = _arg1[_local5[(_local5.length - 1)]].y;
_local5 = _arg1.sortOn(["z"], [(Array.NUMERIC | Array.RETURNINDEXEDARRAY)]);
_local3.z = _arg1[_local5[0]].z;
_local4.z = _arg1[_local5[(_local5.length - 1)]].z;
return (new BBox(_local3, _local4));
}
}
}//package sandy.bounds
Section 62
//BSphere (sandy.bounds.BSphere)
package sandy.bounds {
import sandy.core.data.*;
public final class BSphere {
public var uptodate:Boolean;// = false
public var position:Vector;
public var radius:Number;// = 1
public var center:Vector;
public function BSphere(){
uptodate = false;
center = new Vector();
radius = 1;
position = new Vector();
super();
}
public function transform(_arg1:Matrix4):void{
position.copy(center);
_arg1.vectorMult(position);
uptodate = true;
}
private function computeRadius(_arg1:Array):Number{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:int;
var _local8:int;
_local6 = 0;
_local8 = _arg1.length;
while (_local7 < _local8) {
_local2 = (_arg1[int(_local7)].x - center.x);
_local3 = (_arg1[int(_local7)].x - center.x);
_local4 = (_arg1[int(_local7)].x - center.x);
_local5 = (((_local2 * _local2) + (_local3 * _local3)) + (_local4 * _local4));
if (_local5 > _local6){
_local6 = _local5;
};
_local7++;
};
return (Math.sqrt(_local6));
}
private function pointsOutofSphere(_arg1:Array):Array{
var _local2:Array;
var _local3:int;
var _local4:int;
_local2 = new Array();
_local4 = _arg1.length;
while (_local3 < _local4) {
if (distance(_arg1[int(_local3)]) > 0){
_local2.push(_arg1[int(_local3)]);
};
_local3++;
};
return (_local2);
}
public function compute(_arg1:Array):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:Vertex;
var _local10:Vertex;
var _local11:Number;
var _local12:Vertex;
var _local13:Vertex;
if (_arg1.length == 0){
return;
};
_local6 = 0;
_local7 = 0;
_local8 = _arg1.length;
_local9 = _arg1[0].clone();
_local10 = _arg1[0].clone();
_local11 = 0;
while (_local6 < _local8) {
_local7 = (_local6 + 1);
while (_local7 < _local8) {
_local12 = _arg1[int(_local6)];
_local13 = _arg1[int(_local7)];
_local2 = (_local13.x - _local12.x);
_local3 = (_local13.y - _local12.y);
_local4 = (_local13.z - _local12.z);
_local5 = (((_local2 * _local2) + (_local3 * _local3)) + (_local4 * _local4));
if (_local5 > _local11){
_local11 = _local5;
_local9.copy(_local12);
_local10.copy(_local13);
};
_local7 = (_local7 + 1);
};
_local6 = (_local6 + 1);
};
center = new Vector(((_local9.x + _local10.x) / 2), ((_local9.y + _local10.y) / 2), ((_local9.z + _local10.z) / 2));
radius = (Math.sqrt(_local11) / 2);
}
public function toString():String{
return ((((("sandy.bounds.BSphere (center : " + center) + ", radius : ") + radius) + ")"));
}
public function distance(_arg1:Vector):Number{
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local2 = (_arg1.x - center.x);
_local3 = (_arg1.y - center.y);
_local4 = (_arg1.z - center.z);
return ((Math.sqrt((((_local2 * _local2) + (_local3 * _local3)) + (_local4 * _local4))) - radius));
}
public static function create(_arg1:Array):BSphere{
var _local2:BSphere;
_local2 = new (BSphere);
_local2.compute(_arg1);
return (_local2);
}
}
}//package sandy.bounds
Section 63
//Command (sandy.commands.Command)
package sandy.commands {
import flash.events.*;
public interface Command {
function execute(_arg1:Event=null):void;
}
}//package sandy.commands
Section 64
//Delegate (sandy.commands.Delegate)
package sandy.commands {
import flash.events.*;
public class Delegate implements Command {
private var _a:Array;
private var _f:Function;
public function Delegate(_arg1:Function, ... _args){
_f = _arg1;
_a = _args;
}
public function getArguments():Array{
return (_a);
}
public function setArgumentsArray(_arg1:Array):void{
if (_arg1.length > 0){
_a = _arg1;
};
}
public function addArgumentsArray(_arg1:Array):void{
if (_arg1.length > 0){
_a = _a.concat(_arg1);
};
}
public function toString():String{
return ("sandy.commands.Delegate");
}
public function handleEvent(_arg1:Event):void{
this.execute(_arg1);
}
public function setArguments(... _args):void{
if (_args.length > 0){
_a = _args;
};
}
public function addArguments(... _args):void{
if (_args.length > 0){
_a = _a.concat(_args);
};
}
public function callFunction(){
return (_f.apply(null, _a));
}
public function execute(_arg1:Event=null):void{
var _local2:Array;
_local2 = new Array();
if (_arg1 != null){
_local2.push(_arg1);
};
_f.apply(null, ((_a.length)>0) ? _local2.concat(_a) : ((_local2.length)>0) ? _local2 : null);
}
public static function create(_arg1:Function, ... _args):Function{
var method = _arg1;
var args = _args;
return (function (... _args){
return (method.apply(null, ((_args.length > 0)) ? ((args.length > 0)) ? args.concat(_args) : _args : ((args.length > 0)) ? args : null));
});
}
}
}//package sandy.commands
Section 65
//Edge3D (sandy.core.data.Edge3D)
package sandy.core.data {
public final class Edge3D {
public var vertex1:Vertex;
public var vertex2:Vertex;
public var vertexId1:uint;
public var vertexId2:uint;
public function Edge3D(_arg1:uint, _arg2:uint){
vertexId1 = _arg1;
vertexId2 = _arg2;
}
public function clone():Edge3D{
var _local1:Edge3D;
_local1 = new Edge3D(vertexId1, vertexId2);
return (_local1);
}
}
}//package sandy.core.data
Section 66
//Matrix4 (sandy.core.data.Matrix4)
package sandy.core.data {
import sandy.math.*;
import sandy.util.*;
public final class Matrix4 {
private const _fastMathInitialized:Boolean;
public var n11:Number;
public var n12:Number;
public var n13:Number;
public var n14:Number;
public var n21:Number;
public var n22:Number;
public var n23:Number;
public var n24:Number;
public var n31:Number;
public var n32:Number;
public var n33:Number;
public var n34:Number;
public var n41:Number;
public var n42:Number;
public var n43:Number;
public var n44:Number;
public static var USE_FAST_MATH:Boolean = false;
public function Matrix4(_arg1:Number=1, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=1, _arg7:Number=0, _arg8:Number=0, _arg9:Number=0, _arg10:Number=0, _arg11:Number=1, _arg12:Number=0, _arg13:Number=0, _arg14:Number=0, _arg15:Number=0, _arg16:Number=1){
_fastMathInitialized = FastMath.initialized;
super();
n11 = _arg1;
n12 = _arg2;
n13 = _arg3;
n14 = _arg4;
n21 = _arg5;
n22 = _arg6;
n23 = _arg7;
n24 = _arg8;
n31 = _arg9;
n32 = _arg10;
n33 = _arg11;
n34 = _arg12;
n41 = _arg13;
n42 = _arg14;
n43 = _arg15;
n44 = _arg16;
}
final public function multiply3x3(_arg1:Matrix4):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
_local2 = n11;
_local3 = _arg1.n11;
_local4 = n21;
_local5 = _arg1.n21;
_local6 = n31;
_local7 = _arg1.n31;
_local8 = n12;
_local9 = _arg1.n12;
_local10 = n22;
_local11 = _arg1.n22;
_local12 = n32;
_local13 = _arg1.n32;
_local14 = n13;
_local15 = _arg1.n13;
_local16 = n23;
_local17 = _arg1.n23;
_local18 = n33;
_local19 = _arg1.n33;
n11 = (((_local2 * _local3) + (_local8 * _local5)) + (_local14 * _local7));
n12 = (((_local2 * _local9) + (_local8 * _local11)) + (_local14 * _local13));
n13 = (((_local2 * _local15) + (_local8 * _local17)) + (_local14 * _local19));
n21 = (((_local4 * _local3) + (_local10 * _local5)) + (_local16 * _local7));
n22 = (((_local4 * _local9) + (_local10 * _local11)) + (_local16 * _local13));
n23 = (((_local4 * _local15) + (_local10 * _local17)) + (_local16 * _local19));
n31 = (((_local6 * _local3) + (_local12 * _local5)) + (_local18 * _local7));
n32 = (((_local6 * _local9) + (_local12 * _local11)) + (_local18 * _local13));
n33 = (((_local6 * _local15) + (_local12 * _local17)) + (_local18 * _local19));
n14 = (n24 = (n34 = (n41 = (n42 = (n43 = 0)))));
n44 = 1;
}
final public function vectorMult(_arg1:Vector):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local2 = _arg1.x;
_local3 = _arg1.y;
_local4 = _arg1.z;
_arg1.x = ((((_local2 * n11) + (_local3 * n12)) + (_local4 * n13)) + n14);
_arg1.y = ((((_local2 * n21) + (_local3 * n22)) + (_local4 * n23)) + n24);
_arg1.z = ((((_local2 * n31) + (_local3 * n32)) + (_local4 * n33)) + n34);
}
final public function rotationY(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
identity();
_arg1 = NumberUtil.toRadian(_arg1);
_local2 = ((USE_FAST_MATH)==false) ? Math.cos(_arg1) : FastMath.cos(_arg1);
_local3 = ((USE_FAST_MATH)==false) ? Math.sin(_arg1) : FastMath.sin(_arg1);
n11 = _local2;
n13 = -(_local3);
n31 = _local3;
n33 = _local2;
}
final public function rotationZ(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
identity();
_arg1 = NumberUtil.toRadian(_arg1);
_local2 = ((USE_FAST_MATH)==false) ? Math.cos(_arg1) : FastMath.cos(_arg1);
_local3 = ((USE_FAST_MATH)==false) ? Math.sin(_arg1) : FastMath.sin(_arg1);
n11 = _local2;
n12 = -(_local3);
n21 = _local3;
n22 = _local2;
}
final public function eulerRotation(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
identity();
_arg1 = NumberUtil.toRadian(_arg1);
_arg2 = NumberUtil.toRadian(_arg2);
_arg3 = NumberUtil.toRadian(_arg3);
_local4 = ((USE_FAST_MATH)==false) ? Math.cos(_arg1) : FastMath.cos(_arg1);
_local5 = ((USE_FAST_MATH)==false) ? Math.sin(_arg1) : FastMath.sin(_arg1);
_local6 = ((USE_FAST_MATH)==false) ? Math.cos(_arg2) : FastMath.cos(_arg2);
_local7 = ((USE_FAST_MATH)==false) ? Math.sin(_arg2) : FastMath.sin(_arg2);
_local8 = ((USE_FAST_MATH)==false) ? Math.cos(_arg3) : FastMath.cos(_arg3);
_local9 = ((USE_FAST_MATH)==false) ? Math.sin(_arg3) : FastMath.sin(_arg3);
_local10 = (_local4 * _local7);
_local11 = (_local5 * _local7);
n11 = (_local6 * _local8);
n12 = (-(_local6) * _local9);
n13 = -(_local7);
n21 = ((-(_local11) * _local8) + (_local4 * _local9));
n22 = ((-(_local11) * _local9) + (_local4 * _local8));
n23 = (-(_local5) * _local6);
n31 = ((_local10 * _local8) + (_local5 * _local9));
n32 = ((-(_local10) * _local9) + (_local5 * _local8));
n33 = (_local4 * _local6);
}
final public function rotationX(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
identity();
_arg1 = NumberUtil.toRadian(_arg1);
_local2 = ((USE_FAST_MATH)==false) ? Math.cos(_arg1) : FastMath.cos(_arg1);
_local3 = ((USE_FAST_MATH)==false) ? Math.sin(_arg1) : FastMath.sin(_arg1);
n22 = _local2;
n23 = -(_local3);
n32 = _local3;
n33 = _local2;
}
final public function multiply(_arg1:Matrix4):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
_local2 = n11;
_local3 = n21;
_local4 = n31;
_local5 = n41;
_local6 = n12;
_local7 = n22;
_local8 = n32;
_local9 = n42;
_local10 = n13;
_local11 = n23;
_local12 = n33;
_local13 = n43;
_local14 = n14;
_local15 = n24;
_local16 = n34;
_local17 = n44;
_local18 = _arg1.n11;
_local19 = _arg1.n21;
_local20 = _arg1.n31;
_local21 = _arg1.n41;
_local22 = _arg1.n12;
_local23 = _arg1.n22;
_local24 = _arg1.n32;
_local25 = _arg1.n42;
_local26 = _arg1.n13;
_local27 = _arg1.n23;
_local28 = _arg1.n33;
_local29 = _arg1.n43;
_local30 = _arg1.n14;
_local31 = _arg1.n24;
_local32 = _arg1.n34;
_local33 = _arg1.n44;
n11 = ((((_local2 * _local18) + (_local6 * _local19)) + (_local10 * _local20)) + (_local14 * _local21));
n12 = ((((_local2 * _local22) + (_local6 * _local23)) + (_local10 * _local24)) + (_local14 * _local25));
n13 = ((((_local2 * _local26) + (_local6 * _local27)) + (_local10 * _local28)) + (_local14 * _local29));
n14 = ((((_local2 * _local30) + (_local6 * _local31)) + (_local10 * _local32)) + (_local14 * _local33));
n21 = ((((_local3 * _local18) + (_local7 * _local19)) + (_local11 * _local20)) + (_local15 * _local21));
n22 = ((((_local3 * _local22) + (_local7 * _local23)) + (_local11 * _local24)) + (_local15 * _local25));
n23 = ((((_local3 * _local26) + (_local7 * _local27)) + (_local11 * _local28)) + (_local15 * _local29));
n24 = ((((_local3 * _local30) + (_local7 * _local31)) + (_local11 * _local32)) + (_local15 * _local33));
n31 = ((((_local4 * _local18) + (_local8 * _local19)) + (_local12 * _local20)) + (_local16 * _local21));
n32 = ((((_local4 * _local22) + (_local8 * _local23)) + (_local12 * _local24)) + (_local16 * _local25));
n33 = ((((_local4 * _local26) + (_local8 * _local27)) + (_local12 * _local28)) + (_local16 * _local29));
n34 = ((((_local4 * _local30) + (_local8 * _local31)) + (_local12 * _local32)) + (_local16 * _local33));
n41 = ((((_local5 * _local18) + (_local9 * _local19)) + (_local13 * _local20)) + (_local17 * _local21));
n42 = ((((_local5 * _local22) + (_local9 * _local23)) + (_local13 * _local24)) + (_local17 * _local25));
n43 = ((((_local5 * _local26) + (_local9 * _local27)) + (_local13 * _local28)) + (_local17 * _local29));
n44 = ((((_local5 * _local30) + (_local9 * _local31)) + (_local13 * _local32)) + (_local17 * _local33));
}
final public function axisRotationWithReference(_arg1:Vector, _arg2:Vector, _arg3:Number):void{
var _local4:Matrix4;
var _local5:Number;
_local4 = new Matrix4();
_local5 = ((_arg3 + 360) % 360);
translation(_arg2.x, _arg2.y, _arg2.z);
_local4.axisRotation(_arg1.x, _arg1.y, _arg1.z, _local5);
multiply(_local4);
_local4.translation(-(_arg2.x), -(_arg2.y), -(_arg2.z));
multiply(_local4);
_local4 = null;
}
final public function getTrace():Number{
return ((((n11 + n22) + n33) + n44));
}
final public function zero():void{
n11 = 0;
n12 = 0;
n13 = 0;
n14 = 0;
n21 = 0;
n22 = 0;
n23 = 0;
n24 = 0;
n31 = 0;
n32 = 0;
n33 = 0;
n34 = 0;
n41 = 0;
n42 = 0;
n43 = 0;
n44 = 0;
}
final public function translation(_arg1:Number, _arg2:Number, _arg3:Number):void{
identity();
n14 = _arg1;
n24 = _arg2;
n34 = _arg3;
}
final public function scaleVector(_arg1:Vector):void{
identity();
n11 = _arg1.x;
n22 = _arg1.y;
n33 = _arg1.z;
}
final public function det():Number{
return (((((((((n11 * n22) - (n21 * n12)) * ((n33 * n44) - (n43 * n34))) - (((n11 * n32) - (n31 * n12)) * ((n23 * n44) - (n43 * n24)))) + (((n11 * n42) - (n41 * n12)) * ((n23 * n34) - (n33 * n24)))) + (((n21 * n32) - (n31 * n22)) * ((n13 * n44) - (n43 * n14)))) - (((n21 * n42) - (n41 * n22)) * ((n13 * n34) - (n33 * n14)))) + (((n31 * n42) - (n41 * n32)) * ((n13 * n24) - (n23 * n14)))));
}
final public function inverse():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
_local1 = det();
if (Math.abs(_local1) < 0.001){
return;
};
_local1 = (1 / _local1);
_local2 = n11;
_local3 = n21;
_local4 = n31;
_local5 = n41;
_local6 = n12;
_local7 = n22;
_local8 = n32;
_local9 = n42;
_local10 = n13;
_local11 = n23;
_local12 = n33;
_local13 = n43;
_local14 = n14;
_local15 = n24;
_local16 = n34;
_local17 = n44;
n11 = (_local1 * (((_local7 * ((_local12 * _local17) - (_local13 * _local16))) - (_local8 * ((_local11 * _local17) - (_local13 * _local15)))) + (_local9 * ((_local11 * _local16) - (_local12 * _local15)))));
n12 = (-(_local1) * (((_local6 * ((_local12 * _local17) - (_local13 * _local16))) - (_local8 * ((_local10 * _local17) - (_local13 * _local14)))) + (_local9 * ((_local10 * _local16) - (_local12 * _local14)))));
n13 = (_local1 * (((_local6 * ((_local11 * _local17) - (_local13 * _local15))) - (_local7 * ((_local10 * _local17) - (_local13 * _local14)))) + (_local9 * ((_local10 * _local15) - (_local11 * _local14)))));
n14 = (-(_local1) * (((_local6 * ((_local11 * _local16) - (_local12 * _local15))) - (_local7 * ((_local10 * _local16) - (_local12 * _local14)))) + (_local8 * ((_local10 * _local15) - (_local11 * _local14)))));
n21 = (-(_local1) * (((_local3 * ((_local12 * _local17) - (_local13 * _local16))) - (_local4 * ((_local11 * _local17) - (_local13 * _local15)))) + (_local5 * ((_local11 * _local16) - (_local12 * _local15)))));
n22 = (_local1 * (((_local2 * ((_local12 * _local17) - (_local13 * _local16))) - (_local4 * ((_local10 * _local17) - (_local13 * _local14)))) + (_local5 * ((_local10 * _local16) - (_local12 * _local14)))));
n23 = (-(_local1) * (((_local2 * ((_local11 * _local17) - (_local13 * _local15))) - (_local3 * ((_local10 * _local17) - (_local13 * _local14)))) + (_local5 * ((_local10 * _local15) - (_local11 * _local14)))));
n24 = (_local1 * (((_local2 * ((_local11 * _local16) - (_local12 * _local15))) - (_local3 * ((_local10 * _local16) - (_local12 * _local14)))) + (_local4 * ((_local10 * _local15) - (_local11 * _local14)))));
n31 = (_local1 * (((_local3 * ((_local8 * _local17) - (_local9 * _local16))) - (_local4 * ((_local7 * _local17) - (_local9 * _local15)))) + (_local5 * ((_local7 * _local16) - (_local8 * _local15)))));
n32 = (-(_local1) * (((_local2 * ((_local8 * _local17) - (_local9 * _local16))) - (_local4 * ((_local6 * _local17) - (_local9 * _local14)))) + (_local5 * ((_local6 * _local16) - (_local8 * _local14)))));
n33 = (_local1 * (((_local2 * ((_local7 * _local17) - (_local9 * _local15))) - (_local3 * ((_local6 * _local17) - (_local9 * _local14)))) + (_local5 * ((_local6 * _local15) - (_local7 * _local14)))));
n34 = (-(_local1) * (((_local2 * ((_local7 * _local16) - (_local8 * _local15))) - (_local3 * ((_local6 * _local16) - (_local8 * _local14)))) + (_local4 * ((_local6 * _local15) - (_local7 * _local14)))));
n41 = (-(_local1) * (((_local3 * ((_local8 * _local13) - (_local9 * _local12))) - (_local4 * ((_local7 * _local13) - (_local9 * _local11)))) + (_local5 * ((_local7 * _local12) - (_local8 * _local11)))));
n42 = (_local1 * (((_local2 * ((_local8 * _local13) - (_local9 * _local12))) - (_local4 * ((_local6 * _local13) - (_local9 * _local10)))) + (_local5 * ((_local6 * _local12) - (_local8 * _local10)))));
n43 = (-(_local1) * (((_local2 * ((_local7 * _local13) - (_local9 * _local11))) - (_local3 * ((_local6 * _local13) - (_local9 * _local10)))) + (_local5 * ((_local6 * _local11) - (_local7 * _local10)))));
n44 = (_local1 * (((_local2 * ((_local7 * _local12) - (_local8 * _local11))) - (_local3 * ((_local6 * _local12) - (_local8 * _local10)))) + (_local4 * ((_local6 * _local11) - (_local7 * _local10)))));
}
final public function vectorMult3x3(_arg1:Vector):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local2 = _arg1.x;
_local3 = _arg1.y;
_local4 = _arg1.z;
_arg1.x = (((_local2 * n11) + (_local3 * n12)) + (_local4 * n13));
_arg1.y = (((_local2 * n21) + (_local3 * n22)) + (_local4 * n23));
_arg1.z = (((_local2 * n31) + (_local3 * n32)) + (_local4 * n33));
}
final public function identity():void{
n11 = 1;
n12 = 0;
n13 = 0;
n14 = 0;
n21 = 0;
n22 = 1;
n23 = 0;
n24 = 0;
n31 = 0;
n32 = 0;
n33 = 1;
n34 = 0;
n41 = 0;
n42 = 0;
n43 = 0;
n44 = 1;
}
final public function axisRotation(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
identity();
_arg4 = NumberUtil.toRadian(_arg4);
_local5 = ((USE_FAST_MATH)==false) ? Math.cos(_arg4) : FastMath.cos(_arg4);
_local6 = ((USE_FAST_MATH)==false) ? Math.sin(_arg4) : FastMath.sin(_arg4);
_local7 = (1 - _local5);
_local8 = ((_arg1 * _arg2) * _local7);
_local9 = ((_arg2 * _arg3) * _local7);
_local10 = ((_arg1 * _arg3) * _local7);
_local11 = (_local6 * _arg3);
_local12 = (_local6 * _arg2);
_local13 = (_local6 * _arg1);
n11 = (_local5 + ((_arg1 * _arg1) * _local7));
n12 = (-(_local11) + _local8);
n13 = (_local12 + _local10);
n21 = (_local11 + _local8);
n22 = (_local5 + ((_arg2 * _arg2) * _local7));
n23 = (-(_local13) + _local9);
n31 = (-(_local12) + _local10);
n32 = (_local13 + _local9);
n33 = (_local5 + ((_arg3 * _arg3) * _local7));
}
final public function addMatrix(_arg1:Matrix4):void{
n11 = (n11 + _arg1.n11);
n12 = (n12 + _arg1.n12);
n13 = (n13 + _arg1.n13);
n14 = (n14 + _arg1.n14);
n21 = (n21 + _arg1.n21);
n22 = (n22 + _arg1.n22);
n23 = (n23 + _arg1.n23);
n24 = (n24 + _arg1.n24);
n31 = (n31 + _arg1.n31);
n32 = (n32 + _arg1.n32);
n33 = (n33 + _arg1.n33);
n34 = (n34 + _arg1.n34);
n41 = (n41 + _arg1.n41);
n42 = (n42 + _arg1.n42);
n43 = (n43 + _arg1.n43);
n44 = (n44 + _arg1.n44);
}
final public function scale(_arg1:Number, _arg2:Number, _arg3:Number):void{
identity();
n11 = _arg1;
n22 = _arg2;
n33 = _arg3;
}
final public function multiply4x3(_arg1:Matrix4):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
_local2 = n11;
_local3 = _arg1.n11;
_local4 = n21;
_local5 = _arg1.n21;
_local6 = n31;
_local7 = _arg1.n31;
_local8 = n12;
_local9 = _arg1.n12;
_local10 = n22;
_local11 = _arg1.n22;
_local12 = n32;
_local13 = _arg1.n32;
_local14 = n13;
_local15 = _arg1.n13;
_local16 = n23;
_local17 = _arg1.n23;
_local18 = n33;
_local19 = _arg1.n33;
_local20 = _arg1.n14;
_local21 = _arg1.n24;
_local22 = _arg1.n34;
n11 = (((_local2 * _local3) + (_local8 * _local5)) + (_local14 * _local7));
n12 = (((_local2 * _local9) + (_local8 * _local11)) + (_local14 * _local13));
n13 = (((_local2 * _local15) + (_local8 * _local17)) + (_local14 * _local19));
n14 = ((((_local20 * _local2) + (_local21 * _local8)) + (_local22 * _local14)) + n14);
n21 = (((_local4 * _local3) + (_local10 * _local5)) + (_local16 * _local7));
n22 = (((_local4 * _local9) + (_local10 * _local11)) + (_local16 * _local13));
n23 = (((_local4 * _local15) + (_local10 * _local17)) + (_local16 * _local19));
n24 = ((((_local20 * _local4) + (_local21 * _local10)) + (_local22 * _local16)) + n24);
n31 = (((_local6 * _local3) + (_local12 * _local5)) + (_local18 * _local7));
n32 = (((_local6 * _local9) + (_local12 * _local11)) + (_local18 * _local13));
n33 = (((_local6 * _local15) + (_local12 * _local17)) + (_local18 * _local19));
n34 = ((((_local20 * _local6) + (_local21 * _local12)) + (_local22 * _local18)) + n34);
n41 = (n42 = (n43 = 0));
n44 = 1;
}
final public function det3x3():Number{
return ((((n11 * ((n22 * n33) - (n23 * n32))) + (n21 * ((n32 * n13) - (n12 * n33)))) + (n31 * ((n12 * n23) - (n22 * n13)))));
}
final public function translationVector(_arg1:Vector):void{
identity();
n14 = _arg1.x;
n24 = _arg1.y;
n34 = _arg1.z;
}
final public function clone():Matrix4{
return (new Matrix4(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44));
}
final public function axisRotationVector(_arg1:Vector, _arg2:Number):void{
axisRotation(_arg1.x, _arg1.y, _arg1.z, _arg2);
}
final public function toString():String{
var _local1:String;
_local1 = ("sandy.core.data.Matrix4" + "\n (");
_local1 = (_local1 + (((((((n11 + "\t") + n12) + "\t") + n13) + "\t") + n14) + "\n"));
_local1 = (_local1 + (((((((n21 + "\t") + n22) + "\t") + n23) + "\t") + n24) + "\n"));
_local1 = (_local1 + (((((((n31 + "\t") + n32) + "\t") + n33) + "\t") + n34) + "\n"));
_local1 = (_local1 + (((((((n41 + "\t") + n42) + "\t") + n43) + "\t") + n44) + "\n)"));
return (_local1);
}
final public function copy(_arg1:Matrix4):void{
n11 = _arg1.n11;
n12 = _arg1.n12;
n13 = _arg1.n13;
n14 = _arg1.n14;
n21 = _arg1.n21;
n22 = _arg1.n22;
n23 = _arg1.n23;
n24 = _arg1.n24;
n31 = _arg1.n31;
n32 = _arg1.n32;
n33 = _arg1.n33;
n34 = _arg1.n34;
n41 = _arg1.n41;
n42 = _arg1.n42;
n43 = _arg1.n43;
n44 = _arg1.n44;
}
final public function getTranslation():Vector{
return (new Vector(n14, n24, n34));
}
public static function getEulerAngles(_arg1:Matrix4):Vector{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local2 = Math.asin(_arg1.n13);
_local3 = Math.cos(_local2);
if (Math.abs(_local3) > 0.005){
_local4 = (_arg1.n33 / _local3);
_local5 = (-(_arg1.n22) / _local3);
_local6 = Math.atan2(_local5, _local4);
_local4 = (_arg1.n11 / _local3);
_local5 = (-(_arg1.n12) / _local3);
_local7 = Math.atan2(_local5, _local4);
} else {
_local6 = 0;
_local4 = _arg1.n22;
_local5 = _arg1.n21;
_local7 = Math.atan2(_local5, _local4);
};
if (_local6 < 0){
_local6 = (_local6 + 360);
};
if (_local2 < 0){
_local2 = (_local2 + 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
return (new Vector(_local6, _local2, _local7));
}
}
}//package sandy.core.data
Section 67
//Plane (sandy.core.data.Plane)
package sandy.core.data {
public final class Plane {
public var a:Number;
public var c:Number;
public var b:Number;
public var d:Number;
public function Plane(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.a = _arg1;
this.b = _arg2;
this.c = _arg3;
this.d = _arg4;
}
public function toString():String{
return (((((((((("sandy.core.data.Plane" + "(a:") + a) + ", b:") + b) + ", c:") + c) + ", d:") + d) + ")"));
}
}
}//package sandy.core.data
Section 68
//Polygon (sandy.core.data.Polygon)
package sandy.core.data {
import flash.display.*;
import flash.events.*;
import sandy.core.scenegraph.*;
import sandy.events.*;
import sandy.materials.*;
import sandy.core.*;
import sandy.view.*;
import flash.geom.*;
import flash.utils.*;
import sandy.core.interaction.*;
import sandy.math.*;
public final class Polygon implements IDisplayable {
public const id:uint;
public var vertices:Array;
protected var m_oEB:BubbleEventBroadcaster;
public var scene:Scene3D;
protected var m_oContainer:Sprite;
public var m_nDepth:Number;
private var mouseEvents:Boolean;// = false
public var shape:Shape3D;
public var vertexNormals:Array;
public var aNeighboors:Array;
public var isClipped:Boolean;// = false
public var uvBounds:Rectangle;
public var hasAppearanceChanged:Boolean;// = false
private var m_oGeometry:Geometry3D;
public var caUVCoord:Array;
public var minZ:Number;
public var aUVCoord:Array;
private var mouseInteractivity:Boolean;// = false
public var cvertices:Array;
public var a:Vertex;
public var c:Vertex;
public var normal:Vertex;
private var m_oAppearance:Appearance;
public var b:Vertex;
public var visible:Boolean;
private var m_aUVCoords:Array;
public var aEdges:Array;
private static var _ID_:uint = 0;
public static var POLYGON_MAP:Dictionary = new Dictionary(true);
public function Polygon(_arg1:Shape3D, _arg2:Geometry3D, _arg3:Array, _arg4:Array=null, _arg5:Number=0, _arg6:uint=0){
id = _ID_++;
isClipped = false;
aNeighboors = new Array();
hasAppearanceChanged = false;
m_oEB = new BubbleEventBroadcaster();
mouseEvents = false;
mouseInteractivity = false;
super();
shape = _arg1;
m_oGeometry = _arg2;
__update(_arg3, _arg4, _arg5, _arg6);
m_oContainer = new Sprite();
POLYGON_MAP[id] = this;
}
public function createNormal():Vector{
var _local1:Vector;
var _local2:Vector;
var _local3:Vertex;
var _local4:Vertex;
var _local5:Vertex;
var _local6:Vector;
if (vertices.length > 2){
_local3 = vertices[0];
_local4 = vertices[1];
_local5 = vertices[2];
_local1 = new Vector((_local4.wx - _local3.wx), (_local4.wy - _local3.wy), (_local4.wz - _local3.wz));
_local2 = new Vector((_local4.wx - _local5.wx), (_local4.wy - _local5.wy), (_local4.wz - _local5.wz));
_local6 = VectorMath.cross(_local1, _local2);
VectorMath.normalize(_local6);
return (_local6);
};
return (new Vector());
}
public function toString():String{
return ((((("sandy.core.data.Polygon::id=" + id) + " [Points: ") + vertices.length) + "]"));
}
public function set depth(_arg1:Number):void{
m_nDepth = _arg1;
}
public function get container():Sprite{
return (m_oContainer);
}
protected function _onTextureInteraction(_arg1:Event=null):void{
var _local2:Point;
var _local3:UVCoord;
if ((((_arg1 == null)) || (!((_arg1 is MouseEvent))))){
_arg1 = new MouseEvent(MouseEvent.MOUSE_MOVE, true, false, 0, 0, null, false, false, false, false, 0);
};
_local2 = new Point(scene.container.mouseX, scene.container.mouseY);
_local3 = getUVFrom2D(_local2);
VirtualMouse.getInstance().interactWithTexture(this, _local3, (_arg1 as MouseEvent));
_onInteraction(_arg1);
}
public function swapCulling():void{
normal.negate();
}
public function get3DFrom2D(_arg1:Point):Vector{
var _local2:Matrix;
var _local3:Number;
var _local4:Number;
var _local5:Vector;
_local2 = new Matrix((vertices[1].sx - vertices[0].sx), (vertices[2].sx - vertices[0].sx), (vertices[1].sy - vertices[0].sy), (vertices[2].sy - vertices[0].sy), 0, 0);
_local2.invert();
_local3 = ((_local2.a * (_arg1.x - vertices[0].sx)) + (_local2.b * (_arg1.y - vertices[0].sy)));
_local4 = ((_local2.c * (_arg1.x - vertices[0].sx)) + (_local2.d * (_arg1.y - vertices[0].sy)));
_local5 = new Vector(((vertices[0].x + (_local3 * (vertices[1].x - vertices[0].x))) + (_local4 * (vertices[2].x - vertices[0].x))), ((vertices[0].y + (_local3 * (vertices[1].y - vertices[0].y))) + (_local4 * (vertices[2].y - vertices[0].y))), ((vertices[0].z + (_local3 * (vertices[1].z - vertices[0].z))) + (_local4 * (vertices[2].z - vertices[0].z))));
this.shape.matrix.vectorMult(_local5);
return (_local5);
}
private function __update(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint):void{
var _local5:int;
var _local6:int;
var _local7:*;
var _local8:uint;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:*;
var _local14:UVCoord;
var _local15:Vector;
var _local16:Number;
var _local17:Edge3D;
_local5 = 0;
vertexNormals = new Array();
vertices = new Array();
for each (_local7 in _arg1) {
vertices[_local5] = Vertex(m_oGeometry.aVertex[_arg1[_local5]]);
vertexNormals[_local5] = m_oGeometry.aVertexNormals[_arg1[_local5]];
_local5++;
};
a = vertices[0];
b = vertices[1];
c = vertices[2];
if (_arg2){
_local9 = Number.POSITIVE_INFINITY;
_local10 = Number.POSITIVE_INFINITY;
_local11 = Number.NEGATIVE_INFINITY;
_local12 = Number.NEGATIVE_INFINITY;
aUVCoord = new Array();
_local5 = 0;
for each (_local13 in _arg2) {
_local14 = UVCoord(m_oGeometry.aUVCoords[_arg2[_local5]]);
aUVCoord[_local5] = _local14;
if (_local14.u < _local9){
_local9 = _local14.u;
} else {
if (_local14.u > _local11){
_local11 = _local14.u;
};
};
if (_local14.v < _local10){
_local10 = _local14.v;
} else {
if (_local14.v > _local12){
_local12 = _local14.v;
};
};
_local5++;
};
uvBounds = new Rectangle(_local9, _local10, (_local11 - _local9), (_local12 - _local10));
};
normal = Vertex(m_oGeometry.aFacesNormals[_arg3]);
if (normal == null){
_local15 = createNormal();
_local16 = m_oGeometry.setFaceNormal(m_oGeometry.getNextFaceNormalID(), _local15.x, _local15.y, _local15.z);
normal = Vertex(m_oGeometry.aFacesNormals[_local16]);
};
aEdges = new Array();
for each (_local8 in m_oGeometry.aFaceEdges[_arg4]) {
_local17 = m_oGeometry.aEdges[_local8];
_local17.vertex1 = m_oGeometry.aVertex[_local17.vertexId1];
_local17.vertex2 = m_oGeometry.aVertex[_local17.vertexId2];
aEdges.push(_local17);
};
}
public function clipFrontPlane(_arg1:Frustum):Array{
isClipped = true;
cvertices = null;
cvertices = vertices.concat();
if (vertices.length < 3){
_arg1.clipLineFrontPlane(cvertices);
} else {
caUVCoord = null;
caUVCoord = aUVCoord.concat();
_arg1.clipFrontPlane(cvertices, caUVCoord);
};
return (cvertices);
}
public function get broadcaster():BubbleEventBroadcaster{
return (m_oEB);
}
public function get enableInteractivity():Boolean{
return (mouseInteractivity);
}
protected function _startMouseInteraction(_arg1:MouseEvent=null):void{
container.addEventListener(MouseEvent.CLICK, _onTextureInteraction);
container.addEventListener(MouseEvent.MOUSE_UP, _onTextureInteraction);
container.addEventListener(MouseEvent.MOUSE_DOWN, _onTextureInteraction);
container.addEventListener(MouseEvent.DOUBLE_CLICK, _onTextureInteraction);
container.addEventListener(MouseEvent.MOUSE_MOVE, _onTextureInteraction);
container.addEventListener(MouseEvent.MOUSE_OVER, _onTextureInteraction);
container.addEventListener(MouseEvent.MOUSE_OUT, _onTextureInteraction);
container.addEventListener(MouseEvent.MOUSE_WHEEL, _onTextureInteraction);
container.addEventListener(KeyboardEvent.KEY_DOWN, _onTextureInteraction);
container.addEventListener(KeyboardEvent.KEY_UP, _onTextureInteraction);
m_oContainer.addEventListener(Event.ENTER_FRAME, _onTextureInteraction);
}
public function precompute():void{
minZ = a.wz;
if (b.wz < minZ){
minZ = b.wz;
};
if (c != null){
if (c.wz < minZ){
minZ = c.wz;
};
m_nDepth = (0.333 * ((a.wz + b.wz) + c.wz));
} else {
m_nDepth = (0.5 * (a.wz + b.wz));
};
}
protected function _onInteraction(_arg1:Event):void{
var _local2:Point;
var _local3:UVCoord;
var _local4:Vector;
_local2 = new Point(m_oContainer.mouseX, m_oContainer.mouseY);
_local3 = getUVFrom2D(_local2);
_local4 = get3DFrom2D(_local2);
m_oEB.broadcastEvent(new Shape3DEvent(_arg1.type, shape, this, _local3, _local4, _arg1));
}
public function get depth():Number{
return (m_nDepth);
}
public function removeEventListener(_arg1:String, _arg2):void{
m_oEB.removeEventListener(_arg1, _arg2);
}
public function addEventListener(_arg1:String, _arg2):void{
m_oEB.addEventListener.apply(m_oEB, arguments);
}
public function set appearance(_arg1:Appearance):void{
if (scene){
if (scene.materialManager.isRegistered(m_oAppearance.frontMaterial)){
scene.materialManager.unregister(m_oAppearance.frontMaterial);
};
if (scene.materialManager.isRegistered(m_oAppearance.backMaterial)){
scene.materialManager.unregister(m_oAppearance.backMaterial);
};
};
if (m_oAppearance){
_arg1.frontMaterial.unlink(this);
if (_arg1.backMaterial != _arg1.frontMaterial){
_arg1.backMaterial.unlink(this);
};
};
m_oAppearance = _arg1;
_arg1.frontMaterial.init(this);
if (_arg1.backMaterial != _arg1.frontMaterial){
_arg1.backMaterial.init(this);
};
hasAppearanceChanged = true;
}
public function display(_arg1:Scene3D, _arg2:Sprite=null):void{
var _local3:Sprite;
scene = _arg1;
_local3 = (_arg2) ? _arg2 : m_oContainer;
if (visible){
m_oAppearance.frontMaterial.renderPolygon(_arg1, this, _local3);
} else {
m_oAppearance.backMaterial.renderPolygon(_arg1, this, _local3);
};
}
public function clear():void{
m_oContainer.graphics.clear();
}
public function clip(_arg1:Frustum):Array{
isClipped = true;
if (vertices.length < 3){
clipFrontPlane(_arg1);
} else {
cvertices = null;
caUVCoord = null;
cvertices = vertices.concat();
caUVCoord = aUVCoord.concat();
_arg1.clipFrustum(cvertices, caUVCoord);
};
return (cvertices);
}
public function getUVFrom2D(_arg1:Point):UVCoord{
var _local2:Point;
var _local3:Point;
var _local4:Point;
var _local5:UVCoord;
var _local6:UVCoord;
var _local7:UVCoord;
var _local8:Point;
var _local9:Point;
var _local10:Point;
var _local11:Point;
var _local12:Point;
var _local13:Point;
var _local14:Point;
var _local15:Point;
var _local16:Number;
var _local17:Number;
_local2 = new Point(vertices[0].sx, vertices[0].sy);
_local3 = new Point(vertices[1].sx, vertices[1].sy);
_local4 = new Point(vertices[2].sx, vertices[2].sy);
_local5 = aUVCoord[0];
_local6 = aUVCoord[1];
_local7 = aUVCoord[2];
_local8 = new Point((_local3.x - _local2.x), (_local3.y - _local2.y));
_local9 = _local8.clone();
_local9.normalize(1);
_local10 = new Point((_local4.x - _local2.x), (_local4.y - _local2.y));
_local11 = _local10.clone();
_local11.normalize(1);
_local12 = new Point((_arg1.x - _local8.x), (_arg1.y - _local8.y));
_local13 = IntersectionMath.intersectionLine2D(_local2, _local4, _arg1, _local12);
_local14 = new Point((_local13.x - _local2.x), (_local13.y - _local2.y));
_local15 = new Point((_arg1.x - _local13.x), (_arg1.y - _local13.y));
_local16 = (_local15.length / _local8.length);
_local17 = (_local14.length / _local10.length);
return (new UVCoord(((_local5.u + (_local16 * (_local6.u - _local5.u))) + (_local17 * (_local7.u - _local5.u))), ((_local5.v + (_local16 * (_local6.v - _local5.v))) + (_local17 * (_local7.v - _local5.v)))));
}
protected function _stopMouseInteraction(_arg1:MouseEvent=null):void{
container.removeEventListener(MouseEvent.CLICK, _onTextureInteraction);
container.removeEventListener(MouseEvent.MOUSE_UP, _onTextureInteraction);
container.removeEventListener(MouseEvent.MOUSE_DOWN, _onTextureInteraction);
container.removeEventListener(MouseEvent.DOUBLE_CLICK, _onTextureInteraction);
container.removeEventListener(MouseEvent.MOUSE_MOVE, _onTextureInteraction);
container.removeEventListener(MouseEvent.MOUSE_OVER, _onTextureInteraction);
container.removeEventListener(MouseEvent.MOUSE_OUT, _onTextureInteraction);
container.removeEventListener(MouseEvent.MOUSE_WHEEL, _onTextureInteraction);
m_oContainer.removeEventListener(Event.ENTER_FRAME, _onTextureInteraction);
container.removeEventListener(KeyboardEvent.KEY_DOWN, _onTextureInteraction);
container.removeEventListener(KeyboardEvent.KEY_UP, _onTextureInteraction);
}
public function set enableInteractivity(_arg1:Boolean):void{
if (_arg1 != mouseInteractivity){
if (_arg1){
container.addEventListener(MouseEvent.ROLL_OVER, _startMouseInteraction, false);
container.addEventListener(MouseEvent.ROLL_OUT, _stopMouseInteraction, false);
} else {
_stopMouseInteraction();
};
mouseInteractivity = _arg1;
};
}
public function get appearance():Appearance{
return (m_oAppearance);
}
public function set enableEvents(_arg1:Boolean):void{
if (((_arg1) && (!(mouseEvents)))){
container.addEventListener(MouseEvent.CLICK, _onInteraction);
container.addEventListener(MouseEvent.MOUSE_UP, _onInteraction);
container.addEventListener(MouseEvent.MOUSE_DOWN, _onInteraction);
container.addEventListener(MouseEvent.ROLL_OVER, _onInteraction);
container.addEventListener(MouseEvent.ROLL_OUT, _onInteraction);
container.addEventListener(MouseEvent.DOUBLE_CLICK, _onInteraction);
container.addEventListener(MouseEvent.MOUSE_MOVE, _onInteraction);
container.addEventListener(MouseEvent.MOUSE_OVER, _onInteraction);
container.addEventListener(MouseEvent.MOUSE_OUT, _onInteraction);
container.addEventListener(MouseEvent.MOUSE_WHEEL, _onInteraction);
} else {
if (((!(_arg1)) && (mouseEvents))){
container.removeEventListener(MouseEvent.CLICK, _onInteraction);
container.removeEventListener(MouseEvent.MOUSE_UP, _onInteraction);
container.removeEventListener(MouseEvent.MOUSE_DOWN, _onInteraction);
container.removeEventListener(MouseEvent.ROLL_OVER, _onInteraction);
container.removeEventListener(MouseEvent.ROLL_OUT, _onInteraction);
container.removeEventListener(MouseEvent.DOUBLE_CLICK, _onInteraction);
container.removeEventListener(MouseEvent.MOUSE_MOVE, _onInteraction);
container.removeEventListener(MouseEvent.MOUSE_OVER, _onInteraction);
container.removeEventListener(MouseEvent.MOUSE_OUT, _onInteraction);
container.removeEventListener(MouseEvent.MOUSE_WHEEL, _onInteraction);
};
};
mouseEvents = _arg1;
}
public function destroy():void{
clear();
if (m_oContainer.parent){
m_oContainer.parent.removeChild(m_oContainer);
};
if (m_oContainer){
m_oContainer = null;
};
cvertices = null;
vertices = null;
m_oEB = null;
delete POLYGON_MAP[id];
}
public function get enableEvents():Boolean{
return (mouseEvents);
}
}
}//package sandy.core.data
Section 69
//UVCoord (sandy.core.data.UVCoord)
package sandy.core.data {
public final class UVCoord {
public var u:Number;
public var v:Number;
public function UVCoord(_arg1:Number=0, _arg2:Number=0){
u = _arg1;
v = _arg2;
}
public function sub(_arg1:UVCoord):void{
u = (u - _arg1.u);
v = (v - _arg1.v);
}
public function length():Number{
return (Math.sqrt(((u * u) + (v * v))));
}
public function add(_arg1:UVCoord):void{
u = (u + _arg1.u);
v = (v + _arg1.v);
}
public function normalize():void{
var _local1:Number;
_local1 = length();
u = (u / _local1);
v = (v / _local1);
}
public function scale(_arg1:Number):void{
u = (u * _arg1);
v = (v * _arg1);
}
public function toString():String{
return (((((("sandy.core.data.UVCoord" + "(u:") + u) + ", v:") + v) + ")"));
}
public function copy(_arg1:UVCoord):void{
u = _arg1.u;
v = _arg1.v;
}
public function clone():UVCoord{
return (new UVCoord(u, v));
}
}
}//package sandy.core.data
Section 70
//Vector (sandy.core.data.Vector)
package sandy.core.data {
import sandy.util.*;
public final class Vector {
public var y:Number;
public var x:Number;
public var z:Number;
public function Vector(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){
x = _arg1;
y = _arg2;
z = _arg3;
}
final public function sub(_arg1:Vector):void{
x = (x - _arg1.x);
y = (y - _arg1.y);
z = (z - _arg1.z);
}
final public function negate():Vector{
return (new Vector(-(x), -(y), -(z)));
}
final public function deserialize(_arg1:String):void{
var _local2:Array;
_local2 = _arg1.split(",");
if (_local2.length != 3){
trace(("Unexpected length of string to deserialize into a vector " + _arg1));
};
x = _local2[0];
y = _local2[1];
z = _local2[2];
}
final public function dot(_arg1:Vector):Number{
return ((((x * _arg1.x) + (y * _arg1.y)) + (z * _arg1.z)));
}
final public function scale(_arg1:Number):void{
x = (x * _arg1);
y = (y * _arg1);
z = (z * _arg1);
}
public function resetToPositiveInfinity():void{
x = (y = (z = Number.POSITIVE_INFINITY));
}
final public function normalize():void{
var _local1:Number;
_local1 = getNorm();
if ((((_local1 == 0)) || ((_local1 == 1)))){
return;
};
x = (x / _local1);
y = (y / _local1);
z = (z / _local1);
}
public function resetToNegativeInfinity():void{
x = (y = (z = Number.NEGATIVE_INFINITY));
}
final public function cross(_arg1:Vector):Vector{
return (new Vector(((y * _arg1.z) - (z * _arg1.y)), ((z * _arg1.x) - (x * _arg1.z)), ((x * _arg1.y) - (y * _arg1.x))));
}
final public function getMinComponent():Number{
return (Math.min(x, Math.min(y, z)));
}
public function reset(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):void{
x = _arg1;
y = _arg2;
z = _arg3;
}
final public function pow(_arg1:Number):void{
x = Math.pow(x, _arg1);
y = Math.pow(y, _arg1);
z = Math.pow(z, _arg1);
}
final public function clone():Vector{
var _local1:Vector;
_local1 = new Vector(x, y, z);
return (_local1);
}
final public function serialize(_arg1:Number=0):String{
if (_arg1 == 0){
_arg1 = 0.01;
};
return (((((NumberUtil.roundTo(x, _arg1) + ",") + NumberUtil.roundTo(y, _arg1)) + ",") + NumberUtil.roundTo(z, _arg1)));
}
final public function add(_arg1:Vector):void{
x = (x + _arg1.x);
y = (y + _arg1.y);
z = (z + _arg1.z);
}
final public function getAngle(_arg1:Vector):Number{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local2 = getNorm();
_local3 = _arg1.getNorm();
_local4 = (_local2 * _local3);
if (_local4 == 0){
return (0);
};
_local5 = (dot(_arg1) / _local4);
_local6 = (1 - (_local5 * _local5));
if (_local6 < 0){
trace((" wrong " + _local5));
_local6 = 0;
};
return (Math.atan2(Math.sqrt(_local6), _local5));
}
final public function toString(_arg1:Number=0):String{
if (_arg1 == 0){
_arg1 = 0.01;
};
return ((((((("{" + NumberUtil.roundTo(x, _arg1)) + ", ") + NumberUtil.roundTo(y, _arg1)) + ", ") + NumberUtil.roundTo(z, _arg1)) + "}"));
}
final public function getMaxComponent():Number{
return (Math.max(x, Math.max(y, z)));
}
final public function getNorm():Number{
return (Math.sqrt((((x * x) + (y * y)) + (z * z))));
}
final public function copy(_arg1:Vector):void{
x = _arg1.x;
y = _arg1.y;
z = _arg1.z;
}
final public function equals(_arg1:Vector):Boolean{
return ((((((_arg1.x == x)) && ((_arg1.y == y)))) && ((_arg1.z == z))));
}
}
}//package sandy.core.data
Section 71
//Vertex (sandy.core.data.Vertex)
package sandy.core.data {
import sandy.util.*;
public final class Vertex {
public const id:uint;
private const m_oWorld:Vector;
public var aFaces:Array;
public var wx:Number;
public var wy:Number;
public var wz:Number;
public var sx:Number;
public var sy:Number;
public var nbFaces:uint;// = 0
public var x:Number;
public var y:Number;
public var z:Number;
public var projected:Boolean;
private static var ID:uint = 0;
public function Vertex(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, ... _args){
id = ID++;
nbFaces = 0;
aFaces = new Array();
m_oWorld = new Vector();
super();
x = _arg1;
y = _arg2;
z = _arg3;
wx = (_args[0]) ? _args[0] : x;
wy = (_args[1]) ? _args[1] : y;
wz = (_args[2]) ? _args[2] : z;
sy = (sx = 0);
}
final public function getVector():Vector{
return (new Vector(x, y, z));
}
final public function deserialize(_arg1:String):void{
var _local2:Array;
_local2 = _arg1.split(",");
if (_local2.length != 9){
trace(("Unexpected length of string to deserialize into a vector " + _arg1));
};
x = _local2[0];
y = _local2[1];
z = _local2[2];
wx = _local2[3];
wy = _local2[4];
wz = _local2[5];
sx = _local2[6];
sy = _local2[7];
}
final public function negate():void{
x = -(x);
y = -(y);
z = -(z);
wx = -(wx);
wy = -(wy);
wz = -(wz);
}
final public function normalize():void{
var _local1:Number;
_local1 = getNorm();
if ((((_local1 == 0)) || ((_local1 == 1)))){
return;
};
x = (x / _local1);
y = (y / _local1);
z = (z / _local1);
wx = (wx / _local1);
wy = (wy / _local1);
wz = (wz / _local1);
}
public function getScreenPoint():Vector{
return (new Vector(sx, sy, wz));
}
final public function dot(_arg1:Vertex):Number{
return ((((x * _arg1.x) + (y * _arg1.y)) + (z * _arg1.z)));
}
final public function scale(_arg1:Number):void{
x = (x * _arg1);
y = (y * _arg1);
z = (z * _arg1);
wx = (wx * _arg1);
wy = (wy * _arg1);
wz = (wz * _arg1);
}
final public function getNorm():Number{
return (Math.sqrt((((x * x) + (y * y)) + (z * z))));
}
final public function getWorldVector():Vector{
m_oWorld.x = wx;
m_oWorld.y = wy;
m_oWorld.z = wz;
return (m_oWorld);
}
public function sub(_arg1:Vertex):void{
x = (x - _arg1.x);
y = (y - _arg1.y);
z = (z - _arg1.z);
wx = (wx - _arg1.wx);
wy = (wy - _arg1.wy);
wz = (wz - _arg1.wz);
}
final public function clone():Vertex{
var _local1:Vertex;
_local1 = new Vertex(x, y, z);
_local1.wx = wx;
_local1.sx = sx;
_local1.wy = wy;
_local1.sy = sy;
_local1.wz = wz;
_local1.nbFaces = nbFaces;
_local1.aFaces = aFaces.concat();
return (_local1);
}
final public function pow(_arg1:Number):void{
x = Math.pow(x, _arg1);
y = Math.pow(y, _arg1);
z = Math.pow(z, _arg1);
wx = Math.pow(wx, _arg1);
wy = Math.pow(wy, _arg1);
wz = Math.pow(wz, _arg1);
}
final public function serialize(_arg1:Number=0):String{
if (_arg1 == 0){
_arg1 = 0.01;
};
return (((((((((((((((NumberUtil.roundTo(x, _arg1) + ",") + NumberUtil.roundTo(y, _arg1)) + ",") + NumberUtil.roundTo(z, _arg1)) + ",") + NumberUtil.roundTo(wx, _arg1)) + ",") + NumberUtil.roundTo(wy, _arg1)) + ",") + NumberUtil.roundTo(wz, _arg1)) + ",") + NumberUtil.roundTo(sx, _arg1)) + ",") + NumberUtil.roundTo(sy, _arg1)));
}
final public function getAngle(_arg1:Vertex):Number{
var _local2:Number;
var _local3:Number;
_local2 = (dot(_arg1) / (getNorm() * _arg1.getNorm()));
_local3 = (1 - (_local2 * _local2));
if (_local3 < 0){
trace((" wrong " + _local2));
_local3 = 0;
};
return (Math.atan2(Math.sqrt(_local3), _local2));
}
final public function add(_arg1:Vertex):void{
x = (x + _arg1.x);
y = (y + _arg1.y);
z = (z + _arg1.z);
wx = (wx + _arg1.wx);
wy = (wy + _arg1.wy);
wz = (wz + _arg1.wz);
}
final public function equals(_arg1:Vertex):Boolean{
return (Boolean((((((((((((((((_arg1.x == x)) && ((_arg1.y == y)))) && ((_arg1.z == z)))) && ((_arg1.wx == wx)))) && ((_arg1.wy == wy)))) && ((_arg1.wz == wz)))) && ((_arg1.sx == wx)))) && ((_arg1.sy == sy)))));
}
final public function cross(_arg1:Vertex):Vertex{
return (new Vertex(((y * _arg1.z) - (z * _arg1.y)), ((z * _arg1.x) - (x * _arg1.z)), ((x * _arg1.y) - (y * _arg1.x))));
}
final public function clone2():Vertex{
return (new Vertex(wx, wy, wz));
}
final public function toString(_arg1:Number=0):String{
if (_arg1 == 0){
_arg1 = 0.01;
};
return ((((((((((((((((("{" + NumberUtil.roundTo(x, _arg1)) + ", ") + NumberUtil.roundTo(y, _arg1)) + ", ") + NumberUtil.roundTo(z, _arg1)) + ", ") + NumberUtil.roundTo(wx, _arg1)) + ", ") + NumberUtil.roundTo(wy, _arg1)) + ", ") + NumberUtil.roundTo(wz, _arg1)) + ", ") + NumberUtil.roundTo(sx, _arg1)) + ", ") + NumberUtil.roundTo(sy, _arg1)) + "}"));
}
final public function copy(_arg1:Vertex):void{
x = _arg1.x;
y = _arg1.y;
z = _arg1.z;
wx = _arg1.wx;
wy = _arg1.wy;
wz = _arg1.wz;
sx = _arg1.sx;
sy = _arg1.sy;
}
public static function createFromVector(_arg1:Vector):Vertex{
return (new Vertex(_arg1.x, _arg1.y, _arg1.z));
}
}
}//package sandy.core.data
Section 72
//TextLink (sandy.core.interaction.TextLink)
package sandy.core.interaction {
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
public class TextLink {
private var __sTarget:String;
private var __sHRef:String;
public var width:Number;
private var __tfOwner:TextField;
private var __iOpenIndex:int;
private var __iCloseIndex:int;
private var __rBounds:Rectangle;
public var height:Number;
public var x:Number;
public var y:Number;
public static var textLinks:Dictionary;
public function TextLink(){
x = 0;
y = 0;
height = 0;
width = 0;
}
public function get href():String{
return (__sHRef);
}
public function get closeIndex():int{
return (__iCloseIndex);
}
public function get target():String{
return (__sTarget);
}
public function set href(_arg1:String):void{
__sHRef = _arg1;
}
public function set openIndex(_arg1:int):void{
__iOpenIndex = _arg1;
}
public function set target(_arg1:String):void{
__sTarget = _arg1;
}
public function set owner(_arg1:TextField):void{
__tfOwner = _arg1;
}
public function get openIndex():int{
return (__iOpenIndex);
}
public function getBounds():Rectangle{
return (__rBounds);
}
protected function _init():void{
var _local1:Number;
var _local2:Rectangle;
_local1 = 0;
while (_local1 < (__iCloseIndex - __iOpenIndex)) {
_local2 = __tfOwner.getCharBoundaries((openIndex + _local1));
if (_local1 == 0){
x = _local2.x;
y = _local2.y;
};
width = (width + _local2.width);
height = ((height < _local2.height)) ? _local2.height : height;
_local1++;
};
__rBounds = new Rectangle();
__rBounds.x = x;
__rBounds.y = y;
__rBounds.height = height;
__rBounds.width = width;
}
public function set closeIndex(_arg1:int):void{
__iCloseIndex = _arg1;
}
public function get owner():TextField{
return (__tfOwner);
}
public static function getTextLinks(_arg1:TextField, _arg2:Boolean=false):Array{
var _local3:String;
var _local4:RegExp;
var _local5:RegExp;
var _local6:RegExp;
var _local7:RegExp;
var _local8:RegExp;
var _local9:RegExp;
var _local10:Object;
var _local11:TextLink;
var _local12:String;
var _local13:String;
if (!_arg1.htmlText){
return (null);
};
if (!textLinks){
textLinks = new Dictionary();
};
if (((textLinks[_arg1]) && (!(_arg2)))){
return (textLinks[_arg1]);
};
textLinks[_arg1] = new Array();
_local3 = _arg1.htmlText;
_local4 = /href=['"].*?['"]/i;
_local5 = /target=['"].*?['"]/i;
_local6 = /<A.*?A>/i;
_local7 = /<A.*?\>/i;
_local8 = /<\/A>/i;
_local9 = /<[^A][^\/A].*?>/gi;
_local3 = _local3.replace(_local9, "");
_local10 = _local6.exec(_local3);
while (_local10 != null) {
_local11 = new (TextLink);
_local11.owner = _arg1;
textLinks[_arg1].push(_local11);
_local12 = _local10[0].match(_local4);
_local11.href = _local12.substring(6, (_local12.length - 1));
_local13 = _local10[0].match(_local5);
_local11.target = _local13.substring(8, (_local13.length - 1));
_local11.openIndex = _local3.search(_local7);
_local3 = _local3.replace(_local7, "");
_local11.closeIndex = _local3.search(_local8);
_local3 = _local3.replace(_local8, "");
_local11._init();
_local10 = _local6.exec(_local3);
};
return (textLinks[_arg1]);
}
}
}//package sandy.core.interaction
Section 73
//VirtualMouse (sandy.core.interaction.VirtualMouse)
package sandy.core.interaction {
import sandy.core.data.*;
import flash.display.*;
import flash.events.*;
import sandy.materials.*;
import flash.geom.*;
import flash.text.*;
public class VirtualMouse extends EventDispatcher {
private var m_ioOldTarget:Sprite;
private var lastDownTarget:InteractiveObject;
private var lastWithinStage:Boolean;// = true
private var _lastEvent:Event;
private var m_ioTarget:Sprite;
private var lastLocation:Point;
private var location:Point;
private static var _oI:VirtualMouse;
public function VirtualMouse(_arg1:PrivateConstructorAccess){
lastWithinStage = true;
super();
location = new Point(0, 0);
lastLocation = location.clone();
}
public function interactWithTexture(_arg1:Polygon, _arg2:UVCoord, _arg3:MouseEvent):void{
var _local4:MovieMaterial;
var _local5:Array;
var _local6:Sprite;
var _local7:DisplayObject;
var _local8:int;
var _local9:Point;
var _local10:Point;
var _local11:Boolean;
_local4 = ((_arg1.visible) ? _arg1.appearance.frontMaterial : _arg1.appearance.backMaterial as MovieMaterial);
if (_local4 == null){
return;
};
m_ioTarget = _local4.movie;
location = new Point((_arg2.u * _local4.texture.width), (_arg2.v * _local4.texture.height));
_local5 = m_ioTarget.getObjectsUnderPoint(m_ioTarget.localToGlobal(location));
_local8 = _local5.length;
while (--_local8 > -1) {
_local7 = _local5[_local8];
while (_local7) {
if (((_local6) && ((_local7 is SimpleButton)))){
_local6 = null;
} else {
if (((((_local6) && ((_local7 is DisplayObjectContainer)))) && (!(DisplayObjectContainer(_local7).mouseChildren)))){
_local6 = null;
};
};
if (((((!(_local6)) && ((_local7 is DisplayObjectContainer)))) && (DisplayObjectContainer(_local7).mouseEnabled))){
_local6 = (_local7 as Sprite);
};
_local7 = _local7.parent;
};
};
if (!_local6){
_local6 = m_ioTarget;
};
if (!m_ioOldTarget){
_local6.stage;
};
_local9 = _arg1.container.globalToLocal(location);
_local10 = _local6.globalToLocal(location);
if (((!((lastLocation.x == location.x))) || (!((lastLocation.y == location.y))))){
_local11 = Boolean((((((((location.x >= 0)) && ((location.y >= 0)))) && ((location.x <= _arg1.container.stage.stageWidth)))) && ((location.y <= _arg1.container.stage.stageHeight))));
if (((!(_local11)) && (lastWithinStage))){
_lastEvent = new MouseEvent(Event.MOUSE_LEAVE, false, false);
_arg1.container.stage.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
};
if (_local11){
_lastEvent = new MouseEvent(Event.MOUSE_LEAVE, false, false);
_local6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
};
lastWithinStage = _local11;
};
if (_local6 != m_ioOldTarget){
_lastEvent = new MouseEvent(MouseEvent.MOUSE_OUT, true, false, _local9.x, _local9.y, _local6, _arg3.ctrlKey, _arg3.altKey, _arg3.shiftKey, _arg3.buttonDown, _arg3.delta);
m_ioTarget.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
_lastEvent = new MouseEvent(MouseEvent.ROLL_OUT, false, false, _local9.x, _local9.y, _local6, _arg3.ctrlKey, _arg3.altKey, _arg3.shiftKey, _arg3.buttonDown, _arg3.delta);
m_ioTarget.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
_lastEvent = new MouseEvent(MouseEvent.MOUSE_OVER, true, false, _local10.x, _local10.y, m_ioOldTarget, _arg3.ctrlKey, _arg3.altKey, _arg3.shiftKey, _arg3.buttonDown, _arg3.delta);
_local6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
_lastEvent = new MouseEvent(MouseEvent.ROLL_OVER, false, false, _local10.x, _local10.y, m_ioOldTarget, _arg3.ctrlKey, _arg3.altKey, _arg3.shiftKey, _arg3.buttonDown, _arg3.delta);
_local6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
};
if (_arg3.type == MouseEvent.MOUSE_DOWN){
_lastEvent = new MouseEvent(MouseEvent.MOUSE_DOWN, true, false, _local10.x, _local10.y, _local6, _arg3.ctrlKey, _arg3.altKey, _arg3.shiftKey, _arg3.buttonDown, _arg3.delta);
_local6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
lastDownTarget = _local6;
} else {
if (_arg3.type == MouseEvent.MOUSE_UP){
_lastEvent = new MouseEvent(MouseEvent.MOUSE_UP, true, false, _local10.x, _local10.y, _local6, _arg3.ctrlKey, _arg3.altKey, _arg3.shiftKey, _arg3.buttonDown, _arg3.delta);
_local6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
} else {
if (_arg3.type == MouseEvent.CLICK){
_lastEvent = new MouseEvent(MouseEvent.CLICK, true, false, _local10.x, _local10.y, _local6, _arg3.ctrlKey, _arg3.altKey, _arg3.shiftKey, _arg3.buttonDown, _arg3.delta);
_local6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
lastDownTarget = null;
} else {
if ((((_arg3.type == MouseEvent.DOUBLE_CLICK)) && (_local6.doubleClickEnabled))){
_lastEvent = new MouseEvent(MouseEvent.DOUBLE_CLICK, true, false, _local10.x, _local10.y, _local6, _arg3.ctrlKey, _arg3.altKey, _arg3.shiftKey, _arg3.buttonDown, _arg3.delta);
_local6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
};
};
};
};
lastLocation = location.clone();
m_ioOldTarget = _local6;
}
private function _checkLinks(_arg1:TextField):void{
var _local2:Point;
var _local3:Array;
var _local4:Number;
var _local5:Number;
_local2 = _arg1.globalToLocal(location);
_local3 = TextLink.getTextLinks(_arg1);
_local4 = _local3.length;
_local5 = 0;
while (_local5 < _local4) {
if (((_local3[_local5] as TextLink).getBounds() as Rectangle).containsPoint(_local2)){
};
_local5++;
};
}
public static function getInstance():VirtualMouse{
if (!_oI){
_oI = new VirtualMouse(new PrivateConstructorAccess());
};
return (_oI);
}
}
}//package sandy.core.interaction
class PrivateConstructorAccess {
private function PrivateConstructorAccess(){
}
}
Section 74
//Light3D (sandy.core.light.Light3D)
package sandy.core.light {
import sandy.core.data.*;
import flash.events.*;
import sandy.events.*;
import sandy.util.*;
public class Light3D extends EventDispatcher {
private var _dir:Vector;
private var _nPower:Number;
private var _color:uint;
private var _power:Number;
public static var MAX_POWER:Number = 150;
public function Light3D(_arg1:Vector, _arg2:Number){
_dir = _arg1;
_dir.normalize();
setPower(_arg2);
}
public function setPower(_arg1:Number):void{
_power = NumberUtil.constrain(_arg1, 0, Light3D.MAX_POWER);
_nPower = (_power / Light3D.MAX_POWER);
dispatchEvent(new SandyEvent(SandyEvent.LIGHT_UPDATED));
}
public function destroy():void{
}
public function getPower():Number{
return (_power);
}
public function set color(_arg1:uint):void{
_color = _arg1;
dispatchEvent(new SandyEvent(SandyEvent.LIGHT_COLOR_CHANGED));
}
public function getNormalizedPower():Number{
return (_nPower);
}
public function setDirectionVector(_arg1:Vector):void{
_dir = _arg1;
_dir.normalize();
dispatchEvent(new SandyEvent(SandyEvent.LIGHT_UPDATED));
}
public function get color():uint{
return (_color);
}
public function calculate(_arg1:Vector):Number{
var _local2:Number;
_local2 = _dir.dot(_arg1);
_local2 = -(_local2);
if (_local2 < 0){
_local2 = 0;
};
return ((_nPower * _local2));
}
public function getDirectionVector():Vector{
return (_dir);
}
public function setDirection(_arg1:Number, _arg2:Number, _arg3:Number):void{
_dir.x = _arg1;
_dir.y = _arg2;
_dir.z = _arg3;
_dir.normalize();
dispatchEvent(new SandyEvent(SandyEvent.LIGHT_UPDATED));
}
}
}//package sandy.core.light
Section 75
//ATransformable (sandy.core.scenegraph.ATransformable)
package sandy.core.scenegraph {
import sandy.core.data.*;
import sandy.core.*;
public class ATransformable extends Node {
private var _nYaw:Number;
private var _nRoll:Number;
private var _vLookatDown:Vector;
private var m_oMatrix:Matrix4;
protected var _oScale:Vector;
private var _nTilt:Number;
protected var m_oPreviousOffsetRotation:Vector;
private var _vRotation:Vector;
protected var m_tmpMt:Matrix4;
protected var _vOut:Vector;
public var disable:Boolean;// = false
protected var _vSide:Vector;
protected var _p:Vector;
protected var _vUp:Vector;
public function ATransformable(_arg1:String=""){
disable = false;
m_oPreviousOffsetRotation = new Vector();
super(_arg1);
initFrame();
_p = new Vector();
_oScale = new Vector(1, 1, 1);
_vRotation = new Vector(0, 0, 0);
_vLookatDown = new Vector(1E-11, -1, 0);
_nRoll = 0;
_nTilt = 0;
_nYaw = 0;
m_tmpMt = new Matrix4();
m_oMatrix = new Matrix4();
}
public function set roll(_arg1:Number):void{
var _local2:Number;
_local2 = (_arg1 - _nRoll);
if (_local2 == 0){
return;
};
changed = true;
m_tmpMt.axisRotation(_vOut.x, _vOut.y, _vOut.z, _local2);
m_tmpMt.vectorMult3x3(_vSide);
m_tmpMt.vectorMult3x3(_vUp);
_nRoll = _arg1;
}
public function moveSideways(_arg1:Number):void{
changed = true;
_p.x = (_p.x + (_vSide.x * _arg1));
_p.y = (_p.y + (_vSide.y * _arg1));
_p.z = (_p.z + (_vSide.z * _arg1));
}
public function moveHorizontally(_arg1:Number):void{
changed = true;
_p.x = (_p.x + (_vOut.x * _arg1));
_p.z = (_p.z + (_vOut.z * _arg1));
}
public function lookAt(_arg1:Number, _arg2:Number, _arg3:Number):void{
changed = true;
_vOut.x = _arg1;
_vOut.y = _arg2;
_vOut.z = _arg3;
_vOut.sub(_p);
_vOut.normalize();
_vSide = null;
_vSide = _vOut.cross(_vLookatDown);
_vSide.normalize();
_vUp = null;
_vUp = _vOut.cross(_vSide);
_vUp.normalize();
}
public function moveVertically(_arg1:Number):void{
changed = true;
_p.y = (_p.y + _arg1);
}
public function set target(_arg1:Vector):void{
lookAt(_arg1.x, _arg1.y, _arg1.z);
}
public function initFrame():void{
_vSide = new Vector(1, 0, 0);
_vUp = new Vector(0, 1, 0);
_vOut = new Vector(0, 0, 1);
}
public function set pan(_arg1:Number):void{
var _local2:Number;
_local2 = (_arg1 - _nYaw);
if (_local2 == 0){
return;
};
changed = true;
m_tmpMt.axisRotation(_vUp.x, _vUp.y, _vUp.z, _local2);
m_tmpMt.vectorMult3x3(_vOut);
m_tmpMt.vectorMult3x3(_vSide);
_nYaw = _arg1;
}
public function get out():Vector{
return (_vOut);
}
public function get scaleY():Number{
return (_oScale.y);
}
public function get scaleX():Number{
return (_oScale.x);
}
public function get side():Vector{
return (_vSide);
}
public function translate(_arg1:Number, _arg2:Number, _arg3:Number):void{
changed = true;
_p.x = (_p.x + _arg1);
_p.y = (_p.y + _arg2);
_p.z = (_p.z + _arg3);
}
public function get rotateY():Number{
return (_vRotation.y);
}
public function get scaleZ():Number{
return (_oScale.z);
}
public function get rotateX():Number{
return (_vRotation.x);
}
public function get rotateZ():Number{
return (_vRotation.z);
}
override public function toString():String{
return ("sandy.core.scenegraph.ATransformable");
}
public function get x():Number{
return (_p.x);
}
public function get y():Number{
return (_p.y);
}
public function get z():Number{
return (_p.z);
}
public function get roll():Number{
return (_nRoll);
}
public function set matrix(_arg1:Matrix4):void{
m_oMatrix = _arg1;
m_oMatrix.vectorMult3x3(_vSide);
m_oMatrix.vectorMult3x3(_vUp);
m_oMatrix.vectorMult3x3(_vOut);
_vSide.normalize();
_vUp.normalize();
_vOut.normalize();
_p.x = _arg1.n14;
_p.y = _arg1.n24;
_p.z = _arg1.n34;
}
public function set tilt(_arg1:Number):void{
var _local2:Number;
_local2 = (_arg1 - _nTilt);
if (_local2 == 0){
return;
};
changed = true;
m_tmpMt.axisRotation(_vSide.x, _vSide.y, _vSide.z, _local2);
m_tmpMt.vectorMult3x3(_vOut);
m_tmpMt.vectorMult3x3(_vUp);
_nTilt = _arg1;
}
public function get up():Vector{
return (_vUp);
}
public function set scaleX(_arg1:Number):void{
_oScale.x = _arg1;
changed = true;
}
public function get pan():Number{
return (_nYaw);
}
public function set scaleY(_arg1:Number):void{
_oScale.y = _arg1;
changed = true;
}
public function getPosition(_arg1:String="local"):Vector{
var _local2:Vector;
switch (_arg1){
case "local":
_local2 = new Vector(_p.x, _p.y, _p.z);
break;
case "camera":
_local2 = new Vector(viewMatrix.n14, viewMatrix.n24, viewMatrix.n34);
break;
case "absolute":
_local2 = new Vector(modelMatrix.n14, modelMatrix.n24, modelMatrix.n34);
break;
default:
_local2 = new Vector(_p.x, _p.y, _p.z);
break;
};
return (_local2);
}
public function set scaleZ(_arg1:Number):void{
_oScale.z = _arg1;
changed = true;
}
public function moveLateraly(_arg1:Number):void{
changed = true;
_p.x = (_p.x + _arg1);
}
public function rotateAxis(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:Number;
changed = true;
_arg4 = ((_arg4 + 360) % 360);
_local5 = Math.sqrt((((_arg1 * _arg1) + (_arg2 * _arg2)) + (_arg3 * _arg3)));
m_tmpMt.axisRotation((_arg1 / _local5), (_arg2 / _local5), (_arg3 / _local5), _arg4);
m_tmpMt.vectorMult3x3(_vSide);
m_tmpMt.vectorMult3x3(_vUp);
m_tmpMt.vectorMult3x3(_vOut);
}
public function moveUpwards(_arg1:Number):void{
changed = true;
_p.x = (_p.x + (_vUp.x * _arg1));
_p.y = (_p.y + (_vUp.y * _arg1));
_p.z = (_p.z + (_vUp.z * _arg1));
}
public function updateTransform():void{
if (changed){
m_oMatrix.n11 = (_vSide.x * _oScale.x);
m_oMatrix.n12 = (_vUp.x * _oScale.y);
m_oMatrix.n13 = (_vOut.x * _oScale.z);
m_oMatrix.n14 = _p.x;
m_oMatrix.n21 = (_vSide.y * _oScale.x);
m_oMatrix.n22 = (_vUp.y * _oScale.y);
m_oMatrix.n23 = (_vOut.y * _oScale.z);
m_oMatrix.n24 = _p.y;
m_oMatrix.n31 = (_vSide.z * _oScale.x);
m_oMatrix.n32 = (_vUp.z * _oScale.y);
m_oMatrix.n33 = (_vOut.z * _oScale.z);
m_oMatrix.n34 = _p.z;
};
}
public function setPosition(_arg1:Number, _arg2:Number, _arg3:Number):void{
changed = true;
_p.x = _arg1;
_p.y = _arg2;
_p.z = _arg3;
}
public function moveForward(_arg1:Number):void{
changed = true;
_p.x = (_p.x + (_vOut.x * _arg1));
_p.y = (_p.y + (_vOut.y * _arg1));
_p.z = (_p.z + (_vOut.z * _arg1));
}
public function set rotateY(_arg1:Number):void{
var _local2:Number;
_local2 = (_arg1 - _vRotation.y);
if (_local2 == 0){
return;
};
changed = true;
m_tmpMt.rotationY(_local2);
m_tmpMt.vectorMult3x3(_vSide);
m_tmpMt.vectorMult3x3(_vUp);
m_tmpMt.vectorMult3x3(_vOut);
_vRotation.y = _arg1;
}
public function get tilt():Number{
return (_nTilt);
}
public function set rotateZ(_arg1:Number):void{
var _local2:Number;
_local2 = (_arg1 - _vRotation.z);
if (_local2 == 0){
return;
};
changed = true;
m_tmpMt.rotationZ(_local2);
m_tmpMt.vectorMult3x3(_vSide);
m_tmpMt.vectorMult3x3(_vUp);
m_tmpMt.vectorMult3x3(_vOut);
_vRotation.z = _arg1;
}
public function get matrix():Matrix4{
return (m_oMatrix);
}
override public function update(_arg1:Scene3D, _arg2:Matrix4, _arg3:Boolean):void{
updateTransform();
if (((_arg3) || (changed))){
if (((_arg2) && (!(disable)))){
modelMatrix.copy(_arg2);
modelMatrix.multiply4x3(m_oMatrix);
} else {
modelMatrix.copy(m_oMatrix);
};
};
super.update(_arg1, modelMatrix, _arg3);
}
public function set rotateX(_arg1:Number):void{
var _local2:Number;
_local2 = (_arg1 - _vRotation.x);
if (_local2 == 0){
return;
};
changed = true;
m_tmpMt.rotationX(_local2);
m_tmpMt.vectorMult3x3(_vSide);
m_tmpMt.vectorMult3x3(_vUp);
m_tmpMt.vectorMult3x3(_vOut);
_vRotation.x = _arg1;
}
public function set x(_arg1:Number):void{
_p.x = _arg1;
changed = true;
}
public function set y(_arg1:Number):void{
_p.y = _arg1;
changed = true;
}
public function set z(_arg1:Number):void{
_p.z = _arg1;
changed = true;
}
}
}//package sandy.core.scenegraph
Section 76
//Camera3D (sandy.core.scenegraph.Camera3D)
package sandy.core.scenegraph {
import sandy.core.data.*;
import flash.display.*;
import sandy.core.*;
import sandy.view.*;
import flash.geom.*;
import sandy.util.*;
public class Camera3D extends ATransformable {
public var frustrum:Frustum;
private var mp11:Number;
private var mp12:Number;
private var mp13:Number;
private var m_aDisplayList:Array;
private var mp14:Number;
private var mp22:Number;
private var mp24:Number;
private var m_nOffy:int;
private var mp23:Number;
private var _mp:Matrix4;
private var mp33:Number;
private var m_nOffx:int;
private var mp31:Number;
private var mp32:Number;
private var mp34:Number;
private var _mpInv:Matrix4;
private var mp21:Number;
private var mp41:Number;
private var mp42:Number;
private var mp43:Number;
private var mp44:Number;
private var _nFov:Number;
private var _perspectiveChanged:Boolean;// = false
public var invModelMatrix:Matrix4;
public var viewport:ViewPort;
private var _nFar:Number;
private var _nNear:Number;
private var m_aDisplayedList:Array;
public function Camera3D(_arg1:Number, _arg2:Number, _arg3:Number=45, _arg4:Number=50, _arg5:Number=10000){
invModelMatrix = new Matrix4();
viewport = new ViewPort(640, 480);
frustrum = new Frustum();
_perspectiveChanged = false;
_mp = new Matrix4();
_mpInv = new Matrix4();
m_aDisplayList = new Array();
super(null);
viewport.width = _arg1;
viewport.height = _arg2;
_nFov = _arg3;
_nFar = _arg5;
_nNear = _arg4;
setPerspectiveProjection(_nFov, viewport.ratio, _nNear, _nFar);
m_nOffx = viewport.width2;
m_nOffy = viewport.height2;
viewport.hasChanged = false;
visible = false;
z = -300;
lookAt(0, 0, 0);
}
override public function destroy():void{
var _local1:IDisplayable;
for each (_local1 in m_aDisplayedList) {
if (_local1){
_local1.clear();
};
};
for each (_local1 in m_aDisplayList) {
if (_local1){
_local1.clear();
};
};
m_aDisplayedList = null;
m_aDisplayList = null;
viewport = null;
super.destroy();
}
public function get invProjectionMatrix():Matrix4{
return (_mpInv);
}
public function renderDisplayList(_arg1:Scene3D):void{
var _local2:IDisplayable;
var _local3:Sprite;
for each (_local2 in m_aDisplayedList) {
_local2.clear();
};
_local3 = _arg1.container;
m_aDisplayList.sortOn("depth", (Array.NUMERIC | Array.DESCENDING));
for each (_local2 in m_aDisplayList) {
_local2.display(_arg1);
_local3.addChild(_local2.container);
};
m_aDisplayedList = m_aDisplayList.splice(0);
}
public function get far():Number{
return (_nFar);
}
public function get near():Number{
return (_nNear);
}
public function set far(_arg1:Number):void{
_nFar = _arg1;
_perspectiveChanged = true;
}
public function projectVertex(_arg1:Vertex):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local2 = (viewport.offset.x + m_nOffx);
_local3 = (viewport.offset.y + m_nOffy);
_local4 = (1 / ((((_arg1.wx * mp41) + (_arg1.wy * mp42)) + (_arg1.wz * mp43)) + mp44));
_arg1.sx = (((_local4 * ((((_arg1.wx * mp11) + (_arg1.wy * mp12)) + (_arg1.wz * mp13)) + mp14)) * m_nOffx) + _local2);
_arg1.sy = (((-(_local4) * ((((_arg1.wx * mp21) + (_arg1.wy * mp22)) + (_arg1.wz * mp23)) + mp24)) * m_nOffy) + _local3);
}
protected function setPerspectiveProjection(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:Number;
var _local6:Number;
frustrum.computePlanes(_arg2, _arg3, _arg4, _arg1);
_arg1 = NumberUtil.toRadian(_arg1);
_local5 = (1 / Math.tan((_arg1 / 2)));
_local6 = (_arg4 / (_arg4 - _arg3));
_mp.zero();
_mp.n11 = (_local5 / _arg2);
_mp.n22 = _local5;
_mp.n33 = _local6;
_mp.n34 = (-(_local6) * _arg3);
_mp.n43 = 1;
mp11 = _mp.n11;
mp21 = _mp.n21;
mp31 = _mp.n31;
mp41 = _mp.n41;
mp12 = _mp.n12;
mp22 = _mp.n22;
mp32 = _mp.n32;
mp42 = _mp.n42;
mp13 = _mp.n13;
mp23 = _mp.n23;
mp33 = _mp.n33;
mp43 = _mp.n43;
mp14 = _mp.n14;
mp24 = _mp.n24;
mp34 = _mp.n34;
mp44 = _mp.n44;
_mpInv.copy(_mp);
_mpInv.inverse();
changed = true;
}
override public function toString():String{
return ("sandy.core.scenegraph.Camera3D");
}
override public function cull(_arg1:Scene3D, _arg2:Frustum, _arg3:Matrix4, _arg4:Boolean):void{
}
override public function render(_arg1:Scene3D, _arg2:Camera3D):void{
}
public function set fov(_arg1:Number):void{
_nFov = _arg1;
_perspectiveChanged = true;
}
public function set near(_arg1:Number):void{
_nNear = _arg1;
_perspectiveChanged = true;
}
public function addArrayToDisplayList(_arg1:Array):void{
m_aDisplayList = m_aDisplayList.concat(_arg1);
}
protected function updatePerspective():void{
setPerspectiveProjection(_nFov, viewport.ratio, _nNear, _nFar);
_perspectiveChanged = false;
}
public function projectArray(_arg1:Array):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Vertex;
_local2 = (viewport.offset.x + m_nOffx);
_local3 = (viewport.offset.y + m_nOffy);
for each (_local5 in _arg1) {
if (!_local5.projected){
_local4 = (1 / ((((_local5.wx * mp41) + (_local5.wy * mp42)) + (_local5.wz * mp43)) + mp44));
_local5.sx = (((_local4 * ((((_local5.wx * mp11) + (_local5.wy * mp12)) + (_local5.wz * mp13)) + mp14)) * m_nOffx) + _local2);
_local5.sy = (((-(_local4) * ((((_local5.wx * mp21) + (_local5.wy * mp22)) + (_local5.wz * mp23)) + mp24)) * m_nOffy) + _local3);
_local5.projected = true;
};
};
}
override public function update(_arg1:Scene3D, _arg2:Matrix4, _arg3:Boolean):void{
if (viewport.hasChanged){
_perspectiveChanged = true;
m_nOffx = viewport.width2;
m_nOffy = viewport.height2;
if (_arg1.rectClipping){
_arg1.container.scrollRect = new Rectangle(0, 0, viewport.width, viewport.height);
};
viewport.hasChanged = false;
};
if (_perspectiveChanged){
updatePerspective();
};
super.update(_arg1, _arg2, _arg3);
invModelMatrix.n11 = modelMatrix.n11;
invModelMatrix.n12 = modelMatrix.n21;
invModelMatrix.n13 = modelMatrix.n31;
invModelMatrix.n21 = modelMatrix.n12;
invModelMatrix.n22 = modelMatrix.n22;
invModelMatrix.n23 = modelMatrix.n32;
invModelMatrix.n31 = modelMatrix.n13;
invModelMatrix.n32 = modelMatrix.n23;
invModelMatrix.n33 = modelMatrix.n33;
invModelMatrix.n14 = -((((modelMatrix.n11 * modelMatrix.n14) + (modelMatrix.n21 * modelMatrix.n24)) + (modelMatrix.n31 * modelMatrix.n34)));
invModelMatrix.n24 = -((((modelMatrix.n12 * modelMatrix.n14) + (modelMatrix.n22 * modelMatrix.n24)) + (modelMatrix.n32 * modelMatrix.n34)));
invModelMatrix.n34 = -((((modelMatrix.n13 * modelMatrix.n14) + (modelMatrix.n23 * modelMatrix.n24)) + (modelMatrix.n33 * modelMatrix.n34)));
}
public function get fov():Number{
return (_nFov);
}
public function get projectionMatrix():Matrix4{
return (_mp);
}
public function addToDisplayList(_arg1:IDisplayable):void{
if (_arg1 != null){
m_aDisplayList[m_aDisplayList.length] = _arg1;
};
}
}
}//package sandy.core.scenegraph
Section 77
//Geometry3D (sandy.core.scenegraph.Geometry3D)
package sandy.core.scenegraph {
import sandy.core.data.*;
import flash.utils.*;
public final class Geometry3D {
public var aUVCoords:Array;
public var aFacesUVCoordsID:Array;
public var aFaceEdges:Array;
private var EDGES_DICO:Dictionary;
private var m_nLastVertexNormalId:int;// = 0
public var aFacesVertexID:Array;
public var aVertexNormals:Array;
private var m_nLastVertexId:int;// = 0
private var m_nLastNormalId:int;// = 0
public var aFacesNormals:Array;
private var m_nLastFaceId:int;// = 0
private var m_aVertexFaces:Array;
public var aVertex:Array;
private var m_nLastFaceUVId:int;// = 0
private var m_nLastUVId:int;// = 0
public var aEdges:Array;
public function Geometry3D(_arg1:Array=null){
EDGES_DICO = new Dictionary(true);
aVertex = new Array();
aFacesVertexID = new Array();
aFacesUVCoordsID = new Array();
aFacesNormals = new Array();
aVertexNormals = new Array();
aEdges = new Array();
aFaceEdges = new Array();
aUVCoords = new Array();
m_nLastVertexId = 0;
m_nLastNormalId = 0;
m_nLastFaceId = 0;
m_nLastFaceUVId = 0;
m_nLastUVId = 0;
m_nLastVertexNormalId = 0;
m_aVertexFaces = new Array();
super();
init();
}
public function setUVCoords(_arg1:Number, _arg2:Number, _arg3:Number):Number{
if (aUVCoords[_arg1]){
return (-1);
};
aUVCoords[_arg1] = new UVCoord(_arg2, _arg3);
return ((++m_nLastUVId - 1));
}
public function init():void{
}
public function getNextFaceID():Number{
return (m_nLastFaceId);
}
public function generateFaceNormals():void{
var _local1:Array;
var _local2:Vertex;
var _local3:Vertex;
var _local4:Vertex;
var _local5:Vector;
var _local6:Vector;
var _local7:Vector;
if (aFacesNormals.length > 0){
return;
};
for each (_local1 in aFacesVertexID) {
if (_local1.length < 3){
} else {
_local2 = aVertex[_local1[0]];
_local3 = aVertex[_local1[1]];
_local4 = aVertex[_local1[2]];
_local5 = new Vector((_local3.wx - _local2.wx), (_local3.wy - _local2.wy), (_local3.wz - _local2.wz));
_local6 = new Vector((_local3.wx - _local4.wx), (_local3.wy - _local4.wy), (_local3.wz - _local4.wz));
_local7 = _local5.cross(_local6);
_local7.normalize();
setFaceNormal(getNextFaceNormalID(), _local7.x, _local7.y, _local7.z);
};
};
}
public function setVertex(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (aVertex[_arg1]){
return (-1);
};
aVertex[_arg1] = new Vertex(_arg2, _arg3, _arg4);
return ((++m_nLastVertexId - 1));
}
public function setFaceNormal(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (aFacesNormals[_arg1]){
return (-1);
};
aFacesNormals[_arg1] = new Vertex(_arg2, _arg3, _arg4);
return ((++m_nLastNormalId - 1));
}
public function getNextUVCoordID():Number{
return (m_nLastUVId);
}
public function generateVertexNormals():void{
var _local1:uint;
var _local2:Array;
var _local3:Vertex;
var _local4:Vertex;
if (aVertexNormals.length > 0){
return;
};
_local1 = 0;
_local1 = 0;
while (_local1 < aFacesVertexID.length) {
_local2 = aFacesVertexID[_local1];
_local3 = aFacesNormals[_local1];
if (_local3 == null){
} else {
if (null == aVertexNormals[_local2[0]]){
m_nLastVertexNormalId++;
aVertexNormals[_local2[0]] = new Vertex();
};
Vertex(aVertexNormals[_local2[0]]).add(_local3);
if (null == aVertexNormals[_local2[1]]){
m_nLastVertexNormalId++;
aVertexNormals[_local2[1]] = new Vertex();
};
Vertex(aVertexNormals[_local2[1]]).add(_local3);
if (null == aVertexNormals[_local2[2]]){
m_nLastVertexNormalId++;
aVertexNormals[_local2[2]] = new Vertex();
};
Vertex(aVertexNormals[_local2[2]]).add(_local3);
if ((aVertex[_local2[0]] as Vertex).aFaces.indexOf(_local1) == 0){
(aVertex[_local2[0]] as Vertex).aFaces.push(_local1);
};
if ((aVertex[_local2[1]] as Vertex).aFaces.indexOf(_local1) == 0){
(aVertex[_local2[1]] as Vertex).aFaces.push(_local1);
};
if ((aVertex[_local2[2]] as Vertex).aFaces.indexOf(_local1) == 0){
(aVertex[_local2[2]] as Vertex).aFaces.push(_local1);
};
aVertex[_local2[0]].nbFaces++;
aVertex[_local2[1]].nbFaces++;
aVertex[_local2[2]].nbFaces++;
};
_local1++;
};
_local1 = 0;
while (_local1 < aVertexNormals.length) {
_local4 = aVertex[_local1];
if (_local4.nbFaces){
Vertex(aVertexNormals[_local1]).scale((1 / _local4.nbFaces));
};
_local1++;
};
}
public function setVertexNormal(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (aVertexNormals[_arg1]){
return (-1);
};
aVertexNormals[_arg1] = new Vertex(_arg2, _arg3, _arg4);
return ((++m_nLastVertexNormalId - 1));
}
private function isEdgeExist(_arg1:uint, _arg2:uint):Boolean{
var _local3:String;
if (_arg1 < _arg2){
_local3 = ((_arg1 + "_") + _arg2);
} else {
_local3 = ((_arg2 + "_") + _arg1);
};
if (EDGES_DICO[_local3] == null){
return (false);
};
return (true);
}
public function dispose():void{
var _local1:Array;
var _local2:Vertex;
var _local3:Array;
var _local4:UVCoord;
for each (_local2 in aVertex) {
_local2 = null;
};
aVertex = null;
for each (_local1 in aFacesVertexID) {
_local1 = null;
};
aFacesVertexID = null;
for each (_local2 in aFacesNormals) {
_local2 = null;
};
aFacesNormals = null;
for each (_local2 in aVertexNormals) {
_local2 = null;
};
aVertexNormals = null;
for each (_local3 in aFacesUVCoordsID) {
_local3 = null;
};
aFacesUVCoordsID = null;
for each (_local4 in aUVCoords) {
_local4 = null;
};
aUVCoords = null;
}
public function getNextVertexID():Number{
return (m_nLastVertexId);
}
public function getNextFaceUVCoordID():Number{
return (m_nLastFaceUVId);
}
public function getNextFaceNormalID():Number{
return (m_nLastNormalId);
}
public function getVertexId(_arg1:Vertex):Number{
var _local2:Number;
_local2 = 0;
_local2 = 0;
while ((((_local2 < aVertex.length)) && (!((aVertex[_local2] == _arg1))))) {
_local2++;
};
return (((_local2 == aVertex.length)) ? -1 : _local2);
}
public function setFaceUVCoordsIds(_arg1:Number, ... _args):Number{
var _local3:Array;
if (aFacesUVCoordsID[_arg1]){
return (-1);
};
_local3 = ((_args[0] is Array)) ? _args[0] : _args.splice(0);
aFacesUVCoordsID[_arg1] = _local3;
return ((++m_nLastFaceUVId - 1));
}
public function clone():Geometry3D{
var _local1:Geometry3D;
var _local2:uint;
var _local3:Vertex;
var _local4:Array;
var _local5:Array;
var _local6:UVCoord;
var _local7:Edge3D;
var _local8:Array;
_local1 = new Geometry3D();
_local2 = 0;
for each (_local3 in aVertex) {
_local1.aVertex[_local2] = _local3.clone();
_local2++;
};
_local2 = 0;
for each (_local4 in aFacesVertexID) {
_local1.aFacesVertexID[_local2] = _local4.concat();
_local2++;
};
_local2 = 0;
for each (_local3 in aFacesNormals) {
_local1.aFacesNormals[_local2] = _local3.clone();
_local2++;
};
_local2 = 0;
for each (_local3 in aVertexNormals) {
_local1.aVertexNormals[_local2] = _local3.clone();
_local2++;
};
_local2 = 0;
for each (_local5 in aFacesUVCoordsID) {
_local1.aFacesUVCoordsID[_local2] = _local5.concat();
_local2++;
};
_local2 = 0;
for each (_local6 in aUVCoords) {
_local1.aUVCoords[_local2] = _local6.clone();
_local2++;
};
_local2 = 0;
for each (_local7 in aEdges) {
_local1.aEdges[_local2] = _local7.clone();
_local2++;
};
_local2 = 0;
for each (_local8 in aFaceEdges) {
_local1.aFaceEdges[_local2] = _local8.concat();
_local2++;
};
return (_local1);
}
public function getNextVertexNormalID():Number{
return (m_nLastVertexNormalId);
}
public function setFaceVertexIds(_arg1:Number, ... _args):Number{
var _local3:Array;
var _local4:uint;
var _local5:uint;
var _local6:uint;
var _local7:uint;
var _local8:String;
if (aFacesVertexID[_arg1]){
return (-1);
};
_local3 = ((_args[0] is Array)) ? _args[0] : _args.splice(0);
aFacesVertexID[_arg1] = _local3;
_local4 = 0;
while (_local4 < _local3.length) {
_local5 = _local3[_local4];
_local6 = _local3[((_local4 + 1) % _local3.length)];
if (isEdgeExist(_local5, _local6) == false){
_local7 = (aEdges.push(new Edge3D(_local5, _local6)) - 1);
if (_local5 < _local6){
_local8 = ((_local5 + "_") + _local6);
} else {
_local8 = ((_local6 + "_") + _local5);
};
EDGES_DICO[_local8] = _local7;
} else {
if (_local5 < _local6){
_local8 = ((_local5 + "_") + _local6);
} else {
_local8 = ((_local6 + "_") + _local5);
};
_local7 = EDGES_DICO[_local8];
};
if (null == aFaceEdges[_arg1]){
aFaceEdges[_arg1] = new Array();
};
(aFaceEdges[_arg1] as Array).push(_local7);
_local4++;
};
return ((++m_nLastFaceId - 1));
}
public function toString():String{
return ((((((((("[Geometry: " + aFacesVertexID.length) + " faces, ") + aVertex.length) + " points, ") + aFacesNormals.length) + " normals, ") + aUVCoords.length) + " uv coords]"));
}
}
}//package sandy.core.scenegraph
Section 78
//Group (sandy.core.scenegraph.Group)
package sandy.core.scenegraph {
import sandy.core.data.*;
import sandy.core.*;
import sandy.view.*;
public class Group extends Node {
public function Group(_arg1:String=""){
super(_arg1);
}
override public function render(_arg1:Scene3D, _arg2:Camera3D):void{
var _local3:Node;
for each (_local3 in children) {
if (_local3.culled != CullingState.OUTSIDE){
_local3.render(_arg1, _arg2);
};
_local3.changed = false;
_local3.culled = CullingState.INSIDE;
};
}
public function clone(_arg1:String):Group{
var _local2:Group;
var _local3:*;
_local2 = new Group(_arg1);
for each (_local3 in children) {
if ((((((_local3 is Shape3D)) || ((_local3 is Group)))) || ((_local3 is TransformGroup)))){
_local2.addChild(_local3.clone(((_arg1 + "_") + _local3.name)));
};
};
return (_local2);
}
override public function cull(_arg1:Scene3D, _arg2:Frustum, _arg3:Matrix4, _arg4:Boolean):void{
var _local5:Boolean;
var _local6:Node;
if (visible == false){
culled = CullingState.OUTSIDE;
} else {
_local5 = ((_arg4) || (changed));
for each (_local6 in children) {
_local6.cull(_arg1, _arg2, _arg3, _local5);
};
};
}
}
}//package sandy.core.scenegraph
Section 79
//IDisplayable (sandy.core.scenegraph.IDisplayable)
package sandy.core.scenegraph {
import flash.display.*;
import sandy.core.*;
public interface IDisplayable {
function get container():Sprite;
function display(_arg1:Scene3D, _arg2:Sprite=null):void;
function get depth():Number;
function clear():void;
}
}//package sandy.core.scenegraph
Section 80
//Node (sandy.core.scenegraph.Node)
package sandy.core.scenegraph {
import sandy.core.data.*;
import sandy.events.*;
import sandy.materials.*;
import sandy.core.*;
import sandy.view.*;
import sandy.bounds.*;
public class Node {
public const id:uint;
public const viewMatrix:Matrix4;
public const modelMatrix:Matrix4;
public const children:Array;
public var name:String;
public var boundingBox:BBox;
public var culled:CullingState;
public var scene:Scene3D;// = null
public var boundingSphere:BSphere;
public var changed:Boolean;// = false
private var _parent:Node;
public var visible:Boolean;// = true
protected var m_oEB:BubbleEventBroadcaster;
private static var _ID_:uint = 0;
public function Node(_arg1:String=""){
culled = CullingState.OUTSIDE;
children = new Array();
modelMatrix = new Matrix4();
viewMatrix = new Matrix4();
id = _ID_++;
visible = true;
scene = null;
m_oEB = new BubbleEventBroadcaster();
changed = false;
super();
parent = null;
if (_arg1){
name = _arg1;
} else {
name = id.toString();
};
changed = true;
m_oEB = new BubbleEventBroadcaster();
culled = CullingState.INSIDE;
}
public function addChild(_arg1:Node):void{
if (_arg1.parent){
_arg1.parent.removeChildByName(_arg1.name);
};
_arg1.parent = this;
changed = true;
children.push(_arg1);
if (_arg1.broadcaster){
m_oEB.addChild(_arg1.broadcaster);
};
}
public function remove():void{
var _local1:Array;
var _local2:Node;
parent.removeChildByName(name);
_local1 = children.concat();
for each (_local2 in _local1) {
parent.addChild(_local2);
};
children.splice(0);
m_oEB = null;
changed = true;
}
public function getChildByName(_arg1:String, _arg2:Boolean=false):Node{
var _local3:Node;
var _local4:Node;
var _local5:Node;
for each (_local3 in children) {
if (_local3.name == _arg1){
return (_local3);
};
};
if (_arg2){
_local5 = null;
for each (_local3 in children) {
_local5 = _local3.getChildByName(_arg1, _arg2);
if (_local5 != null){
return (_local5);
};
};
};
return (null);
}
public function destroy():void{
var _local1:Array;
var _local2:Node;
if (hasParent() == true){
parent.removeChildByName(name);
};
_local1 = children.concat();
for each (_local2 in _local1) {
_local2.destroy();
};
children.splice(0);
m_oEB = null;
}
public function removeChildByName(_arg1:String):Boolean{
var _local2:Boolean;
var _local3:int;
var _local4:int;
_local2 = false;
_local4 = children.length;
while ((((_local3 < _local4)) && (!(_local2)))) {
if (children[int(_local3)].name == _arg1){
broadcaster.removeChild(children[int(_local3)].broadcaster);
children.splice(_local3, 1);
changed = true;
_local2 = true;
};
_local3++;
};
return (_local2);
}
public function swapParent(_arg1:Node):void{
if (parent.removeChildByName(this.name)){
};
_arg1.addChild(this);
}
public function set useSingleContainer(_arg1:Boolean):void{
var _local2:Node;
for each (_local2 in children) {
_local2.useSingleContainer = _arg1;
};
}
public function render(_arg1:Scene3D, _arg2:Camera3D):void{
}
public function get parent():Node{
return (_parent);
}
public function get broadcaster():BubbleEventBroadcaster{
return (m_oEB);
}
public function set appearance(_arg1:Appearance):void{
var _local2:Node;
for each (_local2 in children) {
_local2.appearance = _arg1;
};
}
public function update(_arg1:Scene3D, _arg2:Matrix4, _arg3:Boolean):void{
var _local4:Node;
scene = _arg1;
if (boundingBox){
boundingBox.uptodate = false;
};
if (boundingSphere){
boundingSphere.uptodate = false;
};
changed = ((changed) || (_arg3));
for each (_local4 in children) {
_local4.update(_arg1, _arg2, changed);
};
}
public function addEventListener(_arg1:String, _arg2):void{
m_oEB.addEventListener.apply(_arg1, arguments);
}
public function set enableInteractivity(_arg1:Boolean):void{
var _local2:Node;
for each (_local2 in children) {
_local2.enableInteractivity = _arg1;
};
}
public function removeEventListener(_arg1:String, _arg2):void{
m_oEB.removeEventListener(_arg1, _arg2);
}
public function set enableBackFaceCulling(_arg1:Boolean):void{
var _local2:Node;
for each (_local2 in children) {
_local2.enableBackFaceCulling = _arg1;
};
}
public function set parent(_arg1:Node):void{
if (_arg1){
_parent = _arg1;
changed = true;
};
}
public function hasParent():Boolean{
return (!((_parent == null)));
}
public function toString():String{
return ("sandy.core.scenegraph.Node");
}
public function set enableEvents(_arg1:Boolean):void{
var _local2:Node;
for each (_local2 in children) {
_local2.enableEvents = _arg1;
};
}
public function cull(_arg1:Scene3D, _arg2:Frustum, _arg3:Matrix4, _arg4:Boolean):void{
if (visible == false){
culled = CullingState.OUTSIDE;
} else {
if (((_arg4) || (changed))){
viewMatrix.copy(_arg3);
viewMatrix.multiply4x3(modelMatrix);
};
};
}
public function isParent(_arg1:Node):Boolean{
return ((((_parent == _arg1)) && (!((_arg1 == null)))));
}
}
}//package sandy.core.scenegraph
Section 81
//Shape3D (sandy.core.scenegraph.Shape3D)
package sandy.core.scenegraph {
import sandy.core.data.*;
import flash.display.*;
import flash.events.*;
import sandy.events.*;
import sandy.materials.*;
import sandy.core.*;
import sandy.view.*;
import flash.geom.*;
import sandy.bounds.*;
import sandy.math.*;
public class Shape3D extends ATransformable implements IDisplayable {
protected var m_oContainer:Sprite;
protected var m_bUseSingleContainer:Boolean;// = true
public var aPolygons:Array;
protected var m_nDepth:Number;// = 0
private var m_aVisiblePoly:Array;
public var enableNearClipping:Boolean;// = false
private var m_oAppearance:Appearance;
public var enableClipping:Boolean;// = false
public var forcedDepth:Number;// = 0
private var m_bMouseInteractivity:Boolean;// = false
private var m_bBackFaceCulling:Boolean;// = true
private var m_bClipped:Boolean;// = false
private var m_oGeometry:Geometry3D;
private var m_nVisiblePoly:int;
protected var m_oGeomCenter:Vector;
private var m_aToProject:Array;
private var m_bForcedSingleContainer:Boolean;// = false
private var m_bEv:Boolean;// = false
public var enableForcedDepth:Boolean;// = false
public static var DEFAULT_APPEARANCE:Appearance = new Appearance(DEFAULT_MATERIAL);
public static var DEFAULT_MATERIAL:Material = new WireFrameMaterial();
public function Shape3D(_arg1:String="", _arg2:Geometry3D=null, _arg3:Appearance=null, _arg4:Boolean=true){
aPolygons = new Array();
enableNearClipping = false;
enableClipping = false;
enableForcedDepth = false;
forcedDepth = 0;
m_bEv = false;
m_oGeomCenter = new Vector();
m_bBackFaceCulling = true;
m_bClipped = false;
m_bUseSingleContainer = true;
m_nDepth = 0;
m_aToProject = new Array();
m_aVisiblePoly = new Array();
m_bMouseInteractivity = false;
m_bForcedSingleContainer = false;
super(_arg1);
m_oContainer = new Sprite();
geometry = _arg2;
m_bUseSingleContainer = !(_arg4);
useSingleContainer = _arg4;
appearance = (_arg3) ? _arg3 : Shape3D.DEFAULT_APPEARANCE;
updateBoundingVolumes();
}
override public function destroy():void{
m_oGeometry.dispose();
clear();
if (m_oContainer.parent){
m_oContainer.parent.removeChild(m_oContainer);
};
if (m_oContainer){
m_oContainer = null;
};
__destroyPolygons();
super.destroy();
}
override public function set useSingleContainer(_arg1:Boolean):void{
var _local2:Polygon;
if (_arg1 == m_bUseSingleContainer){
return;
};
if (_arg1){
for each (_local2 in aPolygons) {
if (_local2.container.parent){
_local2.container.graphics.clear();
_local2.container.parent.removeChild(_local2.container);
this.broadcaster.removeChild(_local2.broadcaster);
};
};
} else {
if (m_oContainer.parent){
m_oContainer.graphics.clear();
m_oContainer.parent.removeChild(m_oContainer);
};
for each (_local2 in aPolygons) {
this.broadcaster.addChild(_local2.broadcaster);
_local2.container.graphics.clear();
};
};
m_bUseSingleContainer = _arg1;
}
public function get enableInteractivity():Boolean{
return (m_bMouseInteractivity);
}
public function swapCulling():void{
var _local1:Polygon;
for each (_local1 in aPolygons) {
_local1.swapCulling();
};
changed = true;
}
public function updateBoundingVolumes():void{
if (m_oGeometry){
boundingSphere = BSphere.create(m_oGeometry.aVertex);
boundingBox = BBox.create(m_oGeometry.aVertex);
};
}
override public function set enableInteractivity(_arg1:Boolean):void{
var _local2:Polygon;
if (_arg1 != m_bMouseInteractivity){
if (_arg1){
if (m_bUseSingleContainer == true){
m_bUseSingleContainer = false;
m_bForcedSingleContainer = true;
};
} else {
if (m_bForcedSingleContainer == true){
useSingleContainer = true;
m_bForcedSingleContainer = false;
};
};
for each (_local2 in aPolygons) {
_local2.enableInteractivity = _arg1;
};
m_bMouseInteractivity = _arg1;
};
}
override public function set enableBackFaceCulling(_arg1:Boolean):void{
if (_arg1 != m_bBackFaceCulling){
m_bBackFaceCulling = _arg1;
changed = true;
};
}
public function clear():void{
if (m_oContainer){
m_oContainer.graphics.clear();
};
}
public function get geometryCenter():Vector{
return (m_oGeomCenter);
}
public function get appearance():Appearance{
return (m_oAppearance);
}
override public function toString():String{
return ((("sandy.core.scenegraph.Shape3D" + " ") + m_oGeometry.toString()));
}
override public function cull(_arg1:Scene3D, _arg2:Frustum, _arg3:Matrix4, _arg4:Boolean):void{
super.cull(_arg1, _arg2, _arg3, _arg4);
if (culled == Frustum.OUTSIDE){
return;
};
if (!boundingSphere.uptodate){
boundingSphere.transform(viewMatrix);
};
culled = _arg2.sphereInFrustum(boundingSphere);
if ((((culled == Frustum.INTERSECT)) && (boundingBox))){
if (!boundingBox.uptodate){
boundingBox.transform(viewMatrix);
};
culled = _arg2.boxInFrustum(boundingBox);
};
m_bClipped = (((culled == CullingState.INTERSECT)) && (((enableClipping) || (enableNearClipping))));
}
public function clone(_arg1:String="", _arg2:Boolean=false):Shape3D{
var _local3:Shape3D;
_local3 = new Shape3D(_arg1, geometry.clone(), appearance, m_bUseSingleContainer);
if (_arg2 == true){
_local3.matrix = this.matrix;
};
return (_local3);
}
public function get geometry():Geometry3D{
return (m_oGeometry);
}
public function get container():Sprite{
return (m_oContainer);
}
override public function render(_arg1:Scene3D, _arg2:Camera3D):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Array;
var _local23:Matrix4;
var _local24:Frustum;
var _local25:Array;
var _local26:Vertex;
var _local27:Vertex;
var _local28:Polygon;
var _local29:Number;
var _local30:int;
var _local31:int;
var _local32:Polygon;
if (m_oAppearance == null){
return;
};
_local21 = _arg2.near;
_local22 = m_oGeometry.aVertex;
_local23 = viewMatrix;
_local24 = _arg2.frustrum;
_local25 = m_oGeometry.aVertexNormals;
_local23 = viewMatrix;
_local3 = _local23.n11;
_local4 = _local23.n21;
_local5 = _local23.n31;
_local6 = _local23.n12;
_local7 = _local23.n22;
_local8 = _local23.n32;
_local9 = _local23.n13;
_local10 = _local23.n23;
_local11 = _local23.n33;
_local12 = _local23.n14;
_local13 = _local23.n24;
_local14 = _local23.n34;
for each (_local27 in _local22) {
_local15 = _local27.x;
_local16 = _local27.y;
_local17 = _local27.z;
_local27.wx = ((((_local15 * _local3) + (_local16 * _local6)) + (_local17 * _local9)) + _local12);
_local27.wy = ((((_local15 * _local4) + (_local16 * _local7)) + (_local17 * _local10)) + _local13);
_local27.wz = ((((_local15 * _local5) + (_local16 * _local8)) + (_local17 * _local11)) + _local14);
_local27.projected = false;
};
m_aVisiblePoly = [];
m_nVisiblePoly = 0;
m_nDepth = 0;
for each (_local28 in aPolygons) {
_local28.isClipped = false;
_local15 = _local28.normal.x;
_local16 = _local28.normal.y;
_local17 = _local28.normal.z;
_local18 = (((_local15 * _local3) + (_local16 * _local6)) + (_local17 * _local9));
_local19 = (((_local15 * _local4) + (_local16 * _local7)) + (_local17 * _local10));
_local20 = (((_local15 * _local5) + (_local16 * _local8)) + (_local17 * _local11));
_local15 = (((_local28.a.wx * _local18) + (_local28.a.wy * _local19)) + (_local28.a.wz * _local20));
_local28.visible = (_local15 < 0);
if (((_local28.visible) || (!(m_bBackFaceCulling)))){
_local28.precompute();
_local29 = _local28.minZ;
if (((m_bClipped) && (enableClipping))){
_local28.clip(_local24);
if (_local28.cvertices.length > 2){
_arg2.projectArray(_local28.cvertices);
if (!enableForcedDepth){
m_nDepth = (m_nDepth + _local28.m_nDepth);
} else {
_local28.depth = forcedDepth;
};
m_aVisiblePoly[int(m_nVisiblePoly++)] = _local28;
};
} else {
if (((enableNearClipping) && ((_local29 < _local21)))){
_local28.clipFrontPlane(_local24);
if (_local28.cvertices.length > 2){
_arg2.projectArray(_local28.cvertices);
if (!enableForcedDepth){
m_nDepth = (m_nDepth + _local28.m_nDepth);
} else {
_local28.depth = forcedDepth;
};
m_aVisiblePoly[int(m_nVisiblePoly++)] = _local28;
};
} else {
if (_local29 >= _local21){
_arg2.projectArray(_local28.vertices);
if (!enableForcedDepth){
m_nDepth = (m_nDepth + _local28.m_nDepth);
} else {
_local28.depth = forcedDepth;
};
m_aVisiblePoly[int(m_nVisiblePoly++)] = _local28;
} else {
continue;
};
};
};
if (_local28.hasAppearanceChanged){
if (_arg1.materialManager.isRegistered(_local28.appearance.frontMaterial) == false){
_arg1.materialManager.register(_local28.appearance.frontMaterial);
};
if (_local28.appearance.frontMaterial != _local28.appearance.backMaterial){
if (_arg1.materialManager.isRegistered(_local28.appearance.backMaterial) == false){
_arg1.materialManager.register(_local28.appearance.backMaterial);
};
};
_local28.hasAppearanceChanged = false;
};
};
};
if (m_bUseSingleContainer){
if (enableForcedDepth){
m_nDepth = forcedDepth;
} else {
m_nDepth = (m_nDepth / m_aVisiblePoly.length);
};
_arg2.addToDisplayList(this);
} else {
_arg2.addArrayToDisplayList(m_aVisiblePoly);
};
_local30 = appearance.flags;
if (_local30 == 0){
return;
};
_local23 = modelMatrix;
_local3 = _local23.n11;
_local4 = _local23.n21;
_local5 = _local23.n31;
_local6 = _local23.n12;
_local7 = _local23.n22;
_local8 = _local23.n32;
_local9 = _local23.n13;
_local10 = _local23.n23;
_local11 = _local23.n33;
if ((appearance.flags & SandyFlags.POLYGON_NORMAL_WORLD)){
for each (_local32 in m_aVisiblePoly) {
_local27 = _local32.normal;
_local15 = _local27.x;
_local16 = _local27.y;
_local17 = _local27.z;
_local32.normal.wx = (((_local15 * _local3) + (_local16 * _local6)) + (_local17 * _local9));
_local27.wy = (((_local15 * _local4) + (_local16 * _local7)) + (_local17 * _local10));
_local27.wz = (((_local15 * _local5) + (_local16 * _local8)) + (_local17 * _local11));
};
};
if ((appearance.flags & SandyFlags.VERTEX_NORMAL_WORLD)){
_local31 = m_oGeometry.aVertexNormals.length;
while (--_local31 > -1) {
if (m_oGeometry.aVertex[int(_local31)].projected){
_local27 = m_oGeometry.aVertexNormals[int(_local31)];
_local15 = _local27.x;
_local16 = _local27.y;
_local17 = _local27.z;
m_oGeometry.aVertexNormals[int(_local31)].wx = (((_local15 * _local3) + (_local16 * _local6)) + (_local17 * _local9));
_local27.wy = (((_local15 * _local4) + (_local16 * _local7)) + (_local17 * _local10));
_local27.wz = (((_local15 * _local5) + (_local16 * _local8)) + (_local17 * _local11));
};
};
};
}
public function get useSingleContainer():Boolean{
return (m_bUseSingleContainer);
}
public function get enableBackFaceCulling():Boolean{
return (m_bBackFaceCulling);
}
private function __destroyPolygons():void{
var _local1:int;
var _local2:int;
if (((!((aPolygons == null))) && ((aPolygons.length > 0)))){
_local2 = aPolygons.length;
while (_local1 < _local2) {
if (broadcaster != null){
broadcaster.removeChild(aPolygons[_local1].broadcaster);
};
if (aPolygons[_local1]){
Polygon(aPolygons[int(_local1)]).destroy();
};
aPolygons[int(_local1)] = null;
_local1++;
};
};
aPolygons.splice(0);
aPolygons = null;
}
public function display(_arg1:Scene3D, _arg2:Sprite=null):void{
var _local3:Polygon;
m_aVisiblePoly.sortOn("depth", (Array.NUMERIC | Array.DESCENDING));
for each (_local3 in m_aVisiblePoly) {
_local3.display(_arg1, m_oContainer);
};
}
public function get depth():Number{
return (m_nDepth);
}
public function get visiblePolygonsCount():uint{
return (m_nVisiblePoly);
}
override public function set appearance(_arg1:Appearance):void{
var _local2:Polygon;
m_oAppearance = _arg1;
if (m_oGeometry){
for each (_local2 in aPolygons) {
_local2.appearance = m_oAppearance;
};
};
}
public function set geometryCenter(_arg1:Vector):void{
var _local2:Vector;
var _local3:Vertex;
_local2 = _arg1.clone();
_local2.sub(m_oGeomCenter);
if (m_oGeometry){
for each (_local3 in m_oGeometry.aVertex) {
_local3.x = (_local3.x + _local2.x);
_local3.y = (_local3.y + _local2.y);
_local3.z = (_local3.z + _local2.z);
};
};
m_oGeomCenter.copy(_arg1);
updateBoundingVolumes();
}
protected function _onInteraction(_arg1:Event):void{
var _local2:Point;
var _local3:Point;
var _local4:Point;
var _local5:Point;
var _local6:Polygon;
var _local7:Array;
var _local8:int;
var _local9:int;
var _local10:int;
var _local11:int;
var _local12:int;
var _local13:UVCoord;
var _local14:Vector;
_local2 = new Point(m_oContainer.mouseX, m_oContainer.mouseY);
_local3 = new Point();
_local4 = new Point();
_local5 = new Point();
_local7 = aPolygons.sortOn("depth", (Array.NUMERIC | Array.RETURNINDEXEDARRAY));
_local8 = aPolygons.length;
_local9 = 0;
while (_local9 < _local8) {
_local6 = aPolygons[_local7[int(_local9)]];
if (((!(_local6.visible)) && (m_bBackFaceCulling))){
} else {
_local10 = _local6.vertices.length;
_local11 = (_local10 - 2);
_local12 = 0;
while (_local12 < _local11) {
_local3.x = _local6.vertices[_local12].sx;
_local3.y = _local6.vertices[_local12].sy;
_local4.x = _local6.vertices[(_local12 + 1)].sx;
_local4.y = _local6.vertices[(_local12 + 1)].sy;
_local5.x = _local6.vertices[((_local12 + 2) % _local10)].sx;
_local5.y = _local6.vertices[((_local12 + 2) % _local10)].sy;
if (IntersectionMath.isPointInTriangle2D(_local2, _local3, _local4, _local5)){
_local13 = _local6.getUVFrom2D(_local2);
_local14 = _local6.get3DFrom2D(_local2);
m_oEB.broadcastEvent(new Shape3DEvent(_arg1.type, this, _local6, _local13, _local14, _arg1));
return;
};
_local12++;
};
};
_local9 = (_local9 + 1);
};
}
private function __generatePolygons(_arg1:Geometry3D):void{
var _local2:int;
var _local3:int;
var _local4:int;
_local2 = 0;
_local3 = 0;
_local4 = _arg1.aFacesVertexID.length;
aPolygons = new Array(_local4);
_local2 = 0;
while (_local2 < _local4) {
aPolygons[_local2] = new Polygon(this, _arg1, _arg1.aFacesVertexID[_local2], _arg1.aFacesUVCoordsID[_local2], _local2, _local2);
if (m_oAppearance){
aPolygons[int(_local2)].appearance = m_oAppearance;
};
this.broadcaster.addChild(aPolygons[int(_local2)].broadcaster);
_local2 = (_local2 + 1);
};
}
override public function set enableEvents(_arg1:Boolean):void{
var _local2:Polygon;
_local2 = null;
if (_arg1){
if (!m_bEv){
if (m_bUseSingleContainer == false){
for each (_local2 in aPolygons) {
_local2.enableEvents = true;
};
} else {
m_oContainer.addEventListener(MouseEvent.CLICK, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_UP, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_DOWN, _onInteraction);
m_oContainer.addEventListener(MouseEvent.ROLL_OVER, _onInteraction);
m_oContainer.addEventListener(MouseEvent.ROLL_OUT, _onInteraction);
m_oContainer.addEventListener(MouseEvent.DOUBLE_CLICK, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_MOVE, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_OVER, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_OUT, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_WHEEL, _onInteraction);
};
};
} else {
if (((!(_arg1)) && (m_bEv))){
if (m_bUseSingleContainer == false){
for each (_local2 in aPolygons) {
_local2.enableEvents = false;
};
} else {
m_oContainer.removeEventListener(MouseEvent.CLICK, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_UP, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_DOWN, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.ROLL_OVER, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.ROLL_OUT, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.DOUBLE_CLICK, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_MOVE, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_OVER, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_OUT, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_WHEEL, _onInteraction);
};
};
};
m_bEv = _arg1;
}
public function set geometry(_arg1:Geometry3D):void{
if (_arg1 == null){
return;
};
m_oGeometry = _arg1;
updateBoundingVolumes();
m_oGeometry.generateFaceNormals();
m_oGeometry.generateVertexNormals();
__destroyPolygons();
__generatePolygons(m_oGeometry);
}
}
}//package sandy.core.scenegraph
Section 82
//Sprite2D (sandy.core.scenegraph.Sprite2D)
package sandy.core.scenegraph {
import sandy.core.data.*;
import flash.display.*;
import flash.events.*;
import sandy.events.*;
import sandy.materials.*;
import sandy.core.*;
import sandy.view.*;
import sandy.bounds.*;
public class Sprite2D extends ATransformable implements IDisplayable {
protected var m_nRotation:Number;// = 0
private var m_nH2:Number;// = 0
private var m_oContainer:Sprite;
protected var m_nDepth:Number;
protected var _vx:Vertex;
protected var _vy:Vertex;
public var forcedDepth:Number;// = 0
protected var m_oMaterial:Material;
protected var m_nPerspScaleY:Number;// = 0
protected var m_nPerspScaleX:Number;// = 0
public var floorCenter:Boolean;// = false
protected var _nScale:Number;
private var m_bLightingEnabled:Boolean;// = false
public var fixedAngle:Boolean;// = false
protected var m_oContent:DisplayObject;
private var m_nW2:Number;// = 0
private var m_bEv:Boolean;// = false
public var enableForcedDepth:Boolean;// = false
protected var _v:Vertex;
public var autoCenter:Boolean;// = true
public function Sprite2D(_arg1:String="", _arg2:DisplayObject=null, _arg3:Number=1){
fixedAngle = false;
autoCenter = true;
floorCenter = false;
enableForcedDepth = false;
forcedDepth = 0;
m_bEv = false;
m_nW2 = 0;
m_nH2 = 0;
m_bLightingEnabled = false;
m_nPerspScaleX = 0;
m_nPerspScaleY = 0;
m_nRotation = 0;
super(_arg1);
m_oContainer = new Sprite();
_v = new Vertex();
_vx = new Vertex();
_vy = new Vertex();
boundingSphere = new BSphere();
boundingBox = null;
_nScale = _arg3;
if (_arg2){
content = _arg2;
};
setBoundingSphereRadius(30);
}
public function setBoundingSphereRadius(_arg1:Number):void{
boundingSphere.radius = _arg1;
}
public function set content(_arg1:DisplayObject):void{
_arg1.transform.matrix.identity();
if (m_oContent){
m_oContainer.removeChild(m_oContent);
};
m_oContent = _arg1;
m_oContainer.addChildAt(m_oContent, 0);
m_oContent.x = 0;
m_oContent.y = 0;
m_nW2 = (m_oContainer.width / 2);
m_nH2 = (m_oContainer.height / 2);
}
public function get material():Material{
return (m_oMaterial);
}
public function get scale():Number{
return (_nScale);
}
public function clear():void{
}
public function set material(_arg1:Material):void{
m_oMaterial = _arg1;
}
override public function cull(_arg1:Scene3D, _arg2:Frustum, _arg3:Matrix4, _arg4:Boolean):void{
super.cull(_arg1, _arg2, _arg3, _arg4);
if (viewMatrix){
boundingSphere.transform(viewMatrix);
culled = _arg2.sphereInFrustum(boundingSphere);
};
if (culled == CullingState.OUTSIDE){
container.visible = false;
} else {
if (culled == CullingState.INTERSECT){
if (boundingSphere.position.z <= _arg1.camera.near){
container.visible = false;
} else {
container.visible = true;
};
} else {
container.visible = true;
};
};
}
public function get enableEvents():Boolean{
return (m_bEv);
}
override public function remove():void{
if (m_oContainer.parent){
m_oContainer.parent.removeChild(m_oContainer);
};
super.remove();
}
override public function render(_arg1:Scene3D, _arg2:Camera3D):void{
if (((!((m_oMaterial == null))) && (!(_arg1.materialManager.isRegistered(m_oMaterial))))){
_arg1.materialManager.register(m_oMaterial);
};
_v.wx = ((((_v.x * viewMatrix.n11) + (_v.y * viewMatrix.n12)) + (_v.z * viewMatrix.n13)) + viewMatrix.n14);
_v.wy = ((((_v.x * viewMatrix.n21) + (_v.y * viewMatrix.n22)) + (_v.z * viewMatrix.n23)) + viewMatrix.n24);
_v.wz = ((((_v.x * viewMatrix.n31) + (_v.y * viewMatrix.n32)) + (_v.z * viewMatrix.n33)) + viewMatrix.n34);
m_nDepth = (enableForcedDepth) ? forcedDepth : _v.wz;
_arg2.projectVertex(_v);
_arg2.addToDisplayList(this);
_vx.copy(_v);
_vx.wx++;
_arg2.projectVertex(_vx);
_vy.copy(_v);
_vy.wy++;
_arg2.projectVertex(_vy);
m_nPerspScaleX = (_nScale * (_vx.sx - _v.sx));
m_nPerspScaleY = (_nScale * (_v.sy - _vy.sy));
m_nRotation = Math.atan2(viewMatrix.n12, viewMatrix.n22);
}
public function get container():Sprite{
return (m_oContainer);
}
public function set scale(_arg1:Number):void{
if (_arg1){
_nScale = _arg1;
};
}
public function display(_arg1:Scene3D, _arg2:Sprite=null):void{
m_oContainer.scaleX = m_nPerspScaleX;
m_oContainer.scaleY = m_nPerspScaleY;
m_oContainer.x = (_v.sx - (autoCenter) ? (m_oContainer.width / 2) : 0);
m_oContainer.y = (_v.sy - (autoCenter) ? (m_oContainer.height / 2) : 0);
m_oContainer.y = (_v.sy - (autoCenter) ? (m_oContainer.height / 2) : (floorCenter) ? m_oContainer.height : 0);
if (fixedAngle){
m_oContainer.rotation = ((m_nRotation * 180) / Math.PI);
};
if (m_oMaterial){
m_oMaterial.renderSprite(this, m_oMaterial, _arg1);
};
}
public function get depth():Number{
return (m_nDepth);
}
protected function _onInteraction(_arg1:Event):void{
m_oEB.broadcastEvent(new BubbleEvent(_arg1.type, this));
}
override public function set enableEvents(_arg1:Boolean):void{
if (((_arg1) && (!(m_bEv)))){
m_oContainer.addEventListener(MouseEvent.CLICK, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_UP, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_DOWN, _onInteraction);
m_oContainer.addEventListener(MouseEvent.ROLL_OVER, _onInteraction);
m_oContainer.addEventListener(MouseEvent.ROLL_OUT, _onInteraction);
m_oContainer.addEventListener(MouseEvent.DOUBLE_CLICK, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_MOVE, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_OVER, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_OUT, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_WHEEL, _onInteraction);
} else {
if (((!(_arg1)) && (m_bEv))){
m_oContainer.removeEventListener(MouseEvent.CLICK, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_UP, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_DOWN, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.ROLL_OVER, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.ROLL_OUT, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.DOUBLE_CLICK, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_MOVE, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_OVER, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_OUT, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_WHEEL, _onInteraction);
};
};
}
}
}//package sandy.core.scenegraph
Section 83
//TransformGroup (sandy.core.scenegraph.TransformGroup)
package sandy.core.scenegraph {
import sandy.core.data.*;
import sandy.core.*;
import sandy.view.*;
public class TransformGroup extends ATransformable {
public function TransformGroup(_arg1:String=""){
super(_arg1);
}
override public function toString():String{
return ("sandy.core.scenegraph.TransformGroup");
}
override public function cull(_arg1:Scene3D, _arg2:Frustum, _arg3:Matrix4, _arg4:Boolean):void{
var _local5:Boolean;
var _local6:Node;
if (visible == false){
culled = CullingState.OUTSIDE;
} else {
_local5 = ((_arg4) || (changed));
for each (_local6 in children) {
_local6.cull(_arg1, _arg2, _arg3, _local5);
};
};
}
public function clone(_arg1:String):TransformGroup{
var _local2:TransformGroup;
var _local3:*;
_local2 = new TransformGroup(_arg1);
for each (_local3 in children) {
if ((((((_local3 is Shape3D)) || ((_local3 is Group)))) || ((_local3 is TransformGroup)))){
_local2.addChild(_local3.clone(((_arg1 + "_") + _local3.name)));
};
};
return (_local2);
}
override public function render(_arg1:Scene3D, _arg2:Camera3D):void{
var _local3:Node;
for each (_local3 in children) {
if (_local3.culled != CullingState.OUTSIDE){
_local3.render(_arg1, _arg2);
};
_local3.changed = false;
_local3.culled = CullingState.INSIDE;
};
}
}
}//package sandy.core.scenegraph
Section 84
//SandyFlags (sandy.core.SandyFlags)
package sandy.core {
public final class SandyFlags {
public static const VERTEX_NORMAL_WORLD:uint = 2;
public static const POLYGON_NORMAL_WORLD:uint = 1;
}
}//package sandy.core
Section 85
//Scene3D (sandy.core.Scene3D)
package sandy.core {
import sandy.core.data.*;
import flash.display.*;
import flash.events.*;
import sandy.core.scenegraph.*;
import sandy.events.*;
import sandy.materials.*;
import sandy.core.light.*;
public class Scene3D extends EventDispatcher {
public const materialManager:MaterialManager;
public var container:Sprite;
private var m_bRectClipped:Boolean;// = true
private var _light:Light3D;
protected var m_sName:String;
public var root:Group;
public var camera:Camera3D;
public function Scene3D(_arg1:String, _arg2:Sprite, _arg3:Camera3D=null, _arg4:Group=null){
materialManager = new MaterialManager();
m_bRectClipped = true;
super();
if (_arg1 != null){
if (SceneLocator.getInstance().registerScene(_arg1, this)){
container = _arg2;
camera = _arg3;
root = _arg4;
if (((!((root == null))) && (!((camera == null))))){
root.addChild(camera);
};
};
m_sName = _arg1;
};
_light = new Light3D(new Vector(0, 0, 1), 100);
}
public function get name():String{
return (m_sName);
}
public function set light(_arg1:Light3D):void{
if (_light){
_light.destroy();
};
_light = _arg1;
dispatchEvent(new SandyEvent(SandyEvent.LIGHT_ADDED));
}
public function set rectClipping(_arg1:Boolean):void{
m_bRectClipped = _arg1;
if (camera){
camera.viewport.hasChanged = true;
};
}
public function render(_arg1:SandyEvent=null):void{
if (((((root) && (camera))) && (container))){
dispatchEvent(new SandyEvent(SandyEvent.SCENE_UPDATE));
root.update(this, null, false);
dispatchEvent(new SandyEvent(SandyEvent.SCENE_CULL));
root.cull(this, camera.frustrum, camera.invModelMatrix, camera.changed);
dispatchEvent(new SandyEvent(SandyEvent.SCENE_RENDER));
root.render(this, camera);
dispatchEvent(new SandyEvent(SandyEvent.SCENE_RENDER_DISPLAYLIST));
materialManager.begin(this);
camera.renderDisplayList(this);
materialManager.finish(this);
};
}
public function get light():Light3D{
return (_light);
}
public function dispose():Boolean{
SceneLocator.getInstance().unregisterScene(m_sName);
root.destroy();
if (root){
root = null;
};
if (camera){
camera = null;
};
if (_light){
_light = null;
};
return (true);
}
public function get rectClipping():Boolean{
return (m_bRectClipped);
}
}
}//package sandy.core
Section 86
//SceneLocator (sandy.core.SceneLocator)
package sandy.core {
import flash.utils.*;
public class SceneLocator {
private var _m:Dictionary;
private static var _oI:SceneLocator;
public function SceneLocator(_arg1:PrivateConstructorAccess){
_m = new Dictionary(true);
}
public function unregisterScene(_arg1:String):void{
_m[_arg1] = null;
}
public function getScene(_arg1:String):Scene3D{
if (!isRegistered(_arg1)){
trace(((("Can't locate scene instance with '" + _arg1) + "' name in ") + this));
};
return ((_m[_arg1] as Scene3D));
}
public function registerScene(_arg1:String, _arg2:Scene3D):Boolean{
if (isRegistered(_arg1)){
trace(((("scene instance is already registered with '" + _arg1) + "' name in ") + this));
return (false);
};
_m[_arg1] = _arg2;
return (true);
}
public function isRegistered(_arg1:String):Boolean{
return (!((_m[_arg1] == null)));
}
public static function getInstance():SceneLocator{
if (!_oI){
_oI = new SceneLocator(new PrivateConstructorAccess());
};
return (_oI);
}
}
}//package sandy.core
final class PrivateConstructorAccess {
private function PrivateConstructorAccess(){
}
}
Section 87
//BubbleEvent (sandy.events.BubbleEvent)
package sandy.events {
import flash.events.*;
public class BubbleEvent extends Event {
private var m_oTarget:Object;
public function BubbleEvent(_arg1:String, _arg2:Object){
super(_arg1, true, true);
m_oTarget = _arg2;
}
override public function toString():String{
return ("BubbleEvent");
}
override public function get target():Object{
return (m_oTarget);
}
}
}//package sandy.events
Section 88
//BubbleEventBroadcaster (sandy.events.BubbleEventBroadcaster)
package sandy.events {
import flash.events.*;
public final class BubbleEventBroadcaster extends EventBroadcaster {
private var m_oParent:BubbleEventBroadcaster;// = null
public function BubbleEventBroadcaster(){
m_oParent = null;
super();
}
public function get parent():BubbleEventBroadcaster{
return (m_oParent);
}
public function set parent(_arg1:BubbleEventBroadcaster):void{
m_oParent = _arg1;
}
override public function broadcastEvent(_arg1:Event):void{
if ((_arg1 is BubbleEvent)){
super.broadcastEvent(_arg1);
if (parent){
parent.broadcastEvent(_arg1);
};
} else {
parent.broadcastEvent(_arg1);
};
}
public function addChild(_arg1:BubbleEventBroadcaster):void{
_arg1.parent = this;
}
public function removeChild(_arg1:BubbleEventBroadcaster):void{
}
}
}//package sandy.events
Section 89
//EventBroadcaster (sandy.events.EventBroadcaster)
package sandy.events {
import flash.events.*;
import flash.utils.*;
import sandy.commands.*;
public class EventBroadcaster {
private var m_oAll:Dictionary;
private var m_oEventListener:Dictionary;
private var m_oDelegateDico:Dictionary;
private var m_oType:Dictionary;
private var listeners:Array;
public function EventBroadcaster(){
m_oAll = new Dictionary(true);
m_oType = new Dictionary(true);
m_oEventListener = new Dictionary(true);
m_oDelegateDico = new Dictionary(true);
super();
}
public function getListenerCollection(_arg1:String=null):Dictionary{
return (((_arg1)!=null) ? m_oType[_arg1] : m_oAll);
}
private function _storeRef(_arg1:String, _arg2:Object):void{
if (!m_oEventListener[_arg2]){
m_oEventListener[_arg2] = new Dictionary(true);
};
m_oEventListener[_arg2][_arg1] = _arg2;
}
public function removeEventListener(_arg1:String, _arg2:Object):Boolean{
var _local3:Dictionary;
if (hasListenerCollection(_arg1)){
_local3 = getListenerCollection(_arg1);
if ((_arg2 is Function)){
_arg2 = m_oDelegateDico[_arg2];
};
if (_local3[_arg2]){
_removeRef(_arg1, _arg2);
if (isDicoEmpty(_local3)){
removeListenerCollection(_arg1);
};
delete _local3[_arg2];
return (true);
} else {
return (false);
};
//unresolved jump
};
return (false);
}
public function isRegistered(_arg1:Object, _arg2:String=null):Boolean{
var _local3:*;
if (_arg2 == null){
return (m_oAll[_arg1]);
};
if (m_oType[_arg2]){
for each (_local3 in m_oType[_arg2]) {
if (_local3 == _arg1){
return (true);
};
};
return (false);
//unresolved jump
};
return (false);
}
public function addEventListener(_arg1:String, _arg2:Object, ... _args):Boolean{
var _local4:Delegate;
var _local5:Dictionary;
if ((_arg2 is Function)){
_local4 = new Delegate((_arg2 as Function));
if (_args){
_local4.setArgumentsArray(_args);
};
m_oDelegateDico[_arg2] = _local4;
_arg2 = _local4;
} else {
if (((_arg2.hasOwnProperty(_arg1)) && ((_arg2[_arg1] is Function)))){
} else {
if (((_arg2.hasOwnProperty("handleEvent")) && ((_arg2.handleEvent is Function)))){
} else {
return (false);
};
};
};
if (!isRegistered(_arg2)){
if (!m_oType[_arg1]){
m_oType[_arg1] = new Dictionary(true);
};
_local5 = getListenerCollection(_arg1);
if (!_local5[_arg2]){
_local5[_arg2] = _arg2;
_storeRef(_arg1, _arg2);
return (true);
};
};
return (false);
}
private function _removeRef(_arg1:String, _arg2:Object):void{
var _local3:Dictionary;
_local3 = m_oEventListener[_arg2];
delete _local3[_arg1];
if (isDicoEmpty(_local3)){
delete m_oEventListener[_arg2];
};
}
private function isDicoEmpty(_arg1:Dictionary):Boolean{
var _local2:uint;
var _local3:*;
_local2 = 0;
for each (_local3 in _arg1) {
_local2++;
};
return ((_local2 == 0));
}
public function removeListenerCollection(_arg1:String):void{
delete m_oType[_arg1];
}
public function _broadcastEvent(_arg1:Dictionary, _arg2:Event):void{
var _local3:String;
var _local4:Object;
_local3 = _arg2.type;
for each (_local4 in _arg1) {
if (((_local4.hasOwnProperty(_local3)) && ((_local4[_local3] is Function)))){
var _local7 = _local4;
_local7[_local3](_arg2);
} else {
if (((_local4.hasOwnProperty("handleEvent")) && ((_local4.handleEvent is Function)))){
_local4.handleEvent(_arg2);
};
};
};
}
public function broadcastEvent(_arg1:Event):void{
if (hasListenerCollection(_arg1.type)){
_broadcastEvent(getListenerCollection(_arg1.type), _arg1);
};
if (!isDicoEmpty(m_oAll)){
_broadcastEvent(m_oAll, _arg1);
};
}
public function hasListenerCollection(_arg1:String):Boolean{
return (!((m_oType[_arg1] == null)));
}
}
}//package sandy.events
Section 90
//SandyEvent (sandy.events.SandyEvent)
package sandy.events {
import flash.events.*;
public class SandyEvent extends Event {
public static const QUEUE_LOADER_ERROR:String = "queueLoaderError";
public static const SCENE_CULL:String = "scene_cull";
public static const QUEUE_COMPLETE:String = "queueComplete";
public static const SCENE_RENDER:String = "scene_render";
public static const CONTAINER_CREATED:String = "containerCreated";
public static const LIGHT_COLOR_CHANGED:String = "lightColorChanged";
public static const SCENE_RENDER_DISPLAYLIST:String = "scene_render_display_list";
public static const LIGHT_ADDED:String = "lightAdded";
public static const LIGHT_UPDATED:String = "lightUpdated";
public static const SCENE_UPDATE:String = "scene_update";
public function SandyEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
override public function clone():Event{
return (new SandyEvent(type, bubbles, cancelable));
}
}
}//package sandy.events
Section 91
//Shape3DEvent (sandy.events.Shape3DEvent)
package sandy.events {
import sandy.core.data.*;
import flash.events.*;
import sandy.core.scenegraph.*;
public class Shape3DEvent extends BubbleEvent {
public var point:Vector;
public var shape:Shape3D;
public var uv:UVCoord;
public var event:Event;
public var polygon:Polygon;
public function Shape3DEvent(_arg1:String, _arg2:Shape3D, _arg3:Polygon, _arg4:UVCoord, _arg5:Vector, _arg6:Event){
super(_arg1, _arg2);
shape = _arg2;
polygon = _arg3;
uv = _arg4;
point = _arg5;
event = _arg6;
}
}
}//package sandy.events
Section 92
//AAttributes (sandy.materials.attributes.AAttributes)
package sandy.materials.attributes {
import sandy.core.data.*;
import flash.display.*;
import sandy.core.scenegraph.*;
import sandy.materials.*;
import sandy.core.*;
public class AAttributes implements IAttributes {
protected var m_nFlags:uint;// = 0
public function AAttributes(){
m_nFlags = 0;
super();
}
public function unlink(_arg1:Polygon):void{
}
public function draw(_arg1:Graphics, _arg2:Polygon, _arg3:Material, _arg4:Scene3D):void{
}
public function get flags():uint{
return (m_nFlags);
}
public function drawOnSprite(_arg1:Sprite2D, _arg2:Material, _arg3:Scene3D):void{
}
public function init(_arg1:Polygon):void{
}
public function finish(_arg1:Scene3D):void{
}
public function begin(_arg1:Scene3D):void{
}
}
}//package sandy.materials.attributes
Section 93
//IAttributes (sandy.materials.attributes.IAttributes)
package sandy.materials.attributes {
import sandy.core.data.*;
import flash.display.*;
import sandy.core.scenegraph.*;
import sandy.materials.*;
import sandy.core.*;
public interface IAttributes {
function init(_arg1:Polygon):void;
function unlink(_arg1:Polygon):void;
function draw(_arg1:Graphics, _arg2:Polygon, _arg3:Material, _arg4:Scene3D):void;
function drawOnSprite(_arg1:Sprite2D, _arg2:Material, _arg3:Scene3D):void;
function begin(_arg1:Scene3D):void;
function finish(_arg1:Scene3D):void;
function get flags():uint;
}
}//package sandy.materials.attributes
Section 94
//LineAttributes (sandy.materials.attributes.LineAttributes)
package sandy.materials.attributes {
import sandy.core.data.*;
import flash.display.*;
import sandy.materials.*;
import sandy.core.*;
public class LineAttributes extends AAttributes {
public var modified:Boolean;
private var m_nAlpha:Number;
private var m_nColor:Number;
private var m_nThickness:Number;
public function LineAttributes(_arg1:uint=1, _arg2:uint=0, _arg3:Number=1){
m_nThickness = _arg1;
m_nAlpha = _arg3;
m_nColor = _arg2;
modified = true;
}
public function set color(_arg1:Number):void{
m_nColor = _arg1;
modified = true;
}
override public function draw(_arg1:Graphics, _arg2:Polygon, _arg3:Material, _arg4:Scene3D):void{
var _local5:Array;
var _local6:Vertex;
var _local7:int;
_local5 = (_arg2.isClipped) ? _arg2.cvertices : _arg2.vertices;
_arg1.lineStyle(m_nThickness, m_nColor, m_nAlpha);
_arg1.moveTo(_local5[0].sx, _local5[0].sy);
_local7 = _local5.length;
while ((_local6 = _local5[--_local7])) {
_arg1.lineTo(_local6.sx, _local6.sy);
};
}
public function get alpha():Number{
return (m_nAlpha);
}
public function get color():Number{
return (m_nColor);
}
public function get thickness():Number{
return (m_nThickness);
}
public function set thickness(_arg1:Number):void{
m_nThickness = _arg1;
modified = true;
}
public function set alpha(_arg1:Number):void{
m_nAlpha = _arg1;
modified = true;
}
}
}//package sandy.materials.attributes
Section 95
//MaterialAttributes (sandy.materials.attributes.MaterialAttributes)
package sandy.materials.attributes {
import sandy.core.data.*;
import flash.display.*;
import sandy.core.scenegraph.*;
import sandy.materials.*;
import sandy.core.*;
public class MaterialAttributes {
public var attributes:Array;
public function MaterialAttributes(... _args){
var _local2:int;
attributes = new Array();
super();
_local2 = 0;
while (_local2 < _args.length) {
if ((_args[_local2] is IAttributes)){
attributes.push(_args[_local2]);
};
_local2++;
};
}
public function unlink(_arg1:Polygon):void{
var _local2:IAttributes;
for each (_local2 in attributes) {
_local2.unlink(_arg1);
};
}
public function draw(_arg1:Graphics, _arg2:Polygon, _arg3:Material, _arg4:Scene3D):void{
var _local5:IAttributes;
for each (_local5 in attributes) {
_local5.draw(_arg1, _arg2, _arg3, _arg4);
};
}
public function drawOnSprite(_arg1:Sprite2D, _arg2:Material, _arg3:Scene3D):void{
var _local4:IAttributes;
for each (_local4 in attributes) {
_local4.drawOnSprite(_arg1, _arg2, _arg3);
};
}
public function begin(_arg1:Scene3D):void{
var _local2:IAttributes;
for each (_local2 in attributes) {
_local2.begin(_arg1);
};
}
public function init(_arg1:Polygon):void{
var _local2:IAttributes;
for each (_local2 in attributes) {
_local2.init(_arg1);
};
}
public function finish(_arg1:Scene3D):void{
var _local2:IAttributes;
for each (_local2 in attributes) {
_local2.finish(_arg1);
};
}
public function get flags():uint{
var _local1:uint;
var _local2:IAttributes;
_local1 = 0;
for each (_local2 in attributes) {
_local1 = (_local1 | _local2.flags);
};
return (_local1);
}
}
}//package sandy.materials.attributes
Section 96
//Appearance (sandy.materials.Appearance)
package sandy.materials {
public class Appearance {
private var m_oBackMaterial:Material;
private var m_oFrontMaterial:Material;
public function Appearance(_arg1:Material=null, _arg2:Material=null){
m_oFrontMaterial = ((_arg1)!=null) ? _arg1 : new ColorMaterial();
m_oBackMaterial = ((_arg2)!=null) ? _arg2 : m_oFrontMaterial;
}
public function set frontMaterial(_arg1:Material):void{
m_oFrontMaterial = _arg1;
if (m_oBackMaterial == null){
m_oBackMaterial = _arg1;
};
}
public function get flags():uint{
var _local1:uint;
_local1 = m_oFrontMaterial.flags;
if (m_oFrontMaterial != m_oBackMaterial){
_local1 = (_local1 | m_oBackMaterial.flags);
};
return (_local1);
}
public function toString():String{
return ("sandy.materials.Appearance");
}
public function get frontMaterial():Material{
return (m_oFrontMaterial);
}
public function get useVertexNormal():Boolean{
return (Boolean(((m_oBackMaterial.useVertexNormal) && (m_oFrontMaterial.useVertexNormal))));
}
public function get backMaterial():Material{
return (m_oBackMaterial);
}
public function set backMaterial(_arg1:Material):void{
m_oBackMaterial = _arg1;
if (m_oFrontMaterial == null){
m_oFrontMaterial = _arg1;
};
}
}
}//package sandy.materials
Section 97
//BitmapMaterial (sandy.materials.BitmapMaterial)
package sandy.materials {
import sandy.core.data.*;
import flash.display.*;
import sandy.core.*;
import flash.geom.*;
import flash.utils.*;
import sandy.materials.attributes.*;
import sandy.util.*;
import flash.filters.*;
public class BitmapMaterial extends Material {
protected const m_oOffset:Point;
protected const m_oTiling:Point;
protected var m_oPolygonMatrixMap:Dictionary;
private var m_nWidth:Number;
var graphics:Graphics;
private var m_nInvWidth:Number;
private var m_nRecLevel:int;// = 0
public var smooth:Boolean;// = false
protected var m_orgTexture:BitmapData;
var polygon:Polygon;
private var m_nInvHeight:Number;
protected var m_oTexture:BitmapData;
protected var matrix:Matrix;
protected var m_oCmf:ColorMatrixFilter;
public var maxRecurssionDepth:uint;// = 5
private var m_nHeight:Number;
var map:Matrix;
protected var m_oPoint:Point;
public var precision:uint;// = 0
public function BitmapMaterial(_arg1:BitmapData=null, _arg2:MaterialAttributes=null, _arg3:uint=0){
var _local4:BitmapData;
smooth = false;
precision = 0;
maxRecurssionDepth = 5;
map = new Matrix();
m_nRecLevel = 0;
m_oPoint = new Point();
matrix = new Matrix();
m_oTiling = new Point(1, 1);
m_oOffset = new Point(0, 0);
super(_arg2);
m_oType = MaterialType.BITMAP;
_local4 = new BitmapData(_arg1.width, _arg1.height, true, 0);
_local4.draw(_arg1);
texture = _local4;
m_oCmf = new ColorMatrixFilter();
m_oPolygonMatrixMap = new Dictionary(true);
precision = _arg3;
}
override public function init(_arg1:Polygon):void{
var _local2:Matrix;
var _local3:Array;
if (_arg1.vertices.length >= 3){
_local2 = null;
if ((((m_nWidth > 0)) && ((m_nHeight > 0)))){
_local3 = _arg1.aUVCoord;
if (_local3){
_local2 = _createTextureMatrix(_local3);
};
};
m_oPolygonMatrixMap[_arg1.id] = _local2;
};
super.init(_arg1);
}
override public function unlink(_arg1:Polygon):void{
if (m_oPolygonMatrixMap[_arg1.id]){
delete m_oPolygonMatrixMap[_arg1.id];
};
super.unlink(_arg1);
}
protected function _tesselatePolygon(_arg1:Array, _arg2:Array):void{
var _local3:Array;
var _local4:Array;
var _local5:Vertex;
var _local6:Vertex;
var _local7:Vertex;
_local3 = _arg1.slice();
_local4 = _arg2.slice();
if (_local3.length > 3){
_local3 = _local3.slice(0, 3);
_local4 = _local4.slice(0, 3);
_arg1.splice(1, 1);
_arg2.splice(1, 1);
_tesselatePolygon(_arg1, _arg2);
};
map = _createTextureMatrix(_local4);
_local5 = _local3[0];
_local6 = _local3[1];
_local7 = _local3[2];
if (precision == 0){
renderTriangle(map.a, map.b, map.c, map.d, map.tx, map.ty, _local5.sx, _local5.sy, _local6.sx, _local6.sy, _local7.sx, _local7.sy);
} else {
renderRec(map.a, map.b, map.c, map.d, map.tx, map.ty, _local5.sx, _local5.sy, _local5.wz, _local6.sx, _local6.sy, _local6.wz, _local7.sx, _local7.sy, _local7.wz);
};
_local3 = null;
_local4 = null;
}
protected function renderRec(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number, _arg13:Number, _arg14:Number, _arg15:Number):void{
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Number;
var _local37:Number;
var _local38:Number;
var _local39:Number;
var _local40:Number;
var _local41:Number;
var _local42:Number;
var _local43:Number;
var _local44:Number;
var _local45:Number;
var _local46:Number;
var _local47:Number;
var _local48:Number;
var _local49:Number;
m_nRecLevel++;
_local16 = (_arg1 + _arg1);
_local17 = (_arg2 + _arg2);
_local18 = (_arg3 + _arg3);
_local19 = (_arg4 + _arg4);
_local20 = (_arg5 + _arg5);
_local21 = (_arg6 + _arg6);
_local22 = (2 / (_arg9 + _arg12));
_local23 = (2 / (_arg12 + _arg15));
_local24 = (2 / (_arg15 + _arg9));
_local25 = (((_arg7 * _arg9) + (_arg10 * _arg12)) * _local22);
_local26 = (((_arg8 * _arg9) + (_arg11 * _arg12)) * _local22);
_local27 = (((_arg10 * _arg12) + (_arg13 * _arg15)) * _local23);
_local28 = (((_arg11 * _arg12) + (_arg14 * _arg15)) * _local23);
_local29 = (((_arg13 * _arg15) + (_arg7 * _arg9)) * _local24);
_local30 = (((_arg14 * _arg15) + (_arg8 * _arg9)) * _local24);
_local31 = ((_arg7 + _arg10) - _local25);
_local32 = ((_arg8 + _arg11) - _local26);
_local33 = ((_arg10 + _arg13) - _local27);
_local34 = ((_arg11 + _arg14) - _local28);
_local35 = ((_arg13 + _arg7) - _local29);
_local36 = ((_arg14 + _arg8) - _local30);
_local37 = ((_local31 * _local31) + (_local32 * _local32));
_local38 = ((_local33 * _local33) + (_local34 * _local34));
_local39 = ((_local35 * _local35) + (_local36 * _local36));
_local40 = (_local25 * 0.5);
_local41 = (_local26 * 0.5);
_local42 = ((_arg9 + _arg12) * 0.5);
_local43 = (_local29 * 0.5);
_local44 = (_local30 * 0.5);
_local45 = ((_arg15 + _arg9) * 0.5);
_local46 = (_local27 * 0.5);
_local47 = (_local28 * 0.5);
_local48 = ((_arg12 + _arg15) * 0.5);
if ((((m_nRecLevel > maxRecurssionDepth)) || ((((((_local37 <= precision)) && ((_local39 <= precision)))) && ((_local38 <= precision)))))){
renderTriangle(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg10, _arg11, _arg13, _arg14);
m_nRecLevel--;
return;
};
if ((((((_local37 > precision)) && ((_local39 > precision)))) && ((_local38 > precision)))){
renderRec(_local16, _local17, _local18, _local19, _local20, _local21, _arg7, _arg8, _arg9, _local40, _local41, _local42, _local43, _local44, _local45);
renderRec(_local16, _local17, _local18, _local19, (_local20 - 1), _local21, _local40, _local41, _local42, _arg10, _arg11, _arg12, _local46, _local47, _local48);
renderRec(_local16, _local17, _local18, _local19, _local20, (_local21 - 1), _local43, _local44, _local45, _local46, _local47, _local48, _arg13, _arg14, _arg15);
renderRec(-(_local16), -(_local17), -(_local18), -(_local19), (-(_local20) + 1), (-(_local21) + 1), _local46, _local47, _local48, _local43, _local44, _local45, _local40, _local41, _local42);
m_nRecLevel--;
return;
};
_local49 = Math.max(_local37, Math.max(_local39, _local38));
if (_local37 == _local49){
renderRec(_local16, _arg2, _local18, _arg4, _local20, _arg6, _arg7, _arg8, _arg9, _local40, _local41, _local42, _arg13, _arg14, _arg15);
renderRec((_local16 + _arg2), _arg2, (_local18 + _arg4), _arg4, ((_local20 + _arg6) - 1), _arg6, _local40, _local41, _local42, _arg10, _arg11, _arg12, _arg13, _arg14, _arg15);
m_nRecLevel--;
return;
};
if (_local39 == _local49){
renderRec(_arg1, _local17, _arg3, _local19, _arg5, _local21, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12, _local43, _local44, _local45);
renderRec(_arg1, (_local17 + _arg1), _arg3, (_local19 + _arg3), _arg5, ((_local21 + _arg5) - 1), _local43, _local44, _local45, _arg10, _arg11, _arg12, _arg13, _arg14, _arg15);
m_nRecLevel--;
return;
};
renderRec((_arg1 - _arg2), _local17, (_arg3 - _arg4), _local19, (_arg5 - _arg6), _local21, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12, _local46, _local47, _local48);
renderRec(_local16, (_arg2 - _arg1), _local18, (_arg4 - _arg3), _local20, (_arg6 - _arg5), _arg7, _arg8, _arg9, _local46, _local47, _local48, _arg13, _arg14, _arg15);
m_nRecLevel--;
}
public function get texture():BitmapData{
return (m_oTexture);
}
public function set texture(_arg1:BitmapData):void{
var _local2:Boolean;
var _local3:String;
var _local4:Polygon;
if (_arg1 == m_oTexture){
return;
};
if (m_oTexture){
m_oTexture.dispose();
};
if (m_orgTexture){
m_orgTexture.dispose();
};
_local2 = false;
if (m_nHeight != _arg1.height){
_local2 = true;
} else {
if (m_nWidth != _arg1.width){
_local2 = true;
};
};
m_oTexture = _arg1;
m_orgTexture = _arg1.clone();
m_nHeight = m_oTexture.height;
m_nWidth = m_oTexture.width;
m_nInvHeight = (1 / m_nHeight);
m_nInvWidth = (1 / m_nWidth);
if (_local2){
for (_local3 in m_oPolygonMatrixMap) {
_local4 = Polygon.POLYGON_MAP[_local3];
init(_local4);
};
};
}
protected function renderTriangle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
_local13 = (_arg9 - _arg7);
_local14 = (_arg10 - _arg8);
_local15 = (_arg11 - _arg7);
_local16 = (_arg12 - _arg8);
matrix.a = ((_arg1 * _local13) + (_arg2 * _local15));
matrix.b = ((_arg1 * _local14) + (_arg2 * _local16));
matrix.c = ((_arg3 * _local13) + (_arg4 * _local15));
matrix.d = ((_arg3 * _local14) + (_arg4 * _local16));
matrix.tx = (((_arg5 * _local13) + (_arg6 * _local15)) + _arg7);
matrix.ty = (((_arg5 * _local14) + (_arg6 * _local16)) + _arg8);
graphics.lineStyle();
graphics.beginBitmapFill(m_oTexture, matrix, repeat, smooth);
graphics.moveTo(_arg7, _arg8);
graphics.lineTo(_arg9, _arg10);
graphics.lineTo(_arg11, _arg12);
graphics.endFill();
}
override public function renderPolygon(_arg1:Scene3D, _arg2:Polygon, _arg3:Sprite):void{
var _local4:Array;
var _local5:Array;
var _local6:Vertex;
var _local7:Vertex;
var _local8:Vertex;
if (m_oTexture == null){
return;
};
polygon = _arg2;
graphics = _arg3.graphics;
m_nRecLevel = 0;
if (polygon.isClipped){
_local4 = _arg2.cvertices.slice();
_local5 = _arg2.caUVCoord.slice();
_tesselatePolygon(_local4, _local5);
} else {
if (polygon.vertices.length > 3){
_local4 = _arg2.vertices.slice();
_local5 = _arg2.aUVCoord.slice();
_tesselatePolygon(_local4, _local5);
} else {
_local4 = _arg2.vertices;
_local5 = _arg2.aUVCoord;
map = (m_oPolygonMatrixMap[polygon.id] as Matrix);
_local6 = _local4[0];
_local7 = _local4[1];
_local8 = _local4[2];
if (precision == 0){
renderTriangle(map.a, map.b, map.c, map.d, map.tx, map.ty, _local6.sx, _local6.sy, _local7.sx, _local7.sy, _local8.sx, _local8.sy);
} else {
renderRec(map.a, map.b, map.c, map.d, map.tx, map.ty, _local6.sx, _local6.sy, _local6.wz, _local7.sx, _local7.sy, _local7.wz, _local8.sx, _local8.sy, _local8.wz);
};
};
};
if (attributes){
attributes.draw(graphics, polygon, this, _arg1);
};
_local4 = null;
_local5 = null;
}
public function setTransparency(_arg1:Number):void{
var _local2:Array;
_arg1 = NumberUtil.constrain(_arg1, 0, 1);
if (m_oCmf){
m_oCmf = null;
};
_local2 = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, _arg1, 0];
m_oCmf = new ColorMatrixFilter(_local2);
texture.applyFilter(m_orgTexture, texture.rect, m_oPoint, m_oCmf);
}
protected function _createTextureMatrix(_arg1:Array):Matrix{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Matrix;
_local2 = (((_arg1[0].u * m_oTiling.x) + m_oOffset.x) * m_nWidth);
_local3 = (((_arg1[0].v * m_oTiling.y) + m_oOffset.y) * m_nHeight);
_local4 = (((_arg1[1].u * m_oTiling.x) + m_oOffset.x) * m_nWidth);
_local5 = (((_arg1[1].v * m_oTiling.y) + m_oOffset.y) * m_nHeight);
_local6 = (((_arg1[2].u * m_oTiling.x) + m_oOffset.x) * m_nWidth);
_local7 = (((_arg1[2].v * m_oTiling.y) + m_oOffset.y) * m_nHeight);
if ((((((_local2 == _local4)) && ((_local3 == _local5)))) || ((((_local2 == _local6)) && ((_local3 == _local7)))))){
_local2 = (_local2 - ((_local2)>0.05) ? 0.05 : -0.05);
_local3 = (_local3 - ((_local3)>0.07) ? 0.07 : -0.07);
};
if ((((_local6 == _local4)) && ((_local7 == _local5)))){
_local6 = (_local6 - ((_local6)>0.05) ? 0.04 : -0.04);
_local7 = (_local7 - ((_local7)>0.06) ? 0.06 : -0.06);
};
_local8 = new Matrix((_local4 - _local2), (_local5 - _local3), (_local6 - _local2), (_local7 - _local3), _local2, _local3);
_local8.invert();
return (_local8);
}
public function toString():String{
return ("sandy.materials.BitmapMaterial");
}
public function setTiling(_arg1:Number, _arg2:Number, _arg3:Number=0, _arg4:Number=0):void{
var _local5:String;
var _local6:Polygon;
m_oTiling.x = _arg1;
m_oTiling.y = _arg2;
m_oOffset.x = _arg3;
m_oOffset.y = _arg4;
for (_local5 in m_oPolygonMatrixMap) {
_local6 = Polygon.POLYGON_MAP[_local5];
init(_local6);
};
}
}
}//package sandy.materials
Section 98
//ColorMaterial (sandy.materials.ColorMaterial)
package sandy.materials {
import sandy.core.data.*;
import flash.display.*;
import sandy.core.*;
import sandy.materials.attributes.*;
public final class ColorMaterial extends Material {
private var m_nColor:Number;
private var m_nAlpha:Number;
public function ColorMaterial(_arg1:uint=0, _arg2:Number=1, _arg3:MaterialAttributes=null){
super(_arg3);
m_oType = MaterialType.COLOR;
m_nColor = _arg1;
m_nAlpha = _arg2;
}
override public function renderPolygon(_arg1:Scene3D, _arg2:Polygon, _arg3:Sprite):void{
var _local4:Array;
var _local5:Vertex;
var _local6:int;
var _local7:Graphics;
_local4 = (_arg2.isClipped) ? _arg2.cvertices : _arg2.vertices;
if (!_local4.length){
return;
};
_local6 = _local4.length;
_local7 = _arg3.graphics;
_local7.lineStyle();
_local7.beginFill(m_nColor, m_nAlpha);
_local7.moveTo(_local4[0].sx, _local4[0].sy);
while ((_local5 = _local4[--_local6])) {
_local7.lineTo(_local5.sx, _local5.sy);
};
_local7.endFill();
if (attributes){
attributes.draw(_local7, _arg2, this, _arg1);
};
}
public function set color(_arg1:Number):void{
m_nColor = _arg1;
m_bModified = true;
}
public function get color():Number{
return (m_nColor);
}
public function get alpha():Number{
return (m_nAlpha);
}
public function set alpha(_arg1:Number):void{
m_nAlpha = _arg1;
m_bModified = true;
}
}
}//package sandy.materials
Section 99
//Material (sandy.materials.Material)
package sandy.materials {
import sandy.core.data.*;
import flash.display.*;
import sandy.core.scenegraph.*;
import sandy.core.*;
import sandy.materials.attributes.*;
public class Material {
protected var m_nFlags:uint;// = 0
public var useVertexNormal:Boolean;// = false
public var attributes:MaterialAttributes;
public var repeat:Boolean;// = true
private var _id:Number;
public var lightingEnable:Boolean;// = false
protected var _useLight:Boolean;// = false
protected var m_oType:MaterialType;
protected var m_bModified:Boolean;
private var _filters:Array;
private static var create:Boolean;
private static var _ID_:Number = 0;
public function Material(_arg1:MaterialAttributes=null){
useVertexNormal = false;
lightingEnable = false;
repeat = true;
m_nFlags = 0;
_useLight = false;
super();
_filters = [];
_useLight = false;
_id = _ID_++;
attributes = ((_arg1)==null) ? new MaterialAttributes() : _arg1;
m_bModified = true;
m_oType = MaterialType.NONE;
}
public function get filters():Array{
return (_filters);
}
public function renderPolygon(_arg1:Scene3D, _arg2:Polygon, _arg3:Sprite):void{
if (attributes){
attributes.draw(_arg3.graphics, _arg2, this, _arg1);
};
}
public function get modified():Boolean{
return (m_bModified);
}
public function get flags():uint{
var _local1:uint;
_local1 = m_nFlags;
_local1 = (_local1 | attributes.flags);
return (_local1);
}
public function init(_arg1:Polygon):void{
attributes.init(_arg1);
}
public function unlink(_arg1:Polygon):void{
attributes.unlink(_arg1);
}
public function finish(_arg1:Scene3D):void{
attributes.finish(_arg1);
}
public function get id():Number{
return (_id);
}
public function begin(_arg1:Scene3D):void{
attributes.begin(_arg1);
}
public function get type():MaterialType{
return (m_oType);
}
public function renderSprite(_arg1:Sprite2D, _arg2:Material, _arg3:Scene3D):void{
if (attributes){
attributes.drawOnSprite(_arg1, _arg2, _arg3);
};
}
public function set filters(_arg1:Array):void{
_filters = _arg1;
m_bModified = true;
}
}
}//package sandy.materials
Section 100
//MaterialManager (sandy.materials.MaterialManager)
package sandy.materials {
import sandy.core.*;
public final class MaterialManager {
private const m_aList:Array;
public function MaterialManager(){
m_aList = new Array();
super();
}
public function finish(_arg1:Scene3D):void{
var _local2:Material;
for each (_local2 in m_aList) {
_local2.finish(_arg1);
};
}
public function unregister(_arg1:Material):void{
var _local2:int;
_local2 = 0;
while (_local2 < m_aList.length) {
if (m_aList[_local2] == _arg1){
m_aList.splice(_local2, 1);
return;
};
_local2 = (_local2 + 1);
};
}
public function begin(_arg1:Scene3D):void{
var _local2:Material;
for each (_local2 in m_aList) {
_local2.begin(_arg1);
};
}
public function register(_arg1:Material):void{
m_aList.push(_arg1);
}
public function isRegistered(_arg1:Material):Boolean{
var _local2:int;
_local2 = 0;
while (_local2 < m_aList.length) {
if (m_aList[_local2] == _arg1){
return (true);
};
_local2 = (_local2 + 1);
};
return (false);
}
}
}//package sandy.materials
Section 101
//MaterialType (sandy.materials.MaterialType)
package sandy.materials {
public class MaterialType {
private var m_sType:String;
public static const COLOR:MaterialType = new MaterialType("color");
;
public static const WIREFRAME:MaterialType = new MaterialType("wireframe");
;
public static const OUTLINE:MaterialType = new MaterialType("outline");
;
public static const BITMAP:MaterialType = new MaterialType("bitmap");
;
public static const NONE:MaterialType = new MaterialType("default");
;
public static const VIDEO:MaterialType = new MaterialType("video");
;
public static const MOVIE:MaterialType = new MaterialType("movie");
;
public function MaterialType(_arg1:String){
m_sType = _arg1;
}
}
}//package sandy.materials
Section 102
//MovieMaterial (sandy.materials.MovieMaterial)
package sandy.materials {
import sandy.core.data.*;
import flash.display.*;
import flash.events.*;
import sandy.core.*;
import flash.geom.*;
import flash.utils.*;
import sandy.materials.attributes.*;
import sandy.math.*;
import sandy.util.*;
public class MovieMaterial extends BitmapMaterial {
private var m_bUpdate:Boolean;
private var m_oTimer:Timer;
private var m_oMovie:Sprite;
private var m_oAlpha:ColorTransform;
public static var DEFAULT_FILL_COLOR:uint = 0;
public function MovieMaterial(_arg1:Sprite, _arg2:uint=40, _arg3:MaterialAttributes=null, _arg4:Boolean=false, _arg5:Number=0, _arg6:Number=0){
var _local7:Number;
var _local8:Number;
var _local9:BitmapData;
var _local10:Rectangle;
m_oAlpha = new ColorTransform();
if (_arg4){
_local9 = new BitmapData(_arg1.width, _arg1.height, true, 0);
_local9.draw(_arg1);
_local10 = _local9.getColorBoundsRect(4278190080, 0, false);
_local7 = _local10.width;
_local8 = _local10.height;
} else {
_local7 = (_arg6) ? _arg6 : _arg1.width;
_local8 = (_arg5) ? _arg5 : _arg1.height;
};
super(new BitmapData(_local7, _local8, true, DEFAULT_FILL_COLOR), _arg3);
m_oMovie = _arg1;
m_oType = MaterialType.MOVIE;
m_bUpdate = true;
m_oTimer = new Timer(_arg2);
m_oTimer.addEventListener(TimerEvent.TIMER, _update);
m_oTimer.start();
if (_local9){
_local9.dispose();
_local9 = null;
};
_local10 = null;
_local7 = undefined;
_local8 = undefined;
}
public function stop():void{
m_oTimer.stop();
}
public function get movie():Sprite{
return (m_oMovie);
}
override public function renderPolygon(_arg1:Scene3D, _arg2:Polygon, _arg3:Sprite):void{
m_bUpdate = true;
super.renderPolygon(_arg1, _arg2, _arg3);
}
override public function setTransparency(_arg1:Number):void{
m_oAlpha.alphaMultiplier = NumberUtil.constrain(_arg1, 0, 1);
}
public function start():void{
m_oTimer.start();
}
private function _update(_arg1:Event):void{
if (m_bUpdate){
m_oTexture.fillRect(m_oTexture.rect, ColorMath.applyAlpha(DEFAULT_FILL_COLOR, m_oAlpha.alphaMultiplier));
m_oTexture.draw(m_oMovie, null, m_oAlpha, null, null, smooth);
};
m_bUpdate = false;
}
}
}//package sandy.materials
Section 103
//WireFrameMaterial (sandy.materials.WireFrameMaterial)
package sandy.materials {
import sandy.core.data.*;
import flash.display.*;
import sandy.core.*;
import sandy.materials.attributes.*;
public final class WireFrameMaterial extends Material {
public function WireFrameMaterial(_arg1:uint=1, _arg2:uint=0, _arg3:Number=1, _arg4:MaterialAttributes=null){
super(_arg4);
m_oType = MaterialType.WIREFRAME;
attributes.attributes.push(new LineAttributes(_arg1, _arg2, _arg3));
}
override public function renderPolygon(_arg1:Scene3D, _arg2:Polygon, _arg3:Sprite):void{
attributes.draw(_arg3.graphics, _arg2, this, _arg1);
}
}
}//package sandy.materials
Section 104
//ColorMath (sandy.math.ColorMath)
package sandy.math {
public class ColorMath {
public static function applyAlpha(_arg1:uint, _arg2:Number):uint{
var _local3:uint;
_local3 = (_arg1 / 16777216);
return (((_arg1 & 0xFFFFFF) + (Math.floor((_arg2 * _local3)) * 16777216)));
}
public static function calculateLitColour(_arg1:Number, _arg2:Number):Number{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Array;
var _local16:Number;
var _local17:Number;
var _local18:Number;
_local3 = ((_arg1 >> 16) & 0xFF);
_local4 = ((_arg1 >> 8) & 0xFF);
_local5 = (_arg1 & 0xFF);
_local3 = (_local3 * 0.00390625);
_local4 = (_local4 * 0.00390625);
_local5 = (_local5 * 0.00390625);
_local14 = 0;
_local15 = [_local3, _local4, _local5];
_local15.sort();
_local6 = _local15[0];
_local7 = _local15[1];
_local8 = _local15[2];
_local16 = (_local8 - _local6);
_local10 = ((_local6 + _local8) * 0.5);
if (_local10 == 0){
_local11 = 1;
} else {
_local9 = (_local16 * 0.5);
if (_local10 < 0.5){
_local11 = (_local9 / _local10);
} else {
_local11 = (_local9 / (1 - _local10));
};
if (_local16 != 0){
while (true) {
if (_local3 == _local8){
if (_local5 == _local6){
_local14 = 0;
} else {
_local14 = 5;
};
break;
};
if (_local4 == _local8){
if (_local5 == _local6){
_local14 = 1;
} else {
_local14 = 2;
};
break;
};
if (_local3 == _local6){
_local14 = 3;
} else {
_local14 = 4;
};
break;
};
if ((_local14 % 2) == 0){
_local13 = (_local7 - _local6);
} else {
_local13 = (_local8 - _local7);
};
_local13 = (_local13 / _local16);
_local12 = (60 * (_local14 + _local13));
};
};
if (_arg2 < 0.5){
_local9 = (_local11 * _arg2);
} else {
_local9 = (_local11 * (1 - _arg2));
};
_local6 = (_arg2 - _local9);
_local8 = (_arg2 + _local9);
_local14 = Math.floor((_local12 / 60));
_local13 = (((_local12 - (_local14 * 60)) * _local9) / 30);
_local14 = (_local14 % 6);
_local17 = (_local6 + _local13);
_local18 = (_local8 - _local13);
switch (_local14){
case 0:
_local3 = _local8;
_local4 = _local17;
_local5 = _local6;
break;
case 1:
_local3 = _local18;
_local4 = _local8;
_local5 = _local6;
break;
case 2:
_local3 = _local6;
_local4 = _local8;
_local5 = _local17;
break;
case 3:
_local3 = _local6;
_local4 = _local18;
_local5 = _local8;
break;
case 4:
_local3 = _local17;
_local4 = _local6;
_local5 = _local8;
break;
case 5:
_local3 = _local8;
_local4 = _local6;
_local5 = _local18;
break;
};
return (((((_local3 * 0x0100) << 16) | ((_local4 * 0x0100) << 8)) | (_local5 * 0x0100)));
}
public static function hex2rgb(_arg1:Number):Object{
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local2 = ((0xFF0000 & _arg1) >> 16);
_local3 = ((0xFF00 & _arg1) >> 8);
_local4 = (0xFF & _arg1);
return ({r:_local2, g:_local3, b:_local4});
}
public static function rgb2hex(_arg1:Number, _arg2:Number, _arg3:Number):Number{
return ((((_arg1 << 16) | (_arg2 << 8)) | _arg3));
}
public static function hex2rgbn(_arg1:Number):Object{
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local2 = ((0xFF0000 & _arg1) >> 16);
_local3 = ((0xFF00 & _arg1) >> 8);
_local4 = (0xFF & _arg1);
return ({r:(_local2 / 0xFF), g:(_local3 / 0xFF), b:(_local4 / 0xFF)});
}
}
}//package sandy.math
Section 105
//FastMath (sandy.math.FastMath)
package sandy.math {
public class FastMath {
public static const PRECISION_DIV_2PI:Number = 20860.7567009409;
public static const HALF_PI:Number = 1.5707963267949;
public static const TWO_PI:Number = 6.28318530717959;
public static const PRECISION_S:int = 131071;
public static const initialized:Boolean = initialize();
public static const PRECISION:int = 131072;
private static var RAD_SLICE:Number = 4.79368996214263E-5;
private static var tanTable:Array = new Array(PRECISION);
private static var sinTable:Array = new Array(PRECISION);
public static function tan(_arg1:Number):Number{
return (tanTable[int(radToIndex(_arg1))]);
}
public static function sin(_arg1:Number):Number{
return (sinTable[int(radToIndex(_arg1))]);
}
private static function radToIndex(_arg1:Number):int{
return (int(((_arg1 * PRECISION_DIV_2PI) & PRECISION_S)));
}
public static function cos(_arg1:Number):Number{
return (sinTable[int(radToIndex((HALF_PI - _arg1)))]);
}
private static function initialize():Boolean{
var _local1:Number;
var _local2:int;
_local1 = 0;
_local2 = 0;
while (_local2 < PRECISION) {
_local1 = Number((_local2 * RAD_SLICE));
sinTable[_local2] = Number(Math.sin(_local1));
tanTable[_local2] = Number(Math.tan(_local1));
_local2++;
};
return (true);
}
}
}//package sandy.math
Section 106
//IntersectionMath (sandy.math.IntersectionMath)
package sandy.math {
import sandy.core.data.*;
import flash.geom.*;
import sandy.bounds.*;
import sandy.util.*;
public final class IntersectionMath {
public static function isPointInTriangle2D(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point):Boolean{
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local5 = (1 / (((_arg2.y - _arg4.y) * (_arg3.x - _arg4.x)) + ((_arg3.y - _arg4.y) * (_arg4.x - _arg2.x))));
_local6 = (_local5 * (((_arg1.y - _arg4.y) * (_arg3.x - _arg4.x)) + ((_arg3.y - _arg4.y) * (_arg4.x - _arg1.x))));
_local7 = (_local5 * (((_arg1.y - _arg2.y) * (_arg4.x - _arg2.x)) + ((_arg4.y - _arg2.y) * (_arg2.x - _arg1.x))));
_local8 = (_local5 * (((_arg1.y - _arg3.y) * (_arg2.x - _arg3.x)) + ((_arg2.y - _arg3.y) * (_arg3.x - _arg1.x))));
return ((((((_local6 > 0)) && ((_local7 > 0)))) && ((_local8 > 0))));
}
public static function intersectionLine3D(_arg1:Vector, _arg2:Vector, _arg3:Vector, _arg4:Vector):Array{
var _local5:Array;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
_local5 = [new Vector((0.5 * (_arg1.x + _arg2.x)), (0.5 * (_arg1.y + _arg2.y)), (0.5 * (_arg1.z + _arg2.z))), new Vector((0.5 * (_arg3.x + _arg4.x)), (0.5 * (_arg3.y + _arg4.y)), (0.5 * (_arg3.z + _arg4.z)))];
_local6 = (_arg1.x - _arg3.x);
_local7 = (_arg1.y - _arg3.y);
_local8 = (_arg1.z - _arg3.z);
_local9 = (_arg4.x - _arg3.x);
_local10 = (_arg4.y - _arg3.y);
_local11 = (_arg4.z - _arg3.z);
if (((((NumberUtil.isZero(_local9)) && (NumberUtil.isZero(_local10)))) && (NumberUtil.isZero(_local11)))){
return (_local5);
};
_local12 = (_arg2.x - _arg1.x);
_local13 = (_arg2.y - _arg1.y);
_local14 = (_arg2.z - _arg1.z);
if (((((NumberUtil.isZero(_local12)) && (NumberUtil.isZero(_local13)))) && (NumberUtil.isZero(_local14)))){
return (_local5);
};
_local15 = (((_local6 * _local9) + (_local7 * _local10)) + (_local8 * _local11));
_local16 = (((_local9 * _local12) + (_local10 * _local13)) + (_local11 * _local14));
_local17 = (((_local6 * _local12) + (_local7 * _local13)) + (_local8 * _local14));
_local18 = (((_local9 * _local9) + (_local10 * _local10)) + (_local11 * _local11));
_local19 = (((_local12 * _local12) + (_local13 * _local13)) + (_local14 * _local14));
_local20 = ((_local19 * _local18) - (_local16 * _local16));
if (NumberUtil.isZero(_local20)){
return (_local5);
};
_local21 = (((_local15 * _local16) - (_local17 * _local18)) / _local20);
_local22 = ((_local15 + (_local16 * _local21)) / _local18);
return ([new Vector((_arg1.x + (_local21 * _local12)), (_arg1.y + (_local21 * _local13)), (_arg1.z + (_local21 * _local14))), new Vector((_arg3.x + (_local22 * _local9)), (_arg3.y + (_local22 * _local10)), (_arg3.z + (_local22 * _local11)))]);
}
public static function intersectionBSphere(_arg1:BSphere, _arg2:BSphere):Boolean{
var _local3:Vector;
var _local4:Number;
var _local5:Number;
_local3 = _arg1.position.clone();
_local3.sub(_arg2.position);
_local4 = (_arg1.radius + _arg2.radius);
_local5 = _local3.getNorm();
return ((_local5 <= _local4));
}
public static function intersectionLine2D(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point):Point{
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
_local5 = _arg1.x;
_local6 = _arg1.y;
_local7 = _arg2.x;
_local8 = _arg2.y;
_local9 = _arg3.x;
_local10 = _arg3.y;
_local11 = _arg4.x;
_local12 = _arg4.y;
_local13 = (((_local12 - _local10) * (_local7 - _local5)) - ((_local11 - _local9) * (_local8 - _local6)));
if (_local13 == 0){
return (null);
};
_local14 = (((_local11 - _local9) * (_local6 - _local10)) - ((_local12 - _local10) * (_local5 - _local9)));
_local14 = (_local14 / _local13);
return (new Point((_local5 + (_local14 * (_local7 - _local5))), (_local6 + (_local14 * (_local8 - _local6)))));
}
}
}//package sandy.math
Section 107
//Matrix4Math (sandy.math.Matrix4Math)
package sandy.math {
import sandy.core.data.*;
import sandy.util.*;
public class Matrix4Math {
private const _fastMathInitialized:Boolean;
public static var USE_FAST_MATH:Boolean = false;
public function Matrix4Math(){
_fastMathInitialized = FastMath.initialized;
super();
}
public static function getInverse(_arg1:Matrix4):Matrix4{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
_local2 = Matrix4Math.det(_arg1);
if (Math.abs(_local2) < 0.001){
return (null);
};
_local2 = (1 / _local2);
_local3 = _arg1.n11;
_local4 = _arg1.n21;
_local5 = _arg1.n31;
_local6 = _arg1.n41;
_local7 = _arg1.n12;
_local8 = _arg1.n22;
_local9 = _arg1.n32;
_local10 = _arg1.n42;
_local11 = _arg1.n13;
_local12 = _arg1.n23;
_local13 = _arg1.n33;
_local14 = _arg1.n43;
_local15 = _arg1.n14;
_local16 = _arg1.n24;
_local17 = _arg1.n34;
_local18 = _arg1.n44;
return (new Matrix4((_local2 * (((_local8 * ((_local13 * _local18) - (_local14 * _local17))) - (_local9 * ((_local12 * _local18) - (_local14 * _local16)))) + (_local10 * ((_local12 * _local17) - (_local13 * _local16))))), (-(_local2) * (((_local7 * ((_local13 * _local18) - (_local14 * _local17))) - (_local9 * ((_local11 * _local18) - (_local14 * _local15)))) + (_local10 * ((_local11 * _local17) - (_local13 * _local15))))), (_local2 * (((_local7 * ((_local12 * _local18) - (_local14 * _local16))) - (_local8 * ((_local11 * _local18) - (_local14 * _local15)))) + (_local10 * ((_local11 * _local16) - (_local12 * _local15))))), (-(_local2) * (((_local7 * ((_local12 * _local17) - (_local13 * _local16))) - (_local8 * ((_local11 * _local17) - (_local13 * _local15)))) + (_local9 * ((_local11 * _local16) - (_local12 * _local15))))), (-(_local2) * (((_local4 * ((_local13 * _local18) - (_local14 * _local17))) - (_local5 * ((_local12 * _local18) - (_local14 * _local16)))) + (_local6 * ((_local12 * _local17) - (_local13 * _local16))))), (_local2 * (((_local3 * ((_local13 * _local18) - (_local14 * _local17))) - (_local5 * ((_local11 * _local18) - (_local14 * _local15)))) + (_local6 * ((_local11 * _local17) - (_local13 * _local15))))), (-(_local2) * (((_local3 * ((_local12 * _local18) - (_local14 * _local16))) - (_local4 * ((_local11 * _local18) - (_local14 * _local15)))) + (_local6 * ((_local11 * _local16) - (_local12 * _local15))))), (_local2 * (((_local3 * ((_local12 * _local17) - (_local13 * _local16))) - (_local4 * ((_local11 * _local17) - (_local13 * _local15)))) + (_local5 * ((_local11 * _local16) - (_local12 * _local15))))), (_local2 * (((_local4 * ((_local9 * _local18) - (_local10 * _local17))) - (_local5 * ((_local8 * _local18) - (_local10 * _local16)))) + (_local6 * ((_local8 * _local17) - (_local9 * _local16))))), (-(_local2) * (((_local3 * ((_local9 * _local18) - (_local10 * _local17))) - (_local5 * ((_local7 * _local18) - (_local10 * _local15)))) + (_local6 * ((_local7 * _local17) - (_local9 * _local15))))), (_local2 * (((_local3 * ((_local8 * _local18) - (_local10 * _local16))) - (_local4 * ((_local7 * _local18) - (_local10 * _local15)))) + (_local6 * ((_local7 * _local16) - (_local8 * _local15))))), (-(_local2) * (((_local3 * ((_local8 * _local17) - (_local9 * _local16))) - (_local4 * ((_local7 * _local17) - (_local9 * _local15)))) + (_local5 * ((_local7 * _local16) - (_local8 * _local15))))), (-(_local2) * (((_local4 * ((_local9 * _local14) - (_local10 * _local13))) - (_local5 * ((_local8 * _local14) - (_local10 * _local12)))) + (_local6 * ((_local8 * _local13) - (_local9 * _local12))))), (_local2 * (((_local3 * ((_local9 * _local14) - (_local10 * _local13))) - (_local5 * ((_local7 * _local14) - (_local10 * _local11)))) + (_local6 * ((_local7 * _local13) - (_local9 * _local11))))), (-(_local2) * (((_local3 * ((_local8 * _local14) - (_local10 * _local12))) - (_local4 * ((_local7 * _local14) - (_local10 * _local11)))) + (_local6 * ((_local7 * _local12) - (_local8 * _local11))))), (_local2 * (((_local3 * ((_local8 * _local13) - (_local9 * _local12))) - (_local4 * ((_local7 * _local13) - (_local9 * _local11)))) + (_local5 * ((_local7 * _local12) - (_local8 * _local11)))))));
}
public static function det3x3(_arg1:Matrix4):Number{
return ((((_arg1.n11 * ((_arg1.n22 * _arg1.n33) - (_arg1.n23 * _arg1.n32))) + (_arg1.n21 * ((_arg1.n32 * _arg1.n13) - (_arg1.n12 * _arg1.n33)))) + (_arg1.n31 * ((_arg1.n12 * _arg1.n23) - (_arg1.n22 * _arg1.n13)))));
}
public static function multiply4x3(_arg1:Matrix4, _arg2:Matrix4):Matrix4{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
_local3 = _arg1.n11;
_local4 = _arg2.n11;
_local5 = _arg1.n21;
_local6 = _arg2.n21;
_local7 = _arg1.n31;
_local8 = _arg2.n31;
_local9 = _arg1.n12;
_local10 = _arg2.n12;
_local11 = _arg1.n22;
_local12 = _arg2.n22;
_local13 = _arg1.n32;
_local14 = _arg2.n32;
_local15 = _arg1.n13;
_local16 = _arg2.n13;
_local17 = _arg1.n23;
_local18 = _arg2.n23;
_local19 = _arg1.n33;
_local20 = _arg2.n33;
_local21 = _arg2.n14;
_local22 = _arg2.n24;
_local23 = _arg2.n34;
return (new Matrix4((((_local3 * _local4) + (_local9 * _local6)) + (_local15 * _local8)), (((_local3 * _local10) + (_local9 * _local12)) + (_local15 * _local14)), (((_local3 * _local16) + (_local9 * _local18)) + (_local15 * _local20)), ((((_local21 * _local3) + (_local22 * _local9)) + (_local23 * _local15)) + _arg1.n14), (((_local5 * _local4) + (_local11 * _local6)) + (_local17 * _local8)), (((_local5 * _local10) + (_local11 * _local12)) + (_local17 * _local14)), (((_local5 * _local16) + (_local11 * _local18)) + (_local17 * _local20)), ((((_local21 * _local5) + (_local22 * _local11)) + (_local23 * _local17)) + _arg1.n24), (((_local7 * _local4) + (_local13 * _local6)) + (_local19 * _local8)), (((_local7 * _local10) + (_local13 * _local12)) + (_local19 * _local14)), (((_local7 * _local16) + (_local13 * _local18)) + (_local19 * _local20)), ((((_local21 * _local7) + (_local22 * _local13)) + (_local23 * _local19)) + _arg1.n34), 0, 0, 0, 1));
}
public static function multiply(_arg1:Matrix4, _arg2:Matrix4):Matrix4{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
_local3 = _arg1.n11;
_local4 = _arg1.n21;
_local5 = _arg1.n31;
_local6 = _arg1.n41;
_local7 = _arg1.n12;
_local8 = _arg1.n22;
_local9 = _arg1.n32;
_local10 = _arg1.n42;
_local11 = _arg1.n13;
_local12 = _arg1.n23;
_local13 = _arg1.n33;
_local14 = _arg1.n43;
_local15 = _arg1.n14;
_local16 = _arg1.n24;
_local17 = _arg1.n34;
_local18 = _arg1.n44;
_local19 = _arg2.n11;
_local20 = _arg2.n21;
_local21 = _arg2.n31;
_local22 = _arg2.n41;
_local23 = _arg2.n12;
_local24 = _arg2.n22;
_local25 = _arg2.n32;
_local26 = _arg2.n42;
_local27 = _arg2.n13;
_local28 = _arg2.n23;
_local29 = _arg2.n33;
_local30 = _arg2.n43;
_local31 = _arg2.n14;
_local32 = _arg2.n24;
_local33 = _arg2.n34;
_local34 = _arg2.n44;
return (new Matrix4(((((_local3 * _local19) + (_local7 * _local20)) + (_local11 * _local21)) + (_local15 * _local22)), ((((_local3 * _local23) + (_local7 * _local24)) + (_local11 * _local25)) + (_local15 * _local26)), ((((_local3 * _local27) + (_local7 * _local28)) + (_local11 * _local29)) + (_local15 * _local30)), ((((_local3 * _local31) + (_local7 * _local32)) + (_local11 * _local33)) + (_local15 * _local34)), ((((_local4 * _local19) + (_local8 * _local20)) + (_local12 * _local21)) + (_local16 * _local22)), ((((_local4 * _local23) + (_local8 * _local24)) + (_local12 * _local25)) + (_local16 * _local26)), ((((_local4 * _local27) + (_local8 * _local28)) + (_local12 * _local29)) + (_local16 * _local30)), ((((_local4 * _local31) + (_local8 * _local32)) + (_local12 * _local33)) + (_local16 * _local34)), ((((_local5 * _local19) + (_local9 * _local20)) + (_local13 * _local21)) + (_local17 * _local22)), ((((_local5 * _local23) + (_local9 * _local24)) + (_local13 * _local25)) + (_local17 * _local26)), ((((_local5 * _local27) + (_local9 * _local28)) + (_local13 * _local29)) + (_local17 * _local30)), ((((_local5 * _local31) + (_local9 * _local32)) + (_local13 * _local33)) + (_local17 * _local34)), ((((_local6 * _local19) + (_local10 * _local20)) + (_local14 * _local21)) + (_local18 * _local22)), ((((_local6 * _local23) + (_local10 * _local24)) + (_local14 * _local25)) + (_local18 * _local26)), ((((_local6 * _local27) + (_local10 * _local28)) + (_local14 * _local29)) + (_local18 * _local30)), ((((_local6 * _local31) + (_local10 * _local32)) + (_local14 * _local33)) + (_local18 * _local34))));
}
public static function eulerRotation(_arg1:Number, _arg2:Number, _arg3:Number):Matrix4{
var _local4:Matrix4;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
_local4 = new Matrix4();
_arg1 = NumberUtil.toRadian(_arg1);
_arg2 = NumberUtil.toRadian(_arg2);
_arg3 = NumberUtil.toRadian(_arg3);
_local5 = ((USE_FAST_MATH)==false) ? Math.cos(_arg1) : FastMath.cos(_arg1);
_local6 = ((USE_FAST_MATH)==false) ? Math.sin(_arg1) : FastMath.sin(_arg1);
_local7 = ((USE_FAST_MATH)==false) ? Math.cos(_arg2) : FastMath.cos(_arg2);
_local8 = ((USE_FAST_MATH)==false) ? Math.sin(_arg2) : FastMath.sin(_arg2);
_local9 = ((USE_FAST_MATH)==false) ? Math.cos(_arg3) : FastMath.cos(_arg3);
_local10 = ((USE_FAST_MATH)==false) ? Math.sin(_arg3) : FastMath.sin(_arg3);
_local11 = (_local5 * _local8);
_local12 = (_local6 * _local8);
_local4.n11 = (_local7 * _local9);
_local4.n12 = (-(_local7) * _local10);
_local4.n13 = _local8;
_local4.n21 = ((_local12 * _local9) + (_local5 * _local10));
_local4.n22 = ((-(_local12) * _local10) + (_local5 * _local9));
_local4.n23 = (-(_local6) * _local7);
_local4.n31 = ((-(_local11) * _local9) + (_local6 * _local10));
_local4.n32 = ((_local11 * _local10) + (_local6 * _local9));
_local4.n33 = (_local5 * _local7);
return (_local4);
}
public static function rotationY(_arg1:Number):Matrix4{
var _local2:Matrix4;
var _local3:Number;
var _local4:Number;
_local2 = new Matrix4();
_arg1 = NumberUtil.toRadian(_arg1);
_local3 = ((USE_FAST_MATH)==false) ? Math.cos(_arg1) : FastMath.cos(_arg1);
_local4 = ((USE_FAST_MATH)==false) ? Math.sin(_arg1) : FastMath.sin(_arg1);
_local2.n11 = _local3;
_local2.n13 = -(_local4);
_local2.n31 = _local4;
_local2.n33 = _local3;
return (_local2);
}
public static function axisRotationVector(_arg1:Vector, _arg2:Number):Matrix4{
return (Matrix4Math.axisRotation(_arg1.x, _arg1.y, _arg1.z, _arg2));
}
public static function multiply3x3(_arg1:Matrix4, _arg2:Matrix4):Matrix4{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
_local3 = _arg1.n11;
_local4 = _arg2.n11;
_local5 = _arg1.n21;
_local6 = _arg2.n21;
_local7 = _arg1.n31;
_local8 = _arg2.n31;
_local9 = _arg1.n12;
_local10 = _arg2.n12;
_local11 = _arg1.n22;
_local12 = _arg2.n22;
_local13 = _arg1.n32;
_local14 = _arg2.n32;
_local15 = _arg1.n13;
_local16 = _arg2.n13;
_local17 = _arg1.n23;
_local18 = _arg2.n23;
_local19 = _arg1.n33;
_local20 = _arg2.n33;
return (new Matrix4((((_local3 * _local4) + (_local9 * _local6)) + (_local15 * _local8)), (((_local3 * _local10) + (_local9 * _local12)) + (_local15 * _local14)), (((_local3 * _local16) + (_local9 * _local18)) + (_local15 * _local20)), 0, (((_local5 * _local4) + (_local11 * _local6)) + (_local17 * _local8)), (((_local5 * _local10) + (_local11 * _local12)) + (_local17 * _local14)), (((_local5 * _local16) + (_local11 * _local18)) + (_local17 * _local20)), 0, (((_local7 * _local4) + (_local13 * _local6)) + (_local19 * _local8)), (((_local7 * _local10) + (_local13 * _local12)) + (_local19 * _local14)), (((_local7 * _local16) + (_local13 * _local18)) + (_local19 * _local20)), 0, 0, 0, 0, 1));
}
public static function vectorMult(_arg1:Matrix4, _arg2:Vector):Vector{
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local3 = _arg2.x;
_local4 = _arg2.y;
_local5 = _arg2.z;
return (new Vector(((((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)) + _arg1.n14), ((((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)) + _arg1.n24), ((((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)) + _arg1.n34)));
}
public static function scaleVector(_arg1:Vector):Matrix4{
var _local2:Matrix4;
_local2 = new Matrix4();
_local2.n11 = _arg1.x;
_local2.n22 = _arg1.y;
_local2.n33 = _arg1.z;
return (_local2);
}
public static function getTrace(_arg1:Matrix4):Number{
return ((((_arg1.n11 + _arg1.n22) + _arg1.n33) + _arg1.n44));
}
public static function translation(_arg1:Number, _arg2:Number, _arg3:Number):Matrix4{
var _local4:Matrix4;
_local4 = new Matrix4();
_local4.n14 = _arg1;
_local4.n24 = _arg2;
_local4.n34 = _arg3;
return (_local4);
}
public static function addMatrix4(_arg1:Matrix4, _arg2:Matrix4):Matrix4{
return (new Matrix4((_arg1.n11 + _arg2.n11), (_arg1.n12 + _arg2.n12), (_arg1.n13 + _arg2.n13), (_arg1.n14 + _arg2.n14), (_arg1.n21 + _arg2.n21), (_arg1.n22 + _arg2.n22), (_arg1.n23 + _arg2.n23), (_arg1.n24 + _arg2.n24), (_arg1.n31 + _arg2.n31), (_arg1.n32 + _arg2.n32), (_arg1.n33 + _arg2.n33), (_arg1.n34 + _arg2.n34), (_arg1.n41 + _arg2.n41), (_arg1.n42 + _arg2.n42), (_arg1.n43 + _arg2.n43), (_arg1.n44 + _arg2.n44)));
}
public static function translationVector(_arg1:Vector):Matrix4{
var _local2:Matrix4;
_local2 = new Matrix4();
_local2.n14 = _arg1.x;
_local2.n24 = _arg1.y;
_local2.n34 = _arg1.z;
return (_local2);
}
public static function det(_arg1:Matrix4):Number{
return (((((((((_arg1.n11 * _arg1.n22) - (_arg1.n21 * _arg1.n12)) * ((_arg1.n33 * _arg1.n44) - (_arg1.n43 * _arg1.n34))) - (((_arg1.n11 * _arg1.n32) - (_arg1.n31 * _arg1.n12)) * ((_arg1.n23 * _arg1.n44) - (_arg1.n43 * _arg1.n24)))) + (((_arg1.n11 * _arg1.n42) - (_arg1.n41 * _arg1.n12)) * ((_arg1.n23 * _arg1.n34) - (_arg1.n33 * _arg1.n24)))) + (((_arg1.n21 * _arg1.n32) - (_arg1.n31 * _arg1.n22)) * ((_arg1.n13 * _arg1.n44) - (_arg1.n43 * _arg1.n14)))) - (((_arg1.n21 * _arg1.n42) - (_arg1.n41 * _arg1.n22)) * ((_arg1.n13 * _arg1.n34) - (_arg1.n33 * _arg1.n14)))) + (((_arg1.n31 * _arg1.n42) - (_arg1.n41 * _arg1.n32)) * ((_arg1.n13 * _arg1.n24) - (_arg1.n23 * _arg1.n14)))));
}
public static function scale(_arg1:Number, _arg2:Number, _arg3:Number):Matrix4{
var _local4:Matrix4;
_local4 = new Matrix4();
_local4.n11 = _arg1;
_local4.n22 = _arg2;
_local4.n33 = _arg3;
return (_local4);
}
public static function rotationX(_arg1:Number):Matrix4{
var _local2:Matrix4;
var _local3:Number;
var _local4:Number;
_local2 = new Matrix4();
_arg1 = NumberUtil.toRadian(_arg1);
_local3 = ((USE_FAST_MATH)==false) ? Math.cos(_arg1) : FastMath.cos(_arg1);
_local4 = ((USE_FAST_MATH)==false) ? Math.sin(_arg1) : FastMath.sin(_arg1);
_local2.n22 = _local3;
_local2.n23 = _local4;
_local2.n32 = -(_local4);
_local2.n33 = _local3;
return (_local2);
}
public static function vectorMult3x3(_arg1:Matrix4, _arg2:Vector):Vector{
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local3 = _arg2.x;
_local4 = _arg2.y;
_local5 = _arg2.z;
return (new Vector((((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)), (((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)), (((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33))));
}
public static function rotationZ(_arg1:Number):Matrix4{
var _local2:Matrix4;
var _local3:Number;
var _local4:Number;
_local2 = new Matrix4();
_arg1 = NumberUtil.toRadian(_arg1);
_local3 = ((USE_FAST_MATH)==false) ? Math.cos(_arg1) : FastMath.cos(_arg1);
_local4 = ((USE_FAST_MATH)==false) ? Math.sin(_arg1) : FastMath.sin(_arg1);
_local2.n11 = _local3;
_local2.n12 = _local4;
_local2.n21 = -(_local4);
_local2.n22 = _local3;
return (_local2);
}
public static function clone(_arg1:Matrix4):Matrix4{
return (new Matrix4(_arg1.n11, _arg1.n12, _arg1.n13, _arg1.n14, _arg1.n21, _arg1.n22, _arg1.n23, _arg1.n24, _arg1.n31, _arg1.n32, _arg1.n33, _arg1.n34, _arg1.n41, _arg1.n42, _arg1.n43, _arg1.n44));
}
public static function axisRotationWithReference(_arg1:Vector, _arg2:Vector, _arg3:Number):Matrix4{
var _local4:Number;
var _local5:Matrix4;
_local4 = ((_arg3 + 360) % 360);
_local5 = Matrix4Math.translation(_arg2.x, _arg2.y, _arg2.z);
_local5 = Matrix4Math.multiply(_local5, Matrix4Math.axisRotation(_arg1.x, _arg1.y, _arg1.z, _local4));
_local5 = Matrix4Math.multiply(_local5, Matrix4Math.translation(-(_arg2.x), -(_arg2.y), -(_arg2.z)));
return (_local5);
}
public static function axisRotation(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix4{
var _local5:Matrix4;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
_local5 = new Matrix4();
_arg4 = NumberUtil.toRadian(_arg4);
_local6 = ((USE_FAST_MATH)==false) ? Math.cos(_arg4) : FastMath.cos(_arg4);
_local7 = ((USE_FAST_MATH)==false) ? Math.sin(_arg4) : FastMath.sin(_arg4);
_local8 = (1 - _local6);
_local9 = ((_arg1 * _arg2) * _local8);
_local10 = ((_arg2 * _arg3) * _local8);
_local11 = ((_arg1 * _arg3) * _local8);
_local12 = (_local7 * _arg3);
_local13 = (_local7 * _arg2);
_local14 = (_local7 * _arg1);
_local5.n11 = (_local6 + ((_arg1 * _arg1) * _local8));
_local5.n12 = (-(_local12) + _local9);
_local5.n13 = (_local13 + _local11);
_local5.n21 = (_local12 + _local9);
_local5.n22 = (_local6 + ((_arg2 * _arg2) * _local8));
_local5.n23 = (-(_local14) + _local10);
_local5.n31 = (-(_local13) + _local11);
_local5.n32 = (_local14 + _local10);
_local5.n33 = (_local6 + ((_arg3 * _arg3) * _local8));
return (_local5);
}
}
}//package sandy.math
Section 108
//PlaneMath (sandy.math.PlaneMath)
package sandy.math {
import sandy.core.data.*;
public class PlaneMath {
public static const NEGATIVE:int = -1;
public static const POSITIVE:int = 1;
public static const ON_PLANE:int = 0;
public static function distanceToPoint(_arg1:Plane, _arg2:Vector):Number{
return (((((_arg1.a * _arg2.x) + (_arg1.b * _arg2.y)) + (_arg1.c * _arg2.z)) + _arg1.d));
}
public static function classifyPoint(_arg1:Plane, _arg2:Vector):Number{
var _local3:Number;
_local3 = PlaneMath.distanceToPoint(_arg1, _arg2);
if (_local3 < 0){
return (PlaneMath.NEGATIVE);
};
if (_local3 > 0){
return (PlaneMath.POSITIVE);
};
return (PlaneMath.ON_PLANE);
}
public static function computePlaneFromPoints(_arg1:Vector, _arg2:Vector, _arg3:Vector):Plane{
var _local4:Vector;
var _local5:Number;
_local4 = VectorMath.cross(VectorMath.sub(_arg1, _arg2), VectorMath.sub(_arg1, _arg3));
VectorMath.normalize(_local4);
_local5 = VectorMath.dot(_arg1, _local4);
return (new Plane(_local4.x, _local4.y, _local4.z, _local5));
}
public static function createFromNormalAndPoint(_arg1:Vector, _arg2:Number):Plane{
var _local3:Plane;
_local3 = new Plane();
VectorMath.normalize(_arg1);
_local3.a = _arg1.x;
_local3.b = _arg1.y;
_local3.c = _arg1.z;
_local3.d = _arg2;
PlaneMath.normalizePlane(_local3);
return (_local3);
}
public static function normalizePlane(_arg1:Plane):void{
var _local2:Number;
_local2 = Math.sqrt((((_arg1.a * _arg1.a) + (_arg1.b * _arg1.b)) + (_arg1.c * _arg1.c)));
_arg1.a = (_arg1.a / _local2);
_arg1.b = (_arg1.b / _local2);
_arg1.c = (_arg1.c / _local2);
_arg1.d = (_arg1.d / _local2);
}
}
}//package sandy.math
Section 109
//VectorMath (sandy.math.VectorMath)
package sandy.math {
import sandy.core.data.*;
public class VectorMath {
public static function sub(_arg1:Vector, _arg2:Vector):Vector{
return (new Vector((_arg1.x - _arg2.x), (_arg1.y - _arg2.y), (_arg1.z - _arg2.z)));
}
public static function negate(_arg1:Vector):Vector{
return (new Vector(-(_arg1.x), -(_arg1.y), -(_arg1.z)));
}
public static function addVector(_arg1:Vector, _arg2:Vector):Vector{
return (new Vector((_arg1.x + _arg2.x), (_arg1.y + _arg2.y), (_arg1.z + _arg2.z)));
}
public static function cross(_arg1:Vector, _arg2:Vector):Vector{
return (new Vector(((_arg1.y * _arg2.z) - (_arg1.z * _arg2.y)), ((_arg1.z * _arg2.x) - (_arg1.x * _arg2.z)), ((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))));
}
public static function scale(_arg1:Vector, _arg2:Number):Vector{
return (new Vector((_arg1.x * _arg2), (_arg1.y * _arg2), (_arg1.z * _arg2)));
}
public static function clone(_arg1:Vector):Vector{
return (new Vector(_arg1.x, _arg1.y, _arg1.z));
}
public static function normalize(_arg1:Vector):Boolean{
var _local2:Number;
_local2 = VectorMath.getNorm(_arg1);
if ((((_local2 == 0)) || ((_local2 == 1)))){
return (false);
};
_arg1.x = (_arg1.x / _local2);
_arg1.y = (_arg1.y / _local2);
_arg1.z = (_arg1.z / _local2);
return (true);
}
public static function dot(_arg1:Vector, _arg2:Vector):Number{
return ((((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)) + (_arg2.z * _arg1.z)));
}
public static function getNorm(_arg1:Vector):Number{
return (Math.sqrt((((_arg1.x * _arg1.x) + (_arg1.y * _arg1.y)) + (_arg1.z * _arg1.z))));
}
public static function sphrand(_arg1:Number, _arg2:Number):Vector{
var _local3:Vector;
var _local4:Number;
_local3 = new Vector((Math.random() - 0.5), (Math.random() - 0.5), (Math.random() - 0.5));
_local3.normalize();
_local4 = Math.random();
_local4 = (((_arg2 - _arg1) * _local4) + _arg1);
_local3.scale(_local4);
return (_local3);
}
public static function pow(_arg1:Vector, _arg2:Number):Vector{
return (new Vector(Math.pow(_arg1.x, _arg2), Math.pow(_arg1.y, _arg2), Math.pow(_arg1.z, _arg2)));
}
public static function getAngle(_arg1:Vector, _arg2:Vector):Number{
var _local3:Number;
var _local4:Number;
_local3 = (VectorMath.dot(_arg1, _arg2) / (VectorMath.getNorm(_arg1) * VectorMath.getNorm(_arg2)));
_local4 = (1 - (_local3 * _local3));
if (_local4 < 0){
trace((" wrong " + _local3));
_local4 = 0;
};
return (Math.atan2(Math.sqrt(_local4), _local3));
}
}
}//package sandy.math
Section 110
//Plane3D (sandy.primitive.Plane3D)
package sandy.primitive {
import sandy.core.scenegraph.*;
public class Plane3D extends Shape3D implements Primitive3D {
private var m_sType:String;
private var _lg:Number;
private var _qV:uint;
private var _qH:uint;
private var _mode:String;
private var _h:Number;
public static const ZX_ALIGNED:String = "zx_aligned";
public static const YZ_ALIGNED:String = "yz_aligned";
public static const XY_ALIGNED:String = "xy_aligned";
public function Plane3D(_arg1:String=null, _arg2:Number=100, _arg3:Number=100, _arg4:uint=1, _arg5:uint=1, _arg6:String="xy_aligned", _arg7:String=null){
super(_arg1);
_h = _arg2;
_lg = _arg3;
_qV = _arg5;
_qH = _arg4;
_mode = (((!((_arg7 == PrimitiveMode.TRI))) && (!((_arg7 == PrimitiveMode.QUAD))))) ? PrimitiveMode.TRI : _arg7;
m_sType = _arg6;
geometry = generate();
}
override public function toString():String{
return ("sandy.primitive.Plane3D");
}
public function generate(... _args):Geometry3D{
var _local2:Geometry3D;
var _local3:uint;
var _local4:uint;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
_local2 = new Geometry3D();
_local5 = (_h / 2);
_local6 = (_lg / 2);
_local7 = (_h / _qV);
_local8 = (_lg / _qH);
_local3 = 0;
_local9 = -(_local5);
_local11 = 0;
while (_local3 <= _qV) {
_local4 = 0;
_local10 = -(_local6);
_local12 = 0;
while (_local4 <= _qH) {
if (m_sType == Plane3D.ZX_ALIGNED){
_local2.setVertex(_local2.getNextVertexID(), _local10, 0, _local9);
} else {
if (m_sType == Plane3D.YZ_ALIGNED){
_local2.setVertex(_local2.getNextVertexID(), 0, _local10, _local9);
} else {
_local2.setVertex(_local2.getNextVertexID(), _local10, _local9, 0);
};
};
_local2.setUVCoords(_local2.getNextUVCoordID(), (_local12 / _lg), (1 - (_local11 / _h)));
_local10 = (_local10 + _local8);
_local12 = (_local12 + _local8);
_local4++;
};
_local9 = (_local9 + _local7);
_local11 = (_local11 + _local7);
_local3++;
};
_local3 = 0;
while (_local3 < _qV) {
_local4 = 0;
while (_local4 < _qH) {
if (_mode == PrimitiveMode.TRI){
_local2.setFaceVertexIds(_local2.getNextFaceID(), ((_local3 * (_qH + 1)) + _local4), (((_local3 * (_qH + 1)) + _local4) + 1), (((_local3 + 1) * (_qH + 1)) + _local4));
_local2.setFaceUVCoordsIds(_local2.getNextFaceUVCoordID(), ((_local3 * (_qH + 1)) + _local4), (((_local3 * (_qH + 1)) + _local4) + 1), (((_local3 + 1) * (_qH + 1)) + _local4));
_local2.setFaceVertexIds(_local2.getNextFaceID(), (((_local3 * (_qH + 1)) + _local4) + 1), ((((_local3 + 1) * (_qH + 1)) + _local4) + 1), (((_local3 + 1) * (_qH + 1)) + _local4));
_local2.setFaceUVCoordsIds(_local2.getNextFaceUVCoordID(), (((_local3 * (_qH + 1)) + _local4) + 1), ((((_local3 + 1) * (_qH + 1)) + _local4) + 1), (((_local3 + 1) * (_qH + 1)) + _local4));
} else {
if (_mode == PrimitiveMode.QUAD){
_local2.setFaceVertexIds(_local2.getNextFaceID(), ((_local3 * (_qH + 1)) + _local4), (((_local3 * (_qH + 1)) + _local4) + 1), ((((_local3 + 1) * (_qH + 1)) + _local4) + 1), (((_local3 + 1) * (_qH + 1)) + _local4));
_local2.setFaceUVCoordsIds(_local2.getNextFaceUVCoordID(), ((_local3 * (_qH + 1)) + _local4), (((_local3 * (_qH + 1)) + _local4) + 1), ((((_local3 + 1) * (_qH + 1)) + _local4) + 1), (((_local3 + 1) * (_qH + 1)) + _local4));
};
};
_local4++;
};
_local3++;
};
return (_local2);
}
}
}//package sandy.primitive
Section 111
//Primitive3D (sandy.primitive.Primitive3D)
package sandy.primitive {
import sandy.core.scenegraph.*;
public interface Primitive3D {
function generate(... _args):Geometry3D;
}
}//package sandy.primitive
Section 112
//PrimitiveMode (sandy.primitive.PrimitiveMode)
package sandy.primitive {
public final class PrimitiveMode {
public static const TRI:String = "tri";
public static const QUAD:String = "quad";
}
}//package sandy.primitive
Section 113
//NumberUtil (sandy.util.NumberUtil)
package sandy.util {
public class NumberUtil {
private static var __TO_RADIAN:Number = 0.0174532925199433;
private static var _fABS:Function = Math.abs;
private static var __TWO_PI:Number = 6.28318530717959;
private static var __PI:Number = 3.14159265358979;
private static var __TO_DREGREE:Number = 57.2957795130823;
private static var __HALF_PI:Number = 1.5707963267949;
public static var TOL:Number = 1E-5;
public static function areEqual(_arg1:Number, _arg2:Number):Boolean{
return ((_fABS((_arg1 - _arg2)) < TOL));
}
public static function get TO_DEGREE():Number{
return (__TO_DREGREE);
}
public static function get HALF_PI():Number{
return (__HALF_PI);
}
public static function toDegree(_arg1:Number):Number{
return ((_arg1 * TO_DEGREE));
}
public static function roundTo(_arg1:Number, _arg2:Number=0):Number{
if (_arg2 == 0){
_arg2 = 1;
};
return ((Math.round((_arg1 / _arg2)) * _arg2));
}
public static function get TWO_PI():Number{
return (__TWO_PI);
}
public static function isZero(_arg1:Number):Boolean{
return ((_fABS(_arg1) < TOL));
}
public static function get TO_RADIAN():Number{
return (__TO_RADIAN);
}
public static function constrain(_arg1:Number, _arg2:Number, _arg3:Number):Number{
return (Math.max(Math.min(_arg1, _arg3), _arg2));
}
public static function get PI():Number{
return (__PI);
}
public static function toRadian(_arg1:Number):Number{
return ((_arg1 * TO_RADIAN));
}
}
}//package sandy.util
Section 114
//CullingState (sandy.view.CullingState)
package sandy.view {
public class CullingState {
private var m_sState:String;
public static const OUTSIDE:CullingState = new CullingState("outside");
;
public static const INSIDE:CullingState = new CullingState("inside");
;
public static const INTERSECT:CullingState = new CullingState("intersect");
;
public function CullingState(_arg1:String){
m_sState = _arg1;
}
public function toString():String{
return (("[sandy.view.CullingState] :: state : " + m_sState));
}
}
}//package sandy.view
Section 115
//Frustum (sandy.view.Frustum)
package sandy.view {
import sandy.core.data.*;
import sandy.bounds.*;
import sandy.math.*;
import sandy.util.*;
public class Frustum {
public var aPoints:Array;
public var aNormals:Array;
public var aConstants:Array;
public var aPlanes:Array;
public static const INSIDE:CullingState = CullingState.INSIDE;
public static const OUTSIDE:CullingState = CullingState.OUTSIDE;
public static const INTERSECT:CullingState = CullingState.INTERSECT;
public static const LEFT:uint = 3;
public static const NEAR:uint = 0;
public static const BOTTOM:uint = 5;
public static const TOP:uint = 4;
public static const FAR:uint = 1;
public static const EPSILON:Number = 0.005;
public static const RIGHT:uint = 2;
public function Frustum(){
aPlanes = new Array(6);
aPoints = new Array(8);
aNormals = new Array(6);
aConstants = new Array(6);
}
public function clipFrontPlane(_arg1:Array, _arg2:Array):void{
if (_arg1.length <= 2){
return;
};
clipPolygon(aPlanes[NEAR], _arg1, _arg2);
}
public function clipPolygon(_arg1:Plane, _arg2:Array, _arg3:Array):void{
var _local4:Boolean;
var _local5:Boolean;
var _local6:Vertex;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Array;
var _local11:Array;
var _local12:Array;
var _local13:UVCoord;
var _local14:UVCoord;
var _local15:UVCoord;
var _local16:Vertex;
var _local17:Vertex;
var _local18:Vertex;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Boolean;
var _local23:Boolean;
var _local24:Number;
_local4 = true;
_local5 = true;
_local8 = _arg2.length;
_local10 = new Array();
for each (_local6 in _arg2) {
_local9 = ((((_arg1.a * _local6.wx) + (_arg1.b * _local6.wy)) + (_arg1.c * _local6.wz)) + _arg1.d);
if (_local9 < 0){
_local4 = false;
};
if (_local9 >= 0){
_local5 = false;
};
_local10.push(_local9);
};
if (_local4){
return;
};
if (_local5){
_arg2.splice(0);
_arg3.splice(0);
return;
};
_local11 = _arg2.splice(0);
_local12 = _arg3.splice(0);
_local13 = _local12[0];
_local14 = null;
_local15 = null;
_local16 = _local11[0];
_local17 = null;
_local18 = null;
_local21 = _local10[0];
_local22 = false;
_local23 = (_local21 >= 0);
_local24 = 0;
_local7 = 1;
while (_local7 <= _local8) {
_local17 = _local11[(_local7 % _local8)];
_local14 = _local12[(_local7 % _local8)];
_local20 = _local10[(_local7 % _local8)];
if (((_local23) && ((_local20 >= 0)))){
_arg2.push(_local17);
_arg3.push(_local14);
} else {
if (((!(_local23)) && ((_local20 >= 0)))){
_local23 = true;
_local22 = _local23;
_local18 = new Vertex();
_local19 = (_local21 / (_local21 - _local20));
_local18.wx = (_local16.wx + ((_local17.wx - _local16.wx) * _local19));
_local18.wy = (_local16.wy + ((_local17.wy - _local16.wy) * _local19));
_local18.wz = (_local16.wz + ((_local17.wz - _local16.wz) * _local19));
_arg2.push(_local18);
_arg2.push(_local17);
_local15 = new UVCoord();
_local15.u = (_local13.u + ((_local14.u - _local13.u) * _local19));
_local15.v = (_local13.v + ((_local14.v - _local13.v) * _local19));
_arg3.push(_local15);
_arg3.push(_local14);
} else {
if (((_local23) && ((_local20 < 0)))){
_local22 = true;
_local23 = false;
_local18 = new Vertex();
_local19 = (_local21 / (_local21 - _local20));
_local18.wx = (_local16.wx + ((_local17.wx - _local16.wx) * _local19));
_local18.wy = (_local16.wy + ((_local17.wy - _local16.wy) * _local19));
_local18.wz = (_local16.wz + ((_local17.wz - _local16.wz) * _local19));
_local15 = new UVCoord();
_local15.u = (_local13.u + ((_local14.u - _local13.u) * _local19));
_local15.v = (_local13.v + ((_local14.v - _local13.v) * _local19));
_arg3.push(_local15);
_arg2.push(_local18);
} else {
_local22 = true;
};
};
};
_local16 = _local17;
_local21 = _local20;
_local13 = _local14;
_local7++;
};
_local10 = null;
}
public function pointInFrustum(_arg1:Vector):CullingState{
var _local2:Plane;
for each (_local2 in aPlanes) {
if (PlaneMath.classifyPoint(_local2, _arg1) == PlaneMath.NEGATIVE){
return (Frustum.OUTSIDE);
};
};
return (Frustum.INSIDE);
}
public function boxInFrustum(_arg1:BBox):CullingState{
var _local2:CullingState;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Plane;
var _local7:Vector;
_local2 = Frustum.INSIDE;
for each (_local6 in aPlanes) {
_local3 = 0;
_local4 = 0;
for each (_local7 in _arg1.aTCorners) {
_local5 = ((((_local6.a * _local7.x) + (_local6.b * _local7.y)) + (_local6.c * _local7.z)) + _local6.d);
if (_local5 < 0){
_local3++;
} else {
_local4++;
};
if ((((_local4 > 0)) && ((_local3 > 0)))){
break;
};
};
if (_local4 == 0){
return (Frustum.OUTSIDE);
};
if (_local3 > 0){
return (Frustum.INTERSECT);
};
};
return (_local2);
}
public function computePlanes(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Array;
var _local12:int;
_local5 = NumberUtil.toRadian(_arg4);
_local6 = Math.tan((_local5 * 0.5));
_local7 = (-(_local6) * _arg2);
_local8 = (_local7 * _arg1);
_local9 = ((_local7 * _arg3) / _arg2);
_local10 = ((_local8 * _arg3) / _arg2);
_arg2 = -(_arg2);
_arg3 = -(_arg3);
_local11 = aPoints;
_local11[0] = new Vector(_local8, _local7, _arg2);
_local11[1] = new Vector(_local8, -(_local7), _arg2);
_local11[2] = new Vector(-(_local8), -(_local7), _arg2);
_local11[3] = new Vector(-(_local8), _local7, _arg2);
_local11[4] = new Vector(_local10, _local9, _arg3);
_local11[5] = new Vector(_local10, -(_local9), _arg3);
_local11[6] = new Vector(-(_local10), -(_local9), _arg3);
_local11[7] = new Vector(-(_local10), _local9, _arg3);
aPlanes[LEFT] = PlaneMath.computePlaneFromPoints(_local11[2], _local11[3], _local11[6]);
aPlanes[RIGHT] = PlaneMath.computePlaneFromPoints(_local11[0], _local11[1], _local11[4]);
aPlanes[TOP] = PlaneMath.computePlaneFromPoints(_local11[0], _local11[7], _local11[3]);
aPlanes[BOTTOM] = PlaneMath.computePlaneFromPoints(_local11[1], _local11[2], _local11[5]);
aPlanes[NEAR] = PlaneMath.computePlaneFromPoints(_local11[0], _local11[2], _local11[1]);
aPlanes[FAR] = PlaneMath.computePlaneFromPoints(_local11[4], _local11[5], _local11[6]);
_local12 = 0;
while (_local12 < 6) {
PlaneMath.normalizePlane(aPlanes[int(_local12)]);
_local12++;
};
}
public function sphereInFrustum(_arg1:BSphere):CullingState{
var _local2:Number;
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Plane;
_local2 = 0;
_local3 = 0;
_local4 = _arg1.position.x;
_local5 = _arg1.position.y;
_local6 = _arg1.position.z;
_local7 = _arg1.radius;
for each (_local8 in aPlanes) {
_local2 = ((((_local8.a * _local4) + (_local8.b * _local5)) + (_local8.c * _local6)) + _local8.d);
if (_local2 <= -(_local7)){
return (Frustum.OUTSIDE);
};
if (_local2 > _local7){
_local3++;
};
};
return (((_local3)==6) ? Frustum.INSIDE : Frustum.INTERSECT);
}
public function clipFrustum(_arg1:Array, _arg2:Array):void{
if (_arg1.length <= 2){
return;
};
clipPolygon(aPlanes[NEAR], _arg1, _arg2);
if (_arg1.length <= 2){
return;
};
clipPolygon(aPlanes[LEFT], _arg1, _arg2);
if (_arg1.length <= 2){
return;
};
clipPolygon(aPlanes[RIGHT], _arg1, _arg2);
if (_arg1.length <= 2){
return;
};
clipPolygon(aPlanes[BOTTOM], _arg1, _arg2);
if (_arg1.length <= 2){
return;
};
clipPolygon(aPlanes[TOP], _arg1, _arg2);
}
public function clipLineFrontPlane(_arg1:Array):void{
var _local2:Plane;
var _local3:Array;
var _local4:Vertex;
var _local5:Vertex;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Vertex;
_local2 = aPlanes[NEAR];
_local3 = _arg1.splice(0);
_local4 = _local3[0];
_local5 = _local3[1];
_local6 = ((((_local2.a * _local4.wx) + (_local2.b * _local4.wy)) + (_local2.c * _local4.wz)) + _local2.d);
_local7 = ((((_local2.a * _local5.wx) + (_local2.b * _local5.wy)) + (_local2.c * _local5.wz)) + _local2.d);
_local8 = 0;
_local9 = new Vertex();
if ((((_local6 < 0)) && ((_local7 >= 0)))){
_local8 = (_local6 / (_local6 - _local7));
_local9.wx = (_local4.wx + ((_local5.wx - _local4.wx) * _local8));
_local9.wy = (_local4.wy + ((_local5.wy - _local4.wy) * _local8));
_local9.wz = (_local4.wz + ((_local5.wz - _local4.wz) * _local8));
_arg1.push(_local9);
_arg1.push(_local5);
} else {
if ((((_local7 < 0)) && ((_local6 >= 0)))){
_local8 = (_local6 / (_local6 - _local7));
_local9.wx = (_local4.wx + ((_local5.wx - _local4.wx) * _local8));
_local9.wy = (_local4.wy + ((_local5.wy - _local4.wy) * _local8));
_local9.wz = (_local4.wz + ((_local5.wz - _local4.wz) * _local8));
_arg1.push(_local4);
_arg1.push(_local9);
} else {
if ((((_local7 < 0)) && ((_local6 < 0)))){
_arg1 = null;
} else {
if ((((_local7 > 0)) && ((_local6 > 0)))){
_arg1.push(_local4);
_arg1.push(_local5);
};
};
};
};
}
public function extractPlanes(_arg1:Matrix4, _arg2:Boolean):void{
aPlanes[0].a = (_arg1.n14 + _arg1.n11);
aPlanes[0].b = (_arg1.n24 + _arg1.n21);
aPlanes[0].c = (_arg1.n34 + _arg1.n31);
aPlanes[0].d = (_arg1.n44 + _arg1.n41);
aPlanes[1].a = (_arg1.n14 - _arg1.n11);
aPlanes[1].b = (_arg1.n24 - _arg1.n21);
aPlanes[1].c = (_arg1.n34 - _arg1.n31);
aPlanes[1].d = (_arg1.n44 - _arg1.n41);
aPlanes[2].a = (_arg1.n14 - _arg1.n12);
aPlanes[2].b = (_arg1.n24 - _arg1.n22);
aPlanes[2].c = (_arg1.n34 - _arg1.n32);
aPlanes[2].d = (_arg1.n44 - _arg1.n42);
aPlanes[3].a = (_arg1.n14 + _arg1.n12);
aPlanes[3].b = (_arg1.n24 + _arg1.n22);
aPlanes[3].c = (_arg1.n34 + _arg1.n32);
aPlanes[3].d = (_arg1.n44 + _arg1.n42);
aPlanes[4].a = _arg1.n13;
aPlanes[4].b = _arg1.n23;
aPlanes[4].c = _arg1.n33;
aPlanes[4].d = _arg1.n43;
aPlanes[5].a = (_arg1.n14 - _arg1.n13);
aPlanes[5].b = (_arg1.n24 - _arg1.n23);
aPlanes[5].c = (_arg1.n34 - _arg1.n33);
aPlanes[5].d = (_arg1.n44 - _arg1.n43);
if (_arg2 == true){
PlaneMath.normalizePlane(aPlanes[0]);
PlaneMath.normalizePlane(aPlanes[1]);
PlaneMath.normalizePlane(aPlanes[2]);
PlaneMath.normalizePlane(aPlanes[3]);
PlaneMath.normalizePlane(aPlanes[4]);
PlaneMath.normalizePlane(aPlanes[5]);
};
}
}
}//package sandy.view
Section 116
//ViewPort (sandy.view.ViewPort)
package sandy.view {
import flash.geom.*;
public final class ViewPort {
public const offset:Point;
private var m_nH2:int;// = 0
private var m_nRatio:Number;// = 0
private var m_nW2:int;// = 0
private var m_nH:int;// = 0
public var hasChanged:Boolean;// = false
private var m_nW:int;// = 0
public function ViewPort(_arg1:Number, _arg2:Number){
offset = new Point();
hasChanged = false;
m_nW = 0;
m_nW2 = 0;
m_nH = 0;
m_nH2 = 0;
m_nRatio = 0;
super();
width = _arg1;
height = _arg2;
}
public function get width():int{
return (m_nW);
}
public function update():void{
m_nW2 = (m_nW >> 1);
m_nH2 = (m_nH >> 1);
m_nRatio = (m_nH) ? (m_nW / m_nH) : 0;
hasChanged = true;
}
public function get ratio():Number{
return (m_nRatio);
}
public function set height(_arg1:int):void{
m_nH = _arg1;
update();
}
public function set width(_arg1:int):void{
m_nW = _arg1;
update();
}
public function get height():int{
return (m_nH);
}
public function get height2():int{
return (m_nH2);
}
public function get width2():int{
return (m_nW2);
}
}
}//package sandy.view
Section 117
//13days_43 (spacerangerCS3_fla.13days_43)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class 13days_43 extends MovieClip {
public var body_mc:MovieClip;
public function 13days_43(){
addFrameScript(0, frame1);
}
public function nextState(){
FRAMECOUNT++;
if (FRAMECOUNT < 77){
x = (x + SPEEDX);
} else {
if (!STANDING){
body_mc.stand();
STANDING = true;
};
};
}
function frame1(){
stop();
FRAMECOUNT = 0;
SPEEDX = -8;
STANDING = false;
}
}
}//package spacerangerCS3_fla
Section 118
//aim_291 (spacerangerCS3_fla.aim_291)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class aim_291 extends MovieClip {
public var RSPEED;
public var A;
public var dot_mc:MovieClip;
public var R;
public var DR;
public var RMIN;
public var RMAX;
public function aim_291(){
addFrameScript(0, frame1);
}
public function getDXY():Point{
return (new Point(dot_mc.x, dot_mc.y));
}
public function setStability(_arg1:Number){
RMIN = 2;
RMAX = (4 + (8 * _arg1));
DR = 1;
}
function frame1(){
stop();
glo.bal.AIM = this;
RSPEED = ((Math.PI * 2) / (3 * 16));
A = 0;
R = 2;
RMIN = 2;
RMAX = 10;
DR = 1;
}
public function nextState(){
A = (A + RSPEED);
if (A > (Math.PI * 2)){
A = (A - (Math.PI * 2));
};
R = ((R - DR) + ((Math.random() * DR) * 2));
if (R > RMAX){
R = RMAX;
};
if (R < RMIN){
R = RMIN;
};
dot_mc.x = Math.round((Math.cos(A) * R));
dot_mc.y = Math.round((Math.sin(A) * R));
}
public function getAimLoc():Object{
var _local1:*;
_local1 = dot_mc.localToGlobal(new Point(0, 0));
_local1.y = (_local1.y - 50);
return (_local1);
}
}
}//package spacerangerCS3_fla
Section 119
//ammo_101 (spacerangerCS3_fla.ammo_101)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class ammo_101 extends MovieClip {
public var total_txt:TextField;
public var gun_mc:MovieClip;
public var chamber_pistol:MovieClip;
public var chamber_txt:TextField;
public var chamber_ubergun:MovieClip;
public var CHAMBERS;
public var chamber_rpg:MovieClip;
public function ammo_101(){
addFrameScript(0, frame1);
}
public function setAmmo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){
var _local5:*;
gun_mc.gotoAndStop((_arg1 + 1));
for (_local5 in CHAMBERS) {
if (_local5 == _arg1){
CHAMBERS[_local5].visible = true;
} else {
CHAMBERS[_local5].visible = false;
};
};
CHAMBERS[_arg1].setAmmo(_arg2);
total_txt.text = _arg4;
chamber_txt.text = ((_arg2 + " / ") + _arg3);
if (_arg1 == 0){
gotoAndStop(3);
total_txt.text = "";
} else {
gotoAndStop(2);
};
}
function frame1(){
stop();
glo.bal.AMMO = this;
CHAMBERS = [chamber_pistol, chamber_ubergun, chamber_rpg];
}
}
}//package spacerangerCS3_fla
Section 120
//ammo1notice_184 (spacerangerCS3_fla.ammo1notice_184)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class ammo1notice_184 extends MovieClip {
public function ammo1notice_184(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
parent.gotoAndStop(1);
}
}
}//package spacerangerCS3_fla
Section 121
//ammo2notice_186 (spacerangerCS3_fla.ammo2notice_186)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class ammo2notice_186 extends MovieClip {
public function ammo2notice_186(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
parent.gotoAndStop(1);
}
}
}//package spacerangerCS3_fla
Section 122
//arrow_206 (spacerangerCS3_fla.arrow_206)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class arrow_206 extends MovieClip {
public function arrow_206(){
addFrameScript(18, frame19);
}
function frame19(){
stop();
}
}
}//package spacerangerCS3_fla
Section 123
//bar_13 (spacerangerCS3_fla.bar_13)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bar_13 extends MovieClip {
public function bar_13(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 124
//barpistol_124 (spacerangerCS3_fla.barpistol_124)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class barpistol_124 extends MovieClip {
public function barpistol_124(){
addFrameScript(19, frame20);
}
function frame20(){
stop();
}
}
}//package spacerangerCS3_fla
Section 125
//barrpg_119 (spacerangerCS3_fla.barrpg_119)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class barrpg_119 extends MovieClip {
public function barrpg_119(){
addFrameScript(19, frame20);
}
function frame20(){
stop();
}
}
}//package spacerangerCS3_fla
Section 126
//barubergun_122 (spacerangerCS3_fla.barubergun_122)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class barubergun_122 extends MovieClip {
public function barubergun_122(){
addFrameScript(19, frame20);
}
function frame20(){
stop();
}
}
}//package spacerangerCS3_fla
Section 127
//bggame_82 (spacerangerCS3_fla.bggame_82)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bggame_82 extends MovieClip {
public function bggame_82(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
if (glo.bal.PC_OPTION == 1){
stop();
};
}
function frame2(){
stop();
}
}
}//package spacerangerCS3_fla
Section 128
//bodymoves_84 (spacerangerCS3_fla.bodymoves_84)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bodymoves_84 extends MovieClip {
public var pistol_mc:MovieClip;
public var ubergun_mc:MovieClip;
public var MC:MovieClip;
public function bodymoves_84(){
addFrameScript(0, frame1);
}
public function ubergun(){
setBody(ubergun_mc, false, 1);
}
public function setBody(_arg1:MovieClip, _arg2:Boolean=false, _arg3:Number=1){
if (MC != null){
MC.stop();
MC.visible = false;
};
MC = _arg1;
MC.visible = true;
if (_arg2){
MC.gotoAndPlay(_arg3);
};
parent.FIREFX = MC.fire_mc;
}
function frame1(){
stop();
CLIPS = [ubergun_mc, pistol_mc];
C = CLIPS.length;
i = 0;
while (i < C) {
CLIPS[i].UNIT = parent;
CLIPS[i].stop();
CLIPS[i].visible = false;
i++;
};
setBody(ubergun_mc);
}
public function pistol(){
setBody(pistol_mc, false, 1);
}
}
}//package spacerangerCS3_fla
Section 129
//briefing_233 (spacerangerCS3_fla.briefing_233)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class briefing_233 extends MovieClip {
public var ok_btn:SimpleButton;
public var caption_txt:TextField;
public var PARENT:Object;
public var label1_txt:TextField;
public function briefing_233(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5);
}
public function activate(_arg1:Object){
visible = true;
PARENT = _arg1;
gotoAndStop((1 + glo.bal.CGAME.CLEVEL));
}
public function uiSetup(){
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
label1_txt.antiAliasType = "advanced";
label1_txt.embedFonts = true;
label1_txt.setTextFormat(glo.bal.FORMAT01);
ok_btn.enabled = true;
ok_btn.addEventListener("click", btnOk);
}
public function btnOk(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
deactivate();
if (PARENT){
PARENT.backFromBriefing();
};
}
function frame3(){
stop();
uiSetup();
}
function frame1(){
glo.bal.BRIEFING = this;
deactivate();
PARENT = null;
}
function frame4(){
stop();
uiSetup();
}
function frame5(){
stop();
uiSetup();
}
public function deactivate(){
visible = false;
if (ok_btn){
ok_btn.enabled = false;
};
}
function frame2(){
stop();
uiSetup();
}
}
}//package spacerangerCS3_fla
Section 130
//bubblebox_intro_27 (spacerangerCS3_fla.bubblebox_intro_27)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bubblebox_intro_27 extends MovieClip {
public var bubblebox_btn:SimpleButton;
public var tel:int;
public var play_latest_text:MovieClip;
public var atr:int;
public function bubblebox_intro_27(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
parent.alpha = 0;
play_latest_text.visible = false;
tel = 0;
atr = 0;
bubblebox_btn.addEventListener("click", btnBubbleBox);
addEventListener(Event.ENTER_FRAME, evtEnterFrame);
}
public function btnBubbleBox(_arg1:Event){
var e = _arg1;
try {
navigateToURL(glo.bal.URLREQ_BUBBLEBOX_SPLASH, "_blank");
} catch(err:Error) {
};
}
public function evtEnterFrame(_arg1:Event){
if ((((atr < 100)) && ((tel == 0)))){
atr = (atr + 3);
} else {
tel++;
if (!play_latest_text.visible){
play_latest_text.visible = true;
play_latest_text.play();
};
};
if (tel > 85){
atr = (atr - 3);
if (atr <= 0){
removeEventListener(Event.ENTER_FRAME, evtEnterFrame);
parent.parent.gotoAndStop("splash2");
};
};
parent.alpha = (atr / 100);
}
}
}//package spacerangerCS3_fla
Section 131
//bubblxbox_play_latest_text_28 (spacerangerCS3_fla.bubblxbox_play_latest_text_28)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bubblxbox_play_latest_text_28 extends MovieClip {
public function bubblxbox_play_latest_text_28(){
addFrameScript(0, frame1, 9, frame10);
}
function frame10(){
stop();
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 132
//chairclip_293 (spacerangerCS3_fla.chairclip_293)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class chairclip_293 extends MovieClip {
public function chairclip_293(){
addFrameScript(0, frame1, 30, frame31);
}
function frame1(){
stop();
}
function frame31(){
stop();
}
}
}//package spacerangerCS3_fla
Section 133
//chamberpistol_113 (spacerangerCS3_fla.chamberpistol_113)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class chamberpistol_113 extends MovieClip {
public var row1:MovieClip;
public var row2:MovieClip;
public var row3:MovieClip;
public var ROWS:Array;
public function chamberpistol_113(){
addFrameScript(0, frame1);
}
public function setAmmo(_arg1:Number){
var _local2:Number;
var _local3:*;
if (_arg1 < 0){
_arg1 = 0;
};
if (_arg1 > 60){
_arg1 = 60;
};
_local3 = 0;
while (_local3 < 3) {
_local2 = (_arg1 - (_local3 * 20));
if (_local2 > 20){
_local2 = 20;
};
if (_local2 < 0){
_local2 = 0;
};
ROWS[_local3].gotoAndStop((21 - _local2));
_local3++;
};
}
function frame1(){
stop();
ROWS = [row1, row2, row3];
setAmmo(60);
}
}
}//package spacerangerCS3_fla
Section 134
//chamberrpg_107 (spacerangerCS3_fla.chamberrpg_107)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class chamberrpg_107 extends MovieClip {
public var row1:MovieClip;
public var row2:MovieClip;
public var ROWS:Array;
public function chamberrpg_107(){
addFrameScript(0, frame1);
}
public function setAmmo(_arg1:Number){
var _local2:Number;
var _local3:*;
if (_arg1 < 0){
_arg1 = 0;
};
if (_arg1 > 10){
_arg1 = 10;
};
_local3 = 0;
while (_local3 < 2) {
_local2 = (_arg1 - (_local3 * 5));
if (_local2 > 5){
_local2 = 5;
};
if (_local2 < 0){
_local2 = 0;
};
ROWS[_local3].gotoAndStop((6 - _local2));
_local3++;
};
}
function frame1(){
stop();
ROWS = [row1, row2];
setAmmo(10);
}
}
}//package spacerangerCS3_fla
Section 135
//chamberubergun_110 (spacerangerCS3_fla.chamberubergun_110)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class chamberubergun_110 extends MovieClip {
public var row1:MovieClip;
public var row2:MovieClip;
public var row3:MovieClip;
public var row4:MovieClip;
public var row5:MovieClip;
public var ROWS:Array;
public function chamberubergun_110(){
addFrameScript(0, frame1);
}
public function setAmmo(_arg1:Number){
var _local2:Number;
var _local3:*;
if (_arg1 < 0){
_arg1 = 0;
};
if (_arg1 > 200){
_arg1 = 200;
};
_local3 = 0;
while (_local3 < 5) {
_local2 = (_arg1 - (_local3 * 40));
if (_local2 > 40){
_local2 = 40;
};
if (_local2 < 0){
_local2 = 0;
};
ROWS[_local3].gotoAndStop((41 - _local2));
_local3++;
};
}
function frame1(){
stop();
ROWS = [row1, row2, row3, row4, row5];
setAmmo(200);
}
}
}//package spacerangerCS3_fla
Section 136
//clip_182 (spacerangerCS3_fla.clip_182)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class clip_182 extends MovieClip {
public var label1_txt:TextField;
public function clip_182(){
addFrameScript(0, frame1);
}
function frame1(){
label1_txt.antiAliasType = "advanced";
label1_txt.embedFonts = true;
label1_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 137
//clip_189 (spacerangerCS3_fla.clip_189)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class clip_189 extends MovieClip {
public var label1_txt:TextField;
public function clip_189(){
addFrameScript(0, frame1);
}
function frame1(){
label1_txt.antiAliasType = "advanced";
label1_txt.embedFonts = true;
label1_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 138
//clip_191 (spacerangerCS3_fla.clip_191)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class clip_191 extends MovieClip {
public var label1_txt:TextField;
public function clip_191(){
addFrameScript(0, frame1);
}
function frame1(){
label1_txt.antiAliasType = "advanced";
label1_txt.embedFonts = true;
label1_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 139
//clip_193 (spacerangerCS3_fla.clip_193)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class clip_193 extends MovieClip {
public var label1_txt:TextField;
public function clip_193(){
addFrameScript(0, frame1);
}
function frame1(){
label1_txt.antiAliasType = "advanced";
label1_txt.embedFonts = true;
label1_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 140
//clip_195 (spacerangerCS3_fla.clip_195)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class clip_195 extends MovieClip {
public var label1_txt:TextField;
public function clip_195(){
addFrameScript(0, frame1);
}
function frame1(){
label1_txt.antiAliasType = "advanced";
label1_txt.embedFonts = true;
label1_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 141
//clip1_185 (spacerangerCS3_fla.clip1_185)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class clip1_185 extends MovieClip {
public var label1_txt:TextField;
public function clip1_185(){
addFrameScript(0, frame1);
}
function frame1(){
label1_txt.antiAliasType = "advanced";
label1_txt.embedFonts = true;
label1_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 142
//cliprpg_187 (spacerangerCS3_fla.cliprpg_187)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class cliprpg_187 extends MovieClip {
public var label1_txt:TextField;
public function cliprpg_187(){
addFrameScript(0, frame1);
}
function frame1(){
label1_txt.antiAliasType = "advanced";
label1_txt.embedFonts = true;
label1_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 143
//combattips_245 (spacerangerCS3_fla.combattips_245)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class combattips_245 extends MovieClip {
public var ok_btn:SimpleButton;
public var caption_txt:TextField;
public var PARENT;
public function combattips_245(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
public function activate(_arg1:MovieClip){
PARENT = _arg1;
visible = true;
gotoAndStop(3);
}
public function btnOk(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
deactivate();
if (PARENT){
PARENT.backFromTips();
};
}
function frame3(){
stop();
enableButtons();
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
}
function frame1(){
stop();
glo.bal.COMBATTIPS = this;
visible = false;
PARENT = null;
}
public function deactivate(){
disableButtons();
visible = false;
gotoAndStop(2);
}
function frame2(){
stop();
}
public function disableButtons(){
if (ok_btn){
ok_btn.removeEventListener("click", btnOk);
};
}
public function enableButtons(){
if (ok_btn){
ok_btn.addEventListener("click", btnOk);
};
}
}
}//package spacerangerCS3_fla
Section 144
//cursor_290 (spacerangerCS3_fla.cursor_290)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class cursor_290 extends MovieClip {
public function cursor_290(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
if (glo.bal.PC_OPTION == 1){
stop();
};
glo.bal.CURSOR = this;
}
function frame2(){
stop();
}
}
}//package spacerangerCS3_fla
Section 145
//dot_bar2_349 (spacerangerCS3_fla.dot_bar2_349)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class dot_bar2_349 extends MovieClip {
public function dot_bar2_349(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 146
//dot_bar4_346 (spacerangerCS3_fla.dot_bar4_346)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class dot_bar4_346 extends MovieClip {
public function dot_bar4_346(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 147
//dotcomalpha_53 (spacerangerCS3_fla.dotcomalpha_53)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class dotcomalpha_53 extends MovieClip {
public var dotcom_mc:MovieClip;
public function dotcomalpha_53(){
addFrameScript(109, frame110);
}
function frame110(){
stop();
}
}
}//package spacerangerCS3_fla
Section 148
//dotcomw_54 (spacerangerCS3_fla.dotcomw_54)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class dotcomw_54 extends MovieClip {
public var qigames_btn:SimpleButton;
public function dotcomw_54(){
addFrameScript(0, frame1, 109, frame110);
}
function frame1(){
qigames_btn.addEventListener("click", btnQiGames);
}
function frame110(){
stop();
}
public function btnQiGames(_arg1:Event){
var e = _arg1;
try {
glo.bal.JUKEBOX.btnClick();
navigateToURL(glo.bal.URLREQ_QIGAMES, "_blank");
} catch(err:Error) {
};
}
}
}//package spacerangerCS3_fla
Section 149
//dotmonster_158 (spacerangerCS3_fla.dotmonster_158)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class dotmonster_158 extends MovieClip {
public function dotmonster_158(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 150
//firepistol_86 (spacerangerCS3_fla.firepistol_86)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class firepistol_86 extends MovieClip {
public var flash_mc:MovieClip;
public function firepistol_86(){
addFrameScript(0, frame1);
}
public function fire(){
flash_mc.visible = true;
gotoAndPlay(2);
}
public function stopFire(){
flash_mc.visible = false;
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 151
//fireubergun_89 (spacerangerCS3_fla.fireubergun_89)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class fireubergun_89 extends MovieClip {
public var flash_mc:MovieClip;
public var FIRING;
public function fireubergun_89(){
addFrameScript(0, frame1, 5, frame6);
}
public function fire(){
flash_mc.visible = true;
if (!FIRING){
gotoAndPlay(2);
};
FIRING = true;
}
public function stopFire(){
FIRING = false;
flash_mc.visible = false;
}
function frame6(){
if (FIRING){
gotoAndPlay(2);
} else {
stop();
};
}
function frame1(){
stop();
FIRING = false;
}
}
}//package spacerangerCS3_fla
Section 152
//flash9required_22 (spacerangerCS3_fla.flash9required_22)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class flash9required_22 extends MovieClip {
public var flash_btn:SimpleButton;
public var current_txt:TextField;
public function flash9required_22(){
addFrameScript(0, frame1);
}
public function btnFlash(_arg1:Event){
var e = _arg1;
try {
navigateToURL(glo.bal.URLREQ_FLASH, "_blank");
} catch(err:Error) {
};
}
function frame1(){
stop();
flash_btn.addEventListener("click", btnFlash);
current_txt.text = ("Your current version is " + Capabilities.version);
}
}
}//package spacerangerCS3_fla
Section 153
//focusbartween_145 (spacerangerCS3_fla.focusbartween_145)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class focusbartween_145 extends MovieClip {
public function focusbartween_145(){
addFrameScript(0, frame1);
}
public function setPct(_arg1:Number){
if (_arg1 > 100){
_arg1 = 100;
};
if (_arg1 < 0){
_arg1 = 0;
};
F = (1 + Math.round(((_arg1 * 0.01) * 99)));
gotoAndStop(F);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 154
//fpsmonitor_76 (spacerangerCS3_fla.fpsmonitor_76)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class fpsmonitor_76 extends MovieClip {
public var fps_txt:TextField;
public var memory_txt:TextField;
public var qigames_btn:SimpleButton;
public function fpsmonitor_76(){
addFrameScript(0, frame1, 1, frame2, 16, frame17);
}
public function setLowQuality(){
if (stage.quality == StageQuality.LOW){
return;
};
PREFERRED = "LOW";
stage.quality = StageQuality.LOW;
reset();
}
public function setHighQuality(){
if (stage.quality == StageQuality.HIGH){
return;
};
PREFERRED = StageQuality.HIGH;
stage.quality = PREFERRED;
reset();
}
public function monitor(){
if (FPS < 18){
switch (stage.quality){
case StageQuality.HIGH:
stage.quality = StageQuality.MEDIUM;
reset();
break;
case StageQuality.MEDIUM:
stage.quality = StageQuality.LOW;
reset();
break;
};
};
}
public function reset(){
TS = [];
}
function frame17(){
gotoAndPlay(2);
}
function frame1(){
fps_txt.text = "--- fps";
PREFERRED = StageQuality.LOW;
stage.quality = PREFERRED;
reset();
TS = [getTimer()];
qigames_btn.addEventListener("click", btnQiGames);
}
function frame2(){
TS.push(getTimer());
if (TS.length > 5){
D = 0;
i = 5;
while (i > 0) {
D = (D + (TS[i] - TS[(i - 1)]));
i--;
};
D = (D * 0.2);
if (D == 0){
D = 1;
trace("d=0 !?");
};
FPS = ((24 * 1000) / D);
fps_txt.text = (Math.round(FPS) + "fps");
if (FPS < 12){
fps_txt.textColor = 0xFF0000;
} else {
fps_txt.textColor = 0xFFFFFF;
};
TS.shift();
monitor();
} else {
fps_txt.text = "--- fps";
fps_txt.textColor = 0xFFFFFF;
};
RAM = Math.round((System.totalMemory / (0x0400 * 0x0400)));
memory_txt.text = (numbers.format(RAM) + " Mb RAM");
}
public function setMediumQuality(){
if (stage.quality == StageQuality.MEDIUM){
return;
};
PREFERRED = StageQuality.MEDIUM;
stage.quality = PREFERRED;
reset();
}
public function btnQiGames(_arg1:Event){
var e = _arg1;
try {
glo.bal.JUKEBOX.btnClick();
navigateToURL(glo.bal.URLREQ_QIGAMES, "_blank");
} catch(err:Error) {
trace("Open QiGames URL ...");
};
}
}
}//package spacerangerCS3_fla
Section 155
//game_335 (spacerangerCS3_fla.game_335)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class game_335 extends MovieClip {
public function game_335(){
addFrameScript(0, frame1, 2, frame3, 75, frame76, 76, frame77, 94, frame95);
}
function frame77(){
glo.bal.INTERFACE.init();
}
function frame76(){
glo.bal.GAME.init();
}
public function action(){
gotoAndPlay(2);
}
function frame95(){
stop();
}
function frame3(){
glo.bal.JUKEBOX.loading();
}
function frame1(){
glo.bal.GAMELOADER = this;
}
}
}//package spacerangerCS3_fla
Section 156
//game_79 (spacerangerCS3_fla.game_79)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class game_79 extends MovieClip {
public var play_mc:MovieClip;
public function game_79(){
addFrameScript(0, frame1, 1, frame2, 9, frame10, 19, frame20, 29, frame30, 39, frame40, 49, frame50);
}
public function gotoPlay(){
gotoAndStop("play");
}
public function gotoHelp(){
gotoAndStop("help");
}
function frame10(){
stop();
Mouse.show();
}
public function gotoMenu(){
gotoAndStop("menu");
}
function frame1(){
glo.bal.GAMEMENU = this;
Mouse.show();
}
public function backFromInstructions(){
gotoMenu();
}
public function gotoLoadGame(){
gotoAndStop("load game");
}
function frame20(){
stop();
Mouse.show();
}
function frame2(){
stop();
Mouse.show();
try {
System.gc();
} catch(e:Error) {
};
try {
new LocalConnection().connect("foo");
new LocalConnection().connect("foo");
} catch(e) {
};
glo.bal.JUKEBOX.menuScore();
}
function frame30(){
stop();
Mouse.show();
}
function frame40(){
stop();
Mouse.show();
}
public function gotoNewGame(){
gotoAndStop("new game");
}
function frame50(){
stop();
}
}
}//package spacerangerCS3_fla
Section 157
//game_80 (spacerangerCS3_fla.game_80)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class game_80 extends MovieClip {
public var hero_mc:aiPlayer;
public function game_80(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 158
//gamecompleted_283 (spacerangerCS3_fla.gamecompleted_283)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class gamecompleted_283 extends MovieClip {
public var back_btn:SimpleButton;
public var bubblebox_btn:SimpleButton;
public var caption_txt:TextField;
public var qigames_btn:SimpleButton;
public function gamecompleted_283(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
public function activate(){
visible = true;
gotoAndStop(3);
}
public function btnBack(_arg1:Event){
back_btn.removeEventListener("click", btnBack);
glo.bal.JUKEBOX.btnClick();
glo.bal.GAME.destroy();
glo.bal.INTERFACE.destroy();
glo.bal.GAMEMENU.gotoMenu();
deactivate();
}
function frame3(){
stop();
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
back_btn.addEventListener("click", btnBack);
qigames_btn.addEventListener("click", btnQiGames);
bubblebox_btn.addEventListener("click", btnBubbleBox);
}
function frame1(){
stop();
deactivate();
glo.bal.GAMECOMPLETED = this;
}
public function deactivate(){
visible = false;
gotoAndStop(2);
}
function frame2(){
stop();
}
public function btnQiGames(_arg1:Event){
var e = _arg1;
try {
navigateToURL(glo.bal.URLREQ_QIGAMES, "_blank");
} catch(err:Error) {
};
}
public function btnBubbleBox(_arg1:Event){
var e = _arg1;
try {
navigateToURL(glo.bal.URLREQ_BUBBLEBOX_GAMECOMPLETED, "_blank");
} catch(err:Error) {
};
}
}
}//package spacerangerCS3_fla
Section 159
//gameloading_336 (spacerangerCS3_fla.gameloading_336)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class gameloading_336 extends MovieClip {
public var bubblebox_btn:SimpleButton;
public var btn_qigames:SimpleButton;
public function gameloading_336(){
addFrameScript(0, frame1);
}
function frame1(){
btn_qigames.addEventListener("click", btnQiGames);
bubblebox_btn.addEventListener("click", btnBubbleBox);
}
public function btnQiGames(_arg1:Event){
var e = _arg1;
try {
glo.bal.JUKEBOX.btnClick();
navigateToURL(glo.bal.URLREQ_QIGAMES, "_blank");
} catch(err:Error) {
trace("Open MoreGames URL ...");
};
}
public function btnBubbleBox(_arg1:Event){
var e = _arg1;
try {
navigateToURL(glo.bal.URLREQ_BUBBLEBOX_LEVELLOADING, "_blank");
} catch(err:Error) {
};
}
}
}//package spacerangerCS3_fla
Section 160
//gameover_209 (spacerangerCS3_fla.gameover_209)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class gameover_209 extends MovieClip {
public function gameover_209(){
addFrameScript(0, frame1, 44, frame45, 59, frame60);
}
public function activate(){
visible = true;
gotoAndPlay(2);
}
function frame1(){
stop();
glo.bal.GAMEOVERSCREEN = this;
visible = false;
}
public function deactivate(){
visible = false;
}
function frame45(){
glo.bal.JUKEBOX.gameOver();
}
function frame60(){
stop();
}
}
}//package spacerangerCS3_fla
Section 161
//gameovermenu_210 (spacerangerCS3_fla.gameovermenu_210)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class gameovermenu_210 extends MovieClip {
public var bubblebox_btn:SimpleButton;
public var message_txt:TextField;
public var quit_btn:SimpleButton;
public var caption_txt:TextField;
public var tryagain_btn:SimpleButton;
public var qigames_btn:SimpleButton;
public function gameovermenu_210(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
message_txt.antiAliasType = "advanced";
message_txt.embedFonts = true;
message_txt.setTextFormat(glo.bal.FORMAT01);
tryagain_btn.addEventListener("click", btnTryAgain);
quit_btn.addEventListener("click", btnQuit);
qigames_btn.addEventListener("click", btnQiGames);
bubblebox_btn.addEventListener("click", btnBubbleBox);
}
public function btnQiGames(_arg1:Event){
var e = _arg1;
try {
navigateToURL(glo.bal.URLREQ_QIGAMES, "_blank");
} catch(err:Error) {
};
}
public function btnBubbleBox(_arg1:Event){
var e = _arg1;
try {
navigateToURL(glo.bal.URLREQ_BUBBLEBOX_GAMEOVER, "_blank");
} catch(err:Error) {
};
}
public function btnQuit(_arg1:Event){
glo.bal.GAME.destroy();
glo.bal.INTERFACE.destroy();
glo.bal.JUKEBOX.btnClick();
glo.bal.GAMEMENU.gotoMenu();
}
public function btnTryAgain(_arg1:Event){
glo.bal.GAME.destroy();
glo.bal.INTERFACE.destroy();
glo.bal.JUKEBOX.btnClick();
glo.bal.GAMELOADER.action();
}
}
}//package spacerangerCS3_fla
Section 162
//gamepaused_236 (spacerangerCS3_fla.gamepaused_236)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class gamepaused_236 extends MovieClip {
public var options_btn:SimpleButton;
public var help_btn:SimpleButton;
public var resume_btn:SimpleButton;
public var quit_btn:SimpleButton;
public var caption_txt:TextField;
public function gamepaused_236(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
public function activate(){
visible = true;
gotoAndStop(3);
}
public function backFromOptions(){
visible = true;
}
function frame3(){
stop();
enableButtons();
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
}
function frame1(){
stop();
glo.bal.PAUSEMENU = this;
visible = false;
}
public function deactivate(){
disableButtons();
visible = false;
gotoAndStop(2);
}
function frame2(){
stop();
}
public function disableButtons(){
if (quit_btn){
quit_btn.removeEventListener("click", btnQuit);
resume_btn.removeEventListener("click", btnResume);
help_btn.removeEventListener("click", btnHelp);
options_btn.removeEventListener("click", btnOptions);
};
}
public function backFromInstructions(){
activate();
}
public function btnResume(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
deactivate();
glo.bal.INTERFACE.resumePlay();
}
public function btnOptions(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
glo.bal.OPTIONS.activate(this);
visible = false;
}
public function enableButtons(){
if (quit_btn){
quit_btn.addEventListener("click", btnQuit);
resume_btn.addEventListener("click", btnResume);
help_btn.addEventListener("click", btnHelp);
options_btn.addEventListener("click", btnOptions);
};
}
public function btnHelp(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
deactivate();
glo.bal.HOWTOPLAY.activate(this);
}
public function btnQuit(_arg1:Event){
var e = _arg1;
glo.bal.JUKEBOX.btnClick();
try {
glo.bal.GAME.destroy();
} catch(e:Error) {
};
glo.bal.INTERFACE.destroy();
glo.bal.GAMEMENU.gotoMenu();
}
}
}//package spacerangerCS3_fla
Section 163
//gun1_200 (spacerangerCS3_fla.gun1_200)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class gun1_200 extends MovieClip {
public function gun1_200(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 164
//gun2_198 (spacerangerCS3_fla.gun2_198)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class gun2_198 extends MovieClip {
public function gun2_198(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 165
//gun3_199 (spacerangerCS3_fla.gun3_199)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class gun3_199 extends MovieClip {
public function gun3_199(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 166
//handyman_35 (spacerangerCS3_fla.handyman_35)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class handyman_35 extends MovieClip {
public var body_mc:MovieClip;
public function handyman_35(){
addFrameScript(0, frame1);
}
public function nextState(){
FRAMECOUNT++;
if (FRAMECOUNT < 87){
x = (x + SPEEDX);
} else {
if (!STANDING){
body_mc.stand();
STANDING = true;
};
};
}
function frame1(){
stop();
FRAMECOUNT = 0;
SPEEDX = 6;
STANDING = false;
}
}
}//package spacerangerCS3_fla
Section 167
//health_139 (spacerangerCS3_fla.health_139)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class health_139 extends MovieClip {
public var XP_PCT;
public var health_txt:TextField;
public var xp_bar_mc:MovieClip;
public var focus_txt:TextField;
public var XP_DISPLAYPCT;
public var focus_bar_mc:MovieClip;
public var health_bar_mc:MovieClip;
public var XP_TXT;
public var xp_txt:TextField;
public var FOCUS_PCT;
public var PCT;
public var FOCUS_DISPLAYPCT;
public var DISPLAYPCT;
public function health_139(){
addFrameScript(0, frame1, 1, frame2);
}
public function backToNormal(){
gotoAndStop(2);
}
public function levelUp(){
gotoAndStop(3);
}
function frame1(){
glo.bal.HEALTHBAR = this;
glo.bal.FOCUSBAR = this;
glo.bal.XPBAR = this;
PCT = 100;
DISPLAYPCT = 0;
FOCUS_PCT = 100;
FOCUS_DISPLAYPCT = 0;
XP_PCT = 0;
XP_DISPLAYPCT = 0;
XP_TXT = "";
}
public function setHealth(_arg1:Number, _arg2:Number){
PCT = Math.round(((100 * _arg1) / _arg2));
health_txt.text = ((Math.round(_arg1) + " / ") + _arg2);
}
public function nextState(){
if (PCT != DISPLAYPCT){
if (DISPLAYPCT > PCT){
DISPLAYPCT = (DISPLAYPCT - 1);
health_bar_mc.setPct(Math.round(DISPLAYPCT));
};
if (DISPLAYPCT < PCT){
DISPLAYPCT = (DISPLAYPCT + 1);
health_bar_mc.setPct(Math.round(DISPLAYPCT));
};
};
if (FOCUS_PCT != FOCUS_DISPLAYPCT){
if (FOCUS_DISPLAYPCT > FOCUS_PCT){
FOCUS_DISPLAYPCT = (FOCUS_DISPLAYPCT - 1);
focus_bar_mc.setPct(Math.round(FOCUS_DISPLAYPCT));
};
if (FOCUS_DISPLAYPCT < FOCUS_PCT){
FOCUS_DISPLAYPCT = (FOCUS_DISPLAYPCT + 1);
focus_bar_mc.setPct(Math.round(FOCUS_DISPLAYPCT));
};
};
if (XP_PCT != XP_DISPLAYPCT){
if (XP_DISPLAYPCT > XP_PCT){
XP_DISPLAYPCT = (XP_DISPLAYPCT - 1);
xp_bar_mc.setPct(Math.round(XP_DISPLAYPCT));
};
if (XP_DISPLAYPCT < XP_PCT){
XP_DISPLAYPCT = (XP_DISPLAYPCT + 1);
xp_bar_mc.setPct(Math.round(XP_DISPLAYPCT));
};
};
}
function frame2(){
stop();
xp_txt.text = XP_TXT;
}
public function setLevel(_arg1:Number){
}
public function setFocus(_arg1:Number, _arg2:Number){
FOCUS_PCT = Math.round(((100 * _arg1) / _arg2));
focus_txt.text = ((Math.round(_arg1) + " / ") + _arg2);
}
public function setXP(_arg1:Number, _arg2:Number, _arg3:Number){
XP_PCT = Math.round(((100 * (_arg1 - _arg2)) / (_arg3 - _arg2)));
XP_TXT = ((_arg1 + " / ") + _arg3);
if (xp_txt != null){
xp_txt.text = XP_TXT;
};
}
}
}//package spacerangerCS3_fla
Section 168
//healthbartween_141 (spacerangerCS3_fla.healthbartween_141)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class healthbartween_141 extends MovieClip {
public function healthbartween_141(){
addFrameScript(0, frame1);
}
public function setPct(_arg1:Number){
if (_arg1 > 100){
_arg1 = 100;
};
if (_arg1 < 0){
_arg1 = 0;
};
F = (1 + Math.round(((_arg1 * 0.01) * 99)));
gotoAndStop(F);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 169
//howtoplay_253 (spacerangerCS3_fla.howtoplay_253)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class howtoplay_253 extends MovieClip {
public var ok_btn:SimpleButton;
public var caption_txt:TextField;
public var PARENT;
public function howtoplay_253(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
public function activate(_arg1:MovieClip){
PARENT = _arg1;
visible = true;
gotoAndStop(3);
}
public function btnOk(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
deactivate();
if (PARENT){
PARENT.backFromInstructions();
};
}
function frame3(){
stop();
enableButtons();
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
}
function frame1(){
stop();
glo.bal.HOWTOPLAY = this;
visible = false;
PARENT = null;
}
public function deactivate(){
disableButtons();
visible = false;
gotoAndStop(2);
}
function frame2(){
stop();
}
public function disableButtons(){
if (ok_btn){
ok_btn.removeEventListener("click", btnOk);
};
}
public function enableButtons(){
if (ok_btn){
ok_btn.addEventListener("click", btnOk);
};
}
}
}//package spacerangerCS3_fla
Section 170
//icon2_167 (spacerangerCS3_fla.icon2_167)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class icon2_167 extends MovieClip {
public function icon2_167(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 171
//icon2_169 (spacerangerCS3_fla.icon2_169)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class icon2_169 extends MovieClip {
public function icon2_169(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 172
//icon2_171 (spacerangerCS3_fla.icon2_171)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class icon2_171 extends MovieClip {
public function icon2_171(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 173
//interaction_203 (spacerangerCS3_fla.interaction_203)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class interaction_203 extends MovieClip {
public var COLOR:String;
public var bg:MovieClip;
public var MSG:String;
public var label1_txt:TextField;
public function interaction_203(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 20, frame21);
}
public function activate(_arg1:String, _arg2:String=null){
visible = true;
MSG = _arg1;
COLOR = _arg2;
gotoAndPlay(3);
}
function frame3(){
label1_txt.text = MSG;
switch (COLOR){
case "green":
bg.gotoAndStop(1);
break;
case "red":
bg.gotoAndStop(2);
break;
case "blue":
bg.gotoAndStop(3);
break;
case "yellow":
bg.gotoAndStop(4);
break;
case "orange":
bg.gotoAndStop(5);
break;
default:
bg.gotoAndStop(1);
break;
};
}
function frame1(){
stop();
glo.bal.INTERACTION = this;
visible = false;
MSG = "";
}
public function deactivate(){
visible = false;
gotoAndStop(2);
}
function frame21(){
gotoAndPlay(3);
}
function frame2(){
stop();
}
}
}//package spacerangerCS3_fla
Section 174
//interactionbg_204 (spacerangerCS3_fla.interactionbg_204)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class interactionbg_204 extends MovieClip {
public function interactionbg_204(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 175
//intro_33 (spacerangerCS3_fla.intro_33)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class intro_33 extends MovieClip {
public function intro_33(){
addFrameScript(199, frame200);
}
function frame200(){
stop();
parent.gotoAndStop("pc");
}
}
}//package spacerangerCS3_fla
Section 176
//inventory_196 (spacerangerCS3_fla.inventory_196)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class inventory_196 extends MovieClip {
public var key3_mc:MovieClip;
public var gun2_mc:MovieClip;
public var WEAPON:Number;
public var KEYS:Array;
public var GUNS:Array;
public var key1_mc:MovieClip;
public var ammo3_txt:TextField;
public var gun3_mc:MovieClip;
public var key4_mc:MovieClip;
public var key2_mc:MovieClip;
public var gun1_mc:MovieClip;
public var medikit_txt:TextField;
public var AMMO:Array;
public var ammo2_txt:TextField;
public function inventory_196(){
addFrameScript(0, frame1);
}
public function setWeapon(_arg1:Number){
var _local2:*;
WEAPON = _arg1;
for (_local2 in GUNS) {
if (_local2 == WEAPON){
GUNS[_local2].gotoAndStop(2);
KEYS[_local2].gotoAndStop(2);
} else {
GUNS[_local2].gotoAndStop(1);
KEYS[_local2].gotoAndStop(1);
};
};
}
public function setAmmo(_arg1:Number, _arg2:Number){
if (AMMO[_arg1] != null){
AMMO[_arg1].text = _arg2;
};
}
function frame1(){
stop();
glo.bal.INVENTORY = this;
AMMO = [null, ammo2_txt, ammo3_txt];
GUNS = [gun1_mc, gun2_mc, gun3_mc];
KEYS = [key1_mc, key2_mc, key3_mc];
}
public function setMedikits(_arg1:Number){
medikit_txt.text = _arg1;
}
}
}//package spacerangerCS3_fla
Section 177
//itemstocollect_250 (spacerangerCS3_fla.itemstocollect_250)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class itemstocollect_250 extends MovieClip {
public var ok_btn:SimpleButton;
public var caption_txt:TextField;
public var PARENT;
public function itemstocollect_250(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
public function activate(_arg1:MovieClip){
PARENT = _arg1;
visible = true;
gotoAndStop(3);
}
public function btnOk(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
deactivate();
if (PARENT){
PARENT.backFromItemsToCollect();
};
}
function frame3(){
stop();
enableButtons();
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
}
function frame1(){
stop();
glo.bal.ITEMSTOCOLLECT = this;
visible = false;
PARENT = null;
}
public function deactivate(){
disableButtons();
visible = false;
gotoAndStop(2);
}
function frame2(){
stop();
}
public function disableButtons(){
if (ok_btn){
ok_btn.removeEventListener("click", btnOk);
};
}
public function enableButtons(){
if (ok_btn){
ok_btn.addEventListener("click", btnOk);
};
}
}
}//package spacerangerCS3_fla
Section 178
//keybgrpg_164 (spacerangerCS3_fla.keybgrpg_164)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class keybgrpg_164 extends MovieClip {
public function keybgrpg_164(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 179
//keybgubergun_197 (spacerangerCS3_fla.keybgubergun_197)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class keybgubergun_197 extends MovieClip {
public function keybgubergun_197(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 180
//keyblue_175 (spacerangerCS3_fla.keyblue_175)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class keyblue_175 extends MovieClip {
public function keyblue_175(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 181
//keybluenotice_194 (spacerangerCS3_fla.keybluenotice_194)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class keybluenotice_194 extends MovieClip {
public function keybluenotice_194(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
parent.gotoAndStop(1);
}
}
}//package spacerangerCS3_fla
Section 182
//keygreen_177 (spacerangerCS3_fla.keygreen_177)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class keygreen_177 extends MovieClip {
public function keygreen_177(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 183
//keygreennotice_190 (spacerangerCS3_fla.keygreennotice_190)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class keygreennotice_190 extends MovieClip {
public function keygreennotice_190(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
parent.gotoAndStop(1);
}
}
}//package spacerangerCS3_fla
Section 184
//keyred_173 (spacerangerCS3_fla.keyred_173)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class keyred_173 extends MovieClip {
public function keyred_173(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 185
//keyrednotice_188 (spacerangerCS3_fla.keyrednotice_188)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class keyrednotice_188 extends MovieClip {
public function keyrednotice_188(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
parent.gotoAndStop(1);
}
}
}//package spacerangerCS3_fla
Section 186
//keys_163 (spacerangerCS3_fla.keys_163)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class keys_163 extends MovieClip {
public var btn_heal:SimpleButton;
public var btn_stealth:SimpleButton;
public var btn_repulse:SimpleButton;
public var key4_mc:MovieClip;
public function keys_163(){
addFrameScript(0, frame1);
}
public function btnStealth(_arg1:Event){
glo.bal.PLAYER.useSkill1();
}
public function btnHeal(_arg1:Event){
glo.bal.PLAYER.useSkill2();
}
public function btnRepulse(_arg1:Event){
glo.bal.PLAYER.useSkill3();
}
function frame1(){
stop();
btn_stealth.addEventListener("click", btnStealth);
btn_heal.addEventListener("click", btnHeal);
btn_repulse.addEventListener("click", btnRepulse);
}
}
}//package spacerangerCS3_fla
Section 187
//keys_172 (spacerangerCS3_fla.keys_172)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class keys_172 extends MovieClip {
public var key_green:MovieClip;
public var key_yellow:MovieClip;
public var key_blue:MovieClip;
public var key_red:MovieClip;
public function keys_172(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
glo.bal.KEYS = this;
KEYS = [key_red, key_green, key_yellow, key_blue];
COLORS = ["red", "green", "yellow", "blue"];
}
public function gotKeys(_arg1:Array){
var _local2:*;
var _local3:Number;
var _local4:Boolean;
for (_local2 in KEYS) {
_local4 = false;
for (_local3 in _arg1) {
if (_arg1[_local3] == COLORS[_local2]){
_local4 = true;
break;
};
};
if (_local4){
KEYS[_local2].gotoAndStop(2);
} else {
KEYS[_local2].gotoAndStop(1);
};
};
}
}
}//package spacerangerCS3_fla
Section 188
//keyyellow_179 (spacerangerCS3_fla.keyyellow_179)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class keyyellow_179 extends MovieClip {
public function keyyellow_179(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 189
//keyyellownotice_192 (spacerangerCS3_fla.keyyellownotice_192)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class keyyellownotice_192 extends MovieClip {
public function keyyellownotice_192(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
parent.gotoAndStop(1);
}
}
}//package spacerangerCS3_fla
Section 190
//levelcompleted_287 (spacerangerCS3_fla.levelcompleted_287)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class levelcompleted_287 extends MovieClip {
public var LABELS;
public var score1_txt:TextField;
public var xpbase_txt:TextField;
public var ded1_txt:TextField;
public var res2_txt:TextField;
public var i;
public var label2_txt:TextField;
public var caption_txt:TextField;
public var res1_txt:TextField;
public var ded2_txt:TextField;
public var continue_btn:SimpleButton;
public var label1_txt:TextField;
public var label5_txt:TextField;
public var xptotal_txt:TextField;
public var label3_txt:TextField;
public function levelcompleted_287(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
public function activate(){
visible = true;
gotoAndStop(3);
}
public function btnContinue(_arg1:Event){
deactivate();
glo.bal.PLAYER.continueToNextLevel();
}
public function bonus(){
var _local1:*;
RES1 = Math.round((glo.bal.PLAYER.STATS_TIMEELAPSED / 16));
res1_txt.text = numbers.formatSeconds(RES1);
RES2 = glo.bal.PLAYER.STATS_DAMAGESUFFERED;
res2_txt.text = numbers.format(RES2);
_local1 = (60 * (6 + (3 * glo.bal.CGAME.CLEVEL)));
DED1 = (15 * Math.round(((_local1 - RES1) / 5)));
if (DED1 <= 0){
DED1 = 0;
ded1_txt.text = "0";
ded1_txt.textColor = 0xFFFFFF;
} else {
ded1_txt.text = numbers.format(DED1);
ded1_txt.textColor = 0xFFFFFF;
};
DED2 = (5 * Math.round((RES2 / 5)));
if (DED2 <= 0){
DED2 = 0;
ded2_txt.text = "0";
ded2_txt.textColor = 0xFFFFFF;
} else {
ded2_txt.text = ("-" + numbers.format(DED2));
ded2_txt.textColor = 0xFF0000;
};
XPBASE = (0 + (glo.bal.CGAME.CLEVEL * 500));
switch (glo.bal.CGAME.DIFFICULTY){
case 1:
XPBASE = (XPBASE * 0.75);
break;
case 2:
XPBASE = (XPBASE * 1);
break;
case 3:
XPBASE = (XPBASE * 1.25);
break;
};
xpbase_txt.text = numbers.format(XPBASE);
XPTOTAL = Math.round(((XPBASE + DED1) - DED2));
if (XPTOTAL < 0){
XPTOTAL = 0;
};
xptotal_txt.text = numbers.format(XPTOTAL);
glo.bal.PLAYER.xpReward(XPTOTAL);
}
function frame3(){
stop();
enableButtons();
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
LABELS = [label1_txt, label2_txt, label3_txt, label5_txt];
for (i in LABELS) {
LABELS[i].antiAliasType = "advanced";
LABELS[i].embedFonts = true;
LABELS[i].setTextFormat(glo.bal.FORMAT01);
};
bonus();
}
function frame1(){
stop();
glo.bal.LEVELCOMPLETED = this;
visible = false;
}
public function deactivate(){
disableButtons();
visible = false;
gotoAndStop(2);
}
public function disableButtons(){
if (continue_btn){
continue_btn.removeEventListener("click", btnContinue);
};
}
function frame2(){
stop();
}
public function enableButtons(){
if (continue_btn){
continue_btn.addEventListener("click", btnContinue);
};
}
}
}//package spacerangerCS3_fla
Section 191
//levelmap_235 (spacerangerCS3_fla.levelmap_235)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class levelmap_235 extends MovieClip {
public var caption_txt:TextField;
public var player:MovieClip;
public var ACTIVE;
public var dot02:MovieClip;
public var dot04:MovieClip;
public var dot05:MovieClip;
public var dot07:MovieClip;
public var dot09:MovieClip;
public var dot03:MovieClip;
public var dot06:MovieClip;
public var dot08:MovieClip;
public var dot01:MovieClip;
public var dot11:MovieClip;
public var dot12:MovieClip;
public var dot13:MovieClip;
public var dot14:MovieClip;
public var dot15:MovieClip;
public var dot17:MovieClip;
public var dot18:MovieClip;
public var dot19:MovieClip;
public var dot16:MovieClip;
public var DOTSA:Array;
public var dot20:MovieClip;
public var dot21:MovieClip;
public var dot22:MovieClip;
public var dot25:MovieClip;
public var dot26:MovieClip;
public var dot27:MovieClip;
public var dot28:MovieClip;
public var dot29:MovieClip;
public var dot24:MovieClip;
public var dot10:MovieClip;
public var dot23:MovieClip;
public var map:MapScene;
public var dot30:MovieClip;
public var dot33:MovieClip;
public var dot34:MovieClip;
public var dot35:MovieClip;
public var dot37:MovieClip;
public var dot38:MovieClip;
public var dot39:MovieClip;
public var dot36:MovieClip;
public var dot31:MovieClip;
public var dot32:MovieClip;
public var ok_btn:SimpleButton;
public var dot40:MovieClip;
public var NDOTS:Number;
public function levelmap_235(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7);
}
function frame3(){
NDOTS = 40;
DOTSA = [];
DOTSA.push(dot01);
DOTSA.push(dot02);
DOTSA.push(dot03);
DOTSA.push(dot04);
DOTSA.push(dot05);
DOTSA.push(dot06);
DOTSA.push(dot07);
DOTSA.push(dot08);
DOTSA.push(dot09);
DOTSA.push(dot10);
DOTSA.push(dot11);
DOTSA.push(dot12);
DOTSA.push(dot13);
DOTSA.push(dot14);
DOTSA.push(dot15);
DOTSA.push(dot16);
DOTSA.push(dot17);
DOTSA.push(dot18);
DOTSA.push(dot19);
DOTSA.push(dot20);
DOTSA.push(dot21);
DOTSA.push(dot22);
DOTSA.push(dot23);
DOTSA.push(dot24);
DOTSA.push(dot25);
DOTSA.push(dot26);
DOTSA.push(dot27);
DOTSA.push(dot28);
DOTSA.push(dot29);
DOTSA.push(dot30);
DOTSA.push(dot31);
DOTSA.push(dot32);
DOTSA.push(dot33);
DOTSA.push(dot34);
DOTSA.push(dot35);
DOTSA.push(dot36);
DOTSA.push(dot37);
DOTSA.push(dot38);
DOTSA.push(dot39);
DOTSA.push(dot40);
gotoAndStop((glo.bal.CGAME.CLEVEL + 3));
}
function frame4(){
stop();
enableButtons();
update();
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
}
function frame5(){
stop();
enableButtons();
update();
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
}
function frame6(){
stop();
enableButtons();
update();
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
}
function frame7(){
stop();
enableButtons();
update();
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
}
function frame1(){
stop();
glo.bal.LEVELMAP = this;
visible = false;
ACTIVE = false;
}
public function deactivate(){
ACTIVE = false;
visible = false;
gotoAndStop(2);
}
public function enableButtons(){
if (ok_btn){
ok_btn.addEventListener("click", btnOk);
};
}
function frame2(){
stop();
}
public function update(){
var _local1:*;
var _local2:Object;
var _local3:*;
var _local4:Number;
var _local5:Number;
var _local6:*;
var _local7:Number;
var _local8:Array;
var _local9:Array;
var _local10:*;
var _local11:Number;
if (glo.bal.GAME == null){
return;
};
map.build();
map.update();
_local1 = glo.bal.PLAYER.getPos();
_local5 = glo.bal.PLAYER.getDir();
player.x = (map.x + (_local1.x * 0.05));
player.y = (map.y - (_local1.z * 0.05));
player.rotation = -(_local5);
for (_local6 in DOTSA) {
DOTSA[_local6].visible = false;
};
_local7 = 0;
_local8 = glo.bal.GAME.UNITS;
for (_local6 in _local8) {
if ((((_local8[_local6].TYPE == "egg")) && (_local8[_local6].ALIVE))){
if (((_local8[_local6].DISCOVERED) || (!(glo.bal.GAME.MAP.MAP[_local8[_local6].u][_local8[_local6].v].fogofwar)))){
_local2 = _local8[_local6].getPos();
DOTSA[_local7].x = (map.x + (_local2.x * 0.05));
DOTSA[_local7].y = (map.y - (_local2.z * 0.05));
DOTSA[_local7].visible = true;
DOTSA[_local7].gotoAndStop(2);
++_local7;
if (_local7 >= NDOTS){
_local7 = (NDOTS - 1);
};
};
};
};
_local9 = glo.bal.GAME.OBJECTS;
for (_local6 in _local9) {
if (_local9[_local6].TYPE == "portal"){
_local10 = _local9[_local6].LOC.u;
_local11 = _local9[_local6].LOC.v;
if (!glo.bal.GAME.MAP.MAP[_local10][_local11].fogofwar){
_local2 = _local9[_local6].POS;
DOTSA[_local7].x = (map.x + (_local2.x * 0.05));
DOTSA[_local7].y = (map.y - (_local2.z * 0.05));
DOTSA[_local7].visible = true;
DOTSA[_local7].gotoAndStop(3);
++_local7;
if (_local7 >= NDOTS){
_local7 = (NDOTS - 1);
};
};
};
};
}
public function activate(){
ACTIVE = true;
visible = true;
gotoAndPlay(3);
}
public function btnOk(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
deactivate();
glo.bal.INTERFACE.resumePlay();
}
public function disableButtons(){
if (ok_btn){
ok_btn.removeEventListener("click", btnOk);
};
}
}
}//package spacerangerCS3_fla
Section 192
//levelup_149 (spacerangerCS3_fla.levelup_149)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class levelup_149 extends MovieClip {
public function levelup_149(){
addFrameScript(0, frame1);
}
public function activate(){
visible = true;
gotoAndStop(3);
}
function frame1(){
stop();
glo.bal.LEVELUPAURA = this;
visible = false;
}
public function deactivate(){
visible = false;
gotoAndStop(2);
}
}
}//package spacerangerCS3_fla
Section 193
//loaderCPMStar_2 (spacerangerCS3_fla.loaderCPMStar_2)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import CPMStar.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class loaderCPMStar_2 extends MovieClip {
public var BYTESLOADED:Number;
public var pct_txt:TextField;
public var LOADER:Loader;
public var ad:DisplayObject;
public var PREROLLRATIO:Number;
public var PREROLLTIME:Number;
public var BYTESRATIO:Number;
public var SWF_RETRY:String;
public var status_txt:TextField;
public var adBox:MovieClip;
public var CPMStarSubPoolID:int;
public var qigames_btn:SimpleButton;
public var CPMStarPoolID:int;
public var play_btn:SimpleButton;
public var locked_mc:MovieClip;
public var MINRATIO:Number;
public var file_txt:TextField;
public var SWF_FILE:String;
public var bar_mc:MovieClip;
public var LOADERINFO:LoaderInfo;
public var RETRYCOUNT:Number;
public var slashindex:Number;
public var kb_txt:TextField;
public var PREROLLTIMER:Number;
public var SWFURL:String;
public var BYTESTOTAL:Number;
public var RETRYURL:String;
public var bubblebox_btn:SimpleButton;
public var SWF_PATH:String;
public var SWF_URL:String;
public function loaderCPMStar_2(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5);
}
public function onComplete(_arg1:Event){
}
function frame2(){
stop();
PREROLLTIMER = 0;
SWF_FILE = "swfUnits.swf";
file_txt.text = ("file 2 of 4 : " + SWF_FILE);
RETRYCOUNT = 0;
loadAsset();
}
function frame3(){
stop();
PREROLLTIMER = 0;
SWF_FILE = "swfObjects.swf";
file_txt.text = ("file 3 of 4 : " + SWF_FILE);
loadAsset();
}
function frame4(){
stop();
PREROLLTIMER = 0;
COMPLETED = false;
SWF_FILE = "swfFX.swf";
file_txt.text = ("file 4 of 4 : " + SWF_FILE);
loadAsset();
}
function frame5(){
stop();
removeEventListener(Event.ENTER_FRAME, evtEnterFrame);
if (glo.bal.GAME_AUTH){
locked_mc.visible = false;
} else {
if (adBox){
removeChild(adBox);
};
adBox = null;
locked_mc.visible = true;
locked_mc.y = 200;
};
play_btn.addEventListener("click", btnPlay);
}
function frame1(){
parent.stop();
if (glo.bal.GAME_AUTH){
stop();
} else {
gotoAndStop(5);
};
Security.allowDomain("*");
Security.allowInsecureDomain("*");
PREROLLTIMER = 0;
PREROLLTIME = (glo.bal.FRAMERATE * 2);
PREROLLRATIO = 0;
BYTESLOADED = 0;
BYTESTOTAL = 1;
MINRATIO = 0;
LOADER = null;
LOADERINFO = loaderInfo;
if (glo.bal.GAME_AUTH){
CPMStarPoolID = 1239;
CPMStarSubPoolID = 8;
try {
ad = AdLoader.LoadAd(CPMStarPoolID, CPMStarSubPoolID);
adBox.addChild(ad);
} catch(e:Error) {
trace(((("ERROR " + e.errorID) + " : ") + e.message));
};
};
qigames_btn.addEventListener("click", btnQiGames);
bubblebox_btn.addEventListener("click", btnBubbleBox);
SWF_URL = loaderInfo.url;
slashindex = SWF_URL.lastIndexOf("/");
SWF_PATH = SWF_URL.substring(0, (slashindex + 1));
SWF_FILE = SWF_URL.substring((slashindex + 1), SWF_URL.length);
SWF_RETRY = "http://static.bubblebox.com/swf/alienslayer3d/";
file_txt.text = ("file 1 of 4 : " + SWF_FILE);
addEventListener(Event.ENTER_FRAME, evtEnterFrame);
}
public function retry(_arg1:Event=null){
var e = _arg1;
PREROLLTIMER = 0;
RETRYCOUNT++;
if (((glo.bal.LOCALHOST) && ((RETRYCOUNT > 10)))){
glo.bal.GAME_AUTH = false;
gotoAndStop(5);
};
if (e){
trace(e.text);
};
Security.allowDomain("*");
Security.allowInsecureDomain("*");
try {
LOADER.load(new URLRequest(RETRYURL));
} catch(err:Error) {
trace(("error : " + err.message));
retry();
};
}
public function btnBubbleBox(_arg1:Event){
var e = _arg1;
try {
navigateToURL(glo.bal.URLREQ_BUBBLEBOX_LOADER, "_blank");
} catch(err:Error) {
};
}
public function displayProgress(){
var _local1:*;
var _local2:Number;
SHOWRATIO = (((currentFrame - 1) * 0.25) + (MINRATIO * 0.25));
SHOWBYTES = (5300 * 0x0400);
pct_txt.text = (Math.round((100 * SHOWRATIO)) + "%");
if (SHOWRATIO > 0){
_local2 = Math.round((SHOWBYTES / 0x0400));
_local1 = Math.round((_local2 * SHOWRATIO));
kb_txt.text = (((_local1 + " / ") + _local2) + " kB");
} else {
kb_txt.text = "";
};
bar_mc.gotoAndStop((1 + Math.round((100 * SHOWRATIO))));
}
public function onProgress(_arg1:Event){
}
public function btnQiGames(_arg1:Event){
var e = _arg1;
try {
navigateToURL(glo.bal.URLREQ_QIGAMES, "_blank");
} catch(err:Error) {
};
}
public function loadAsset(){
LOADER = new Loader();
LOADER.contentLoaderInfo.addEventListener("complete", onComplete);
LOADER.contentLoaderInfo.addEventListener("ioError", retry);
LOADER.contentLoaderInfo.addEventListener("progress", onProgress);
SWFURL = (SWF_PATH + SWF_FILE);
RETRYURL = (SWF_RETRY + SWF_FILE);
LOADERINFO = LOADER.contentLoaderInfo;
try {
LOADER.load(new URLRequest(SWFURL));
} catch(err:Error) {
trace(("error : " + err.message));
retry();
};
}
public function btnPlay(_arg1:Event){
var evt = _arg1;
if (glo.bal.GAME_AUTH){
if (adBox){
removeChild(adBox);
};
adBox = null;
parent.play();
} else {
try {
navigateToURL(glo.bal.URLREQ_BUBBLEBOX_PLAY, "_blank");
} catch(err:Error) {
};
};
}
public function evtEnterFrame(_arg1:Event):void{
if (currentFrame > 4){
return;
};
if (!LOADERINFO){
trace("null");
return;
};
BYTESLOADED = LOADERINFO.bytesLoaded;
BYTESTOTAL = LOADERINFO.bytesTotal;
if (BYTESTOTAL > 0){
BYTESRATIO = (BYTESLOADED / BYTESTOTAL);
} else {
BYTESRATIO = 0;
};
PREROLLTIMER++;
PREROLLRATIO = (PREROLLTIMER / PREROLLTIME);
MINRATIO = Math.min(PREROLLRATIO, BYTESRATIO);
if (MINRATIO > 1){
MINRATIO = 1;
};
displayProgress();
if (MINRATIO >= 1){
switch (currentFrame){
case 2:
glo.bal.SWF_UNITS = LOADER.content;
break;
case 3:
glo.bal.SWF_OBJECTS = LOADER.content;
break;
case 4:
glo.bal.SWF_FX = LOADER.content;
break;
};
if (currentFrame > 1){
if (!LOADER.content){
retry();
return;
};
};
LOADERINFO = null;
gotoAndStop((currentFrame + 1));
};
}
}
}//package spacerangerCS3_fla
Section 194
//loadgame_326 (spacerangerCS3_fla.loadgame_326)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class loadgame_326 extends MovieClip {
public var NEXT;
public function loadgame_326(){
addFrameScript(0, frame1, 44, frame45, 64, frame65);
}
function frame65(){
stop();
switch (NEXT){
case "play":
glo.bal.GAMEMENU.gotoPlay();
break;
case "menu":
glo.bal.GAMEMENU.gotoMenu();
break;
};
}
public function gotoPlay(){
NEXT = "play";
gotoAndPlay("fadeout");
}
public function gotoMenu(){
NEXT = "menu";
gotoAndPlay("fadeout");
}
function frame1(){
NEXT = null;
}
function frame45(){
stop();
}
}
}//package spacerangerCS3_fla
Section 195
//map_153 (spacerangerCS3_fla.map_153)
package spacerangerCS3_fla {
import flash.display.*;
public dynamic class map_153 extends MovieClip {
public var mapscene:MapScene;
}
}//package spacerangerCS3_fla
Section 196
//mapbtnclip_161 (spacerangerCS3_fla.mapbtnclip_161)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class mapbtnclip_161 extends MovieClip {
public var label_txt:TextField;
public function mapbtnclip_161(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 197
//medikitnotice_181 (spacerangerCS3_fla.medikitnotice_181)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class medikitnotice_181 extends MovieClip {
public function medikitnotice_181(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
parent.gotoAndStop(1);
}
}
}//package spacerangerCS3_fla
Section 198
//menu_317 (spacerangerCS3_fla.menu_317)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class menu_317 extends MovieClip {
public var label4_txt:TextField;
public var label2_txt:TextField;
public var ok_btn:SimpleButton;
public var label1_txt:TextField;
public var label3_txt:TextField;
public function menu_317(){
addFrameScript(0, frame1);
}
public function btnOk(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
disableButtons();
parent.NEXT = "player";
parent.play();
}
function frame1(){
stop();
BTNS = [ok_btn];
enableButtons();
label1_txt.antiAliasType = "advanced";
label1_txt.embedFonts = true;
label1_txt.setTextFormat(glo.bal.FORMAT01);
label2_txt.antiAliasType = "advanced";
label2_txt.embedFonts = true;
label2_txt.setTextFormat(glo.bal.FORMAT01);
label3_txt.antiAliasType = "advanced";
label3_txt.embedFonts = true;
label3_txt.setTextFormat(glo.bal.FORMAT01);
label4_txt.antiAliasType = "advanced";
label4_txt.embedFonts = true;
label4_txt.setTextFormat(glo.bal.FORMAT01);
ok_btn.addEventListener("click", btnOk);
}
public function disableButtons(){
for (i in BTNS) {
BTNS[i].enabled = false;
};
}
public function enableButtons(){
for (i in BTNS) {
BTNS[i].enabled = true;
};
}
}
}//package spacerangerCS3_fla
Section 199
//menu_318 (spacerangerCS3_fla.menu_318)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class menu_318 extends MovieClip {
public var back_btn:SimpleButton;
public var ok_btn:SimpleButton;
public var playerName_txt:TextField;
public var label1_txt:TextField;
public function menu_318(){
addFrameScript(0, frame1);
}
public function btnOk(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
PLAYERNAME = playerName_txt.text;
if (PLAYERNAME == ""){
PLAYERNAME = "Player1";
};
C = glo.bal.GAMES.length;
if (C < 5){
glo.bal.CGAME = new gameData(PLAYERNAME);
glo.bal.GAMES.push(glo.bal.CGAME);
} else {
trace("override older game ...");
glo.bal.CGAME = new gameData(PLAYERNAME);
glo.bal.GAMES[4] = glo.bal.CGAME;
};
gameData.saveGames(glo.bal.GAMES);
disableButtons();
parent.NEXT = "difficulty";
parent.play();
}
public function btnBack(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
disableButtons();
parent.NEXT = "back";
parent.play();
}
function frame1(){
stop();
stage.focus = playerName_txt;
BTNS = [ok_btn, back_btn];
enableButtons();
label1_txt.antiAliasType = "advanced";
label1_txt.embedFonts = true;
label1_txt.setTextFormat(glo.bal.FORMAT01);
playerName_txt.antiAliasType = "advanced";
playerName_txt.embedFonts = true;
playerName_txt.setTextFormat(glo.bal.FORMAT01);
playerName_txt.defaultTextFormat = glo.bal.FORMAT01;
ok_btn.addEventListener("click", btnOk);
back_btn.addEventListener("click", btnBack);
}
public function disableButtons(){
for (i in BTNS) {
BTNS[i].enabled = false;
};
}
public function enableButtons(){
for (i in BTNS) {
BTNS[i].enabled = true;
};
}
}
}//package spacerangerCS3_fla
Section 200
//menu_319 (spacerangerCS3_fla.menu_319)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class menu_319 extends MovieClip {
public var hard_btn:SimpleButton;
public var caption_txt:TextField;
public var medium_btn:SimpleButton;
public var easy_btn:SimpleButton;
public function menu_319(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
BTNS = [easy_btn, medium_btn, hard_btn];
enableButtons();
easy_btn.addEventListener("click", btnEasy);
medium_btn.addEventListener("click", btnMedium);
hard_btn.addEventListener("click", btnHard);
}
public function btnHard(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
glo.bal.CGAME.DIFFICULTY = 3;
gameData.saveGames(glo.bal.GAMES);
parent.play();
}
public function disableButtons(){
for (i in BTNS) {
BTNS[i].enabled = false;
};
}
public function enableButtons(){
for (i in BTNS) {
BTNS[i].enabled = true;
};
}
public function btnEasy(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
glo.bal.CGAME.DIFFICULTY = 1;
gameData.saveGames(glo.bal.GAMES);
parent.play();
}
public function btnMedium(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
glo.bal.CGAME.DIFFICULTY = 2;
gameData.saveGames(glo.bal.GAMES);
parent.play();
}
}
}//package spacerangerCS3_fla
Section 201
//menu_328 (spacerangerCS3_fla.menu_328)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class menu_328 extends MovieClip {
public var cancel_btn:SimpleButton;
public var zone1_btn:SimpleButton;
public var selection_mc:MovieClip;
public var zone3_btn:SimpleButton;
public var zone5_btn:SimpleButton;
public var ICONY0;
public var game2_txt:TextField;
public var game4_txt:TextField;
public var ZONES;
public var text1_txt:TextField;
public var ok_btn:SimpleButton;
public var zone4_btn:SimpleButton;
public var game1_txt:TextField;
public var SELECTED;
public var game3_txt:TextField;
public var game5_txt:TextField;
public var zone2_btn:SimpleButton;
public var ZONEY0;
public var LABELS;
public function menu_328(){
addFrameScript(0, frame1);
}
public function btnZone1(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
if (C < 1){
return;
};
SELECTED = 1;
selection_mc.y = (ZONEY0 + 0);
}
public function btnZone3(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
if (C < 3){
return;
};
SELECTED = 3;
selection_mc.y = (ZONEY0 + 50);
}
public function btnZone5(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
if (C < 5){
return;
};
SELECTED = 5;
selection_mc.y = (ZONEY0 + 100);
}
public function btnZone4(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
if (C < 4){
return;
};
SELECTED = 4;
selection_mc.y = (ZONEY0 + 75);
}
public function btnZone2(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
if (C < 2){
return;
};
SELECTED = 2;
selection_mc.y = (ZONEY0 + 25);
}
public function btnOk(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
glo.bal.CGAME = glo.bal.GAMES[(SELECTED - 1)];
trace("Load Game -> some checks on gamedata values");
disableButtons();
parent.parent.gotoPlay();
}
function frame1(){
stop();
enableButtons();
LABELS = [game1_txt, game2_txt, game3_txt, game4_txt, game5_txt];
ZONES = [zone1_btn, zone2_btn, zone3_btn, zone4_btn, zone5_btn];
SELECTED = 1;
text1_txt.embedFonts = true;
text1_txt.setTextFormat(glo.bal.FORMAT01);
C = glo.bal.GAMES.length;
i = 0;
while (i < 5) {
if (i > (C - 1)){
LABELS[i].text = "";
ZONES[i].visible = false;
} else {
LABELS[i].text = ((("Level " + glo.bal.GAMES[i].CLEVEL) + " - ") + glo.bal.GAMES[i].PLAYERNAME);
};
i++;
};
ICONY0 = 130;
ZONEY0 = 130;
game1_txt.embedFonts = true;
game1_txt.setTextFormat(glo.bal.FORMAT02);
game2_txt.embedFonts = true;
game2_txt.setTextFormat(glo.bal.FORMAT02);
game3_txt.embedFonts = true;
game3_txt.setTextFormat(glo.bal.FORMAT02);
game4_txt.embedFonts = true;
game4_txt.setTextFormat(glo.bal.FORMAT02);
game5_txt.embedFonts = true;
game5_txt.setTextFormat(glo.bal.FORMAT02);
zone1_btn.addEventListener("click", btnZone1);
zone2_btn.addEventListener("click", btnZone2);
zone3_btn.addEventListener("click", btnZone3);
zone4_btn.addEventListener("click", btnZone4);
zone5_btn.addEventListener("click", btnZone5);
ok_btn.addEventListener("click", btnOk);
cancel_btn.addEventListener("click", btnCancel);
}
public function enableButtons(){
ok_btn.enabled = true;
cancel_btn.enabled = true;
}
public function disableButtons(){
ok_btn.enabled = false;
cancel_btn.enabled = false;
}
public function btnCancel(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
disableButtons();
parent.parent.gotoMenu();
}
}
}//package spacerangerCS3_fla
Section 202
//menulinks_302 (spacerangerCS3_fla.menulinks_302)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class menulinks_302 extends MovieClip {
public var moregames_btn:SimpleButton;
public var scores_btn:SimpleButton;
public function menulinks_302(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
BTNS = [moregames_btn, scores_btn];
enableButtons();
moregames_btn.addEventListener("click", btnMoreGames);
scores_btn.addEventListener("click", btnScores);
}
public function btnMoreGames(_arg1:Event){
var e = _arg1;
try {
glo.bal.JUKEBOX.btnClick();
navigateToURL(glo.bal.URLREQ_BUBBLEBOX_MOREGAMES, "_blank");
} catch(err:Error) {
trace("Open MoreGames URL ...");
};
}
public function disableButtons(){
for (i in BTNS) {
BTNS[i].enabled = false;
};
}
public function btnScores(_arg1:Event){
var e = _arg1;
try {
glo.bal.JUKEBOX.btnClick();
navigateToURL(glo.bal.URLREQ_BUBBLEBOX_VIEWSCORES, "_blank");
} catch(err:Error) {
trace("Open ViewScores URL ...");
};
}
public function enableButtons(){
for (i in BTNS) {
BTNS[i].enabled = true;
};
}
}
}//package spacerangerCS3_fla
Section 203
//menunew_296 (spacerangerCS3_fla.menunew_296)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class menunew_296 extends MovieClip {
public var new_btn:SimpleButton;
public var load_btn:SimpleButton;
public function menunew_296(){
addFrameScript(0, frame1);
}
public function order(_arg1, _arg2):Number{
if (_arg1.LASTMODIFIED > _arg2.LASTMODIFIED){
return (-1);
};
if (_arg1.LASTMODIFIED < _arg2.LASTMODIFIED){
return (1);
};
return (0);
}
public function btnLoad(_arg1:Event){
if (glo.bal.GAMES.length == 0){
return;
};
glo.bal.JUKEBOX.btnClick();
parent.parent.gotoLoadGame();
disableButtons();
}
function frame1(){
stop();
BTNS = [load_btn, new_btn];
enableButtons();
glo.bal.GAMES = gameData.getGames();
glo.bal.GAMES.sort(order);
if (glo.bal.GAMES.length == 0){
load_btn.enabled = false;
load_btn.alpha = 0.5;
} else {
load_btn.enabled = true;
load_btn.alpha = 1;
};
load_btn.addEventListener("click", btnLoad);
new_btn.addEventListener("click", btnNew);
}
public function disableButtons(){
for (i in BTNS) {
BTNS[i].enabled = false;
};
}
public function btnNew(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
parent.parent.gotoNewGame();
disableButtons();
}
public function enableButtons(){
for (i in BTNS) {
BTNS[i].enabled = true;
};
}
}
}//package spacerangerCS3_fla
Section 204
//menutransition_292 (spacerangerCS3_fla.menutransition_292)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class menutransition_292 extends MovieClip {
public var chair:MovieClip;
public function menutransition_292(){
addFrameScript(0, frame1, 29, frame30, 130, frame131, 210, frame211);
}
public function gotoHelp(){
NEXT = "help";
toFadeout();
}
function frame211(){
stop();
switch (NEXT){
case "load game":
glo.bal.GAMEMENU.gotoLoadGame();
break;
case "new game":
glo.bal.GAMEMENU.gotoNewGame();
break;
case "credits":
glo.bal.GAMEMENU.gotoCredits();
break;
case "help":
glo.bal.GAMEMENU.gotoHelp();
break;
};
}
public function toFadeout(){
if (currentFrame < 130){
gotoAndPlay(((150 + 130) - currentFrame));
} else {
gotoAndPlay("fadeout");
};
}
function frame1(){
}
public function gotoLoadGame(){
NEXT = "load game";
toFadeout();
}
function frame30(){
chair.gotoAndPlay(2);
}
function frame131(){
stop();
}
public function gotoNewGame(){
NEXT = "new game";
toFadeout();
}
}
}//package spacerangerCS3_fla
Section 205
//messages_162 (spacerangerCS3_fla.messages_162)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class messages_162 extends MovieClip {
public function messages_162(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
glo.bal.MESSAGING = this;
}
public function pickedAmmo(_arg1:Number){
gotoAndStop((_arg1 + 2));
}
public function pickedKey(_arg1:String){
switch (_arg1){
case "red":
gotoAndStop(5);
break;
case "green":
gotoAndStop(6);
break;
case "yellow":
gotoAndStop(7);
break;
case "blue":
gotoAndStop(8);
break;
};
}
public function pickedMedikit(){
gotoAndStop(2);
}
}
}//package spacerangerCS3_fla
Section 206
//missionprogress_201 (spacerangerCS3_fla.missionprogress_201)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class missionprogress_201 extends MovieClip {
public var label2_txt:TextField;
public var label1_txt:TextField;
public var MSG2:String;
public var MSG1:String;
public function missionprogress_201(){
addFrameScript(0, frame1, 1, frame2, 29, frame30);
}
public function activate(_arg1:String, _arg2:String){
visible = true;
MSG1 = _arg1;
MSG2 = _arg2;
gotoAndPlay(2);
}
function frame1(){
stop();
glo.bal.MISSIONPROGRESS = this;
visible = false;
MSG1 = "";
MSG2 = "";
}
public function deactivate(){
visible = false;
stop();
}
function frame2(){
label1_txt.text = MSG1;
label2_txt.text = MSG2;
}
function frame30(){
stop();
}
}
}//package spacerangerCS3_fla
Section 207
//monsterwarning_205 (spacerangerCS3_fla.monsterwarning_205)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class monsterwarning_205 extends MovieClip {
public var arrowL:MovieClip;
public var arrowR:MovieClip;
public function monsterwarning_205(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
glo.bal.MONSTERWARNING = this;
arrowL.visible = false;
arrowR.visible = false;
}
public function warnL(){
arrowL.visible = true;
arrowL.gotoAndPlay(1);
}
public function warnR(){
arrowR.visible = true;
arrowR.gotoAndPlay(1);
}
}
}//package spacerangerCS3_fla
Section 208
//moves_36 (spacerangerCS3_fla.moves_36)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class moves_36 extends MovieClip {
public var stand_mc:MovieClip;
public var walk_mc:MovieClip;
public function moves_36(){
addFrameScript(0, frame1);
}
public function setBody(_arg1:Number){
gotoAndStop(_arg1);
}
function frame1(){
stop();
CLIPS = [walk_mc, stand_mc];
walk();
}
public function walk(){
setBody(2);
}
public function stand(){
setBody(3);
}
}
}//package spacerangerCS3_fla
Section 209
//moves_40 (spacerangerCS3_fla.moves_40)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class moves_40 extends MovieClip {
public var stand_mc:MovieClip;
public var walk_mc:MovieClip;
public function moves_40(){
addFrameScript(0, frame1);
}
public function setBody(_arg1:Number){
gotoAndStop(_arg1);
}
function frame1(){
stop();
CLIPS = [walk_mc, stand_mc];
walk();
}
public function walk(){
setBody(2);
}
public function stand(){
setBody(3);
}
}
}//package spacerangerCS3_fla
Section 210
//moves_44 (spacerangerCS3_fla.moves_44)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class moves_44 extends MovieClip {
public var stand_mc:MovieClip;
public var walk_mc:MovieClip;
public function moves_44(){
addFrameScript(0, frame1);
}
public function setBody(_arg1:Number){
gotoAndStop(_arg1);
}
function frame1(){
stop();
CLIPS = [walk_mc, stand_mc];
walk();
}
public function walk(){
setBody(2);
}
public function stand(){
setBody(3);
}
}
}//package spacerangerCS3_fla
Section 211
//newgame_314 (spacerangerCS3_fla.newgame_314)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class newgame_314 extends MovieClip {
public function newgame_314(){
addFrameScript(0, frame1, 44, frame45, 64, frame65);
}
function frame65(){
stop();
switch (NEXT){
case "load game":
glo.bal.GAMEMENU.gotoLoadGame();
break;
case "new game":
glo.bal.GAMEMENU.gotoNewGame();
break;
case "credits":
glo.bal.GAMEMENU.gotoCredits();
break;
case "help":
glo.bal.GAMEMENU.gotoHelp();
break;
};
}
public function gotoHelp(){
NEXT = "help";
gotoAndPlay("fadeout");
}
function frame1(){
}
public function gotoLoadGame(){
NEXT = "load game";
gotoAndPlay("fadeout");
}
function frame45(){
stop();
}
public function gotoNewGame(){
NEXT = "new game";
gotoAndPlay("fadeout");
}
}
}//package spacerangerCS3_fla
Section 212
//notice_208 (spacerangerCS3_fla.notice_208)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class notice_208 extends MovieClip {
public var bg:MovieClip;
public var MSG:String;
public var label1_txt:TextField;
public function notice_208(){
addFrameScript(0, frame1, 1, frame2, 29, frame30);
}
public function activate(_arg1:String, _arg2:String=null){
visible = true;
MSG = _arg1;
gotoAndPlay(2);
switch (_arg2){
case "green":
bg.gotoAndStop(1);
break;
case "red":
bg.gotoAndStop(2);
break;
case "blue":
bg.gotoAndStop(3);
break;
case "yellow":
bg.gotoAndStop(4);
break;
case "orange":
bg.gotoAndStop(5);
break;
case "darkblue":
bg.gotoAndStop(6);
break;
default:
bg.gotoAndStop(6);
break;
};
}
function frame1(){
stop();
glo.bal.NOTICE = this;
MSG = "";
visible = false;
}
public function deactivate(){
visible = false;
stop();
}
function frame2(){
label1_txt.text = MSG;
}
function frame30(){
stop();
}
}
}//package spacerangerCS3_fla
Section 213
//options_221 (spacerangerCS3_fla.options_221)
package spacerangerCS3_fla {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import fl.events.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class options_221 extends MovieClip {
public var LABELS;
public var i;
public var slider1:Slider;
public var label4_txt:TextField;
public var label2_txt:TextField;
public var slider3:Slider;
public var ok_btn:SimpleButton;
public var slider4:Slider;
public var caption_txt:TextField;
public var PARENT:Object;
public var slider2:Slider;
public var label1_txt:TextField;
public var label3_txt:TextField;
public function options_221(){
addFrameScript(0, frame1);
__setProp_slider2_options_sliders_1();
__setProp_slider3_options_sliders_1();
__setProp_slider1_options_sliders_1();
__setProp_slider4_options_sliders_1();
}
public function activate(_arg1:Object){
PARENT = _arg1;
visible = true;
ok_btn.enabled = true;
slider1.value = (glo.bal.JUKEBOX.OPT_VOLUME_MUSIC * 100);
slider2.value = (glo.bal.JUKEBOX.OPT_VOLUME_SFX * 100);
slider3.value = (glo.bal.PLAYER.OPT_CAM_SENS_PAN * 100);
slider4.value = (glo.bal.PLAYER.OPT_MOUSEWHEEL_SENS * 100);
}
public function slideSFX(_arg1:SliderEvent){
glo.bal.JUKEBOX.setSfxVolume((_arg1.value / 100));
}
public function slideMusic(_arg1:SliderEvent){
glo.bal.JUKEBOX.setMusicVolume((_arg1.value / 100));
}
public function slideWheel(_arg1:SliderEvent){
glo.bal.PLAYER.OPT_MOUSEWHEEL_SENS = (_arg1.value / 100);
glo.bal.CGAME.OPT_MOUSEWHEEL_SENS = (_arg1.value / 100);
gameData.saveGames(glo.bal.GAMES);
}
public function btnOK(_arg1:Event){
deactivate();
PARENT.backFromOptions();
}
function __setProp_slider3_options_sliders_1(){
try {
slider3["componentInspectorSetting"] = true;
} catch(e:Error) {
};
slider3.direction = "horizontal";
slider3.enabled = true;
slider3.liveDragging = false;
slider3.maximum = 100;
slider3.minimum = 0;
slider3.snapInterval = 0;
slider3.tickInterval = 0;
slider3.value = 0;
slider3.visible = true;
try {
slider3["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function frame1(){
stop();
visible = false;
glo.bal.OPTIONS = this;
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
LABELS = [label1_txt, label2_txt, label3_txt, label4_txt];
for (i in LABELS) {
LABELS[i].antiAliasType = "advanced";
LABELS[i].embedFonts = true;
LABELS[i].setTextFormat(glo.bal.FORMAT01);
};
PARENT = null;
slider1.addEventListener("change", slideMusic);
slider2.addEventListener("change", slideSFX);
slider3.addEventListener("change", slideCam);
slider4.addEventListener("change", slideWheel);
ok_btn.addEventListener("click", btnOK);
}
public function slideCam(_arg1:SliderEvent){
glo.bal.PLAYER.OPT_CAM_SENS_PAN = (_arg1.value / 100);
glo.bal.CGAME.OPT_CAM_SENS_PAN = (_arg1.value / 100);
gameData.saveGames(glo.bal.GAMES);
}
public function deactivate(){
visible = false;
ok_btn.enabled = false;
}
function __setProp_slider2_options_sliders_1(){
try {
slider2["componentInspectorSetting"] = true;
} catch(e:Error) {
};
slider2.direction = "horizontal";
slider2.enabled = true;
slider2.liveDragging = false;
slider2.maximum = 100;
slider2.minimum = 0;
slider2.snapInterval = 0;
slider2.tickInterval = 0;
slider2.value = 0;
slider2.visible = true;
try {
slider2["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function __setProp_slider1_options_sliders_1(){
try {
slider1["componentInspectorSetting"] = true;
} catch(e:Error) {
};
slider1.direction = "horizontal";
slider1.enabled = true;
slider1.liveDragging = false;
slider1.maximum = 100;
slider1.minimum = 0;
slider1.snapInterval = 0;
slider1.tickInterval = 0;
slider1.value = 0;
slider1.visible = true;
try {
slider1["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function __setProp_slider4_options_sliders_1(){
try {
slider4["componentInspectorSetting"] = true;
} catch(e:Error) {
};
slider4.direction = "horizontal";
slider4.enabled = true;
slider4.liveDragging = false;
slider4.maximum = 100;
slider4.minimum = 0;
slider4.snapInterval = 0;
slider4.tickInterval = 0;
slider4.value = 0;
slider4.visible = true;
try {
slider4["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
}
}//package spacerangerCS3_fla
Section 214
//outline_128 (spacerangerCS3_fla.outline_128)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class outline_128 extends MovieClip {
public var pie_mask_mc:MovieClip;
public function outline_128(){
addFrameScript(0, frame1);
}
function frame1(){
}
}
}//package spacerangerCS3_fla
Section 215
//panelnew_294 (spacerangerCS3_fla.panelnew_294)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class panelnew_294 extends MovieClip {
public var menu_mc:MovieClip;
public function panelnew_294(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 216
//paneloptions_301 (spacerangerCS3_fla.paneloptions_301)
package spacerangerCS3_fla {
import flash.display.*;
public dynamic class paneloptions_301 extends MovieClip {
public var menu_mc:MovieClip;
}
}//package spacerangerCS3_fla
Section 217
//panelqigames_312 (spacerangerCS3_fla.panelqigames_312)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class panelqigames_312 extends MovieClip {
public var btn_qigames:SimpleButton;
public function panelqigames_312(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
btn_qigames.addEventListener("click", btnQiGames);
}
public function btnQiGames(_arg1:Event){
var e = _arg1;
try {
glo.bal.JUKEBOX.btnClick();
navigateToURL(glo.bal.URLREQ_QIGAMES);
} catch(err:Error) {
};
}
}
}//package spacerangerCS3_fla
Section 218
//panelsponsor_309 (spacerangerCS3_fla.panelsponsor_309)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class panelsponsor_309 extends MovieClip {
public var bubblebox_btn:SimpleButton;
public function panelsponsor_309(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
bubblebox_btn.addEventListener("click", btnBubbleBox);
}
public function btnBubbleBox(_arg1:Event){
var e = _arg1;
try {
navigateToURL(glo.bal.URLREQ_BUBBLEBOX_GAMEMENU, "_blank");
} catch(err:Error) {
};
}
}
}//package spacerangerCS3_fla
Section 219
//pcoption_58 (spacerangerCS3_fla.pcoption_58)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class pcoption_58 extends MovieClip {
public var btn_slow:SimpleButton;
public var btn_good:SimpleButton;
public function pcoption_58(){
addFrameScript(0, frame1);
}
public function btnGood(_arg1:Event){
glo.bal.PC_OPTION = 1;
parent.gotoAndPlay("game");
}
function frame1(){
stop();
glo.bal.PC_OPTION = 1;
btn_good.addEventListener("click", btnGood);
btn_slow.addEventListener("click", btnSlow);
}
public function btnSlow(_arg1:Event){
glo.bal.PC_OPTION = 2;
parent.gotoAndPlay("game");
}
}
}//package spacerangerCS3_fla
Section 220
//pistol_85 (spacerangerCS3_fla.pistol_85)
package spacerangerCS3_fla {
import flash.display.*;
public dynamic class pistol_85 extends MovieClip {
public var fire_mc:MovieClip;
}
}//package spacerangerCS3_fla
Section 221
//playtext_21 (spacerangerCS3_fla.playtext_21)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class playtext_21 extends MovieClip {
public var label_txt:TextField;
public function playtext_21(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 222
//pressctolevelup_148 (spacerangerCS3_fla.pressctolevelup_148)
package spacerangerCS3_fla {
import flash.display.*;
import flash.text.*;
public dynamic class pressctolevelup_148 extends MovieClip {
public var xp_txt:TextField;
}
}//package spacerangerCS3_fla
Section 223
//producedbyalpha_49 (spacerangerCS3_fla.producedbyalpha_49)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class producedbyalpha_49 extends MovieClip {
public var alpha_mc:MovieClip;
public function producedbyalpha_49(){
addFrameScript(15, frame16);
}
function frame16(){
stop();
}
}
}//package spacerangerCS3_fla
Section 224
//qiroll_52 (spacerangerCS3_fla.qiroll_52)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class qiroll_52 extends MovieClip {
public var QIROLL:Number;
public function qiroll_52(){
addFrameScript(0, frame1);
}
function frame1(){
if (isNaN(QIROLL)){
QIROLL = 0;
} else {
QIROLL++;
if (QIROLL > 3){
stop();
};
};
}
}
}//package spacerangerCS3_fla
Section 225
//qislide_51 (spacerangerCS3_fla.qislide_51)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class qislide_51 extends MovieClip {
public function qislide_51(){
addFrameScript(89, frame90);
}
function frame90(){
stop();
}
}
}//package spacerangerCS3_fla
Section 226
//radar_151 (spacerangerCS3_fla.radar_151)
package spacerangerCS3_fla {
import gdk.fps.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import sandy.math.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class radar_151 extends MovieClip {
public var MAPMAP:Array;
public var dot02:MovieClip;
public var dot04:MovieClip;
public var dot05:MovieClip;
public var dot07:MovieClip;
public var dot09:MovieClip;
public var dot03:MovieClip;
public var dot06:MovieClip;
public var dot08:MovieClip;
public var dot01:MovieClip;
public var dot11:MovieClip;
public var dot12:MovieClip;
public var dot13:MovieClip;
public var dot14:MovieClip;
public var dot15:MovieClip;
public var dot16:MovieClip;
public var dot17:MovieClip;
public var dot18:MovieClip;
public var dot19:MovieClip;
public var DOTSA:Array;
public var dot20:MovieClip;
public var dot21:MovieClip;
public var dot22:MovieClip;
public var dot25:MovieClip;
public var dot26:MovieClip;
public var dot27:MovieClip;
public var dot28:MovieClip;
public var dot29:MovieClip;
public var dot24:MovieClip;
public var dot10:MovieClip;
public var dot23:MovieClip;
public var map:MovieClip;
public var dot30:MovieClip;
public var dot33:MovieClip;
public var dot34:MovieClip;
public var dot35:MovieClip;
public var dot37:MovieClip;
public var dot38:MovieClip;
public var dot39:MovieClip;
public var dot36:MovieClip;
public var dot31:MovieClip;
public var dot32:MovieClip;
public var dot40:MovieClip;
public var NDOTS:Number;
public function radar_151(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
glo.bal.RADAR = this;
NDOTS = 40;
DOTSA = [];
DOTSA.push(dot01);
DOTSA.push(dot02);
DOTSA.push(dot03);
DOTSA.push(dot04);
DOTSA.push(dot05);
DOTSA.push(dot06);
DOTSA.push(dot07);
DOTSA.push(dot08);
DOTSA.push(dot09);
DOTSA.push(dot10);
DOTSA.push(dot11);
DOTSA.push(dot12);
DOTSA.push(dot13);
DOTSA.push(dot14);
DOTSA.push(dot15);
DOTSA.push(dot16);
DOTSA.push(dot17);
DOTSA.push(dot18);
DOTSA.push(dot19);
DOTSA.push(dot20);
DOTSA.push(dot21);
DOTSA.push(dot22);
DOTSA.push(dot23);
DOTSA.push(dot24);
DOTSA.push(dot25);
DOTSA.push(dot26);
DOTSA.push(dot27);
DOTSA.push(dot28);
DOTSA.push(dot29);
DOTSA.push(dot30);
DOTSA.push(dot31);
DOTSA.push(dot32);
DOTSA.push(dot33);
DOTSA.push(dot34);
DOTSA.push(dot35);
DOTSA.push(dot36);
DOTSA.push(dot37);
DOTSA.push(dot38);
DOTSA.push(dot39);
DOTSA.push(dot40);
}
public function init(){
var _local1:*;
map.mapscene.build();
updateFog();
for (_local1 in DOTSA) {
DOTSA[_local1].visible = false;
};
MAPMAP = glo.bal.GAME.MAP.MAP;
}
public function updateFog(_arg1:Object=null){
map.mapscene.update();
glo.bal.GAME.evt(16, updateFog, this);
}
public function nextState(){
var _local1:*;
var _local2:Object;
var _local3:*;
var _local4:*;
var _local5:Number;
var _local6:*;
var _local7:Number;
var _local8:MovieClip;
var _local9:*;
var _local10:Array;
var _local11:Number;
var _local12:fpsUnit;
var _local13:Array;
var _local14:*;
var _local15:Number;
var _local16:fpsObject;
if (glo.bal.GAME.MAP == null){
return;
};
_local1 = glo.bal.PLAYER.getPos();
pand = (glo.bal.PLAYER.getDir() - 90);
_local7 = (((glo.bal.PLAYER.getDir() - 90) * Math.PI) / 180);
for (_local9 in DOTSA) {
_local8 = DOTSA[_local9];
_local8.visible = false;
};
_local10 = glo.bal.GAME.UNITS;
_local11 = 0;
for (_local9 in _local10) {
_local12 = _local10[_local9];
if (_local12.TYPE == "egg"){
if (_local12.ALIVE){
if (((_local12.DISCOVERED) || (!(MAPMAP[_local12.u][_local12.v].fogofwar)))){
_local2 = _local12.getPos();
_local3 = (_local2.x - _local1.x);
_local4 = (_local2.z - _local1.z);
_local5 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4)));
_local6 = Math.atan2(_local4, _local3);
_local5 = (_local5 * 0.05);
if (_local5 < 45){
_local8 = DOTSA[_local11];
_local8.x = (55 + (FastMath.cos((_local6 - _local7)) * _local5));
_local8.y = (55 - (FastMath.sin((_local6 - _local7)) * _local5));
_local8.visible = true;
_local8.gotoAndStop(2);
++_local11;
if (_local11 >= NDOTS){
_local11 = (NDOTS - 1);
};
};
};
};
} else {
if (((_local12.ALIVE) && (_local12.ATTACKING))){
_local2 = _local12.getPos();
_local3 = (_local2.x - _local1.x);
_local4 = (_local2.z - _local1.z);
_local5 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4)));
_local6 = Math.atan2(_local4, _local3);
_local5 = (_local5 * 0.05);
if (_local5 < 45){
_local8 = DOTSA[_local11];
_local8.x = (55 + (FastMath.cos((_local6 - _local7)) * _local5));
_local8.y = (55 - (FastMath.sin((_local6 - _local7)) * _local5));
_local8.visible = true;
_local8.gotoAndStop(1);
++_local11;
if (_local11 >= NDOTS){
_local11 = (NDOTS - 1);
};
};
};
};
};
_local10 = null;
_local13 = glo.bal.GAME.OBJECTS;
for (_local9 in _local13) {
if (_local13[_local9].TYPE == "portal"){
_local16 = _local13[_local9];
_local14 = _local16.LOC.u;
_local15 = _local16.LOC.v;
if (!MAPMAP[_local14][_local15].fogofwar){
_local2 = _local16.POS;
_local3 = (_local2.x - _local1.x);
_local4 = (_local2.z - _local1.z);
_local5 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4)));
_local6 = Math.atan2(_local4, _local3);
_local5 = (_local5 * 0.05);
if (_local5 < 45){
_local8 = DOTSA[_local11];
_local8.x = (55 + (FastMath.cos((_local6 - _local7)) * _local5));
_local8.y = (55 - (FastMath.sin((_local6 - _local7)) * _local5));
_local8.visible = true;
_local8.gotoAndStop(3);
++_local11;
if (_local11 >= NDOTS){
_local11 = (NDOTS - 1);
};
};
};
};
};
_local13 = null;
map.mapscene.x = (_local1.x * -0.05);
map.mapscene.y = (_local1.z * 0.05);
map.rotation = pand;
}
}
}//package spacerangerCS3_fla
Section 227
//redflash_93 (spacerangerCS3_fla.redflash_93)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class redflash_93 extends MovieClip {
public function redflash_93(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 228
//reloading_117 (spacerangerCS3_fla.reloading_117)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class reloading_117 extends MovieClip {
public var bar2:MovieClip;
public var bar3:MovieClip;
public var bar1:MovieClip;
public var BARS;
public var label1_txt:TextField;
public function reloading_117(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
glo.bal.RELOAD = this;
visible = false;
label1_txt.antiAliasType = "advanced";
label1_txt.embedFonts = true;
label1_txt.setTextFormat(glo.bal.FORMAT02);
BARS = [bar1, bar2, bar3];
}
public function done(){
visible = false;
}
public function reload(_arg1:Number, _arg2:Number){
var _local3:*;
visible = true;
for (_local3 in BARS) {
if (_local3 == _arg1){
BARS[_local3].visible = true;
} else {
BARS[_local3].visible = false;
};
};
F = (22 - _arg2);
if (F > 19){
F = 19;
};
if (F < 1){
F = 1;
};
BARS[_arg1].gotoAndPlay(F);
}
}
}//package spacerangerCS3_fla
Section 229
//rip1_96 (spacerangerCS3_fla.rip1_96)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class rip1_96 extends MovieClip {
public function rip1_96(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 230
//rip2_98 (spacerangerCS3_fla.rip2_98)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class rip2_98 extends MovieClip {
public function rip2_98(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 231
//rip3_94 (spacerangerCS3_fla.rip3_94)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class rip3_94 extends MovieClip {
public function rip3_94(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 232
//sandymc_305 (spacerangerCS3_fla.sandymc_305)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class sandymc_305 extends MovieClip {
public var sandy_btn:SimpleButton;
public function sandymc_305(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
sandy_btn.addEventListener("click", btnSandy);
}
public function btnSandy(_arg1:Event){
var e = _arg1;
try {
navigateToURL(glo.bal.URLREQ_SANDY, "_blank");
} catch(err:Error) {
};
}
}
}//package spacerangerCS3_fla
Section 233
//saving_243 (spacerangerCS3_fla.saving_243)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class saving_243 extends MovieClip {
public var caption_txt:TextField;
public var PARENT;
public function saving_243(){
addFrameScript(0, frame1, 29, frame30, 39, frame40);
}
public function activate(_arg1:Object){
visible = true;
PARENT = _arg1;
gotoAndPlay(2);
}
function frame1(){
stop();
glo.bal.SAVINGGAME = this;
visible = false;
PARENT = null;
}
public function deactivate(){
visible = false;
}
function frame30(){
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
}
function frame40(){
stop();
deactivate();
PARENT.backFromSavingGame();
}
}
}//package spacerangerCS3_fla
Section 234
//screen_316 (spacerangerCS3_fla.screen_316)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class screen_316 extends MovieClip {
public var NEXT;
public function screen_316(){
addFrameScript(0, frame1, 9, frame10, 39, frame40, 49, frame50, 69, frame70, 79, frame80);
}
function frame70(){
stop();
}
function frame80(){
stop();
glo.bal.GAMEMENU.gotoPlay();
}
function frame10(){
stop();
}
function frame1(){
NEXT = null;
}
function frame40(){
stop();
}
function frame50(){
if (NEXT == "back"){
stop();
glo.bal.GAMEMENU.gotoMenu();
};
}
}
}//package spacerangerCS3_fla
Section 235
//screen_327 (spacerangerCS3_fla.screen_327)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class screen_327 extends MovieClip {
public function screen_327(){
addFrameScript(9, frame10, 19, frame20);
}
function frame10(){
stop();
}
function frame20(){
stop();
glo.bal.GAME.gotoPlay();
}
}
}//package spacerangerCS3_fla
Section 236
//skill_127 (spacerangerCS3_fla.skill_127)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class skill_127 extends MovieClip {
public var outline_mc:MovieClip;
public function skill_127(){
addFrameScript(0, frame1);
}
public function activate(){
visible = true;
}
function frame1(){
stop();
visible = false;
}
public function deactivate(){
visible = false;
}
public function update(_arg1:Number){
if (_arg1 < 0){
_arg1 = 0;
};
if (_arg1 > 100){
_arg1 = 100;
};
F = (361 - Math.round((_arg1 * 3.6)));
outline_mc.pie_mask_mc.gotoAndStop(F);
}
}
}//package spacerangerCS3_fla
Section 237
//skill_133 (spacerangerCS3_fla.skill_133)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class skill_133 extends MovieClip {
public var outline_mc:MovieClip;
public function skill_133(){
addFrameScript(0, frame1);
}
public function activate(){
visible = true;
}
function frame1(){
stop();
visible = false;
}
public function deactivate(){
visible = false;
}
public function update(_arg1:Number){
if (_arg1 < 0){
_arg1 = 0;
};
if (_arg1 > 100){
_arg1 = 100;
};
F = (361 - Math.round((_arg1 * 3.6)));
outline_mc.pie_mask_mc.gotoAndStop(F);
}
}
}//package spacerangerCS3_fla
Section 238
//skill_136 (spacerangerCS3_fla.skill_136)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class skill_136 extends MovieClip {
public var outline_mc:MovieClip;
public function skill_136(){
addFrameScript(0, frame1);
}
public function activate(){
visible = true;
}
function frame1(){
stop();
visible = false;
}
public function deactivate(){
visible = false;
}
public function update(_arg1:Number){
if (_arg1 < 0){
_arg1 = 0;
};
if (_arg1 > 100){
_arg1 = 100;
};
F = (361 - Math.round((_arg1 * 3.6)));
outline_mc.pie_mask_mc.gotoAndStop(F);
}
}
}//package spacerangerCS3_fla
Section 239
//skills_126 (spacerangerCS3_fla.skills_126)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class skills_126 extends MovieClip {
public var X0;
public var stealth:MovieClip;
public var ACTIVATION;
public var Y0;
public var i;
public var MAXORDER;
public var SKILLS;
public var repulse:MovieClip;
public var heal:MovieClip;
public function skills_126(){
addFrameScript(0, frame1);
}
public function fastForwardSkill(_arg1:Number, _arg2:Number){
SKILLS[_arg1].fastforward = _arg2;
}
public function activateSkill(_arg1:Number, _arg2:Number){
SKILLS[_arg1].active = true;
SKILLS[_arg1].time = _arg2;
SKILLS[_arg1].totaltime = _arg2;
SKILLS[_arg1].order = MAXORDER;
SKILLS[_arg1].fastforward = 1;
MAXORDER++;
SKILLS[_arg1].activate();
SKILLS[_arg1].update(100);
SKILLS[_arg1].x = X0;
SKILLS[_arg1].y = (Y0 - (SKILLS[_arg1].order * 100));
}
function frame1(){
stop();
glo.bal.SKILLS = this;
SKILLS = [stealth, heal, repulse];
ACTIVATION = [];
MAXORDER = 0;
for (i in SKILLS) {
SKILLS[i].visible = false;
ACTIVATION.push({active:false, order:0, time:0, totaltime:0, fastforward:1});
};
X0 = 490;
Y0 = 200;
}
public function nextState(){
var _local1:*;
var _local2:*;
for (_local1 in SKILLS) {
if (SKILLS[_local1].active){
SKILLS[_local1].time = (SKILLS[_local1].time - SKILLS[_local1].fastforward);
if (SKILLS[_local1].time < 1){
SKILLS[_local1].active = false;
SKILLS[_local1].deactivate();
MAXORDER--;
for (_local2 in SKILLS) {
if (SKILLS[_local2].active){
if (SKILLS[_local2].order > SKILLS[_local1].order){
SKILLS[_local2].order--;
SKILLS[_local2].y = (Y0 - (SKILLS[_local2].order * 100));
};
};
};
glo.bal.PLAYER.skillCompleted(_local1);
} else {
SKILLS[_local1].update(Math.round(((100 * SKILLS[_local1].time) / SKILLS[_local1].totaltime)));
};
};
};
}
}
}//package spacerangerCS3_fla
Section 240
//soundcontrol_63 (spacerangerCS3_fla.soundcontrol_63)
package spacerangerCS3_fla {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class soundcontrol_63 extends MovieClip {
public var sfx_chk:CheckBox;
public var fps_txt:TextField;
public var music_chk:CheckBox;
public function soundcontrol_63(){
addFrameScript(0, frame1);
}
public function clickedMusic(_arg1:MouseEvent){
if (mouseY < -10){
music_chk.selected = !(music_chk.selected);
};
if (music_chk.selected){
glo.bal.JUKEBOX.musicOn();
} else {
glo.bal.JUKEBOX.musicOff();
};
}
function frame1(){
stop();
glo.bal.SOUNDCONTROL = this;
music_chk.label = "";
sfx_chk.label = "";
music_chk.selected = true;
sfx_chk.selected = true;
music_chk.focusEnabled = false;
sfx_chk.focusEnabled = false;
music_chk.addEventListener(MouseEvent.CLICK, clickedMusic);
sfx_chk.addEventListener(MouseEvent.CLICK, clickedSfx);
}
public function clickedSfx(_arg1:MouseEvent){
if (mouseY < -10){
sfx_chk.selected = !(sfx_chk.selected);
};
if (sfx_chk.selected){
glo.bal.JUKEBOX.sfxOn();
} else {
glo.bal.JUKEBOX.sfxOff();
};
}
}
}//package spacerangerCS3_fla
Section 241
//spacebounty_39 (spacerangerCS3_fla.spacebounty_39)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class spacebounty_39 extends MovieClip {
public var SPEEDX;
public var STANDING;
public var body_mc:MovieClip;
public var FRAMECOUNT;
public function spacebounty_39(){
addFrameScript(0, frame1);
}
public function nextState(){
FRAMECOUNT++;
if (FRAMECOUNT < 87){
x = (x + SPEEDX);
} else {
if (!STANDING){
body_mc.stand();
STANDING = true;
};
};
}
function frame1(){
stop();
FRAMECOUNT = 0;
SPEEDX = 4;
STANDING = false;
}
}
}//package spacerangerCS3_fla
Section 242
//splash_34 (spacerangerCS3_fla.splash_34)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class splash_34 extends MovieClip {
public var c3_mc:MovieClip;
public var qi_mc:MovieClip;
public var c1_mc:MovieClip;
public var FADE;
public var SKIP;
public var dotcom_mc:MovieClip;
public var c2_mc:MovieClip;
public var producedby_mc:MovieClip;
public var skip_btn:SimpleButton;
public var FRAMECOUNT;
public function splash_34(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
FRAMECOUNT = 0;
FADE = false;
SKIP = false;
addEventListener(Event.ENTER_FRAME, evtEnterFrame);
skip_btn.addEventListener("click", btnSkip);
}
public function btnSkip(_arg1:Event){
if (SKIP){
return;
};
SKIP = true;
parent.gotoAndPlay(145);
dotcom_mc.gotoAndStop(110);
qi_mc.gotoAndStop(90);
c1_mc.visible = false;
c2_mc.visible = false;
c3_mc.visible = false;
skip_btn.visible = false;
skip_btn.enabled = false;
}
public function evtEnterFrame(_arg1:Event){
FRAMECOUNT++;
if (((!(FADE)) && ((FRAMECOUNT > 120)))){
};
c1_mc.nextState();
c2_mc.nextState();
c3_mc.nextState();
}
}
}//package spacerangerCS3_fla
Section 243
//splashintro_26 (spacerangerCS3_fla.splashintro_26)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class splashintro_26 extends MovieClip {
public function splashintro_26(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 244
//splashlogo1_31 (spacerangerCS3_fla.splashlogo1_31)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class splashlogo1_31 extends MovieClip {
public function splashlogo1_31(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 245
//splashlogo2_32 (spacerangerCS3_fla.splashlogo2_32)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class splashlogo2_32 extends MovieClip {
public function splashlogo2_32(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 246
//submitscore_211 (spacerangerCS3_fla.submitscore_211)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class submitscore_211 extends MovieClip {
public var PLAYERNAME;
public var btn_tryagain:SimpleButton;
public var player_txt:TextField;
public var LOADER;
public var VARS;
public var score_txt:TextField;
public var btn_submit:SimpleButton;
public var label2_txt:TextField;
public var SCORE;
public var GAMEID;
public var REQ;
public var btn_viewscores:SimpleButton;
public var label1_txt:TextField;
public function submitscore_211(){
addFrameScript(0, frame1, 9, frame10, 19, frame20, 29, frame30);
}
public function activate(){
player_txt.text = glo.bal.CGAME.PLAYERNAME;
PLAYERNAME = glo.bal.CGAME.PLAYERNAME;
SCORE = glo.bal.PLAYER.XP;
GAMEID = "alienslayer";
score_txt.text = numbers.format(SCORE);
}
function frame10(){
stop();
VARS = new URLVariables();
VARS.name = escape(PLAYERNAME);
VARS.score = SCORE;
VARS.game = 1012;
REQ = new URLRequest("http://www.bubblebox.com/scripts/insertscore.php");
REQ.data = VARS;
REQ.method = "POST";
LOADER = new URLLoader();
LOADER.addEventListener("complete", evtCompleted);
LOADER.addEventListener("securityError", evtError);
LOADER.addEventListener("ioError", evtError);
try {
LOADER.load(REQ);
} catch(err:Error) {
gotoAndStop(30);
};
}
function frame1(){
stop();
label1_txt.antiAliasType = "advanced";
label1_txt.embedFonts = true;
label1_txt.setTextFormat(glo.bal.FORMAT01);
player_txt.antiAliasType = "advanced";
player_txt.embedFonts = true;
player_txt.setTextFormat(glo.bal.FORMAT01);
player_txt.defaultTextFormat = glo.bal.FORMAT01;
activate();
btn_submit.addEventListener("click", btnSubmit);
}
function frame20(){
stop();
label2_txt.antiAliasType = "advanced";
label2_txt.embedFonts = true;
label2_txt.setTextFormat(glo.bal.FORMAT01);
btn_viewscores.addEventListener("click", btnViewScores);
}
function frame30(){
stop();
label2_txt.antiAliasType = "advanced";
label2_txt.embedFonts = true;
label2_txt.setTextFormat(glo.bal.FORMAT01);
btn_tryagain.addEventListener("click", btnTryAgain);
}
public function evtCompleted(_arg1:Event){
gotoAndStop(20);
}
public function btnViewScores(_arg1:Event){
var e = _arg1;
glo.bal.JUKEBOX.btnClick();
try {
navigateToURL(glo.bal.URLREQ_BUBBLEBOX_VIEWSCORES, "_blank");
} catch(err:Error) {
trace("Open ViewScores URL ...");
};
}
public function btnSubmit(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
if (player_txt.length > 0){
PLAYERNAME = player_txt.text;
};
gotoAndStop(10);
}
public function btnTryAgain(_arg1:Event){
glo.bal.JUKEBOX.btnClick();
gotoAndStop(10);
}
public function evtError(_arg1:Event){
gotoAndStop(30);
}
}
}//package spacerangerCS3_fla
Section 247
//terminalclip_315 (spacerangerCS3_fla.terminalclip_315)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class terminalclip_315 extends MovieClip {
public function terminalclip_315(){
addFrameScript(22, frame23);
}
function frame23(){
stop();
}
}
}//package spacerangerCS3_fla
Section 248
//text_213 (spacerangerCS3_fla.text_213)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_213 extends MovieClip {
public var label_txt:TextField;
public function text_213(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 249
//text_216 (spacerangerCS3_fla.text_216)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_216 extends MovieClip {
public var label_txt:TextField;
public function text_216(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 250
//text_218 (spacerangerCS3_fla.text_218)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_218 extends MovieClip {
public var label_txt:TextField;
public function text_218(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 251
//text_220 (spacerangerCS3_fla.text_220)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_220 extends MovieClip {
public var label_txt:TextField;
public function text_220(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT02);
}
}
}//package spacerangerCS3_fla
Section 252
//text_224 (spacerangerCS3_fla.text_224)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_224 extends MovieClip {
public var label_txt:TextField;
public function text_224(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 253
//text_238 (spacerangerCS3_fla.text_238)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_238 extends MovieClip {
public var label_txt:TextField;
public function text_238(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT02);
}
}
}//package spacerangerCS3_fla
Section 254
//text_240 (spacerangerCS3_fla.text_240)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_240 extends MovieClip {
public var label_txt:TextField;
public function text_240(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT02);
}
}
}//package spacerangerCS3_fla
Section 255
//text_242 (spacerangerCS3_fla.text_242)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_242 extends MovieClip {
public var label_txt:TextField;
public function text_242(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 256
//text_282 (spacerangerCS3_fla.text_282)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_282 extends MovieClip {
public var label_txt:TextField;
public function text_282(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 257
//text_285 (spacerangerCS3_fla.text_285)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_285 extends MovieClip {
public var label_txt:TextField;
public function text_285(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 258
//text_289 (spacerangerCS3_fla.text_289)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_289 extends MovieClip {
public var label_txt:TextField;
public function text_289(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 259
//text_298 (spacerangerCS3_fla.text_298)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_298 extends MovieClip {
public var label_txt:TextField;
public function text_298(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 260
//text_300 (spacerangerCS3_fla.text_300)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_300 extends MovieClip {
public var label_txt:TextField;
public function text_300(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 261
//text_304 (spacerangerCS3_fla.text_304)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_304 extends MovieClip {
public var label_txt:TextField;
public function text_304(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 262
//text_321 (spacerangerCS3_fla.text_321)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_321 extends MovieClip {
public var label_txt:TextField;
public function text_321(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT02);
}
}
}//package spacerangerCS3_fla
Section 263
//text_323 (spacerangerCS3_fla.text_323)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_323 extends MovieClip {
public var label_txt:TextField;
public function text_323(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT02);
}
}
}//package spacerangerCS3_fla
Section 264
//text_325 (spacerangerCS3_fla.text_325)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_325 extends MovieClip {
public var label_txt:TextField;
public function text_325(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT02);
}
}
}//package spacerangerCS3_fla
Section 265
//text_330 (spacerangerCS3_fla.text_330)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_330 extends MovieClip {
public var label_txt:TextField;
public function text_330(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 266
//text_332 (spacerangerCS3_fla.text_332)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class text_332 extends MovieClip {
public var label_txt:TextField;
public function text_332(){
addFrameScript(0, frame1);
}
function frame1(){
label_txt.antiAliasType = "advanced";
label_txt.embedFonts = true;
label_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 267
//textloading_343 (spacerangerCS3_fla.textloading_343)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class textloading_343 extends MovieClip {
public var caption_txt:TextField;
public function textloading_343(){
addFrameScript(0, frame1);
}
function frame1(){
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 268
//textsaving_244 (spacerangerCS3_fla.textsaving_244)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class textsaving_244 extends MovieClip {
public var caption_txt:TextField;
public function textsaving_244(){
addFrameScript(0, frame1);
}
function frame1(){
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 269
//textsubmitting_214 (spacerangerCS3_fla.textsubmitting_214)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class textsubmitting_214 extends MovieClip {
public var caption_txt:TextField;
public function textsubmitting_214(){
addFrameScript(0, frame1);
}
function frame1(){
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
}
}
}//package spacerangerCS3_fla
Section 270
//timer_280 (spacerangerCS3_fla.timer_280)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class timer_280 extends MovieClip {
public var time_txt:TextField;
public function timer_280(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
glo.bal.CLOCK = this;
time_txt.antiAliasType = "advanced";
time_txt.embedFonts = true;
time_txt.setTextFormat(glo.bal.FORMAT01);
time_txt.defaultTextFormat = glo.bal.FORMAT01;
}
public function setTime(){
}
public function update(_arg1:Number){
time_txt.text = numbers.formatSeconds(_arg1);
}
}
}//package spacerangerCS3_fla
Section 271
//ubergun_88 (spacerangerCS3_fla.ubergun_88)
package spacerangerCS3_fla {
import flash.display.*;
public dynamic class ubergun_88 extends MovieClip {
public var fire_mc:MovieClip;
}
}//package spacerangerCS3_fla
Section 272
//weapons_103 (spacerangerCS3_fla.weapons_103)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class weapons_103 extends MovieClip {
public function weapons_103(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 273
//versionlocked_17 (spacerangerCS3_fla.versionlocked_17)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class versionlocked_17 extends MovieClip {
public var embed_btn:SimpleButton;
public function versionlocked_17(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
embed_btn.addEventListener("click", btnEmbed);
}
public function btnEmbed(_arg1:Event){
var e = _arg1;
try {
navigateToURL(glo.bal.URLREQ_BUBBLEBOX_EMBED, "_blank");
} catch(err:Error) {
};
}
}
}//package spacerangerCS3_fla
Section 274
//xpbartween_143 (spacerangerCS3_fla.xpbartween_143)
package spacerangerCS3_fla {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class xpbartween_143 extends MovieClip {
public function xpbartween_143(){
addFrameScript(0, frame1);
}
public function setPct(_arg1:Number){
if (_arg1 > 100){
_arg1 = 100;
};
if (_arg1 < 0){
_arg1 = 0;
};
F = (1 + Math.round(((_arg1 * 0.01) * 99)));
gotoAndStop(F);
}
function frame1(){
stop();
}
}
}//package spacerangerCS3_fla
Section 275
//aiAlienEgg (aiAlienEgg)
package {
import gdk.fps.*;
import sandy.core.data.*;
import flash.geom.*;
public class aiAlienEgg extends aiUnit {
public var SEQi:Number;
public var RENDERBODY:Boolean;
public var SEQ:Object;
public var DISCOVERED:Boolean;
public var CF:Number;
public var u:Number;
public var v:Number;
public var BP1:Point;
public var BP2:Point;
public function aiAlienEgg(_arg1:String, _arg2:fpsGame, _arg3:Number, _arg4:Number){
OBJID = _arg1;
super(_arg2, new Vector(((_arg3 * 100) + 50), 0, ((_arg4 * 100) + 50)));
TYPE = "egg";
HEALTH = 100;
NATURALSHIELD = 1;
REWARD = 100;
DISCOVERED = false;
u = _arg3;
v = _arg4;
CF = -1;
RENDERBODY = false;
SEQ = GAME.BITMAPLIB.ALIENEGG;
SEQi = 3;
BP1 = new Point(44, 30);
BP2 = new Point(0, 55);
BLEEDER = new Bleeder(GAME.BITMAPLIB.BLOOD, 40, 15);
UNITBAR = new UnitHealthBar(50, 30, 60, 3);
HZ = glo.bal.HZ_ALIENEGG;
HZ_MOVEi = 0;
HZ_FRAMEi = 0;
BUFFER_DX = -37;
BUFFER_DY = (-61 - 30);
}
override public function init(_arg1:Object=null){
super.init();
ALIVE = true;
HEALTH = 100;
DISCOVERED = false;
RENDERBODY = true;
}
override public function damageSuffered(_arg1:Number){
PLAYER.stealthDetected();
BLEEDER.bleed();
}
public function faceCam(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = (GAME.CAM.x - SPRITE.x);
_local2 = (GAME.CAM.z - SPRITE.z);
_local3 = (0 + ((Math.atan2(_local2, _local1) * 180) / Math.PI));
if (_local3 < 0){
_local3 = (_local3 + 360);
};
if (_local3 > 360){
_local3 = (_local3 - 360);
};
_local4 = Math.round((_local3 / 10));
if (_local4 == 36){
_local4 = 0;
};
CF = _local4;
SEQ.getFrame(SEQi, 1, CF, SPRITE.BUFFER, BP2, false);
if (RENDERBODY){
SEQ.getFrame(SEQi, 0, CF, SPRITE.BUFFER, BP1, true);
};
HZ_MOVEi = 0;
HZ_FRAMEi = CF;
}
override public function nextState(){
var _local1:Object;
var _local2:Object;
var _local3:Object;
if (ALIVE){
if (((!(LOADED)) && (ROOM.LOADED))){
_local1 = getPos();
_local2 = PLAYER.getPos();
_local3 = GAME.MAP.stingRay(_local1, _local2, false);
if (!_local3.intersect){
DISCOVERED = true;
PLAYER.eggDiscovered(this);
loadUnit();
};
};
};
if (LOADED){
SPRITE.BUFFER.fillRect(SPRITE.BUFFER.rect, 0);
faceCam();
if (RENDERBODY){
BLEEDER.nextState(SPRITE.BUFFER);
};
if (ALIVE){
UNITBAR.nextState(SPRITE.BUFFER, (HEALTH / 100));
};
};
}
override public function death(){
new EggSplatter(POS);
RENDERBODY = false;
glo.bal.JUKEBOX.splatter();
GAME.PLAYER.eggDestroyed(this);
GAME.evt(60, clearUnit, this, (16 * 3));
PLAYER.xpKill(this);
}
override public function loadUnit(){
if (!ALIVE){
return;
};
if (LOADED){
return;
};
LOADED = true;
SPRITE = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.ALIENEGG);
SPRITE.scale = 0.35;
SPRITE.autoCenter = false;
SPRITE.setBoundingSphereRadius(50);
SPRITE.BMP.y = -130;
SPRITE.BMP.y = -120;
movement(0, 0, 0);
}
}
}//package
Section 276
//aiPlayer (aiPlayer)
package {
import gdk.fps.*;
import gdk.fps.wbl.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import sandy.math.*;
import flash.ui.*;
public class aiPlayer extends MovieClip {
public var CONSTITUTION:Number;
public var LAYER_SPLATTER:MovieClip;
public var KEYS:Array;
public var REWARDRATIO:Number;
public var CURSOR_DX;
public var CURSOR_DY;
public var ITEMSPICKED:Array;
private var MC_X0:Number;
public var WEAPON:Number;
public var SPEED:Number;
private var NEXTFOOTSTEP:Object;
public var POS:Object;
public var SHAKECOUNTER:Number;
public var STATS_TIMEELAPSED:Number;
public var XP_THIS_LEVEL:Number;
private var MC_Y0:Number;
public var HASMOVED:Boolean;
public var HEALTH:Number;
public var VISIBLE:Boolean;
public var WEAPONCOUNT:Number;
public var SKILLS:Array;
private var SCENE:fpsScene;
public var MOUSEY:Number;
private var PORTAL:objPortal;
private var MC_IX:Number;
private var MOUSELOC:Object;
public var UNITSKILLED:Array;
public var REPULSION:Number;
private var MC_IY:Number;
public var MOUSEX:Number;
public var RELOADHELPER:Number;
public var OPT_CAM_SENS_PAN;
public var TIP:MovieClip;
public var HEALTH_REGEN:Number;
public var EGGSDESTROYED:Number;
public var AMMO_TOTAL:Array;
public var ALIVE:Boolean;
public var RECHARGE:Number;
public var NATURALSHIELD:Number;
public var OPT_MOUSEWHEEL_SENS;
public var BODYARMOR:Number;
public var FOCUS:Number;
public var SPLATTER:MovieClip;
public var XP_NEXT_LEVEL:Number;
private var SAVING:Boolean;
public var STATS_KILLS:Number;
private var MC_BOXH:Number;
public var AMMO_CHAMBER:Array;
private var MC_BOXW:Number;
public var INTERFACE:MovieClip;
public var XP:Number;
private var GUNSHAKING:Object;
public var LOC:Object;
public var FIREDAMAGE:Array;
public var OPT_CAM_SENS_TILT;
public var STOPFIRINGAUTO:Boolean;
private var MAP:fpsMap;
public var WHEELDELTA:Number;
public var body_mc:MovieClip;
public var XP_LEVEL:Number;
public var DISCOVEREDEGGS:Array;
public var FIRING:Boolean;
public var MOUSEOUTSIDE:Boolean;
public var AMMO_FULL:Array;
public var STABILITY:Number;
public var FIREFX:MovieClip;
public var RELOADING:Boolean;
public var ME:MovieClip;
public var XP_SKILLPOINTS:Number;
public var BODY:MovieClip;
private var CAM:fpsCamera;
public var EGGSTODESTROY:Number;
private var DOOR:wblDoor;
public var HITRADIUS:Number;
public var FOCUS_REGEN:Number;
public var UPGRADES:Array;
private var MC_DX:Number;
private var MC_DY:Number;
public var SPIRIT:Number;
private var GAME:fpsGame;
public var XP_INC:Number;
public var MEDIKITS:Number;
public var STATS_DAMAGESUFFERED:Number;
public function aiPlayer(){
addFrameScript(0, frame1, 1, frame2, 29, frame30);
ME = this;
glo.bal.PLAYER = this;
ALIVE = false;
POS = {x:0, y:0, z:0};
LOC = {u:0, v:0};
}
public function evtMouseWheel(_arg1:Number){
var _local2:*;
var _local3:Number;
if (!ALIVE){
return;
};
WHEELDELTA = (WHEELDELTA + _arg1);
_local2 = Math.round((10 - (9 * OPT_MOUSEWHEEL_SENS)));
_local3 = WEAPON;
if (WHEELDELTA > _local2){
WHEELDELTA = 0;
_local3++;
if (_local3 > (WEAPONCOUNT - 1)){
_local3 = 0;
};
while (AMMO_TOTAL[_local3] < 1) {
_local3++;
if (_local3 > (WEAPONCOUNT - 1)){
_local3 = 0;
};
};
setWeapon(_local3);
};
if (WHEELDELTA < -(_local2)){
WHEELDELTA = 0;
_local3--;
if (_local3 < 0){
_local3 = (WEAPONCOUNT - 1);
};
while (AMMO_TOTAL[_local3] < 1) {
_local3--;
if (_local3 < 0){
_local3 = (WEAPONCOUNT - 1);
};
};
setWeapon(_local3);
};
}
public function bulletPos():Object{
var _local1:Object;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local1 = {x:CAM.x, y:CAM.y, z:CAM.z};
_local2 = ((MOUSELOC.x + 100) - MC_X0);
_local3 = ((MOUSELOC.y + 90) - MC_Y0);
_local4 = (CAM.PAN - ((40 * _local2) / MC_X0));
_local5 = (CAM.TILT - ((20 * _local3) / MC_Y0));
_local1.x = (_local1.x + (25 * FastMath.cos(((_local4 * FastMath.TWO_PI) / 360))));
_local1.y = (_local1.y + (25 * FastMath.sin(((_local5 * FastMath.TWO_PI) / 360))));
_local1.z = (_local1.z + (25 * FastMath.sin(((_local4 * FastMath.TWO_PI) / 360))));
return (_local1);
}
public function useWeapon1(_arg1:Object){
setWeapon(0);
}
public function useWeapon2(_arg1:Object){
setWeapon(1);
}
public function useWeapon3(_arg1:Object){
setWeapon(2);
}
public function useMedikit(){
if (!ALIVE){
return;
};
if (MEDIKITS < 1){
return;
};
MEDIKITS--;
HEALTH = CONSTITUTION;
glo.bal.HEALTHBAR.setHealth(HEALTH, CONSTITUTION);
glo.bal.JUKEBOX.heal();
ammoDisplay();
}
public function saveFogOfWar(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:Number;
if (!SAVING){
glo.bal.CGAME.FOGOFWAR = [];
return;
};
_local1 = MAP.MAP;
_local2 = MAP.NU;
_local3 = MAP.NV;
_local4 = [];
_local5 = 0;
while (_local5 < _local2) {
_local6 = 0;
while (_local6 < _local3) {
if (!_local1[_local5][_local6].fogofwar){
_local4.push({u:_local1[_local5][_local6].u, v:_local1[_local5][_local6].v});
};
_local6++;
};
_local5++;
};
glo.bal.CGAME.FOGOFWAR = _local4;
}
public function ammoDisplay(){
var _local1:*;
_local1 = 0;
while (_local1 < WEAPONCOUNT) {
glo.bal.INVENTORY.setAmmo(_local1, AMMO_TOTAL[_local1]);
_local1++;
};
glo.bal.INVENTORY.setWeapon(WEAPON);
glo.bal.AMMO.setAmmo(WEAPON, AMMO_CHAMBER[WEAPON], AMMO_FULL[WEAPON], AMMO_TOTAL[WEAPON]);
glo.bal.INVENTORY.setMedikits(MEDIKITS);
}
public function backFromSavingGame(){
SAVING = false;
glo.bal.INTERFACE.resumePlay();
}
public function evtSpaceDown(_arg1:KeyboardEvent){
var _local2:*;
var _local3:*;
var _local4:*;
if (!ALIVE){
return;
};
if (PORTAL != null){
if (PORTAL.ROOM.ID == MAP.ROOMID){
_local2 = (PORTAL.POS.x - POS.x);
_local3 = (PORTAL.POS.z - POS.z);
_local4 = ((_local2 * _local2) + (_local3 * _local3));
if (_local4 < (100 * 100)){
portalSaveGame();
glo.bal.INTERACTION.deactivate();
return;
};
};
PORTAL = null;
};
if (DOOR == null){
DOOR = MAP.doorInRange(POS, 150);
};
if (DOOR != null){
if (((DOOR.CLOSED) && (haveKeyForDoor(DOOR)))){
GAME.evt(5, openDoor, this, DOOR);
glo.bal.INTERACTION.deactivate();
};
};
}
public function areaFX(_arg1:fpsBullet){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
if (!ALIVE){
return;
};
_local2 = (_arg1.TRAIL[0].x - POS.x);
_local3 = (_arg1.TRAIL[0].z - POS.z);
_local4 = ((_local2 * _local2) + (_local3 * _local3));
_local5 = (1 - (_local4 / (_arg1.AREAFX_RADIUS * _arg1.AREAFX_RADIUS)));
if (_local5 > 0){
damage(((_arg1.AREAFX_DAMAGE * _local5) * 0.2));
glo.bal.CLAWRIPS.redFlash();
};
}
public function regen(_arg1:Object){
if (!ALIVE){
return;
};
if (HEALTH_REGEN > 0){
HEALTH = (HEALTH + HEALTH_REGEN);
if (HEALTH > CONSTITUTION){
HEALTH = CONSTITUTION;
};
glo.bal.HEALTHBAR.setHealth(HEALTH, CONSTITUTION);
};
if (FOCUS_REGEN > 0){
FOCUS = (FOCUS + FOCUS_REGEN);
if (FOCUS > SPIRIT){
FOCUS = SPIRIT;
};
glo.bal.FOCUSBAR.setFocus(FOCUS, SPIRIT);
};
GAME.evt(24, regen, this);
}
public function tryUseMedikit(_arg1:Object){
if (HEALTH < CONSTITUTION){
useMedikit();
} else {
glo.bal.NOTICE.activate("Your health is already full", "red");
};
}
public function getPosUV():Object{
return (LOC);
}
public function setInitialPosAndDir(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){
if (glo.bal.CGAME.PLAYERPOS != null){
_arg1 = glo.bal.CGAME.PLAYERPOS.x;
_arg2 = glo.bal.CGAME.PLAYERPOS.y;
_arg3 = glo.bal.CGAME.PLAYERPOS.z;
_arg4 = glo.bal.CGAME.PLAYERDIR;
};
POS.x = _arg1;
POS.y = _arg2;
POS.z = _arg3;
CAM.x = _arg1;
CAM.y = (_arg2 + 50);
CAM.z = _arg3;
CAM.setPan(_arg4);
}
public function doneReloading(_arg1:Object){
if (!ALIVE){
return;
};
RELOADING = false;
ME.visible = true;
glo.bal.RELOAD.done();
ammoDisplay();
}
public function toggleCharacterSheet(_arg1:Object=null){
if (!ALIVE){
return;
};
if (SAVING){
return;
};
if (glo.bal.INTERFACE.INBRIEFING){
return;
};
glo.bal.LEVELUPAURA.deactivate();
if (glo.bal.CHARACTERSHEET.ACTIVE){
glo.bal.INTERFACE.resumePlay();
glo.bal.CHARACTERSHEET.deactivate();
applyUpgrades();
} else {
glo.bal.INTERFACE.pausePlay();
glo.bal.CHARACTERSHEET.activate();
};
}
public function eggDiscovered(_arg1:Object){
DISCOVEREDEGGS.push(_arg1.OBJID);
}
public function useSkill1(_arg1:Object=null){
var _local2:*;
var _local3:*;
if (!ALIVE){
return;
};
if (SAVING){
return;
};
_local2 = 0;
if (SKILLS[_local2].level == 0){
glo.bal.NOTICE.activate("You do not have this skill just yet", "red");
glo.bal.JUKEBOX.skillFailure();
return;
};
if (FOCUS < SKILLS[_local2].cost){
glo.bal.NOTICE.activate("Not enough focus", "red");
glo.bal.JUKEBOX.skillFailure();
return;
};
if (GAME.anyActiveUnit()){
glo.bal.NOTICE.activate("Too late for that", "red");
glo.bal.JUKEBOX.skillFailure();
return;
};
if (SKILLS[_local2].active){
return;
};
SKILLS[_local2].active = true;
FOCUS = (FOCUS - SKILLS[_local2].cost);
glo.bal.FOCUSBAR.setFocus(FOCUS, SPIRIT);
_local3 = (64 + (SKILLS[_local2].level * 48));
glo.bal.SKILLS.activateSkill(_local2, _local3);
glo.bal.JUKEBOX.stealth();
alpha = 0.25;
VISIBLE = false;
}
public function useSkill3(_arg1:Object=null){
var _local2:*;
var _local3:*;
var _local4:*;
if (!ALIVE){
return;
};
if (SAVING){
return;
};
_local2 = 2;
if (SKILLS[_local2].level == 0){
glo.bal.NOTICE.activate("You do not have this skill just yet", "red");
glo.bal.JUKEBOX.skillFailure();
return;
};
if (FOCUS < SKILLS[_local2].cost){
glo.bal.NOTICE.activate("Not enough focus", "red");
glo.bal.JUKEBOX.skillFailure();
return;
};
if (SKILLS[_local2].active){
return;
};
SKILLS[_local2].active = true;
FOCUS = (FOCUS - SKILLS[_local2].cost);
glo.bal.FOCUSBAR.setFocus(FOCUS, SPIRIT);
_local3 = (64 + (SKILLS[_local2].level * 48));
_local4 = (200 + (SKILLS[_local2].level * 25));
glo.bal.SKILLS.activateSkill(_local2, _local3);
glo.bal.JUKEBOX.repulse();
gotoAndPlay(10);
REPULSION = _local4;
}
public function xpKill(_arg1:Object){
var _local2:*;
if (!ALIVE){
return;
};
UNITSKILLED.push(_arg1.OBJID);
STATS_KILLS++;
_local2 = (_arg1.REWARD * REWARDRATIO);
if ((((WEAPON == 0)) && (!((_arg1.TYPE == "egg"))))){
_local2 = (_local2 * 2);
glo.bal.NOTICE.activate((("Survivor Kill " + _local2) + " XP"));
};
xpReward(_local2);
}
public function useSkill2(_arg1:Object=null){
var _local2:*;
if (!ALIVE){
return;
};
if (SAVING){
return;
};
_local2 = 1;
if (SKILLS[_local2].level == 0){
glo.bal.NOTICE.activate("You do not have this skill just yet", "red");
glo.bal.JUKEBOX.skillFailure();
return;
};
if (HEALTH >= CONSTITUTION){
glo.bal.NOTICE.activate("Your health is already full", "red");
glo.bal.JUKEBOX.skillFailure();
return;
};
if (FOCUS < SKILLS[_local2].cost){
glo.bal.NOTICE.activate("Not enough focus", "red");
glo.bal.JUKEBOX.skillFailure();
return;
};
if (SKILLS[_local2].active){
return;
};
SKILLS[_local2].active = true;
FOCUS = (FOCUS - SKILLS[_local2].cost);
glo.bal.FOCUSBAR.setFocus(FOCUS, SPIRIT);
glo.bal.SKILLS.activateSkill(_local2, 20);
HEALTH = (HEALTH + (SKILLS[_local2].level * 50));
if (HEALTH > CONSTITUTION){
HEALTH = CONSTITUTION;
};
glo.bal.HEALTHBAR.setHealth(HEALTH, CONSTITUTION);
glo.bal.JUKEBOX.heal();
}
public function tryPick(_arg1:fpsItem):Boolean{
var _local2:Number;
if (!ALIVE){
return (false);
};
if (_arg1.TYPE == "ammo"){
_local2 = _arg1.DATA.weapon;
AMMO_TOTAL[_local2] = (AMMO_TOTAL[_local2] + _arg1.DATA.qty);
AMMO_CHAMBER[_local2] = (AMMO_CHAMBER[_local2] + _arg1.DATA.qty);
if (AMMO_CHAMBER[_local2] > AMMO_FULL[_local2]){
AMMO_CHAMBER[_local2] = AMMO_FULL[_local2];
};
if (AMMO_TOTAL[_local2] > AMMO_CHAMBER[_local2]){
AMMO_CHAMBER[_local2] = AMMO_FULL[_local2];
};
glo.bal.MESSAGING.pickedAmmo(_local2);
glo.bal.JUKEBOX.reload1();
ITEMSPICKED.push(_arg1.OBJID);
ammoDisplay();
return (true);
};
if (_arg1.TYPE == "health"){
glo.bal.MESSAGING.pickedMedikit();
MEDIKITS++;
if (HEALTH < (CONSTITUTION * 0.4)){
useMedikit();
} else {
glo.bal.JUKEBOX.toggle();
};
ITEMSPICKED.push(_arg1.OBJID);
ammoDisplay();
return (true);
};
if (_arg1.TYPE == "key"){
KEYS.push(_arg1.DATA.door);
glo.bal.KEYS.gotKeys(KEYS);
glo.bal.JUKEBOX.toggle();
glo.bal.MESSAGING.pickedKey(_arg1.DATA.door);
return (true);
};
return (false);
}
public function death(){
if (!ALIVE){
return;
};
ALIVE = false;
ME.visible = false;
stopFire();
glo.bal.GAMEOVERSCREEN.activate();
GAME.evt(50, deathStop, this);
}
public function haveKeyForDoor(_arg1:Object):Boolean{
var _local2:*;
if (_arg1.KEY == null){
return (true);
};
for (_local2 in KEYS) {
if (KEYS[_local2] == _arg1.KEY){
return (true);
};
};
return (false);
}
public function beginFire(){
if (!ALIVE){
return;
};
if (RELOADING){
return;
};
if (FIRING){
return;
};
if (AMMO_CHAMBER[WEAPON] < 1){
glo.bal.JUKEBOX.dryFire();
RELOADHELPER--;
if (RELOADHELPER < 0){
reload();
};
return;
};
FIRING = true;
if (WEAPON == 1){
STOPFIRINGAUTO = false;
glo.bal.JUKEBOX.playGunLoop();
startGunShaking();
};
fireNow();
}
public function xpReward(_arg1:Number){
if (!ALIVE){
return;
};
XP = (XP + _arg1);
if (XP >= XP_NEXT_LEVEL){
XP_LEVEL++;
XP_THIS_LEVEL = (((XP_LEVEL - 1) * (XP_LEVEL - 1)) * XP_INC);
XP_NEXT_LEVEL = ((XP_LEVEL * XP_LEVEL) * XP_INC);
XP_SKILLPOINTS = (XP_SKILLPOINTS + XP_LEVEL);
glo.bal.XPBAR.setLevel(XP_LEVEL);
glo.bal.XPBAR.setXP(XP, XP_THIS_LEVEL, XP_NEXT_LEVEL);
glo.bal.LEVELUPAURA.activate();
HEALTH = CONSTITUTION;
glo.bal.HEALTHBAR.setHealth(HEALTH, CONSTITUTION);
FOCUS = SPIRIT;
glo.bal.FOCUSBAR.setFocus(FOCUS, SPIRIT);
} else {
glo.bal.XPBAR.setXP(XP, XP_THIS_LEVEL, XP_NEXT_LEVEL);
};
}
public function deathStop(_arg1:Object){
glo.bal.INTERFACE.pausePlay();
}
function frame30(){
if (REPULSION > 0){
gotoAndPlay(10);
} else {
gotoAndStop(2);
};
}
public function loadFogOfWar(){
var i:*;
var j:Number;
var FOG:*;
var UNITS:*;
try {
FOG = glo.bal.CGAME.FOGOFWAR;
for (i in FOG) {
MAP.MAP[FOG[i].u][FOG[i].v].fogofwar = false;
};
UNITS = GAME.UNITS;
for (i in DISCOVEREDEGGS) {
for (j in UNITS) {
if (UNITS[j].OBJID == DISCOVEREDEGGS[i]){
UNITS[j].DISCOVERED = true;
};
};
};
} catch(e:Error) {
};
}
public function closeFromPortal(_arg1:objPortal){
PORTAL = _arg1;
glo.bal.INTERACTION.activate("Press SPACEBAR to save game", "blue");
}
public function autoCloseDoor(_arg1:Object){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
_local2 = (_arg1.x - POS.x);
_local3 = (_arg1.z - POS.z);
_local4 = ((_local2 * _local2) + (_local3 * _local3));
if (_local4 < (150 * 150)){
GAME.evt((16 * 1), autoCloseDoor, this, _arg1);
} else {
_local5 = MAP.roomObjAtLoc(LOC);
_local6 = null;
if (_arg1.ROOM.ID == _local5.ID){
_local6 = _arg1.ROOM2;
};
if (_arg1.ROOM2.ID == _local5.ID){
_local6 = _arg1.ROOM;
};
if (GAME.anyActiveUnitInRoom(_local6)){
trace("Active unit behind door -> cancel ...");
GAME.evt((16 * 1), autoCloseDoor, this, _arg1);
} else {
_arg1.closeDoor();
glo.bal.JUKEBOX.door();
};
};
}
public function useSAS(){
levelCompleted();
}
public function startGunShaking(){
GUNSHAKING.active = true;
GUNSHAKING.goingdown = true;
GUNSHAKING.goingup = false;
GUNSHAKING.counter = 1;
}
function frame2(){
stop();
}
public function continueToNextLevel(){
glo.bal.CGAME.CLEVEL++;
if (glo.bal.CGAME.CLEVEL > 4){
glo.bal.CGAME.CLEVEL = 4;
glo.bal.GAMECOMPLETED.activate();
return;
};
saveGame();
glo.bal.GAME.destroy();
glo.bal.INTERFACE.destroy();
glo.bal.GAMELOADER.action();
glo.bal.GAMEMENU.gotoPlay();
}
public function pauseGame(_arg1:Object){
if (SAVING){
return;
};
if (!ALIVE){
return;
};
if (glo.bal.INTERFACE.INBRIEFING){
return;
};
if (glo.bal.INTERFACE.GAMEPAUSED){
glo.bal.INTERFACE.resumePlay();
} else {
glo.bal.INTERFACE.btnMenu();
};
}
public function skillCompleted(_arg1:Number){
SKILLS[_arg1].active = false;
switch (_arg1){
case 0:
VISIBLE = true;
alpha = 1;
break;
case 2:
REPULSION = 0;
break;
};
}
public function fireNow(){
var _local1:Number;
var _local2:*;
if (RECHARGE > 0){
return;
};
RECHARGE = AMMO_RECHARGE[WEAPON];
if (RELOADING){
return;
};
if (AMMO_CHAMBER[WEAPON] < 1){
stopFire();
return;
};
switch (WEAPON){
case 0:
_local2 = new fpsBulletInstant(GAME, bulletPos(), glo.bal.AIM.getAimLoc());
_local2.EXPLOSION = GunSpark;
_local2.DAMAGE = FIREDAMAGE[WEAPON];
_local2.shoot();
FIREFX.fire();
glo.bal.JUKEBOX.pistol();
startGunShaking();
break;
case 1:
_local2 = new fpsBulletInstant(GAME, bulletPos(), glo.bal.AIM.getAimLoc());
_local2.EXPLOSION = GunSpark;
_local2.DAMAGE = FIREDAMAGE[WEAPON];
_local2.shoot();
FIREFX.fire();
break;
case 2:
GAME.evt(10, launchRPG, this);
glo.bal.JUKEBOX.rpg();
break;
};
var _local3 = AMMO_CHAMBER;
var _local4 = WEAPON;
var _local5 = (_local3[_local4] - 1);
_local3[_local4] = _local5;
_local3 = AMMO_TOTAL;
_local4 = WEAPON;
_local5 = (_local3[_local4] - 1);
_local3[_local4] = _local5;
AMMO_TOTAL[0] = 999;
ammoDisplay();
}
public function init(){
var _local1:*;
var _local2:*;
trace("aiPlayer->init");
ALIVE = true;
visible = true;
RELOADING = false;
FIRING = false;
STOPFIRINGAUTO = false;
DOOR = null;
HASMOVED = false;
PORTAL = null;
SAVING = false;
ITEMSPICKED = util.copyArray(glo.bal.CGAME.ITEMSPICKED);
UNITSKILLED = util.copyArray(glo.bal.CGAME.UNITSKILLED);
DISCOVEREDEGGS = util.copyArray(glo.bal.CGAME.DISCOVEREDEGGS);
KEYS = util.copyArray(glo.bal.CGAME.KEYSPICKED);
WHEELDELTA = 0;
OPT_CAM_SENS_PAN = glo.bal.CGAME.OPT_CAM_SENS_PAN;
OPT_CAM_SENS_TILT = glo.bal.CGAME.OPT_CAM_SENS_TILT;
OPT_MOUSEWHEEL_SENS = glo.bal.CGAME.OPT_MOUSEWHEEL_SENS;
MEDIKITS = glo.bal.CGAME.MEDIKITS;
AMMO_TOTAL = util.copyArray(glo.bal.CGAME.AMMO_TOTAL);
AMMO_CHAMBER = util.copyArray(glo.bal.CGAME.AMMO_TOTAL);
WEAPONCOUNT = 3;
AMMO_FULL = [60, 200, 10];
AMMO_RECHARGE = [6, 1, 16];
FIREDAMAGE = [20, 5, 400];
_local1 = 0;
while (_local1 < WEAPONCOUNT) {
if (AMMO_CHAMBER[_local1] > AMMO_FULL[_local1]){
AMMO_CHAMBER[_local1] = AMMO_FULL[_local1];
};
_local1++;
};
XP = glo.bal.CGAME.XP;
XP_LEVEL = glo.bal.CGAME.XP_LEVEL;
XP_SKILLPOINTS = glo.bal.CGAME.XP_SKILLPOINTS;
XP_INC = 500;
_local2 = (1 + Math.floor(Math.sqrt((XP / XP_INC))));
if (XP_LEVEL > _local2){
trace("XP level integrity correction");
XP_LEVEL = _local2;
};
if (_local2 > XP_LEVEL){
trace("XP points integrity correction");
XP = (((_local2 - 1) * (_local2 - 1)) * XP_INC);
};
XP_THIS_LEVEL = (((XP_LEVEL - 1) * (XP_LEVEL - 1)) * XP_INC);
XP_NEXT_LEVEL = ((XP_LEVEL * XP_LEVEL) * XP_INC);
UPGRADES = util.copyArray(glo.bal.CGAME.UPGRADES);
RELOADHELPER = 0;
NATURALSHIELD = 1;
switch (glo.bal.CGAME.DIFFICULTY){
case 1:
NATURALSHIELD = 0.75;
break;
case 2:
NATURALSHIELD = 1;
break;
case 3:
NATURALSHIELD = 1.25;
break;
};
REWARDRATIO = 1;
switch (glo.bal.CGAME.DIFFICULTY){
case 1:
REWARDRATIO = 0.8;
break;
case 2:
REWARDRATIO = 1;
break;
case 3:
REWARDRATIO = 1.2;
break;
};
RECHARGE = 0;
SKILLS = [];
SKILLS.push({active:false, cost:50, level:0});
SKILLS.push({active:false, cost:40, level:0});
SKILLS.push({active:false, cost:60, level:0});
VISIBLE = true;
REPULSION = 0;
NEXTFOOTSTEP = {side:1, interval:75, dy:0};
NEXTFOOTSTEP.counter = NEXTFOOTSTEP.interval;
GUNSHAKING = {interval:1, active:false, counter:0, goingup:false, goingdown:true, idx:8, idy:8, dx:0, dy:0};
CURSOR_DX = 0;
CURSOR_DY = 0;
switch (glo.bal.CGAME.CLEVEL){
case 1:
EGGSTODESTROY = 5;
break;
case 2:
EGGSTODESTROY = 10;
break;
case 3:
EGGSTODESTROY = 15;
break;
case 4:
EGGSTODESTROY = 20;
break;
};
EGGSDESTROYED = glo.bal.CGAME.EGGSDESTROYED;
if (EGGSDESTROYED >= EGGSTODESTROY){
KEYS.push("blue");
};
STATS_KILLS = glo.bal.CGAME.KILLS;
STATS_DAMAGESUFFERED = glo.bal.CGAME.DAMAGESUFFERED;
STATS_TIMEELAPSED = glo.bal.CGAME.TIMEELAPSED;
STATS_EGGSTODESTROY = EGGSTODESTROY;
GAME = glo.bal.GAME;
if (GAME == null){
return;
};
CAM = GAME.CAM;
MAP = GAME.MAP;
applyUpgrades();
HEALTH = glo.bal.CGAME.HEALTH;
FOCUS = glo.bal.CGAME.FOCUS;
if (HEALTH < 0){
HEALTH = CONSTITUTION;
};
if (FOCUS < 0){
FOCUS = SPIRIT;
};
MOUSELOC = {x:0, y:0};
MC_BOXW = 150;
MC_BOXH = 120;
MC_X0 = (GAME.viewW / 2);
MC_Y0 = (GAME.viewH / 2);
MC_DX = (MC_BOXW / 2);
MC_DY = (MC_BOXH / 2);
MC_IX = ((GAME.viewW - MC_BOXW) / 2);
MC_IY = ((GAME.viewH - MC_BOXH) / 2);
MOUSEOUTSIDE = false;
GAME.trackKey(Keyboard.SPACE);
GAME.trackKey(Keyboard.UP);
GAME.trackKey(Keyboard.DOWN);
GAME.trackKey(Keyboard.LEFT);
GAME.trackKey(Keyboard.RIGHT);
GAME.trackKey(87);
GAME.trackKey(65);
GAME.trackKey(68);
GAME.trackKey(83);
GAME.keyDownHandler(Keyboard.SPACE, evtSpaceDown, this);
GAME.keyDownHandler(77, tryUseMedikit, this);
GAME.keyDownHandler(82, tryReload, this);
GAME.keyDownHandler(67, toggleCharacterSheet, this);
GAME.keyDownHandler(49, useWeapon1, this);
GAME.keyDownHandler(50, useWeapon2, this);
GAME.keyDownHandler(51, useWeapon3, this);
GAME.keyDownHandler(97, useWeapon1, this);
GAME.keyDownHandler(98, useWeapon2, this);
GAME.keyDownHandler(99, useWeapon3, this);
GAME.keyDownHandler(52, useSkill1, this);
GAME.keyDownHandler(53, useSkill2, this);
GAME.keyDownHandler(54, useSkill3, this);
GAME.keyDownHandler(100, useSkill1, this);
GAME.keyDownHandler(101, useSkill2, this);
GAME.keyDownHandler(102, useSkill3, this);
GAME.keyDownHandler(80, pauseGame, this);
GAME.keyDownHandler(90, showMap, this);
glo.bal.HEALTHBAR.setHealth(HEALTH, CONSTITUTION);
glo.bal.FOCUSBAR.setFocus(FOCUS, SPIRIT);
glo.bal.XPBAR.setXP(XP, XP_THIS_LEVEL, XP_NEXT_LEVEL);
glo.bal.XPBAR.setLevel(XP_LEVEL);
WEAPON = -1;
if (AMMO_TOTAL[1] > 0){
setWeapon(1);
} else {
setWeapon(0);
};
ammoDisplay();
glo.bal.KEYS.gotKeys(KEYS);
GAME.evt(16, regen, this);
}
public function getPos():Object{
return (POS);
}
public function showMap(_arg1:Object){
if (SAVING){
return;
};
if (!ALIVE){
return;
};
if (glo.bal.INTERFACE.INBRIEFING){
return;
};
if (glo.bal.INTERFACE.GAMEPAUSED){
glo.bal.INTERFACE.resumePlay();
} else {
glo.bal.INTERFACE.btnMap();
};
}
public function setWeapon(_arg1:Number){
if (!ALIVE){
return;
};
if (AMMO_TOTAL[_arg1] < 1){
glo.bal.JUKEBOX.dryFire();
return;
};
if (WEAPON == _arg1){
return;
};
WEAPON = _arg1;
switch (WEAPON){
case 0:
BODY.pistol();
break;
case 1:
case 2:
BODY.ubergun();
break;
};
glo.bal.JUKEBOX.toggle();
ammoDisplay();
}
public function stopFireAuto(_arg1:Object){
if (!STOPFIRINGAUTO){
return;
};
FIRING = false;
FIREFX.stopFire();
}
public function mouseControl(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local1 = (MOUSELOC.x - MC_X0);
_local2 = (MOUSELOC.y - MC_Y0);
_local3 = (2 + ((18 * OPT_CAM_SENS_PAN) * 2));
if (Math.abs(_local1) > MC_DX){
if (_local1 > 0){
_local5 = (_local1 - MC_DX);
_local4 = ((_local3 * (_local5 * _local5)) / (MC_IX * MC_IX));
} else {
_local5 = (_local1 + MC_DX);
_local4 = ((-(_local3) * (_local5 * _local5)) / (MC_IX * MC_IX));
};
CAM._pan(_local4);
};
if (Math.abs(_local2) > MC_DY){
if (_local2 > 0){
_local6 = (_local2 - MC_DY);
_local4 = ((20 * (_local6 * _local6)) / (MC_IY * MC_IY));
} else {
_local6 = (_local2 + MC_DY);
_local4 = ((-20 * (_local6 * _local6)) / (MC_IY * MC_IY));
};
CAM._tilt(_local4);
};
}
public function launchRPG(_arg1:Object){
var _local2:Object;
var _local3:*;
_local2 = CAM.loc2pos(glo.bal.AIM.getAimLoc());
if (_local2 != null){
_local3 = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.RPG_BULLET);
_local3.scale = 0.25;
_local3.autoCenter = false;
GAME.BITMAPLIB.RPG_BULLET.getFrame(5, 0, _local3.BUFFER, new Point(0, 0));
bulletOBJ = new fpsBullet(GAME, _local3, bulletPos(), POS, _local2, 50, 10);
bulletOBJ.EXPLOSION = rpgExplosion;
bulletOBJ.DAMAGE = 0;
bulletOBJ.EXPLODEONUNIT = true;
bulletOBJ.AREAFX_RADIUS = 200;
bulletOBJ.AREAFX_DAMAGE = FIREDAMAGE[WEAPON];
bulletOBJ.explosionHandler(explodeRPG, this);
startGunShaking();
};
}
public function xpFastKill(_arg1:Object){
var _local2:*;
if (!ALIVE){
return;
};
UNITSKILLED.push(_arg1.OBJID);
STATS_KILLS++;
_local2 = ((_arg1.REWARD * 2) * REWARDRATIO);
if ((((WEAPON == 0)) && (!((_arg1.TYPE == "egg"))))){
_local2 = (_local2 * 2);
glo.bal.NOTICE.activate((("Fast Survivor Kill " + _local2) + " XP"));
} else {
glo.bal.NOTICE.activate((("Fast Kill " + _local2) + " XP"));
};
xpReward(_local2);
}
public function tryReload(_arg1:Object){
reload();
}
public function openDoor(_arg1:Object){
if (DOOR == null){
return;
};
DOOR.openDoor();
glo.bal.JUKEBOX.door();
GAME.evt((16 * 5), autoCloseDoor, this, DOOR);
}
public function explodeRPG(_arg1:Object){
glo.bal.JUKEBOX.explosion();
}
public function levelCompleted(){
ALIVE = false;
ITEMSPICKED = [];
UNITSKILLED = [];
DISCOVEREDEGGS = [];
KEYS = [];
HEALTH = CONSTITUTION;
FOCUS = SPIRIT;
visible = false;
glo.bal.LEVELCOMPLETED.activate();
glo.bal.INTERFACE.pausePlay();
glo.bal.JUKEBOX.levelCompleted();
}
function frame1(){
glo.bal.HERO = this;
}
public function farFromPortal(_arg1:objPortal){
PORTAL = null;
glo.bal.INTERACTION.deactivate();
}
public function eggProgress(_arg1:Object){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
_local2 = (EGGSTODESTROY - EGGSDESTROYED);
if (_local2 > 0){
_local3 = (_local2 + " ALIEN EGGS LEFT TO DESTROY");
_local4 = "";
glo.bal.MISSIONPROGRESS.activate(_local3, _local4);
} else {
_local5 = (EGGSTODESTROY * 250);
xpReward(_local5);
_local6 = "PRIMARY OBJECTIVE COMPLETED";
_local7 = (_local5 + "XP");
glo.bal.MISSIONPROGRESS.activate(_local6, _local7);
};
}
public function saveGame(){
glo.bal.CGAME.AMMO_TOTAL = util.copyArray(AMMO_TOTAL);
glo.bal.CGAME.MEDIKITS = MEDIKITS;
glo.bal.CGAME.KEYSPICKED = util.copyArray(KEYS);
glo.bal.CGAME.UPGRADES = util.copyArray(UPGRADES);
glo.bal.CGAME.HEALTH = HEALTH;
glo.bal.CGAME.FOCUS = FOCUS;
glo.bal.CGAME.XP = XP;
glo.bal.CGAME.XP_LEVEL = XP_LEVEL;
glo.bal.CGAME.XP_SKILLPOINTS = XP_SKILLPOINTS;
if (SAVING){
glo.bal.CGAME.PLAYERPOS = {x:POS.x, y:POS.y, z:POS.z};
glo.bal.CGAME.PLAYERDIR = getDir();
glo.bal.CGAME.EGGSDESTROYED = EGGSDESTROYED;
glo.bal.CGAME.TIMEELAPSED = STATS_TIMEELAPSED;
glo.bal.CGAME.DAMAGESUFFERED = STATS_DAMAGESUFFERED;
glo.bal.CGAME.KILLS = STATS_KILLS;
} else {
glo.bal.CGAME.PLAYERPOS = null;
glo.bal.CGAME.PLAYERDIR = 0;
glo.bal.CGAME.EGGSDESTROYED = 0;
glo.bal.CGAME.TIMEELAPSED = 0;
glo.bal.CGAME.DAMAGESUFFERED = 0;
glo.bal.CGAME.KILLS = 0;
};
saveFogOfWar();
glo.bal.CGAME.ITEMSPICKED = util.copyArray(ITEMSPICKED);
glo.bal.CGAME.UNITSKILLED = util.copyArray(UNITSKILLED);
glo.bal.CGAME.DISCOVEREDEGGS = util.copyArray(DISCOVEREDEGGS);
glo.bal.CGAME.LASTMODIFIED = new Date();
gameData.saveGames(glo.bal.GAMES);
}
public function getDir():Number{
return (CAM.PAN);
}
public function stopFire(){
if (!FIRING){
return;
};
if (WEAPON == 1){
STOPFIRINGAUTO = true;
GAME.evt(3, stopFireAuto, this);
} else {
FIRING = false;
};
glo.bal.JUKEBOX.stopGunLoop();
}
public function nextState(_arg1:Number, _arg2:Number){
var _local3:*;
var _local4:Object;
var _local5:*;
var _local6:Object;
var _local7:Object;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:*;
var _local12:Point;
var _local13:*;
var _local14:Number;
var _local15:Number;
var _local16:wblDoor;
if (!ALIVE){
return;
};
STATS_TIMEELAPSED++;
glo.bal.CLOCK.update(Math.round((STATS_TIMEELAPSED / 16)));
RECHARGE--;
MOUSELOC.x = _arg1;
MOUSELOC.y = _arg2;
MOUSEOUTSIDE = false;
if (MOUSELOC.x < 0){
MOUSELOC.x = 0;
MOUSEOUTSIDE = true;
};
if (MOUSELOC.x > GAME.viewW){
MOUSELOC.x = GAME.viewW;
MOUSEOUTSIDE = true;
};
if (MOUSELOC.y < 0){
MOUSELOC.y = 0;
MOUSEOUTSIDE = true;
};
if (MOUSELOC.y > GAME.viewH){
MOUSELOC.y = GAME.viewH;
MOUSEOUTSIDE = true;
};
if (!MOUSEOUTSIDE){
mouseControl();
};
HASMOVED = false;
_local8 = 0;
_local9 = 0;
_local10 = 0;
if (((GAME.isKeyDown(Keyboard.LEFT)) || (GAME.isKeyDown(65)))){
_local9 = (_local9 - (SPEED * 0.75));
};
if (((GAME.isKeyDown(Keyboard.RIGHT)) || (GAME.isKeyDown(68)))){
_local9 = (_local9 + (SPEED * 0.75));
};
if (((GAME.isKeyDown(Keyboard.UP)) || (GAME.isKeyDown(87)))){
_local10 = (_local10 + SPEED);
};
if (((GAME.isKeyDown(Keyboard.DOWN)) || (GAME.isKeyDown(83)))){
_local10 = (_local10 - (SPEED * 0.75));
};
if (((!((_local9 == 0))) || (!((_local10 == 0))))){
_local3 = {x:POS.x, y:POS.y, z:POS.z};
_local5 = CAM.sidewaysMove(_local9);
_local6 = CAM.forwardMove(_local10);
_local4 = {x:((_local3.x + _local5.x) + _local6.x), y:_local3.y, z:((_local3.z + _local5.z) + _local6.z)};
_local13 = GAME.loadedUnitInRange(_local4, 60);
if (_local13 == null){
_local7 = MAP.collision(_local3, _local4);
POS.x = _local7.bbpos.x;
POS.z = _local7.bbpos.z;
HASMOVED = true;
_local14 = (POS.x - _local3.x);
_local15 = (POS.z - _local3.z);
_local8 = Math.sqrt(((_local14 * _local14) + (_local15 * _local15)));
};
};
if (HASMOVED){
LOC = MAP.pos2uv(POS);
NEXTFOOTSTEP.counter = (NEXTFOOTSTEP.counter - _local8);
if (NEXTFOOTSTEP.counter < 0){
NEXTFOOTSTEP.counter = NEXTFOOTSTEP.interval;
if (NEXTFOOTSTEP.side == 1){
NEXTFOOTSTEP.side = 2;
glo.bal.JUKEBOX.footStep1();
} else {
NEXTFOOTSTEP.side = 1;
glo.bal.JUKEBOX.footStep2();
};
};
if (NEXTFOOTSTEP.side == 1){
NEXTFOOTSTEP.dy = (10 * (1 - (NEXTFOOTSTEP.counter / NEXTFOOTSTEP.interval)));
} else {
NEXTFOOTSTEP.dy = (10 * (NEXTFOOTSTEP.counter / NEXTFOOTSTEP.interval));
};
if (glo.bal.PC_OPTION == 1){
glo.bal.LEVELFLOOR.nextState();
glo.bal.LEVELCEILING.nextState();
};
};
if (HASMOVED){
_local16 = MAP.doorInRange(POS, 150);
if (_local16 != null){
if (((((!((_local16 == DOOR))) && (!(_local16.OPENING)))) && (!(_local16.CLOSING)))){
DOOR = _local16;
if (DOOR.CLOSED){
if (haveKeyForDoor(DOOR)){
glo.bal.INTERACTION.activate("Press SPACEBAR to open door");
} else {
glo.bal.INTERACTION.activate((("You need the " + DOOR.KEY.toUpperCase()) + " key to open this door"), DOOR.KEY);
};
};
};
} else {
if (DOOR != null){
glo.bal.INTERACTION.deactivate();
DOOR = null;
};
};
};
if (MOUSEOUTSIDE){
stopFire();
} else {
if (FIRING){
continueFire();
};
};
if (GUNSHAKING.active){
GUNSHAKING.dx = (((STABILITY * GUNSHAKING.idx) * GUNSHAKING.counter) / GUNSHAKING.interval);
GUNSHAKING.dy = (((STABILITY * GUNSHAKING.idy) * GUNSHAKING.counter) / GUNSHAKING.interval);
if (GUNSHAKING.goingdown){
GUNSHAKING.counter++;
if (GUNSHAKING.counter > GUNSHAKING.interval){
GUNSHAKING.goingdown = false;
GUNSHAKING.goingup = true;
};
} else {
GUNSHAKING.counter--;
if (GUNSHAKING.counter < 0){
if (((FIRING) && ((WEAPON == 1)))){
startGunShaking();
} else {
GUNSHAKING.active = false;
GUNSHAKING.dx = 0;
GUNSHAKING.dy = 0;
};
};
};
};
_local11 = CAM.forwardMove((GUNSHAKING.dx * -0.25));
CAM.x = (POS.x + _local11.x);
CAM.z = (POS.z + _local11.z);
CAM.y = (50 + (NEXTFOOTSTEP.dy * 0.1));
_local12 = glo.bal.AIM.getDXY();
x = (((0 + (MOUSELOC.x * 0.9)) + _local12.x) + GUNSHAKING.dx);
y = ((((50 + (MOUSELOC.y * 0.75)) + _local12.y) + GUNSHAKING.dy) + NEXTFOOTSTEP.dy);
CURSOR_DX = (GUNSHAKING.dx * -0.4);
CURSOR_DY = (GUNSHAKING.dy * -0.4);
}
public function damage(_arg1:Number){
_arg1 = (_arg1 * (NATURALSHIELD * BODYARMOR));
HEALTH = (HEALTH - _arg1);
if (HEALTH < 0){
HEALTH = 0;
};
glo.bal.HEALTHBAR.setHealth(HEALTH, CONSTITUTION);
STATS_DAMAGESUFFERED = (STATS_DAMAGESUFFERED + _arg1);
if (HEALTH == 0){
death();
};
}
public function applyUpgrades(){
BODYARMOR = (1 - (UPGRADES[0] * 0.15));
HEALTH_REGEN = (0.2 + (0.5 * UPGRADES[1]));
CONSTITUTION = (100 + (25 * UPGRADES[1]));
STABILITY = (1 - (0.225 * UPGRADES[2]));
glo.bal.AIM.setStability(STABILITY);
SPEED = (8 + (2 * UPGRADES[3]));
FOCUS_REGEN = (0.2 + (0.5 * UPGRADES[4]));
SPIRIT = (100 + (25 * UPGRADES[4]));
SKILLS[0].level = UPGRADES[5];
SKILLS[1].level = UPGRADES[6];
SKILLS[2].level = UPGRADES[7];
}
public function continueFire(){
fireNow();
}
public function reload(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
if (RELOADING){
return;
};
if ((((AMMO_TOTAL[WEAPON] < 1)) || ((AMMO_TOTAL[WEAPON] <= AMMO_CHAMBER[WEAPON])))){
return;
};
if (AMMO_CHAMBER[WEAPON] == AMMO_FULL[WEAPON]){
return;
};
RELOADING = true;
ME.visible = false;
_local1 = 20;
if (AMMO_CHAMBER[WEAPON] > 0){
_local2 = Math.min(AMMO_FULL[WEAPON], AMMO_TOTAL[WEAPON]);
_local3 = (_local2 - AMMO_CHAMBER[WEAPON]);
_local1 = Math.round(((_local1 * _local3) / _local2));
_local1 = 24;
};
glo.bal.RELOAD.reload(WEAPON, _local1);
if (AMMO_TOTAL[WEAPON] < AMMO_FULL[WEAPON]){
AMMO_CHAMBER[WEAPON] = AMMO_TOTAL[WEAPON];
} else {
AMMO_CHAMBER[WEAPON] = AMMO_FULL[WEAPON];
};
RELOADHELPER = 0;
glo.bal.JUKEBOX.reload1();
GAME.evt(_local1, doneReloading, this);
}
public function eggDestroyed(_arg1:Object){
var _local2:*;
EGGSDESTROYED++;
GAME.evt((16 * 2), eggProgress, this);
if (EGGSDESTROYED >= EGGSTODESTROY){
_local2 = new itemKey("blue");
_local2.init();
_local2.loadItem(_arg1.POS);
};
}
public function portalSaveGame(){
SAVING = true;
glo.bal.SAVINGGAME.activate(this);
glo.bal.INTERFACE.pausePlay();
saveGame();
}
public function stealthDetected(){
if (VISIBLE){
return;
};
glo.bal.SKILLS.fastForwardSkill(0, 10);
}
public function tryHit(_arg1:Number, _arg2:aiUnit){
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
if (!ALIVE){
return;
};
_local3 = (_arg2.POS.x - POS.x);
_local4 = (_arg2.POS.z - POS.z);
_local5 = ((Math.atan2(_local4, _local3) * 360) / FastMath.TWO_PI);
if (_local5 < 0){
_local5 = (_local5 + 360);
};
_local6 = (_local5 - CAM.PAN);
if (_local6 < 0){
_local6 = (_local6 + 360);
};
if (_local6 > 180){
if (_local6 < 325){
glo.bal.MONSTERWARNING.warnR();
};
} else {
if (_local6 > 35){
glo.bal.MONSTERWARNING.warnL();
};
};
damage(_arg1);
glo.bal.CLAWRIPS.hit();
}
}
}//package
Section 277
//aiUnit (aiUnit)
package {
import gdk.fps.*;
import sandy.core.data.*;
import flash.geom.*;
public class aiUnit extends fpsUnit {
public var BUFFER_DX:Number;
public var ATTACKING:Boolean;
public var BUFFER_DY:Number;
public var HZ_FRAMEi:Number;
public var HZ:Object;
public var AUTOREPULSE:Number;
public var HITRANGE:Number;
public var SPEED:Object;
public var ATTACKDAMAGE:Number;
public var TYPE:String;
public var REWARD:Number;
public var BLEEDER:Bleeder;
public var HZ_MOVEi:Number;
public var TILEW:Number;
public var MOVESPEED:Number;
public var UNITBAR:UnitHealthBar;
public function aiUnit(_arg1:fpsGame, _arg2:Vector){
TILEW = fpsSetup.FLOOR_WIDTH;
super(_arg1, _arg2);
ATTACKING = false;
MOVESPEED = 10;
HITRANGE = 15;
AUTOREPULSE = 100;
TYPE = "";
}
public function areaFX(_arg1:fpsBullet){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:Object;
var _local7:Number;
if (!ALIVE){
return;
};
_local2 = (_arg1.TRAIL[0].x - POS.x);
_local3 = (_arg1.TRAIL[0].z - POS.z);
_local4 = ((_local2 * _local2) + (_local3 * _local3));
_local5 = (1 - (_local4 / (_arg1.AREAFX_RADIUS * _arg1.AREAFX_RADIUS)));
if (_local5 > 0){
_local6 = GAME.MAP.stingRay(_arg1.TRAIL[3], POS);
if (_local6.intersect){
return;
};
if (!LOADED){
loadUnit();
GAME.evt(2, areaFX, this, _arg1);
return;
};
_local7 = Math.round((10 * Math.random()));
GAME.evt(_local7, damage, this, (_arg1.AREAFX_DAMAGE * _local5));
};
}
public function autoRepulse(){
var _local1:Object;
var _local2:Object;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Point;
_local1 = getPos();
_local2 = PLAYER.getPos();
_local3 = (_local1.x - _local2.x);
_local4 = (_local1.z - _local2.z);
_local5 = ((_local3 * _local3) + (_local4 * _local4));
if (_local5 < (AUTOREPULSE * AUTOREPULSE)){
trace("repulse ...");
_local6 = new Point(_local3, _local4);
_local6.normalize(AUTOREPULSE);
setPos({x:(_local2.x + _local6.x), y:_local2.y, z:(_local2.z + _local6.y)});
};
}
public function bulletCollision(_arg1:fpsBullet):Boolean{
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:Number;
var _local6:*;
if (!ALIVE){
return;
};
if (!LOADED){
return;
};
for (_local6 in _arg1.TRAIL) {
_local2 = (_arg1.TRAIL[_local6].x - POS.x);
_local3 = 0;
_local4 = (_arg1.TRAIL[_local6].z - POS.z);
_local5 = ((_local2 * _local2) + (_local4 * _local4));
if (_local5 < (HITRANGE * HITRANGE)){
damage(_arg1.DAMAGE);
return (true);
};
};
return (false);
}
public function hitDetection(_arg1:Object){
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Object;
var _local6:Boolean;
var _local7:Array;
var _local8:*;
var _local9:*;
var _local10:Object;
var _local11:Object;
var _local12:Object;
if (!ALIVE){
return;
};
if (!LOADED){
return;
};
_local7 = HZ.getHitZones(HZ_MOVEi, HZ_FRAMEi);
for (_local2 in _local7) {
_local5 = _local7[_local2];
_local5.scale = SPRITE.container.scaleX;
_local5.rect = new Rectangle(0, 0, (_local5.w * _local5.scale), (_local5.h * _local5.scale));
_local5.rect.x = (SPRITE.container.x + ((BUFFER_DX + _local5.x) * _local5.scale));
_local5.rect.y = (SPRITE.container.y + ((BUFFER_DY + _local5.y) * _local5.scale));
};
_local3 = 0;
_local6 = false;
for (_local2 in _local7) {
_local5 = _local7[_local2];
if (_local5.rect.contains(_arg1.x, _arg1.y)){
_local3 = (_local3 + (_arg1.damage * _local5.factor));
_local6 = true;
};
};
_local3 = Math.round(_local3);
if (_local3 > 0){
_local10 = PLAYER.getPos();
_local11 = {x:POS.x, y:POS.y, z:POS.z};
_local12 = GAME.MAP.stingRay(_local10, _local11);
if (_local12.intersect){
_local3 = 0;
_local6 = false;
};
};
_local8 = distanceFromPlayer();
_local9 = (1 + (0.5 * (1 - (_local8 / 1000))));
return (_local3);
}
}
}//package
Section 278
//aiUnitAlpha1 (aiUnitAlpha1)
package {
import gdk.fps.*;
import gdk.sprite.*;
import sandy.core.data.*;
public class aiUnitAlpha1 extends aiUnitRusher {
public function aiUnitAlpha1(_arg1:String, _arg2:fpsGame, _arg3:Vector){
OBJID = _arg1;
super(_arg2, _arg3);
ATTACKDAMAGE = 10;
NATURALSHIELD = 1;
MOVESPEED = 15;
TIMEFASTKILL = (16 * 3);
WAKEUPTIME = 16;
REWARD = 50;
SET = GAME.BITMAPLIB.ALPHA1;
SQR = new gSequencer(SET, 0);
BLEEDER = new Bleeder(GAME.BITMAPLIB.BLOOD, (-40 + 121), (-160 + 208));
UNITBAR = new UnitHealthBar(100, 20, 45, 3);
HZ = glo.bal.HZ_ALPHA1;
BUFFER_DX = -121;
BUFFER_DY = -208;
}
override public function setAttackEvents(){
GAME.evt(9, hitPlayer, this);
GAME.evt(14, hitPlayer, this);
GAME.evt(28, attackCompleted, this);
}
override public function sfxRoar(){
var _local1:Number;
_local1 = Math.floor((Math.random() * 3));
if (_local1 == 3){
_local1--;
};
switch (_local1){
case 0:
glo.bal.JUKEBOX.roar1();
break;
case 1:
glo.bal.JUKEBOX.roar2();
break;
case 2:
glo.bal.JUKEBOX.roar3();
break;
};
}
override public function getSprite(){
SPRITE = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.ALPHA1);
SPRITE.scale = 0.3;
SPRITE.autoCenter = false;
SPRITE.BMP.y = -121;
SPRITE.BMP.y = -208;
}
override public function sfxDie(){
var _local1:Number;
_local1 = Math.floor((Math.random() * 2));
if (_local1 == 2){
_local1--;
};
switch (_local1){
case 0:
glo.bal.JUKEBOX.die1();
break;
case 1:
glo.bal.JUKEBOX.die2();
break;
};
}
}
}//package
Section 279
//aiUnitAlpha2 (aiUnitAlpha2)
package {
import gdk.fps.*;
import gdk.sprite.*;
import sandy.core.data.*;
public class aiUnitAlpha2 extends aiUnitRusher {
public function aiUnitAlpha2(_arg1:String, _arg2:fpsGame, _arg3:Vector){
OBJID = _arg1;
super(_arg2, _arg3);
ATTACKDAMAGE = 20;
NATURALSHIELD = 1;
MOVESPEED = 20;
TIMEFASTKILL = (16 * 3);
WAKEUPTIME = 12;
REWARD = 50;
SET = GAME.BITMAPLIB.ALPHA1;
SQR = new gSequencer(SET, 0);
BLEEDER = new Bleeder(GAME.BITMAPLIB.BLOOD, (-40 + 121), (-160 + 208));
UNITBAR = new UnitHealthBar(100, 20, 45, 3);
FILTER = GAME.BITMAPLIB.FILTER_ALPHA2.filter;
HZ = glo.bal.HZ_ALPHA1;
BUFFER_DX = -121;
BUFFER_DY = -208;
}
override public function setAttackEvents(){
GAME.evt(9, hitPlayer, this);
GAME.evt(14, hitPlayer, this);
GAME.evt(28, attackCompleted, this);
}
override public function sfxRoar(){
var _local1:Number;
_local1 = Math.floor((Math.random() * 3));
if (_local1 == 3){
_local1--;
};
switch (_local1){
case 0:
glo.bal.JUKEBOX.roar1();
break;
case 1:
glo.bal.JUKEBOX.roar2();
break;
case 2:
glo.bal.JUKEBOX.roar3();
break;
};
}
override public function getSprite(){
SPRITE = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.ALPHA2);
SPRITE.scale = 0.3;
SPRITE.autoCenter = false;
SPRITE.BMP.y = -121;
SPRITE.BMP.y = -208;
}
override public function sfxDie(){
var _local1:Number;
_local1 = Math.floor((Math.random() * 2));
if (_local1 == 2){
_local1--;
};
switch (_local1){
case 0:
glo.bal.JUKEBOX.die1();
break;
case 1:
glo.bal.JUKEBOX.die2();
break;
};
}
}
}//package
Section 280
//aiUnitMonster1 (aiUnitMonster1)
package {
import gdk.fps.*;
import gdk.sprite.*;
import sandy.core.data.*;
public class aiUnitMonster1 extends aiUnitRusher {
public function aiUnitMonster1(_arg1:String, _arg2:fpsGame, _arg3:Vector){
OBJID = _arg1;
super(_arg2, _arg3);
ATTACKDAMAGE = 20;
NATURALSHIELD = 1;
MOVESPEED = 20;
TIMEFASTKILL = (16 * 3);
WAKEUPTIME = 12;
REWARD = 50;
SET = GAME.BITMAPLIB.MONSTER1;
SQR = new gSequencer(SET, 2);
BLEEDER = new Bleeder(GAME.BITMAPLIB.BLOOD, (120 - 40), (80 - 50));
UNITBAR = new UnitHealthBar(108, 9, 45, 3);
HZ = glo.bal.HZ_MONSTER1;
BUFFER_DX = -130;
BUFFER_DY = -120;
}
override public function setAttackEvents(){
GAME.evt(10, hitPlayer, this);
GAME.evt(17, hitPlayer, this);
GAME.evt(32, attackCompleted, this);
}
override public function sfxRoar(){
glo.bal.JUKEBOX.roar4();
}
override public function getSprite(){
SPRITE = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.MONSTER1);
SPRITE.scale = 0.45;
SPRITE.autoCenter = false;
SPRITE.BMP.y = -130;
SPRITE.BMP.y = -120;
}
override public function sfxDie(){
var _local1:Number;
_local1 = Math.floor((Math.random() * 2));
if (_local1 == 2){
_local1--;
};
switch (_local1){
case 0:
glo.bal.JUKEBOX.die1();
break;
case 1:
glo.bal.JUKEBOX.die2();
break;
};
}
}
}//package
Section 281
//aiUnitMonster2 (aiUnitMonster2)
package {
import gdk.fps.*;
import gdk.sprite.*;
import sandy.core.data.*;
public class aiUnitMonster2 extends aiUnitRusher {
public function aiUnitMonster2(_arg1:String, _arg2:fpsGame, _arg3:Vector){
OBJID = _arg1;
super(_arg2, _arg3);
ATTACKDAMAGE = 30;
NATURALSHIELD = 1;
MOVESPEED = 25;
TIMEFASTKILL = (16 * 3);
WAKEUPTIME = 8;
REWARD = 50;
SET = GAME.BITMAPLIB.MONSTER1;
SQR = new gSequencer(SET, 2);
BLEEDER = new Bleeder(GAME.BITMAPLIB.BLOOD, (120 - 40), (80 - 50));
UNITBAR = new UnitHealthBar(108, 9, 45, 3);
FILTER = GAME.BITMAPLIB.FILTER_MONSTER2.filter;
HZ = glo.bal.HZ_MONSTER1;
BUFFER_DX = -130;
BUFFER_DY = -120;
}
override public function setAttackEvents(){
GAME.evt(10, hitPlayer, this);
GAME.evt(17, hitPlayer, this);
GAME.evt(32, attackCompleted, this);
}
override public function sfxRoar(){
glo.bal.JUKEBOX.roar4();
}
override public function getSprite(){
SPRITE = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.MONSTER2);
SPRITE.scale = 0.45;
SPRITE.autoCenter = false;
SPRITE.BMP.y = -130;
SPRITE.BMP.y = -120;
}
override public function sfxDie(){
var _local1:Number;
_local1 = Math.floor((Math.random() * 2));
if (_local1 == 2){
_local1--;
};
switch (_local1){
case 0:
glo.bal.JUKEBOX.die1();
break;
case 1:
glo.bal.JUKEBOX.die2();
break;
};
}
}
}//package
Section 282
//aiUnitRusher (aiUnitRusher)
package {
import gdk.fps.*;
import gdk.sprite.*;
import sandy.core.data.*;
import flash.geom.*;
import flash.filters.*;
public class aiUnitRusher extends aiUnit {
public var ATTACKRANGE2:Number;
public var TIMEACTIVE:Number;
public var S_VOID:Number;
public var HITPLAYER:Boolean;
public var PATH:Array;
public var PATHTIMER:Number;
public var SET:Object;
public var S_IDLE:Number;
public var BP:Point;
public var BSTATE:Number;
public var FILTER:BitmapFilter;
public var CLEARFIRST:Boolean;
public var TIMEFASTKILL:Number;
public var WAKEUPTIME:Number;
public var NEXTPATHPOS:Object;
public var PATHTIMEVALID:Number;
public var S_ATTACK:Number;
public var SQR:gSequencer;
public var S_PATROL:Number;
public var SPEEDCORRECTION:Number;
public var PATHINDEX:Number;
public var ATTACKRANGE:Number;
public var ACTIVERANGE:Number;
public var S_MOVETOWARD:Number;
public var BFH_STATE:Number;
public function aiUnitRusher(_arg1:fpsGame, _arg2:Vector){
var _local3:Number;
super(_arg1, _arg2);
TYPE = "monster";
ATTACKDAMAGE = 10;
WAKEUPTIME = 16;
MOVESPEED = 15;
ACTIVERANGE = 1500;
ATTACKRANGE = 100;
ATTACKRANGE2 = (ATTACKRANGE * ATTACKRANGE);
_local3 = 0;
var _temp1 = _local3;
_local3 = (_local3 + 1);
S_IDLE = _temp1;
var _temp2 = _local3;
_local3 = (_local3 + 1);
S_PATROL = _temp2;
var _temp3 = _local3;
_local3 = (_local3 + 1);
S_MOVETOWARD = _temp3;
var _temp4 = _local3;
_local3 = (_local3 + 1);
S_ATTACK = _temp4;
var _temp5 = _local3;
_local3 = (_local3 + 1);
S_VOID = _temp5;
PATH = null;
PATHTIMEVALID = 60;
TIMEACTIVE = 0;
TIMEFASTKILL = (16 * 3);
SPEEDCORRECTION = 1;
BP = new Point(0, 0);
CLEARFIRST = false;
}
public function stateIdle(){
var _local1:Object;
var _local2:Object;
var _local3:Object;
if (ROOM.LOADED){
_local1 = getPos();
_local2 = PLAYER.getPos();
_local3 = GAME.MAP.stingRay(_local1, _local2, false);
if (!_local3.intersect){
loadUnit();
trPatrol();
};
};
}
override public function init(_arg1:Object=null){
super.init();
ALIVE = true;
BSTATE = S_IDLE;
TIMEACTIVE = 0;
SPEEDCORRECTION = 1;
ATTACKING = false;
setBP(0);
SQR.setSequence(0);
switch (glo.bal.CGAME.DIFFICULTY){
case 1:
MOVESPEED = (MOVESPEED * (0.75 * 0.8));
WAKEUPTIME = (WAKEUPTIME * 0.9);
NATURALSHIELD = (NATURALSHIELD * 1.25);
break;
case 2:
MOVESPEED = (MOVESPEED * 0.85);
WAKEUPTIME = (WAKEUPTIME * 0.8);
break;
case 3:
MOVESPEED = (MOVESPEED * (1.25 * 1));
WAKEUPTIME = (WAKEUPTIME * 0.7);
NATURALSHIELD = (NATURALSHIELD * 0.75);
break;
};
}
protected function setBP(_arg1:Number){
BP.x = 0;
BP.y = 0;
}
public function setAttackEvents(){
}
override public function damageSuffered(_arg1:Number){
PLAYER.stealthDetected();
BLEEDER.bleed();
}
public function statePatrol(){
var _local1:Object;
var _local2:Object;
var _local3:Object;
if (PLAYER.VISIBLE){
_local1 = getPos();
_local2 = PLAYER.getPos();
_local3 = GAME.MAP.stingRay(_local1, _local2, false);
if (!_local3.intersect){
GAME.evt(WAKEUPTIME, wakeUp, this);
BSTATE = S_VOID;
};
};
}
public function sfxRoar(){
}
public function stateAttack(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Point;
_local1 = distanceFromPlayer();
if (_local1 < ATTACKRANGE){
return;
};
if (HITPLAYER){
return;
};
_local2 = (NEXTPATHPOS.x - POS.x);
_local3 = (NEXTPATHPOS.z - POS.z);
_local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
if (_local4 < (MOVESPEED * SPEEDCORRECTION)){
findPathToPlayer();
};
if (_local1 < PLAYER.REPULSION){
return;
};
if (_local4 > 0){
_local5 = new Point(_local2, _local3);
_local5.normalize((MOVESPEED * SPEEDCORRECTION));
movement(_local5.x, 0, _local5.y);
};
}
public function wakeUp(_arg1:Object){
if (!ALIVE){
return;
};
sfxRoar();
trMoveT();
}
public function hitPlayer(_arg1:Object=null){
if (!ALIVE){
return;
};
HITPLAYER = true;
if (distanceFromPlayer() < (ATTACKRANGE * 1.05)){
glo.bal.PLAYER.tryHit(ATTACKDAMAGE, this);
};
}
override public function nextState(){
if (ALIVE){
switch (BSTATE){
case S_IDLE:
stateIdle();
break;
case S_PATROL:
statePatrol();
break;
case S_MOVETOWARD:
stateMoveT();
break;
case S_ATTACK:
stateAttack();
break;
};
if (LOADED){
TIMEACTIVE++;
};
};
if (LOADED){
if (CLEARFIRST){
SPRITE.BUFFER.fillRect(SPRITE.BUFFER.rect, 0);
};
SQR.nextState(SPRITE.BUFFER, BP);
HZ_MOVEi = SQR.C_SEQ;
HZ_FRAMEi = SQR.C_IMG;
if (FILTER){
SPRITE.BUFFER.applyFilter(SPRITE.BUFFER, SPRITE.BUFFER.rect, new Point(0, 0), FILTER);
};
if (ALIVE){
UNITBAR.nextState(SPRITE.BUFFER, (HEALTH / 100));
};
BLEEDER.nextState(SPRITE.BUFFER);
};
}
public function trAttack(){
findPathToPlayer();
setBP(2);
SQR.setSequence(2);
setAttackEvents();
BSTATE = S_ATTACK;
HITPLAYER = false;
ATTACKING = true;
}
public function trPatrol(){
BSTATE = S_PATROL;
ATTACKING = false;
}
override public function death(){
sfxDie();
setBP(3);
SQR.setSequence(3, false);
GAME.evt(50, clearUnit, this, 32);
if (TIMEACTIVE < TIMEFASTKILL){
PLAYER.xpFastKill(this);
} else {
PLAYER.xpKill(this);
};
}
override public function loadUnit(){
if (!ALIVE){
return;
};
if (LOADED){
return;
};
getSprite();
if (SPRITE){
LOADED = true;
setBP(0);
movement(0, 0, 0);
SPRITE.setBoundingSphereRadius(60);
};
}
public function initOnLoad(_arg1:Object){
}
public function getSprite(){
}
public function stateMoveT(){
var _local1:Number;
var _local2:Object;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Point;
_local1 = distanceFromPlayer();
if (_local1 < ATTACKRANGE){
trAttack();
return;
};
_local2 = getPos();
_local3 = (NEXTPATHPOS.x - _local2.x);
_local4 = (NEXTPATHPOS.z - _local2.z);
_local5 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4)));
if (_local5 < (MOVESPEED * SPEEDCORRECTION)){
findPathToPlayer();
};
if (_local1 < PLAYER.REPULSION){
return;
};
if (_local5 > 0){
_local6 = new Point(_local3, _local4);
_local6.normalize((MOVESPEED * SPEEDCORRECTION));
movement(_local6.x, 0, _local6.y);
};
}
public function sfxDie(){
}
public function trMoveT(){
setBP(1);
SQR.setSequence(1);
findPathToPlayer();
BSTATE = S_MOVETOWARD;
ATTACKING = true;
}
private function findPathToPlayer(){
var _local1:Object;
var _local2:Object;
var _local3:Object;
var _local4:Object;
var _local5:Number;
var _local6:Number;
var _local7:Point;
_local1 = getPos();
_local2 = PLAYER.getPos();
_local3 = GAME.MAP.stingRayBox(_local2, _local1);
if (_local3.intersect){
_local4 = getLoc();
PATH = GAME.MAP.findPath(_local4.u, _local4.v, PLAYER.LOC.u, PLAYER.LOC.v);
PATHINDEX = 1;
NEXTPATHPOS = getPos();
if (PATH != null){
if (PATH.length > PATHINDEX){
NEXTPATHPOS = new Object();
NEXTPATHPOS.x = (((PATH[PATHINDEX].u + 0.4) + (Math.random() * 0.2)) * TILEW);
NEXTPATHPOS.y = 0;
NEXTPATHPOS.z = (((PATH[PATHINDEX].v + 0.4) + (Math.random() * 0.2)) * TILEW);
};
};
SPEEDCORRECTION = 0.5;
} else {
_local5 = (_local2.x - _local1.x);
_local6 = (_local2.z - _local1.z);
_local7 = new Point(_local5, _local6);
_local7.normalize(TILEW);
NEXTPATHPOS = new Object();
NEXTPATHPOS.x = (_local1.x + _local7.x);
NEXTPATHPOS.y = _local1.y;
NEXTPATHPOS.z = (_local1.z + _local7.y);
SPEEDCORRECTION = 1;
};
}
public function attackCompleted(_arg1:Object=null){
var _local2:Number;
if (!ALIVE){
return;
};
HITPLAYER = false;
_local2 = distanceFromPlayer();
if (_local2 > ATTACKRANGE){
trMoveT();
return;
};
setAttackEvents();
}
}
}//package
Section 283
//aiUnitScorpid1 (aiUnitScorpid1)
package {
import gdk.fps.*;
import gdk.sprite.*;
import sandy.core.data.*;
public class aiUnitScorpid1 extends aiUnitRusher {
public function aiUnitScorpid1(_arg1:String, _arg2:fpsGame, _arg3:Vector){
OBJID = _arg1;
super(_arg2, _arg3);
ATTACKDAMAGE = 15;
NATURALSHIELD = 1;
MOVESPEED = 18;
TIMEFASTKILL = (16 * 3);
WAKEUPTIME = 14;
REWARD = 50;
SET = GAME.BITMAPLIB.SCORPID1;
SQR = new gSequencer(SET, 1);
BLEEDER = new Bleeder(GAME.BITMAPLIB.BLOOD, (-45 + 139), ((-90 + 106) + 50));
UNITBAR = new UnitHealthBar(117, 65, 45, 3);
CLEARFIRST = true;
HZ = glo.bal.HZ_SCORPID1;
BUFFER_DX = -139;
BUFFER_DY = -106;
}
override public function setAttackEvents(){
GAME.evt(9, hitPlayer, this);
GAME.evt(17, hitPlayer, this);
GAME.evt(34, attackCompleted, this);
}
override protected function setBP(_arg1:Number){
if (_arg1 == 3){
BP.x = 0;
BP.y = 0;
} else {
BP.x = 0;
BP.y = 50;
};
}
override public function sfxRoar(){
var _local1:Number;
_local1 = Math.floor((Math.random() * 2));
if (_local1 == 2){
_local1--;
};
switch (_local1){
case 0:
glo.bal.JUKEBOX.roar5();
break;
case 1:
glo.bal.JUKEBOX.roar6();
break;
};
}
override public function getSprite(){
SPRITE = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.SCORPID1);
SPRITE.scale = 0.4;
SPRITE.autoCenter = false;
SPRITE.BMP.y = -139;
SPRITE.BMP.y = (-106 - 50);
}
override public function sfxDie(){
var _local1:Number;
_local1 = Math.floor((Math.random() * 2));
if (_local1 == 2){
_local1--;
};
switch (_local1){
case 0:
glo.bal.JUKEBOX.die5();
break;
case 1:
glo.bal.JUKEBOX.die6();
break;
};
}
}
}//package
Section 284
//aiUnitScorpid2 (aiUnitScorpid2)
package {
import gdk.fps.*;
import gdk.sprite.*;
import sandy.core.data.*;
public class aiUnitScorpid2 extends aiUnitRusher {
public function aiUnitScorpid2(_arg1:String, _arg2:fpsGame, _arg3:Vector){
OBJID = _arg1;
super(_arg2, _arg3);
ATTACKDAMAGE = 25;
NATURALSHIELD = 1;
MOVESPEED = 23;
TIMEFASTKILL = (16 * 3);
WAKEUPTIME = 10;
REWARD = 50;
SET = GAME.BITMAPLIB.SCORPID1;
SQR = new gSequencer(SET, 1);
BLEEDER = new Bleeder(GAME.BITMAPLIB.BLOOD, (-45 + 139), ((-90 + 106) + 50));
UNITBAR = new UnitHealthBar(117, 65, 45, 3);
CLEARFIRST = true;
FILTER = GAME.BITMAPLIB.FILTER_SCORPID2.filter;
HZ = glo.bal.HZ_SCORPID1;
BUFFER_DX = -139;
BUFFER_DY = -106;
}
override public function setAttackEvents(){
GAME.evt(9, hitPlayer, this);
GAME.evt(17, hitPlayer, this);
GAME.evt(34, attackCompleted, this);
}
override protected function setBP(_arg1:Number){
if (_arg1 == 3){
BP.x = 0;
BP.y = 0;
} else {
BP.x = 0;
BP.y = 50;
};
}
override public function sfxRoar(){
var _local1:Number;
_local1 = Math.floor((Math.random() * 2));
if (_local1 == 2){
_local1--;
};
switch (_local1){
case 0:
glo.bal.JUKEBOX.roar5();
break;
case 1:
glo.bal.JUKEBOX.roar6();
break;
};
}
override public function getSprite(){
SPRITE = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.SCORPID1);
SPRITE.scale = 0.4;
SPRITE.autoCenter = false;
SPRITE.BMP.y = -139;
SPRITE.BMP.y = (-106 - 50);
}
override public function sfxDie(){
var _local1:Number;
_local1 = Math.floor((Math.random() * 2));
if (_local1 == 2){
_local1--;
};
switch (_local1){
case 0:
glo.bal.JUKEBOX.die5();
break;
case 1:
glo.bal.JUKEBOX.die6();
break;
};
}
}
}//package
Section 285
//Bleeder (Bleeder)
package {
import flash.display.*;
import flash.geom.*;
public class Bleeder {
private var CF:Number;
private var ST:Number;
private var SEQi:Number;
private var ACTIVE:Boolean;
private var BP:Point;
private var NF:Number;
private var LF:Number;
private var SEQ:Object;
public function Bleeder(_arg1:Object, _arg2:Number, _arg3:Number){
BP = new Point(_arg2, _arg3);
SEQ = _arg1;
SEQi = 2;
CF = 0;
NF = 30;
LF = 0;
ST = 0;
ACTIVE = false;
}
public function nextState(_arg1:BitmapData){
if (!ACTIVE){
return;
};
SEQ.getFrame(SEQi, CF, _arg1, BP, true);
ST--;
CF++;
if (CF >= NF){
if (ST < 1){
CF = 0;
ACTIVE = false;
} else {
CF = LF;
};
};
}
public function bleed(){
if (!ACTIVE){
CF = 0;
};
ACTIVE = true;
ST = 29;
}
}
}//package
Section 286
//Builder (Builder)
package {
import gdk.fps.*;
import gdk.fps.wbl.*;
import gdk.*;
public class Builder {
public static var TEX_WALL:gdkTexture = null;
public static var SECT_WALL_E:Array = [];
public static var SECT_WALL_N:Array = [];
public static var SECT_WALL_W:Array = [];
public static var SECT_WALL_S:Array = [];
public static var TEX_DOOR_F:gdkTexture = null;
public static var TEX_DOOR_L:gdkTexture = null;
public static var TEX_DOOR_R:gdkTexture = null;
public static var SECT_H:Number = 1;
public static var SECT_OPENS:Array = [];
public static var SECT_K:Number = 1;
public static var SECT_L:Number = 1;
public static var SECT_WALLOPEN_E:Boolean = false;
public static var SECT_U:Number = 1;
public static var ROOM:fpsRoom = null;
public static var SECT_WALLOPEN_N:Boolean = false;
public static var SECT_V:Number = 1;
public static var SECT_W:Number = 1;
public static var SECT_WALLOPEN_S:Boolean = false;
public static var TEX_CEILING:gdkTexture = null;
public static var SECT_DOORS:Array = [];
public static var TEX_FLOOR:gdkTexture = null;
public static var SECT_WALLOPEN_W:Boolean = false;
public static function floor(_arg1:Number, _arg2:Number, _arg3:Number=1, _arg4:Number=1, _arg5:gdkTexture=null){
if (_arg5 == null){
_arg5 = Builder.TEX_FLOOR;
};
wblFloor.section(Builder.ROOM, _arg1, _arg2, _arg5, _arg3, _arg4);
}
public static function door(_arg1:fpsRoom, _arg2:fpsRoom, _arg3:Object, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:gdkTexture=null, _arg9:gdkTexture=null, _arg10:gdkTexture=null){
if (_arg8 == null){
_arg8 = Builder.TEX_DOOR_F;
};
if (_arg9 == null){
_arg9 = Builder.TEX_DOOR_L;
};
if (_arg10 == null){
_arg10 = Builder.TEX_DOOR_R;
};
wblDoorA.create(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10);
}
public static function getPieces(_arg1:Number):Array{
var _local2:*;
var _local3:Array;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
_local2 = _arg1;
if (glo.bal.PC_OPTION == 1){
_local3 = [4, 3, 2, 1];
} else {
_local3 = [1];
};
_local4 = [];
_local5 = 0;
while (_local5 < _local3.length) {
_local7 = Math.floor((_local2 / _local3[_local5]));
_local6 = 0;
while (_local6 < _local7) {
_local4.push(_local3[_local5]);
_local6++;
};
_local2 = (_local2 - (_local7 * _local3[_local5]));
if (_local2 == 0){
break;
};
_local5++;
};
return (_local4);
}
public static function floorNceiling(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=1, _arg5:Number=1, _arg6:gdkTexture=null, _arg7:gdkTexture=null){
if (_arg6 == null){
_arg6 = Builder.TEX_FLOOR;
};
if (_arg7 == null){
_arg7 = Builder.TEX_CEILING;
};
wblFloor.section(Builder.ROOM, _arg1, _arg2, _arg6, _arg4, _arg5);
wblCeiling.section(Builder.ROOM, _arg1, _arg2, _arg3, _arg7, _arg4, _arg5);
}
public static function ceiling(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=1, _arg5:Number=1, _arg6:gdkTexture=null){
if (_arg6 == null){
_arg6 = Builder.TEX_CEILING;
};
wblCeiling.section(Builder.ROOM, _arg1, _arg2, _arg3, _arg6, _arg4, _arg5);
}
public static function newSection(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number){
Builder.SECT_U = _arg1;
Builder.SECT_V = _arg2;
Builder.SECT_K = _arg3;
Builder.SECT_W = _arg4;
Builder.SECT_L = _arg5;
Builder.SECT_H = _arg6;
Builder.SECT_OPENS = [];
Builder.SECT_DOORS = [];
}
public static function wall(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1, _arg6:Number=1, _arg7:gdkTexture=null):Array{
var _local8:Number;
var _local9:Number;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
if (_arg7 == null){
_arg7 = Builder.TEX_WALL;
};
_local8 = 0;
_local9 = 0;
switch (_arg4){
case wblWall.W_E:
_local8 = 1;
_local9 = 0;
break;
case wblWall.E_W:
_local8 = -1;
_local9 = 0;
break;
case wblWall.S_N:
_local8 = 0;
_local9 = 1;
break;
case wblWall.N_S:
_local8 = 0;
_local9 = -1;
break;
};
_local10 = getPieces(_arg5);
_local13 = 0;
_local11 = 0;
while (_local11 < _local10.length) {
new wblWall(Builder.ROOM, (_arg1 + (_local13 * _local8)), (_arg2 + (_local13 * _local9)), _arg3, _arg4, _arg7, _local10[_local11]);
_local13 = (_local13 + _local10[_local11]);
_local11++;
};
}
public static function connection(_arg1:fpsRoom, _arg2:fpsRoom){
_arg1.connection(_arg2);
_arg2.connection(_arg1);
}
public static function createRoom(_arg1:fpsGame, _arg2:Number):fpsRoom{
Builder.ROOM = new fpsRoom(_arg1, _arg2);
return (Builder.ROOM);
}
}
}//package
Section 287
//ceil01 (ceil01)
package {
import flash.display.*;
public dynamic class ceil01 extends BitmapData {
public function ceil01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 288
//CheckBox_disabledIcon (CheckBox_disabledIcon)
package {
import flash.display.*;
public dynamic class CheckBox_disabledIcon extends MovieClip {
}
}//package
Section 289
//CheckBox_downIcon (CheckBox_downIcon)
package {
import flash.display.*;
public dynamic class CheckBox_downIcon extends MovieClip {
}
}//package
Section 290
//CheckBox_overIcon (CheckBox_overIcon)
package {
import flash.display.*;
public dynamic class CheckBox_overIcon extends MovieClip {
}
}//package
Section 291
//CheckBox_selectedDisabledIcon (CheckBox_selectedDisabledIcon)
package {
import flash.display.*;
public dynamic class CheckBox_selectedDisabledIcon extends MovieClip {
}
}//package
Section 292
//CheckBox_selectedDownIcon (CheckBox_selectedDownIcon)
package {
import flash.display.*;
public dynamic class CheckBox_selectedDownIcon extends MovieClip {
}
}//package
Section 293
//CheckBox_selectedOverIcon (CheckBox_selectedOverIcon)
package {
import flash.display.*;
public dynamic class CheckBox_selectedOverIcon extends MovieClip {
}
}//package
Section 294
//CheckBox_selectedUpIcon (CheckBox_selectedUpIcon)
package {
import flash.display.*;
public dynamic class CheckBox_selectedUpIcon extends MovieClip {
}
}//package
Section 295
//CheckBox_upIcon (CheckBox_upIcon)
package {
import flash.display.*;
public dynamic class CheckBox_upIcon extends MovieClip {
}
}//package
Section 296
//door01F (door01F)
package {
import flash.display.*;
public dynamic class door01F extends BitmapData {
public function door01F(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 297
//door01L (door01L)
package {
import flash.display.*;
public dynamic class door01L extends BitmapData {
public function door01L(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 298
//door01R (door01R)
package {
import flash.display.*;
public dynamic class door01R extends BitmapData {
public function door01R(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 299
//door03F (door03F)
package {
import flash.display.*;
public dynamic class door03F extends BitmapData {
public function door03F(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 300
//door03L (door03L)
package {
import flash.display.*;
public dynamic class door03L extends BitmapData {
public function door03L(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 301
//door03R (door03R)
package {
import flash.display.*;
public dynamic class door03R extends BitmapData {
public function door03R(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 302
//door04F (door04F)
package {
import flash.display.*;
public dynamic class door04F extends BitmapData {
public function door04F(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 303
//door04L (door04L)
package {
import flash.display.*;
public dynamic class door04L extends BitmapData {
public function door04L(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 304
//door04R (door04R)
package {
import flash.display.*;
public dynamic class door04R extends BitmapData {
public function door04R(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 305
//door05F (door05F)
package {
import flash.display.*;
public dynamic class door05F extends BitmapData {
public function door05F(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 306
//door06F (door06F)
package {
import flash.display.*;
public dynamic class door06F extends BitmapData {
public function door06F(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 307
//EggSplatter (EggSplatter)
package {
import gdk.fps.*;
import gdk.sprite.*;
import sandy.core.data.*;
import flash.geom.*;
public class EggSplatter {
private var SPRITE:gBitmapSprite;
private var SEQi:Number;
private var BP:Point;
private var GAME:fpsGame;
private var POS:Vector;
private var SEQ:Object;
public function EggSplatter(_arg1:Vector){
GAME = glo.bal.GAME;
POS = _arg1;
SEQ = GAME.BITMAPLIB.ALIENEGG;
SEQi = 3;
SPRITE = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.EGG_SPLATTER);
SPRITE.scale = 0.5;
SPRITE.autoCenter = false;
SPRITE.setBoundingSphereRadius(50);
SPRITE.BMP.y = -110;
BP = new Point(0, 0);
SPRITE.x = POS.x;
SPRITE.y = POS.y;
SPRITE.z = POS.z;
GAME.animation(this, 20, nextState);
}
public function zDepth(_arg1:Object){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:Object;
var _local6:*;
var _local7:Object;
var _local8:*;
_local2 = (POS.x - _arg1.x);
_local3 = (POS.z - _arg1.z);
_local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
_local5 = GAME.MAP.pos2uv(POS);
_local6 = GAME.MAP.zWalls(_local5.u, _local5.v);
for (_local8 in _local6) {
if (_local6[_local8].zDEPTH < _local4){
if (_local6[_local8].isFacing(_arg1)){
_local7 = GAME.MAP.stingRayBoxI(POS, _arg1, 25);
if (!_local7.intersect){
_local4 = (_local6[_local8].zDEPTH - 10);
};
};
};
};
SPRITE.forcedDepth = _local4;
}
public function nextState(_arg1:Number, _arg2:Number){
if (_arg1 >= _arg2){
destroy();
return;
};
SEQ.getFrame(SEQi, 2, (_arg1 - 1), SPRITE.BUFFER, BP);
zDepth(GAME.CAM.getPos());
}
public function destroy(){
if (SPRITE){
SPRITE.release();
};
SPRITE = null;
BP = null;
}
}
}//package
Section 308
//fEthnocentric (fEthnocentric)
package {
import flash.text.*;
public dynamic class fEthnocentric extends Font {
}
}//package
Section 309
//FilterAlpha2 (FilterAlpha2)
package {
import flash.filters.*;
public class FilterAlpha2 {
public var filter:ColorMatrixFilter;
public function FilterAlpha2(){
var _local1:Array;
super();
_local1 = new Array();
_local1 = _local1.concat([1, 0, 0, 0, 0]);
_local1 = _local1.concat([0, 1, 1, 0, 0]);
_local1 = _local1.concat([1, 1, 0, 0, 0]);
_local1 = _local1.concat([0, 0, 0, 1, 0]);
filter = new ColorMatrixFilter(_local1);
}
}
}//package
Section 310
//FilterKeyBlue (FilterKeyBlue)
package {
import flash.filters.*;
public class FilterKeyBlue {
public var filter:ColorMatrixFilter;
public function FilterKeyBlue(){
var _local1:Array;
super();
_local1 = new Array();
_local1 = _local1.concat([1, 0, 0, 0, 0]);
_local1 = _local1.concat([0, 1, 0, 0, 0]);
_local1 = _local1.concat([0, 1, 0, 0, 0]);
_local1 = _local1.concat([0, 0, 0, 1, 0]);
filter = new ColorMatrixFilter(_local1);
}
}
}//package
Section 311
//FilterKeyRed (FilterKeyRed)
package {
import flash.filters.*;
public class FilterKeyRed {
public var filter:ColorMatrixFilter;
public function FilterKeyRed(){
var _local1:Array;
super();
_local1 = new Array();
_local1 = _local1.concat([0, 1, 0, 0, 0]);
_local1 = _local1.concat([0, 0, 1, 0, 0]);
_local1 = _local1.concat([0, 0, 1, 0, 0]);
_local1 = _local1.concat([0, 0, 0, 1, 0]);
filter = new ColorMatrixFilter(_local1);
}
}
}//package
Section 312
//FilterKeyYellow (FilterKeyYellow)
package {
import flash.filters.*;
public class FilterKeyYellow {
public var filter:ColorMatrixFilter;
public function FilterKeyYellow(){
var _local1:Array;
super();
_local1 = new Array();
_local1 = _local1.concat([0, 1, 0, 0, 0]);
_local1 = _local1.concat([0, 1, 0, 0, 0]);
_local1 = _local1.concat([0, 0, 1, 0, 0]);
_local1 = _local1.concat([0, 0, 0, 1, 0]);
filter = new ColorMatrixFilter(_local1);
}
}
}//package
Section 313
//FilterMonster2 (FilterMonster2)
package {
import flash.filters.*;
public class FilterMonster2 {
public var filter:ColorMatrixFilter;
public function FilterMonster2(){
var _local1:Array;
super();
_local1 = new Array();
_local1 = _local1.concat([1, 0.5, 0, 0, 0]);
_local1 = _local1.concat([0, 1, 1, 0, 0]);
_local1 = _local1.concat([1, 0, 0, 0, 0]);
_local1 = _local1.concat([0, 0, 0, 1, 0]);
filter = new ColorMatrixFilter(_local1);
}
}
}//package
Section 314
//FilterScorpid2 (FilterScorpid2)
package {
import flash.filters.*;
public class FilterScorpid2 {
public var filter:ColorMatrixFilter;
public function FilterScorpid2(){
var _local1:Array;
super();
_local1 = new Array();
_local1 = _local1.concat([0, 1, 1, 0, 0]);
_local1 = _local1.concat([1, 0, 1, 0, 0]);
_local1 = _local1.concat([0, 1, 0, 0, 0]);
_local1 = _local1.concat([0, 0, 0, 1, 0]);
filter = new ColorMatrixFilter(_local1);
}
}
}//package
Section 315
//floor01 (floor01)
package {
import flash.display.*;
public dynamic class floor01 extends BitmapData {
public function floor01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 316
//focusRectSkin (focusRectSkin)
package {
import flash.display.*;
public dynamic class focusRectSkin extends MovieClip {
}
}//package
Section 317
//gameData (gameData)
package {
import flash.net.*;
public class gameData {
public var CLEVEL:Number;
public var AMMO_TOTAL:Array;
public var UNITSKILLED:Array;
public var XP_SKILLPOINTS:Number;
public var OBJDATA:Array;
public var OPT_CAM_SENS_PAN:Number;
public var DAMAGESUFFERED:Number;
public var ITEMSPICKED:Array;
public var OPT_CAM_SENS_TILT:Number;
public var EGGSDESTROYED:Number;
public var FOGOFWAR:Array;
public var OPT_MOUSEWHEEL_SENS:Number;
public var KILLS:Number;
public var DIFFICULTY:Number;
public var PLAYERID:String;
public var FOCUS:Number;
public var PLAYERPOS:Object;
public var DISCOVEREDEGGS:Array;
public var UPGRADES:Array;
public var HEALTH:Number;
public var XP_LEVEL:Number;
public var LASTMODIFIED:Date;
public var PLAYERDIR:Number;
public var TIMEELAPSED:Number;
public var PLAYERNAME:String;
public var KEYSPICKED:Array;
public var XP:Number;
public var MEDIKITS:Number;
public static var GAMEID:String = "qigames_alienslayer_12";
public function gameData(_arg1:String){
var _local2:Date;
super();
_local2 = new Date();
PLAYERID = String(_local2.getTime());
PLAYERID = (PLAYERID + String(Math.round((Math.random() * 99999))));
PLAYERNAME = _arg1;
LASTMODIFIED = new Date();
DIFFICULTY = 1;
CLEVEL = 1;
XP = 0;
XP_LEVEL = 1;
XP_SKILLPOINTS = 0;
AMMO_TOTAL = [999, 200, 0];
MEDIKITS = 0;
UPGRADES = [0, 0, 0, 0, 0, 0, 0, 0];
ITEMSPICKED = [];
KEYSPICKED = [];
UNITSKILLED = [];
DISCOVEREDEGGS = [];
FOGOFWAR = [];
TIMEELAPSED = 0;
DAMAGESUFFERED = 0;
PLAYERPOS = null;
PLAYERDIR = 0;
HEALTH = -1;
FOCUS = -1;
EGGSDESTROYED = 0;
KILLS = 0;
OPT_CAM_SENS_PAN = 0.5;
OPT_CAM_SENS_TILT = 0.5;
OPT_MOUSEWHEEL_SENS = 0.75;
OBJDATA = [];
}
public function getObjData(_arg1:String){
var _local2:*;
for (_local2 in OBJDATA) {
if (OBJDATA[_local2].id == _arg1){
return (OBJDATA[_local2]);
};
};
OBJDATA.push({id:_arg1});
}
public static function saveGames(_arg1:Array){
var _local2:SharedObject;
_local2 = SharedObject.getLocal(gameData.GAMEID, "/");
_local2.data.GAMES = _arg1;
_local2.flush();
}
public static function newGame(_arg1:String, _arg2:Number){
var _local3:SharedObject;
var _local4:Array;
var _local5:gameData;
_local3 = SharedObject.getLocal(gameData.GAMEID, "/");
_local4 = _local3.data.GAMES;
if (_local3.data.GAMES == undefined){
_local3.data.GAMES = new Array();
};
_local5 = new gameData(_arg1);
_local3.data.GAMES.push(_local5);
_local3.flush();
}
public static function getGames(){
var _local1:SharedObject;
var _local2:Array;
_local1 = SharedObject.getLocal(gameData.GAMEID, "/");
_local2 = _local1.data.GAMES;
if (_local1.data.GAMES == undefined){
_local1.data.GAMES = [];
_local1.flush();
};
return (_local1.data.GAMES);
}
public static function deleteGame(_arg1:Number){
var _local2:SharedObject;
var _local3:Array;
_local2 = SharedObject.getLocal(gameData.GAMEID, "/");
_local3 = _local2.data.GAMES;
if (_arg1 < 0){
return;
};
if (_arg1 > (_local3.length - 1)){
return;
};
_local3.splice(_arg1, 1);
_local2.flush();
}
public static function saveGame(_arg1:gameData){
glo.bal.CGAME.LASTMODIFIED = new Date();
gameData.saveGames(glo.bal.GAMES);
}
}
}//package
Section 318
//GameInterface (GameInterface)
package {
import flash.display.*;
import flash.events.*;
import flash.ui.*;
public class GameInterface extends MovieClip {
public var cursor_mc:MovieClip;
public var LEVELCOMPLETED:Boolean;
public var menu_btn:SimpleButton;
public var MOUSEOUTSIDE:Boolean;
public var INBRIEFING:Boolean;
public var GAMEPAUSED:Boolean;
public var MOUSEDOWN:Boolean;
public var GAMEOVER:Boolean;
public var PLAYER:aiPlayer;
public var map_btn:SimpleButton;
public function GameInterface(){
addFrameScript(0, frame1);
glo.bal.INTERFACE = this;
ALIVE = false;
MOUSEOUTSIDE = false;
GAMEPAUSED = false;
LEVELCOMPLETED = false;
GAMEOVER = false;
MOUSEDOWN = false;
INBRIEFING = true;
addEventListener(Event.ENTER_FRAME, evtEnterFrame);
addEventListener(MouseEvent.MOUSE_DOWN, evtMouseDown);
addEventListener(MouseEvent.MOUSE_UP, evtMouseUp);
addEventListener(MouseEvent.MOUSE_WHEEL, evtMouseWheel);
menu_btn.addEventListener("click", btnMenu);
map_btn.addEventListener("click", btnMap);
}
public function evtMouseWheel(_arg1:MouseEvent){
if (!ALIVE){
return;
};
glo.bal.PLAYER.evtMouseWheel(_arg1.delta);
}
public function resumePlay(){
GAMEPAUSED = false;
if (glo.bal.GAME != null){
glo.bal.GAME.resumePlay();
};
glo.bal.RADAR.visible = true;
glo.bal.AMMO.visible = true;
glo.bal.INVENTORY.visible = true;
glo.bal.MESSAGING.visible = true;
glo.bal.CLOCK.visible = true;
menu_btn.visible = true;
menu_btn.enabled = true;
map_btn.visible = true;
map_btn.enabled = true;
glo.bal.PAUSEMENU.deactivate();
glo.bal.LEVELMAP.deactivate();
glo.bal.HOWTOPLAY.deactivate();
}
public function backFromTips(){
INBRIEFING = false;
resumePlay();
}
public function init(){
ALIVE = true;
glo.bal.RADAR.visible = true;
glo.bal.AMMO.visible = true;
glo.bal.INVENTORY.visible = true;
glo.bal.MESSAGING.visible = true;
glo.bal.CLOCK.visible = true;
glo.bal.GAMECOMPLETED.visible = false;
if (glo.bal.CGAME.TIMEELAPSED == 0){
INBRIEFING = true;
glo.bal.BRIEFING.activate(this);
pausePlay();
} else {
INBRIEFING = false;
};
glo.bal.RADAR.init();
PLAYER = glo.bal.PLAYER;
}
public function destroy(){
ALIVE = false;
MOUSEOUTSIDE = false;
GAMEPAUSED = false;
LEVELCOMPLETED = false;
GAMEOVER = false;
MOUSEDOWN = false;
glo.bal.RADAR.visible = true;
glo.bal.AMMO.visible = true;
glo.bal.INVENTORY.visible = true;
glo.bal.MESSAGING.visible = true;
glo.bal.CLOCK.visible = true;
menu_btn.visible = true;
menu_btn.enabled = true;
map_btn.visible = true;
map_btn.enabled = true;
glo.bal.PAUSEMENU.deactivate();
glo.bal.LEVELMAP.deactivate();
glo.bal.HOWTOPLAY.deactivate();
glo.bal.LEVELUPAURA.deactivate();
glo.bal.INTERACTION.deactivate();
glo.bal.GAMEOVERSCREEN.deactivate();
glo.bal.GAMECOMPLETED.deactivate();
}
public function evtMouseDown(_arg1:MouseEvent){
if (!ALIVE){
return;
};
if (GAMEPAUSED){
return;
};
MOUSEOUTSIDE = false;
if ((((mouseX < 0)) || ((mouseX > 600)))){
MOUSEOUTSIDE = true;
};
if ((((mouseY < 50)) || ((mouseY > 350)))){
MOUSEOUTSIDE = true;
};
if (!MOUSEOUTSIDE){
glo.bal.PLAYER.beginFire();
MOUSEDOWN = true;
};
}
function frame1(){
stop();
}
public function backFromInstructions(){
if ((((glo.bal.CGAME.CLEVEL == 1)) && ((glo.bal.CGAME.TIMEELAPSED == 0)))){
glo.bal.ITEMSTOCOLLECT.activate(this);
} else {
INBRIEFING = false;
resumePlay();
};
}
public function pausePlay(){
GAMEPAUSED = true;
if (glo.bal.GAME){
glo.bal.GAME.pausePlay();
};
glo.bal.RADAR.visible = false;
glo.bal.AMMO.visible = false;
glo.bal.INVENTORY.visible = false;
glo.bal.MESSAGING.visible = false;
glo.bal.CLOCK.visible = false;
menu_btn.visible = false;
menu_btn.enabled = false;
map_btn.visible = false;
map_btn.enabled = false;
Mouse.show();
cursor_mc.visible = false;
}
public function backFromBriefing(){
if (glo.bal.CGAME.CLEVEL == 1){
glo.bal.HOWTOPLAY.activate(this);
} else {
INBRIEFING = false;
resumePlay();
};
}
function btnMap(_arg1:Event=null){
if (!ALIVE){
return;
};
glo.bal.LEVELMAP.activate();
pausePlay();
}
public function evtMouseUp(_arg1:MouseEvent){
if (!ALIVE){
return;
};
MOUSEDOWN = false;
glo.bal.PLAYER.stopFire();
}
public function evtEnterFrame(_arg1:Event){
if (!ALIVE){
return;
};
if (GAMEPAUSED){
return;
};
MOUSEOUTSIDE = false;
if ((((mouseX < 0)) || ((mouseX > 600)))){
MOUSEOUTSIDE = true;
};
if ((((mouseY < 50)) || ((mouseY > 350)))){
MOUSEOUTSIDE = true;
};
if (MOUSEOUTSIDE){
Mouse.show();
cursor_mc.visible = false;
MOUSEDOWN = false;
} else {
Mouse.hide();
cursor_mc.visible = true;
cursor_mc.x = (mouseX + glo.bal.PLAYER.CURSOR_DX);
cursor_mc.y = (mouseY + glo.bal.PLAYER.CURSOR_DY);
};
if (((LEVELCOMPLETED) || (GAMEOVER))){
Mouse.show();
cursor_mc.visible = false;
};
glo.bal.RADAR.nextState();
glo.bal.HEALTHBAR.nextState();
glo.bal.AIM.nextState();
glo.bal.SKILLS.nextState();
}
function btnMenu(_arg1:Event=null){
if (!ALIVE){
return;
};
glo.bal.PAUSEMENU.activate();
pausePlay();
}
public function backFromItemsToCollect(){
if ((((glo.bal.CGAME.CLEVEL == 1)) && ((glo.bal.CGAME.TIMEELAPSED == 0)))){
glo.bal.COMBATTIPS.activate(this);
} else {
INBRIEFING = false;
resumePlay();
};
}
}
}//package
Section 319
//gBitmapLib (gBitmapLib)
package {
public class gBitmapLib {
public var BOX_R:Object;
public var RPG_EXPLOSION:Object;
public var BOX_U:Object;
public var FILTER_KEY_B:Object;
public var EGG_BODY:Object;
public var FILTER_SCORPID2:Object;
public var FILTER_KEY_R:Object;
public var KEY_G:Object;
public var EGG_SPLATTER:Object;
public var BLOOD:Object;
public var FILTER_ALPHA2:Object;
public var GUN_SPARK:Object;
public var FILTER_MONSTER2:Object;
public var SCORPID1:Object;
public var FILTER_KEY_Y:Object;
public var ALIENEGG:Object;
public var EGG_TENTACLES:Object;
public var PORTAL:Object;
public var ALPHA1:Object;
public var MONSTER1:Object;
public var RPG_BULLET:Object;
public var BOX_H:Object;
public function gBitmapLib(){
ALPHA1 = glo.bal.SWF_UNITS;
MONSTER1 = glo.bal.SWF_UNITS;
SCORPID1 = glo.bal.SWF_UNITS;
ALIENEGG = glo.bal.SWF_UNITS;
BLOOD = glo.bal.SWF_FX;
GUN_SPARK = glo.bal.SWF_FX;
RPG_EXPLOSION = glo.bal.SWF_FX;
RPG_BULLET = glo.bal.SWF_OBJECTS;
PORTAL = glo.bal.SWF_OBJECTS;
BOX_U = glo.bal.SWF_OBJECTS;
BOX_R = glo.bal.SWF_OBJECTS;
BOX_H = glo.bal.SWF_OBJECTS;
KEY_G = glo.bal.SWF_OBJECTS;
FILTER_ALPHA2 = new FilterAlpha2();
FILTER_SCORPID2 = new FilterScorpid2();
FILTER_MONSTER2 = new FilterMonster2();
FILTER_KEY_R = new FilterKeyRed();
FILTER_KEY_B = new FilterKeyBlue();
FILTER_KEY_Y = new FilterKeyYellow();
}
}
}//package
Section 320
//glo (glo)
package {
public class glo {
public static var bal:Object = new Object();
}
}//package
Section 321
//GraphicPool (GraphicPool)
package {
import gdk.sprite.*;
import gdk.*;
import sandy.core.scenegraph.*;
import sandy.primitive.*;
public class GraphicPool {
public var PLANEXY_500x75:Number;
public var GRAPHICS:Array;
public var KEYGREEN:Number;
public var BOXGUN:Number;
public var PLANEXY_100x75:Number;
public var PLANEXY_600x75:Number;
public var PLANEZX_100x100:Number;
public var PLANEXY_200x75:Number;
public var ALPHA1:Number;
public var ALPHA2:Number;
public var MONSTER1:Number;
public var MONSTER2:Number;
public var BOXRPG:Number;
public var RPG_BULLET:Number;
public var SPRITE:Number;
public var PLANEZX_FC_HQ:Number;
public var BOXHEALTH:Number;
public var PLANEZX_FC_LQ:Number;
public var PLANEXY_300x75:Number;
public var SCORPID1:Number;
public var SCORPID2:Number;
public var ALIENEGG:Number;
public var EGG_SPLATTER:Number;
public var PLANEZX_FC_MQ:Number;
public var PLANEXY_400x75:Number;
public var GUN_SPARK:Number;
public var FREE:Array;
public var PORTAL:Number;
public var RPG_EXPLOSION:Number;
public static var C_SPRITE:Number = 0;
public static var C_SHAPE:Number = 0;
public function GraphicPool(){
var _local1:Number;
var _local2:*;
super();
_local1 = 0;
var _temp1 = _local1;
_local1 = (_local1 + 1);
SPRITE = _temp1;
var _temp2 = _local1;
_local1 = (_local1 + 1);
PLANEXY_100x75 = _temp2;
var _temp3 = _local1;
_local1 = (_local1 + 1);
PLANEXY_200x75 = _temp3;
var _temp4 = _local1;
_local1 = (_local1 + 1);
PLANEXY_300x75 = _temp4;
var _temp5 = _local1;
_local1 = (_local1 + 1);
PLANEXY_400x75 = _temp5;
var _temp6 = _local1;
_local1 = (_local1 + 1);
PLANEXY_500x75 = _temp6;
var _temp7 = _local1;
_local1 = (_local1 + 1);
PLANEXY_600x75 = _temp7;
var _temp8 = _local1;
_local1 = (_local1 + 1);
PLANEZX_100x100 = _temp8;
var _temp9 = _local1;
_local1 = (_local1 + 1);
PLANEZX_FC_HQ = _temp9;
var _temp10 = _local1;
_local1 = (_local1 + 1);
PLANEZX_FC_MQ = _temp10;
var _temp11 = _local1;
_local1 = (_local1 + 1);
PLANEZX_FC_LQ = _temp11;
var _temp12 = _local1;
_local1 = (_local1 + 1);
ALPHA1 = _temp12;
var _temp13 = _local1;
_local1 = (_local1 + 1);
ALPHA2 = _temp13;
var _temp14 = _local1;
_local1 = (_local1 + 1);
MONSTER1 = _temp14;
var _temp15 = _local1;
_local1 = (_local1 + 1);
MONSTER2 = _temp15;
var _temp16 = _local1;
_local1 = (_local1 + 1);
SCORPID1 = _temp16;
var _temp17 = _local1;
_local1 = (_local1 + 1);
SCORPID2 = _temp17;
var _temp18 = _local1;
_local1 = (_local1 + 1);
ALIENEGG = _temp18;
var _temp19 = _local1;
_local1 = (_local1 + 1);
EGG_SPLATTER = _temp19;
var _temp20 = _local1;
_local1 = (_local1 + 1);
GUN_SPARK = _temp20;
var _temp21 = _local1;
_local1 = (_local1 + 1);
RPG_BULLET = _temp21;
var _temp22 = _local1;
_local1 = (_local1 + 1);
RPG_EXPLOSION = _temp22;
var _temp23 = _local1;
_local1 = (_local1 + 1);
BOXGUN = _temp23;
var _temp24 = _local1;
_local1 = (_local1 + 1);
BOXRPG = _temp24;
var _temp25 = _local1;
_local1 = (_local1 + 1);
BOXHEALTH = _temp25;
var _temp26 = _local1;
_local1 = (_local1 + 1);
PORTAL = _temp26;
var _temp27 = _local1;
_local1 = (_local1 + 1);
KEYGREEN = _temp27;
GRAPHICS = [];
FREE = [];
_local2 = 0;
while (_local2 < _local1) {
GRAPHICS.push([]);
FREE.push(0);
_local2++;
};
}
private function createShape(_arg1:Number):Shape3D{
var _local2:Shape3D;
_local2 = null;
switch (_arg1){
case PLANEXY_100x75:
_local2 = new Plane3D(("shape_" + GraphicPool.C_SHAPE++), 75, 100, 1, 1, Plane3D.XY_ALIGNED);
break;
case PLANEXY_200x75:
_local2 = new Plane3D(("shape_" + GraphicPool.C_SHAPE++), 75, 200, 1, 1, Plane3D.XY_ALIGNED);
break;
case PLANEXY_300x75:
_local2 = new Plane3D(("shape_" + GraphicPool.C_SHAPE++), 75, 300, 1, 1, Plane3D.XY_ALIGNED);
break;
case PLANEXY_400x75:
_local2 = new Plane3D(("shape_" + GraphicPool.C_SHAPE++), 75, 400, 1, 1, Plane3D.XY_ALIGNED);
break;
case PLANEXY_500x75:
_local2 = new Plane3D(("shape_" + GraphicPool.C_SHAPE++), 75, 500, 1, 1, Plane3D.XY_ALIGNED);
break;
case PLANEXY_600x75:
_local2 = new Plane3D(("shape_" + GraphicPool.C_SHAPE++), 75, 600, 1, 1, Plane3D.XY_ALIGNED);
break;
case PLANEZX_100x100:
_local2 = new Plane3D(("shape_" + GraphicPool.C_SHAPE++), 100, 100, 1, 1, Plane3D.ZX_ALIGNED);
break;
case PLANEZX_FC_HQ:
_local2 = new Plane3D(("shape_" + GraphicPool.C_SHAPE++), 300, 300, 1, 1, Plane3D.ZX_ALIGNED);
break;
case PLANEZX_FC_MQ:
_local2 = new Plane3D(("shape_" + GraphicPool.C_SHAPE++), 900, 900, 1, 1, Plane3D.ZX_ALIGNED);
break;
case PLANEZX_FC_LQ:
_local2 = new Plane3D(("shape_" + GraphicPool.C_SHAPE++), 3100, 3100, 1, 1, Plane3D.ZX_ALIGNED);
break;
default:
trace("GraphicPool : undefined shape ID");
};
return (_local2);
}
public function objectReleased(_arg1:Number){
var _local2 = FREE;
var _local3 = _arg1;
var _local4 = (_local2[_local3] + 1);
_local2[_local3] = _local4;
}
public function getBitmapSprite(_arg1:Number):gBitmapSprite{
var _local2:String;
var _local3:gBitmapSprite;
_local2 = ("sprite_" + GraphicPool.C_SPRITE++);
_local3 = null;
switch (_arg1){
case EGG_SPLATTER:
_local3 = new gBitmapSprite(_local2, 200, 200);
break;
case GUN_SPARK:
_local3 = new gBitmapSprite(_local2, 200, 150);
break;
case RPG_EXPLOSION:
_local3 = new gBitmapSprite(_local2, 200, 200);
break;
case RPG_BULLET:
_local3 = new gBitmapSprite(_local2, 40, 40);
break;
case PORTAL:
_local3 = new gBitmapSprite(_local2, 60, 150);
break;
case BOXGUN:
_local3 = new gBitmapSprite(_local2, 150, 150);
break;
case BOXRPG:
_local3 = new gBitmapSprite(_local2, 150, 150);
break;
case BOXHEALTH:
_local3 = new gBitmapSprite(_local2, 150, 150);
break;
case KEYGREEN:
_local3 = new gBitmapSprite(_local2, 100, 100);
break;
case ALPHA1:
_local3 = new gBitmapSprite(_local2, 250, 250);
break;
case ALPHA2:
_local3 = new gBitmapSprite(_local2, 250, 250);
break;
case MONSTER1:
_local3 = new gBitmapSprite(_local2, 240, 160);
break;
case MONSTER2:
_local3 = new gBitmapSprite(_local2, 240, 160);
break;
case SCORPID1:
_local3 = new gBitmapSprite(_local2, 280, 260);
break;
case SCORPID2:
_local3 = new gBitmapSprite(_local2, 280, 260);
break;
case ALIENEGG:
_local3 = new gBitmapSprite(_local2, 160, 160);
break;
default:
trace(("GraphicPool : undefined sprite ID : " + _arg1));
};
return (_local3);
}
public function getShape(_arg1:Number):gdkShape{
var _local2:*;
var _local3:*;
var _local4:*;
if (FREE[_arg1] > 0){
for (_local4 in GRAPHICS[_arg1]) {
if (GRAPHICS[_arg1][_local4].free){
GRAPHICS[_arg1][_local4].take();
return (GRAPHICS[_arg1][_local4]);
};
};
};
_local2 = createShape(_arg1);
_local3 = new gdkShape(this, _arg1, _local2);
_local3.take();
GRAPHICS[_arg1].push(_local3);
return (_local3);
}
}
}//package
Section 322
//gTexLib (gTexLib)
package {
import gdk.*;
public class gTexLib {
public var FLOOR1:gdkTexture;
public var FLOOR2:gdkTexture;
public var CEIL2:gdkTexture;
public var DOOR1_F:gdkTexture;
public var DOOR3_L:gdkTexture;
public var CEIL1:gdkTexture;
public var DOOR1_R:gdkTexture;
public var DOOR1_L:gdkTexture;
public var DOOR4_R:gdkTexture;
public var DOOR3_F:gdkTexture;
public var CEIL3:gdkTexture;
public var DOOR6_F:gdkTexture;
public var FLOOR3:gdkTexture;
public var DOOR4_L:gdkTexture;
public var DOOR4_F:gdkTexture;
public var WALL1:gdkTexture;
public var WALL2:gdkTexture;
public var DOOR3_R:gdkTexture;
public var DOOR5_F:gdkTexture;
public function gTexLib(){
glo.bal.TEXLIB = this;
FLOOR1 = new gdkBitmapTexture(new floor01(0, 0), false);
FLOOR2 = new gdkBitmapTexture(new floor01(0, 0), false);
FLOOR3 = new gdkBitmapTexture(new floor01(0, 0), false);
WALL1 = new wallTexture(new wall01(0, 0));
WALL2 = new wallTexture(new wall02(0, 0));
CEIL1 = new gdkBitmapTexture(new ceil01(0, 0), false);
CEIL2 = new gdkBitmapTexture(new ceil01(0, 0), false);
CEIL3 = new gdkBitmapTexture(new ceil01(0, 0), false);
if (glo.bal.PC_OPTION == 1){
DOOR1_F = new gdkBitmapTexture(new door01F(0, 0), false);
DOOR1_L = new gdkBitmapTexture(new door01L(0, 0), false);
DOOR1_R = new gdkBitmapTexture(new door01R(0, 0), false);
DOOR3_F = new gdkBitmapTexture(new door03F(0, 0), false);
DOOR3_L = new gdkBitmapTexture(new door03L(0, 0), false);
DOOR3_R = new gdkBitmapTexture(new door03R(0, 0), false);
DOOR4_F = new gdkBitmapTexture(new door04F(0, 0), false);
DOOR4_L = new gdkBitmapTexture(new door04L(0, 0), false);
DOOR4_R = new gdkBitmapTexture(new door04R(0, 0), false);
DOOR5_F = new gdkBitmapTexture(new door05F(0, 0), false);
DOOR6_F = new gdkBitmapTexture(new door06F(0, 0), false);
} else {
DOOR1_F = new gdkBitmapTexture(new wire_door01F(0, 0), false);
DOOR1_L = new gdkBitmapTexture(new wire_door01L(0, 0), false);
DOOR1_R = new gdkBitmapTexture(new wire_door01R(0, 0), false);
DOOR3_F = new gdkBitmapTexture(new wire_door03F(0, 0), false);
DOOR3_L = new gdkBitmapTexture(new wire_door03L(0, 0), false);
DOOR3_R = new gdkBitmapTexture(new wire_door03R(0, 0), false);
DOOR4_F = new gdkBitmapTexture(new wire_door04F(0, 0), false);
DOOR4_L = DOOR3_L;
DOOR4_R = DOOR3_R;
DOOR5_F = new gdkBitmapTexture(new wire_door05F(0, 0), false);
DOOR6_F = new gdkBitmapTexture(new wire_door06F(0, 0), false);
};
}
}
}//package
Section 323
//GunSpark (GunSpark)
package {
import gdk.fps.*;
import gdk.sprite.*;
import sandy.core.data.*;
import flash.geom.*;
public class GunSpark {
private var SPRITE:gBitmapSprite;
private var SEQi:Number;
private var BP:Point;
private var GAME:fpsGame;
private var POS:Vector;
private var SEQ:Object;
public function GunSpark(_arg1:Vector){
GAME = glo.bal.GAME;
POS = _arg1;
SEQ = GAME.BITMAPLIB.GUN_SPARK;
SEQi = 0;
SPRITE = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.GUN_SPARK);
SPRITE.scale = 0.25;
SPRITE.autoCenter = false;
SPRITE.setBoundingSphereRadius(50);
SPRITE.BMP.y = -50;
BP = new Point(0, 0);
SPRITE.x = POS.x;
SPRITE.y = POS.y;
SPRITE.z = POS.z;
GAME.animation(this, 10, nextState);
}
public function nextState(_arg1:Number, _arg2:Number){
if (_arg1 >= _arg2){
destroy();
return;
};
SEQ.getFrame(SEQi, (_arg1 - 1), SPRITE.BUFFER, BP);
SPRITE.forcedDepth = 1;
}
public function destroy(){
if (SPRITE){
SPRITE.release();
};
SPRITE = null;
BP = null;
}
}
}//package
Section 324
//hzAlienEgg (hzAlienEgg)
package {
public class hzAlienEgg extends UnitHitZone {
public function hzAlienEgg(){
var _local1:*;
super(1);
insertPart("chest", 1);
_local1 = 0;
while (_local1 < 36) {
insertZone(0, 0, 4, 6, 75, 73);
_local1++;
};
}
}
}//package
Section 325
//hzAlpha1 (hzAlpha1)
package {
public class hzAlpha1 extends UnitHitZone {
public function hzAlpha1(){
super(3);
insertPart("head", 2.5);
insertPart("chest", 1);
insertPart("hips", 0.1);
insertZone(0, 0, 115, 63, 30, 40);
insertZone(0, 0, 115, 65, 30, 40);
insertZone(0, 0, 114, 67, 30, 40);
insertZone(0, 0, 113, 68, 30, 40);
insertZone(0, 0, 112, 70, 30, 40);
insertZone(0, 0, 110, 71, 30, 40);
insertZone(0, 0, 109, 73, 30, 40);
insertZone(0, 0, 108, 74, 30, 40);
insertZone(0, 0, 107, 75, 30, 40);
insertZone(0, 0, 108, 74, 30, 40);
insertZone(0, 0, 108, 75, 30, 40);
insertZone(0, 0, 108, 76, 30, 40);
insertZone(0, 0, 108, 77, 30, 40);
insertZone(0, 0, 108, 78, 30, 40);
insertZone(0, 0, 108, 77, 30, 40);
insertZone(0, 0, 109, 75, 30, 40);
insertZone(0, 0, 110, 75, 30, 40);
insertZone(0, 0, 111, 74, 30, 40);
insertZone(0, 0, 113, 74, 30, 40);
insertZone(0, 0, 113, 73, 30, 40);
insertZone(0, 0, 113, 73, 30, 40);
insertZone(0, 0, 113, 74, 30, 40);
insertZone(0, 0, 111, 74, 30, 40);
insertZone(0, 0, 110, 75, 30, 40);
insertZone(0, 0, 109, 75, 30, 40);
insertZone(0, 0, 108, 77, 30, 40);
insertZone(0, 0, 108, 78, 30, 40);
insertZone(0, 0, 108, 77, 30, 40);
insertZone(0, 0, 108, 76, 30, 40);
insertZone(0, 0, 108, 75, 30, 40);
insertZone(0, 0, 108, 74, 30, 40);
insertZone(0, 0, 107, 75, 30, 40);
insertZone(0, 0, 108, 74, 30, 40);
insertZone(0, 0, 109, 73, 30, 40);
insertZone(0, 0, 110, 71, 30, 40);
insertZone(0, 0, 112, 70, 30, 40);
insertZone(0, 0, 113, 68, 30, 40);
insertZone(0, 0, 114, 67, 30, 40);
insertZone(0, 0, 115, 65, 30, 40);
insertZone(0, 0, 115, 63, 30, 40);
insertZone(0, 1, 96, 76, 50, 55);
insertZone(0, 1, 95, 77, 50, 55);
insertZone(0, 1, 94, 77, 50, 55);
insertZone(0, 1, 94, 77, 50, 55);
insertZone(0, 1, 94, 79, 50, 55);
insertZone(0, 1, 94, 80, 50, 55);
insertZone(0, 1, 94, 82, 50, 55);
insertZone(0, 1, 94, 83, 50, 55);
insertZone(0, 1, 94, 84, 50, 55);
insertZone(0, 1, 93, 83, 50, 55);
insertZone(0, 1, 93, 84, 50, 55);
insertZone(0, 1, 93, 85, 50, 55);
insertZone(0, 1, 93, 84, 50, 55);
insertZone(0, 1, 93, 85, 50, 55);
insertZone(0, 1, 94, 85, 50, 55);
insertZone(0, 1, 95, 85, 50, 55);
insertZone(0, 1, 95, 85, 50, 55);
insertZone(0, 1, 96, 86, 50, 55);
insertZone(0, 1, 96, 85, 50, 55);
insertZone(0, 1, 96, 85, 50, 55);
insertZone(0, 1, 96, 85, 50, 55);
insertZone(0, 1, 96, 85, 50, 55);
insertZone(0, 1, 96, 86, 50, 55);
insertZone(0, 1, 95, 85, 50, 55);
insertZone(0, 1, 95, 85, 50, 55);
insertZone(0, 1, 94, 85, 50, 55);
insertZone(0, 1, 93, 85, 50, 55);
insertZone(0, 1, 93, 84, 50, 55);
insertZone(0, 1, 93, 85, 50, 55);
insertZone(0, 1, 93, 84, 50, 55);
insertZone(0, 1, 93, 83, 50, 55);
insertZone(0, 1, 94, 84, 50, 55);
insertZone(0, 1, 94, 83, 50, 55);
insertZone(0, 1, 94, 82, 50, 55);
insertZone(0, 1, 94, 80, 50, 55);
insertZone(0, 1, 94, 79, 50, 55);
insertZone(0, 1, 94, 77, 50, 55);
insertZone(0, 1, 94, 77, 50, 55);
insertZone(0, 1, 95, 77, 50, 55);
insertZone(0, 1, 96, 76, 50, 55);
insertZone(0, 2, 74.5, 127, 80, 30);
insertZone(0, 2, 74, 129, 80, 30);
insertZone(0, 2, 71.5, 130, 80, 30);
insertZone(0, 2, 71.5, 129.5, 80, 30);
insertZone(0, 2, 72, 130.5, 80, 30);
insertZone(0, 2, 71, 130.5, 80, 30);
insertZone(0, 2, 71, 131.5, 80, 30);
insertZone(0, 2, 71, 132.5, 80, 30);
insertZone(0, 2, 71.5, 133.5, 80, 30);
insertZone(0, 2, 70.5, 133.5, 80, 30);
insertZone(0, 2, 70.5, 134, 80, 30);
insertZone(0, 2, 70.5, 134.5, 80, 30);
insertZone(0, 2, 70.5, 135, 80, 30);
insertZone(0, 2, 70.5, 134.5, 80, 30);
insertZone(0, 2, 70.5, 134.5, 80, 30);
insertZone(0, 2, 71, 134.5, 80, 30);
insertZone(0, 2, 71, 134.5, 80, 30);
insertZone(0, 2, 72, 134.5, 80, 30);
insertZone(0, 2, 72.5, 134.5, 80, 30);
insertZone(0, 2, 73, 134.5, 80, 30);
insertZone(0, 2, 73, 134.5, 80, 30);
insertZone(0, 2, 72.5, 134.5, 80, 30);
insertZone(0, 2, 72, 134.5, 80, 30);
insertZone(0, 2, 71, 134.5, 80, 30);
insertZone(0, 2, 71, 134.5, 80, 30);
insertZone(0, 2, 70.5, 134.5, 80, 30);
insertZone(0, 2, 70.5, 134.5, 80, 30);
insertZone(0, 2, 70.5, 135, 80, 30);
insertZone(0, 2, 70.5, 134.5, 80, 30);
insertZone(0, 2, 70.5, 134, 80, 30);
insertZone(0, 2, 70.5, 133.5, 80, 30);
insertZone(0, 2, 71.5, 133.5, 80, 30);
insertZone(0, 2, 71, 132.5, 80, 30);
insertZone(0, 2, 71, 131.5, 80, 30);
insertZone(0, 2, 71, 130.5, 80, 30);
insertZone(0, 2, 72, 130.5, 80, 30);
insertZone(0, 2, 71.5, 129.5, 80, 30);
insertZone(0, 2, 71.5, 130, 80, 30);
insertZone(0, 2, 74, 129, 80, 30);
insertZone(0, 2, 74.5, 127, 80, 30);
insertZone(1, 0, 110, 79, 25, 35);
insertZone(1, 0, 110, 59, 25, 35);
insertZone(1, 0, 110, 46, 25, 35);
insertZone(1, 0, 110, 52, 25, 35);
insertZone(1, 0, 110, 71, 25, 35);
insertZone(1, 0, 110, 76, 25, 35);
insertZone(1, 0, 110, 60, 25, 35);
insertZone(1, 0, 110, 49, 25, 35);
insertZone(1, 0, 110, 54, 25, 35);
insertZone(1, 0, 110, 66, 25, 35);
insertZone(1, 1, 102, 87, 45, 55);
insertZone(1, 1, 102, 69, 45, 55);
insertZone(1, 1, 102, 59, 45, 55);
insertZone(1, 1, 102, 66, 45, 55);
insertZone(1, 1, 102, 80, 45, 55);
insertZone(1, 1, 102, 83, 45, 55);
insertZone(1, 1, 102, 69, 45, 55);
insertZone(1, 1, 102, 61, 45, 55);
insertZone(1, 1, 102, 65, 45, 55);
insertZone(1, 1, 102, 76, 45, 55);
insertZone(1, 2, 104, 138, 45, 30);
insertZone(1, 2, 103, 122, 45, 30);
insertZone(1, 2, 102, 111, 45, 30);
insertZone(1, 2, 102, 118, 45, 30);
insertZone(1, 2, 101, 132, 45, 30);
insertZone(1, 2, 101, 135, 45, 30);
insertZone(1, 2, 101, 121, 45, 30);
insertZone(1, 2, 101, 114, 45, 30);
insertZone(1, 2, 101, 117, 45, 30);
insertZone(1, 2, 102, 128, 45, 30);
insertZone(2, 0, 113.5, 53.5, 25, 35);
insertZone(2, 0, 102.5, 54.5, 25, 35);
insertZone(2, 0, 89.5, 56.5, 25, 35);
insertZone(2, 0, 80.5, 53.5, 25, 35);
insertZone(2, 0, 95.5, 46.5, 25, 35);
insertZone(2, 0, 120.5, 41.5, 25, 35);
insertZone(2, 0, 129.5, 47.5, 25, 35);
insertZone(2, 0, 136.5, 61.5, 25, 35);
insertZone(2, 0, 144.5, 72.5, 25, 35);
insertZone(2, 0, 139.5, 71.5, 25, 35);
insertZone(2, 0, 132.5, 59.5, 25, 35);
insertZone(2, 0, 127.5, 59.5, 25, 35);
insertZone(2, 0, 118.5, 57.5, 25, 35);
insertZone(2, 0, 106.5, 65.5, 25, 35);
insertZone(2, 0, 103.5, 64.5, 25, 35);
insertZone(2, 0, 110.45, 56.5, 25, 35);
insertZone(2, 0, 113.45, 54.5, 25, 35);
insertZone(2, 0, 113.45, 54.5, 25, 35);
insertZone(2, 0, 113.45, 54.5, 25, 35);
insertZone(2, 0, 113.45, 52.5, 25, 35);
insertZone(2, 0, 113.45, 52.5, 25, 35);
insertZone(2, 0, 113.45, 52.5, 25, 35);
insertZone(2, 0, 113.45, 52.5, 25, 35);
insertZone(2, 0, 113.45, 52.5, 25, 35);
insertZone(2, 0, 113.45, 52.5, 25, 35);
insertZone(2, 0, 113.45, 52.5, 25, 35);
insertZone(2, 0, 113.45, 52.5, 25, 35);
insertZone(2, 0, 113.45, 52.5, 25, 35);
insertZone(2, 1, 101.45, 68, 45, 55);
insertZone(2, 1, 99.45, 68, 45, 55);
insertZone(2, 1, 94.45, 68, 45, 55);
insertZone(2, 1, 94.45, 68, 45, 55);
insertZone(2, 1, 94.45, 67, 45, 55);
insertZone(2, 1, 101.45, 66, 45, 55);
insertZone(2, 1, 104.45, 66, 45, 55);
insertZone(2, 1, 103.45, 68, 45, 55);
insertZone(2, 1, 109.45, 73, 45, 55);
insertZone(2, 1, 109.45, 73, 45, 55);
insertZone(2, 1, 109.45, 70, 45, 55);
insertZone(2, 1, 105.45, 70, 45, 55);
insertZone(2, 1, 103.45, 70, 45, 55);
insertZone(2, 1, 99.45, 73, 45, 55);
insertZone(2, 1, 97.45, 73, 45, 55);
insertZone(2, 1, 100.45, 71, 45, 55);
insertZone(2, 1, 100.45, 69, 45, 55);
insertZone(2, 1, 100.45, 69, 45, 55);
insertZone(2, 1, 100.45, 68, 45, 55);
insertZone(2, 1, 100.45, 69, 45, 55);
insertZone(2, 1, 100.45, 69, 45, 55);
insertZone(2, 1, 100.45, 69, 45, 55);
insertZone(2, 1, 100.45, 69, 45, 55);
insertZone(2, 1, 100.45, 69, 45, 55);
insertZone(2, 1, 100.45, 69, 45, 55);
insertZone(2, 1, 100.45, 69, 45, 55);
insertZone(2, 1, 100.45, 69, 45, 55);
insertZone(2, 1, 100.45, 69, 45, 55);
insertZone(2, 2, 99, 120.4, 50, 30);
insertZone(2, 2, 98, 120.4, 50, 30);
insertZone(2, 2, 97, 120.4, 50, 30);
insertZone(2, 2, 98, 119.4, 50, 30);
insertZone(2, 2, 98, 119.4, 50, 30);
insertZone(2, 2, 98, 118.4, 50, 30);
insertZone(2, 2, 98, 118.4, 50, 30);
insertZone(2, 2, 97, 120.4, 50, 30);
insertZone(2, 2, 97, 125.4, 50, 30);
insertZone(2, 2, 97, 125.4, 50, 30);
insertZone(2, 2, 97, 121.4, 50, 30);
insertZone(2, 2, 98, 121.4, 50, 30);
insertZone(2, 2, 99, 122.4, 50, 30);
insertZone(2, 2, 98, 124.4, 50, 30);
insertZone(2, 2, 98, 125.4, 50, 30);
insertZone(2, 2, 98, 122.4, 50, 30);
insertZone(2, 2, 98, 120.4, 50, 30);
insertZone(2, 2, 98, 121.4, 50, 30);
insertZone(2, 2, 98, 120.4, 50, 30);
insertZone(2, 2, 98, 120.4, 50, 30);
insertZone(2, 2, 98, 120.4, 50, 30);
insertZone(2, 2, 98, 120.4, 50, 30);
insertZone(2, 2, 98, 120.4, 50, 30);
insertZone(2, 2, 98, 120.4, 50, 30);
insertZone(2, 2, 98, 120.4, 50, 30);
insertZone(2, 2, 98, 120.4, 50, 30);
insertZone(2, 2, 98, 120.4, 50, 30);
insertZone(2, 2, 98, 120.4, 50, 30);
}
}
}//package
Section 326
//hzMonster1 (hzMonster1)
package {
public class hzMonster1 extends UnitHitZone {
public function hzMonster1(){
super(3);
insertPart("head", 2.5);
insertPart("chest", 1);
insertZone(0, 0, 117, 71, 25, 50);
insertZone(0, 0, 117, 71, 25, 50);
insertZone(0, 0, 117, 71, 25, 50);
insertZone(0, 0, 117, 71, 25, 50);
insertZone(0, 0, 118, 71, 25, 50);
insertZone(0, 0, 118, 72, 25, 50);
insertZone(0, 0, 119, 72, 25, 50);
insertZone(0, 0, 122, 71, 25, 50);
insertZone(0, 0, 125, 71, 25, 50);
insertZone(0, 0, 130, 70, 25, 50);
insertZone(0, 0, 136, 68, 25, 50);
insertZone(0, 0, 139, 66, 25, 50);
insertZone(0, 0, 141, 65, 25, 50);
insertZone(0, 0, 142, 64, 25, 50);
insertZone(0, 0, 141, 63, 25, 50);
insertZone(0, 0, 139, 63, 25, 50);
insertZone(0, 0, 135, 63, 25, 50);
insertZone(0, 0, 128, 66, 25, 50);
insertZone(0, 0, 119, 67, 25, 50);
insertZone(0, 0, 109, 67, 25, 50);
insertZone(0, 0, 100, 66, 25, 50);
insertZone(0, 0, 94, 64, 25, 50);
insertZone(0, 0, 90, 63, 25, 50);
insertZone(0, 0, 90, 63, 25, 50);
insertZone(0, 0, 94, 64, 25, 50);
insertZone(0, 0, 100, 66, 25, 50);
insertZone(0, 0, 109, 67, 25, 50);
insertZone(0, 0, 119, 67, 25, 50);
insertZone(0, 0, 128, 66, 25, 50);
insertZone(0, 0, 135, 63, 25, 50);
insertZone(0, 0, 139, 63, 25, 50);
insertZone(0, 0, 141, 63, 25, 50);
insertZone(0, 0, 142, 64, 25, 50);
insertZone(0, 0, 141, 65, 25, 50);
insertZone(0, 0, 139, 66, 25, 50);
insertZone(0, 0, 136, 68, 25, 50);
insertZone(0, 0, 130, 70, 25, 50);
insertZone(0, 0, 125, 71, 25, 50);
insertZone(0, 0, 122, 71, 25, 50);
insertZone(0, 0, 119, 72, 25, 50);
insertZone(0, 0, 118, 72, 25, 50);
insertZone(0, 0, 118, 71, 25, 50);
insertZone(0, 0, 117, 71, 25, 50);
insertZone(0, 0, 117, 71, 25, 50);
insertZone(0, 0, 117, 71, 25, 50);
insertZone(0, 0, 117, 71, 25, 50);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 108, 37, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(0, 1, 109, 36, 45, 55);
insertZone(1, 0, 112, 70, 25, 50);
insertZone(1, 0, 117, 68, 25, 50);
insertZone(1, 0, 130, 58, 25, 50);
insertZone(1, 0, 138, 54, 25, 50);
insertZone(1, 0, 140, 62, 25, 50);
insertZone(1, 0, 137, 71, 25, 50);
insertZone(1, 0, 129, 66, 25, 50);
insertZone(1, 0, 120, 58, 25, 50);
insertZone(1, 0, 113, 55, 25, 50);
insertZone(1, 0, 112, 62, 25, 50);
insertZone(1, 1, 107, 35, 45, 55);
insertZone(1, 1, 109, 37, 45, 55);
insertZone(1, 1, 113, 26, 45, 55);
insertZone(1, 1, 113, 21, 45, 55);
insertZone(1, 1, 115, 28, 45, 55);
insertZone(1, 1, 113, 32, 45, 55);
insertZone(1, 1, 111, 29, 45, 55);
insertZone(1, 1, 111, 24, 45, 55);
insertZone(1, 1, 111, 24, 45, 55);
insertZone(1, 1, 109, 28, 45, 55);
insertZone(2, 0, 112, 69, 25, 50);
insertZone(2, 0, 128, 69, 25, 50);
insertZone(2, 0, 141, 69, 25, 50);
insertZone(2, 0, 157, 65, 25, 45);
insertZone(2, 0, 176, 66, 25, 45);
insertZone(2, 0, 178, 69, 25, 45);
insertZone(2, 0, 139, 75, 25, 45);
insertZone(2, 0, 103, 82, 30, 40);
insertZone(2, 0, 80, 82, 25, 40);
insertZone(2, 0, 67, 75, 25, 40);
insertZone(2, 0, 61, 63, 25, 40);
insertZone(2, 0, 50, 58, 25, 40);
insertZone(2, 0, 43, 56, 25, 45);
insertZone(2, 0, 57, 59, 25, 45);
insertZone(2, 0, 92, 63, 25, 45);
insertZone(2, 0, 145, 66, 25, 50);
insertZone(2, 0, 174, 65, 25, 40);
insertZone(2, 0, 186, 63, 25, 45);
insertZone(2, 0, 184, 65, 25, 45);
insertZone(2, 0, 160, 60, 25, 45);
insertZone(2, 0, 123, 60, 35, 45);
insertZone(2, 0, 112, 64, 25, 45);
insertZone(2, 0, 108, 67, 25, 50);
insertZone(2, 0, 111, 70, 25, 50);
insertZone(2, 0, 111, 70, 25, 50);
insertZone(2, 0, 111, 70, 25, 50);
insertZone(2, 0, 111, 70, 25, 50);
insertZone(2, 0, 111, 70, 25, 50);
insertZone(2, 0, 111, 70, 25, 50);
insertZone(2, 0, 111, 70, 25, 50);
insertZone(2, 0, 111, 70, 25, 50);
insertZone(2, 0, 111, 70, 25, 50);
insertZone(2, 1, 107, 37, 45, 50);
insertZone(2, 1, 112, 37, 45, 50);
insertZone(2, 1, 114, 37, 45, 50);
insertZone(2, 1, 119, 37, 45, 50);
insertZone(2, 1, 131, 36, 45, 50);
insertZone(2, 1, 130, 36, 55, 50);
insertZone(2, 1, 126, 36, 55, 50);
insertZone(2, 1, 119, 45, 60, 60);
insertZone(2, 1, 102, 49, 60, 60);
insertZone(2, 1, 89, 46, 60, 60);
insertZone(2, 1, 81, 40, 70, 60);
insertZone(2, 1, 73, 35, 75, 60);
insertZone(2, 1, 67, 31, 75, 60);
insertZone(2, 1, 79, 31, 60, 60);
insertZone(2, 1, 95, 32, 50, 50);
insertZone(2, 1, 107, 40, 50, 50);
insertZone(2, 1, 116, 39, 60, 50);
insertZone(2, 1, 120, 39, 65, 50);
insertZone(2, 1, 119, 37, 65, 50);
insertZone(2, 1, 116, 34, 65, 50);
insertZone(2, 1, 111, 36, 60, 50);
insertZone(2, 1, 106, 39, 60, 50);
insertZone(2, 1, 110, 40, 50, 50);
insertZone(2, 1, 106, 41, 50, 50);
insertZone(2, 1, 106, 41, 50, 50);
insertZone(2, 1, 106, 41, 50, 50);
insertZone(2, 1, 106, 41, 50, 50);
insertZone(2, 1, 106, 41, 50, 50);
insertZone(2, 1, 106, 41, 50, 50);
insertZone(2, 1, 106, 41, 50, 50);
insertZone(2, 1, 106, 41, 50, 50);
insertZone(2, 1, 106, 41, 50, 50);
}
}
}//package
Section 327
//hzScorpid1 (hzScorpid1)
package {
public class hzScorpid1 extends UnitHitZone {
public function hzScorpid1(){
super(3);
insertPart("head", 2.5);
insertPart("chest", 1);
insertZone(0, 0, 125, 77, 30, 20);
insertZone(0, 0, 123, 76, 30, 20);
insertZone(0, 0, 120, 74, 30, 20);
insertZone(0, 0, 118, 72, 30, 20);
insertZone(0, 0, 116, 73, 30, 20);
insertZone(0, 0, 115, 75, 30, 20);
insertZone(0, 0, 114, 77, 30, 20);
insertZone(0, 0, 113, 76, 30, 20);
insertZone(0, 0, 112, 75, 30, 20);
insertZone(0, 0, 112, 74, 30, 20);
insertZone(0, 0, 112, 74, 30, 20);
insertZone(0, 0, 114, 75, 30, 20);
insertZone(0, 0, 114, 77, 30, 20);
insertZone(0, 0, 117, 79, 30, 20);
insertZone(0, 0, 120, 79, 30, 20);
insertZone(0, 0, 123, 76, 30, 20);
insertZone(0, 0, 128, 75, 30, 20);
insertZone(0, 0, 130, 74, 30, 20);
insertZone(0, 0, 133, 75, 30, 20);
insertZone(0, 0, 135, 78, 30, 20);
insertZone(0, 0, 135, 78, 30, 20);
insertZone(0, 0, 133, 75, 30, 20);
insertZone(0, 0, 130, 74, 30, 20);
insertZone(0, 0, 128, 75, 30, 20);
insertZone(0, 0, 123, 76, 30, 20);
insertZone(0, 0, 120, 79, 30, 20);
insertZone(0, 0, 117, 79, 30, 20);
insertZone(0, 0, 114, 77, 30, 20);
insertZone(0, 0, 114, 75, 30, 20);
insertZone(0, 0, 112, 74, 30, 20);
insertZone(0, 0, 112, 74, 30, 20);
insertZone(0, 0, 112, 75, 30, 20);
insertZone(0, 0, 113, 76, 30, 20);
insertZone(0, 0, 114, 77, 30, 20);
insertZone(0, 0, 115, 75, 30, 20);
insertZone(0, 0, 116, 73, 30, 20);
insertZone(0, 0, 118, 72, 30, 20);
insertZone(0, 0, 120, 74, 30, 20);
insertZone(0, 0, 123, 76, 30, 20);
insertZone(0, 0, 125, 77, 30, 20);
insertZone(0, 1, 105, 64, 70, 35);
insertZone(0, 1, 105, 63, 70, 35);
insertZone(0, 1, 105, 62, 70, 35);
insertZone(0, 1, 105, 61, 70, 35);
insertZone(0, 1, 102, 61, 70, 35);
insertZone(0, 1, 99, 61, 70, 35);
insertZone(0, 1, 97, 61, 70, 35);
insertZone(0, 1, 96, 62, 70, 35);
insertZone(0, 1, 95, 62, 70, 35);
insertZone(0, 1, 96, 61, 70, 35);
insertZone(0, 1, 98, 60, 70, 35);
insertZone(0, 1, 100, 63, 70, 35);
insertZone(0, 1, 100, 63, 70, 35);
insertZone(0, 1, 101, 64, 70, 35);
insertZone(0, 1, 103, 62, 70, 35);
insertZone(0, 1, 104, 62, 70, 35);
insertZone(0, 1, 106, 61, 70, 35);
insertZone(0, 1, 108, 60, 70, 35);
insertZone(0, 1, 109, 63, 70, 35);
insertZone(0, 1, 109, 63, 70, 35);
insertZone(0, 1, 109, 63, 70, 35);
insertZone(0, 1, 109, 63, 70, 35);
insertZone(0, 1, 108, 60, 70, 35);
insertZone(0, 1, 106, 61, 70, 35);
insertZone(0, 1, 104, 62, 70, 35);
insertZone(0, 1, 103, 62, 70, 35);
insertZone(0, 1, 101, 64, 70, 35);
insertZone(0, 1, 100, 63, 70, 35);
insertZone(0, 1, 100, 63, 70, 35);
insertZone(0, 1, 98, 60, 70, 35);
insertZone(0, 1, 96, 61, 70, 35);
insertZone(0, 1, 95, 62, 70, 35);
insertZone(0, 1, 96, 62, 70, 35);
insertZone(0, 1, 97, 61, 70, 35);
insertZone(0, 1, 99, 61, 70, 35);
insertZone(0, 1, 102, 61, 70, 35);
insertZone(0, 1, 105, 61, 70, 35);
insertZone(0, 1, 105, 62, 70, 35);
insertZone(0, 1, 105, 63, 70, 35);
insertZone(0, 1, 105, 64, 70, 35);
insertZone(1, 0, 125, 84, 30, 20);
insertZone(1, 0, 124, 83, 30, 20);
insertZone(1, 0, 124, 82, 30, 20);
insertZone(1, 0, 124, 82, 30, 20);
insertZone(1, 0, 125, 81, 30, 20);
insertZone(1, 0, 125, 81, 30, 20);
insertZone(1, 0, 125, 80, 30, 20);
insertZone(1, 0, 125, 81, 30, 20);
insertZone(1, 0, 126, 83, 30, 20);
insertZone(1, 0, 126, 85, 30, 20);
insertZone(1, 0, 126, 86, 30, 20);
insertZone(1, 0, 126, 84, 30, 20);
insertZone(1, 0, 126, 82, 30, 20);
insertZone(1, 0, 126, 79, 30, 20);
insertZone(1, 0, 126, 78, 30, 20);
insertZone(1, 0, 126, 79, 30, 20);
insertZone(1, 0, 126, 80, 30, 20);
insertZone(1, 0, 126, 82, 30, 20);
insertZone(1, 1, 106, 69, 70, 35);
insertZone(1, 1, 106, 69, 70, 35);
insertZone(1, 1, 106, 69, 70, 35);
insertZone(1, 1, 106, 69, 70, 35);
insertZone(1, 1, 106, 68, 70, 35);
insertZone(1, 1, 106, 66, 70, 35);
insertZone(1, 1, 106, 66, 70, 35);
insertZone(1, 1, 106, 66, 70, 35);
insertZone(1, 1, 106, 68, 70, 35);
insertZone(1, 1, 106, 70, 70, 35);
insertZone(1, 1, 106, 71, 70, 35);
insertZone(1, 1, 106, 70, 70, 35);
insertZone(1, 1, 106, 67, 70, 35);
insertZone(1, 1, 106, 64, 70, 35);
insertZone(1, 1, 106, 63, 70, 35);
insertZone(1, 1, 106, 63, 70, 35);
insertZone(1, 1, 106, 66, 70, 35);
insertZone(1, 1, 106, 67, 70, 35);
insertZone(2, 0, 125, 83, 30, 20);
insertZone(2, 0, 125, 82, 30, 20);
insertZone(2, 0, 125, 82, 30, 20);
insertZone(2, 0, 126, 81, 30, 20);
insertZone(2, 0, 126, 80, 30, 20);
insertZone(2, 0, 126, 82, 30, 20);
insertZone(2, 0, 126, 86, 30, 20);
insertZone(2, 0, 126, 90, 30, 20);
insertZone(2, 0, 126, 90, 30, 20);
insertZone(2, 0, 125, 108, 30, 20);
insertZone(2, 0, 126, 110, 30, 20);
insertZone(2, 0, 125, 108, 30, 20);
insertZone(2, 0, 126, 105, 30, 20);
insertZone(2, 0, 127, 99, 30, 20);
insertZone(2, 0, 127, 96, 30, 20);
insertZone(2, 0, 126, 95, 30, 20);
insertZone(2, 0, 125, 93, 30, 20);
insertZone(2, 0, 125, 93, 30, 20);
insertZone(2, 0, 125, 93, 30, 20);
insertZone(2, 0, 125, 93, 30, 20);
insertZone(2, 0, 125, 93, 30, 20);
insertZone(2, 0, 125, 93, 30, 20);
insertZone(2, 0, 124, 93, 30, 20);
insertZone(2, 0, 124, 92, 30, 20);
insertZone(2, 0, 126, 89, 30, 20);
insertZone(2, 0, 126, 87, 30, 20);
insertZone(2, 0, 126, 87, 30, 20);
insertZone(2, 0, 126, 87, 30, 20);
insertZone(2, 0, 126, 87, 30, 20);
insertZone(2, 0, 126, 87, 30, 20);
insertZone(2, 0, 126, 87, 30, 20);
insertZone(2, 0, 126, 87, 30, 20);
insertZone(2, 0, 126, 87, 30, 20);
insertZone(2, 0, 126, 87, 30, 20);
insertZone(2, 1, 105, 69, 70, 35);
insertZone(2, 1, 105, 67, 70, 35);
insertZone(2, 1, 104, 64, 70, 35);
insertZone(2, 1, 104, 64, 70, 35);
insertZone(2, 1, 105, 62, 70, 35);
insertZone(2, 1, 106, 56, 70, 40);
insertZone(2, 1, 106, 58, 70, 40);
insertZone(2, 1, 108, 57, 70, 40);
insertZone(2, 1, 107, 55, 70, 40);
insertZone(2, 1, 107, 55, 70, 40);
insertZone(2, 1, 107, 55, 70, 40);
insertZone(2, 1, 107, 55, 70, 40);
insertZone(2, 1, 105, 65, 70, 40);
insertZone(2, 1, 105, 73, 70, 40);
insertZone(2, 1, 105, 74, 70, 40);
insertZone(2, 1, 105, 74, 70, 40);
insertZone(2, 1, 105, 75, 70, 40);
insertZone(2, 1, 105, 75, 70, 40);
insertZone(2, 1, 105, 76, 70, 40);
insertZone(2, 1, 105, 77, 70, 40);
insertZone(2, 1, 105, 77, 70, 40);
insertZone(2, 1, 105, 77, 70, 40);
insertZone(2, 1, 105, 75, 70, 40);
insertZone(2, 1, 105, 73, 70, 40);
insertZone(2, 1, 105, 70, 70, 40);
insertZone(2, 1, 105, 68, 70, 40);
insertZone(2, 1, 105, 68, 70, 40);
insertZone(2, 1, 105, 68, 70, 40);
insertZone(2, 1, 105, 68, 70, 40);
insertZone(2, 1, 105, 68, 70, 40);
insertZone(2, 1, 105, 68, 70, 40);
insertZone(2, 1, 105, 68, 70, 40);
insertZone(2, 1, 105, 68, 70, 40);
insertZone(2, 1, 105, 68, 70, 40);
}
}
}//package
Section 328
//itemBox (itemBox)
package {
import gdk.fps.*;
import sandy.core.data.*;
import flash.geom.*;
public class itemBox extends fpsItem {
protected var SEQi:Number;
protected var SPRITEID:Number;
protected var SEQ:Object;
protected var BP:Point;
protected var CF:Number;
public function itemBox(_arg1:String, _arg2:fpsRoom, _arg3:Number, _arg4:Number){
OBJID = _arg1;
super(_arg2, new Vector((50 + (_arg3 * 100)), 0, (50 + (_arg4 * 100))));
}
override public function render(){
var _local1:Number;
_local1 = (CF - 8.5);
SPRITE.BMP.y = ((-(SPRITE.W) + 20) - ((20 * (_local1 * _local1)) / 75));
SEQ.getFrame(SEQi, CF, SPRITE.BUFFER, BP);
CF++;
if (CF >= 18){
CF = 0;
};
}
override public function createSprite(){
SPRITE = GAME.GPOOL.getBitmapSprite(SPRITEID);
SPRITE.scale = 0.25;
SPRITE.autoCenter = false;
BP = new Point(0, 0);
CF = 0;
}
}
}//package
Section 329
//itemBoxGun (itemBoxGun)
package {
import gdk.fps.*;
public class itemBoxGun extends itemBox {
public function itemBoxGun(_arg1:String, _arg2:fpsRoom, _arg3:Number, _arg4:Number){
super(_arg1, _arg2, _arg3, _arg4);
TYPE = "ammo";
DATA = {weapon:1, qty:200};
PICKABLE = true;
PICK_RANGE = 50;
SEQ = GAME.BITMAPLIB.BOX_U;
SEQi = 0;
SPRITEID = GAME.GPOOL.BOXGUN;
}
}
}//package
Section 330
//itemBoxHealth (itemBoxHealth)
package {
import gdk.fps.*;
public class itemBoxHealth extends itemBox {
public function itemBoxHealth(_arg1:String, _arg2:fpsRoom, _arg3:Number, _arg4:Number){
super(_arg1, _arg2, _arg3, _arg4);
TYPE = "health";
DATA = {restore:100};
PICKABLE = true;
PICK_RANGE = 50;
SEQ = GAME.BITMAPLIB.BOX_H;
SEQi = 2;
SPRITEID = GAME.GPOOL.BOXHEALTH;
}
}
}//package
Section 331
//itemBoxRPG (itemBoxRPG)
package {
import gdk.fps.*;
public class itemBoxRPG extends itemBox {
public function itemBoxRPG(_arg1:String, _arg2:fpsRoom, _arg3:Number, _arg4:Number){
super(_arg1, _arg2, _arg3, _arg4);
TYPE = "ammo";
DATA = {weapon:2, qty:10};
PICKABLE = true;
PICK_RANGE = 50;
SEQ = GAME.BITMAPLIB.BOX_R;
SEQi = 1;
SPRITEID = GAME.GPOOL.BOXRPG;
}
}
}//package
Section 332
//itemKey (itemKey)
package {
import gdk.fps.*;
import sandy.core.data.*;
import flash.geom.*;
import flash.filters.*;
public class itemKey extends fpsItem {
private var SEQ:Object;
private var BP:Point;
private var CF:Number;
private var FILTER:BitmapFilter;
private var RECT:Rectangle;
public function itemKey(_arg1:String, _arg2:fpsRoom=null, _arg3:Number=0, _arg4:Number=0){
super(_arg2, new Vector((50 + (_arg3 * 100)), 0, (50 + (_arg4 * 100))));
TYPE = "key";
DATA = {door:_arg1};
PICKABLE = true;
PICK_RANGE = 50;
SEQ = GAME.BITMAPLIB.KEY_G;
RECT = new Rectangle(0, 0, 100, 100);
switch (_arg1){
case "blue":
FILTER = GAME.BITMAPLIB.FILTER_KEY_B.filter;
break;
case "red":
FILTER = GAME.BITMAPLIB.FILTER_KEY_R.filter;
break;
case "yellow":
FILTER = GAME.BITMAPLIB.FILTER_KEY_Y.filter;
break;
case "green":
FILTER = null;
break;
};
}
override public function render(){
var _local1:Number;
_local1 = (CF - 17.5);
SPRITE.BMP.y = ((-(SPRITE.W) + 20) - ((20 * (_local1 * _local1)) / 75));
SEQ.getFrame(3, CF, SPRITE.BUFFER, BP);
if (FILTER){
SPRITE.BUFFER.applyFilter(SPRITE.BUFFER, RECT, BP, FILTER);
};
CF++;
if (CF >= 36){
CF = 0;
};
}
override public function createSprite(){
SPRITE = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.KEYGREEN);
SPRITE.scale = 0.15;
SPRITE.autoCenter = false;
BP = new Point(0, 0);
CF = 0;
}
}
}//package
Section 333
//Jukebox (Jukebox)
package {
import flash.display.*;
import flash.events.*;
import flash.media.*;
public class Jukebox extends MovieClip {
public var SCORE2:Sound;
public var SCORE3:Sound;
private var SFX_STEALTH:Sound;
public var SCORE_CHANNEL:SoundChannel;
public var SCOREi:Number;
public var MUTE_MUSIC:Boolean;
public var CHANNEL_GUNLOOP:SoundChannel;
public var VOLUME_SFX1:Number;
public var VOLUME_SFX3:Number;
public var VOLUME_SFX2:Number;
public var VOLUME_SCORE1:Number;
public var VOLUME_SCORE3:Number;
public var VOLUME_SCORE2:Number;
public var OPT_VOLUME_MUSIC:Number;
public var OPT_VOLUME_SFX:Number;
public var MUTE_SFX:Boolean;
private var SFX_REPULSE:Sound;
private var STOPGUNLOOP:Boolean;
private var SFX_HEAL:Sound;
private var SFX_GUNLOOP:Sound;
public var SCORE0:Sound;
public var SCORE1:Sound;
public function Jukebox(){
glo.bal.JUKEBOX = this;
MUTE_MUSIC = false;
MUTE_SFX = false;
VOLUME_SFX1 = 0.6;
VOLUME_SFX2 = 0.6;
VOLUME_SFX3 = 0.6;
VOLUME_SCORE1 = 0.3;
VOLUME_SCORE2 = 0.6;
VOLUME_SCORE3 = 0.6;
OPT_VOLUME_MUSIC = 0.5;
OPT_VOLUME_SFX = 0.5;
SFX_GUNLOOP = new sfxRifleLoop();
STOPGUNLOOP = false;
SCORE0 = new trkSlogItOut();
SCORE1 = new trkRockTheFuture();
SCORE2 = new trkStopCP();
SCORE3 = new trkMaydayOnMars();
SCOREi = 1;
}
public function stealth(){
playSfx(new sfxCloak(), VOLUME_SFX1);
}
public function nextTrack(_arg1:Event){
var _local2:Number;
stopScore();
SCOREi++;
if (SCOREi > 3){
SCOREi = 1;
};
_local2 = 1;
switch (SCOREi){
case 1:
SCORE_CHANNEL = SCORE1.play(0);
_local2 = 1;
break;
case 2:
SCORE_CHANNEL = SCORE2.play(0);
_local2 = 1.5;
break;
case 3:
SCORE_CHANNEL = SCORE3.play(0);
_local2 = 1.2;
break;
};
if (MUTE_MUSIC){
setChannelVolume(SCORE_CHANNEL, 0);
} else {
setChannelVolume(SCORE_CHANNEL, (((VOLUME_SCORE1 * OPT_VOLUME_MUSIC) * 2) * _local2));
};
SCORE_CHANNEL.addEventListener("soundComplete", nextTrack);
}
public function playGunLoop(){
if (MUTE_SFX){
return;
};
STOPGUNLOOP = false;
if (CHANNEL_GUNLOOP != null){
CHANNEL_GUNLOOP.stop();
};
CHANNEL_GUNLOOP = SFX_GUNLOOP.play(0, 200);
setChannelVolume(CHANNEL_GUNLOOP, ((VOLUME_SFX3 * OPT_VOLUME_SFX) * 2));
}
public function btnClick(){
playSfx(new sfxClick(), VOLUME_SFX1);
}
public function dryFire(){
playSfx(new sfxDryFire(), VOLUME_SFX1);
}
public function menuScore(){
stopScore();
SCORE_CHANNEL = SCORE0.play(0, 999);
if (MUTE_MUSIC){
setChannelVolume(SCORE_CHANNEL, 0);
} else {
setChannelVolume(SCORE_CHANNEL, ((VOLUME_SCORE1 * OPT_VOLUME_MUSIC) * 2));
};
}
public function sfxOff(){
MUTE_SFX = true;
}
public function playSfx(_arg1:Sound, _arg2:Number){
if (MUTE_SFX){
return;
};
setChannelVolume(_arg1.play(), ((_arg2 * OPT_VOLUME_SFX) * 2));
}
public function setChannelVolume(_arg1:SoundChannel, _arg2:Number){
var _local3:SoundTransform;
_local3 = _arg1.soundTransform;
_local3.volume = _arg2;
_arg1.soundTransform = _local3;
}
public function splatter(){
playSfx(new sfxSplatter(), VOLUME_SFX1);
}
public function roar1(){
playSfx(new sfxRoar1(), VOLUME_SFX1);
}
public function roar3(){
playSfx(new sfxRoar3(), VOLUME_SFX1);
}
public function roar5(){
playSfx(new sfxRoar5(), VOLUME_SFX1);
}
public function roar2(){
playSfx(new sfxRoar2(), VOLUME_SFX1);
}
public function roar4(){
playSfx(new sfxRoar4(), VOLUME_SFX1);
}
public function roar6(){
playSfx(new sfxRoar6(), VOLUME_SFX1);
}
public function animate(_arg1:Number, _arg2:Number){
var _local3:Number;
if (!STOPGUNLOOP){
return;
};
if (CHANNEL_GUNLOOP == null){
return;
};
_local3 = (_arg1 / _arg2);
if (_local3 < 1){
setChannelVolume(CHANNEL_GUNLOOP, (VOLUME_SFX3 * (1 - _local3)));
} else {
CHANNEL_GUNLOOP.stop();
};
}
public function musicOn(){
MUTE_MUSIC = false;
if (SCORE_CHANNEL != null){
setChannelVolume(SCORE_CHANNEL, ((VOLUME_SCORE1 * OPT_VOLUME_MUSIC) * 2));
};
}
public function explosion(){
playSfx(new sfxExplosion(), VOLUME_SFX1);
}
public function footStep1(){
playSfx(new sfxFootStep1(), VOLUME_SFX1);
}
public function musicOff(){
MUTE_MUSIC = true;
if (SCORE_CHANNEL != null){
setChannelVolume(SCORE_CHANNEL, 0);
};
}
public function levelCompleted(){
stopScore();
playSfx(new sfxStinger2(), VOLUME_SCORE1);
}
public function footStep2(){
playSfx(new sfxFootStep2(), VOLUME_SFX1);
}
public function loading(){
stopScore();
playSfx(new sfxLoadingStinger(), VOLUME_SCORE1);
}
public function sfxOn(){
MUTE_SFX = false;
}
public function repulse(){
playSfx(new sfxShield(), VOLUME_SFX1);
}
public function toggle(){
playSfx(new sfxToggle(), VOLUME_SFX1);
}
public function pistol(){
playSfx(new sfxPistol(), VOLUME_SFX1);
}
public function stopGunLoop(){
STOPGUNLOOP = true;
glo.bal.GAME.animation(this, 3);
}
public function stopScore(){
if (SCORE_CHANNEL != null){
SCORE_CHANNEL.stop();
SCORE_CHANNEL.removeEventListener("soundComplete", nextTrack);
};
SCORE_CHANNEL = null;
}
public function die1(){
playSfx(new sfxDie1(), VOLUME_SFX3);
}
public function die2(){
playSfx(new sfxDie2(), VOLUME_SFX3);
}
public function die3(){
playSfx(new sfxDie3(), VOLUME_SFX3);
}
public function die4(){
playSfx(new sfxDie4(), VOLUME_SFX3);
}
public function door(){
playSfx(new sfxDoor(), VOLUME_SFX1);
}
public function die6(){
playSfx(new sfxDie6(), VOLUME_SFX3);
}
public function die5(){
playSfx(new sfxDie5(), VOLUME_SFX3);
}
public function setSfxVolume(_arg1:Number){
OPT_VOLUME_SFX = _arg1;
}
public function gameScore(){
var _local1:Number;
stopScore();
_local1 = 1;
switch (SCOREi){
case 1:
SCORE_CHANNEL = SCORE1.play(0);
_local1 = 1;
break;
case 2:
SCORE_CHANNEL = SCORE2.play(0);
_local1 = 1.5;
break;
case 3:
SCORE_CHANNEL = SCORE3.play(0);
_local1 = 1.2;
break;
};
if (MUTE_MUSIC){
setChannelVolume(SCORE_CHANNEL, 0);
} else {
setChannelVolume(SCORE_CHANNEL, (((VOLUME_SCORE1 * OPT_VOLUME_MUSIC) * 2) * _local1));
};
SCORE_CHANNEL.addEventListener("soundComplete", nextTrack);
}
public function reload1(){
playSfx(new sfxReload1(), VOLUME_SFX1);
}
public function setMusicVolume(_arg1:Number){
OPT_VOLUME_MUSIC = _arg1;
if (SCORE_CHANNEL != null){
setChannelVolume(SCORE_CHANNEL, ((VOLUME_SCORE1 * OPT_VOLUME_MUSIC) * 2));
};
}
public function gameOver(){
stopScore();
playSfx(new sfxStinger1(), VOLUME_SCORE1);
}
public function heal(){
playSfx(new sfxHeal(), VOLUME_SFX1);
}
public function rpg(){
playSfx(new sfxRPG(), VOLUME_SFX1);
}
public function skillFailure(){
playSfx(new sfxDryFire(), VOLUME_SFX1);
}
}
}//package
Section 334
//level01 (level01)
package {
import gdk.fps.*;
import sandy.core.data.*;
import gdk.fps.wbl.*;
public class level01 extends fpsZone {
public function level01(){
super(1, 42, 27, new Vector(2850, 0, 1650), -90);
}
override public function loadWorld(_arg1:fpsGame){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:fpsRoom;
if (glo.bal.PC_OPTION == 1){
new levelFloor();
new levelCeiling();
};
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR2;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL2;
_local2 = Builder.createRoom(_arg1, 1);
Builder.floorNceiling(27, 15, 1, 3, 3);
Builder.wall(27, 15, 0, wblWall.S_N, 3);
Builder.wall(27, 18, 0, wblWall.W_E, 3);
Builder.wall(30, 18, 0, wblWall.N_S, 3);
Builder.wall(30, 15, 0, wblWall.E_W, 1);
Builder.wall(28, 15, 0, wblWall.E_W, 1);
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR1;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL1;
_local3 = Builder.createRoom(_arg1, 2);
Builder.floorNceiling(24, 12, 1, 9, 3);
Builder.wall(24, 12, 0, wblWall.S_N, 3);
Builder.wall(24, 15, 0, wblWall.W_E, 4);
Builder.wall(29, 15, 0, wblWall.W_E, 4);
Builder.wall(33, 15, 0, wblWall.N_S, 1);
Builder.wall(33, 13, 0, wblWall.N_S, 1);
Builder.wall(33, 12, 0, wblWall.E_W, 7);
Builder.wall(25, 12, 0, wblWall.E_W, 1);
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR1_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR1_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR1_R;
Builder.door(_local2, _local3, {}, 29, 15, 0, wblWall.E_W);
_local4 = Builder.createRoom(_arg1, 3);
Builder.floorNceiling(21, 9, 1, 6, 3);
Builder.floorNceiling(21, 12, 1, 3, 3);
Builder.floorNceiling(21, 15, 1, 6, 3);
Builder.wall(21, 9, 0, wblWall.S_N, 9);
Builder.wall(21, 18, 0, wblWall.W_E, 6);
Builder.wall(27, 18, 0, wblWall.N_S, 3);
Builder.wall(27, 15, 0, wblWall.E_W, 3);
Builder.wall(24, 15, 0, wblWall.N_S, 3);
Builder.wall(24, 12, 0, wblWall.W_E, 1);
Builder.wall(26, 12, 0, wblWall.W_E, 1);
Builder.wall(27, 12, 0, wblWall.N_S, 3);
Builder.wall(27, 9, 0, wblWall.E_W, 6);
Builder.door(_local3, _local4, {}, 26, 12, 0, wblWall.E_W);
_local5 = Builder.createRoom(_arg1, 4);
Builder.floorNceiling(27, 9, 1, 6, 3);
Builder.floorNceiling(33, 9, 1, 3, 2);
Builder.floorNceiling(36, 9, 1, 3, 9);
Builder.floorNceiling(33, 12, 1, 3, 3);
Builder.floorNceiling(30, 15, 1, 3, 3);
Builder.floorNceiling(33, 16, 1, 3, 2);
Builder.wall(27, 9, 0, wblWall.S_N, 3);
Builder.wall(27, 12, 0, wblWall.W_E, 6);
Builder.wall(33, 12, 0, wblWall.N_S, 1);
Builder.wall(33, 11, 0, wblWall.W_E, 3);
Builder.wall(36, 11, 0, wblWall.S_N, 1);
Builder.wall(36, 12, 0, wblWall.E_W, 3);
Builder.wall(33, 12, 0, wblWall.S_N, 1);
Builder.wall(33, 14, 0, wblWall.S_N, 1);
Builder.wall(33, 15, 0, wblWall.W_E, 3);
Builder.wall(36, 15, 0, wblWall.S_N, 1);
Builder.wall(36, 16, 0, wblWall.E_W, 3);
Builder.wall(33, 16, 0, wblWall.N_S, 1);
Builder.wall(33, 15, 0, wblWall.E_W, 3);
Builder.wall(30, 15, 0, wblWall.S_N, 3);
Builder.wall(30, 18, 0, wblWall.W_E, 1);
Builder.wall(32, 18, 0, wblWall.W_E, 7);
Builder.wall(39, 18, 0, wblWall.N_S, 9);
Builder.wall(39, 9, 0, wblWall.E_W, 10);
Builder.wall(28, 9, 0, wblWall.E_W, 1);
Builder.door(_local3, _local5, {}, 33, 14, 0, wblWall.N_S);
_local6 = Builder.createRoom(_arg1, 5);
Builder.floorNceiling(30, 18, 1, 3, 3);
Builder.floorNceiling(30, 21, 1, 9, 3);
Builder.floorNceiling(36, 18, 1, 3, 3);
Builder.wall(30, 18, 0, wblWall.S_N, 6);
Builder.wall(30, 24, 0, wblWall.W_E, 9);
Builder.wall(39, 24, 0, wblWall.N_S, 6);
Builder.wall(39, 18, 0, wblWall.E_W, 3);
Builder.wall(36, 18, 0, wblWall.S_N, 3);
Builder.wall(36, 21, 0, wblWall.E_W, 3);
Builder.wall(33, 21, 0, wblWall.N_S, 3);
Builder.wall(33, 18, 0, wblWall.E_W, 1);
Builder.wall(31, 18, 0, wblWall.E_W, 1);
Builder.door(_local5, _local6, {}, 31, 18, 0, wblWall.W_E);
_local7 = Builder.createRoom(_arg1, 6);
Builder.floorNceiling(21, 3, 1, 12, 3);
Builder.floorNceiling(27, 6, 1, 3, 3);
Builder.wall(21, 3, 0, wblWall.S_N, 1);
Builder.wall(21, 5, 0, wblWall.S_N, 1);
Builder.wall(21, 6, 0, wblWall.W_E, 6);
Builder.wall(27, 6, 0, wblWall.S_N, 3);
Builder.wall(27, 9, 0, wblWall.W_E, 1);
Builder.wall(29, 9, 0, wblWall.W_E, 1);
Builder.wall(30, 9, 0, wblWall.N_S, 3);
Builder.wall(30, 6, 0, wblWall.W_E, 3);
Builder.wall(33, 6, 0, wblWall.N_S, 1);
Builder.wall(33, 4, 0, wblWall.N_S, 1);
Builder.wall(33, 3, 0, wblWall.E_W, 12);
Builder.door(_local5, _local7, {}, 29, 9, 0, wblWall.E_W);
_local8 = Builder.createRoom(_arg1, 7);
Builder.floorNceiling(33, 3, 1, 6, 3);
Builder.floorNceiling(30, 6, 1, 2, 1);
Builder.floorNceiling(35, 6, 1, 4, 1);
Builder.floorNceiling(30, 7, 1, 9, 2);
Builder.wall(33, 3, 0, wblWall.S_N, 1);
Builder.wall(33, 5, 0, wblWall.S_N, 1);
Builder.wall(33, 6, 0, wblWall.W_E, 2);
Builder.wall(35, 6, 0, wblWall.S_N, 1);
Builder.wall(35, 7, 0, wblWall.E_W, 3);
Builder.wall(32, 7, 0, wblWall.N_S, 1);
Builder.wall(32, 6, 0, wblWall.E_W, 2);
Builder.wall(30, 6, 0, wblWall.S_N, 3);
Builder.wall(30, 9, 0, wblWall.W_E, 9);
Builder.wall(39, 9, 0, wblWall.N_S, 6);
Builder.wall(39, 3, 0, wblWall.E_W, 6);
Builder.door(_local7, _local8, {locked:true, key:"green"}, 33, 5, 0, wblWall.N_S, _arg1.TEXLIB.DOOR5_F, _arg1.TEXLIB.DOOR4_L, _arg1.TEXLIB.DOOR4_R);
_local9 = Builder.createRoom(_arg1, 8);
Builder.floorNceiling(15, 3, 1, 6, 2);
Builder.floorNceiling(15, 5, 1, 2, 1);
Builder.floorNceiling(18, 5, 1, 3, 1);
Builder.floorNceiling(9, 6, 1, 8, 3);
Builder.floorNceiling(18, 6, 1, 9, 3);
Builder.floorNceiling(15, 9, 1, 6, 6);
Builder.floorNceiling(12, 12, 1, 3, 3);
Builder.wall(15, 3, 0, wblWall.S_N, 3);
Builder.wall(15, 6, 0, wblWall.E_W, 4);
Builder.wall(10, 6, 0, wblWall.E_W, 1);
Builder.wall(9, 6, 0, wblWall.S_N, 3);
Builder.wall(9, 9, 0, wblWall.W_E, 6);
Builder.wall(15, 9, 0, wblWall.S_N, 3);
Builder.wall(15, 12, 0, wblWall.E_W, 3);
Builder.wall(12, 12, 0, wblWall.S_N, 3);
Builder.wall(12, 15, 0, wblWall.W_E, 1);
Builder.wall(14, 15, 0, wblWall.W_E, 7);
Builder.wall(21, 15, 0, wblWall.N_S, 6);
Builder.wall(21, 9, 0, wblWall.W_E, 6);
Builder.wall(27, 9, 0, wblWall.N_S, 3);
Builder.wall(27, 6, 0, wblWall.E_W, 6);
Builder.wall(21, 6, 0, wblWall.N_S, 1);
Builder.wall(21, 4, 0, wblWall.N_S, 1);
Builder.wall(21, 3, 0, wblWall.E_W, 6);
Builder.wall(18, 5, 0, wblWall.S_N, 4, 1, _arg1.TEXLIB.WALL2);
Builder.wall(18, 9, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(17, 9, 0, wblWall.N_S, 4, 1, _arg1.TEXLIB.WALL2);
Builder.wall(17, 5, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local7, _local9, {}, 21, 4, 0, wblWall.S_N);
_local10 = Builder.createRoom(_arg1, 9);
Builder.floorNceiling(6, 15, 1, 15, 2);
Builder.floorNceiling(6, 17, 1, 5, 1);
Builder.floorNceiling(12, 17, 1, 3, 1);
Builder.floorNceiling(16, 17, 1, 5, 1);
Builder.floorNceiling(6, 18, 1, 15, 3);
Builder.wall(6, 15, 0, wblWall.S_N, 6);
Builder.wall(6, 21, 0, wblWall.W_E, 15);
Builder.wall(21, 21, 0, wblWall.N_S, 6);
Builder.wall(21, 15, 0, wblWall.E_W, 6);
Builder.wall(15, 15, 0, wblWall.S_N, 2);
Builder.wall(15, 17, 0, wblWall.W_E, 1);
Builder.wall(16, 17, 0, wblWall.S_N, 1);
Builder.wall(16, 18, 0, wblWall.E_W, 1);
Builder.wall(15, 18, 0, wblWall.N_S, 3);
Builder.wall(15, 15, 0, wblWall.E_W, 1);
Builder.wall(13, 15, 0, wblWall.E_W, 1);
Builder.wall(12, 15, 0, wblWall.S_N, 3);
Builder.wall(12, 18, 0, wblWall.E_W, 1);
Builder.wall(11, 18, 0, wblWall.N_S, 1);
Builder.wall(11, 17, 0, wblWall.W_E, 1);
Builder.wall(12, 17, 0, wblWall.N_S, 2);
Builder.wall(12, 15, 0, wblWall.E_W, 4);
Builder.wall(7, 15, 0, wblWall.E_W, 1);
Builder.door(_local9, _local10, {}, 13, 15, 0, wblWall.W_E);
_local11 = Builder.createRoom(_arg1, 10);
Builder.floorNceiling(3, 12, 1, 6, 3);
Builder.floorNceiling(3, 15, 1, 3, 6);
Builder.wall(3, 12, 0, wblWall.S_N, 9);
Builder.wall(3, 21, 0, wblWall.W_E, 3);
Builder.wall(6, 21, 0, wblWall.N_S, 6);
Builder.wall(6, 15, 0, wblWall.W_E, 1);
Builder.wall(8, 15, 0, wblWall.W_E, 1);
Builder.wall(9, 15, 0, wblWall.N_S, 3);
Builder.wall(9, 12, 0, wblWall.E_W, 6);
Builder.door(_local10, _local11, {}, 8, 15, 0, wblWall.E_W);
_local12 = Builder.createRoom(_arg1, 11);
Builder.floorNceiling(6, 3, 1, 9, 3);
Builder.floorNceiling(6, 6, 1, 3, 3);
Builder.floorNceiling(3, 9, 1, 12, 3);
Builder.floorNceiling(9, 12, 1, 3, 3);
Builder.wall(6, 3, 0, wblWall.S_N, 6);
Builder.wall(6, 9, 0, wblWall.E_W, 1);
Builder.wall(4, 9, 0, wblWall.E_W, 1);
Builder.wall(3, 9, 0, wblWall.S_N, 3);
Builder.wall(3, 12, 0, wblWall.W_E, 6);
Builder.wall(9, 12, 0, wblWall.S_N, 3);
Builder.wall(9, 15, 0, wblWall.W_E, 3);
Builder.wall(12, 15, 0, wblWall.N_S, 3);
Builder.wall(12, 12, 0, wblWall.W_E, 3);
Builder.wall(15, 12, 0, wblWall.N_S, 3);
Builder.wall(15, 9, 0, wblWall.E_W, 6);
Builder.wall(9, 9, 0, wblWall.N_S, 3);
Builder.wall(9, 6, 0, wblWall.W_E, 1);
Builder.wall(11, 6, 0, wblWall.W_E, 4);
Builder.wall(15, 6, 0, wblWall.N_S, 3);
Builder.wall(15, 3, 0, wblWall.E_W, 9);
Builder.door(_local9, _local12, {locked:true, key:"red"}, 11, 6, 0, wblWall.E_W, _arg1.TEXLIB.DOOR4_F, _arg1.TEXLIB.DOOR4_L, _arg1.TEXLIB.DOOR4_R);
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR2;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL2;
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR3_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR3_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR3_R;
_local13 = new sasRoom(_arg1, 12);
Builder.ROOM = _local13;
Builder.floorNceiling(3, 6, 1, 3, 3);
Builder.wall(3, 6, 0, wblWall.S_N, 3);
Builder.wall(3, 9, 0, wblWall.W_E, 1);
Builder.wall(5, 9, 0, wblWall.W_E, 1);
Builder.wall(6, 9, 0, wblWall.N_S, 3);
Builder.wall(6, 6, 0, wblWall.E_W, 1);
Builder.wall(4, 6, 0, wblWall.E_W, 1);
Builder.door(_local12, _local13, {locked:true, key:"blue"}, 5, 9, 0, wblWall.E_W);
_local14 = new fpsRoom(_arg1, 13);
Builder.door(_local13, _local14, {dummy:true}, 5, 6, 0, wblWall.E_W);
new objPortal(_local7, new Vector(2850, 0, 350));
new objPortal(_local10, new Vector(1350, 0, 2050));
new itemBoxHealth("bh01", _local7, 21, 5);
new itemBoxRPG("brpg01", _local5, 32, 15);
new itemBoxRPG("brpg02", _local9, 17, 9);
new itemBoxGun("bg01", _local3, 24, 14);
new itemBoxGun("bg02", _local5, 32, 11);
new itemBoxGun("bg03", _local6, 32, 18);
new itemBoxGun("bg04", _local7, 30, 3);
new itemBoxGun("bg05", _local8, 35, 6);
new itemBoxGun("bg06", _local9, 17, 4);
new itemBoxGun("bg07", _local11, 8, 14);
}
override public function loadUnits(_arg1:fpsGame){
var _local2:Object;
var _local3:levelArea;
_local3 = new levelArea(_arg1);
new aiAlienEgg("egg01", _arg1, 30, 8);
new aiAlienEgg("egg02", _arg1, 26, 17);
new aiAlienEgg("egg03", _arg1, 38, 18);
new aiAlienEgg("egg04", _arg1, 16, 15);
new aiAlienEgg("egg05", _arg1, 4, 20);
_local3.room(3);
_local3.reset();
_local3.area(21, 12, 24, 18);
_local3.unit01();
_local3.unit02();
_local3.reset();
_local3.area(24, 15, 27, 18);
_local3.unit01();
_local3.unit01();
_local3.room(4);
_local3.reset();
_local3.area(36, 9, 39, 18);
_local3.unit01();
_local3.unit02();
_local3.reset();
_local3.area(30, 15, 33, 18);
_local3.area(33, 16, 36, 18);
_local3.unit01();
_local3.unit01();
_local3.reset();
_local3.area(27, 9, 33, 12);
_local3.area(33, 9, 36, 11);
_local3.unit01();
_local3.unit01();
_local3.room(5);
_local3.reset();
_local3.area(30, 21, 36, 24);
_local3.unit01();
_local3.unit01();
_local3.reset();
_local3.area(36, 18, 39, 24);
_local3.unit01();
_local3.unit02();
_local3.room(6);
_local3.reset();
_local3.area(26, 3, 31, 6);
_local3.unit01();
_local3.unit01();
_local3.reset();
_local3.area(21, 3, 26, 6);
_local3.area(31, 3, 33, 6);
_local3.unit01();
_local3.unit01();
_local3.unit02();
_local3.room(7);
_local3.reset();
_local3.area(35, 3, 39, 9);
_local3.unit01();
_local3.unit01();
_local3.reset();
_local3.area(30, 6, 32, 9);
_local3.area(32, 7, 34, 9);
_local3.unit01();
_local3.unit01();
_local3.unit02();
_local3.room(8);
_local3.reset();
_local3.area(9, 6, 15, 9);
_local3.area(22, 6, 27, 9);
_local3.unit01();
_local3.unit01();
_local3.unit01();
_local3.unit01();
_local3.reset();
_local3.area(15, 3, 17, 15);
_local3.area(17, 12, 21, 15);
_local3.unit01();
_local3.unit02();
_local2 = _local3.unit01();
_local2.itemToRelease(new itemKey("green"));
_local3.reset();
_local3.area(12, 12, 15, 15);
_local3.unit01();
_local3.unit01();
_local3.room(9);
_local3.reset();
_local3.area(6, 18, 10, 21);
_local3.area(17, 18, 21, 21);
_local3.unit01();
_local3.unit01();
_local3.unit01();
_local3.unit02();
_local3.reset();
_local3.area(6, 15, 12, 17);
_local3.unit01();
_local3.unit01();
_local3.reset();
_local3.area(15, 15, 21, 17);
_local3.unit01();
_local3.unit02();
_local3.room(10);
_local3.reset();
_local3.area(3, 15, 6, 21);
_local3.unit01();
_local3.unit02();
_local2 = _local3.unit01();
_local2.itemToRelease(new itemKey("red"));
_local3.room(11);
_local3.reset();
_local3.area(9, 9, 12, 15);
_local3.unit01();
_local3.unit02();
_local3.reset();
_local3.area(3, 9, 5, 10);
_local3.unit01();
_local3.reset();
_local3.area(3, 11, 6, 12);
_local3.unit01();
_local3.reset();
_local3.area(12, 9, 15, 10);
_local3.unit01();
_local3.unit01();
}
}
}//package
Section 335
//level02 (level02)
package {
import gdk.fps.*;
import sandy.core.data.*;
import gdk.fps.wbl.*;
public class level02 extends fpsZone {
public function level02(){
super(2, 36, 26, new Vector(550, 0, 200), 90);
}
override public function loadWorld(_arg1:fpsGame){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:fpsRoom;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
if (glo.bal.PC_OPTION == 1){
new levelFloor();
new levelCeiling();
};
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR2;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL2;
_local2 = Builder.createRoom(_arg1, 1);
Builder.floorNceiling(4, 1, 1, 3, 3);
Builder.wall(4, 1, 0, wblWall.S_N, 3);
Builder.wall(4, 4, 0, wblWall.W_E, 1);
Builder.wall(6, 4, 0, wblWall.W_E, 1);
Builder.wall(7, 4, 0, wblWall.N_S, 3);
Builder.wall(7, 1, 0, wblWall.E_W, 3);
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR1;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL1;
_local3 = Builder.createRoom(_arg1, 2);
Builder.floorNceiling(4, 4, 1, 3, 3);
Builder.wall(4, 4, 0, wblWall.S_N, 3);
Builder.wall(4, 7, 0, wblWall.W_E, 3);
Builder.wall(7, 7, 0, wblWall.N_S, 1);
Builder.wall(7, 5, 0, wblWall.N_S, 1);
Builder.wall(7, 4, 0, wblWall.E_W, 1);
Builder.wall(5, 4, 0, wblWall.E_W, 1);
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR1_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR1_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR1_R;
Builder.door(_local2, _local3, {}, 5, 4, 0, wblWall.W_E);
_local4 = Builder.createRoom(_arg1, 3);
Builder.floorNceiling(7, 4, 1, 10, 3);
Builder.floorNceiling(18, 4, 1, 5, 3);
Builder.floorNceiling(15, 7, 1, 5, 5);
Builder.floorNceiling(15, 1, 1, 5, 3);
Builder.wall(7, 4, 0, wblWall.S_N, 1);
Builder.wall(7, 6, 0, wblWall.S_N, 1);
Builder.wall(7, 7, 0, wblWall.W_E, 8);
Builder.wall(15, 7, 0, wblWall.S_N, 1);
Builder.wall(15, 9, 0, wblWall.S_N, 3);
Builder.wall(15, 12, 0, wblWall.W_E, 5);
Builder.wall(20, 12, 0, wblWall.N_S, 5);
Builder.wall(20, 7, 0, wblWall.W_E, 3);
Builder.wall(23, 7, 0, wblWall.N_S, 1);
Builder.wall(23, 5, 0, wblWall.N_S, 1);
Builder.wall(23, 4, 0, wblWall.E_W, 3);
Builder.wall(20, 4, 0, wblWall.N_S, 1);
Builder.wall(20, 2, 0, wblWall.N_S, 1);
Builder.wall(20, 1, 0, wblWall.E_W, 5);
Builder.wall(15, 1, 0, wblWall.S_N, 1);
Builder.wall(15, 3, 0, wblWall.S_N, 1);
Builder.wall(15, 4, 0, wblWall.E_W, 8);
Builder.wall(18, 4, 0, wblWall.S_N, 3, 1, _arg1.TEXLIB.WALL2);
Builder.wall(18, 7, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(17, 7, 0, wblWall.N_S, 3, 1, _arg1.TEXLIB.WALL2);
Builder.wall(17, 4, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR1_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR1_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR1_R;
Builder.door(_local3, _local4, {}, 7, 6, 0, wblWall.N_S);
_local5 = Builder.createRoom(_arg1, 4);
Builder.floorNceiling(9, 1, 1, 6, 3);
Builder.wall(9, 1, 0, wblWall.S_N, 3);
Builder.wall(9, 4, 0, wblWall.W_E, 6);
Builder.wall(15, 4, 0, wblWall.N_S, 1);
Builder.wall(15, 2, 0, wblWall.N_S, 1);
Builder.wall(15, 1, 0, wblWall.E_W, 6);
Builder.door(_local4, _local5, {}, 15, 2, 0, wblWall.S_N);
_local6 = Builder.createRoom(_arg1, 5);
Builder.floorNceiling(20, 1, 1, 7, 3);
Builder.wall(20, 1, 0, wblWall.S_N, 1);
Builder.wall(20, 3, 0, wblWall.S_N, 1);
Builder.wall(20, 4, 0, wblWall.W_E, 7);
Builder.wall(27, 4, 0, wblWall.N_S, 1);
Builder.wall(27, 2, 0, wblWall.N_S, 1);
Builder.wall(27, 1, 0, wblWall.E_W, 7);
Builder.door(_local4, _local6, {}, 20, 3, 0, wblWall.N_S);
_local7 = Builder.createRoom(_arg1, 6);
Builder.floorNceiling(23, 4, 1, 4, 3);
Builder.floorNceiling(20, 7, 1, 7, 2);
Builder.floorNceiling(20, 9, 1, 2, 1);
Builder.floorNceiling(25, 9, 1, 2, 1);
Builder.floorNceiling(20, 10, 1, 7, 2);
Builder.floorNceiling(22, 12, 1, 3, 1);
Builder.floorNceiling(20, 13, 1, 7, 4);
Builder.wall(23, 4, 0, wblWall.S_N, 1);
Builder.wall(23, 6, 0, wblWall.S_N, 1);
Builder.wall(23, 7, 0, wblWall.E_W, 3);
Builder.wall(20, 7, 0, wblWall.S_N, 5);
Builder.wall(20, 13, 0, wblWall.S_N, 1);
Builder.wall(20, 15, 0, wblWall.S_N, 2);
Builder.wall(20, 17, 0, wblWall.W_E, 7);
Builder.wall(27, 17, 0, wblWall.N_S, 2);
Builder.wall(27, 14, 0, wblWall.N_S, 1);
Builder.wall(27, 12, 0, wblWall.N_S, 6);
Builder.wall(27, 5, 0, wblWall.N_S, 1);
Builder.wall(27, 4, 0, wblWall.E_W, 4);
Builder.wall(25, 9, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(25, 10, 0, wblWall.E_W, 3, 1, _arg1.TEXLIB.WALL2);
Builder.wall(22, 10, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(22, 9, 0, wblWall.W_E, 3, 1, _arg1.TEXLIB.WALL2);
Builder.wall(22, 12, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(22, 13, 0, wblWall.E_W, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(20, 12, 0, wblWall.W_E, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(27, 13, 0, wblWall.E_W, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(25, 13, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(25, 12, 0, wblWall.W_E, 2, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local4, _local7, {}, 23, 6, 0, wblWall.N_S);
_local8 = Builder.createRoom(_arg1, 7);
Builder.floorNceiling(10, 12, 1, 10, 5);
Builder.floorNceiling(13, 10, 1, 2, 2);
Builder.floorNceiling(10, 7, 1, 5, 3);
Builder.wall(10, 7, 0, wblWall.S_N, 1);
Builder.wall(10, 9, 0, wblWall.S_N, 1);
Builder.wall(10, 10, 0, wblWall.W_E, 3);
Builder.wall(13, 10, 0, wblWall.S_N, 2);
Builder.wall(13, 12, 0, wblWall.E_W, 3);
Builder.wall(10, 12, 0, wblWall.S_N, 5);
Builder.wall(10, 17, 0, wblWall.W_E, 2);
Builder.wall(13, 17, 0, wblWall.W_E, 7);
Builder.wall(20, 17, 0, wblWall.N_S, 2);
Builder.wall(20, 14, 0, wblWall.N_S, 2);
Builder.wall(20, 12, 0, wblWall.E_W, 5);
Builder.wall(15, 12, 0, wblWall.N_S, 3);
Builder.wall(15, 8, 0, wblWall.N_S, 1);
Builder.wall(15, 7, 0, wblWall.E_W, 5);
Builder.door(_local7, _local8, {}, 20, 14, 0, wblWall.S_N);
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR5_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR4_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR4_R;
Builder.door(_local8, _local4, {locked:true, key:"green"}, 15, 9, 0, wblWall.N_S);
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR1_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR1_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR1_R;
_local9 = Builder.createRoom(_arg1, 8);
Builder.floorNceiling(7, 7, 1, 3, 10);
Builder.floorNceiling(10, 10, 1, 3, 2);
Builder.floorNceiling(2, 10, 1, 5, 3);
Builder.wall(7, 7, 0, wblWall.S_N, 3);
Builder.wall(7, 10, 0, wblWall.E_W, 5);
Builder.wall(2, 10, 0, wblWall.S_N, 3);
Builder.wall(2, 13, 0, wblWall.W_E, 5);
Builder.wall(7, 13, 0, wblWall.S_N, 2);
Builder.wall(7, 16, 0, wblWall.S_N, 1);
Builder.wall(7, 17, 0, wblWall.W_E, 3);
Builder.wall(10, 17, 0, wblWall.N_S, 5);
Builder.wall(10, 12, 0, wblWall.W_E, 3);
Builder.wall(13, 12, 0, wblWall.N_S, 2);
Builder.wall(13, 10, 0, wblWall.E_W, 3);
Builder.wall(10, 10, 0, wblWall.N_S, 1);
Builder.wall(10, 8, 0, wblWall.N_S, 1);
Builder.wall(10, 7, 0, wblWall.E_W, 3);
Builder.door(_local8, _local9, {}, 10, 8, 0, wblWall.S_N);
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR2;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL2;
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR3_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR3_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR3_R;
_local10 = new sasRoom(_arg1, 9);
Builder.ROOM = _local10;
Builder.floorNceiling(4, 14, 1, 3, 3);
Builder.wall(4, 14, 0, wblWall.S_N, 1, 1);
Builder.wall(4, 16, 0, wblWall.S_N, 1, 1);
Builder.wall(4, 17, 0, wblWall.W_E, 3, 1);
Builder.wall(7, 17, 0, wblWall.N_S, 1, 1);
Builder.wall(7, 15, 0, wblWall.N_S, 1, 1);
Builder.wall(7, 14, 0, wblWall.E_W, 3, 1);
Builder.door(_local9, _local10, {locked:true, key:"blue"}, 7, 15, 0, wblWall.S_N);
_local11 = new fpsRoom(_arg1, 14);
Builder.door(_local10, _local11, {dummy:true}, 4, 15, 0, wblWall.S_N);
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR1;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL1;
_local12 = Builder.createRoom(_arg1, 10);
Builder.floorNceiling(27, 1, 1, 3, 3);
Builder.wall(27, 1, 0, wblWall.S_N, 1);
Builder.wall(27, 3, 0, wblWall.S_N, 1);
Builder.wall(27, 4, 0, wblWall.W_E, 3);
Builder.wall(30, 4, 0, wblWall.N_S, 3);
Builder.wall(30, 1, 0, wblWall.E_W, 3);
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR4_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR4_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR4_R;
Builder.door(_local12, _local6, {locked:true, key:"red"}, 27, 2, 0, wblWall.S_N);
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR6_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR4_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR4_R;
_local13 = Builder.createRoom(_arg1, 11);
Builder.floorNceiling(27, 4, 1, 6, 3);
Builder.floorNceiling(30, 1, 1, 3, 3);
Builder.wall(27, 4, 0, wblWall.S_N, 1);
Builder.wall(27, 6, 0, wblWall.S_N, 1);
Builder.wall(27, 7, 0, wblWall.W_E, 6);
Builder.wall(33, 7, 0, wblWall.N_S, 6);
Builder.wall(33, 1, 0, wblWall.E_W, 3);
Builder.wall(30, 1, 0, wblWall.S_N, 3);
Builder.wall(30, 4, 0, wblWall.E_W, 3);
Builder.door(_local13, _local7, {locked:true, key:"yellow"}, 27, 5, 0, wblWall.S_N);
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR1;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL1;
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR1_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR1_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR1_R;
_local14 = Builder.createRoom(_arg1, 12);
Builder.floorNceiling(27, 7, 1, 6, 3);
Builder.floorNceiling(27, 13, 1, 6, 3);
Builder.floorNceiling(30, 10, 1, 3, 3);
Builder.wall(27, 13, 0, wblWall.S_N, 1);
Builder.wall(27, 15, 0, wblWall.S_N, 1);
Builder.wall(27, 16, 0, wblWall.W_E, 6);
Builder.wall(33, 16, 0, wblWall.N_S, 9);
Builder.wall(33, 7, 0, wblWall.E_W, 6);
Builder.wall(27, 7, 0, wblWall.S_N, 3);
Builder.wall(27, 10, 0, wblWall.W_E, 3);
Builder.wall(30, 10, 0, wblWall.S_N, 3);
Builder.wall(30, 13, 0, wblWall.E_W, 3);
Builder.door(_local14, _local7, {}, 27, 14, 0, wblWall.S_N);
_local15 = Builder.createRoom(_arg1, 13);
Builder.floorNceiling(11, 17, 1, 3, 6);
Builder.floorNceiling(14, 20, 1, 6, 2);
Builder.floorNceiling(17, 22, 1, 3, 3);
Builder.floorNceiling(5, 20, 1, 6, 2);
Builder.floorNceiling(5, 22, 1, 3, 3);
Builder.wall(11, 17, 0, wblWall.S_N, 3);
Builder.wall(11, 20, 0, wblWall.E_W, 6);
Builder.wall(5, 20, 0, wblWall.S_N, 5);
Builder.wall(5, 25, 0, wblWall.W_E, 3);
Builder.wall(8, 25, 0, wblWall.N_S, 3);
Builder.wall(8, 22, 0, wblWall.W_E, 3);
Builder.wall(11, 22, 0, wblWall.S_N, 1);
Builder.wall(11, 23, 0, wblWall.W_E, 3);
Builder.wall(14, 23, 0, wblWall.N_S, 1);
Builder.wall(14, 22, 0, wblWall.W_E, 3);
Builder.wall(17, 22, 0, wblWall.S_N, 3);
Builder.wall(17, 25, 0, wblWall.W_E, 3);
Builder.wall(20, 25, 0, wblWall.N_S, 5);
Builder.wall(20, 20, 0, wblWall.E_W, 6);
Builder.wall(14, 20, 0, wblWall.N_S, 3);
Builder.wall(14, 17, 0, wblWall.E_W, 1);
Builder.wall(12, 17, 0, wblWall.E_W, 1);
Builder.door(_local8, _local15, {}, 12, 17, 0, wblWall.W_E);
new objPortal(_local7, new Vector(2050, 0, 750));
new objPortal(_local15, new Vector(1250, 0, 2250));
new itemBoxHealth("bh01", _local5, 9, 1);
new itemBoxRPG("brpg01", _local3, 4, 5);
new itemBoxRPG("brpg02", _local13, 30, 1);
new itemBoxGun("bg01", _local3, 4, 6);
new itemBoxGun("bg02", _local6, 26, 1);
new itemBoxGun("bg03", _local7, 20, 8);
new itemBoxGun("bg04", _local8, 10, 16);
new itemBoxGun("bg05", _local12, 27, 1);
new itemBoxGun("bg06", _local13, 27, 6);
new itemBoxGun("bg07", _local14, 27, 9);
new itemBoxGun("bg08", _local15, 5, 20);
}
override public function loadUnits(_arg1:fpsGame){
var _local2:Object;
var _local3:levelArea;
_local3 = new levelArea(_arg1);
new aiAlienEgg("egg01", _arg1, 19, 11);
new aiAlienEgg("egg02", _arg1, 10, 2);
new aiAlienEgg("egg03", _arg1, 25, 2);
new aiAlienEgg("egg04", _arg1, 32, 2);
new aiAlienEgg("egg05", _arg1, 28, 8);
new aiAlienEgg("egg06", _arg1, 22, 15);
new aiAlienEgg("egg07", _arg1, 12, 14);
new aiAlienEgg("egg08", _arg1, 6, 24);
new aiAlienEgg("egg09", _arg1, 19, 24);
new aiAlienEgg("egg10", _arg1, 29, 2);
_local3.room(3);
_local3.reset();
_local3.area(12, 4, 16, 7);
_local2 = _local3.unit02();
_local2 = _local3.unit02();
_local3.reset();
_local3.area(15, 8, 20, 12);
_local2 = _local3.unit02();
_local2 = _local3.unit02();
_local3.reset();
_local3.area(15, 1, 20, 3);
_local2 = _local3.unit02();
_local2 = _local3.unit03();
_local3.reset();
_local3.area(18, 4, 23, 7);
_local2 = _local3.unit02();
_local2 = _local3.unit03();
_local3.room(4);
_local3.reset();
_local3.area(10, 1, 13, 4);
_local2 = _local3.unit02();
_local2 = _local3.unit03();
_local3.room(5);
_local3.reset();
_local3.area(22, 1, 25, 4);
_local2 = _local3.unit02();
_local2 = _local3.unit03();
_local3.room(6);
_local3.reset();
_local3.area(22, 10, 25, 12);
_local2 = _local3.unit02();
_local2 = _local3.unit03();
_local3.reset();
_local3.area(20, 7, 22, 12);
_local2 = _local3.unit02();
_local2 = _local3.unit02();
_local3.reset();
_local3.area(20, 13, 21, 15);
_local3.area(26, 13, 27, 15);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local3.room(7);
_local3.reset();
_local3.area(11, 12, 17, 17);
_local2 = _local3.unit02();
_local2 = _local3.unit02();
_local2 = _local3.unit02();
_local3.reset();
_local3.area(13, 9, 15, 11);
_local2 = _local3.unit03();
_local2 = _local3.unit02();
_local2.itemToRelease(new itemKey("green"));
_local3.reset();
_local3.area(10, 8, 12, 10);
_local2 = _local3.unit03();
_local2.itemToRelease(new itemKey("red"));
_local3.room(8);
_local3.reset();
_local3.area(2, 10, 5, 13);
_local3.area(10, 10, 13, 12);
_local2 = _local3.unit02();
_local2 = _local3.unit02();
_local2 = _local3.unit03();
_local2 = _local3.unit02();
_local3.reset();
_local3.area(7, 12, 10, 16);
_local2 = _local3.unit03();
_local2 = _local3.unit02();
_local3.room(10);
_local3.reset();
_local3.area(28, 1, 30, 4);
_local2 = _local3.unit03();
_local3.room(11);
_local3.reset();
_local3.area(29, 4, 33, 7);
_local3.area(30, 1, 33, 4);
_local2 = _local3.unit02();
_local2 = _local3.unit03();
_local2 = _local3.unit02();
_local3.room(12);
_local3.reset();
_local3.area(27, 7, 33, 10);
_local3.area(30, 10, 33, 16);
_local2 = _local3.unit02();
_local2 = _local3.unit01();
_local2.itemToRelease(new itemKey("yellow"));
_local2 = _local3.unit02();
_local2 = _local3.unit02();
_local2 = _local3.unit02();
_local3.room(13);
_local3.reset();
_local3.area(11, 20, 14, 23);
_local2 = _local3.unit03();
_local2 = _local3.unit02();
_local3.reset();
_local3.area(5, 20, 8, 25);
_local3.area(17, 20, 20, 25);
_local2 = _local3.unit03();
_local2 = _local3.unit02();
_local2 = _local3.unit03();
_local2 = _local3.unit02();
_local2 = _local3.unit02();
}
}
}//package
Section 336
//level03 (level03)
package {
import gdk.fps.*;
import sandy.core.data.*;
import gdk.fps.wbl.*;
public class level03 extends fpsZone {
public function level03(){
super(3, 41, 33, new Vector(550, 0, 2550), 90);
}
override public function loadWorld(_arg1:fpsGame){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
var _local17:*;
var _local18:*;
var _local19:fpsRoom;
if (glo.bal.PC_OPTION == 1){
new levelFloor();
new levelCeiling();
};
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR2;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL2;
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR1_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR1_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR1_R;
_local2 = Builder.createRoom(_arg1, 1);
Builder.floorNceiling(4, 24, 1, 3, 3);
Builder.wall(4, 24, 0, wblWall.S_N, 3);
Builder.wall(4, 27, 0, wblWall.W_E, 1);
Builder.wall(6, 27, 0, wblWall.W_E, 1);
Builder.wall(7, 27, 0, wblWall.N_S, 3);
Builder.wall(7, 24, 0, wblWall.E_W, 3);
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR1;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL1;
_local3 = Builder.createRoom(_arg1, 2);
Builder.floorNceiling(4, 27, 1, 3, 3);
Builder.floorNceiling(1, 21, 1, 3, 9);
Builder.wall(1, 21, 0, wblWall.S_N, 9);
Builder.wall(1, 30, 0, wblWall.W_E, 6);
Builder.wall(7, 30, 0, wblWall.N_S, 3);
Builder.wall(7, 27, 0, wblWall.E_W, 1);
Builder.wall(5, 27, 0, wblWall.E_W, 1);
Builder.wall(4, 27, 0, wblWall.N_S, 4);
Builder.wall(4, 22, 0, wblWall.N_S, 1);
Builder.wall(4, 21, 0, wblWall.E_W, 1);
Builder.wall(2, 21, 0, wblWall.E_W, 1);
Builder.door(_local2, _local3, {}, 5, 27, 0, wblWall.W_E);
_local4 = Builder.createRoom(_arg1, 3);
Builder.floorNceiling(4, 21, 1, 6, 3);
Builder.floorNceiling(7, 24, 1, 3, 3);
Builder.floorNceiling(7, 27, 1, 6, 3);
Builder.wall(4, 21, 0, wblWall.S_N, 1);
Builder.wall(4, 23, 0, wblWall.S_N, 1);
Builder.wall(4, 24, 0, wblWall.W_E, 3);
Builder.wall(7, 24, 0, wblWall.S_N, 6);
Builder.wall(7, 30, 0, wblWall.W_E, 6);
Builder.wall(13, 30, 0, wblWall.N_S, 3);
Builder.wall(13, 27, 0, wblWall.E_W, 3);
Builder.wall(10, 27, 0, wblWall.N_S, 6);
Builder.wall(10, 21, 0, wblWall.E_W, 6);
Builder.door(_local3, _local4, {}, 4, 23, 0, wblWall.N_S);
_local5 = Builder.createRoom(_arg1, 4);
Builder.floorNceiling(1, 18, 1, 3, 3);
Builder.floorNceiling(1, 15, 1, 12, 3);
Builder.floorNceiling(10, 18, 1, 3, 9);
Builder.wall(1, 15, 0, wblWall.S_N, 6);
Builder.wall(1, 21, 0, wblWall.W_E, 1);
Builder.wall(3, 21, 0, wblWall.W_E, 1);
Builder.wall(4, 21, 0, wblWall.N_S, 3);
Builder.wall(4, 18, 0, wblWall.W_E, 6);
Builder.wall(10, 18, 0, wblWall.S_N, 1);
Builder.wall(10, 20, 0, wblWall.S_N, 7);
Builder.wall(10, 27, 0, wblWall.W_E, 3);
Builder.wall(13, 27, 0, wblWall.N_S, 1);
Builder.wall(13, 25, 0, wblWall.N_S, 10);
Builder.wall(13, 15, 0, wblWall.E_W, 4);
Builder.wall(8, 15, 0, wblWall.E_W, 7);
Builder.door(_local3, _local5, {}, 3, 21, 0, wblWall.E_W);
_local6 = Builder.createRoom(_arg1, 5);
Builder.floorNceiling(4, 18, 1, 6, 3);
Builder.wall(4, 18, 0, wblWall.S_N, 3);
Builder.wall(4, 21, 0, wblWall.W_E, 6);
Builder.wall(10, 21, 0, wblWall.N_S, 1);
Builder.wall(10, 19, 0, wblWall.N_S, 1);
Builder.wall(10, 18, 0, wblWall.E_W, 6);
Builder.door(_local5, _local6, {locked:true, key:"green"}, 10, 19, 0, wblWall.S_N, _arg1.TEXLIB.DOOR5_F, _arg1.TEXLIB.DOOR4_L, _arg1.TEXLIB.DOOR4_R);
_local7 = Builder.createRoom(_arg1, 6);
Builder.floorNceiling(13, 24, 1, 6, 3);
Builder.floorNceiling(16, 27, 1, 3, 3);
Builder.floorNceiling(13, 28, 1, 3, 2);
Builder.wall(13, 24, 0, wblWall.S_N, 1);
Builder.wall(13, 26, 0, wblWall.S_N, 1);
Builder.wall(13, 27, 0, wblWall.W_E, 3);
Builder.wall(16, 27, 0, wblWall.S_N, 1);
Builder.wall(16, 28, 0, wblWall.E_W, 3);
Builder.wall(13, 28, 0, wblWall.S_N, 2);
Builder.wall(13, 30, 0, wblWall.W_E, 6);
Builder.wall(19, 30, 0, wblWall.N_S, 6);
Builder.wall(19, 24, 0, wblWall.E_W, 6);
Builder.door(_local5, _local7, {}, 13, 26, 0, wblWall.N_S);
_local8 = Builder.createRoom(_arg1, 7);
Builder.floorNceiling(1, 13, 1, 6, 2);
Builder.floorNceiling(10, 13, 1, 6, 2);
Builder.floorNceiling(1, 12, 1, 2, 1);
Builder.floorNceiling(4, 12, 1, 2, 1);
Builder.floorNceiling(11, 12, 1, 2, 1);
Builder.floorNceiling(14, 12, 1, 2, 1);
Builder.floorNceiling(1, 11, 1, 2, 1);
Builder.floorNceiling(4, 11, 1, 9, 1);
Builder.floorNceiling(14, 11, 1, 2, 1);
Builder.floorNceiling(1, 9, 1, 15, 2);
Builder.floorNceiling(7, 12, 1, 3, 3);
Builder.floorNceiling(7, 6, 1, 3, 3);
Builder.wall(1, 9, 0, wblWall.S_N, 6);
Builder.wall(1, 15, 0, wblWall.W_E, 6);
Builder.wall(7, 15, 0, wblWall.N_S, 2);
Builder.wall(7, 13, 0, wblWall.E_W, 1);
Builder.wall(6, 13, 0, wblWall.N_S, 1);
Builder.wall(6, 12, 0, wblWall.W_E, 1);
Builder.wall(7, 12, 0, wblWall.S_N, 3);
Builder.wall(7, 15, 0, wblWall.W_E, 1);
Builder.wall(9, 15, 0, wblWall.W_E, 1);
Builder.wall(10, 15, 0, wblWall.N_S, 3);
Builder.wall(10, 12, 0, wblWall.W_E, 1);
Builder.wall(11, 12, 0, wblWall.S_N, 1);
Builder.wall(11, 13, 0, wblWall.E_W, 1);
Builder.wall(10, 13, 0, wblWall.S_N, 2);
Builder.wall(10, 15, 0, wblWall.W_E, 4);
Builder.wall(15, 15, 0, wblWall.W_E, 1);
Builder.wall(16, 15, 0, wblWall.N_S, 6);
Builder.wall(16, 9, 0, wblWall.E_W, 6);
Builder.wall(10, 9, 0, wblWall.N_S, 3);
Builder.wall(10, 6, 0, wblWall.E_W, 1);
Builder.wall(8, 6, 0, wblWall.E_W, 1);
Builder.wall(7, 6, 0, wblWall.S_N, 1);
Builder.wall(7, 8, 0, wblWall.S_N, 1);
Builder.wall(7, 9, 0, wblWall.E_W, 6);
Builder.wall(4, 11, 0, wblWall.S_N, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(4, 13, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(3, 13, 0, wblWall.N_S, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(3, 11, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(14, 11, 0, wblWall.S_N, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(14, 13, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(13, 13, 0, wblWall.N_S, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(13, 11, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local5, _local8, {}, 9, 15, 0, wblWall.E_W);
_local9 = Builder.createRoom(_arg1, 8);
Builder.floorNceiling(1, 6, 1, 6, 3);
Builder.floorNceiling(1, 5, 1, 2, 1);
Builder.floorNceiling(4, 5, 1, 3, 1);
Builder.floorNceiling(1, 3, 1, 6, 2);
Builder.wall(1, 3, 0, wblWall.S_N, 6);
Builder.wall(1, 9, 0, wblWall.W_E, 6);
Builder.wall(7, 9, 0, wblWall.N_S, 1);
Builder.wall(7, 7, 0, wblWall.N_S, 1);
Builder.wall(7, 6, 0, wblWall.E_W, 4);
Builder.wall(3, 6, 0, wblWall.N_S, 1);
Builder.wall(3, 5, 0, wblWall.W_E, 1);
Builder.wall(4, 5, 0, wblWall.S_N, 1);
Builder.wall(4, 6, 0, wblWall.W_E, 3);
Builder.wall(7, 6, 0, wblWall.N_S, 3);
Builder.wall(7, 3, 0, wblWall.E_W, 6);
Builder.door(_local8, _local9, {locked:true, key:"red"}, 7, 7, 0, wblWall.S_N, _arg1.TEXLIB.DOOR4_F, _arg1.TEXLIB.DOOR4_L, _arg1.TEXLIB.DOOR4_R);
_local10 = Builder.createRoom(_arg1, 9);
Builder.floorNceiling(7, 3, 1, 6, 3);
Builder.floorNceiling(10, 6, 1, 6, 3);
Builder.floorNceiling(14, 5, 1, 2, 1);
Builder.floorNceiling(13, 3, 1, 3, 2);
Builder.wall(7, 3, 0, wblWall.S_N, 3);
Builder.wall(7, 6, 0, wblWall.W_E, 1);
Builder.wall(9, 6, 0, wblWall.W_E, 1);
Builder.wall(10, 6, 0, wblWall.S_N, 3);
Builder.wall(10, 9, 0, wblWall.W_E, 6);
Builder.wall(16, 9, 0, wblWall.N_S, 4);
Builder.wall(16, 4, 0, wblWall.N_S, 1);
Builder.wall(16, 3, 0, wblWall.E_W, 3);
Builder.wall(13, 3, 0, wblWall.S_N, 2);
Builder.wall(13, 5, 0, wblWall.W_E, 1);
Builder.wall(14, 5, 0, wblWall.S_N, 1);
Builder.wall(14, 6, 0, wblWall.E_W, 1);
Builder.wall(13, 6, 0, wblWall.N_S, 3);
Builder.wall(13, 3, 0, wblWall.E_W, 6);
Builder.door(_local8, _local10, {}, 9, 6, 0, wblWall.E_W);
_local11 = Builder.createRoom(_arg1, 10);
Builder.floorNceiling(16, 3, 1, 6, 3);
Builder.floorNceiling(16, 6, 1, 1, 1);
Builder.floorNceiling(18, 6, 1, 4, 1);
Builder.floorNceiling(16, 7, 1, 6, 2);
Builder.floorNceiling(16, 9, 1, 3, 1);
Builder.floorNceiling(16, 10, 1, 5, 2);
Builder.floorNceiling(18, 12, 1, 4, 1);
Builder.floorNceiling(16, 13, 1, 6, 2);
Builder.wall(16, 3, 0, wblWall.S_N, 1);
Builder.wall(16, 5, 0, wblWall.S_N, 1);
Builder.wall(16, 6, 0, wblWall.W_E, 2);
Builder.wall(18, 6, 0, wblWall.S_N, 1);
Builder.wall(18, 7, 0, wblWall.E_W, 2);
Builder.wall(16, 7, 0, wblWall.S_N, 5);
Builder.wall(16, 13, 0, wblWall.S_N, 2);
Builder.wall(16, 15, 0, wblWall.W_E, 4);
Builder.wall(21, 15, 0, wblWall.W_E, 1);
Builder.wall(22, 15, 0, wblWall.N_S, 3);
Builder.wall(22, 12, 0, wblWall.E_W, 1);
Builder.wall(21, 12, 0, wblWall.N_S, 2);
Builder.wall(21, 9, 0, wblWall.W_E, 1);
Builder.wall(22, 9, 0, wblWall.N_S, 4);
Builder.wall(22, 4, 0, wblWall.N_S, 1);
Builder.wall(22, 3, 0, wblWall.E_W, 6);
Builder.wall(21, 10, 0, wblWall.E_W, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(19, 10, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(19, 9, 0, wblWall.W_E, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(18, 12, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(18, 13, 0, wblWall.E_W, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(16, 12, 0, wblWall.W_E, 2, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local10, _local11, {}, 16, 5, 0, wblWall.N_S);
_local12 = Builder.createRoom(_arg1, 11);
Builder.floorNceiling(22, 3, 1, 6, 3);
Builder.wall(22, 3, 0, wblWall.S_N, 1);
Builder.wall(22, 5, 0, wblWall.S_N, 1);
Builder.wall(22, 6, 0, wblWall.W_E, 6);
Builder.wall(28, 6, 0, wblWall.N_S, 3);
Builder.wall(28, 3, 0, wblWall.E_W, 6);
Builder.door(_local11, _local12, {}, 22, 5, 0, wblWall.N_S);
_local13 = Builder.createRoom(_arg1, 12);
Builder.floorNceiling(22, 6, 1, 6, 3);
Builder.floorNceiling(21, 9, 1, 9, 1);
Builder.floorNceiling(21, 10, 1, 3, 1);
Builder.floorNceiling(26, 10, 1, 4, 1);
Builder.floorNceiling(21, 11, 1, 9, 1);
Builder.floorNceiling(22, 12, 1, 6, 3);
Builder.floorNceiling(19, 15, 1, 5, 3);
Builder.floorNceiling(25, 15, 1, 3, 3);
Builder.wall(22, 6, 0, wblWall.S_N, 3);
Builder.wall(22, 9, 0, wblWall.E_W, 1);
Builder.wall(21, 9, 0, wblWall.S_N, 3);
Builder.wall(21, 12, 0, wblWall.W_E, 1);
Builder.wall(22, 12, 0, wblWall.S_N, 3);
Builder.wall(22, 15, 0, wblWall.E_W, 1);
Builder.wall(20, 15, 0, wblWall.E_W, 1);
Builder.wall(19, 15, 0, wblWall.S_N, 3);
Builder.wall(19, 18, 0, wblWall.W_E, 5);
Builder.wall(25, 18, 0, wblWall.W_E, 3);
Builder.wall(28, 18, 0, wblWall.N_S, 6);
Builder.wall(28, 12, 0, wblWall.W_E, 2);
Builder.wall(30, 12, 0, wblWall.N_S, 3);
Builder.wall(30, 9, 0, wblWall.E_W, 2);
Builder.wall(28, 9, 0, wblWall.N_S, 1);
Builder.wall(28, 7, 0, wblWall.N_S, 1);
Builder.wall(28, 6, 0, wblWall.E_W, 6);
Builder.wall(26, 10, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(26, 11, 0, wblWall.E_W, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(24, 11, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(24, 10, 0, wblWall.W_E, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(25, 15, 0, wblWall.S_N, 3, 1, _arg1.TEXLIB.WALL2);
Builder.wall(24, 18, 0, wblWall.N_S, 3, 1, _arg1.TEXLIB.WALL2);
Builder.wall(24, 15, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local11, _local13, {}, 20, 15, 0, wblWall.W_E);
_local14 = Builder.createRoom(_arg1, 13);
Builder.floorNceiling(13, 15, 1, 6, 3);
Builder.floorNceiling(13, 18, 1, 2, 1);
Builder.floorNceiling(16, 18, 1, 3, 1);
Builder.floorNceiling(13, 19, 1, 6, 2);
Builder.floorNceiling(13, 21, 1, 2, 1);
Builder.floorNceiling(16, 21, 1, 3, 1);
Builder.floorNceiling(13, 22, 1, 6, 2);
Builder.wall(13, 15, 0, wblWall.S_N, 3);
Builder.wall(13, 18, 0, wblWall.W_E, 3);
Builder.wall(16, 18, 0, wblWall.S_N, 1);
Builder.wall(16, 19, 0, wblWall.E_W, 1);
Builder.wall(15, 19, 0, wblWall.N_S, 1);
Builder.wall(15, 18, 0, wblWall.E_W, 2);
Builder.wall(13, 18, 0, wblWall.S_N, 6);
Builder.wall(13, 24, 0, wblWall.W_E, 6);
Builder.wall(19, 24, 0, wblWall.N_S, 3);
Builder.wall(19, 21, 0, wblWall.E_W, 3);
Builder.wall(16, 21, 0, wblWall.S_N, 1);
Builder.wall(16, 22, 0, wblWall.E_W, 1);
Builder.wall(15, 22, 0, wblWall.N_S, 1);
Builder.wall(15, 21, 0, wblWall.W_E, 4);
Builder.wall(19, 21, 0, wblWall.N_S, 6);
Builder.wall(19, 15, 0, wblWall.E_W, 4);
Builder.wall(14, 15, 0, wblWall.E_W, 1);
Builder.door(_local8, _local14, {}, 14, 15, 0, wblWall.W_E);
_local15 = Builder.createRoom(_arg1, 14);
Builder.floorNceiling(28, 3, 1, 6, 1);
Builder.floorNceiling(35, 3, 1, 2, 1);
Builder.floorNceiling(28, 4, 1, 9, 1);
Builder.floorNceiling(28, 5, 1, 2, 1);
Builder.floorNceiling(31, 5, 1, 6, 1);
Builder.floorNceiling(28, 6, 1, 6, 3);
Builder.floorNceiling(30, 9, 1, 4, 3);
Builder.floorNceiling(28, 12, 1, 9, 3);
Builder.floorNceiling(28, 15, 1, 6, 3);
Builder.wall(28, 6, 0, wblWall.S_N, 1);
Builder.wall(28, 8, 0, wblWall.S_N, 1);
Builder.wall(28, 9, 0, wblWall.W_E, 2);
Builder.wall(30, 9, 0, wblWall.S_N, 3);
Builder.wall(30, 12, 0, wblWall.E_W, 2);
Builder.wall(28, 12, 0, wblWall.S_N, 6);
Builder.wall(28, 18, 0, wblWall.W_E, 6);
Builder.wall(34, 18, 0, wblWall.N_S, 1);
Builder.wall(34, 16, 0, wblWall.N_S, 1);
Builder.wall(34, 15, 0, wblWall.W_E, 3);
Builder.wall(37, 15, 0, wblWall.N_S, 3);
Builder.wall(37, 12, 0, wblWall.E_W, 3);
Builder.wall(34, 12, 0, wblWall.N_S, 6);
Builder.wall(34, 6, 0, wblWall.W_E, 1);
Builder.wall(36, 6, 0, wblWall.W_E, 1);
Builder.wall(37, 6, 0, wblWall.N_S, 3);
Builder.wall(37, 3, 0, wblWall.E_W, 2);
Builder.wall(35, 3, 0, wblWall.S_N, 1);
Builder.wall(35, 4, 0, wblWall.E_W, 1);
Builder.wall(34, 4, 0, wblWall.N_S, 1);
Builder.wall(34, 3, 0, wblWall.E_W, 6);
Builder.wall(28, 3, 0, wblWall.S_N, 3);
Builder.wall(28, 6, 0, wblWall.W_E, 2);
Builder.wall(30, 6, 0, wblWall.N_S, 1);
Builder.wall(30, 5, 0, wblWall.W_E, 1);
Builder.wall(31, 5, 0, wblWall.S_N, 1);
Builder.wall(31, 6, 0, wblWall.E_W, 3);
Builder.door(_local13, _local15, {}, 28, 8, 0, wblWall.N_S);
_local16 = Builder.createRoom(_arg1, 15);
Builder.floorNceiling(34, 6, 1, 3, 6);
Builder.wall(34, 6, 0, wblWall.S_N, 6);
Builder.wall(34, 12, 0, wblWall.W_E, 3);
Builder.wall(37, 12, 0, wblWall.N_S, 6);
Builder.wall(37, 6, 0, wblWall.E_W, 1);
Builder.wall(35, 6, 0, wblWall.E_W, 1);
Builder.door(_local15, _local16, {locked:true, key:"yellow"}, 35, 6, 0, wblWall.W_E, _arg1.TEXLIB.DOOR6_F, _arg1.TEXLIB.DOOR4_L, _arg1.TEXLIB.DOOR4_R);
_local17 = Builder.createRoom(_arg1, 16);
Builder.floorNceiling(34, 15, 1, 3, 6);
Builder.floorNceiling(28, 18, 1, 3, 3);
Builder.floorNceiling(28, 21, 1, 12, 3);
Builder.floorNceiling(31, 24, 1, 3, 3);
Builder.wall(34, 15, 0, wblWall.S_N, 1);
Builder.wall(34, 17, 0, wblWall.S_N, 4);
Builder.wall(34, 21, 0, wblWall.E_W, 3);
Builder.wall(31, 21, 0, wblWall.N_S, 3);
Builder.wall(31, 18, 0, wblWall.E_W, 3);
Builder.wall(28, 18, 0, wblWall.S_N, 6);
Builder.wall(28, 24, 0, wblWall.W_E, 1);
Builder.wall(30, 24, 0, wblWall.W_E, 1);
Builder.wall(31, 24, 0, wblWall.S_N, 3);
Builder.wall(31, 27, 0, wblWall.W_E, 3);
Builder.wall(34, 27, 0, wblWall.N_S, 3);
Builder.wall(34, 24, 0, wblWall.W_E, 6);
Builder.wall(40, 24, 0, wblWall.N_S, 3);
Builder.wall(40, 21, 0, wblWall.E_W, 3);
Builder.wall(37, 21, 0, wblWall.N_S, 6);
Builder.wall(37, 15, 0, wblWall.E_W, 3);
Builder.door(_local15, _local17, {}, 34, 17, 0, wblWall.N_S);
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR2;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL2;
_local18 = new sasRoom(_arg1, 17);
Builder.ROOM = _local18;
Builder.floorNceiling(28, 24, 1, 3, 3);
Builder.wall(28, 24, 0, wblWall.S_N, 3);
Builder.wall(28, 27, 0, wblWall.W_E, 1);
Builder.wall(30, 27, 0, wblWall.W_E, 1);
Builder.wall(31, 27, 0, wblWall.N_S, 3);
Builder.wall(31, 24, 0, wblWall.E_W, 1);
Builder.wall(29, 24, 0, wblWall.E_W, 1);
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR3_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR3_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR3_R;
Builder.door(_local17, _local18, {locked:true, key:"blue"}, 29, 24, 0, wblWall.W_E);
_local19 = new fpsRoom(_arg1, 18);
Builder.door(_local18, _local19, {dummy:true}, 29, 27, 0, wblWall.W_E);
new objPortal(_local5, new Vector(1250, 0, 1550));
new objPortal(_local10, new Vector(1550, 0, 850));
new objPortal(_local15, new Vector(3650, 0, 1350));
new itemBoxHealth("bh01", _local7, 18, 29);
new itemBoxRPG("brpg01", _local3, 1, 29);
new itemBoxRPG("brpg02", _local9, 6, 6);
new itemBoxRPG("brpg03", _local6, 9, 20);
new itemBoxGun("bg01", _local3, 6, 29);
new itemBoxGun("bg02", _local4, 7, 29);
new itemBoxGun("bg03", _local6, 4, 18);
new itemBoxGun("bg04", _local8, 2, 9);
new itemBoxGun("bg05", _local9, 6, 8);
new itemBoxGun("bg06", _local11, 16, 5);
new itemBoxGun("bg07", _local12, 22, 3);
new itemBoxGun("bg08", _local13, 19, 20);
new itemBoxGun("bg09", _local14, 18, 15);
new itemBoxGun("bg10", _local15, 33, 3);
}
override public function loadUnits(_arg1:fpsGame){
var _local2:Object;
var _local3:levelArea;
_local3 = new levelArea(_arg1);
new aiAlienEgg("egg01", _arg1, 12, 28);
new aiAlienEgg("egg02", _arg1, 4, 19);
new aiAlienEgg("egg03", _arg1, 11, 16);
new aiAlienEgg("egg04", _arg1, 13, 29);
new aiAlienEgg("egg05", _arg1, 18, 22);
new aiAlienEgg("egg06", _arg1, 1, 14);
new aiAlienEgg("egg07", _arg1, 15, 9);
new aiAlienEgg("egg08", _arg1, 6, 4);
new aiAlienEgg("egg09", _arg1, 16, 14);
new aiAlienEgg("egg10", _arg1, 23, 7);
new aiAlienEgg("egg11", _arg1, 29, 11);
new aiAlienEgg("egg12", _arg1, 27, 4);
new aiAlienEgg("egg13", _arg1, 28, 5);
new aiAlienEgg("egg14", _arg1, 35, 11);
new aiAlienEgg("egg15", _arg1, 29, 17);
_local3.room(2);
_local3.reset();
_local3.area(1, 22, 4, 26);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local3.room(3);
_local3.reset();
_local3.area(7, 21, 10, 27);
_local3.area(7, 27, 13, 30);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local3.room(4);
_local3.reset();
_local3.area(1, 15, 13, 18);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local3.reset();
_local3.area(10, 18, 13, 21);
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local2 = _local3.unit04();
_local3.room(5);
_local3.reset();
_local3.area(5, 18, 7, 21);
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local3.room(6);
_local3.reset();
_local3.area(16, 24, 19, 30);
_local3.area(13, 28, 16, 30);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local3.room(7);
_local3.reset();
_local3.area(7, 7, 10, 12);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local3.reset();
_local3.area(1, 13, 7, 15);
_local3.area(1, 11, 3, 13);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local3.reset();
_local3.area(10, 13, 16, 15);
_local3.area(14, 11, 16, 13);
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local2.itemToRelease(new itemKey("green"));
_local3.reset();
_local3.area(1, 9, 5, 12);
_local3.area(12, 9, 16, 12);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local3.reset();
_local3.area(6, 13, 7, 14);
_local3.area(10, 13, 11, 14);
_local2 = _local3.unit03();
_local3.room(8);
_local3.reset();
_local3.area(1, 6, 4, 9);
_local3.area(1, 3, 3, 6);
_local3.area(4, 3, 7, 6);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local2 = _local3.unit03();
_local3.room(9);
_local3.reset();
_local3.area(11, 3, 13, 6);
_local3.area(10, 6, 16, 9);
_local3.area(13, 3, 16, 5);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local2 = _local3.unit03();
_local3.reset();
_local3.area(13, 4, 14, 5);
_local2 = _local3.unit04();
_local2.itemToRelease(new itemKey("red"));
_local3.room(10);
_local3.reset();
_local3.area(18, 3, 22, 7);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local3.reset();
_local3.area(16, 7, 22, 9);
_local2 = _local3.unit04();
_local2 = _local3.unit03();
_local3.reset();
_local3.area(20, 10, 21, 12);
_local2 = _local3.unit04();
_local2 = _local3.unit03();
_local3.reset();
_local3.area(16, 13, 18, 15);
_local2 = _local3.unit04();
_local2 = _local3.unit03();
_local3.room(11);
_local3.reset();
_local3.area(25, 3, 28, 6);
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local3.room(12);
_local3.reset();
_local3.area(25, 6, 28, 9);
_local2 = _local3.unit04();
_local2 = _local3.unit03();
_local3.reset();
_local3.area(21, 11, 22, 12);
_local2 = _local3.unit03();
_local3.reset();
_local3.area(25, 15, 28, 18);
_local2 = _local3.unit04();
_local2 = _local3.unit03();
_local3.reset();
_local3.area(27, 9, 30, 12);
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local3.reset();
_local3.area(22, 11, 25, 14);
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local3.room(13);
_local3.reset();
_local3.area(13, 18, 15, 22);
_local3.area(15, 19, 19, 21);
_local3.area(16, 21, 19, 24);
_local3.area(13, 22, 16, 24);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local3.room(14);
_local3.reset();
_local3.area(28, 3, 30, 6);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local3.reset();
_local3.area(35, 3, 37, 6);
_local3.area(30, 9, 34, 12);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local3.reset();
_local3.area(28, 12, 30, 18);
_local3.area(34, 12, 37, 15);
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local3.room(15);
_local3.reset();
_local3.area(34, 9, 37, 12);
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local3.room(16);
_local3.reset();
_local3.area(38, 21, 40, 22);
_local3.area(29, 21, 32, 23);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local2 = _local3.unit04();
_local3.reset();
_local3.area(31, 24, 34, 27);
_local3.area(28, 18, 31, 21);
_local2 = _local3.unit03();
_local2 = _local3.unit03();
_local2 = _local3.unit04();
_local2 = _local3.unit04();
_local2.itemToRelease(new itemKey("yellow"));
}
}
}//package
Section 337
//level04 (level04)
package {
import gdk.fps.*;
import sandy.core.data.*;
import gdk.fps.wbl.*;
public class level04 extends fpsZone {
public function level04(){
super(4, 48, 36, new Vector(3450, 0, 2850), -90);
}
override public function loadWorld(_arg1:fpsGame){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
var _local17:*;
var _local18:*;
var _local19:*;
var _local20:*;
var _local21:*;
var _local22:*;
var _local23:fpsRoom;
if (glo.bal.PC_OPTION == 1){
new levelFloor();
new levelCeiling();
};
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR2;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL2;
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR1_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR1_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR1_R;
_local2 = Builder.createRoom(_arg1, 1);
Builder.floorNceiling(33, 27, 1, 3, 3);
Builder.wall(33, 27, 0, wblWall.S_N, 3);
Builder.wall(33, 30, 0, wblWall.W_E, 3);
Builder.wall(36, 30, 0, wblWall.N_S, 3);
Builder.wall(36, 27, 0, wblWall.E_W, 1);
Builder.wall(34, 27, 0, wblWall.E_W, 1);
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR1;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL1;
_local3 = Builder.createRoom(_arg1, 2);
Builder.floorNceiling(30, 21, 1, 9, 2);
Builder.floorNceiling(30, 23, 1, 3, 1);
Builder.floorNceiling(36, 23, 1, 3, 1);
Builder.floorNceiling(30, 24, 1, 9, 2);
Builder.floorNceiling(30, 26, 1, 2, 1);
Builder.floorNceiling(33, 26, 1, 3, 1);
Builder.floorNceiling(37, 26, 1, 2, 1);
Builder.floorNceiling(27, 27, 1, 5, 1);
Builder.floorNceiling(37, 27, 1, 2, 1);
Builder.floorNceiling(27, 28, 1, 6, 2);
Builder.floorNceiling(36, 28, 1, 3, 2);
Builder.wall(30, 21, 0, wblWall.S_N, 6);
Builder.wall(30, 27, 0, wblWall.E_W, 3);
Builder.wall(27, 27, 0, wblWall.S_N, 3);
Builder.wall(27, 30, 0, wblWall.W_E, 6);
Builder.wall(33, 30, 0, wblWall.N_S, 2);
Builder.wall(33, 28, 0, wblWall.E_W, 1);
Builder.wall(32, 28, 0, wblWall.N_S, 2);
Builder.wall(32, 26, 0, wblWall.W_E, 1);
Builder.wall(33, 26, 0, wblWall.S_N, 1);
Builder.wall(33, 27, 0, wblWall.W_E, 1);
Builder.wall(35, 27, 0, wblWall.W_E, 1);
Builder.wall(36, 27, 0, wblWall.N_S, 1);
Builder.wall(36, 26, 0, wblWall.W_E, 1);
Builder.wall(37, 26, 0, wblWall.S_N, 2);
Builder.wall(37, 28, 0, wblWall.E_W, 1);
Builder.wall(36, 28, 0, wblWall.S_N, 2);
Builder.wall(36, 30, 0, wblWall.W_E, 3);
Builder.wall(39, 30, 0, wblWall.N_S, 1);
Builder.wall(39, 28, 0, wblWall.N_S, 7);
Builder.wall(39, 21, 0, wblWall.E_W, 4);
Builder.wall(34, 21, 0, wblWall.E_W, 4);
Builder.wall(36, 23, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(36, 24, 0, wblWall.E_W, 3, 1, _arg1.TEXLIB.WALL2);
Builder.wall(33, 24, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(33, 23, 0, wblWall.W_E, 3, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local2, _local3, {}, 35, 27, 0, wblWall.E_W);
_local4 = Builder.createRoom(_arg1, 3);
Builder.floorNceiling(39, 24, 1, 6, 2);
Builder.floorNceiling(42, 26, 1, 3, 1);
Builder.floorNceiling(39, 27, 1, 6, 2);
Builder.floorNceiling(39, 29, 1, 3, 1);
Builder.floorNceiling(43, 29, 1, 2, 2);
Builder.floorNceiling(33, 30, 1, 8, 1);
Builder.floorNceiling(33, 31, 1, 2, 1);
Builder.floorNceiling(36, 31, 1, 2, 1);
Builder.floorNceiling(39, 31, 1, 6, 1);
Builder.floorNceiling(33, 32, 1, 12, 1);
Builder.wall(39, 24, 0, wblWall.S_N, 2);
Builder.wall(39, 26, 0, wblWall.W_E, 3);
Builder.wall(42, 26, 0, wblWall.S_N, 1);
Builder.wall(42, 27, 0, wblWall.E_W, 3);
Builder.wall(39, 27, 0, wblWall.S_N, 1);
Builder.wall(39, 29, 0, wblWall.S_N, 1);
Builder.wall(39, 30, 0, wblWall.E_W, 6);
Builder.wall(33, 30, 0, wblWall.S_N, 3);
Builder.wall(33, 33, 0, wblWall.W_E, 12);
Builder.wall(45, 33, 0, wblWall.N_S, 9);
Builder.wall(45, 24, 0, wblWall.E_W, 6);
Builder.wall(36, 31, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(36, 32, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(35, 32, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(35, 31, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(39, 31, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(39, 32, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(38, 32, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(38, 31, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(43, 29, 0, wblWall.S_N, 2);
Builder.wall(43, 31, 0, wblWall.E_W, 2);
Builder.wall(41, 31, 0, wblWall.N_S, 1);
Builder.wall(41, 30, 0, wblWall.W_E, 1);
Builder.wall(42, 30, 0, wblWall.N_S, 1);
Builder.wall(42, 29, 0, wblWall.W_E, 1);
Builder.door(_local3, _local4, {}, 39, 29, 0, wblWall.N_S);
_local5 = Builder.createRoom(_arg1, 4);
Builder.floorNceiling(27, 12, 1, 3, 6);
Builder.floorNceiling(27, 21, 1, 3, 6);
Builder.floorNceiling(21, 18, 1, 15, 1);
Builder.floorNceiling(21, 19, 1, 7, 1);
Builder.floorNceiling(29, 19, 1, 7, 1);
Builder.floorNceiling(21, 20, 1, 15, 1);
Builder.wall(27, 12, 0, wblWall.S_N, 6);
Builder.wall(27, 18, 0, wblWall.E_W, 6);
Builder.wall(21, 18, 0, wblWall.S_N, 1);
Builder.wall(21, 20, 0, wblWall.S_N, 1);
Builder.wall(21, 21, 0, wblWall.W_E, 6);
Builder.wall(27, 21, 0, wblWall.S_N, 4);
Builder.wall(27, 26, 0, wblWall.S_N, 1);
Builder.wall(27, 27, 0, wblWall.W_E, 3);
Builder.wall(30, 27, 0, wblWall.N_S, 6);
Builder.wall(30, 21, 0, wblWall.W_E, 4);
Builder.wall(35, 21, 0, wblWall.W_E, 1);
Builder.wall(36, 21, 0, wblWall.N_S, 3);
Builder.wall(36, 18, 0, wblWall.E_W, 6);
Builder.wall(30, 18, 0, wblWall.N_S, 1);
Builder.wall(30, 16, 0, wblWall.N_S, 4);
Builder.wall(30, 12, 0, wblWall.E_W, 1);
Builder.wall(28, 12, 0, wblWall.E_W, 1);
Builder.wall(29, 19, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(29, 20, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(28, 20, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(28, 19, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local3, _local5, {}, 35, 21, 0, wblWall.E_W);
_local6 = Builder.createRoom(_arg1, 5);
Builder.floorNceiling(30, 12, 1, 6, 2);
Builder.floorNceiling(32, 14, 1, 4, 1);
Builder.floorNceiling(30, 15, 1, 9, 1);
Builder.floorNceiling(30, 16, 1, 4, 1);
Builder.floorNceiling(35, 16, 1, 4, 1);
Builder.floorNceiling(30, 17, 1, 9, 1);
Builder.floorNceiling(36, 18, 1, 3, 3);
Builder.wall(30, 12, 0, wblWall.S_N, 2);
Builder.wall(30, 14, 0, wblWall.W_E, 2);
Builder.wall(32, 14, 0, wblWall.S_N, 1);
Builder.wall(32, 15, 0, wblWall.E_W, 2);
Builder.wall(30, 15, 0, wblWall.S_N, 1);
Builder.wall(30, 17, 0, wblWall.S_N, 1);
Builder.wall(30, 18, 0, wblWall.W_E, 6);
Builder.wall(36, 18, 0, wblWall.S_N, 3);
Builder.wall(36, 21, 0, wblWall.W_E, 3);
Builder.wall(39, 21, 0, wblWall.N_S, 6);
Builder.wall(39, 15, 0, wblWall.E_W, 1);
Builder.wall(37, 15, 0, wblWall.E_W, 1);
Builder.wall(36, 15, 0, wblWall.N_S, 3);
Builder.wall(36, 12, 0, wblWall.E_W, 6);
Builder.wall(35, 16, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(35, 17, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(34, 17, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(34, 16, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local5, _local6, {}, 30, 17, 0, wblWall.N_S);
_local7 = Builder.createRoom(_arg1, 6);
Builder.floorNceiling(36, 12, 1, 9, 1);
Builder.floorNceiling(36, 13, 1, 5, 2);
Builder.floorNceiling(42, 13, 1, 3, 2);
Builder.floorNceiling(39, 15, 1, 6, 2);
Builder.floorNceiling(41, 17, 1, 2, 1);
Builder.floorNceiling(39, 18, 1, 6, 2);
Builder.floorNceiling(39, 20, 1, 2, 1);
Builder.floorNceiling(43, 20, 1, 2, 1);
Builder.floorNceiling(39, 21, 1, 6, 3);
Builder.wall(36, 12, 0, wblWall.S_N, 3);
Builder.wall(36, 15, 0, wblWall.W_E, 1);
Builder.wall(38, 15, 0, wblWall.W_E, 1);
Builder.wall(39, 15, 0, wblWall.S_N, 2);
Builder.wall(39, 17, 0, wblWall.W_E, 2);
Builder.wall(41, 17, 0, wblWall.S_N, 1);
Builder.wall(41, 18, 0, wblWall.E_W, 2);
Builder.wall(39, 18, 0, wblWall.S_N, 6);
Builder.wall(39, 24, 0, wblWall.W_E, 6);
Builder.wall(45, 24, 0, wblWall.N_S, 6);
Builder.wall(45, 18, 0, wblWall.E_W, 2);
Builder.wall(43, 18, 0, wblWall.N_S, 1);
Builder.wall(43, 17, 0, wblWall.W_E, 2);
Builder.wall(45, 17, 0, wblWall.N_S, 5);
Builder.wall(45, 12, 0, wblWall.E_W, 9);
Builder.wall(42, 13, 0, wblWall.S_N, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(42, 15, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(41, 15, 0, wblWall.N_S, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(41, 13, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(43, 20, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(43, 21, 0, wblWall.E_W, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(41, 21, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(41, 20, 0, wblWall.W_E, 2, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local6, _local7, {}, 38, 15, 0, wblWall.E_W);
_local8 = Builder.createRoom(_arg1, 7);
Builder.floorNceiling(21, 21, 1, 6, 2);
Builder.floorNceiling(21, 23, 1, 4, 1);
Builder.floorNceiling(18, 24, 1, 9, 1);
Builder.floorNceiling(18, 25, 1, 4, 1);
Builder.floorNceiling(23, 25, 1, 4, 1);
Builder.floorNceiling(18, 26, 1, 9, 1);
Builder.floorNceiling(21, 27, 1, 4, 1);
Builder.floorNceiling(21, 28, 1, 6, 2);
Builder.floorNceiling(21, 30, 1, 2, 1);
Builder.floorNceiling(25, 30, 1, 8, 1);
Builder.floorNceiling(21, 31, 1, 12, 2);
Builder.wall(21, 21, 0, wblWall.S_N, 3);
Builder.wall(21, 24, 0, wblWall.E_W, 3);
Builder.wall(18, 24, 0, wblWall.S_N, 3);
Builder.wall(18, 27, 0, wblWall.W_E, 1);
Builder.wall(20, 27, 0, wblWall.W_E, 1);
Builder.wall(21, 27, 0, wblWall.S_N, 6);
Builder.wall(21, 33, 0, wblWall.W_E, 12);
Builder.wall(33, 33, 0, wblWall.N_S, 3);
Builder.wall(33, 30, 0, wblWall.E_W, 6);
Builder.wall(27, 30, 0, wblWall.N_S, 2);
Builder.wall(27, 28, 0, wblWall.E_W, 2);
Builder.wall(25, 28, 0, wblWall.N_S, 1);
Builder.wall(25, 27, 0, wblWall.W_E, 2);
Builder.wall(27, 27, 0, wblWall.N_S, 1);
Builder.wall(27, 25, 0, wblWall.N_S, 1);
Builder.wall(27, 24, 0, wblWall.E_W, 2);
Builder.wall(25, 24, 0, wblWall.N_S, 1);
Builder.wall(25, 23, 0, wblWall.W_E, 2);
Builder.wall(27, 23, 0, wblWall.N_S, 2);
Builder.wall(27, 21, 0, wblWall.E_W, 6);
Builder.wall(23, 25, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(23, 26, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(22, 26, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(22, 25, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(25, 30, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(25, 31, 0, wblWall.E_W, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(23, 31, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(23, 30, 0, wblWall.W_E, 2, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local5, _local8, {}, 27, 25, 0, wblWall.S_N);
_local9 = Builder.createRoom(_arg1, 8);
Builder.floorNceiling(18, 27, 1, 3, 3);
Builder.floorNceiling(9, 27, 1, 3, 3);
Builder.floorNceiling(9, 30, 1, 12, 3);
Builder.wall(18, 27, 0, wblWall.S_N, 3);
Builder.wall(18, 30, 0, wblWall.E_W, 6);
Builder.wall(12, 30, 0, wblWall.N_S, 1);
Builder.wall(12, 28, 0, wblWall.N_S, 1);
Builder.wall(12, 27, 0, wblWall.E_W, 1);
Builder.wall(10, 27, 0, wblWall.E_W, 1);
Builder.wall(9, 27, 0, wblWall.S_N, 6);
Builder.wall(9, 33, 0, wblWall.W_E, 12);
Builder.wall(21, 33, 0, wblWall.N_S, 6);
Builder.wall(21, 27, 0, wblWall.E_W, 1);
Builder.wall(19, 27, 0, wblWall.E_W, 1);
Builder.door(_local8, _local9, {}, 19, 27, 0, wblWall.W_E);
_local10 = Builder.createRoom(_arg1, 9);
Builder.floorNceiling(12, 27, 1, 6, 3);
Builder.wall(12, 27, 0, wblWall.S_N, 1);
Builder.wall(12, 29, 0, wblWall.S_N, 1);
Builder.wall(12, 30, 0, wblWall.W_E, 6);
Builder.wall(18, 30, 0, wblWall.N_S, 3);
Builder.wall(18, 27, 0, wblWall.E_W, 6);
Builder.door(_local9, _local10, {}, 12, 29, 0, wblWall.N_S);
_local11 = Builder.createRoom(_arg1, 10);
Builder.floorNceiling(3, 24, 1, 15, 2);
Builder.floorNceiling(3, 26, 1, 5, 2);
Builder.floorNceiling(9, 26, 1, 3, 1);
Builder.floorNceiling(13, 26, 1, 5, 1);
Builder.floorNceiling(3, 28, 1, 6, 1);
Builder.floorNceiling(3, 29, 1, 2, 1);
Builder.floorNceiling(7, 29, 1, 2, 1);
Builder.floorNceiling(3, 30, 1, 6, 3);
Builder.wall(3, 24, 0, wblWall.S_N, 9);
Builder.wall(3, 33, 0, wblWall.W_E, 6);
Builder.wall(9, 33, 0, wblWall.N_S, 5);
Builder.wall(9, 28, 0, wblWall.E_W, 1);
Builder.wall(8, 28, 0, wblWall.N_S, 2);
Builder.wall(8, 26, 0, wblWall.W_E, 1);
Builder.wall(9, 26, 0, wblWall.S_N, 1);
Builder.wall(9, 27, 0, wblWall.W_E, 1);
Builder.wall(11, 27, 0, wblWall.W_E, 1);
Builder.wall(12, 27, 0, wblWall.N_S, 1);
Builder.wall(12, 26, 0, wblWall.W_E, 1);
Builder.wall(13, 26, 0, wblWall.S_N, 1);
Builder.wall(13, 27, 0, wblWall.W_E, 5);
Builder.wall(18, 27, 0, wblWall.N_S, 3);
Builder.wall(18, 24, 0, wblWall.E_W, 1);
Builder.wall(16, 24, 0, wblWall.E_W, 11);
Builder.wall(4, 24, 0, wblWall.E_W, 1);
Builder.wall(7, 29, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(7, 30, 0, wblWall.E_W, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(5, 30, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(5, 29, 0, wblWall.W_E, 2, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local9, _local11, {}, 11, 27, 0, wblWall.E_W);
_local12 = Builder.createRoom(_arg1, 11);
Builder.floorNceiling(3, 15, 1, 6, 3);
Builder.floorNceiling(5, 18, 1, 2, 1);
Builder.floorNceiling(3, 19, 1, 6, 3);
Builder.floorNceiling(3, 22, 1, 3, 2);
Builder.floorNceiling(7, 22, 1, 2, 2);
Builder.wall(3, 15, 0, wblWall.S_N, 3);
Builder.wall(3, 18, 0, wblWall.W_E, 2);
Builder.wall(5, 18, 0, wblWall.S_N, 1);
Builder.wall(5, 19, 0, wblWall.E_W, 2);
Builder.wall(3, 19, 0, wblWall.S_N, 5);
Builder.wall(3, 24, 0, wblWall.W_E, 1);
Builder.wall(5, 24, 0, wblWall.W_E, 1);
Builder.wall(6, 24, 0, wblWall.N_S, 2);
Builder.wall(6, 22, 0, wblWall.W_E, 1);
Builder.wall(7, 22, 0, wblWall.S_N, 2);
Builder.wall(7, 24, 0, wblWall.W_E, 2);
Builder.wall(9, 24, 0, wblWall.N_S, 5);
Builder.wall(9, 19, 0, wblWall.E_W, 2);
Builder.wall(7, 19, 0, wblWall.N_S, 1);
Builder.wall(7, 18, 0, wblWall.W_E, 2);
Builder.wall(9, 18, 0, wblWall.N_S, 3);
Builder.wall(9, 15, 0, wblWall.E_W, 6);
Builder.door(_local11, _local12, {}, 5, 24, 0, wblWall.E_W);
_local13 = Builder.createRoom(_arg1, 12);
Builder.floorNceiling(9, 15, 1, 18, 3);
Builder.floorNceiling(9, 18, 1, 2, 3);
Builder.floorNceiling(12, 18, 1, 3, 1);
Builder.floorNceiling(18, 18, 1, 3, 1);
Builder.floorNceiling(12, 19, 1, 9, 2);
Builder.floorNceiling(9, 21, 1, 12, 1);
Builder.floorNceiling(9, 22, 1, 5, 2);
Builder.floorNceiling(15, 22, 1, 3, 2);
Builder.floorNceiling(19, 22, 1, 2, 2);
Builder.wall(9, 15, 0, wblWall.S_N, 9);
Builder.wall(9, 24, 0, wblWall.W_E, 5);
Builder.wall(14, 24, 0, wblWall.N_S, 2);
Builder.wall(14, 22, 0, wblWall.W_E, 1);
Builder.wall(15, 22, 0, wblWall.S_N, 2);
Builder.wall(15, 24, 0, wblWall.W_E, 1);
Builder.wall(17, 24, 0, wblWall.W_E, 1);
Builder.wall(18, 24, 0, wblWall.N_S, 2);
Builder.wall(18, 22, 0, wblWall.W_E, 1);
Builder.wall(19, 22, 0, wblWall.S_N, 2);
Builder.wall(19, 24, 0, wblWall.W_E, 2);
Builder.wall(21, 24, 0, wblWall.N_S, 4);
Builder.wall(21, 19, 0, wblWall.N_S, 1);
Builder.wall(21, 18, 0, wblWall.W_E, 6);
Builder.wall(27, 18, 0, wblWall.N_S, 3);
Builder.wall(27, 15, 0, wblWall.E_W, 18);
Builder.wall(12, 18, 0, wblWall.S_N, 3);
Builder.wall(12, 21, 0, wblWall.E_W, 1);
Builder.wall(11, 21, 0, wblWall.N_S, 3);
Builder.wall(11, 18, 0, wblWall.W_E, 1);
Builder.wall(18, 18, 0, wblWall.S_N, 1);
Builder.wall(18, 19, 0, wblWall.E_W, 3);
Builder.wall(15, 19, 0, wblWall.N_S, 1);
Builder.wall(15, 18, 0, wblWall.W_E, 3);
Builder.door(_local11, _local13, {}, 17, 24, 0, wblWall.E_W);
Builder.door(_local13, _local5, {locked:true, key:"green"}, 21, 20, 0, wblWall.N_S, _arg1.TEXLIB.DOOR5_F, _arg1.TEXLIB.DOOR4_L, _arg1.TEXLIB.DOOR4_R);
_local14 = Builder.createRoom(_arg1, 13);
Builder.floorNceiling(27, 9, 1, 9, 3);
Builder.floorNceiling(33, 3, 1, 3, 6);
Builder.wall(27, 9, 0, wblWall.S_N, 3);
Builder.wall(27, 12, 0, wblWall.W_E, 1);
Builder.wall(29, 12, 0, wblWall.W_E, 7);
Builder.wall(36, 12, 0, wblWall.N_S, 4);
Builder.wall(36, 7, 0, wblWall.N_S, 4);
Builder.wall(36, 3, 0, wblWall.E_W, 3);
Builder.wall(33, 3, 0, wblWall.S_N, 1);
Builder.wall(33, 5, 0, wblWall.S_N, 4);
Builder.wall(33, 9, 0, wblWall.E_W, 6);
Builder.door(_local5, _local14, {locked:true, key:"yellow"}, 29, 12, 0, wblWall.E_W, _arg1.TEXLIB.DOOR6_F, _arg1.TEXLIB.DOOR4_L, _arg1.TEXLIB.DOOR4_R);
_local15 = Builder.createRoom(_arg1, 14);
Builder.floorNceiling(36, 3, 1, 9, 2);
Builder.floorNceiling(36, 5, 1, 2, 1);
Builder.floorNceiling(39, 5, 1, 2, 1);
Builder.floorNceiling(42, 5, 1, 3, 1);
Builder.floorNceiling(36, 6, 1, 9, 3);
Builder.floorNceiling(36, 9, 1, 2, 1);
Builder.floorNceiling(39, 9, 1, 2, 1);
Builder.floorNceiling(42, 9, 1, 3, 1);
Builder.floorNceiling(36, 10, 1, 9, 2);
Builder.wall(36, 3, 0, wblWall.S_N, 4);
Builder.wall(36, 8, 0, wblWall.S_N, 4);
Builder.wall(36, 12, 0, wblWall.W_E, 9);
Builder.wall(45, 12, 0, wblWall.N_S, 9);
Builder.wall(45, 3, 0, wblWall.E_W, 9);
Builder.wall(39, 5, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(39, 6, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(38, 6, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(38, 5, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(39, 9, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(39, 10, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(38, 10, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(38, 9, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(42, 5, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(42, 6, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(41, 6, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(41, 5, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(42, 9, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(42, 10, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(41, 10, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(41, 9, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local14, _local15, {locked:true, key:"red"}, 36, 8, 0, wblWall.N_S, _arg1.TEXLIB.DOOR4_F, _arg1.TEXLIB.DOOR4_L, _arg1.TEXLIB.DOOR4_R);
_local16 = Builder.createRoom(_arg1, 15);
Builder.floorNceiling(27, 3, 1, 6, 3);
Builder.wall(27, 3, 0, wblWall.S_N, 1);
Builder.wall(27, 5, 0, wblWall.S_N, 1);
Builder.wall(27, 6, 0, wblWall.W_E, 6);
Builder.wall(33, 6, 0, wblWall.N_S, 1);
Builder.wall(33, 4, 0, wblWall.N_S, 1);
Builder.wall(33, 3, 0, wblWall.E_W, 6);
Builder.door(_local14, _local16, {}, 33, 4, 0, wblWall.S_N);
_local17 = Builder.createRoom(_arg1, 16);
Builder.floorNceiling(24, 3, 1, 3, 3);
Builder.floorNceiling(18, 6, 1, 15, 1);
Builder.floorNceiling(18, 7, 1, 7, 1);
Builder.floorNceiling(26, 7, 1, 7, 1);
Builder.floorNceiling(18, 8, 1, 15, 1);
Builder.floorNceiling(24, 9, 1, 3, 6);
Builder.wall(24, 3, 0, wblWall.S_N, 3);
Builder.wall(24, 6, 0, wblWall.E_W, 6);
Builder.wall(18, 6, 0, wblWall.S_N, 1);
Builder.wall(18, 8, 0, wblWall.S_N, 1);
Builder.wall(18, 9, 0, wblWall.W_E, 6);
Builder.wall(24, 9, 0, wblWall.S_N, 4);
Builder.wall(24, 14, 0, wblWall.S_N, 1);
Builder.wall(24, 15, 0, wblWall.W_E, 3);
Builder.wall(27, 15, 0, wblWall.N_S, 6);
Builder.wall(27, 9, 0, wblWall.W_E, 6);
Builder.wall(33, 9, 0, wblWall.N_S, 3);
Builder.wall(33, 6, 0, wblWall.E_W, 6);
Builder.wall(27, 6, 0, wblWall.N_S, 1);
Builder.wall(27, 4, 0, wblWall.N_S, 1);
Builder.wall(27, 3, 0, wblWall.E_W, 3);
Builder.wall(26, 7, 0, wblWall.S_N, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(26, 8, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(25, 8, 0, wblWall.N_S, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(25, 7, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local16, _local17, {}, 27, 4, 0, wblWall.S_N);
_local18 = Builder.createRoom(_arg1, 17);
Builder.floorNceiling(15, 9, 1, 9, 2);
Builder.floorNceiling(15, 11, 1, 3, 2);
Builder.floorNceiling(19, 11, 1, 2, 2);
Builder.floorNceiling(21, 12, 1, 3, 1);
Builder.floorNceiling(15, 13, 1, 9, 2);
Builder.wall(15, 9, 0, wblWall.S_N, 6);
Builder.wall(15, 15, 0, wblWall.W_E, 9);
Builder.wall(24, 15, 0, wblWall.N_S, 1);
Builder.wall(24, 13, 0, wblWall.N_S, 1);
Builder.wall(24, 12, 0, wblWall.E_W, 3);
Builder.wall(21, 12, 0, wblWall.N_S, 1);
Builder.wall(21, 11, 0, wblWall.W_E, 3);
Builder.wall(24, 11, 0, wblWall.N_S, 2);
Builder.wall(24, 9, 0, wblWall.E_W, 9);
Builder.wall(19, 11, 0, wblWall.S_N, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(19, 13, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(18, 13, 0, wblWall.N_S, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(18, 11, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local17, _local18, {}, 24, 13, 0, wblWall.S_N);
_local19 = Builder.createRoom(_arg1, 18);
Builder.floorNceiling(15, 3, 1, 9, 3);
Builder.floorNceiling(15, 6, 1, 3, 3);
Builder.floorNceiling(12, 6, 1, 3, 6);
Builder.wall(15, 3, 0, wblWall.S_N, 3);
Builder.wall(15, 6, 0, wblWall.E_W, 3);
Builder.wall(12, 6, 0, wblWall.S_N, 6);
Builder.wall(12, 12, 0, wblWall.W_E, 1);
Builder.wall(14, 12, 0, wblWall.W_E, 1);
Builder.wall(15, 12, 0, wblWall.N_S, 3);
Builder.wall(15, 9, 0, wblWall.W_E, 3);
Builder.wall(18, 9, 0, wblWall.N_S, 1);
Builder.wall(18, 7, 0, wblWall.N_S, 1);
Builder.wall(18, 6, 0, wblWall.W_E, 6);
Builder.wall(24, 6, 0, wblWall.N_S, 3);
Builder.wall(24, 3, 0, wblWall.E_W, 9);
Builder.door(_local17, _local19, {}, 18, 7, 0, wblWall.S_N);
_local20 = Builder.createRoom(_arg1, 19);
Builder.floorNceiling(3, 3, 1, 3, 3);
Builder.floorNceiling(3, 6, 1, 6, 3);
Builder.floorNceiling(3, 9, 1, 2, 1);
Builder.floorNceiling(6, 9, 1, 6, 2);
Builder.floorNceiling(3, 10, 1, 3, 5);
Builder.floorNceiling(6, 11, 1, 2, 2);
Builder.floorNceiling(9, 11, 1, 2, 2);
Builder.floorNceiling(12, 12, 1, 3, 1);
Builder.floorNceiling(6, 13, 1, 9, 2);
Builder.wall(3, 3, 0, wblWall.S_N, 12);
Builder.wall(3, 15, 0, wblWall.W_E, 3);
Builder.wall(6, 15, 0, wblWall.N_S, 5);
Builder.wall(6, 10, 0, wblWall.E_W, 1);
Builder.wall(5, 10, 0, wblWall.N_S, 1);
Builder.wall(5, 9, 0, wblWall.W_E, 1);
Builder.wall(6, 9, 0, wblWall.S_N, 6);
Builder.wall(6, 15, 0, wblWall.W_E, 9);
Builder.wall(15, 15, 0, wblWall.N_S, 3);
Builder.wall(15, 12, 0, wblWall.E_W, 1);
Builder.wall(13, 12, 0, wblWall.E_W, 1);
Builder.wall(12, 12, 0, wblWall.S_N, 1);
Builder.wall(12, 13, 0, wblWall.E_W, 1);
Builder.wall(11, 13, 0, wblWall.N_S, 2);
Builder.wall(11, 11, 0, wblWall.W_E, 1);
Builder.wall(12, 11, 0, wblWall.N_S, 2);
Builder.wall(12, 9, 0, wblWall.E_W, 3);
Builder.wall(9, 9, 0, wblWall.N_S, 3);
Builder.wall(9, 6, 0, wblWall.E_W, 3);
Builder.wall(6, 6, 0, wblWall.N_S, 1);
Builder.wall(6, 4, 0, wblWall.N_S, 1);
Builder.wall(6, 3, 0, wblWall.E_W, 3);
Builder.wall(9, 11, 0, wblWall.S_N, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(9, 13, 0, wblWall.E_W, 1, 1, _arg1.TEXLIB.WALL2);
Builder.wall(8, 13, 0, wblWall.N_S, 2, 1, _arg1.TEXLIB.WALL2);
Builder.wall(8, 11, 0, wblWall.W_E, 1, 1, _arg1.TEXLIB.WALL2);
Builder.door(_local19, _local20, {}, 13, 12, 0, wblWall.W_E);
_local21 = Builder.createRoom(_arg1, 20);
Builder.floorNceiling(6, 3, 1, 6, 2);
Builder.floorNceiling(6, 5, 1, 3, 1);
Builder.floorNceiling(10, 5, 1, 2, 2);
Builder.floorNceiling(9, 7, 1, 3, 2);
Builder.wall(6, 3, 0, wblWall.S_N, 1);
Builder.wall(6, 5, 0, wblWall.S_N, 1);
Builder.wall(6, 6, 0, wblWall.W_E, 3);
Builder.wall(9, 6, 0, wblWall.N_S, 1);
Builder.wall(9, 5, 0, wblWall.W_E, 1);
Builder.wall(10, 5, 0, wblWall.S_N, 2);
Builder.wall(10, 7, 0, wblWall.E_W, 1);
Builder.wall(9, 7, 0, wblWall.S_N, 2);
Builder.wall(9, 9, 0, wblWall.W_E, 3);
Builder.wall(12, 9, 0, wblWall.N_S, 4);
Builder.wall(12, 4, 0, wblWall.N_S, 1);
Builder.wall(12, 3, 0, wblWall.E_W, 6);
Builder.door(_local20, _local21, {}, 6, 5, 0, wblWall.N_S);
Builder.TEX_FLOOR = _arg1.TEXLIB.FLOOR2;
Builder.TEX_WALL = _arg1.TEXLIB.WALL1;
Builder.TEX_CEILING = _arg1.TEXLIB.CEIL2;
_local22 = new sasRoom(_arg1, 21);
Builder.ROOM = _local22;
Builder.floorNceiling(12, 3, 1, 3, 3);
Builder.wall(12, 3, 0, wblWall.S_N, 1);
Builder.wall(12, 5, 0, wblWall.S_N, 1);
Builder.wall(12, 6, 0, wblWall.W_E, 3);
Builder.wall(15, 6, 0, wblWall.N_S, 3);
Builder.wall(15, 3, 0, wblWall.E_W, 1);
Builder.wall(13, 3, 0, wblWall.E_W, 1);
Builder.TEX_DOOR_F = _arg1.TEXLIB.DOOR3_F;
Builder.TEX_DOOR_L = _arg1.TEXLIB.DOOR3_L;
Builder.TEX_DOOR_R = _arg1.TEXLIB.DOOR3_R;
Builder.door(_local21, _local22, {locked:true, key:"blue"}, 12, 5, 0, wblWall.N_S);
_local23 = new fpsRoom(_arg1, 22);
Builder.door(_local22, _local23, {dummy:true}, 14, 3, 0, wblWall.E_W);
new objPortal(_local6, new Vector(3550, 0, 1250));
new objPortal(_local8, new Vector(2150, 0, 2150));
new objPortal(_local13, new Vector(1650, 0, 1550));
new objPortal(_local17, new Vector(2450, 0, 750));
new itemBoxHealth("bh01", _local4, 37, 31);
new itemBoxRPG("brpg01", _local3, 32, 28);
new itemBoxRPG("brpg02", _local10, 12, 29);
new itemBoxRPG("brpg03", _local17, 25, 8);
new itemBoxGun("bg01", _local3, 34, 24);
new itemBoxGun("bg02", _local4, 41, 29);
new itemBoxGun("bg03", _local6, 34, 12);
new itemBoxGun("bg04", _local7, 39, 16);
new itemBoxGun("bg05", _local8, 23, 25);
new itemBoxGun("bg06", _local10, 12, 27);
new itemBoxGun("bg07", _local11, 8, 28);
new itemBoxGun("bg08", _local12, 8, 17);
new itemBoxGun("bg09", _local13, 12, 19);
new itemBoxGun("bg10", _local15, 40, 7);
new itemBoxGun("bg11", _local18, 15, 14);
}
override public function loadUnits(_arg1:fpsGame){
var _local2:Object;
var _local3:levelArea;
_local3 = new levelArea(_arg1);
new aiAlienEgg("egg01", _arg1, 33, 31);
new aiAlienEgg("egg02", _arg1, 27, 29);
new aiAlienEgg("egg03", _arg1, 39, 24);
new aiAlienEgg("egg04", _arg1, 32, 30);
new aiAlienEgg("egg05", _arg1, 39, 23);
new aiAlienEgg("egg06", _arg1, 18, 24);
new aiAlienEgg("egg07", _arg1, 17, 29);
new aiAlienEgg("egg08", _arg1, 9, 27);
new aiAlienEgg("egg09", _arg1, 3, 32);
new aiAlienEgg("egg10", _arg1, 8, 23);
new aiAlienEgg("egg11", _arg1, 9, 23);
new aiAlienEgg("egg12", _arg1, 3, 17);
new aiAlienEgg("egg13", _arg1, 3, 14);
new aiAlienEgg("egg14", _arg1, 26, 15);
new aiAlienEgg("egg15", _arg1, 24, 14);
new aiAlienEgg("egg16", _arg1, 23, 9);
new aiAlienEgg("egg17", _arg1, 23, 5);
new aiAlienEgg("egg18", _arg1, 30, 12);
new aiAlienEgg("egg19", _arg1, 44, 12);
new aiAlienEgg("egg20", _arg1, 44, 3);
_local3.room(2);
_local3.reset();
_local3.area(33, 21, 36, 23);
_local2 = _local3.unit04();
_local2 = _local3.unit06();
_local3.reset();
_local3.area(27, 27, 32, 30);
_local2 = _local3.unit05();
_local2 = _local3.unit06();
_local3.reset();
_local3.area(32, 28, 33, 30);
_local2 = _local3.unit06();
_local3.reset();
_local3.area(36, 28, 37, 30);
_local2 = _local3.unit06();
_local3.reset();
_local3.area(37, 26, 39, 30);
_local2 = _local3.unit04();
_local2 = _local3.unit06();
_local3.room(3);
_local3.reset();
_local3.area(39, 24, 43, 26);
_local2 = _local3.unit04();
_local2 = _local3.unit06();
_local3.reset();
_local3.area(43, 30, 45, 33);
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local3.reset();
_local3.area(33, 30, 35, 33);
_local3.area(36, 30, 38, 33);
_local3.area(33, 32, 39, 33);
_local3.area(33, 30, 39, 31);
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local2 = _local3.unit06();
_local3.room(4);
_local3.reset();
_local3.area(21, 18, 25, 21);
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local3.reset();
_local3.area(27, 14, 30, 17);
_local3.area(27, 22, 30, 25);
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local2 = _local3.unit04();
_local2 = _local3.unit06();
_local3.room(5);
_local3.reset();
_local3.area(30, 12, 34, 14);
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local3.reset();
_local3.area(36, 15, 39, 21);
_local2 = _local3.unit06();
_local2 = _local3.unit05();
_local3.room(6);
_local3.reset();
_local3.area(42, 12, 45, 16);
_local2 = _local3.unit06();
_local2 = _local3.unit05();
_local3.reset();
_local3.area(39, 18, 45, 20);
_local3.area(39, 21, 45, 24);
_local2 = _local3.unit06();
_local2 = _local3.unit05();
_local2 = _local3.unit06();
_local3.room(7);
_local3.reset();
_local3.area(18, 25, 22, 26);
_local2 = _local3.unit04();
_local2 = _local3.unit04();
_local3.reset();
_local3.area(23, 21, 27, 23);
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local3.reset();
_local3.area(21, 31, 27, 33);
_local3.area(27, 30, 33, 33);
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local3.room(8);
_local3.reset();
_local3.area(9, 27, 12, 33);
_local3.area(12, 30, 21, 33);
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local2 = _local3.unit04();
_local2 = _local3.unit06();
_local3.room(9);
_local3.reset();
_local3.area(15, 27, 18, 30);
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local3.room(10);
_local3.reset();
_local3.area(15, 24, 18, 27);
_local2 = _local3.unit06();
_local2 = _local3.unit06();
_local3.reset();
_local3.area(3, 24, 6, 29);
_local2 = _local3.unit05();
_local2 = _local3.unit05();
_local3.reset();
_local3.area(3, 30, 9, 33);
_local2 = _local3.unit04();
_local2 = _local3.unit04();
_local3.room(11);
_local3.reset();
_local3.area(7, 21, 9, 24);
_local2 = _local3.unit04();
_local2 = _local3.unit06();
_local3.reset();
_local3.area(3, 15, 9, 18);
_local2 = _local3.unit04();
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local3.room(12);
_local3.reset();
_local3.area(15, 15, 18, 18);
_local2 = _local3.unit06();
_local2 = _local3.unit05();
_local2.itemToRelease(new itemKey("yellow"));
_local3.reset();
_local3.area(9, 17, 11, 24);
_local2 = _local3.unit04();
_local2 = _local3.unit06();
_local2.itemToRelease(new itemKey("green"));
_local3.reset();
_local3.area(12, 15, 14, 24);
_local2 = _local3.unit06();
_local2 = _local3.unit06();
_local3.reset();
_local3.area(19, 22, 21, 24);
_local3.area(24, 15, 27, 18);
_local2 = _local3.unit05();
_local2 = _local3.unit05();
_local2 = _local3.unit04();
_local3.room(13);
_local3.reset();
_local3.area(33, 3, 36, 12);
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local2 = _local3.unit06();
_local3.room(14);
_local3.reset();
_local3.area(40, 3, 45, 5);
_local2 = _local3.unit05();
_local2 = _local3.unit06();
_local3.reset();
_local3.area(40, 10, 45, 12);
_local2 = _local3.unit06();
_local2 = _local3.unit06();
_local3.reset();
_local3.area(40, 6, 45, 9);
_local3.area(39, 5, 41, 10);
_local2 = _local3.unit05();
_local2 = _local3.unit05();
_local3.room(15);
_local3.reset();
_local3.area(27, 3, 30, 6);
_local2 = _local3.unit04();
_local2 = _local3.unit06();
_local3.room(16);
_local3.reset();
_local3.area(18, 6, 21, 9);
_local2 = _local3.unit04();
_local2 = _local3.unit06();
_local2.itemToRelease(new itemKey("red"));
_local3.reset();
_local3.area(27, 6, 33, 9);
_local2 = _local3.unit04();
_local2 = _local3.unit06();
_local3.reset();
_local3.area(24, 10, 27, 15);
_local2 = _local3.unit05();
_local2 = _local3.unit05();
_local3.room(17);
_local3.reset();
_local3.area(15, 9, 24, 11);
_local3.area(15, 11, 18, 13);
_local2 = _local3.unit05();
_local2 = _local3.unit06();
_local2 = _local3.unit05();
_local2 = _local3.unit04();
_local3.room(18);
_local3.reset();
_local3.area(12, 9, 15, 12);
_local3.area(18, 3, 24, 6);
_local2 = _local3.unit05();
_local2 = _local3.unit06();
_local2 = _local3.unit05();
_local2 = _local3.unit04();
_local3.room(19);
_local3.reset();
_local3.area(6, 9, 12, 11);
_local3.area(6, 11, 8, 13);
_local3.area(9, 11, 11, 13);
_local2 = _local3.unit06();
_local2 = _local3.unit06();
_local2 = _local3.unit05();
_local3.reset();
_local3.area(3, 3, 6, 9);
_local3.area(6, 6, 9, 9);
_local2 = _local3.unit06();
_local2 = _local3.unit05();
_local3.reset();
_local3.area(3, 10, 6, 15);
_local2 = _local3.unit04();
_local2 = _local3.unit05();
_local3.room(20);
_local3.reset();
_local3.area(9, 7, 12, 9);
_local3.area(10, 3, 12, 7);
_local2 = _local3.unit06();
_local2 = _local3.unit06();
_local2 = _local3.unit05();
_local2 = _local3.unit04();
}
}
}//package
Section 338
//levelArea (levelArea)
package {
import sandy.core.data.*;
public class levelArea {
public var AREAS:RandomSelection;
private var ROOMCOUNTER:Number;
private var GAME:Object;
private var ROOM:Number;
public function levelArea(_arg1:Object){
AREAS = new RandomSelection();
GAME = _arg1;
ROOM = 1;
ROOMCOUNTER = 0;
}
public function unit01():Object{
var _local1:*;
ROOMCOUNTER++;
_local1 = ((("r" + ROOM) + "u") + ROOMCOUNTER);
return (new aiUnitAlpha1(_local1, GAME, select()));
}
public function unit05():Object{
var _local1:*;
ROOMCOUNTER++;
_local1 = ((("r" + ROOM) + "u") + ROOMCOUNTER);
return (new aiUnitScorpid2(_local1, GAME, select()));
}
public function room(_arg1:Number){
ROOM = _arg1;
ROOMCOUNTER = 0;
}
public function area(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){
var _local5:*;
_local5 = new Object();
_local5.x1 = ((_arg1 * 100) + 50);
_local5.z1 = ((_arg2 * 100) + 50);
_local5.x2 = ((_arg3 * 100) - 50);
_local5.z2 = ((_arg4 * 100) - 50);
_local5.dx = (_local5.x2 - _local5.x1);
_local5.dz = (_local5.z2 - _local5.z1);
AREAS.choice(_local5, ((_local5.dx + 100) * (_local5.dz + 100)));
}
public function unit03():Object{
var _local1:*;
ROOMCOUNTER++;
_local1 = ((("r" + ROOM) + "u") + ROOMCOUNTER);
return (new aiUnitMonster1(_local1, GAME, select()));
}
public function unit06():Object{
var _local1:*;
ROOMCOUNTER++;
_local1 = ((("r" + ROOM) + "u") + ROOMCOUNTER);
return (new aiUnitMonster2(_local1, GAME, select()));
}
public function unit02():Object{
var _local1:*;
ROOMCOUNTER++;
_local1 = ((("r" + ROOM) + "u") + ROOMCOUNTER);
return (new aiUnitScorpid1(_local1, GAME, select()));
}
public function unit04():Object{
var _local1:*;
ROOMCOUNTER++;
_local1 = ((("r" + ROOM) + "u") + ROOMCOUNTER);
return (new aiUnitAlpha2(_local1, GAME, select()));
}
public function select():Vector{
var _local1:*;
var _local2:Object;
var _local3:*;
_local1 = 0;
while (_local1 < 5) {
_local2 = AREAS.choose();
_local3 = new Vector(0, 0, 0);
_local3.x = (_local2.x1 + Math.round((_local2.dx * Math.random())));
_local3.y = 0;
_local3.z = (_local2.z1 + Math.round((_local2.dz * Math.random())));
if (glo.bal.GAME.unitInRange(_local3, 100) == null){
return (_local3);
};
_local1++;
};
return (_local3);
}
public function reset(){
AREAS.reset();
}
}
}//package
Section 339
//levelCeiling (levelCeiling)
package {
import gdk.fps.*;
import gdk.*;
import sandy.core.scenegraph.*;
public class levelCeiling extends fpsNode {
public var TEX2:gdkBitmapTexture;
public var GOMQ:gdkShape;
public var TEX3:gdkBitmapTexture;
public var SHAPELQ:Shape3D;
public var PLAYER:aiPlayer;
public var SHAPEMQ:Shape3D;
public var GOLQ:gdkShape;
public function levelCeiling(){
super(null, 0, 0, 0, glo.bal.GAME.TEXLIB.CEIL1);
TEX2 = glo.bal.GAME.TEXLIB.CEIL2;
TEX3 = glo.bal.GAME.TEXLIB.CEIL3;
}
override public function loadNode(){
LOADED = true;
opt_cli = true;
opt_tex = true;
glo.bal.LEVELCEILING = this;
PLAYER = glo.bal.PLAYER;
TEX.setTiling(3, 3);
TEX2.setTiling(9, 9);
TEX3.setTiling(31, 31);
GO = GAME.GPOOL.getShape(GAME.GPOOL.PLANEZX_FC_HQ);
GOMQ = GAME.GPOOL.getShape(GAME.GPOOL.PLANEZX_FC_MQ);
GOLQ = GAME.GPOOL.getShape(GAME.GPOOL.PLANEZX_FC_LQ);
SHAPE = GO.obj;
SHAPEMQ = GOMQ.obj;
SHAPELQ = GOLQ.obj;
SHAPE.x = (SHAPEMQ.x = (SHAPELQ.x = ((Math.floor((PLAYER.POS.x / 100)) * 100) + 50)));
SHAPE.y = (SHAPEMQ.y = (SHAPELQ.y = 75));
SHAPE.z = (SHAPEMQ.z = (SHAPELQ.z = ((Math.floor((PLAYER.POS.z / 100)) * 100) + 50)));
SHAPE.rotateX = 180;
SHAPE.rotateY = 0;
SHAPE.rotateZ = 0;
SHAPEMQ.rotateX = 180;
SHAPEMQ.rotateY = 0;
SHAPEMQ.rotateZ = 0;
SHAPELQ.rotateX = 180;
SHAPELQ.rotateY = 0;
SHAPELQ.rotateZ = 0;
SHAPE.appearance = TEX.HQ;
SHAPEMQ.appearance = TEX2.HQ;
SHAPELQ.appearance = TEX3.HQ;
SHAPE.enableForcedDepth = true;
SHAPE.forcedDepth = 2000;
SHAPE.enableClipping = true;
SHAPE.enableNearClipping = true;
SHAPEMQ.enableForcedDepth = true;
SHAPEMQ.forcedDepth = 2200;
SHAPEMQ.enableClipping = true;
SHAPEMQ.enableNearClipping = true;
SHAPELQ.enableForcedDepth = true;
SHAPELQ.forcedDepth = 2500;
SHAPELQ.enableClipping = true;
SHAPELQ.enableNearClipping = true;
}
public function nextState(){
SHAPE.x = (SHAPELQ.x = (SHAPEMQ.x = ((Math.floor((PLAYER.POS.x / 100)) * 100) + 50)));
SHAPE.z = (SHAPELQ.z = (SHAPEMQ.z = ((Math.floor((PLAYER.POS.z / 100)) * 100) + 50)));
}
override public function destroy(){
super.destroy();
if (GOLQ){
GOLQ.release();
};
SHAPELQ = null;
GOLQ = null;
if (GOMQ){
GOMQ.release();
};
SHAPEMQ = null;
GOMQ = null;
}
}
}//package
Section 340
//levelFloor (levelFloor)
package {
import gdk.fps.*;
import gdk.*;
import sandy.core.scenegraph.*;
public class levelFloor extends fpsNode {
public var TEX2:gdkBitmapTexture;
public var GOMQ:gdkShape;
public var TEX3:gdkBitmapTexture;
public var SHAPELQ:Shape3D;
public var PLAYER:aiPlayer;
public var SHAPEMQ:Shape3D;
public var GOLQ:gdkShape;
public function levelFloor(){
super(null, 0, 0, 0, glo.bal.GAME.TEXLIB.FLOOR1);
TEX2 = glo.bal.GAME.TEXLIB.FLOOR2;
TEX3 = glo.bal.GAME.TEXLIB.FLOOR3;
}
override public function loadNode(){
LOADED = true;
opt_cli = true;
opt_tex = true;
glo.bal.LEVELFLOOR = this;
PLAYER = glo.bal.PLAYER;
TEX.setTiling(3, 3);
TEX2.setTiling(9, 9);
TEX3.setTiling(31, 31);
GO = GAME.GPOOL.getShape(GAME.GPOOL.PLANEZX_FC_HQ);
GOMQ = GAME.GPOOL.getShape(GAME.GPOOL.PLANEZX_FC_MQ);
GOLQ = GAME.GPOOL.getShape(GAME.GPOOL.PLANEZX_FC_LQ);
SHAPE = GO.obj;
SHAPEMQ = GOMQ.obj;
SHAPELQ = GOLQ.obj;
SHAPE.x = (SHAPEMQ.x = (SHAPELQ.x = ((Math.floor((PLAYER.POS.x / 100)) * 100) + 50)));
SHAPE.y = (SHAPEMQ.y = (SHAPELQ.y = 0));
SHAPE.z = (SHAPEMQ.z = (SHAPELQ.z = ((Math.floor((PLAYER.POS.z / 100)) * 100) + 50)));
SHAPE.rotateX = 0;
SHAPE.rotateY = 0;
SHAPE.rotateZ = 0;
SHAPEMQ.rotateX = 0;
SHAPEMQ.rotateY = 0;
SHAPEMQ.rotateZ = 0;
SHAPELQ.rotateX = 0;
SHAPELQ.rotateY = 0;
SHAPELQ.rotateZ = 0;
SHAPE.appearance = TEX.HQ;
SHAPEMQ.appearance = TEX2.HQ;
SHAPELQ.appearance = TEX3.HQ;
SHAPE.enableForcedDepth = true;
SHAPE.forcedDepth = 2000;
SHAPE.enableClipping = true;
SHAPE.enableNearClipping = true;
SHAPEMQ.enableForcedDepth = true;
SHAPEMQ.forcedDepth = 2200;
SHAPEMQ.enableClipping = true;
SHAPEMQ.enableNearClipping = true;
SHAPELQ.enableForcedDepth = true;
SHAPELQ.forcedDepth = 2500;
SHAPELQ.enableClipping = true;
SHAPELQ.enableNearClipping = true;
}
public function nextState(){
SHAPE.x = (SHAPELQ.x = (SHAPEMQ.x = ((Math.floor((PLAYER.POS.x / 100)) * 100) + 50)));
SHAPE.z = (SHAPELQ.z = (SHAPEMQ.z = ((Math.floor((PLAYER.POS.z / 100)) * 100) + 50)));
}
override public function destroy(){
super.destroy();
if (GOLQ){
GOLQ.release();
};
SHAPELQ = null;
GOLQ = null;
if (GOMQ){
GOMQ.release();
};
SHAPEMQ = null;
GOMQ = null;
}
}
}//package
Section 341
//MapScene (MapScene)
package {
import gdk.fps.wbl.*;
import flash.display.*;
import flash.geom.*;
public class MapScene extends MovieClip {
private var WALL_5:BitmapData;
private var WALL_3:BitmapData;
private var WALL_4:BitmapData;
private var DOOR_R:BitmapData;
private var WALL_1:BitmapData;
private var DOOR_Y:BitmapData;
private var WALL_6:BitmapData;
private var VISITED:BitmapData;
private var WALL_2:BitmapData;
private var R180:Number;
private var BUFFER:BitmapData;
private var BMP:Bitmap;
private var SRCWALLS:Array;
private var R000:Number;
private var R090:Number;
private var NOTHING:BitmapData;
private var DOOR:BitmapData;
private var DOOR_B:BitmapData;
private var R270:Number;
private var DOOR_G:BitmapData;
public function MapScene(){
addFrameScript(0, frame1);
R000 = 0;
R090 = (Math.PI * 0.5);
R180 = (Math.PI * 1);
R270 = (Math.PI * 1.5);
BUFFER = new BitmapData(240, 180, true, 0);
BMP = new Bitmap(BUFFER);
BMP.y = -(BUFFER.height);
addChild(BMP);
DOOR = new BitmapData(5, 2, false, 4293848814);
DOOR_B = new BitmapData(5, 2, false, 4278255615);
DOOR_G = new BitmapData(5, 2, false, 4278255360);
DOOR_R = new BitmapData(5, 2, false, 4294901760);
DOOR_Y = new BitmapData(5, 2, false, 4294967040);
WALL_1 = new BitmapData(6, 2, false, 4288256409);
WALL_2 = new BitmapData(11, 2, false, 4288256409);
WALL_3 = new BitmapData(16, 2, false, 4288256409);
WALL_4 = new BitmapData(21, 2, false, 4288256409);
WALL_5 = new BitmapData(26, 2, false, 4288256409);
WALL_6 = new BitmapData(31, 2, false, 4288256409);
SRCWALLS = [WALL_1, WALL_2, WALL_3, WALL_4, WALL_5, WALL_6];
NOTHING = new BitmapData(5, 5, false, 0);
NOTHING.lock();
NOTHING.setPixel(0, 0, 0x6600);
NOTHING.setPixel(1, 1, 0x6600);
NOTHING.setPixel(2, 2, 0x6600);
NOTHING.setPixel(3, 3, 0x6600);
NOTHING.setPixel(4, 4, 0x6600);
NOTHING.setPixel(0, 4, 0x6600);
NOTHING.setPixel(1, 3, 0x6600);
NOTHING.setPixel(3, 1, 0x6600);
NOTHING.setPixel(4, 0, 0x6600);
NOTHING.unlock();
VISITED = new BitmapData(6, 6, false, 0x6600);
}
function frame1(){
stop();
}
public function build(){
var _local1:Array;
var _local2:Array;
var _local3:Array;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Point;
var _local8:BitmapData;
var _local9:*;
var _local10:Number;
var _local11:Matrix;
var _local12:wblWall;
var _local13:wblDoor;
if (glo.bal.GAME == null){
return;
};
GAME = glo.bal.GAME;
BUFFER.fillRect(BUFFER.rect, 0);
_local1 = GAME.MAP.WALLS;
_local2 = GAME.MAP.DOORS;
_local3 = GAME.MAP.MAP;
_local4 = GAME.MAP.NU;
_local5 = GAME.MAP.NV;
_local6 = 0;
while (_local6 < _local4) {
j = 0;
while (j < _local5) {
_local7 = new Point();
_local7.x = (_local3[_local6][j].u * 5);
_local7.y = ((_local3[_local6][j].v * -5) + BUFFER.height);
if (_local3[_local6][j].isfree){
if (_local3[_local6][j].fogofwar){
_local8 = null;
} else {
_local8 = VISITED;
_local7.x = (_local7.x - 0.5);
_local7.y = (_local7.y - 5.5);
};
} else {
_local8 = NOTHING;
_local7.x = (_local7.x - 0);
_local7.y = (_local7.y - 5);
};
if (_local8){
BUFFER.copyPixels(_local8, _local8.rect, _local7);
};
j++;
};
_local6++;
};
for (_local6 in _local1) {
_local12 = _local1[_local6];
_local11 = new Matrix();
switch (_local12.o){
case wblWall.W_E:
_local11.rotate(R000);
_local9 = 0;
_local10 = -1;
break;
case wblWall.E_W:
_local11.rotate(R180);
_local9 = 0.5;
_local10 = 1;
break;
case wblWall.S_N:
_local11.rotate(R270);
_local9 = -1;
_local10 = 0.5;
break;
case wblWall.N_S:
_local11.rotate(R090);
_local9 = 1;
_local10 = 0;
break;
};
_local11.translate(((_local12.u * 5) + _local9), (((_local12.v * -5) + _local10) + BUFFER.height));
_local8 = SRCWALLS[(_local12.N - 1)];
BUFFER.draw(_local8, _local11);
};
for (_local6 in _local2) {
_local13 = _local2[_local6];
_local11 = new Matrix();
switch (_local13.o){
case wblWall.W_E:
_local11.rotate(R000);
_local9 = 0;
_local10 = -1;
break;
case wblWall.E_W:
_local11.rotate(R180);
_local9 = 0;
_local10 = 1;
break;
case wblWall.S_N:
_local11.rotate(R270);
_local9 = -1;
_local10 = 0;
break;
case wblWall.N_S:
_local11.rotate(R090);
_local9 = 1;
_local10 = 0;
break;
};
switch (_local13.KEY){
case "red":
_local8 = DOOR_R;
break;
case "blue":
_local8 = DOOR_B;
break;
case "green":
_local8 = DOOR_G;
break;
case "yellow":
_local8 = DOOR_Y;
break;
default:
_local8 = DOOR;
break;
};
_local11.translate(((_local13.u * 5) + _local9), (((_local13.v * -5) + _local10) + BUFFER.height));
BUFFER.draw(_local8, _local11);
};
}
public function update(){
build();
}
}
}//package
Section 342
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function onError(_arg1:Event){
}
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var _local3:MochiBot;
var _local4:String;
var _local5:URLVariables;
var _local6:String;
var _local7:URLRequest;
var _local8:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
_local3 = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
_local4 = "http://core.mochibot.com/my/core.swf";
_local5 = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
_local6 = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
_local7 = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
_local8 = new Loader();
_local8.contentLoaderInfo.addEventListener("ioError", onError);
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 343
//numbers (numbers)
package {
public class numbers {
public static function formatSeconds(_arg1:Number){
var _local2:String;
var _local3:String;
var _local4:String;
var _local5:Number;
_local2 = "";
_local5 = (_arg1 / 60);
_local5 = Math.floor(_local5);
_local3 = (_local5 + ":");
if (_local3.length == 2){
_local3 = ("0" + _local3);
};
_local2 = (_local2 + _local3);
_arg1 = (_arg1 - (_local5 * 60));
_local4 = String(_arg1);
if (_local4.length == 1){
_local4 = ("0" + _local4);
};
_local2 = (_local2 + _local4);
return (_local2);
}
public static function format(_arg1:Number){
var _local2:String;
var _local3:String;
var _local4:String;
var _local5:String;
var _local6:Number;
var _local7:Number;
_local2 = "";
_local6 = (_arg1 / 1000000);
_local6 = Math.floor(_local6);
if (_local6 > 0){
_local3 = (_local6 + ",");
if (_local3.length == 2){
_local3 = ("00" + _local3);
};
if (_local3.length == 3){
_local3 = ("0" + _local3);
};
_local2 = (_local2 + _local3);
_arg1 = (_arg1 - (_local6 * 1000000));
};
_local7 = (_arg1 / 1000);
_local7 = Math.floor(_local7);
if ((((_local7 > 0)) || ((_local6 > 0)))){
_local4 = (_local7 + ",");
if (_local2.length > 0){
if (_local4.length == 2){
_local4 = ("00" + _local4);
};
if (_local4.length == 3){
_local4 = ("0" + _local4);
};
};
_local2 = (_local2 + _local4);
_arg1 = (_arg1 - (_local7 * 1000));
};
_local5 = String(Math.round(_arg1));
if (_local2.length > 0){
if (_local5.length == 1){
_local5 = ("00" + _local5);
};
if (_local5.length == 2){
_local5 = ("0" + _local5);
};
};
_local2 = (_local2 + _local5);
return (_local2);
}
}
}//package
Section 344
//objPortal (objPortal)
package {
import gdk.fps.*;
import sandy.core.data.*;
import flash.geom.*;
public class objPortal extends fpsObject {
private var SEQ:Object;
private var BP:Point;
private var CF:Number;
public function objPortal(_arg1:fpsRoom, _arg2:Vector, _arg3:Number=0){
super(_arg1, _arg2);
TYPE = "portal";
DATA = {};
setFacing(false);
setInteractive(true, 100);
SEQ = GAME.BITMAPLIB.PORTAL;
}
override public function createSprite(){
SPRITE = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.PORTAL);
SPRITE.scale = 0.5;
SPRITE.autoCenter = false;
SPRITE.setBoundingSphereRadius(50);
SPRITE.BMP.y = -150;
BP = new Point(0, 0);
CF = 0;
}
override protected function inInteractionRange(){
GAME.PLAYER.closeFromPortal(this);
}
override public function render(){
SEQ.getFrame(4, CF, SPRITE.BUFFER, BP);
CF++;
if (CF >= 38){
CF = 0;
};
}
override protected function outOfInteractionRange(){
GAME.PLAYER.farFromPortal(this);
}
}
}//package
Section 345
//RandomSelection (RandomSelection)
package {
public class RandomSelection {
private var C:Number;
private var i:Number;
private var TWEIGHT:Number;
private var INDEX:Number;
private var OPTIONS:Array;
public function RandomSelection(){
reset();
}
public function choice(_arg1:Object, _arg2:Number){
TWEIGHT = (TWEIGHT + _arg2);
OPTIONS.push([_arg1, TWEIGHT]);
}
public function reset(){
OPTIONS = [];
TWEIGHT = 0;
}
public function choose(){
INDEX = Math.round((Math.random() * TWEIGHT));
C = OPTIONS.length;
i = 0;
while (i < C) {
if (INDEX <= OPTIONS[i][1]){
return (OPTIONS[i][0]);
};
i++;
};
trace("RandomSelection->choose() : Invalid index ???");
return (OPTIONS[0][0]);
}
}
}//package
Section 346
//rpgExplosion (rpgExplosion)
package {
import gdk.fps.*;
import gdk.sprite.*;
import sandy.core.data.*;
import flash.geom.*;
public class rpgExplosion {
private var SPRITE:gBitmapSprite;
private var SEQi:Number;
private var BP:Point;
private var GAME:fpsGame;
private var POS:Vector;
private var SEQ:Object;
public function rpgExplosion(_arg1:Vector){
GAME = glo.bal.GAME;
POS = _arg1;
SEQ = GAME.BITMAPLIB.RPG_EXPLOSION;
SEQi = 1;
SPRITE = GAME.GPOOL.getBitmapSprite(GAME.GPOOL.RPG_EXPLOSION);
SPRITE.scale = 0.75;
SPRITE.autoCenter = false;
SPRITE.setBoundingSphereRadius(50);
BP = new Point(0, 0);
SPRITE.x = POS.x;
SPRITE.y = POS.y;
SPRITE.z = POS.z;
GAME.animation(this, 25, nextState);
}
public function nextState(_arg1:Number, _arg2:Number){
if (_arg1 >= _arg2){
destroy();
return;
};
SEQ.getFrame(SEQi, (_arg1 - 1), SPRITE.BUFFER, BP);
SPRITE.forcedDepth = 1;
if (_arg1 > 15){
SPRITE.BMP.alpha = (1 + ((15 - _arg1) / 10));
};
}
public function destroy(){
if (SPRITE){
SPRITE.release();
};
SPRITE = null;
BP = null;
}
}
}//package
Section 347
//sasRoom (sasRoom)
package {
import gdk.fps.*;
public class sasRoom extends fpsRoom {
private var PLAYERINSIDE:Boolean;
private var ACTIVATED:Boolean;
public function sasRoom(_arg1:fpsGame, _arg2:Number){
super(_arg1, _arg2);
PLAYERINSIDE = false;
ACTIVATED = false;
}
override public function onLeaveRoom(){
PLAYERINSIDE = false;
}
public function useSAS(_arg1:Object){
if (!PLAYERINSIDE){
return;
};
if (ACTIVATED){
return;
};
ACTIVATED = true;
GAME.PLAYER.useSAS();
}
override public function onEnterRoom(){
PLAYERINSIDE = true;
GAME.evt((16 * 1), useSAS);
}
}
}//package
Section 348
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_disabledSkin extends MovieClip {
}
}//package
Section 349
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_downSkin extends MovieClip {
}
}//package
Section 350
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_overSkin extends MovieClip {
}
}//package
Section 351
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_upSkin extends MovieClip {
}
}//package
Section 352
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_disabledSkin extends MovieClip {
}
}//package
Section 353
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_downSkin extends MovieClip {
}
}//package
Section 354
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_overSkin extends MovieClip {
}
}//package
Section 355
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_upSkin extends MovieClip {
}
}//package
Section 356
//ScrollBar_thumbIcon (ScrollBar_thumbIcon)
package {
import flash.display.*;
public dynamic class ScrollBar_thumbIcon extends MovieClip {
}
}//package
Section 357
//ScrollPane_disabledSkin (ScrollPane_disabledSkin)
package {
import flash.display.*;
public dynamic class ScrollPane_disabledSkin extends MovieClip {
}
}//package
Section 358
//ScrollPane_upSkin (ScrollPane_upSkin)
package {
import flash.display.*;
public dynamic class ScrollPane_upSkin extends MovieClip {
}
}//package
Section 359
//ScrollThumb_downSkin (ScrollThumb_downSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_downSkin extends MovieClip {
}
}//package
Section 360
//ScrollThumb_overSkin (ScrollThumb_overSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_overSkin extends MovieClip {
}
}//package
Section 361
//ScrollThumb_upSkin (ScrollThumb_upSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_upSkin extends MovieClip {
}
}//package
Section 362
//ScrollTrack_skin (ScrollTrack_skin)
package {
import flash.display.*;
public dynamic class ScrollTrack_skin extends MovieClip {
}
}//package
Section 363
//sfxClick (sfxClick)
package {
import flash.media.*;
public dynamic class sfxClick extends Sound {
}
}//package
Section 364
//sfxCloak (sfxCloak)
package {
import flash.media.*;
public dynamic class sfxCloak extends Sound {
}
}//package
Section 365
//sfxDie1 (sfxDie1)
package {
import flash.media.*;
public dynamic class sfxDie1 extends Sound {
}
}//package
Section 366
//sfxDie2 (sfxDie2)
package {
import flash.media.*;
public dynamic class sfxDie2 extends Sound {
}
}//package
Section 367
//sfxDie3 (sfxDie3)
package {
import flash.media.*;
public dynamic class sfxDie3 extends Sound {
}
}//package
Section 368
//sfxDie4 (sfxDie4)
package {
import flash.media.*;
public dynamic class sfxDie4 extends Sound {
}
}//package
Section 369
//sfxDie5 (sfxDie5)
package {
import flash.media.*;
public dynamic class sfxDie5 extends Sound {
}
}//package
Section 370
//sfxDie6 (sfxDie6)
package {
import flash.media.*;
public dynamic class sfxDie6 extends Sound {
}
}//package
Section 371
//sfxDoor (sfxDoor)
package {
import flash.media.*;
public dynamic class sfxDoor extends Sound {
}
}//package
Section 372
//sfxDryFire (sfxDryFire)
package {
import flash.media.*;
public dynamic class sfxDryFire extends Sound {
}
}//package
Section 373
//sfxExplosion (sfxExplosion)
package {
import flash.media.*;
public dynamic class sfxExplosion extends Sound {
}
}//package
Section 374
//sfxFootStep1 (sfxFootStep1)
package {
import flash.media.*;
public dynamic class sfxFootStep1 extends Sound {
}
}//package
Section 375
//sfxFootStep2 (sfxFootStep2)
package {
import flash.media.*;
public dynamic class sfxFootStep2 extends Sound {
}
}//package
Section 376
//sfxGunLoop01 (sfxGunLoop01)
package {
import flash.media.*;
public dynamic class sfxGunLoop01 extends Sound {
}
}//package
Section 377
//sfxHeal (sfxHeal)
package {
import flash.media.*;
public dynamic class sfxHeal extends Sound {
}
}//package
Section 378
//sfxLoadingStinger (sfxLoadingStinger)
package {
import flash.media.*;
public dynamic class sfxLoadingStinger extends Sound {
}
}//package
Section 379
//sfxPistol (sfxPistol)
package {
import flash.media.*;
public dynamic class sfxPistol extends Sound {
}
}//package
Section 380
//sfxReload1 (sfxReload1)
package {
import flash.media.*;
public dynamic class sfxReload1 extends Sound {
}
}//package
Section 381
//sfxRifleLoop (sfxRifleLoop)
package {
import flash.media.*;
public dynamic class sfxRifleLoop extends Sound {
}
}//package
Section 382
//sfxRoar1 (sfxRoar1)
package {
import flash.media.*;
public dynamic class sfxRoar1 extends Sound {
}
}//package
Section 383
//sfxRoar2 (sfxRoar2)
package {
import flash.media.*;
public dynamic class sfxRoar2 extends Sound {
}
}//package
Section 384
//sfxRoar3 (sfxRoar3)
package {
import flash.media.*;
public dynamic class sfxRoar3 extends Sound {
}
}//package
Section 385
//sfxRoar4 (sfxRoar4)
package {
import flash.media.*;
public dynamic class sfxRoar4 extends Sound {
}
}//package
Section 386
//sfxRoar5 (sfxRoar5)
package {
import flash.media.*;
public dynamic class sfxRoar5 extends Sound {
}
}//package
Section 387
//sfxRoar6 (sfxRoar6)
package {
import flash.media.*;
public dynamic class sfxRoar6 extends Sound {
}
}//package
Section 388
//sfxRPG (sfxRPG)
package {
import flash.media.*;
public dynamic class sfxRPG extends Sound {
}
}//package
Section 389
//sfxShield (sfxShield)
package {
import flash.media.*;
public dynamic class sfxShield extends Sound {
}
}//package
Section 390
//sfxSplatter (sfxSplatter)
package {
import flash.media.*;
public dynamic class sfxSplatter extends Sound {
}
}//package
Section 391
//sfxStinger1 (sfxStinger1)
package {
import flash.media.*;
public dynamic class sfxStinger1 extends Sound {
}
}//package
Section 392
//sfxStinger2 (sfxStinger2)
package {
import flash.media.*;
public dynamic class sfxStinger2 extends Sound {
}
}//package
Section 393
//sfxToggle (sfxToggle)
package {
import flash.media.*;
public dynamic class sfxToggle extends Sound {
}
}//package
Section 394
//SliderThumb_disabledSkin (SliderThumb_disabledSkin)
package {
import flash.display.*;
public dynamic class SliderThumb_disabledSkin extends MovieClip {
}
}//package
Section 395
//SliderThumb_downSkin (SliderThumb_downSkin)
package {
import flash.display.*;
public dynamic class SliderThumb_downSkin extends MovieClip {
}
}//package
Section 396
//SliderThumb_overSkin (SliderThumb_overSkin)
package {
import flash.display.*;
public dynamic class SliderThumb_overSkin extends MovieClip {
}
}//package
Section 397
//SliderThumb_upSkin (SliderThumb_upSkin)
package {
import flash.display.*;
public dynamic class SliderThumb_upSkin extends MovieClip {
}
}//package
Section 398
//SliderTick_skin (SliderTick_skin)
package {
import flash.display.*;
public dynamic class SliderTick_skin extends MovieClip {
}
}//package
Section 399
//SliderTrack_disabledSkin (SliderTrack_disabledSkin)
package {
import flash.display.*;
public dynamic class SliderTrack_disabledSkin extends MovieClip {
}
}//package
Section 400
//SliderTrack_skin (SliderTrack_skin)
package {
import flash.display.*;
public dynamic class SliderTrack_skin extends MovieClip {
}
}//package
Section 401
//spacerangerCS3 (spacerangerCS3)
package {
import flash.display.*;
import flash.text.*;
import flash.net.*;
import flash.system.*;
import flash.ui.*;
public class spacerangerCS3 extends MovieClip {
public var versionString:String;
public var ok:Boolean;
public var result:Object;
public var build1:Number;
public var build2:Number;
public var pattern:RegExp;
public var minor:Number;
public var major:Number;
public function spacerangerCS3(){
var _local1:TextFormat;
var _local2:TextFormat;
var _local3:TextFormat;
var _local4:ContextMenu;
var _local5:ContextMenuItem;
super();
addFrameScript(0, frame1, 1, frame2, 19, frame20, 29, frame30, 39, frame40, 49, frame50, 59, frame60);
glo.bal.GAMEID = "alienslayer";
glo.bal.GAME_ID = "alienslayer";
glo.bal.FRAMERATE = 16;
Security.allowDomain("*");
Security.allowInsecureDomain("*");
glo.bal.LC = new LocalConnection();
glo.bal.DOMAIN = glo.bal.LC.domain;
glo.bal.GAME_AUTH = false;
glo.bal.GAME_AUTH = true;
if (glo.bal.DOMAIN.indexOf("qigames.com") != -1){
glo.bal.GAME_AUTH = true;
};
if (glo.bal.DOMAIN.indexOf("playnow3dgames.com") != -1){
glo.bal.GAME_AUTH = true;
};
if (glo.bal.DOMAIN.indexOf("bubblebox.com") != -1){
glo.bal.GAME_AUTH = true;
};
if (glo.bal.DOMAIN.indexOf("addictinggames.com") != -1){
glo.bal.GAME_AUTH = true;
};
glo.bal.LOCALHOST = false;
if (glo.bal.DOMAIN.indexOf("localhost") != -1){
glo.bal.LOCALHOST = true;
};
glo.bal.URLREQ_QIGAMES = new URLRequest("http://www.qigames.com/index.php?game=alienslayer");
glo.bal.URLREQ_MOREGAMES = new URLRequest("http://www.qigames.com/index.php?game=alienslayer");
glo.bal.URLREQ_VIEWSCORES = new URLRequest("http://www.qigames.com/highscores.php?game=alienslayer");
glo.bal.URLREQ_PLAY = new URLRequest("http://www.qigames.com/game.php?id=alienslayer");
glo.bal.URLREQ_SANDY = new URLRequest("http://www.flashsandy.org");
glo.bal.URLREQ_FLASH = new URLRequest("http://www.adobe.com/go/getflashplayer");
glo.bal.URLREQ_BUBBLEBOX_LOADER = new URLRequest("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1012&subid=loader");
glo.bal.URLREQ_BUBBLEBOX_SPLASH = new URLRequest("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1012&subid=splash");
glo.bal.URLREQ_BUBBLEBOX_GAMEMENU = new URLRequest("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1012&subid=gamemenu");
glo.bal.URLREQ_BUBBLEBOX_MOREGAMES = new URLRequest("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1012&subid=moregames");
glo.bal.URLREQ_BUBBLEBOX_LEVELLOADING = new URLRequest("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1012&subid=levelloading");
glo.bal.URLREQ_BUBBLEBOX_GAMEOVER = new URLRequest("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1012&subid=gameover");
glo.bal.URLREQ_BUBBLEBOX_GAMECOMPLETED = new URLRequest("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1012&subid=gamecompleted");
glo.bal.URLREQ_BUBBLEBOX_PLAY = new URLRequest("http://www.bubblebox.com/game/action/1012.htm");
glo.bal.URLREQ_BUBBLEBOX_EMBED = new URLRequest("http://www.bubblebox.com/freecontent.htm");
glo.bal.URLREQ_BUBBLEBOX_VIEWSCORES = new URLRequest("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1012&subid=viewscores&action=viewscores");
_local1 = new TextFormat("Ethnocentric");
_local1.bold = true;
glo.bal.FORMAT01 = _local1;
_local2 = new TextFormat("Ethnocentric");
_local2.bold = true;
glo.bal.FORMAT02 = _local2;
_local3 = new TextFormat("Ethnocentric");
_local3.bold = true;
glo.bal.FORMAT03 = _local3;
_local4 = new ContextMenu();
_local4.hideBuiltInItems();
contextMenu = _local4;
_local5 = new ContextMenuItem("Alien Slayer 3D V1.05u");
ITEM2 = new ContextMenuItem("Copyright QiGames.com 2008");
ITEM2.separatorBefore = true;
_local4.customItems.push(_local5);
_local4.customItems.push(ITEM2);
glo.bal.GAMES = gameData.getGames();
glo.bal.GAMES.sort(orderGames);
}
public function orderGames(_arg1:Object, _arg2:Object):Number{
if (_arg1.LASTMODIFIED > _arg2.LASTMODIFIED){
return (-1);
};
if (_arg1.LASTMODIFIED < _arg2.LASTMODIFIED){
return (1);
};
return (0);
}
function frame1(){
try {
MochiBot.track(this, "31ab51b0");
} catch(e:Error) {
};
}
function frame2(){
stage.frameRate = 16;
versionString = Capabilities.version;
pattern = /^(\w*) (\d*),(\d*),(\d*),(\d*)$/;
result = pattern.exec(versionString);
if (result != null){
ok = true;
major = Number(result[2]);
minor = Number(result[3]);
build1 = Number(result[4]);
build2 = Number(result[5]);
trace(((((((("Flash player version " + major) + ",") + minor) + ",") + build1) + ",") + build2));
if (major < 9){
ok = false;
};
if (!ok){
trace("Flash player upgrade required");
gotoAndStop("flash9");
} else {
gotoAndStop("dummy");
};
} else {
trace("Unable to read flash player version.");
gotoAndStop("dummy");
};
}
function frame30(){
stop();
}
function frame20(){
gotoAndStop("splash1");
}
function frame40(){
stop();
stage.frameRate = 24;
}
function frame50(){
stop();
stage.frameRate = 16;
}
function frame60(){
stop();
}
}
}//package
Section 402
//SpaceRangerGame (SpaceRangerGame)
package {
import gdk.fps.*;
import sandy.core.data.*;
import gdk.fps.wbl.*;
import sandy.math.*;
public class SpaceRangerGame extends fpsGame {
public function SpaceRangerGame(){
trace("Unique game instance created");
glo.bal.GAME = this;
Matrix4.USE_FAST_MATH = true;
Matrix4Math.USE_FAST_MATH = true;
super(600, 300);
CAM.near = 1;
TEXLIB = new gTexLib();
GPOOL = new GraphicPool();
BITMAPLIB = new gBitmapLib();
glo.bal.HZ_ALPHA1 = new hzAlpha1();
glo.bal.HZ_SCORPID1 = new hzScorpid1();
glo.bal.HZ_MONSTER1 = new hzMonster1();
glo.bal.HZ_ALIENEGG = new hzAlienEgg();
createZone(new level01());
createZone(new level02());
createZone(new level03());
createZone(new level04());
}
public function init(_arg1:Object=null){
if (!glo.bal.GAME_AUTH){
return;
};
PLAYER = glo.bal.PLAYER;
setZone((glo.bal.CGAME.CLEVEL - 1));
PLAYER.loadFogOfWar();
ready();
glo.bal.JUKEBOX.gameScore();
}
override protected function onDestroy(){
PLAYER = null;
glo.bal.JUKEBOX.stopGunLoop();
}
override public function keepItem(_arg1:fpsItem):Boolean{
var _local2:*;
var _local3:*;
_local2 = glo.bal.CGAME.ITEMSPICKED;
for (_local3 in _local2) {
if (_arg1.OBJID == _local2[_local3]){
return (false);
};
};
return (true);
}
override public function keepUnit(_arg1:fpsUnit):Boolean{
var _local2:*;
var _local3:*;
if (glo.bal.TEST_UNITS){
return (false);
};
_local2 = glo.bal.CGAME.UNITSKILLED;
for (_local3 in _local2) {
if (_arg1.OBJID == _local2[_local3]){
return (false);
};
};
return (true);
}
}
}//package
Section 403
//splatter (splatter)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class splatter extends MovieClip {
public var rip2_mc:MovieClip;
public var RIPS;
public var INDEX;
public var rip3_mc:MovieClip;
public var rip1_mc:MovieClip;
public var redflash:MovieClip;
public function splatter(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
glo.bal.CLAWRIPS = this;
INDEX = 0;
RIPS = [rip1_mc, rip2_mc, rip3_mc];
}
public function hit(){
RIPS[INDEX].gotoAndPlay(2);
RIPS[INDEX].x = (0 + Math.round((Math.random() * 400)));
RIPS[INDEX].y = (100 + Math.round((Math.random() * 100)));
INDEX++;
if (INDEX >= RIPS.length){
INDEX = 0;
};
}
public function redFlash(){
redflash.gotoAndPlay(2);
}
}
}//package
Section 404
//TextArea_disabledSkin (TextArea_disabledSkin)
package {
import flash.display.*;
public dynamic class TextArea_disabledSkin extends MovieClip {
}
}//package
Section 405
//TextArea_upSkin (TextArea_upSkin)
package {
import flash.display.*;
public dynamic class TextArea_upSkin extends MovieClip {
}
}//package
Section 406
//trkMaydayOnMars (trkMaydayOnMars)
package {
import flash.media.*;
public dynamic class trkMaydayOnMars extends Sound {
}
}//package
Section 407
//trkRockTheFuture (trkRockTheFuture)
package {
import flash.media.*;
public dynamic class trkRockTheFuture extends Sound {
}
}//package
Section 408
//trkSlogItOut (trkSlogItOut)
package {
import flash.media.*;
public dynamic class trkSlogItOut extends Sound {
}
}//package
Section 409
//trkStopCP (trkStopCP)
package {
import flash.media.*;
public dynamic class trkStopCP extends Sound {
}
}//package
Section 410
//uiCharacterSheet (uiCharacterSheet)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import fl.containers.*;
public class uiCharacterSheet extends MovieClip {
public var ACTIVE:Boolean;
public var player_txt:TextField;
public var level_txt:TextField;
public var xppoints_txt:TextField;
public var SKILLSUI:MovieClip;
public var BUTTONS:Array;
public var ok_btn:SimpleButton;
public var caption_txt:TextField;
public var xp_txt:TextField;
public var nextlevel_txt:TextField;
public var scrollpane:ScrollPane;
public function uiCharacterSheet(){
addFrameScript(0, frame1);
glo.bal.CHARACTERSHEET = this;
BUTTONS = [ok_btn];
ok_btn.addEventListener("click", btnOk);
scrollpane.source = (SKILLSUI = new uiCharacterSkills());
caption_txt.antiAliasType = "advanced";
caption_txt.embedFonts = true;
caption_txt.setTextFormat(glo.bal.FORMAT01);
ACTIVE = false;
deactivate();
}
public function activate(){
var _local1:*;
ACTIVE = true;
visible = true;
for (_local1 in BUTTONS) {
BUTTONS[_local1].enabled = true;
};
SKILLSUI.reset();
}
function btnOk(_arg1:Event){
if (!ACTIVE){
return;
};
glo.bal.PLAYER.toggleCharacterSheet();
}
function frame1(){
stop();
}
public function deactivate(){
var _local1:*;
ACTIVE = false;
visible = false;
for (_local1 in BUTTONS) {
BUTTONS[_local1].enabled = false;
};
}
function reset(){
xppoints_txt.text = glo.bal.PLAYER.XP_SKILLPOINTS;
xp_txt.text = glo.bal.PLAYER.XP;
nextlevel_txt.text = glo.bal.PLAYER.XP_NEXT_LEVEL;
player_txt.text = glo.bal.CGAME.PLAYERNAME;
level_txt.text = ("LEVEL " + glo.bal.PLAYER.XP_LEVEL);
}
}
}//package
Section 411
//uiCharacterSkills (uiCharacterSkills)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class uiCharacterSkills extends MovieClip {
public var COSTLABELS:Array;
public var bar4_mc:MovieClip;
public var skill4_btn:SimpleButton;
public var skill8_btn:SimpleButton;
public var up8_txt:TextField;
public var up4_txt:TextField;
public var skill4_txt:TextField;
public var skill8_txt:TextField;
public var cost4_txt:TextField;
public var cost8_txt:TextField;
public var bar5_mc:MovieClip;
public var skill3_btn:SimpleButton;
public var skill7_btn:SimpleButton;
public var MAXLEVEL:Array;
public var up3_txt:TextField;
public var up7_txt:TextField;
public var skill3_txt:TextField;
public var skill7_txt:TextField;
public var cost7_txt:TextField;
public var cost3_txt:TextField;
public var bar6_mc:MovieClip;
public var bar1_mc:MovieClip;
public var skill2_btn:SimpleButton;
public var skill6_btn:SimpleButton;
public var up6_txt:TextField;
public var up2_txt:TextField;
public var bar7_mc:MovieClip;
public var skill2_txt:TextField;
public var skill6_txt:TextField;
public var cost2_txt:TextField;
public var cost6_txt:TextField;
public var bar2_mc:MovieClip;
public var DOTBARS:Array;
public var BUTTONS:Array;
public var bar8_mc:MovieClip;
public var skill1_btn:SimpleButton;
public var skill5_btn:SimpleButton;
public var up1_txt:TextField;
public var skill1_txt:TextField;
public var up5_txt:TextField;
public var cost1_txt:TextField;
public var cost5_txt:TextField;
public var bar3_mc:MovieClip;
public var COST:Array;
public var skill5_txt:TextField;
public function uiCharacterSkills(){
COST = [];
COST.push([2, 3, 5, 8]);
COST.push([2, 3, 5, 8]);
COST.push([1, 2, 3, 5]);
COST.push([1, 2, 3, 5]);
COST.push([2, 3, 5, 8]);
COST.push([3, 5]);
COST.push([3, 5]);
COST.push([5, 8]);
MAXLEVEL = [4, 4, 4, 4, 4, 2, 2, 2];
COSTLABELS = [cost1_txt, cost2_txt, cost3_txt, cost4_txt, cost5_txt, cost6_txt, cost7_txt, cost8_txt];
BUTTONS = [skill1_btn, skill2_btn, skill3_btn, skill4_btn, skill5_btn, skill6_btn, skill7_btn, skill8_btn];
skill1_btn.addEventListener("click", btnSkill1);
skill2_btn.addEventListener("click", btnSkill2);
skill3_btn.addEventListener("click", btnSkill3);
skill4_btn.addEventListener("click", btnSkill4);
skill5_btn.addEventListener("click", btnSkill5);
skill6_btn.addEventListener("click", btnSkill6);
skill7_btn.addEventListener("click", btnSkill7);
skill8_btn.addEventListener("click", btnSkill8);
DOTBARS = [bar1_mc, bar2_mc, bar3_mc, bar4_mc, bar5_mc, bar6_mc, bar7_mc, bar8_mc];
up1_txt.antiAliasType = "advanced";
up1_txt.embedFonts = true;
up1_txt.setTextFormat(glo.bal.FORMAT01);
up1_txt.defaultTextFormat = glo.bal.FORMAT01;
up2_txt.antiAliasType = "advanced";
up2_txt.embedFonts = true;
up2_txt.setTextFormat(glo.bal.FORMAT01);
up2_txt.defaultTextFormat = glo.bal.FORMAT01;
up3_txt.antiAliasType = "advanced";
up3_txt.embedFonts = true;
up3_txt.setTextFormat(glo.bal.FORMAT01);
up3_txt.defaultTextFormat = glo.bal.FORMAT01;
up4_txt.antiAliasType = "advanced";
up4_txt.embedFonts = true;
up4_txt.setTextFormat(glo.bal.FORMAT01);
up4_txt.defaultTextFormat = glo.bal.FORMAT01;
up5_txt.antiAliasType = "advanced";
up5_txt.embedFonts = true;
up5_txt.setTextFormat(glo.bal.FORMAT01);
up5_txt.defaultTextFormat = glo.bal.FORMAT01;
up6_txt.antiAliasType = "advanced";
up6_txt.embedFonts = true;
up6_txt.setTextFormat(glo.bal.FORMAT01);
up6_txt.defaultTextFormat = glo.bal.FORMAT01;
up7_txt.antiAliasType = "advanced";
up7_txt.embedFonts = true;
up7_txt.setTextFormat(glo.bal.FORMAT01);
up7_txt.defaultTextFormat = glo.bal.FORMAT01;
up8_txt.antiAliasType = "advanced";
up8_txt.embedFonts = true;
up8_txt.setTextFormat(glo.bal.FORMAT01);
up8_txt.defaultTextFormat = glo.bal.FORMAT01;
}
function reset(){
var _local1:*;
var _local2:*;
_local1 = glo.bal.PLAYER.UPGRADES;
for (_local2 in _local1) {
DOTBARS[_local2].gotoAndStop((_local1[_local2] + 1));
if (_local1[_local2] < MAXLEVEL[_local2]){
if (COST[_local2][_local1[_local2]] <= glo.bal.PLAYER.XP_SKILLPOINTS){
BUTTONS[_local2].enabled = true;
BUTTONS[_local2].visible = true;
} else {
BUTTONS[_local2].enabled = false;
BUTTONS[_local2].visible = false;
};
COSTLABELS[_local2].text = COST[_local2][_local1[_local2]];
} else {
COSTLABELS[_local2].text = "";
BUTTONS[_local2].enabled = false;
BUTTONS[_local2].visible = false;
};
};
glo.bal.CHARACTERSHEET.reset();
}
function btnSkill1(_arg1:Event){
upgradeSkill(0);
}
function btnSkill2(_arg1:Event){
upgradeSkill(1);
}
function btnSkill4(_arg1:Event){
upgradeSkill(3);
}
function btnSkill6(_arg1:Event){
upgradeSkill(5);
}
function btnSkill7(_arg1:Event){
upgradeSkill(6);
}
function btnSkill8(_arg1:Event){
upgradeSkill(7);
}
function btnSkill3(_arg1:Event){
upgradeSkill(2);
}
function btnSkill5(_arg1:Event){
upgradeSkill(4);
}
function upgradeSkill(_arg1:Number):Boolean{
if (glo.bal.PLAYER.UPGRADES[_arg1] >= MAXLEVEL[_arg1]){
return;
};
if (COST[_arg1][glo.bal.PLAYER.UPGRADES[_arg1]] > glo.bal.PLAYER.XP_SKILLPOINTS){
return (false);
};
glo.bal.PLAYER.XP_SKILLPOINTS = (glo.bal.PLAYER.XP_SKILLPOINTS - COST[_arg1][glo.bal.PLAYER.UPGRADES[_arg1]]);
var _local2 = glo.bal.PLAYER.UPGRADES;
var _local3 = _arg1;
var _local4 = (_local2[_local3] + 1);
_local2[_local3] = _local4;
reset();
return (true);
}
}
}//package
Section 412
//UnitHealthBar (UnitHealthBar)
package {
import flash.display.*;
import flash.geom.*;
public class UnitHealthBar {
private var BRECT:Rectangle;
private var GRECT:Rectangle;
public function UnitHealthBar(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){
BRECT = new Rectangle(_arg1, _arg2, _arg3, _arg4);
GRECT = new Rectangle(_arg1, _arg2, _arg3, _arg4);
}
public function nextState(_arg1:BitmapData, _arg2:Number){
GRECT.width = Math.round((_arg2 * BRECT.width));
_arg1.fillRect(BRECT, 2569151010);
_arg1.fillRect(GRECT, 3422617344);
}
}
}//package
Section 413
//UnitHitZone (UnitHitZone)
package {
public class UnitHitZone {
private var PARTS:Array;
private var NPARTS:Number;
private var NMOVES:Number;
private var ZONES:Array;
public function UnitHitZone(_arg1:Number){
var _local2:Number;
super();
NMOVES = _arg1;
NPARTS = 0;
PARTS = [];
ZONES = [];
_local2 = 0;
while (_local2 < NMOVES) {
ZONES.push([]);
_local2++;
};
}
public function insertZone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number){
ZONES[_arg1][_arg2].push({x:_arg3, y:_arg4, w:_arg5, h:_arg6, factor:PARTS[_arg2].factor, part:PARTS[_arg2].id});
}
public function getHitZones(_arg1:Number, _arg2:Number){
var HZ:Array;
var i:Number;
var _MOVEi = _arg1;
var _FRAMEi = _arg2;
HZ = [];
try {
i = 0;
while (i < NPARTS) {
HZ.push(ZONES[_MOVEi][i][_FRAMEi]);
i = (i + 1);
};
} catch(e:Error) {
trace("UnitHitZone->getHitZones : ERROR");
};
return (HZ);
}
public function insertPart(_arg1:String, _arg2:Number){
var _local3:Number;
NPARTS++;
PARTS.push({id:_arg1, factor:_arg2});
_local3 = 0;
while (_local3 < NMOVES) {
ZONES[_local3].push([]);
_local3++;
};
}
}
}//package
Section 414
//util (util)
package {
public class util {
public static var D2R:Number = 0.0174532925199433;
public static var R2D:Number = 57.2957795130823;
public static var TWO_PI:Number = 6.28318530717959;
public static function copyArray(_arg1:Array):Array{
var _local2:Number;
var _local3:Number;
var _local4:Array;
_local3 = _arg1.length;
_local4 = [];
_local2 = 0;
while (_local2 < _local3) {
_local4.push(_arg1[_local2]);
_local2++;
};
return (_local4);
}
public static function resolveQuadratic(_arg1:Number, _arg2:Number, _arg3:Number):Array{
var _local4:Array;
var _local5:Number;
var _local6:Number;
_local4 = [0, 0];
_local5 = ((_arg2 * _arg2) - ((4 * _arg1) * _arg3));
if (_local5 < 0){
return (undefined);
};
_local6 = Math.sqrt(_local5);
_local4[0] = ((-(_arg2) - _local6) / (2 * _arg1));
_local4[1] = ((-(_arg2) + _local6) / (2 * _arg1));
return (_local4);
}
}
}//package
Section 415
//wall01 (wall01)
package {
import flash.display.*;
public dynamic class wall01 extends BitmapData {
public function wall01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 416
//wall02 (wall02)
package {
import flash.display.*;
public dynamic class wall02 extends BitmapData {
public function wall02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 417
//wallTexture (wallTexture)
package {
import flash.display.*;
import gdk.*;
import sandy.materials.*;
import sandy.materials.attributes.*;
public class wallTexture extends gdkTexture {
public var TEXx4:gdkTexture;
public var TEXx2:gdkTexture;
public var TEXx5:gdkTexture;
public var TEXx6:gdkTexture;
public var TEXx3:gdkTexture;
public function wallTexture(_arg1:BitmapData=null){
var _local2:Material;
var _local3:Material;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
if (glo.bal.PC_OPTION == 1){
_local2 = new BitmapMaterial(_arg1, null, 0);
_local3 = new BitmapMaterial(_arg1, null, 50);
_local4 = new BitmapMaterial(_arg1, null, 0);
_local5 = new BitmapMaterial(_arg1, null, 50);
_local6 = new BitmapMaterial(_arg1, null, 0);
_local7 = new BitmapMaterial(_arg1, null, 50);
_local8 = new BitmapMaterial(_arg1, null, 0);
_local9 = new BitmapMaterial(_arg1, null, 50);
_local10 = new BitmapMaterial(_arg1, null, 0);
_local11 = new BitmapMaterial(_arg1, null, 50);
_local12 = new BitmapMaterial(_arg1, null, 0);
_local13 = new BitmapMaterial(_arg1, null, 50);
_local4.setTiling(2, 1);
_local5.setTiling(2, 1);
_local6.setTiling(3, 1);
_local7.setTiling(3, 1);
_local8.setTiling(4, 1);
_local9.setTiling(4, 1);
_local10.setTiling(5, 1);
_local11.setTiling(5, 1);
_local12.setTiling(6, 1);
_local13.setTiling(6, 1);
TEXx2 = new gdkTexture(_local4, _local5);
TEXx3 = new gdkTexture(_local6, _local7);
TEXx4 = new gdkTexture(_local8, _local9);
TEXx5 = new gdkTexture(_local10, _local11);
TEXx6 = new gdkTexture(_local12, _local13);
_arg1.dispose();
} else {
_local14 = new LineAttributes(2, 0x333333);
_local15 = new MaterialAttributes(_local14);
_local2 = new ColorMaterial(0xCCCCCC, 1, _local15);
_local3 = new ColorMaterial(0xCCCCCC, 1, _local15);
};
super(_local2, _local3);
}
}
}//package
Section 418
//wire_door01F (wire_door01F)
package {
import flash.display.*;
public dynamic class wire_door01F extends BitmapData {
public function wire_door01F(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 419
//wire_door01L (wire_door01L)
package {
import flash.display.*;
public dynamic class wire_door01L extends BitmapData {
public function wire_door01L(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 420
//wire_door01R (wire_door01R)
package {
import flash.display.*;
public dynamic class wire_door01R extends BitmapData {
public function wire_door01R(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 421
//wire_door03F (wire_door03F)
package {
import flash.display.*;
public dynamic class wire_door03F extends BitmapData {
public function wire_door03F(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 422
//wire_door03L (wire_door03L)
package {
import flash.display.*;
public dynamic class wire_door03L extends BitmapData {
public function wire_door03L(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 423
//wire_door03R (wire_door03R)
package {
import flash.display.*;
public dynamic class wire_door03R extends BitmapData {
public function wire_door03R(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 424
//wire_door04F (wire_door04F)
package {
import flash.display.*;
public dynamic class wire_door04F extends BitmapData {
public function wire_door04F(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 425
//wire_door05F (wire_door05F)
package {
import flash.display.*;
public dynamic class wire_door05F extends BitmapData {
public function wire_door05F(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 426
//wire_door06F (wire_door06F)
package {
import flash.display.*;
public dynamic class wire_door06F extends BitmapData {
public function wire_door06F(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package