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

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

leredita.swf

This is the info page for
Flash #246755

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


Text
<p align="center"><font face="Eredita3" size="14" color="#ffffff" letterSpacing="1.000000" kerning="1">L&apos;EREDITÀ COPYRIGHT MAGNOLIA S.P.A. SU LICENZA ESCLUSIVA RAI TRADE S.P.A.. BASATO SU EL LEGADO (BY TELEFÈ DISTRIBUITO DA DOT PRODUCTIONS).</font></p>

<p align="center"><font face="Eredita3" size="28" color="#ffffff" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="center"><font face="Futura Std Condensed" size="60" color="#ffffff" letterSpacing="1.000000" kerning="1">10.000</font></p>

<p align="center"><font face="Eredita3" size="28" color="#ffffff" letterSpacing="1.000000" kerning="1">TEMPTEXT2</font></p>

<p align="center"><font face="Eredita3" size="26" color="#ffffff" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="center"><font face="Futura Std Condensed" size="110" color="#f5f5f5" letterSpacing="8.000000" kerning="1">190.000</font></p>

<p align="center"><font face="Futura Std Condensed" size="70" color="#f5f5f5" letterSpacing="5.000000" kerning="1">200.000</font></p>

<p align="center"><font face="Eredita3" size="32" color="#ffffff" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="left"><font face="Eredita3" size="28" color="#ffffff" letterSpacing="1.000000" kerning="1">TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT</font></p>

<p align="center"><font face="Eredita3" size="30" color="#ffffff" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="left"><font face="Eredita3" size="16" color="#ffffff" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="right"><font face="Eredita3" size="16" color="#ffffff" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="left"><font face="Eredita3" size="24" color="#ebebeb" letterSpacing="0.000000" kerning="1">TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT TEMPTEXT </font></p>

<p align="center"></p>

<p align="center"><font face="Futura Std Condensed" size="36" color="#ffffff" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="center"><font face="Futura Std Condensed" size="30" color="#ffffff" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="center"><font face="Eredita3" size="30" color="#f5f5f5" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="left"><font face="Eredita3" size="24" color="#f5f5f5" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="right"><font face="Eredita3" size="36" color="#f5f5f5" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="left"><font face="Eredita3" size="36" color="#f5f5f5" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="center"><font face="Eredita3" size="24" color="#f5f5f5" letterSpacing="1.000000" kerning="1">Sign up now and keep playing!</font></p>

<p align="center"><font face="Eredita3" size="24" color="#f5f5f5" letterSpacing="1.000000" kerning="1">Compete for real cash prizes!</font></p>

<p align="center"><font face="Eredita3" size="34" color="#ffffff" letterSpacing="1.000000" kerning="1">Sign up</font></p>

<p align="center"><font face="Eredita3" size="21" color="#ffffff" letterSpacing="1.000000" kerning="1">Play Again</font></p>

<p align="center"><font face="Eredita3" size="14" color="#f5f5f5" letterSpacing="1.000000" kerning="1">I understand that by signing up, I will be leaving this site and will be transferred to King.com, the world&apos;s largerst game community</font></p>

<p align="center"><font face="Eredita3" size="22" color="#f5f5f5" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p><p align="center"><font face="Eredita3" size="22" color="#f5f5f5" letterSpacing="1.000000" kerning="1">LINE2</font></p>

<p align="center"><font face="Eredita3" size="40" color="#f5f5f5" letterSpacing="1.000000" kerning="1">TEMPTEXT</font></p>

<p align="center"><font face="Futura Std Condensed" size="30" color="#ff9d1a" letterSpacing="1.000000" kerning="0">0</font></p>

<p align="center"><font face="Eredita3" size="34" color="#ffffff" letterSpacing="1.000000" kerning="1">00:00</font></p>

<p align="center"><font face="Eredita3" size="30" color="#ebebeb" letterSpacing="0.000000" kerning="1">T</font></p>

ActionScript [AS3]

Section 1
//Debug (com.midasplayer.debug.Debug) package com.midasplayer.debug { public class Debug { private static var s_assertHandler:IAssertHandler = null; public static function setAssertHandler(_arg1:IAssertHandler):void{ s_assertHandler = _arg1; } public static function assert(_arg1:Boolean, _arg2:String):void{ var condition = _arg1; var message = _arg2; if (condition){ return; }; if (s_assertHandler != null){ s_assertHandler.assert(message); return; }; try { throw (new Error("StackTrace")); } catch(e:Error) { trace(((("Assertion failed: " + message) + "\n") + e.getStackTrace())); }; } } }//package com.midasplayer.debug
Section 2
//IAssertHandler (com.midasplayer.debug.IAssertHandler) package com.midasplayer.debug { public interface IAssertHandler { function assert(_arg1:String):void; } }//package com.midasplayer.debug
Section 3
//DebugGameComm (com.midasplayer.game.comm.DebugGameComm) package com.midasplayer.game.comm { import com.midasplayer.game.framework.*; import com.midasplayer.messaging.*; import flash.utils.*; import com.midasplayer.util.*; public class DebugGameComm implements IGameComm { private var traceExternalCalls:Boolean; private var currentState:int;// = 0 private var showDelayUI:Function;// = null private var requestHandlers:Dictionary; private var ignoreResponses:Boolean;// = false private var endedTime:Number; private var bufferedResponses:Array; private var hideDelayUI:Function;// = null private var requestHandler:IRequestHandler; private var gameData:String; private var showingDelayUI:Boolean;// = false private var nextResponse:int;// = 0 private var handlerModelType:Class; private var playDataEntries:Array; private var requestTimeouts:Array; private var requestCounter:int;// = 0 private var handlerModel:Object; private static const STATE_NOT_STARTED:uint = 0; private static const STATE_ENDED:uint = 2; private static const TIMEOUT_SECOND:int = 1500; private static const STATE_STARTED:uint = 1; private static const TIMEOUT_FIRST:int = 1500; private static const STATE_QUIT:uint = 3; private static const TIMEOUT_FINAL:int = 19000; public function DebugGameComm(_arg1:String, _arg2:Class=null, _arg3:IRequestHandler=null, _arg4:Boolean=true){ playDataEntries = new Array(); super(); this.gameData = _arg1; this.handlerModelType = _arg2; this.requestHandler = _arg3; this.traceExternalCalls = _arg4; } private function onFinalRequestTimeout():void{ if (showingDelayUI){ hideDelayUI(); showingDelayUI = false; }; ignoreResponses = true; quit(); } private function onRequestResponse():void{ var _local3:int; var _local4:Message; var _local6:ByteArray; var _local7:Object; var _local2:String = arguments[0]; if (((("pusher" == _local2)) || (ignoreResponses))){ return; }; if (showingDelayUI){ hideDelayUI(); showingDelayUI = false; }; if ("c" == _local2.charAt(0)){ Assert.halt("String request not yet supported"); } else { _local6 = Base64.decodeToByteArray(_local2.substring(1)); _local3 = _local6.readShort(); _local4 = new Message(_local6); handlerModel = new handlerModelType(_local6); if (MsgTypes.illegalRequest == _local4.type){ Assert.halt("Received illegal request as request response"); ignoreResponses = true; quit(); }; }; Assert.assert(!(isNaN(_local3)), "Request id could not be parsed from answer string"); clearTimeout(requestTimeouts[_local3]); var _local5:Function = requestHandlers[_local3]; Assert.assert(!((null == _local5)), ("No request answer handler is defined for request with id " + _local3)); requestHandlers[_local3] = null; if (_local3 != nextResponse){ bufferedResponses[((_local3 - nextResponse) - 1)] = {handler:_local5, message:_local4}; } else { _local5(_local4); nextResponse++; while ((_local7 = bufferedResponses.shift())) { _local7.handler(_local7.message); nextResponse++; }; }; } public function getGameData():String{ return (gameData); } public function addPlayData(_arg1:Object):void{ var _local2:String; Assert.assert(!((null == _arg1)), "Play data argument must not be null"); Assert.assert((((_arg1 is String)) || ((_arg1 is ByteArray))), "Play data argument must be of type string or byte array"); if (STATE_STARTED != currentState){ startGame(); }; if ((_arg1 is String)){ if (traceExternalCalls){ trace("playData", ("c" + _arg1)); }; _local2 = ("c" + String(_arg1)); } else { if (traceExternalCalls){ trace("playData", ("b" + printBinary(_arg1))); }; _local2 = ("b" + Base64.encodeByteArray(ByteArray(_arg1))); }; playDataEntries.push(_local2); } private function onFirstRequestTimeout():void{ var _local2:int = arguments[0]; requestTimeouts[_local2] = setTimeout(onSecondRequestTimeout, TIMEOUT_SECOND, _local2); if (traceExternalCalls){ trace("pusher"); }; setTimeout(onRequestResponse, 100, requestHandler.getRequestResponse("pusher")); } public function setRequestDelayUI(_arg1:Function, _arg2:Function):void{ showDelayUI = _arg1; hideDelayUI = _arg2; } private function quit():void{ if (traceExternalCalls){ trace("gameQuit"); }; } private function onSecondRequestTimeout():void{ if (null != showDelayUI){ showDelayUI(); showingDelayUI = true; }; var _local2:int = arguments[0]; requestTimeouts[_local2] = setTimeout(onFinalRequestTimeout, TIMEOUT_FINAL); if (traceExternalCalls){ trace("pusher"); }; setTimeout(onRequestResponse, 100, requestHandler.getRequestResponse("pusher")); } public function quitGame():void{ Assert.assert((currentState == STATE_ENDED), "Trying to quit the game before it has been ended."); if (STATE_QUIT == currentState){ return; }; switch (currentState){ case STATE_NOT_STARTED: startGame(); case STATE_STARTED: endGame(0); }; var _local1:Number = (2000 - (new Date().getTime() - endedTime)); if (0 < _local1){ setTimeout(quit, _local1); } else { quit(); }; currentState = STATE_QUIT; } public function endGame(_arg1:uint):void{ Assert.assert((currentState == STATE_STARTED), "Trying to end a game that is not in the started state."); if (STATE_STARTED != currentState){ return; }; if (traceExternalCalls){ trace("gameEnd", _arg1); }; endedTime = new Date().getTime(); currentState = STATE_ENDED; } public function sendRequest(_arg1:Object, _arg2:Function):void{ var _local4:String; var _local5:ByteArray; Assert.assert(!((null == requestHandler)), "Request handler must not be null"); Assert.assert(!((null == _arg2)), "Handler argument must not be null"); Assert.assert((((_arg1 is String)) || ((_arg1 is ByteArray))), "Request argument must be of type string or byte array"); var _local3:int = requestCounter++; if (0 == _local3){ requestHandler.createGameState(); requestHandlers = new Dictionary(); bufferedResponses = new Array(); requestTimeouts = new Array(); handlerModel = new handlerModelType(); }; requestHandlers[_local3] = _arg2; if ((_arg1 is String)){ Assert.halt("String request not yet supported"); } else { _local5 = new ByteArray(); _local5.writeShort(_local3); _local5.writeBytes(ByteArray(_arg1)); _local5.writeBytes(handlerModel.toByteArray()); _local4 = ("b" + Base64.encodeByteArray(_local5)); if (traceExternalCalls){ trace("request", ("b" + _local3), printBinary(ByteArray(_arg1))); }; }; requestTimeouts[_local3] = setTimeout(onFirstRequestTimeout, TIMEOUT_FIRST, _local3); setTimeout(onRequestResponse, 200, requestHandler.getRequestResponse(_local4)); } public function startGame():void{ Assert.assert((currentState == STATE_NOT_STARTED), "Trying to start the game when it's already started."); if (STATE_NOT_STARTED != currentState){ return; }; if (traceExternalCalls){ trace("gameStart"); }; currentState = STATE_STARTED; } } }//package com.midasplayer.game.comm
Section 4
//GameComm (com.midasplayer.game.comm.GameComm) package com.midasplayer.game.comm { import com.midasplayer.messaging.*; import flash.utils.*; import com.midasplayer.util.*; import flash.external.*; import flash.system.*; public class GameComm implements IGameComm { private var showingDelayUI:Boolean;// = false private var nextResponse:int;// = 0 private var requestHandlers:Dictionary; private var handlerModelType:Class; private var currentState:int;// = 0 private var ignoreResponses:Boolean;// = false private var requestTimeouts:Array; private var endedTime:Number; private var showDelayUI:Function;// = null private var requestCounter:int;// = 0 private var bufferedResponses:Array; private var hideDelayUI:Function;// = null private var handlerModel:Object; private static const STATE_NOT_STARTED:uint = 0; private static const STATE_ENDED:uint = 2; private static const TIMEOUT_SECOND:int = 1500; private static const STATE_STARTED:uint = 1; private static const TIMEOUT_FIRST:int = 1500; private static const STATE_QUIT:uint = 3; private static const TIMEOUT_FINAL:int = 19000; public function GameComm(_arg1:Class=null){ this.handlerModelType = _arg1; } private function onFirstRequestTimeout():void{ var _local2:int = arguments[0]; requestTimeouts[_local2] = setTimeout(onSecondRequestTimeout, TIMEOUT_SECOND, _local2); fscommand("request", "pusher"); } public function quitGame():void{ Assert.assert((currentState == STATE_ENDED), "Trying to quit the game before it has been ended."); if (STATE_QUIT == currentState){ return; }; switch (currentState){ case STATE_NOT_STARTED: startGame(); case STATE_STARTED: endGame(0); }; var _local1:Number = (2000 - (new Date().getTime() - endedTime)); if (0 < _local1){ setTimeout(quit, _local1); } else { quit(); }; currentState = STATE_QUIT; } public function addPlayData(_arg1:Object):void{ var _local2:String; Assert.assert(!((null == _arg1)), "Play data argument must not be null"); Assert.assert((((_arg1 is String)) || ((_arg1 is ByteArray))), "Play data argument must be of type string or byte array"); if (STATE_STARTED != currentState){ startGame(); }; if ((_arg1 is String)){ _local2 = ("c" + String(_arg1)); } else { _local2 = ("b" + Base64.encodeByteArray(ByteArray(_arg1))); }; ExternalInterface.call("playData", _local2); } private function onFinalRequestTimeout():void{ if (showingDelayUI){ hideDelayUI(); showingDelayUI = false; }; ignoreResponses = true; quit(); } public function setRequestDelayUI(_arg1:Function, _arg2:Function):void{ showDelayUI = _arg1; hideDelayUI = _arg2; } private function quit():void{ fscommand("gameQuit", ""); } private function onRequestResponse(_arg1:String):void{ var _local2:int; var _local3:Message; var _local5:ByteArray; var _local6:Object; if (((("pusher" == _arg1)) || (ignoreResponses))){ return; }; if (showingDelayUI){ hideDelayUI(); showingDelayUI = false; }; if ("c" == _arg1.charAt(0)){ Assert.halt("String request not yet supported"); } else { _local5 = Base64.decodeToByteArray(_arg1.substring(1)); _local2 = _local5.readShort(); _local3 = new Message(_local5); handlerModel = new handlerModelType(_local5); if (MsgTypes.illegalRequest == _local3.type){ Assert.halt("Received illegal request as request response"); ignoreResponses = true; quit(); }; }; Assert.assert(!(isNaN(_local2)), "Request id could not be parsed from answer string"); clearTimeout(requestTimeouts[_local2]); var _local4:Function = requestHandlers[_local2]; Assert.assert(!((null == _local4)), ("No request answer handler is defined for request with id " + _local2)); requestHandlers[_local2] = null; if (_local2 != nextResponse){ bufferedResponses[((_local2 - nextResponse) - 1)] = {handler:_local4, message:_local3}; } else { _local4(_local3); nextResponse++; while ((_local6 = bufferedResponses.shift())) { _local6.handler(_local6.message); nextResponse++; }; }; } private function onSecondRequestTimeout():void{ if (null != showDelayUI){ showDelayUI(); showingDelayUI = true; }; var _local2:int = arguments[0]; requestTimeouts[_local2] = setTimeout(onFinalRequestTimeout, TIMEOUT_FINAL); fscommand("request", "pusher"); } public function sendRequest(_arg1:Object, _arg2:Function):void{ var _local4:String; var _local5:ByteArray; Assert.assert(!((null == _arg2)), "Handler argument must not be null"); Assert.assert((((_arg1 is String)) || ((_arg1 is ByteArray))), "Request argument must be of type string or byte array"); var _local3:int = requestCounter++; if (0 == _local3){ requestHandlers = new Dictionary(); bufferedResponses = new Array(); requestTimeouts = new Array(); handlerModel = new handlerModelType(); ExternalInterface.addCallback("onProxyResponse", onRequestResponse); }; requestHandlers[_local3] = _arg2; if ((_arg1 is String)){ Assert.halt("String request not yet supported"); } else { _local5 = new ByteArray(); _local5.writeShort(_local3); _local5.writeBytes(ByteArray(_arg1)); _local5.writeBytes(handlerModel.toByteArray()); _local4 = ("b" + Base64.encodeByteArray(_local5)); }; requestTimeouts[_local3] = setTimeout(onFirstRequestTimeout, TIMEOUT_FIRST, _local3); fscommand("request", _local4); } public function getGameData():String{ var _local1:Object = ExternalInterface.call("getGameData"); if (_local1 == null){ throw (new Error("The getGameData external interface call returned null.")); }; if (_local1.success == false){ throw (new Error("The getGameData returned object is not success.")); }; if (_local1.message == null){ throw (new Error("The GameData returned object has a null message.")); }; return (_local1.message); } public function startGame():void{ Assert.assert((currentState == STATE_NOT_STARTED), "Trying to start the game when it's already started."); if (STATE_NOT_STARTED != currentState){ return; }; fscommand("gameStart", ""); currentState = STATE_STARTED; } public function endGame(_arg1:uint):void{ Assert.assert((currentState == STATE_STARTED), "Trying to end a game that is not in the started state."); if (STATE_STARTED != currentState){ return; }; fscommand("gameEnd", _arg1.toString()); endedTime = new Date().getTime(); currentState = STATE_ENDED; } } }//package com.midasplayer.game.comm
Section 5
//GameDataParser (com.midasplayer.game.comm.GameDataParser) package com.midasplayer.game.comm { import com.midasplayer.debug.*; public class GameDataParser { private var _seed:int;// = 0 private var _textElements:XMLList; private var _gameData:XML; public function GameDataParser(_arg1:String){ Debug.assert(!((_arg1 == null)), "Could not parse the game data, the xml parameter is null."); _gameData = new XML(_arg1); Debug.assert((_gameData.length() == 1), "The game data XML should only have 1 root child."); _seed = parseInt(_gameData.attribute("randomseed")); Debug.assert(!((_seed == 0)), "The game data randomseed attribute is 0, this may result in complete randomness."); _textElements = _gameData.child("text"); } public function getText(_arg1:String):String{ var texts:XMLList; var id = _arg1; texts = _textElements.(@id == id); Debug.assert((texts.length() == 1), (("Could not find the text element (or found more than 1) with attribute id '" + id) + "' in the game data.")); return (texts.text()); } public function getElementTextAsInt(_arg1:String):int{ var _local2:XMLList; _local2 = _getOneElement(_arg1); var _local3:Number = parseInt(_local2.text()); Debug.assert(!(isNaN(_local3)), ((("Could not parse a game data property as int '" + _arg1) + "' value: ") + _local2.text())); return (int(_local3)); } private function _getOneElement(_arg1:String):XMLList{ var _local2:XMLList = _gameData.child(_arg1); Debug.assert((_local2.length() == 1), (("Could not find the element (or found more than 1) with the name '" + _arg1) + "' in the game data.")); return (_local2); } public function getElementTextAsNumber(_arg1:String):Number{ var _local2:XMLList; _local2 = _getOneElement(_arg1); var _local3:Number = parseFloat(_local2.text()); Debug.assert(!(isNaN(_local3)), ((("Could not parse a game data property as float '" + _arg1) + "' value: ") + _local2.text())); return (_local3); } public function getElementTextAsBool(_arg1:String):Boolean{ var _local2:String = getElementTextAsString(_arg1).toLowerCase(); Debug.assert((((((((_local2 == "0")) || ((_local2 == "1")))) || ((_local2 == "false")))) || ((_local2 == "true"))), ((("Could not parse a boolean, the value should be 'true', 'false', '0' or '1'. Element: " + _arg1) + ", value: ") + _local2)); return ((((_local2 == "true")) || ((_local2 == "1")))); } public function get randomSeed():int{ return (_seed); } public function getElementTextAsString(_arg1:String):String{ return (_getOneElement(_arg1).text()); } } }//package com.midasplayer.game.comm
Section 6
//IGameComm (com.midasplayer.game.comm.IGameComm) package com.midasplayer.game.comm { public interface IGameComm { function quitGame():void; function getGameData():String; function startGame():void; function sendRequest(_arg1:Object, _arg2:Function):void; function setRequestDelayUI(_arg1:Function, _arg2:Function):void; function endGame(_arg1:uint):void; function addPlayData(_arg1:Object):void; } }//package com.midasplayer.game.comm
Section 7
//Animation (com.midasplayer.game.framework.Animation) package com.midasplayer.game.framework { import flash.display.*; import com.midasplayer.util.*; public class Animation extends Tween { private var duration:Number; private var from:Number; private var frameRate:Number; private var startTime:Number; private var clip:MovieClip; private var lastTime:Number; private var timestep:Number; private var to:Number; private var frame:int;// = -1 private var args:Object; public function Animation(_arg1:MovieClip, _arg2:Object, _arg3:Object, _arg4:Number, _arg5:Object=null){ Assert.assert(!((null == _arg1)), "Clip argument must not be null"); Assert.assert(!((null == _arg2)), "From argument must not be null"); Assert.assert(!((null == _arg3)), "To argument must not be null"); Assert.assert((((_arg2 is Number)) || ((_arg2 is String))), "From argument must be of type Number of String"); Assert.assert((((_arg3 is Number)) || ((_arg3 is String))), "To argument must be of type Number of String"); if ((_arg2 is String)){ _arg2 = getLabelFrame(String(_arg2), _arg1); }; if ((_arg3 is String)){ _arg3 = getLabelFrame(String(_arg3), _arg1); }; this.clip = _arg1; this.from = Number(_arg2); this.to = Number(_arg3); this.startTime = _arg4; this.args = (_arg5) ? _arg5 : new Object(); frameRate = (this.args.frameRate) ? this.args.frameRate : 24; duration = (Math.abs((this.to - this.from)) / frameRate); lastTime = _arg4; timestep = (1 / frameRate); } public function get currentFrame():Number{ return (clip.currentFrame); } override public function update(_arg1:Number):void{ if ((((_arg1 < startTime)) || (finished))){ return; }; if (-1 == frame){ safeCall(args.onStart, args.onStartArgs); frame = from; }; safeCall(args.onUpdate, args.onUpdateArgs); if (_arg1 > (startTime + duration)){ clip.gotoAndStop(to); safeCall(args.onComplete, args.onCompleteArgs); setFinished(); return; }; if (from <= to){ while ((_arg1 - lastTime) > timestep) { frame++; lastTime = (lastTime + timestep); }; } else { while ((_arg1 - lastTime) > timestep) { frame--; lastTime = (lastTime + timestep); }; }; clip.gotoAndStop(frame); } } }//package com.midasplayer.game.framework
Section 8
//BaseConfig (com.midasplayer.game.framework.BaseConfig) package com.midasplayer.game.framework { import com.midasplayer.game.comm.*; import com.midasplayer.math.*; import com.midasplayer.util.*; import com.midasplayer.text.*; public class BaseConfig { public var firstGame:Boolean; public var timer:ITimer; public var sound:Boolean; public var debug:Boolean; public var openGame:Boolean; public var music:Boolean; public var displayStrings:Function; public var local:Boolean; public var gameComm:IGameComm; public var logComm:Boolean; public var timeLimit:int; public var randSeed:int; public var gameRand:MtRandom; public function BaseConfig(_arg1:Function, _arg2:Function, _arg3:Function, _arg4:Object){ debug = _arg4["debug"]; local = _arg4["local"]; logComm = _arg4["logComm"]; gameComm = createGameComm(local, _arg2, _arg1, _arg3); var _local5:GameDataParser = new GameDataParser(gameComm.getGameData()); displayStrings = createDisplayStrings(); if (!(timer = _arg4["timer"])){ timer = new SystemTimer(); }; randSeed = _local5.randomSeed; gameRand = new MtRandom(randSeed); openGame = _local5.getElementTextAsBool("opengame"); timeLimit = _local5.getElementTextAsInt("timelimit"); firstGame = _local5.getElementTextAsBool("firstgame"); sound = _local5.getElementTextAsBool("sound"); music = _local5.getElementTextAsBool("music"); } private function createGameComm(_arg1:Boolean, _arg2:Function, _arg3:Function, _arg4:Function):IGameComm{ Assert.assert(!((null == _arg2)), "Handler model function must not be null"); if (_arg1){ Assert.assert(!((null == _arg3)), "Local game data function must not be null"); Assert.assert(!((null == _arg4)), "Local request handler function must not be null"); return (new DebugGameComm(_arg3(), _arg2(), _arg4(), logComm)); }; return (new GameComm(_arg2())); } private function createDisplayStrings():Function{ Assert.assert(!((null == gameComm)), "gameComm must not be null"); var _local1:XMLList = new XML(gameComm.getGameData()).child("text"); var _local2:Object = new Object(); var _local3:int; while (_local3 < _local1.length()) { _local2[_local1[_local3].@id] = _local1[_local3]; _local3++; }; I18n.init(_local2); return (I18n.getString); } } }//package com.midasplayer.game.framework
Section 9
//Controller (com.midasplayer.game.framework.Controller) package com.midasplayer.game.framework { import de.polygonal.ds.*; import com.midasplayer.messaging.*; import com.midasplayer.util.*; public class Controller extends TaskManager { private var requestResponseQueue:Queue; private var config:BaseConfig; private var inputQueue:Queue; private var outputQueue:Queue; public function Controller(_arg1:BaseConfig, _arg2:Queue, _arg3:Queue){ requestResponseQueue = new LinkedQueue(); super(); this.config = _arg1; this.inputQueue = _arg2; this.outputQueue = _arg3; } protected function pushRequest(_arg1:Message):void{ _arg1.tick = currentTick; config.gameComm.sendRequest(_arg1.toBinaryPlayData(), requestResponseQueue.enqueue); } protected function popInput():Message{ var _local1:Message; if (inputQueue.isEmpty()){ return (null); }; Assert.assert((inputQueue.peek() is Message), "Enqueued input must be of type Message"); _local1 = Message(inputQueue.dequeue()); _local1.tick = currentTick; if (_local1.type != MsgTypes.quitGame){ config.gameComm.addPlayData(_local1.toBinaryPlayData()); }; return (_local1); } protected function pushOutput(_arg1:Message):void{ _arg1.tick = currentTick; outputQueue.enqueue(_arg1); } protected function popRequestResponse():Message{ var _local1:Message; if (requestResponseQueue.isEmpty()){ return (null); }; Assert.assert((requestResponseQueue.peek() is Message), "Enqueued input must be of type Message"); _local1 = Message(requestResponseQueue.dequeue()); _local1.tick = currentTick; config.gameComm.addPlayData(_local1.toBinaryPlayData()); return (_local1); } } }//package com.midasplayer.game.framework
Section 10
//FadeOutTween (com.midasplayer.game.framework.FadeOutTween) package com.midasplayer.game.framework { import com.midasplayer.util.*; public class FadeOutTween extends Tween { private var clips:Array; private var startTime:Number; private var first:Boolean;// = true private var duration:Number; private var args:Object; public function FadeOutTween(_arg1:Array, _arg2:Number, _arg3:Number, _arg4:Object=null){ this.clips = _arg1; this.startTime = _arg2; this.duration = _arg3; this.args = (_arg4) ? _arg4 : new Object(); } override public function update(_arg1:Number):void{ var _local2:Object; if ((((_arg1 < startTime)) || (finished))){ return; }; if (first){ safeCall(args.onStart, args.onStartArgs); first = false; }; safeCall(args.onUpdate, args.onUpdateArgs); if (_arg1 > (startTime + duration)){ for each (_local2 in clips) { _local2.alpha = 0; }; safeCall(args.onComplete, args.onCompleteArgs); setFinished(); return; }; var _local3:Number = (1 - ((_arg1 - startTime) / duration)); for each (_local2 in clips) { _local2.alpha = _local3; }; } } }//package com.midasplayer.game.framework
Section 11
//FadePulseTween (com.midasplayer.game.framework.FadePulseTween) package com.midasplayer.game.framework { import flash.display.*; import com.midasplayer.util.*; public class FadePulseTween extends Tween { private var speed:Number; private var frameRate:Number; private var startTime:Number; private var first:Boolean;// = true private var target:DisplayObject; private var duration:Number; private var lowScale:Number; private var highScale:Number; private var args:Object; public function FadePulseTween(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Object=null){ this.target = _arg1; this.startTime = _arg2; this.duration = _arg3; this.args = (_arg4) ? _arg4 : new Object(); lowScale = (_arg4.lowScale) ? _arg4.lowScale : 0; highScale = (_arg4.highScale) ? _arg4.highScale : 0; speed = (_arg4.speed) ? _arg4.speed : 1; } override public function update(_arg1:Number):void{ if ((((_arg1 < startTime)) || (finished))){ return; }; if (first){ safeCall(args.onStart, args.onStartArgs); first = false; }; safeCall(args.onUpdate, args.onUpdateArgs); if (_arg1 > (startTime + duration)){ target.alpha = 0; safeCall(args.onComplete, args.onCompleteArgs); setFinished(); return; }; if ((_arg1 - startTime) < (0.5 / speed)){ target.alpha = ((_arg1 - startTime) / (0.5 / speed)); } else { if ((duration - (_arg1 - startTime)) < (0.5 / speed)){ target.alpha = ((duration - (_arg1 - startTime)) / (0.5 / speed)); } else { target.alpha = 1; }; }; target.scaleX = (lowScale + (((highScale - lowScale) * 0.5) * (1 + Math.sin((speed * (_arg1 - startTime)))))); target.scaleY = (lowScale + (((highScale - lowScale) * 0.5) * (1 + Math.sin((speed * (_arg1 - startTime)))))); } } }//package com.midasplayer.game.framework
Section 12
//IRequestHandler (com.midasplayer.game.framework.IRequestHandler) package com.midasplayer.game.framework { public interface IRequestHandler { function recreateGameState(_arg1:String):void; function getRequestResponse(_arg1:String):String; function createGameState():void; } }//package com.midasplayer.game.framework
Section 13
//ITimer (com.midasplayer.game.framework.ITimer) package com.midasplayer.game.framework { public interface ITimer { function getTime():Number; } }//package com.midasplayer.game.framework
Section 14
//SystemTimer (com.midasplayer.game.framework.SystemTimer) package com.midasplayer.game.framework { import flash.utils.*; public class SystemTimer implements ITimer { public function getTime():Number{ return ((getTimer() / 1000)); } } }//package com.midasplayer.game.framework
Section 15
//Task (com.midasplayer.game.framework.Task) package com.midasplayer.game.framework { public class Task { public var handler:Function; public var onTick:Number; private var args:Array; public function Task(_arg1:Number, _arg2:Function, _arg3:Array){ this.onTick = _arg1; this.handler = _arg2; this.args = _arg3; } public function execute():void{ handler.apply(null, args); } } }//package com.midasplayer.game.framework
Section 16
//TaskManager (com.midasplayer.game.framework.TaskManager) package com.midasplayer.game.framework { import de.polygonal.ds.*; import com.midasplayer.util.*; public class TaskManager { public var currentTick:Number;// = 0 private var tasks:Vector; public function TaskManager(){ tasks = new Vector(); super(); } protected function executeTasks():void{ var _local1:int; while (_local1 < tasks.size()) { Log.debugIf((currentTick > tasks.get(_local1).onTick), (("Tick " + tasks.get(_local1).onTick) + " on which task should execute has passed.")); if (currentTick >= tasks.get(_local1).onTick){ tasks.removeAt(_local1).execute(); } else { _local1++; }; }; } protected function clearTasks():void{ tasks.clear(); } protected function addTask(_arg1:Number, _arg2:Function, ... _args):void{ var _local5:int; var _local4:Task = new Task(_arg1, _arg2, _args); if (_arg1 <= currentTick){ _local4.execute(); } else { if (!tasks.size()){ tasks.pushBack(_local4); } else { if (_local4.onTick >= tasks.get((tasks.size() - 1)).onTick){ tasks.pushBack(_local4); } else { _local5 = (tasks.size() - 1); while (_local5 >= 0) { if (_local5 > 0){ if (_local4.onTick >= tasks.get((_local5 - 1)).onTick){ tasks.insertAt(_local5, _local4); break; }; } else { tasks.insertAt(0, _local4); }; _local5--; }; }; }; }; } protected function numTasks():int{ return (tasks.size()); } protected function removeTask(_arg1:Function):Task{ var _local2:int; while (_local2 < tasks.size()) { if (_arg1 == tasks.get(_local2).handler){ return ((tasks.removeAt(_local2) as Task)); }; _local2++; }; return (null); } } }//package com.midasplayer.game.framework
Section 17
//TextTween (com.midasplayer.game.framework.TextTween) package com.midasplayer.game.framework { import flash.text.*; import com.midasplayer.util.*; public class TextTween extends Tween { private var strings:Array; private var lastTime:Number; private var field:TextField; private var frame:int;// = -1 private var startTime:Number; private var duration:Number; private var timestep:Number; private var args:Object; public function TextTween(_arg1:TextField, _arg2:Number, _arg3:Number, _arg4:Array, _arg5:Object=null){ this.field = _arg1; this.startTime = _arg2; this.duration = _arg3; this.strings = _arg4; this.args = (_arg5) ? _arg5 : new Object(); lastTime = _arg2; timestep = (_arg3 / _arg4.length); } override public function update(_arg1:Number):void{ if ((((_arg1 < startTime)) || (finished))){ return; }; if (-1 == frame){ safeCall(args.onStart, args.onStartArgs); frame = 0; }; safeCall(args.onUpdate, args.onUpdateArgs); if (_arg1 > (startTime + duration)){ safeCall(args.onComplete, args.onCompleteArgs); field.text = strings[(strings.length - 1)]; setFinished(); return; }; while ((_arg1 - lastTime) > timestep) { frame++; lastTime = (lastTime + timestep); }; field.text = strings[Math.min((strings.length - 1), frame)]; } } }//package com.midasplayer.game.framework
Section 18
//Ticker (com.midasplayer.game.framework.Ticker) package com.midasplayer.game.framework { import com.midasplayer.util.*; public class Ticker { private var updateModel:Function; private var unprocessedTime:Number;// = 0 private var lastTime:Number;// = 0 private var startTime:Number;// = -1 private var updateStage:Function; private var _maxTickTime:Number; private var _timeStep:Number; private var tick:Number;// = 0 public function Ticker(_arg1:Function, _arg2:Function, _arg3:Number, _arg4:Number=0.5){ Assert.assert(!((null == _arg1)), "Model update function must not be null"); Assert.assert(!((null == _arg2)), "Stage update function must not be null"); Assert.assert((0 < _arg3), "Time step must be greater than zero"); Assert.assert((0 < _arg4), "Max tick time must be greater than zero"); this.updateModel = _arg1; this.updateStage = _arg2; this._timeStep = _arg3; this._maxTickTime = _arg4; } public function get currentTime():Number{ return (lastTime); } public function get maxTickTime():Number{ return (_maxTickTime); } public function advanceTime(_arg1:ITimer):void{ var _local4:Number; var _local2:Number = _arg1.getTime(); Assert.assert((_local2 >= lastTime), "New time must be greater or equal to the current time"); if (0 > startTime){ startTime = _local2; lastTime = startTime; updateModel(++tick); updateStage(tick); return; }; var _local3:Number = (_local2 - lastTime); unprocessedTime = (unprocessedTime + _local3); if (unprocessedTime >= _timeStep){ _local4 = (_maxTickTime + _local2); do { updateModel(++tick); unprocessedTime = (unprocessedTime - _timeStep); } while ((((unprocessedTime >= _timeStep)) && ((_arg1.getTime() < _local4)))); }; updateStage((tick + ((unprocessedTime % _timeStep) / _timeStep))); lastTime = _local2; } public function set maxTickTime(_arg1:Number):void{ Assert.assert((0 < maxTickTime), "Max tick time must be greater than zero"); _maxTickTime = _arg1; } public function get timeStep():Number{ return (_timeStep); } public function get currentTick():Number{ return (tick); } } }//package com.midasplayer.game.framework
Section 19
//Tween (com.midasplayer.game.framework.Tween) package com.midasplayer.game.framework { public class Tween { private var finished_:Boolean;// = false public function get finished():Boolean{ return (finished_); } protected function setFinished():void{ finished_ = true; } public function update(_arg1:Number):void{ setFinished(); } } }//package com.midasplayer.game.framework
Section 20
//ClientModel (com.midasplayer.games.leredita.ClientModel) package com.midasplayer.games.leredita { public class ClientModel { public var countdownDelay:int;// = 2147483647 public var finalWordGuesses:int;// = 0 public var activeWordPair:int;// = 0 public var activeQuestion:int;// = 0 public var questions:Array; public var wordPairs:Array; public var score:int;// = 0 public var finalWordTimeBonus:int;// = 0 public var timelimitHandler:Function; public var countdownRemaining:int;// = 2147483647 public function ClientModel(){ var _local1:int; questions = new Array(); wordPairs = new Array(); super(); _local1 = 0; while (_local1 < 8) { questions.push({value:0, givenAnswer:-1, timeBonus:0}); _local1++; }; _local1 = 0; while (_local1 < 5) { wordPairs.push({givenAnswer:-1, timeBonus:0}); _local1++; }; } } }//package com.midasplayer.games.leredita
Section 21
//Config (com.midasplayer.games.leredita.Config) package com.midasplayer.games.leredita { import com.midasplayer.game.framework.*; import com.midasplayer.math.*; import com.midasplayer.sound.*; public class Config extends BaseConfig { private const _opengame:int = 1; private const _seed:int; public var timelimitHitVol:Number;// = 0.9 public var showWordPairVol:Number;// = 0.85 public var maxTickTime:Number;// = 0.5 public var answersDeltaDelay:Number;// = 0.2 public var finalWordCountdownDelay:int;// = 12 public var duelloMelodyVol:Number;// = 0.8 public var openGameEndCountdownLength:Number;// = 5 public var categoryCountdownLength:int;// = 100 public var resultCountdownLength:Number;// = 8 public var tickRate:Number;// = 10 public var soundManager:SoundManager; public var instructionsCountdownLength:Number;// = 16 public var showAnswersDelay:Number;// = 0.8 public var initialFinalWordCountdownDelay:int;// = 11 public var questionCountdownLength:int;// = 150 public var timeStep:Number; public var wordWrongVol:Number;// = 0.77 public var finalWordCountdownLength:int;// = 200 public var showQuestionDelay:Number;// = 0.4 public var wordCorrectVol:Number;// = 0.85 public var scoreBrickTime:Number;// = 6.2 public var soundVol:Number;// = 0.68 public var introMelodyVol:Number;// = 1 public var goldBarVol:Number;// = 0.8 public var musicManager:SoundManager; public var kingLink:String;// = "http://it.king.com/" public var ghigliottinaVol:Number;// = 0.9 public var answerWrongVol:Number;// = 0.75 public var showQuestionVol:Number;// = 0.9 public var wordPairCountdownLength:int;// = 50 public var initialCategoryCountdownDelay:int;// = 26 public var questionCountdownDelay:int;// = 34 public var selfcontaining:Boolean;// = false public var questionOutDelay:Number;// = 0.8 public var scoreUpdateVol:Number;// = 0.8 public var tilesIntroDelay:Number;// = 0 public var answerCorrectVol:Number;// = 0.6 public var categoryCountdownDelay:int;// = 55 public var musicVol:Number;// = 0.68 public var wordPairCountdownDelay:int;// = 8 public var responsibleGamingLink:String;// = "http://it.king.com/support/responsible_gaming_IT.jsp" public var openGameQuestionLimit:int;// = 4 private static const a:Array = []; private static const c:Array = []; private static const b:Array = []; private static const d:Array = []; public function Config(_arg1:Object){ timeStep = (1 / tickRate); soundManager = new SoundManager(); musicManager = new SoundManager(); _seed = (1 + (Math.random() * 99999999)); selfcontaining = _arg1["selfcontaining"]; super(getLocalGameData, getHandlerModel, getLocalRequestHandler, _arg1); } private function getLocalGameData():String{ var _local1 = (((("REGISTRANDOTI VERRAI REINDIRIZZATO SU <a href=\"" + kingLink) + "\">WWW.KING.COM</a>, IL SITO DI SKILL GAMES PIU’ FAMOSO IN ITALIA E NEL MONDO. RAI E KING.COM PROMUOVONO IL <a href=\"") + responsibleGamingLink) + "\">GIOCO RESPONSABILE</a>: DIVERTITI IN PIENA SICUREZZA E SENZA ECCESSI!"); var _local2:XML = new XML((((((("<gamedata randomseed=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\r\n\t\t\t\t") + (("<opengame>" + ??esc_xelem ) + "</opengame>")) + "\r\n\t\t\t\t<timelimit>0</timelimit>\r\n\t\t\t\t\r\n\t\t\t\t<firstgame>0</firstgame>\r\n\t\t\t\t<sound>1</sound>\r\n\t\t\t\t<music>1</music>\r\n\t\t\t\t\r\n\t\t\t\t<text id=\"network_delay\">Connessione al server</text>\r\n\t\t\t\t\r\n\t\t\t\t<text id=\"inst_header\">Gioca a L'eredità!</text>\r\n\t\t\t\t<text id=\"inst_instructions\">Rispondi alle domande e guadagna denaro durante Il Duello. Batti il computer per accedere a La Ghigliottina dove potrai scegliere una delle due parole che ti verranno offerte. Se sceglierai la parola sbagliata il tuo denaro verrà dimezzato. Dopo aver scelto cinque parole dovrai indovinare la parola che le collega tutte quante.</text>\r\n\t\t\t\t<text id=\"inst_countdown\">Il gioco inizia tra {0} secondi</text>\r\n\t\t\t\t\r\n\t\t\t\t<text id=\"game_player_label\">Giocatore</text>\r\n\t\t\t\t<text id=\"game_opponent_label\">Avversario</text>\r\n\t\t\t\t<text id=\"game_duello_win\">Congratulazioni! Ti sei qualificato per \"La Ghigliottina\"!</text>\r\n\t\t\t\t<text id=\"game_duello_loss\">Il tuo punteggio è più basso di quello del tuo avversario, non ti ei qualificato per \"La Ghigliottina\"</text>\r\n\t\t\t\t<text id=\"game_finalword_instructions\">Immetti la parola che secondo te collega queste cinque parole insieme e premi Enter per inviarla. Hai tre possibilità per indovinare la parola giusta.</text>\r\n\t\t\t\t<text id=\"game_finalword_last_wrong\">Hai fatto tre errori e non hai più tentativi a disposizione</text>\r\n\t\t\t\t<text id=\"game_finalword_correct\">Congratulazioni! Hai indovinato la parola giusta!</text>\r\n\t\t\t\t\r\n\t\t\t\t<text id=\"rslt_win\">Risultati gioco</text>\r\n\t\t\t\t<text id=\"rslt_loss\">Risultati gioco</text>\r\n\t\t\t\t<text id=\"rslt_score\">Punteggio</text>\r\n\t\t\t\t<text id=\"rslt_timebonus\">Bonus tempo</text>\r\n\t\t\t\t<text id=\"rslt_totalscore\">Punteggio Totale</text>\r\n\t\t\t\t<text id=\"rslt_countdown\">Il gioco termina tra {0} secondi</text>\r\n\t\t\t\t\r\n\t\t\t\t<text id=\"register_header\">Game Over</text>\r\n\t\t\t\t<text id=\"register_desc\">Registrati per giocare alla versione completa!</text>\r\n\t\t\t\t\r\n\t\t\t\t<text id=\"register_extern_head0\">Registrati subito per continuare a giocare</text>\r\n\t\t\t\t<text id=\"register_extern_head1\">e vincere fantastici premi in denaro!</text>\r\n\t\t\t\t<text id=\"register_extern_signup\">REGISTRATI</text>\r\n\t\t\t\t<text id=\"register_extern_playnow\">Gioca ancora</text>\r\n\t\t\t\t") + (("<text id=\"register_extern_legal\">" + ??esc_xelem ) + "</text>")) + "\r\n\t\t\t\t\r\n\t\t\t</gamedata>")); return (_local2.toString()); } private function getOpenGameQuestions():Array{ var _local3:Array; var _local4:int; var _local5:int; var _local6:Object; var _local1:MtRandom = new MtRandom(_seed); var _local2:Array = new Array(); _local3 = getRandoms(_local1, 4, a.length); for each (_local4 in _local3) { _local2.push(a[_local4]); }; _local3 = getRandoms(_local1, 2, b.length); for each (_local4 in _local3) { _local2.push(b[_local4]); }; _local2.push(c[_local1.nextInt(c.length)]); _local2.push(d[_local1.nextInt(d.length)]); _local2[0].value = 10000; _local2[1].value = 20000; _local2[2].value = 20000; _local2[3].value = 20000; _local2[4].value = 30000; _local2[5].value = 30000; _local2[6].value = 40000; _local2[7].value = 50000; _local4 = 0; while (_local4 < 8) { _local5 = _local1.nextInt(8); if (_local4 != _local5){ _local6 = _local2[_local4]; _local2[_local4] = _local2[_local5]; _local2[_local5] = _local6; }; _local4++; }; return (_local2); } private function getOpenGameWordPairs():Array{ return ([{words:["w0", "w1"], correctAnswer:0, givenAnswer:-1, timeBonus:0}, {words:["w0", "w1"], correctAnswer:0, givenAnswer:-1, timeBonus:0}, {words:["w0", "w1"], correctAnswer:0, givenAnswer:-1, timeBonus:0}, {words:["w0", "w1"], correctAnswer:0, givenAnswer:-1, timeBonus:0}, {words:["w0", "w1"], correctAnswer:0, givenAnswer:-1, timeBonus:0}, {correctAnswer:"w"}]); } private function getWordPairs():Array{ return ([{words:["PARTIRE", "VIAGGIARE"], correctAnswer:0, givenAnswer:-1, timeBonus:0}, {words:["LEGGERO", "leggenda"], correctAnswer:0, givenAnswer:-1, timeBonus:0}, {words:["proprieta'", "proprio"], correctAnswer:1, givenAnswer:-1, timeBonus:0}, {words:["mari", "pari"], correctAnswer:1, givenAnswer:-1, timeBonus:0}, {words:["REGOLA", "regolamento"], correctAnswer:0, givenAnswer:-1, timeBonus:0}, {correctAnswer:"VANTAGGIO"}]); } private function getQuestions():Array{ return ([{category:"CURIOSITA'", value:30000, question:"Secondo un mito australiano, il primo \"boomerang\" era una costola che fu donata all'uomo dal dio-serpente...", answers:["Tommi-Tommi", "Bobbi-Bobbi", "Patti-Patti", "Willi-Willi"], correctAnswer:1, givenAnswer:-1, timeBonus:0}, {category:"SPETTACOLO", value:20000, question:"Chi di loro, da chierichetto, prese un ceffone dal prete perché \"dava spettacolo\" durante la messa?", answers:["Franco Franchi", "Ugo Tognazzi", "Alberto Sordi", "Marcello Mastroianni"], correctAnswer:2, givenAnswer:-1, timeBonus:0}, {category:"STORIA", value:40000, question:"Per tutto l''800, cosa era tradizione tenere nei giardini della Casa Bianca, residenza del Presidente degli Stati Uniti?", answers:["Spaventapasseri", "Piante di tabacco", "Mucca al pascolo", "Tiro a segno"], correctAnswer:2, givenAnswer:-1, timeBonus:0}, {category:"GEOGRAFIA", value:50000, question:"Nel 1709, per la prima e unica volta, si poté attraversare il lago di Garda...", answers:["Volandoci sopra", "Su un ponte", "A cavallo", "Navigando sott'acqua"], correctAnswer:2, givenAnswer:-1, timeBonus:0}, {category:"ITALIANO", value:10000, question:"Parlando di consonanti doppie, quale di queste parole non è scritta in modo corretto?", answers:["Collutorio", "Ietatore", "Acchito", "Ozio"], correctAnswer:1, givenAnswer:-1, timeBonus:0}, {category:"SCIENZA", value:30000, question:"L'\"erba spaccapietre\" è un rimedio naturale che aiuta a combattere quale disturbo della salute?", answers:["Artrosi cervicale", "Carie dentaria", "Calcoli renali", "Herpes labiale"], correctAnswer:2, givenAnswer:-1, timeBonus:0}, {category:"ANIMALI", value:20000, question:"Circa 60 milioni di anni fa viveva sulla Terra il \"Titanoboa Cerrejonensis\". Di che animale si trattava?", answers:["Rana a due teste", "Serpente di una tonnellata", "Aquila vegetariana", "Orso senza denti"], correctAnswer:1, givenAnswer:-1, timeBonus:0}, {category:"CURIOSITA'", value:20000, question:"Cosa si può fare con un paio di \"ciaspole\" ai piedi?", answers:["Camminare sulla neve", "Nuotare più velocemente", "Ballare sulle punte", "Non sporcare i pavimenti"], correctAnswer:0, givenAnswer:-1, timeBonus:0}]); } private function getRandoms(_arg1:MtRandom, _arg2:int, _arg3:int):Array{ var _local5:int; var _local4:Array = new Array(); while (_arg2 > _local4.length) { _local5 = _arg1.nextInt(_arg3); if (-1 == _local4.indexOf(_local5)){ _local4.push(_local5); }; }; return (_local4); } private function getLocalRequestHandler():Object{ if (selfcontaining){ return (new RequestHandler(getOpenGameQuestions, getOpenGameWordPairs, !((_opengame == 0)))); }; return (new RequestHandler(getQuestions, getWordPairs, !((_opengame == 0)))); } private function getHandlerModel():Class{ return (ProxyModel); } } }//package com.midasplayer.games.leredita
Section 22
//DuelloView (com.midasplayer.games.leredita.DuelloView) package com.midasplayer.games.leredita { import flash.events.*; import com.midasplayer.game.framework.*; import de.polygonal.ds.*; import com.midasplayer.messaging.*; import flash.display.*; import com.midasplayer.sound.*; import flash.text.*; import com.midasplayer.util.*; import sfx.*; public class DuelloView extends TaskManager { private var started:Boolean;// = false private var tiles:Array; private var selectedTileIndex:int; private var outputQueue:Queue; private var answersOriginalYPos:Array; private var model:ViewModel; private var dispatcher:MsgDispatcher; private var countdown:Boolean;// = false private var countdownStart:Number; private var config:Config; private var userInput:Queue; public var quitClicked:Boolean;// = false private var countdownLast:Number; private var inputQueue:Queue; private var melody:ManagedSound; public var finished:Boolean;// = false private var answers:Array; private var duello:MovieClip; private var introMelody:ManagedSound; private var countdownLength:Number; public function DuelloView(_arg1:Config, _arg2:Queue, _arg3:Queue, _arg4:ViewModel){ var i:int; var tile:MovieClip; var answer:MovieClip; var config = _arg1; var inputQueue = _arg2; var outputQueue = _arg3; var model = _arg4; dispatcher = new MsgDispatcher(); userInput = new LinkedQueue(); super(); this.config = config; this.inputQueue = inputQueue; this.outputQueue = outputQueue; this.model = model; duello = model.mainGraphics.duello; tiles = [duello.tile0, duello.tile1, duello.tile2, duello.tile3, duello.tile4, duello.tile5, duello.tile6, duello.tile7]; answers = [duello.answer0, duello.answer1, duello.answer2, duello.answer3]; answersOriginalYPos = [answers[0].clip.field.y, answers[1].clip.field.y, answers[2].clip.field.y, answers[3].clip.field.y]; i = 0; while (i < 8) { tile = MovieClip(tiles[i]); tile.mouseChildren = true; tile.hitSprite.mouseEnabled = true; tile.hitSprite.addEventListener(MouseEvent.MOUSE_OVER, function (_arg1:MouseEvent):void{ userInput.enqueue({state:ViewModel.STATE_QUESTION_SELECTION, handler:onQuestionMouseOver, args:[_arg1]}); }); tile.hitSprite.addEventListener(MouseEvent.MOUSE_OUT, function (_arg1:MouseEvent):void{ userInput.enqueue({state:ViewModel.STATE_QUESTION_SELECTION, handler:onQuestionMouseOut, args:[_arg1]}); }); tile.hitSprite.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ userInput.enqueue({state:ViewModel.STATE_QUESTION_SELECTION, handler:onQuestionSelected, args:[new Message(MsgTypes.questionSelected, {index:getTileIndex(_arg1.target)})]}); }); i = (i + 1); }; i = 0; while (i < 4) { answer = MovieClip(answers[i]); answer.addEventListener(MouseEvent.MOUSE_OVER, function (_arg1:MouseEvent):void{ userInput.enqueue({state:ViewModel.STATE_ANSWER_SELECTION, handler:onAnswerMouseOver, args:[_arg1]}); }); answer.addEventListener(MouseEvent.MOUSE_OUT, function (_arg1:MouseEvent):void{ userInput.enqueue({state:ViewModel.STATE_ANSWER_SELECTION, handler:onAnswerMouseOut, args:[_arg1]}); }); answer.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ userInput.enqueue({state:ViewModel.STATE_ANSWER_SELECTION, handler:onAnswerSelected, args:[_arg1]}); }); i = (i + 1); }; model.mainGraphics.quitButton.addEventListener(MouseEvent.MOUSE_OVER, onQuitOver); model.mainGraphics.quitButton.addEventListener(MouseEvent.MOUSE_OUT, onQuitOut); model.mainGraphics.quitButton.addEventListener(MouseEvent.CLICK, onQuitClick); dispatcher.addMsgListener(MsgTypes.categories, onCategories); dispatcher.addMsgListener(MsgTypes.countdownUpdate, onCountdownUpdate); dispatcher.addMsgListener(MsgTypes.timelimitHit, onTimelimitHit); dispatcher.addMsgListener(MsgTypes.timeBonus, onTimeBonus); dispatcher.addMsgListener(MsgTypes.questionSelected, onQuestionSelected); dispatcher.addMsgListener(MsgTypes.question, onQuestion); dispatcher.addMsgListener(MsgTypes.questionAnswerResponse, onQuestionAnswerResponse); } private function enableQuestionSelection():void{ duello.mouseChildren = true; model.state = ViewModel.STATE_QUESTION_SELECTION; var _local1:int; while (_local1 < 8) { if (-1 == model.answeredQuestions.indexOf(_local1)){ tiles[_local1].hitSprite.visible = true; }; _local1++; }; } private function onQuestionMouseOut(_arg1:MouseEvent):void{ var _local2:int = getTileIndex(_arg1.target); tiles[_local2].gotoAndStop("selectable"); } private function animateOutQuestion():void{ var _local1:Number = currentTick; model.activeAnimations.push(new Animation(duello.question, "out_begin", "out_end", _local1, {frameRate:(24 / config.tickRate)})); model.activeAnimations.push(new Animation(duello.questionValue, "out_begin", "out_end", _local1, {frameRate:(24 / config.tickRate)})); var _local2:int; while (_local2 < 4) { model.activeAnimations.push(new Animation(answers[_local2], (model.answerStates[_local2] + "_out_begin"), (model.answerStates[_local2] + "_out_end"), _local1, {frameRate:(24 / config.tickRate), onComplete:((_local2 == 3)) ? animateContractTile : null, onCompleteArgs:((_local2 == 3)) ? [tiles[model.selectedQuestion]] : null})); _local2++; }; model.mainGraphics.clock.text = "00:00"; model.mainGraphics.timeBar.gotoAndStop("end"); } private function getTileIndex(_arg1:Object):int{ var _local2:int; while (_local2 < 8) { if ((((_arg1 == tiles[_local2])) || ((_arg1.parent == tiles[_local2])))){ return (_local2); }; _local2++; }; return (0); } private function startCountDown():void{ countdownStart = currentTick; countdownLength = (config.instructionsCountdownLength * config.tickRate); countdownLast = countdownLength; countdown = true; duello.stage.addEventListener(MouseEvent.CLICK, onStageClick); } private function animateRaiseTile(_arg1:MovieClip, _arg2:Function=null, _arg3:Array=null):void{ model.activeAnimations.push(new Animation(_arg1, "slide_back_end", "slide_back_begin", currentTick, {frameRate:(24 / config.tickRate), onComplete:_arg2, onCompleteArgs:_arg3})); } private function onCountdownUpdate(_arg1:Message):void{ if ((((model.state == ViewModel.STATE_QUESTION_SELECTION)) || ((model.state == ViewModel.STATE_ANSWER_SELECTION)))){ setClock(_arg1.remaining); }; } private function animateGoldBar():void{ var field:TextField; var begin = "begin"; var end = "end"; field = duello.opponentScore.clip.field; if (model.answeredCorrectly){ begin = "end"; end = "begin"; field = duello.playerScore.clip.field; }; config.soundManager.getFromClass(goldBar).play(config.goldBarVol); duello.goldBar.clip.field.text = ((0.001 * model.questionValues[model.selectedQuestion]) + ".000"); model.activeAnimations.push(new Animation(duello.goldBar, begin, end, currentTick, {frameRate:(30 / config.tickRate), onComplete:function ():void{ var _local4:*; var _local5:*; config.soundManager.getFromClass(scoreUpdate).play(config.scoreUpdateVol); var _local1:* = new Array(); var _local2:* = (model.answeredCorrectly) ? model.playerScore : model.opponentScore; var _local3:* = _local2; while (_local3 <= (_local2 + model.questionValues[model.selectedQuestion])) { _local1.push(((0.001 * _local3) + ".000")); _local3 = (_local3 + 1000); }; if (model.answeredCorrectly){ model.playerScore = (model.playerScore + model.questionValues[model.selectedQuestion]); } else { model.opponentScore = (model.opponentScore + model.questionValues[model.selectedQuestion]); }; if (((config.openGame) && (((8 - config.openGameQuestionLimit) == model.unansweredQuestions.length)))){ model.activeAnimations.push(new TextTween(field, currentTick, (0.75 * config.tickRate), _local1)); model.mainGraphics.quitButton.mouseEnabled = false; finished = true; } else { if (0 == model.unansweredQuestions.length){ model.activeAnimations.push(new TextTween(field, currentTick, (0.75 * config.tickRate), _local1, {onComplete:showScoreBrick})); } else { model.activeAnimations.push(new TextTween(field, currentTick, (0.75 * config.tickRate), _local1)); _local4 = model.unansweredQuestions.pop(); animateRaiseTile(tiles[_local4], enableQuestionSelection); for each (_local5 in model.unansweredQuestions) { animateRaiseTile(tiles[_local5]); }; model.unansweredQuestions.push(_local4); }; }; }})); } private function onAnswerMouseOut(_arg1:MouseEvent):void{ var _local2:int = getAnswerIndex(_arg1.target); answers[_local2].gotoAndStop("selectable"); } private function onStageClick(_arg1:MouseEvent):void{ if (MainView.buttonsPressed){ return; }; duello.stage.removeEventListener(MouseEvent.CLICK, onStageClick); countdown = false; animateOutInstructions(); } private function updateAnimations():void{ var _local1:Tween; var _local2:Array = new Array(); for each (_local1 in model.activeAnimations) { _local1.update(currentTick); if (_local1.finished){ _local2.push(_local1); }; }; for each (_local1 in _local2) { model.activeAnimations.splice(model.activeAnimations.indexOf(_local1), 1); }; } private function animateLowerTile(_arg1:MovieClip):void{ _arg1.gotoAndStop("slide_back_begin"); model.activeAnimations.push(new Animation(_arg1, "slide_back_begin", "slide_back_end", currentTick, {frameRate:(24 / config.tickRate)})); } private function onAnswerMouseOver(_arg1:MouseEvent):void{ var _local2:int = getAnswerIndex(_arg1.target); answers[_local2].gotoAndStop("mouse_over"); } private function setCategoryStringInExpanded(_arg1:int, _arg2:String):void{ var _local3:TextField = tiles[_arg1].categoryExpanded.field; var _local4:String = _arg2.toUpperCase(); _local3.text = _local4; var _local5:TextFormat = _local3.getTextFormat(); while (218 < _local3.textWidth) { _local5.size = (Number(_local5.size) - 1); _local3.setTextFormat(_local5); _local3.y = (_local3.y + 0.5); }; _local3.y = Math.round(_local3.y); } private function onQuitOut(_arg1:MouseEvent):void{ model.mainGraphics.quitButton.gotoAndStop(1); } private function onTimelimitHit(_arg1:Message):void{ var _local2:int; config.soundManager.getFromClass(timelimitHit).play(config.timelimitHitVol); model.mainGraphics.clock.text = "00:00"; model.mainGraphics.timeBar.gotoAndStop("end"); if (model.state == ViewModel.STATE_QUESTION_SELECTION){ disableQuestionSelection(); for each (_local2 in model.unansweredQuestions) { tiles[_local2].gotoAndStop("selectable"); }; } else { if (model.state == ViewModel.STATE_ANSWER_SELECTION){ disableAnswerSelection(); model.selectedAnswer = -1; _local2 = 0; while (_local2 < 4) { answers[_local2].gotoAndStop("selectable"); _local2++; }; }; }; } private function animateTilesFlippingIn():void{ var tile:MovieClip; var showCategoryFrame:int; var delay:Number; model.mainGraphics.clock.visible = true; model.mainGraphics.timeBar.visible = true; config.soundManager.getFromClass(tileReveal).play(0.8); var introVideoBegin:int = getLabelFrame("begin", duello.tilesIntro); var startTick:int = (currentTick + (config.tilesIntroDelay * config.tickRate)); model.activeAnimations.push(new Animation(duello.tilesIntro, introVideoBegin, "end", startTick, {frameRate:(24 / config.tickRate), onComplete:function ():void{ duello.tilesIntro.visible = false; duello.playerScore.clip.field.text = "0"; duello.playerScore.opponent.visible = false; duello.playerScore.player.field.text = config.displayStrings("game_player_label").toUpperCase(); duello.opponentScore.clip.field.text = "0"; duello.opponentScore.player.visible = false; duello.opponentScore.opponent.field.text = config.displayStrings("game_opponent_label").toUpperCase(); model.activeAnimations.push(new Animation(duello.playerScore, "in_begin", "in_end", currentTick, {frameRate:(24 / config.tickRate)})); model.activeAnimations.push(new Animation(duello.opponentScore, "in_begin", "in_end", currentTick, {frameRate:(24 / config.tickRate)})); enableQuestionSelection(); model.mainGraphics.quitButton.visible = true; model.mainGraphics.quitButton.mouseEnabled = true; }})); var i:int; while (i < 8) { tile = MovieClip(tiles[i]); showCategoryFrame = (getLabelFrame(("show" + i), duello.tilesIntro) - introVideoBegin); delay = ((showCategoryFrame / 24) * config.tickRate); model.activeAnimations.push(new Animation(tile, "tile_intro_begin", "tile_intro_end", (startTick + delay), {frameRate:(24 / config.tickRate), onStart:function (_arg1:MovieClip):void{ _arg1.visible = true; }, onStartArgs:[tile]})); i = (i + 1); }; } private function animateInInstructions():void{ duello.visible = true; model.mainGraphics.infoPanel.visible = true; model.mainGraphics.infoPanel.instructions.visible = true; model.mainGraphics.infoPanel.header.visible = true; model.mainGraphics.infoPanel.scoreLabel.visible = false; model.mainGraphics.infoPanel.timeBonusLabel.visible = false; model.mainGraphics.infoPanel.totalScoreLabel.visible = false; model.mainGraphics.infoPanel.score.visible = false; model.mainGraphics.infoPanel.timeBonus.visible = false; model.mainGraphics.infoPanel.totalScore.visible = false; model.mainGraphics.infoPanel.legalImage.visible = false; model.mainGraphics.infoPanel.header.field.text = config.displayStrings("inst_header").toUpperCase(); model.mainGraphics.infoPanel.instructions.field.text = config.displayStrings("inst_instructions").toUpperCase(); model.mainGraphics.infoPanel.counter.field.text = config.displayStrings("inst_countdown", config.instructionsCountdownLength).toUpperCase(); model.mainGraphics.infoPanel.visible = true; model.activeAnimations.push(new Animation(model.mainGraphics.infoPanel, "large_in_begin", "instructions_in_begin", currentTick, {frameRate:(24 / config.tickRate), onStart:function ():void{ config.soundManager.getFromClass(showQuestion).play(config.showQuestionVol); }, onComplete:function ():void{ model.activeAnimations.push(new Animation(model.mainGraphics.infoPanel, "instructions_in_end", "large_in_end", currentTick, {frameRate:(24 / config.tickRate), onComplete:startCountDown})); }})); } private function showScoreBrick():void{ duello.scoreBrick.visible = true; if (0 == model.playerScore){ duello.scoreBrick.field.text = "0"; } else { duello.scoreBrick.field.text = ((0.001 * model.playerScore) + ".000"); }; var result = (110000 < model.playerScore); if (result){ melody.fadeToAndStop(0, 300); config.soundManager.getFromClass(duelloVictory).play(); } else { melody.fadeTo(0.6, 1500); }; if (!config.openGame){ model.mainGraphics.infoPanel.visible = true; model.mainGraphics.infoPanel.small_header.visible = true; model.mainGraphics.infoPanel.header.visible = false; model.mainGraphics.infoPanel.scoreLabel.visible = false; model.mainGraphics.infoPanel.timeBonusLabel.visible = false; model.mainGraphics.infoPanel.totalScoreLabel.visible = false; model.mainGraphics.infoPanel.score.visible = false; model.mainGraphics.infoPanel.timeBonus.visible = false; model.mainGraphics.infoPanel.totalScore.visible = false; model.mainGraphics.infoPanel.legalImage.visible = false; model.mainGraphics.infoPanel.small_header.field.text = config.displayStrings((result) ? "game_duello_win" : "game_duello_loss").toUpperCase(); model.activeAnimations.push(new Animation(model.mainGraphics.infoPanel, "small_in_begin", "small_in_end", currentTick, {frameRate:(24 / config.tickRate)})); }; var brickTime:Number = (config.scoreBrickTime * (result) ? 1 : 0.5); model.activeAnimations.push(new FadePulseTween(duello.scoreBrick, currentTick, (brickTime * config.tickRate), {lowScale:0.92, highScale:1.02, speed:0.175, onComplete:function ():void{ if (!config.openGame){ model.activeAnimations.push(new Animation(model.mainGraphics.infoPanel, "small_out_begin", "small_out_end", currentTick, {frameRate:(24 / config.tickRate), onComplete:function ():void{ model.mainGraphics.infoPanel.visible = false; model.mainGraphics.quitButton.mouseEnabled = false; finished = true; }})); } else { model.mainGraphics.quitButton.mouseEnabled = false; finished = true; }; }})); } private function onQuestionSelected(_arg1:Message):void{ disableQuestionSelection(); model.selectedQuestion = _arg1.index; model.state = ViewModel.STATE_QUESTION_SELECTED; tiles[model.selectedQuestion].gotoAndStop("selected"); outputQueue.enqueue(new Message(MsgTypes.questionRequest, {index:model.selectedQuestion})); config.soundManager.getFromClass(tileSelect).play(); } private function onQuestionMouseOver(_arg1:MouseEvent):void{ var _local2:int = getTileIndex(_arg1.target); tiles[_local2].gotoAndStop("mouse_over"); } private function handleGameUpdates():void{ while (((!(finished)) && (!(inputQueue.isEmpty())))) { dispatcher.dispatchMessage(Message(inputQueue.dequeue())); }; } private function onIntroClick(_arg1:MouseEvent):void{ if (MainView.buttonsPressed){ return; }; duello.stage.removeEventListener(MouseEvent.CLICK, onIntroClick); model.mainGraphics.introVideo.visible = false; model.mainGraphics.introVideo.alpha = 1; model.mainGraphics.removeChild(model.mainGraphics.introVideo); duello.visible = true; duello.alpha = 1; introMelody.stop(); model.activeAnimations.pop(); animateInInstructions(); } private function disableQuestionSelection():void{ duello.mouseChildren = false; model.state = ViewModel.STATE_NO_INPUT; var _local1:int; while (_local1 < 8) { tiles[_local1].hitSprite.visible = false; _local1++; }; } private function animateIntroVideo():void{ var introVideoEnd:int; var introVideoFadeBegin:int; var introVideoFadeLength:int; introMelody = config.musicManager.getFromClass(intro); introMelody.play(config.introMelodyVol, 0, function ():void{ melody = config.musicManager.getFromClass(duello); melody.loop(0); melody.fadeTo(config.duelloMelodyVol, 1000); }); model.mainGraphics.introVideo.visible = true; introVideoEnd = getLabelFrame("end", model.mainGraphics.introVideo); introVideoFadeBegin = getLabelFrame("fade_begin", model.mainGraphics.introVideo); introVideoFadeLength = (introVideoEnd - introVideoFadeBegin); model.activeAnimations.push(new Animation(model.mainGraphics.introVideo, "begin", introVideoEnd, currentTick, {frameRate:(24 / config.tickRate), onUpdate:function ():void{ if (introVideoFadeBegin > model.mainGraphics.introVideo.currentFrame){ return; }; var _local1:* = ((introVideoEnd - model.mainGraphics.introVideo.currentFrame) / introVideoFadeLength); model.mainGraphics.introVideo.alpha = _local1; duello.visible = true; duello.alpha = (1 - _local1); }, onComplete:function ():void{ duello.stage.removeEventListener(MouseEvent.CLICK, onIntroClick); model.mainGraphics.introVideo.visible = false; model.mainGraphics.introVideo.alpha = 1; model.mainGraphics.removeChild(model.mainGraphics.introVideo); duello.alpha = 1; animateInInstructions(); }})); duello.stage.addEventListener(MouseEvent.CLICK, onIntroClick); } private function setCategoryString(_arg1:int, _arg2:String):void{ var _local8:TextFormat; var _local9:int; var _local10:String; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local3:Array = [0, 1, 1, 2, 2, 3, 3, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9]; var _local4:Array = [1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 21]; var _local5:TextField = tiles[_arg1].category.field; var _local6:String = _arg2.toUpperCase(); _local5.text = _local6; var _local7:Number = ((_arg1 < 4)) ? 111 : 117; if (_local7 < _local5.textWidth){ if (130 < _local5.textWidth){ _local10 = ""; if (-1 != _local6.search(" ")){ _local10 = " "; } else { if (-1 != _local6.search("-")){ _local10 = "-"; }; }; if (_local10.length){ _local11 = Math.ceil((0.5 * _local6.length)); _local12 = _local11; _local13 = _local11; while ((((0 < _local12)) && ((_local13 < _local6.length)))) { if (_local10 == _local6.charAt(_local12)){ _local14 = _local12; break; }; if (_local10 == _local6.charAt(_local13)){ _local14 = _local13; break; }; _local12--; _local13++; }; _local6 = ((_local6.substring(0, (_local14 + ((" " == _local10)) ? 0 : 1)) + "\n") + _local6.substring((_local14 + 1))); _local5.multiline = true; _local5.text = _local6; _local5.y = (_local5.y - 16); }; }; _local8 = _local5.getTextFormat(); _local9 = 0; while (_local7 < _local5.textWidth) { _local8.size = (Number(_local8.size) - 1); _local5.setTextFormat(_local8); _local9++; }; if (_local5.multiline){ _local5.y = (_local5.y + _local4[_local9]); } else { _local5.y = (_local5.y + _local3[_local9]); }; }; } private function animateExpandTile(_arg1:MovieClip, _arg2:Function=null, _arg3:Array=null):void{ var tile = _arg1; var onComplete = _arg2; var onCompleteArgs = _arg3; model.mainGraphics.clock.text = "00:00"; model.mainGraphics.timeBar.gotoAndStop("end"); tile.gotoAndStop("question_flip_begin"); duello.glassWalls.visible = true; tile.expand.visible = true; tile.hatch.visible = true; selectedTileIndex = duello.getChildIndex(tile); duello.setChildIndex(tile, (duello.numChildren - 1)); var startTick:Number = currentTick; var startFrame:int = getLabelFrame("question_flip_begin", tile); model.activeAnimations.push(new Animation(tile, startFrame, "question_flip_end", startTick, {frameRate:(24 / config.tickRate), onComplete:animateInQuestion, onStart:function ():void{ config.soundManager.getFromClass(valueReveal).play(0.7); }})); var expandStart:Number = (startTick + (((getLabelFrame("flip_expand_trigger", tile) - startFrame) / 24) * config.tickRate)); model.activeAnimations.push(new Animation(tile.expand, "begin", "end", expandStart, {frameRate:(24 / config.tickRate)})); var hatchStart:Number = (startTick + (((getLabelFrame("open_hatch_trigger", tile) - startFrame) / 24) * config.tickRate)); model.activeAnimations.push(new Animation(tile.hatch, "begin", "end", hatchStart, {frameRate:(24 / config.tickRate)})); } private function getAnswerIndex(_arg1:Object):int{ var _local2:int; while (_local2 < 4) { if (_arg1 == answers[_local2]){ return (_local2); }; _local2++; }; return (0); } private function onAnswerSelected(_arg1:MouseEvent):void{ disableAnswerSelection(); model.selectedAnswer = getAnswerIndex(_arg1.target); model.activeAnimations.push(new Animation(answers[model.selectedAnswer], "selected_begin", "selected_end", currentTick, {frameRate:(24 / config.tickRate)})); config.soundManager.getFromClass(answerSelect).play(); outputQueue.enqueue(new Message(MsgTypes.questionAnswer, {index:model.selectedAnswer, timeBonus:0})); } private function onTimeBonus(_arg1:Message):void{ var originalX:Number; var message = _arg1; model.timeBonus = (model.timeBonus + message.bonus); model.mainGraphics.timeBonus.visible = true; originalX = model.mainGraphics.timeBonus.x; model.mainGraphics.timeBonus.x = (model.mainGraphics.timeBonus.x - 32); var asString:String = message.bonus.toString(); var bonusClips:Array = [model.mainGraphics.timeBonus.d3, model.mainGraphics.timeBonus.d2, model.mainGraphics.timeBonus.d1, model.mainGraphics.timeBonus.d0]; var args:Object = {frameRate:(24 / config.tickRate), onComplete:function ():void{ model.mainGraphics.timeBonus.visible = false; model.mainGraphics.timeBonus.x = originalX; }}; var i:int; while (i < 4) { bonusClips[i].clip.field.text = asString.charAt((asString.length - (i + 1))); if (0 == bonusClips[i].clip.field.text.length){ break; }; model.mainGraphics.timeBonus.x = (model.mainGraphics.timeBonus.x + 8); model.activeAnimations.push(new Animation(bonusClips[i], "begin", "end", currentTick, args)); args = {frameRate:(24 / config.tickRate)}; i = (i + 1); }; } private function setClock(_arg1:Number):void{ var _local2:Number = Math.round((100 * (_arg1 / config.tickRate))); var _local3:String = _local2.toString(); while (4 > _local3.length) { _local3 = ("0" + _local3); }; model.mainGraphics.clock.text = ((_local3.substring(0, 2) + ":") + _local3.substring(2, 4)); var _local4:Number = 0; if (model.state == ViewModel.STATE_QUESTION_SELECTION){ _local4 = config.categoryCountdownLength; } else { if (model.state == ViewModel.STATE_ANSWER_SELECTION){ _local4 = config.questionCountdownLength; }; }; var _local5:int = Math.max(1, ((1 - (_arg1 / _local4)) * model.mainGraphics.timeBar.totalFrames)); model.mainGraphics.timeBar.gotoAndStop(_local5); } public function update(_arg1:Number):void{ var _local2:Message; currentTick = _arg1; if (finished){ return; }; if (quitClicked){ model.mainGraphics.quitButton.mouseEnabled = false; duello.mouseChildren = false; clearTasks(); userInput.clear(); outputQueue.clear(); outputQueue.enqueue(new Message(MsgTypes.quitGame)); _local2 = new Message(MsgTypes.quitGame); _local2.tick = int(Math.ceil(_arg1)); config.gameComm.addPlayData(_local2.toBinaryPlayData()); while (0 < model.activeAnimations.length) { model.activeAnimations.pop(); }; model.playerScore = 0; finished = true; return; }; if (!started){ start(); started = true; }; if (countdown){ updateCountdown(); }; executeTasks(); handleGameUpdates(); handleUserInput(); updateAnimations(); } private function onQuitOver(_arg1:MouseEvent):void{ model.mainGraphics.quitButton.gotoAndStop(2); } private function onQuitClick(_arg1:MouseEvent):void{ quitClicked = true; } private function onCategories(_arg1:Message):void{ var _local2:int; while (_local2 < 8) { setCategoryString(_local2, _arg1[("names" + _local2)]); setCategoryStringInExpanded(_local2, _arg1[("names" + _local2)]); tiles[_local2].value.field.text = ((0.001 * _arg1[("values" + _local2)]) + ".000"); model.questionValues.push(_arg1[("values" + _local2)]); _local2++; }; animateTilesFlippingIn(); } private function animateContractTile(_arg1:MovieClip):void{ var tile = _arg1; tile.gotoAndStop("question_flip_end"); tile.expand.visible = true; tile.expand.gotoAndStop("end"); tile.hatch.visible = true; tile.hatch.gotoAndStop("end"); var startTick:Number = currentTick; model.activeAnimations.push(new Animation(tile, "question_flip_end", "question_flip_begin", startTick, {frameRate:(24 / config.tickRate), onComplete:function ():void{ duello.setChildIndex(tile, selectedTileIndex); animateFadeTile(tile); }})); model.activeAnimations.push(new Animation(tile.expand, "end", "begin", startTick, {frameRate:(24 / config.tickRate)})); model.activeAnimations.push(new Animation(tile.hatch, "end", "begin", startTick, {frameRate:(24 / config.tickRate)})); } private function start():void{ animateIntroVideo(); } private function animateFadeTile(_arg1:MovieClip):void{ model.activeAnimations.push(new Animation(_arg1, "deactivate_begin", "deactivate_end", currentTick, {frameRate:(24 / config.tickRate), onComplete:animateGoldBar})); } private function onQuestion(_arg1:Message):void{ var _local3:int; var _local4:TextField; var _local5:TextFormat; duello.question.clip.field.text = _arg1.question.toUpperCase(); var _local2:Array = [_arg1.answers0.toUpperCase(), _arg1.answers1.toUpperCase(), _arg1.answers2.toUpperCase(), _arg1.answers3.toUpperCase()]; _local3 = 0; while (_local3 < 4) { _local4 = answers[_local3].clip.field; _local4.text = _local2[_local3]; _local4.y = answersOriginalYPos[_local3]; if (290 < _local4.textWidth){ _local5 = _local4.getTextFormat(); do { _local5.size = (Number(_local5.size) - 1); _local4.setTextFormat(_local5); _local4.y = (_local4.y + 0.5); } while (290 < _local4.textWidth); _local4.y = Math.round(_local4.y); }; _local3++; }; _local3 = 0; while (_local3 < 8) { if (_local3 == model.selectedQuestion){ animateExpandTile(MovieClip(tiles[_local3])); } else { if (-1 == model.answeredQuestions.indexOf(_local3)){ animateLowerTile(MovieClip(tiles[_local3])); }; }; _local3++; }; } private function disableAnswerSelection():void{ duello.mouseChildren = false; model.state = ViewModel.STATE_ANSWER_SELECTED; var _local1:int; while (_local1 < 4) { answers[_local1].mouseEnabled = false; _local1++; }; } private function updateCountdown():void{ var _local1:Number = (countdownLength - (currentTick - countdownStart)); if (0 < _local1){ if (_local1 != countdownLast){ model.mainGraphics.infoPanel.counter.field.text = config.displayStrings("inst_countdown", Math.ceil((_local1 / config.tickRate)).toString()).toUpperCase(); countdownLast = _local1; }; } else { model.mainGraphics.infoPanel.counter.field.text = config.displayStrings("inst_countdown", "0").toUpperCase(); duello.stage.removeEventListener(MouseEvent.CLICK, onStageClick); countdown = false; animateOutInstructions(); }; } private function enableAnswerSelection():void{ duello.mouseChildren = true; model.state = ViewModel.STATE_ANSWER_SELECTION; var _local1:int; while (_local1 < 4) { answers[_local1].mouseEnabled = true; _local1++; }; } private function animateInQuestion():void{ var delay:Number; var startTick:Number = (currentTick + (config.showQuestionDelay * config.tickRate)); model.activeAnimations.push(new Animation(duello.question, "in_begin", "in_end", startTick, {frameRate:(24 / config.tickRate), onStart:function ():void{ config.soundManager.getFromClass(showQuestion).play(config.showQuestionVol); }})); duello.questionValue.clip.field.text = ((0.001 * model.questionValues[model.selectedQuestion]) + ".000 €"); model.activeAnimations.push(new Animation(duello.questionValue, "in_begin", "in_end", startTick, {frameRate:(24 / config.tickRate)})); var i:int; while (i < 4) { answers[i].visible = true; delay = ((config.showAnswersDelay * config.tickRate) + ((i * config.answersDeltaDelay) * config.tickRate)); model.activeAnimations.push(new Animation(answers[i], "in_begin", "in_end", (startTick + delay), {frameRate:(24 / config.tickRate), onStart:function ():void{ config.soundManager.getFromClass(showQuestion).play(config.showQuestionVol); }, onComplete:((i == 3)) ? enableAnswerSelection : null})); i = (i + 1); }; setClock(config.questionCountdownLength); model.mainGraphics.timeBar.gotoAndStop("begin"); } private function onQuestionAnswerResponse(_arg1:Message):void{ var animationLabel:String; var message = _arg1; model.answeredQuestions.push(model.selectedQuestion); model.unansweredQuestions.splice(model.unansweredQuestions.indexOf(model.selectedQuestion), 1); var result = (model.selectedAnswer == message.correctAnswer); model.answeredCorrectly = result; model.answerStates = ["neutral", "neutral", "neutral", "neutral"]; if (-1 == model.selectedAnswer){ animateOutQuestion(); return; }; model.answerStates[message.correctAnswer] = "correct"; if (result){ config.soundManager.getFromClass(answerCorrect).play(config.answerCorrectVol); animationLabel = "selected_correct"; } else { config.soundManager.getFromClass(answerWrong).play(config.answerWrongVol); model.activeAnimations.push(new Animation(answers[message.correctAnswer], "correct_begin", "correct_end", currentTick, {frameRate:(24 / config.tickRate)})); animationLabel = "wrong"; model.answerStates[model.selectedAnswer] = "wrong"; }; model.activeAnimations.push(new Animation(answers[model.selectedAnswer], (animationLabel + "_begin"), (animationLabel + "_end"), currentTick, {frameRate:(24 / config.tickRate), onComplete:function ():void{ addTask((currentTick + (config.questionOutDelay * config.tickRate)), animateOutQuestion); }})); } private function handleUserInput():void{ var _local1:Object; while (!(userInput.isEmpty())) { _local1 = userInput.dequeue(); if (model.state == _local1.state){ _local1.handler.apply(null, _local1.args); }; }; } private function animateOutInstructions():void{ if (introMelody){ introMelody.fadeToAndStop(0, 300); } else { melody = config.musicManager.getFromClass(duello); melody.loop(0); melody.fadeTo(config.duelloMelodyVol, 1000); }; model.activeAnimations.push(new Animation(model.mainGraphics.infoPanel, "large_out_begin", "large_out_end", currentTick, {frameRate:(24 / config.tickRate), onComplete:function ():void{ duello.legalLogos.visible = false; duello.legalText.visible = false; duello.removeChild(duello.legalLogos); duello.removeChild(duello.legalText); model.mainGraphics.infoPanel.visible = false; outputQueue.enqueue(new Message(MsgTypes.categoriesRequest)); }})); } } }//package com.midasplayer.games.leredita
Section 23
//FinalInputField (com.midasplayer.games.leredita.FinalInputField) package com.midasplayer.games.leredita { import flash.events.*; import de.polygonal.ds.*; import flash.display.*; import flash.text.*; import flash.ui.*; public class FinalInputField extends Sprite { private var field:TextField; private var letters:Array; private var beginString:String; private var inputHandler:Function; private var blinkStart:Number; private var startingInput:Boolean; private var changed:Boolean; private var userInput:Queue; public function FinalInputField(_arg1:Queue, _arg2:Function, _arg3:int, _arg4:String, _arg5:int){ letters = new Array(); field = new TextField(); super(); this.userInput = _arg1; this.inputHandler = _arg2; field.type = TextFieldType.INPUT; field.maxChars = _arg3; field.restrict = " \\\\!\"#$%&'()*+,\\-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_`abcdefghijklmnopqrstuvwxyz~€¢£¥ÀÁÈÉÌÍÒÓÙÚàáèéìíòóùú"; field.mouseEnabled = false; field.doubleClickEnabled = false; field.mouseWheelEnabled = false; field.selectable = false; field.useRichTextClipboard = false; field.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); field.addEventListener(Event.CHANGE, onFieldChange); addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage); createLetters(_arg3); startInput(_arg4, _arg5); } private function onKeyDown(_arg1:KeyboardEvent):void{ if (field.type == TextFieldType.DYNAMIC){ return; }; if ((((_arg1.keyCode == Keyboard.ENTER)) || ((_arg1.keyCode == Keyboard.NUMPAD_ENTER)))){ if (field.length == letters.length){ stopInput(); userInput.enqueue({state:ViewModel.STATE_FINALWORD_ENTER, handler:inputHandler, args:[field.text.toLowerCase()]}); }; }; } public function startInput(_arg1:String, _arg2:int):void{ beginString = _arg1; blinkStart = _arg2; changed = false; startingInput = true; field.text = beginString; field.setSelection(field.text.length, field.text.length); var _local3:int; while (_local3 < field.length) { letters[_local3].line.visible = false; _local3++; }; update(blinkStart); field.type = TextFieldType.INPUT; } private function resetFocus(_arg1:FocusEvent):void{ stage.focus = field; } private function onRemovedFromStage(_arg1:Event):void{ field.removeEventListener(FocusEvent.FOCUS_OUT, resetFocus); } public function update(_arg1:Number):void{ if (field.type == TextFieldType.DYNAMIC){ return; }; var _local2:int; while (_local2 < field.length) { letters[_local2].clip.field.text = field.text.charAt(_local2).toUpperCase(); letters[_local2].visible = true; _local2++; }; if (_local2 < letters.length){ if (changed){ blinkStart = _arg1; changed = false; }; if (startingInput){ letters[_local2].visible = (5 > (Math.floor((_arg1 - blinkStart)) % 10)); } else { letters[_local2].visible = (5 < (Math.floor((_arg1 - blinkStart)) % 10)); }; var _temp1 = _local2; _local2 = (_local2 + 1); letters[_temp1].clip.field.text = ""; }; while (_local2 < letters.length) { letters[_local2].clip.field.text = ""; letters[_local2].visible = true; _local2++; }; } private function onAddedToStage(_arg1:Event):void{ field.addEventListener(FocusEvent.FOCUS_OUT, resetFocus); stage.focus = field; } private function onFieldChange(_arg1:Event):void{ if (field.text.length < beginString.length){ field.text = beginString; field.setSelection(field.text.length, field.text.length); } else { changed = true; startingInput = false; }; } public function stopInput():void{ update(blinkStart); field.type = TextFieldType.DYNAMIC; } private function createLetters(_arg1:int):void{ var _local3:InputLetter; var _local2:int; while (_local2 < _arg1) { _local3 = new InputLetter(); _local3.x = (Math.round((0.5 * _local3.width)) + (_local2 * Math.round((1 * _local3.width)))); _local3.y = Math.round((0.5 * _local3.height)); _local3.clip.field.text = ""; letters.push(_local3); this.addChild(_local3); _local2++; }; } } }//package com.midasplayer.games.leredita
Section 24
//GhigliottinaView (com.midasplayer.games.leredita.GhigliottinaView) package com.midasplayer.games.leredita { import flash.events.*; import com.midasplayer.game.framework.*; import de.polygonal.ds.*; import com.midasplayer.messaging.*; import flash.display.*; import com.midasplayer.sound.*; import flash.text.*; import com.midasplayer.util.*; import sfx.*; import flash.system.*; import flash.filters.*; public class GhigliottinaView extends TaskManager { private var started:Boolean;// = false private var outputQueue:Queue; private var defaultRegister:Array; private var altsOriginalYPos:int; private var defaultReplay:Array; private var model:ViewModel; private var activeInputLetter:int;// = 0 private var dispatcher:MsgDispatcher; private var countdownStart:Number; private var words:Array; private var userInput:Queue; private var countdown:Boolean;// = false private var config:Config; private var hoverReplay:Array; private var ghigliottina:MovieClip; private var enqueuedTimeBonus:Message;// = null private var quitClicked:Boolean;// = false private var inputQueue:Queue; private var alts:Array; private var melody:ManagedSound; public var finished:Boolean;// = false private var countdownLast:Number; private var countdownLength:Number; private var hoverRegister:Array; public function GhigliottinaView(_arg1:Config, _arg2:Queue, _arg3:Queue, _arg4:ViewModel, _arg5:Boolean=true){ var alt:MovieClip; var config = _arg1; var inputQueue = _arg2; var outputQueue = _arg3; var model = _arg4; var activeInput = _arg5; dispatcher = new MsgDispatcher(); userInput = new LinkedQueue(); defaultRegister = [1.12, 0, 0, 0, 0, 0, 1.12, 0, 0, 0, 0, 0, 1.12, 0, 0, 0, 0, 0, 1, 0]; hoverRegister = [1.24, 0, 0, 0, 0, 0, 1.24, 0, 0, 0, 0, 0, 1.24, 0, 0, 0, 0, 0, 1, 0]; defaultReplay = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; hoverReplay = [0.9, 0, 0, 0, 0, 0, 0.9, 0, 0, 0, 0, 0, 0.9, 0, 0, 0, 0, 0, 1, 0]; super(); this.config = config; this.inputQueue = inputQueue; this.outputQueue = outputQueue; this.model = model; ghigliottina = model.mainGraphics.ghigliottina; alts = [ghigliottina.alt0, ghigliottina.alt1]; words = [ghigliottina.word0, ghigliottina.word1, ghigliottina.word2, ghigliottina.word3, ghigliottina.word4]; altsOriginalYPos = alts[0].clip.field.y; if (activeInput){ ghigliottina.mouseChildren = true; }; var i:int; while (i < 2) { alt = MovieClip(alts[i]); alt.mouseEnabled = true; alt.addEventListener(MouseEvent.MOUSE_OVER, function (_arg1:MouseEvent):void{ userInput.enqueue({state:ViewModel.STATE_WORDPAIR_SELECTION, handler:onWordPairMouseOver, args:[_arg1]}); }); alt.addEventListener(MouseEvent.MOUSE_OUT, function (_arg1:MouseEvent):void{ userInput.enqueue({state:ViewModel.STATE_WORDPAIR_SELECTION, handler:onWordPairMouseOut, args:[_arg1]}); }); alt.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ userInput.enqueue({state:ViewModel.STATE_WORDPAIR_SELECTION, handler:onWordPairSelected, args:[_arg1]}); }); i = (i + 1); }; model.mainGraphics.quitButton.addEventListener(MouseEvent.MOUSE_OVER, onQuitOver); model.mainGraphics.quitButton.addEventListener(MouseEvent.MOUSE_OUT, onQuitOut); model.mainGraphics.quitButton.addEventListener(MouseEvent.CLICK, onQuitClick); dispatcher.addMsgListener(MsgTypes.wordPair, onWordPair); dispatcher.addMsgListener(MsgTypes.countdownUpdate, onCountdownUpdate); dispatcher.addMsgListener(MsgTypes.timelimitHit, onTimelimitHit); dispatcher.addMsgListener(MsgTypes.timeBonus, onTimeBonus); dispatcher.addMsgListener(MsgTypes.wordPairAnswerResponse, onWordPairAnswerResponse); dispatcher.addMsgListener(MsgTypes.finalWordLength, onFinalWordLength); dispatcher.addMsgListener(MsgTypes.finalWordAnswerResponse, onFinalWordAnswerResponse); } private function onFinalWordAnswerResponse(_arg1:Message):void{ var colorMatrix:Array; var asString:String; var message = _arg1; if (message.result){ colorMatrix = [0.1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0.1, 0, 0, 0, 0, 0, 1, 0]; } else { colorMatrix = [1, 0, 0, 0, 0, 0, 0.1, 0, 0, 0, 0, 0, 0.1, 0, 0, 0, 0, 0, 1, 0]; }; model.finalInputField.filters = [new ColorMatrixFilter(colorMatrix)]; model.finalWordGuesses++; if (!message.result){ if (1 == model.finalWordGuesses){ model.playerScore = int(Math.floor(((2 * model.playerScore) / 3))); } else { if (2 == model.finalWordGuesses){ model.playerScore = int(Math.floor((model.playerScore / 2))); } else { if (3 == model.finalWordGuesses){ model.playerScore = 0; }; }; }; }; if (message.result){ ghigliottina.panel.statusField.text = config.displayStrings("game_finalword_correct").toUpperCase(); model.mainGraphics.quitButton.mouseEnabled = false; melody.fadeToAndStop(0, 300); config.soundManager.getFromClass(answerCorrect).play((config.answerCorrectVol + 0.1)); addTask((currentTick + (0.45 * config.tickRate)), function ():void{ config.soundManager.getFromClass(ghigliottinaVictory).play(); }); config.gameComm.addPlayData(new Message(MsgTypes.gameData, {sound:!((0 == config.soundManager.volume)), music:!((0 == config.musicManager.volume))}).toBinaryPlayData()); config.gameComm.endGame((model.playerScore + model.timeBonus)); addTask((currentTick + (1.7 * config.tickRate)), onResultsTransition, message.result); } else { if (3 > model.finalWordGuesses){ config.soundManager.getFromClass(wordWrong).playAt(config.wordWrongVol, 710); model.state = ViewModel.STATE_FINALWORD_ENTER; asString = model.playerScore.toString(); if (3 < asString.length){ asString = ((asString.substr(0, (asString.length - 3)) + ".") + asString.substr((asString.length - 3), 3)); }; ghigliottina.score.clip1.field.text = asString; model.activeAnimations.push(new Animation(ghigliottina.score, "cutoff_begin", "cutoff_end", currentTick, {frameRate:(24 / config.tickRate), onComplete:function ():void{ addTask((currentTick + 6), function ():void{ ghigliottina.score.clip0.field.text = asString; ghigliottina.score.gotoAndStop("in_end"); model.finalInputField.startInput(message.firstLetter, currentTick); model.finalInputField.filters = []; }); }})); } else { ghigliottina.panel.statusField.text = config.displayStrings("game_finalword_last_wrong").toUpperCase(); model.mainGraphics.quitButton.mouseEnabled = false; config.soundManager.getFromClass(wordWrong).playAt(config.wordWrongVol, 710); melody.fadeTo(0.46, 1200); config.gameComm.addPlayData(new Message(MsgTypes.gameData, {sound:!((0 == config.soundManager.volume)), music:!((0 == config.musicManager.volume))}).toBinaryPlayData()); config.gameComm.endGame((model.playerScore + model.timeBonus)); ghigliottina.score.clip1.field.text = "0"; model.activeAnimations.push(new Animation(ghigliottina.score, "cutoff_begin", "cutoff_end", currentTick, {frameRate:(24 / config.tickRate), onComplete:function ():void{ addTask((currentTick + (1.15 * config.tickRate)), onResultsTransition, message.result); }})); }; }; } private function onWordPair(_arg1:Message):void{ var message = _arg1; setPanelField(alts[0].clip.field, message.words0); setPanelField(alts[1].clip.field, message.words1); model.activeAnimations.push(new Animation(ghigliottina.alt0, "in_begin", "in_end", currentTick, {frameRate:(24 / config.tickRate), onStart:function ():void{ config.soundManager.getFromClass(showWord).play(config.showWordPairVol); }})); model.activeAnimations.push(new Animation(ghigliottina.alt1, "in_begin", "in_end", (currentTick + (0.35 * config.tickRate)), {frameRate:(24 / config.tickRate), onStart:function ():void{ config.soundManager.getFromClass(showWord).play(config.showWordPairVol); }, onComplete:enableWordPairSelection})); } private function onRegisterClick(_arg1:MouseEvent):void{ model.mainGraphics.infoPanel.signupButton.removeEventListener(MouseEvent.MOUSE_OVER, onRegisterOver); model.mainGraphics.infoPanel.signupButton.removeEventListener(MouseEvent.MOUSE_OUT, onRegisterOut); model.mainGraphics.infoPanel.signupButton.removeEventListener(MouseEvent.MOUSE_DOWN, onRegisterDown); model.mainGraphics.infoPanel.signupButton.removeEventListener(MouseEvent.MOUSE_UP, onRegisterUp); model.mainGraphics.infoPanel.signupButton.removeEventListener(MouseEvent.CLICK, onRegisterClick); model.mainGraphics.infoPanel.signupTexts.signup3.removeEventListener(MouseEvent.MOUSE_OVER, onReplayOver); model.mainGraphics.infoPanel.signupTexts.signup3.removeEventListener(MouseEvent.MOUSE_OUT, onReplayOut); model.mainGraphics.infoPanel.signupTexts.signup3.removeEventListener(MouseEvent.MOUSE_DOWN, onReplayDown); model.mainGraphics.infoPanel.signupTexts.signup3.removeEventListener(MouseEvent.MOUSE_UP, onReplayUp); model.mainGraphics.infoPanel.signupTexts.signup3.removeEventListener(MouseEvent.CLICK, onReplayClick); fscommand("gameSignup"); } private function onWordPairAnswerResponse(_arg1:Message):void{ var _local2 = (model.selectedWord == _arg1.correctAnswer); if (!_local2){ model.playerScore = Math.floor((0.5 * model.playerScore)); }; setPanelField(words[model.answeredWordPairs].clip.field, alts[_arg1.correctAnswer].clip.field.text); model.answeredWordPairs++; if (-1 == model.selectedWord){ model.selectedWord = ((_arg1.correctAnswer == 1)) ? 0 : 1; model.state = ViewModel.STATE_WORDPAIR_SELECTED; config.soundManager.getFromClass(showWord).play(config.showWordPairVol); model.activeAnimations.push(new Animation(alts[(model.selectedWord) ? 0 : 1], "in_end", "in_begin", currentTick, {frameRate:(24 / config.tickRate), onComplete:animateOutWords, onCompleteArgs:[_local2]})); } else { animateOutWords(_local2); }; } private function onReplayDown(_arg1:MouseEvent):void{ model.mainGraphics.infoPanel.signupTexts.signup3.filters = []; } private function animateOutWords(_arg1:Boolean):void{ var _local2:Number = (model.answeredWordPairs - 2); var _local3:Object = {frameRate:(24 / config.tickRate), onComplete:animateFall, onCompleteArgs:[_arg1]}; var _local4:int = (model.answeredWordPairs - 2); while (_local4 >= 0) { var _temp1 = _local2; _local2 = (_local2 - 1); model.activeAnimations.push(new Animation(words[_local4], "in_end", "in_begin", (currentTick + (0.5 * _temp1)), _local3)); _local3 = {frameRate:(24 / config.tickRate)}; _local4--; }; safeCall(_local3.onComplete, _local3.onCompleteArgs); } private function onWordPairMouseOut(_arg1:MouseEvent):void{ var _local2:int = ((_arg1.target == alts[0])) ? 0 : 1; alts[_local2].gotoAndStop("selectable"); } private function onReplayUp(_arg1:MouseEvent):void{ model.mainGraphics.infoPanel.signupTexts.signup3.filters = [new ColorMatrixFilter(defaultReplay)]; } private function startCountDown(_arg1:int):void{ countdownStart = currentTick; countdownLength = (_arg1 * config.tickRate); countdownLast = countdownLength; countdown = true; ghigliottina.stage.addEventListener(MouseEvent.CLICK, onStageClick); } private function onReplayClick(_arg1:MouseEvent):void{ model.mainGraphics.infoPanel.signupButton.removeEventListener(MouseEvent.MOUSE_OVER, onRegisterOver); model.mainGraphics.infoPanel.signupButton.removeEventListener(MouseEvent.MOUSE_OUT, onRegisterOut); model.mainGraphics.infoPanel.signupButton.removeEventListener(MouseEvent.MOUSE_DOWN, onRegisterDown); model.mainGraphics.infoPanel.signupButton.removeEventListener(MouseEvent.MOUSE_UP, onRegisterUp); model.mainGraphics.infoPanel.signupButton.removeEventListener(MouseEvent.CLICK, onRegisterClick); model.mainGraphics.infoPanel.signupTexts.signup3.removeEventListener(MouseEvent.MOUSE_OVER, onReplayOver); model.mainGraphics.infoPanel.signupTexts.signup3.removeEventListener(MouseEvent.MOUSE_OUT, onReplayOut); model.mainGraphics.infoPanel.signupTexts.signup3.removeEventListener(MouseEvent.MOUSE_DOWN, onReplayDown); model.mainGraphics.infoPanel.signupTexts.signup3.removeEventListener(MouseEvent.MOUSE_UP, onReplayUp); model.mainGraphics.infoPanel.signupTexts.signup3.removeEventListener(MouseEvent.CLICK, onReplayClick); Main.restart = true; } private function updateAnimations():void{ var _local1:Tween; var _local2:Array = new Array(); for each (_local1 in model.activeAnimations) { _local1.update(currentTick); if (_local1.finished){ _local2.push(_local1); }; }; for each (_local1 in _local2) { model.activeAnimations.splice(model.activeAnimations.indexOf(_local1), 1); }; } private function animateInOpenGameEnd():void{ config.soundManager.getFromClass(showQuestion).play(); model.mainGraphics.infoPanel.visible = true; model.mainGraphics.infoPanel.instructions.visible = true; model.mainGraphics.infoPanel.header.visible = true; model.mainGraphics.infoPanel.scoreLabel.visible = false; model.mainGraphics.infoPanel.timeBonusLabel.visible = false; model.mainGraphics.infoPanel.totalScoreLabel.visible = false; model.mainGraphics.infoPanel.score.visible = false; model.mainGraphics.infoPanel.timeBonus.visible = false; model.mainGraphics.infoPanel.totalScore.visible = false; model.mainGraphics.infoPanel.legalImage.visible = false; model.mainGraphics.infoPanel.header.field.text = config.displayStrings("register_header").toUpperCase(); model.mainGraphics.infoPanel.instructions.field.htmlText = config.displayStrings("register_desc").toUpperCase(); var linkStyle:StyleSheet = new StyleSheet(); linkStyle.setStyle("a:link", {color:"#51D3FF", textDecoration:"none"}); linkStyle.setStyle("a:hover", {color:"#51D3FF", textDecoration:"underline"}); model.mainGraphics.infoPanel.instructions.field.styleSheet = linkStyle; model.mainGraphics.infoPanel.counter.field.text = config.displayStrings("rslt_countdown", config.openGameEndCountdownLength).toUpperCase(); model.mainGraphics.infoPanel.visible = true; model.activeAnimations.push(new Animation(model.mainGraphics.infoPanel, "large_in_begin", "instructions_in_begin", currentTick, {frameRate:(24 / config.tickRate), onComplete:function ():void{ model.activeAnimations.push(new Animation(model.mainGraphics.infoPanel, "instructions_in_end", "large_in_end", currentTick, {frameRate:(24 / config.tickRate), onComplete:function ():void{ model.mainGraphics.mouseChildren = true; model.mainGraphics.infoPanel.mouseChildren = true; model.mainGraphics.infoPanel.instructions.mouseChildren = true; model.mainGraphics.infoPanel.instructions.field.mouseEnabled = true; startCountDown(config.openGameEndCountdownLength); }})); }})); } private function onReplayOver(_arg1:MouseEvent):void{ model.mainGraphics.infoPanel.signupTexts.signup3.filters = [new ColorMatrixFilter(hoverReplay)]; } private function onRegisterOver(_arg1:MouseEvent):void{ model.mainGraphics.infoPanel.signupButton.filters = [new ColorMatrixFilter(hoverRegister)]; } private function exit():void{ finished = true; } private function onQuitOut(_arg1:MouseEvent):void{ model.mainGraphics.quitButton.gotoAndStop(1); } private function animateOutResults():void{ model.activeAnimations.push(new Animation(model.mainGraphics.infoPanel, "large_out_begin", "large_out_end", currentTick, {frameRate:(24 / config.tickRate), onComplete:function ():void{ model.mainGraphics.infoPanel.visible = false; exit(); }})); } private function onStageClick(_arg1:MouseEvent):void{ if (MainView.buttonsPressed){ return; }; ghigliottina.stage.removeEventListener(MouseEvent.CLICK, onStageClick); countdown = false; animateOutResults(); } private function onTimelimitHit(_arg1:Message):void{ config.soundManager.getFromClass(timelimitHit).play(config.timelimitHitVol); model.mainGraphics.clock.text = "00:00"; model.mainGraphics.timeBar.gotoAndStop("end"); if (model.state == ViewModel.STATE_WORDPAIR_SELECTION){ disableWordPairSelection(); alts[0].gotoAndStop("selectable"); alts[1].gotoAndStop("selectable"); } else { if (model.state == ViewModel.STATE_FINALWORD_ENTER){ model.finalInputField.stopInput(); userInput.clear(); }; }; } private function enableWordPairSelection():void{ ghigliottina.mouseChildren = true; model.state = ViewModel.STATE_WORDPAIR_SELECTION; model.selectedWord = -1; } private function onRegisterOut(_arg1:MouseEvent):void{ model.mainGraphics.infoPanel.signupButton.filters = [new ColorMatrixFilter(defaultRegister)]; } private function handleGameUpdates():void{ while (((!(finished)) && (!(inputQueue.isEmpty())))) { dispatcher.dispatchMessage(Message(inputQueue.dequeue())); }; } private function onWordPairSelected(_arg1:MouseEvent):void{ var event = _arg1; disableWordPairSelection(); model.selectedWord = ((event.target == alts[0])) ? 0 : 1; model.state = ViewModel.STATE_WORDPAIR_SELECTED; model.activeAnimations.push(new Animation(alts[model.selectedWord], "select_begin", "select_end", currentTick, {frameRate:(24 / config.tickRate), onStart:function ():void{ config.soundManager.getFromClass(answerSelect).play(0.9); }})); model.activeAnimations.push(new Animation(alts[(model.selectedWord) ? 0 : 1], "in_end", "in_begin", currentTick, {frameRate:(24 / config.tickRate), onStart:function ():void{ config.soundManager.getFromClass(showWord).play(config.showWordPairVol); }})); outputQueue.enqueue(new Message(MsgTypes.wordPairAnswer, {index:model.selectedWord, timeBonus:0})); } private function animateInSelfcontainedEnd():void{ config.soundManager.getFromClass(showQuestion).play(); model.mainGraphics.infoPanel.visible = true; model.mainGraphics.infoPanel.signupButton.visible = true; model.mainGraphics.infoPanel.signupTexts.visible = true; model.mainGraphics.infoPanel.header.visible = false; model.mainGraphics.infoPanel.instructions.visible = false; model.mainGraphics.infoPanel.scoreLabel.visible = false; model.mainGraphics.infoPanel.timeBonusLabel.visible = false; model.mainGraphics.infoPanel.totalScoreLabel.visible = false; model.mainGraphics.infoPanel.score.visible = false; model.mainGraphics.infoPanel.timeBonus.visible = false; model.mainGraphics.infoPanel.totalScore.visible = false; model.mainGraphics.infoPanel.legalImage.visible = true; var boldFormat:TextFormat = new TextFormat(); boldFormat.bold = true; var style:StyleSheet = new StyleSheet(); style.setStyle("a:link", {color:"#87DDFF", textDecoration:"underline"}); style.setStyle("a:hover", {color:"#A3E1FF", textDecoration:"underline"}); var underlineItalicFormat:TextFormat = new TextFormat(); underlineItalicFormat.italic = true; underlineItalicFormat.underline = true; model.mainGraphics.infoPanel.signupTexts.signup0.defaultTextFormat = boldFormat; model.mainGraphics.infoPanel.signupTexts.signup0.text = config.displayStrings("register_extern_head0").toUpperCase(); model.mainGraphics.infoPanel.signupTexts.signup1.defaultTextFormat = boldFormat; model.mainGraphics.infoPanel.signupTexts.signup1.text = config.displayStrings("register_extern_head1").toUpperCase(); model.mainGraphics.infoPanel.signupTexts.signup2.text = config.displayStrings("register_extern_signup").toUpperCase(); model.mainGraphics.infoPanel.signupTexts.signup3.defaultTextFormat = underlineItalicFormat; model.mainGraphics.infoPanel.signupTexts.signup3.text = config.displayStrings("register_extern_playnow").toUpperCase(); model.mainGraphics.infoPanel.signupTexts.signup4.styleSheet = style; model.mainGraphics.infoPanel.signupTexts.signup4.htmlText = config.displayStrings("register_extern_legal"); model.mainGraphics.infoPanel.visible = true; model.activeAnimations.push(new Animation(model.mainGraphics.infoPanel, "large_in_begin", "instructions_in_begin", currentTick, {frameRate:(24 / config.tickRate), onComplete:function ():void{ model.mainGraphics.infoPanel.signupButton.filters = [new ColorMatrixFilter(defaultRegister)]; model.mainGraphics.mouseChildren = true; model.mainGraphics.infoPanel.mouseChildren = true; model.mainGraphics.infoPanel.signupButton.mouseEnabled = true; model.mainGraphics.infoPanel.signupButton.addEventListener(MouseEvent.MOUSE_OVER, onRegisterOver); model.mainGraphics.infoPanel.signupButton.addEventListener(MouseEvent.MOUSE_OUT, onRegisterOut); model.mainGraphics.infoPanel.signupButton.addEventListener(MouseEvent.MOUSE_DOWN, onRegisterDown); model.mainGraphics.infoPanel.signupButton.addEventListener(MouseEvent.MOUSE_UP, onRegisterUp); model.mainGraphics.infoPanel.signupButton.addEventListener(MouseEvent.CLICK, onRegisterClick); model.mainGraphics.infoPanel.signupTexts.mouseChildren = true; model.mainGraphics.infoPanel.signupTexts.signup3.mouseEnabled = true; model.mainGraphics.infoPanel.signupTexts.signup3.selectable = false; model.mainGraphics.infoPanel.signupTexts.signup3.addEventListener(MouseEvent.MOUSE_OVER, onReplayOver); model.mainGraphics.infoPanel.signupTexts.signup3.addEventListener(MouseEvent.MOUSE_OUT, onReplayOut); model.mainGraphics.infoPanel.signupTexts.signup3.addEventListener(MouseEvent.MOUSE_DOWN, onReplayDown); model.mainGraphics.infoPanel.signupTexts.signup3.addEventListener(MouseEvent.MOUSE_UP, onReplayUp); model.mainGraphics.infoPanel.signupTexts.signup3.addEventListener(MouseEvent.CLICK, onReplayClick); model.mainGraphics.infoPanel.signupTexts.signup4.mouseEnabled = true; model.mainGraphics.infoPanel.signupTexts.signup4.selectable = false; }})); } private function onFinalWordLength(_arg1:Message):void{ model.finalWordLength = _arg1.length; var _local2:String = config.displayStrings("game_finalword_instructions").toUpperCase(); if (0 < _arg1.finalWord.length){ _local2 = (_local2 + ((" [" + _arg1.finalWord.toUpperCase()) + "]")); }; ghigliottina.panel.clip.field.text = _local2; model.activeAnimations.push(new Animation(ghigliottina.panel, "begin", "end", currentTick, {frameRate:(24 / config.tickRate), onComplete:enableFinalWordInput})); var _local3:int; while (_local3 < model.answeredWordPairs) { model.activeAnimations.push(new Animation(words[_local3], "partial_begin", "partial_end", currentTick, {frameRate:(24 / config.tickRate)})); _local3++; }; } private function animateInResults(_arg1:Boolean):void{ config.soundManager.getFromClass(showQuestion).play(); model.mainGraphics.infoPanel.visible = true; model.mainGraphics.infoPanel.instructions.visible = false; model.mainGraphics.infoPanel.header.visible = true; model.mainGraphics.infoPanel.scoreLabel.visible = true; model.mainGraphics.infoPanel.timeBonusLabel.visible = true; model.mainGraphics.infoPanel.totalScoreLabel.visible = true; model.mainGraphics.infoPanel.score.visible = true; model.mainGraphics.infoPanel.timeBonus.visible = true; model.mainGraphics.infoPanel.totalScore.visible = true; model.mainGraphics.infoPanel.legalImage.visible = false; model.mainGraphics.infoPanel.header.field.text = config.displayStrings((_arg1) ? "rslt_win" : "rslt_loss").toUpperCase(); model.mainGraphics.infoPanel.scoreLabel.field.text = config.displayStrings("rslt_score").toUpperCase(); model.mainGraphics.infoPanel.timeBonusLabel.field.text = config.displayStrings("rslt_timebonus").toUpperCase(); model.mainGraphics.infoPanel.totalScoreLabel.field.text = config.displayStrings("rslt_totalscore").toUpperCase(); model.mainGraphics.infoPanel.score.field.text = model.playerScore; model.mainGraphics.infoPanel.timeBonus.field.text = model.timeBonus; model.mainGraphics.infoPanel.totalScore.field.text = (model.playerScore + model.timeBonus); model.mainGraphics.infoPanel.counter.field.text = config.displayStrings("rslt_countdown", config.resultCountdownLength).toUpperCase(); model.mainGraphics.infoPanel.visible = true; model.activeAnimations.push(new Animation(model.mainGraphics.infoPanel, "large_in_begin", "large_in_end", currentTick, {frameRate:(30 / config.tickRate), onComplete:startCountDown, onCompleteArgs:[config.resultCountdownLength]})); } private function onQuitOver(_arg1:MouseEvent):void{ model.mainGraphics.quitButton.gotoAndStop(2); } private function onTimeBonus(_arg1:Message):void{ if (model.state != ViewModel.STATE_FINALWORD_ENTERED){ enqueuedTimeBonus = _arg1; } else { animateTimeBonus(_arg1); }; } private function setClock(_arg1:Number):void{ var _local2:Number = Math.round((100 * (_arg1 / config.tickRate))); var _local3:String = _local2.toString(); while (4 > _local3.length) { _local3 = ("0" + _local3); }; model.mainGraphics.clock.text = ((_local3.substring(0, 2) + ":") + _local3.substring(2, 4)); var _local4:Number = 0; if (model.state == ViewModel.STATE_FINALWORD_ENTER){ _local4 = config.finalWordCountdownLength; } else { if (model.state == ViewModel.STATE_WORDPAIR_SELECTION){ _local4 = config.wordPairCountdownLength; }; }; var _local5:int = Math.max(1, ((1 - (_arg1 / _local4)) * model.mainGraphics.timeBar.totalFrames)); model.mainGraphics.timeBar.gotoAndStop(_local5); } private function onReplayOut(_arg1:MouseEvent):void{ model.mainGraphics.infoPanel.signupTexts.signup3.filters = [new ColorMatrixFilter(defaultReplay)]; } private function onResultsTransition(_arg1:Boolean):void{ var clips:Array; var result = _arg1; clips = words.concat(); clips.push(ghigliottina.score); clips.push(ghigliottina.panel); clips.push(model.mainGraphics.clock); clips.push(model.mainGraphics.timeBar); model.activeAnimations.push(new FadeOutTween(clips, currentTick, (0.6 * config.tickRate), {onComplete:function ():void{ var _local1:*; for each (_local1 in clips) { _local1.visible = false; }; animateInResults(result); }})); } private function onQuitClick(_arg1:MouseEvent):void{ quitClicked = true; } private function setPanelField(_arg1:TextField, _arg2:String):void{ var _local3:TextFormat; _arg1.text = _arg2.toUpperCase(); _arg1.y = altsOriginalYPos; if (220 < _arg1.textWidth){ _local3 = _arg1.getTextFormat(); do { _local3.size = (Number(_local3.size) - 1); _arg1.setTextFormat(_local3); _arg1.y = (_arg1.y + 0.5); } while (220 < _arg1.textWidth); _arg1.y = Math.round(_arg1.y); }; } public function update(_arg1:Number):void{ var _local2:Message; currentTick = _arg1; if (quitClicked){ model.mainGraphics.quitButton.mouseEnabled = false; ghigliottina.mouseChildren = false; clearTasks(); userInput.clear(); outputQueue.clear(); outputQueue.enqueue(new Message(MsgTypes.quitGame)); _local2 = new Message(MsgTypes.quitGame); _local2.tick = int(Math.ceil(_arg1)); config.gameComm.addPlayData(_local2.toBinaryPlayData()); config.gameComm.addPlayData(new Message(MsgTypes.gameData, {sound:!((0 == config.soundManager.volume)), music:!((0 == config.musicManager.volume))}).toBinaryPlayData()); while (0 < model.activeAnimations.length) { model.activeAnimations.pop(); }; dispatcher.removeMsgListener(MsgTypes.wordPair, onWordPair); dispatcher.removeMsgListener(MsgTypes.countdownUpdate, onCountdownUpdate); dispatcher.removeMsgListener(MsgTypes.timelimitHit, onTimelimitHit); dispatcher.removeMsgListener(MsgTypes.timeBonus, onTimeBonus); dispatcher.removeMsgListener(MsgTypes.wordPairAnswerResponse, onWordPairAnswerResponse); dispatcher.removeMsgListener(MsgTypes.finalWordLength, onFinalWordLength); dispatcher.removeMsgListener(MsgTypes.finalWordAnswerResponse, onFinalWordAnswerResponse); model.playerScore = 0; config.gameComm.endGame((model.playerScore + model.timeBonus)); animateInResults(false); quitClicked = false; }; if (!started){ start(); started = true; }; if (model.finalInputField){ model.finalInputField.update(_arg1); }; if (countdown){ updateCountdown(); }; executeTasks(); handleGameUpdates(); handleUserInput(); updateAnimations(); } private function start():void{ if (config.openGame){ config.gameComm.addPlayData(new Message(MsgTypes.gameData, {sound:!((0 == config.soundManager.volume)), music:!((0 == config.musicManager.volume))}).toBinaryPlayData()); config.gameComm.endGame((model.playerScore + model.timeBonus)); if (config.selfcontaining){ animateInSelfcontainedEnd(); } else { animateInOpenGameEnd(); }; return; } else { if (110000 >= model.playerScore){ config.gameComm.addPlayData(new Message(MsgTypes.gameData, {sound:!((0 == config.soundManager.volume)), music:!((0 == config.musicManager.volume))}).toBinaryPlayData()); model.playerScore = 0; config.gameComm.endGame((model.playerScore + model.timeBonus)); animateInResults(false); return; }; }; melody = config.musicManager.getFromClass(ghigliottina); melody.loop(0); melody.fadeTo(config.ghigliottinaVol, 200); model.mainGraphics.duello.visible = false; model.mainGraphics.ghigliottina.visible = true; model.mainGraphics.clock.visible = true; model.mainGraphics.timeBar.visible = true; ghigliottina.score.clip0.field.text = ((0.001 * model.playerScore) + ".000"); model.activeAnimations.push(new Animation(ghigliottina.score, "in_begin", "in_end", currentTick, {frameRate:(24 / config.tickRate), onComplete:outputQueue.enqueue, onCompleteArgs:[new Message(MsgTypes.wordPairRequest)]})); model.mainGraphics.quitButton.mouseEnabled = true; } private function animateInWords():void{ var _local1:Number = (model.answeredWordPairs - 1); var _local2:Object = {frameRate:(24 / config.tickRate), onComplete:outputQueue.enqueue}; if (5 != model.answeredWordPairs){ _local2.onCompleteArgs = [new Message(MsgTypes.wordPairRequest)]; } else { _local2.onCompleteArgs = [new Message(MsgTypes.finalWordLengthRequest)]; }; var _local3:int = (model.answeredWordPairs - 1); while (_local3 >= 0) { var _temp1 = _local1; _local1 = (_local1 - 1); model.activeAnimations.push(new Animation(words[_local3], "in_begin", "in_end", (currentTick + (0.5 * _temp1)), _local2)); _local2 = {frameRate:(24 / config.tickRate)}; _local3--; }; } private function onWordPairMouseOver(_arg1:MouseEvent):void{ var _local2:int = ((_arg1.target == alts[0])) ? 0 : 1; alts[_local2].gotoAndStop("mouse_over"); } private function updateCountdown():void{ var _local1:Number = (countdownLength - (currentTick - countdownStart)); if (0 < _local1){ if (_local1 != countdownLast){ model.mainGraphics.infoPanel.counter.field.text = config.displayStrings("rslt_countdown", Math.ceil((_local1 / config.tickRate)).toString()).toUpperCase(); countdownLast = _local1; }; } else { model.mainGraphics.infoPanel.counter.field.text = config.displayStrings("rslt_countdown", "0").toUpperCase(); countdown = false; animateOutResults(); }; } private function onRegisterDown(_arg1:MouseEvent):void{ model.mainGraphics.infoPanel.signupButton.filters = []; } private function onRegisterUp(_arg1:MouseEvent):void{ model.mainGraphics.infoPanel.signupButton.filters = [new ColorMatrixFilter(defaultRegister)]; } private function enableFinalWordInput():void{ model.state = ViewModel.STATE_FINALWORD_ENTER; model.finalInputField = new FinalInputField(userInput, onFinalWordSubmit, model.finalWordLength, "", currentTick); model.finalInputField.x = (Math.round(((0.5 * ghigliottina.panel.back.width) - (0.5 * model.finalInputField.width))) - ghigliottina.panel.back.width); model.finalInputField.y = 270; ghigliottina.panel.addChild(model.finalInputField); } private function disableWordPairSelection():void{ ghigliottina.mouseChildren = false; model.state = ViewModel.STATE_WORDPAIR_SELECTION; } private function handleUserInput():void{ var _local1:Object; while (!(userInput.isEmpty())) { _local1 = userInput.dequeue(); if (model.state == _local1.state){ _local1.handler.apply(null, _local1.args); }; }; } private function animateTimeBonus(_arg1:Message):void{ var originalX:Number; var message = _arg1; model.timeBonus = (model.timeBonus + message.bonus); model.mainGraphics.timeBonus.visible = true; originalX = model.mainGraphics.timeBonus.x; model.mainGraphics.timeBonus.x = (model.mainGraphics.timeBonus.x - 32); var asString:String = message.bonus.toString(); var bonusClips:Array = [model.mainGraphics.timeBonus.d3, model.mainGraphics.timeBonus.d2, model.mainGraphics.timeBonus.d1, model.mainGraphics.timeBonus.d0]; var args:Object = {frameRate:(24 / config.tickRate), onComplete:function ():void{ model.mainGraphics.timeBonus.visible = false; model.mainGraphics.timeBonus.x = originalX; }}; var i:int; while (i < 4) { bonusClips[i].clip.field.text = asString.charAt((asString.length - (i + 1))); if (0 == bonusClips[i].clip.field.text.length){ break; }; model.mainGraphics.timeBonus.x = (model.mainGraphics.timeBonus.x + 8); model.activeAnimations.push(new Animation(bonusClips[i], "begin", "end", currentTick, args)); args = {frameRate:(24 / config.tickRate)}; i = (i + 1); }; } private function onFinalWordSubmit(_arg1:String):void{ model.state = ViewModel.STATE_FINALWORD_ENTERED; outputQueue.enqueue(new Message(MsgTypes.finalWordAnswer, {word:_arg1, timeBonus:0})); } private function onCountdownUpdate(_arg1:Message):void{ if ((((model.state == ViewModel.STATE_FINALWORD_ENTER)) || ((model.state == ViewModel.STATE_WORDPAIR_SELECTION)))){ setClock(_arg1.remaining); }; } private function animateFall(_arg1:Boolean):void{ var delay:Number; var asString:String; var correct = _arg1; var label:String = (("fall_" + model.selectedWord) + (correct) ? "_correct" : "_wrong"); if (correct){ delay = (0.38 * config.tickRate); config.soundManager.getFromClass(wordCorrect).play(config.wordCorrectVol); if (enqueuedTimeBonus){ addTask((currentTick + (0.6 * config.tickRate)), animateTimeBonus, enqueuedTimeBonus); enqueuedTimeBonus = null; }; } else { delay = (0.54 * config.tickRate); config.soundManager.getFromClass(wordWrong).play(config.wordWrongVol); }; model.activeAnimations.push(new Animation(alts[model.selectedWord], (label + "_begin"), (label + "_end"), (currentTick + delay), {frameRate:(24 / config.tickRate), onComplete:function ():void{ model.mainGraphics.clock.text = "00:00"; model.mainGraphics.timeBar.gotoAndStop("end"); animateInWords(); }})); if (!correct){ asString = model.playerScore.toString(); if (3 < asString.length){ asString = ((asString.substr(0, (asString.length - 3)) + ".") + asString.substr((asString.length - 3), 3)); }; ghigliottina.score.clip1.field.text = asString; delay = (delay + (model.selectedWord) ? 2.6 : 3); model.activeAnimations.push(new Animation(ghigliottina.score, "cutoff_begin", "cutoff_end", (currentTick + delay), {frameRate:(24 / config.tickRate), onComplete:function ():void{ ghigliottina.score.clip0.field.text = asString; ghigliottina.score.gotoAndStop("in_end"); }})); }; } } }//package com.midasplayer.games.leredita
Section 25
//Main (com.midasplayer.games.leredita.Main) package com.midasplayer.games.leredita { import flash.events.*; import com.midasplayer.game.framework.*; import de.polygonal.ds.*; import flash.display.*; import com.midasplayer.util.*; public class Main extends Sprite { private var config:Config;// = null private var ticker:Ticker;// = null public static var restart:Boolean = false; public function Main(){ if (stage){ init(); } else { addEventListener(Event.ADDED_TO_STAGE, init); }; } private function init(_arg1:Event=null):void{ removeEventListener(Event.ADDED_TO_STAGE, init); stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.showDefaultContextMenu = false; Assert.pushHandler(assertionHandler); Log.level = Log.LEVEL_INFO; setup(); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function assertionHandler(_arg1:String, _arg2:String, _arg3:int, _arg4:String, _arg5:String, _arg6:String):Boolean{ Log.warning(Assert.getAsFormattedString(_arg1, null, 0, _arg4, _arg5, _arg6)); return (true); } private function onEnterFrame(_arg1:Event=null):void{ if (restart){ restart = false; config.soundManager.stopAll(); config.musicManager.stopAll(); while (1 < stage.numChildren) { stage.removeChildAt(1); }; setup(); return; }; ticker.advanceTime(config.timer); } private function setup():void{ var _local2:Boolean; var _local3:Boolean; var _local1:Boolean; if (config){ _local1 = true; _local2 = !((0 == config.soundManager.volume)); _local3 = !((0 == config.musicManager.volume)); }; config = new Config({debug:false, local:false, logComm:false, selfcontaining:false}); if (_local1){ config.sound = _local2; config.music = _local3; }; var _local4:Queue = new LinkedQueue(); var _local5:Queue = new LinkedQueue(); var _local6:MainController = new MainController(config, _local4, _local5); var _local7:MainView = new MainView(config, stage, _local5, _local4); ticker = new Ticker(_local6.update, _local7.update, config.timeStep, config.maxTickTime); } } }//package com.midasplayer.games.leredita
Section 26
//MainController (com.midasplayer.games.leredita.MainController) package com.midasplayer.games.leredita { import com.midasplayer.game.framework.*; import de.polygonal.ds.*; import com.midasplayer.messaging.*; public class MainController extends Controller { private var config:Config; private var inputDispatcher:MsgDispatcher; private var stopUpdates:Boolean;// = false private var model:ClientModel; private var requestResponseDispatcher:MsgDispatcher; public static var lastTick:int; public function MainController(_arg1:Config, _arg2:Queue, _arg3:Queue){ inputDispatcher = new MsgDispatcher(); requestResponseDispatcher = new MsgDispatcher(); model = new ClientModel(); lastTick = 0; super(_arg1, _arg2, _arg3); this.config = _arg1; inputDispatcher.addMsgListener(MsgTypes.quitGame, onQuitGame); inputDispatcher.addMsgListener(MsgTypes.categoriesRequest, onCategoriesRequest); inputDispatcher.addMsgListener(MsgTypes.questionRequest, onQuestionRequest); inputDispatcher.addMsgListener(MsgTypes.questionAnswer, onQuestionAnswer); inputDispatcher.addMsgListener(MsgTypes.wordPairRequest, onWordPairRequest); inputDispatcher.addMsgListener(MsgTypes.wordPairAnswer, onWordPairAnswer); inputDispatcher.addMsgListener(MsgTypes.finalWordLengthRequest, onFinalWordLengthRequest); inputDispatcher.addMsgListener(MsgTypes.finalWordAnswer, onFinalWordAnswer); requestResponseDispatcher.addMsgListener(MsgTypes.categories, onCategories); requestResponseDispatcher.addMsgListener(MsgTypes.question, onQuestion); requestResponseDispatcher.addMsgListener(MsgTypes.questionAnswerResponse, onQuestionAnswerResponse); requestResponseDispatcher.addMsgListener(MsgTypes.wordPair, onWordPair); requestResponseDispatcher.addMsgListener(MsgTypes.wordPairAnswerResponse, onWordPairAnswerResponse); requestResponseDispatcher.addMsgListener(MsgTypes.finalWordLength, onFinalWordLength); requestResponseDispatcher.addMsgListener(MsgTypes.finalWordAnswerResponse, onFinalWordAnswerResponse); } private function onFinalWordAnswerResponse(_arg1:Message):void{ model.finalWordGuesses++; if (!_arg1.result){ if (1 == model.finalWordGuesses){ model.score = int(Math.floor(((2 * model.score) / 3))); } else { if (2 == model.finalWordGuesses){ model.score = int(Math.floor((model.score / 2))); } else { if (3 == model.finalWordGuesses){ model.score = 0; }; }; }; }; if (_arg1.result){ pushOutput(new Message(MsgTypes.timeBonus, {bonus:model.finalWordTimeBonus})); }; pushOutput(_arg1); if (((_arg1.result) || ((3 == model.finalWordGuesses)))){ pushOutput(new Message(MsgTypes.gameEnd)); } else { setCountdown(config.finalWordCountdownDelay, config.finalWordCountdownLength, onFinalWordTimelimitHit); }; } private function onQuestionAnswer(_arg1:Message):void{ var _local2:Object = model.questions[model.activeQuestion]; _local2.givenAnswer = _arg1.index; _local2.timeBonus = ((4 == _arg1.index)) ? 0 : Math.max(1, Math.floor((((0.01 * _local2.value) * model.countdownRemaining) / config.questionCountdownLength))); _arg1.timeBonus = _local2.timeBonus; clearCountdown(); pushRequest(_arg1); } private function onFinalWordTimelimitHit():void{ inputDispatcher.dispatchMessage(new Message(MsgTypes.finalWordAnswer, {word:"", timeBonus:0})); } private function onFinalWordLength(_arg1:Message):void{ pushOutput(_arg1); setCountdown(config.initialFinalWordCountdownDelay, config.finalWordCountdownLength, onFinalWordTimelimitHit); } private function onWordPairTimelimitHit():void{ inputDispatcher.dispatchMessage(new Message(MsgTypes.wordPairAnswer, {index:2, timeBonus:0})); } private function onCategoryTimelimitHit():void{ clearCountdown(); var _local1:Vector = getRemainingCategories(); var _local2:int = int(_local1.get(config.gameRand.nextInt(_local1.size()))); pushOutput(new Message(MsgTypes.questionSelected, {index:_local2})); } private function onWordPair(_arg1:Message):void{ pushOutput(_arg1); setCountdown(config.wordPairCountdownDelay, config.wordPairCountdownLength, onWordPairTimelimitHit); } private function handleRequestResponses():void{ var _local1:Message; while ((_local1 = popRequestResponse())) { requestResponseDispatcher.dispatchMessage(_local1); }; } private function onWordPairRequest(_arg1:Message):void{ clearCountdown(); pushRequest(_arg1); } private function onFinalWordLengthRequest(_arg1:Message):void{ pushRequest(_arg1); } private function handleInput():void{ var _local1:Message; while ((_local1 = popInput())) { inputDispatcher.dispatchMessage(_local1); }; } private function onWordPairAnswerResponse(_arg1:Message):void{ var _local2:Object = model.wordPairs[model.activeWordPair++]; if (_local2.givenAnswer == _arg1.correctAnswer){ pushOutput(new Message(MsgTypes.timeBonus, {bonus:_local2.timeBonus})); } else { model.score = Math.floor((0.5 * model.score)); }; pushOutput(_arg1); } private function onCategories(_arg1:Message):void{ var _local2:int; while (_local2 < 8) { model.questions[_local2].value = _arg1[("values" + _local2)]; _local2++; }; pushOutput(_arg1); setCountdown(config.initialCategoryCountdownDelay, config.categoryCountdownLength, onCategoryTimelimitHit); } private function onFinalWordAnswer(_arg1:Message):void{ model.finalWordTimeBonus = (("" == _arg1.word)) ? 0 : Math.max(1, Math.floor((((0.01 * model.score) * model.countdownRemaining) / config.finalWordCountdownLength))); _arg1.timeBonus = model.finalWordTimeBonus; clearCountdown(); pushRequest(_arg1); } private function onQuitGame(_arg1:Message):void{ clearTasks(); clearCountdown(); stopUpdates = true; } public function update(_arg1:Number):void{ if (stopUpdates){ return; }; currentTick = _arg1; lastTick = _arg1; executeTasks(); handleRequestResponses(); handleInput(); if (0 >= --model.countdownDelay){ if (0 >= --model.countdownRemaining){ pushOutput(new Message(MsgTypes.timelimitHit)); model.countdownDelay = int.MAX_VALUE; model.countdownRemaining = int.MAX_VALUE; model.timelimitHandler(); } else { pushOutput(new Message(MsgTypes.countdownUpdate, {remaining:model.countdownRemaining})); }; }; } private function clearCountdown():void{ setCountdown(int.MAX_VALUE, int.MAX_VALUE, null); } private function onQuestion(_arg1:Message):void{ pushOutput(_arg1); setCountdown(config.questionCountdownDelay, config.questionCountdownLength, onQuestionTimelimitHit); } private function onQuestionRequest(_arg1:Message):void{ clearCountdown(); model.activeQuestion = _arg1.index; pushRequest(_arg1); } private function onQuestionAnswerResponse(_arg1:Message):void{ var _local2:Object = model.questions[model.activeQuestion]; if (_local2.givenAnswer == _arg1.correctAnswer){ model.score = (model.score + _local2.value); pushOutput(new Message(MsgTypes.timeBonus, {bonus:_local2.timeBonus})); }; pushOutput(_arg1); if (0 != getRemainingCategories().size()){ setCountdown(config.categoryCountdownDelay, config.categoryCountdownLength, onCategoryTimelimitHit); } else { if (110000 >= model.score){ pushOutput(new Message(MsgTypes.gameEnd)); }; }; } private function setCountdown(_arg1:int, _arg2:int, _arg3:Function):void{ model.countdownDelay = _arg1; model.countdownRemaining = _arg2; model.timelimitHandler = _arg3; } private function onWordPairAnswer(_arg1:Message):void{ var _local2:Object = model.wordPairs[model.activeWordPair]; _local2.givenAnswer = _arg1.index; _local2.timeBonus = ((2 == _arg1.index)) ? 0 : Math.max(1, Math.floor((((0.01 * model.score) * model.countdownRemaining) / config.wordPairCountdownLength))); _arg1.timeBonus = _local2.timeBonus; clearCountdown(); pushRequest(_arg1); } private function onQuestionTimelimitHit():void{ inputDispatcher.dispatchMessage(new Message(MsgTypes.questionAnswer, {index:4, timeBonus:0})); } private function onCategoriesRequest(_arg1:Message):void{ pushRequest(_arg1); } private function getRemainingCategories():Vector{ var _local1:Vector = new Vector(); var _local2:int; while (_local2 < 8) { if (-1 == model.questions[_local2].givenAnswer){ _local1.pushBack(_local2); }; _local2++; }; return (_local1); } } }//package com.midasplayer.games.leredita
Section 27
//MainView (com.midasplayer.games.leredita.MainView) package com.midasplayer.games.leredita { import flash.events.*; import de.polygonal.ds.*; import flash.display.*; public class MainView { private var config:Config; private var ghigliottina:GhigliottinaView; private var outputQueue:Queue; private var state:int;// = 0 private var loadingDotsStart:Number;// = -1 private var loadingDots:int;// = 0 private var inputQueue:Queue; private var model:ViewModel; private var duelloQuit:Boolean;// = false private var duello:DuelloView; private var currentTick:Number;// = 0 private var stage:Stage; private static const STATE_POSTGAME:int = 2; private static const STATE_GHIGLIOTTINA:int = 1; private static const STATE_DUELLO:int = 0; public static var buttonsPressed:Boolean; public function MainView(_arg1:Config, _arg2:Stage, _arg3:Queue, _arg4:Queue){ model = new ViewModel(); super(); buttonsPressed = false; this.config = _arg1; this.stage = _arg2; this.inputQueue = _arg3; this.outputQueue = _arg4; model.mainGraphics.soundButton.visible = true; model.mainGraphics.musicButton.visible = true; model.mainGraphics.mouseChildren = true; _arg2.addChild(model.mainGraphics); _arg1.soundManager.setVolume((_arg1.sound) ? _arg1.soundVol : 0); _arg1.musicManager.setVolume((_arg1.music) ? _arg1.musicVol : 0); model.mainGraphics.soundButton.crossed.visible = !(_arg1.sound); model.mainGraphics.musicButton.crossed.visible = !(_arg1.music); model.mainGraphics.soundButton.addEventListener(MouseEvent.MOUSE_OVER, onSoundOver); model.mainGraphics.soundButton.addEventListener(MouseEvent.MOUSE_OUT, onSoundOut); model.mainGraphics.soundButton.addEventListener(MouseEvent.CLICK, onSoundClick); model.mainGraphics.musicButton.addEventListener(MouseEvent.MOUSE_OVER, onMusicOver); model.mainGraphics.musicButton.addEventListener(MouseEvent.MOUSE_OUT, onMusicOut); model.mainGraphics.musicButton.addEventListener(MouseEvent.CLICK, onMusicClick); model.mainGraphics.soundButton.mouseEnabled = true; model.mainGraphics.musicButton.mouseEnabled = true; _arg1.gameComm.setRequestDelayUI(onShowNetworkDelay, onHideNetworkDelay); } private function onMusicOver(_arg1:MouseEvent):void{ model.mainGraphics.musicButton.gotoAndStop(2); } private function onSoundOut(_arg1:MouseEvent):void{ model.mainGraphics.soundButton.gotoAndStop(1); } private function onHideNetworkDelay():void{ loadingDotsStart = -1; model.mainGraphics.infoPanel.gotoAndStop("small_out_end"); model.mainGraphics.infoPanel.visible = false; } private function onShowNetworkDelay():void{ model.mainGraphics.infoPanel.visible = true; model.mainGraphics.infoPanel.small_header.visible = true; model.mainGraphics.infoPanel.header.visible = false; model.mainGraphics.infoPanel.scoreLabel.visible = false; model.mainGraphics.infoPanel.timeBonusLabel.visible = false; model.mainGraphics.infoPanel.totalScoreLabel.visible = false; model.mainGraphics.infoPanel.score.visible = false; model.mainGraphics.infoPanel.timeBonus.visible = false; model.mainGraphics.infoPanel.totalScore.visible = false; model.mainGraphics.infoPanel.legalImage.visible = false; model.mainGraphics.infoPanel.small_header.field.text = config.displayStrings("network_delay").toUpperCase(); loadingDotsStart = currentTick; model.mainGraphics.infoPanel.gotoAndStop("small_in_end"); } public function update(_arg1:Number):void{ var _local2:int; var _local3:String; currentTick = _arg1; if (-1 != loadingDotsStart){ _local2 = (int(((_arg1 - loadingDotsStart) / config.tickRate)) % 4); if (_local2 != loadingDots){ _local3 = ((_local2 == 0)) ? "" : ((_local2 == 1)) ? "." : ((_local2 == 2)) ? ".." : "..."; model.mainGraphics.infoPanel.small_header.field.text = ((config.displayStrings("network_delay").toUpperCase() + "\n") + _local3); loadingDots = _local2; }; }; buttonsPressed = false; switch (state){ case STATE_DUELLO: if (!duello){ duello = new DuelloView(config, inputQueue, outputQueue, model); }; duello.update(_arg1); if (duello.finished){ duelloQuit = duello.quitClicked; duello = null; state = STATE_GHIGLIOTTINA; }; break; case STATE_GHIGLIOTTINA: if (!ghigliottina){ ghigliottina = new GhigliottinaView(config, inputQueue, outputQueue, model, !(duelloQuit)); }; ghigliottina.update(_arg1); if (ghigliottina.finished){ ghigliottina = null; state = STATE_POSTGAME; config.gameComm.quitGame(); }; break; }; config.soundManager.update(); config.musicManager.update(); } private function onSoundOver(_arg1:MouseEvent):void{ model.mainGraphics.soundButton.gotoAndStop(2); } private function onMusicOut(_arg1:MouseEvent):void{ model.mainGraphics.musicButton.gotoAndStop(1); } private function onMusicClick(_arg1:MouseEvent):void{ buttonsPressed = true; if (config.musicManager.volume){ model.mainGraphics.musicButton.crossed.visible = true; config.musicManager.setVolume(0); } else { model.mainGraphics.musicButton.crossed.visible = false; config.musicManager.setVolume(config.musicVol); }; } private function onSoundClick(_arg1:MouseEvent):void{ buttonsPressed = true; if (config.soundManager.volume){ model.mainGraphics.soundButton.crossed.visible = true; config.soundManager.setVolume(0); } else { model.mainGraphics.soundButton.crossed.visible = false; config.soundManager.setVolume(config.soundVol); }; } } }//package com.midasplayer.games.leredita
Section 28
//ProxyModel (com.midasplayer.games.leredita.ProxyModel) package com.midasplayer.games.leredita { import flash.utils.*; public class ProxyModel { public var finalWordGuesses:int;// = 0 public var finalWordCorrectAnswer:String; public var activeWordPair:int;// = -1 public var activeQuestion:int;// = -1 public var questions:Array; public var wordPairs:Array; public var state:int;// = 0 public var score:int;// = 0 public var timeBonus:int;// = 0 public var finalWordGivenAnswer:String; public static const STATE_AWAITING_QUESTION_ANSWER:int = 2; public static const STATE_POST_GAME:int = 7; public static const STATE_AWAITING_WORDPAIR_ANSWER:int = 4; public static const STATE_AWAITING_WORDPAIR_REQUEST:int = 3; public static const STATE_AWAITING_QUESTION_REQUEST:int = 1; public static const STATE_PRE_GAME:int = 0; public static const STATE_AWAITING_FINAL_WORD_LENGTH_REQUEST:int = 5; public static const STATE_AWAITING_FINAL_WORD:int = 6; public function ProxyModel(_arg1:ByteArray=null){ var _local2:int; questions = new Array(); wordPairs = new Array(); super(); _local2 = 0; while (_local2 < 8) { questions.push({category:null, value:0, question:null, answers:null, correctAnswer:0, givenAnswer:-1, timeBonus:0}); _local2++; }; _local2 = 0; while (_local2 < 5) { wordPairs.push({words:null, correctAnswer:0, givenAnswer:-1, timeBonus:0}); _local2++; }; if (_arg1){ state = _arg1.readByte(); _local2 = 0; while (_local2 < 8) { questions[_local2].givenAnswer = _arg1.readByte(); questions[_local2].timeBonus = _arg1.readShort(); _local2++; }; _local2 = 0; while (_local2 < 5) { wordPairs[_local2].givenAnswer = _arg1.readByte(); wordPairs[_local2].timeBonus = _arg1.readShort(); _local2++; }; score = _arg1.readInt(); timeBonus = _arg1.readInt(); activeQuestion = _arg1.readByte(); activeWordPair = _arg1.readByte(); finalWordGuesses = _arg1.readByte(); }; } public function toByteArray():ByteArray{ var _local2:int; var _local1:ByteArray = new ByteArray(); _local1.writeByte(state); _local2 = 0; while (_local2 < 8) { _local1.writeByte(questions[_local2].givenAnswer); _local1.writeShort(questions[_local2].timeBonus); _local2++; }; _local2 = 0; while (_local2 < 5) { _local1.writeByte(wordPairs[_local2].givenAnswer); _local1.writeShort(wordPairs[_local2].timeBonus); _local2++; }; _local1.writeInt(score); _local1.writeInt(timeBonus); _local1.writeByte(activeQuestion); _local1.writeByte(activeWordPair); _local1.writeByte(finalWordGuesses); _local1.position = 0; return (_local1); } public function copyStateVariables(_arg1:ProxyModel):void{ var _local2:int; state = _arg1.state; _local2 = 0; while (_local2 < 8) { questions[_local2].givenAnswer = _arg1.questions[_local2].givenAnswer; questions[_local2].timeBonus = _arg1.questions[_local2].timeBonus; _local2++; }; _local2 = 0; while (_local2 < 5) { wordPairs[_local2].givenAnswer = _arg1.wordPairs[_local2].givenAnswer; wordPairs[_local2].timeBonus = _arg1.wordPairs[_local2].timeBonus; _local2++; }; score = _arg1.score; timeBonus = _arg1.timeBonus; activeQuestion = _arg1.activeQuestion; activeWordPair = _arg1.activeWordPair; finalWordGuesses = _arg1.finalWordGuesses; } public function stateEquals(_arg1:ProxyModel):Boolean{ var _local2:int; if (state != _arg1.state){ return (false); }; _local2 = 0; while (_local2 < 8) { if (questions[_local2].givenAnswer != _arg1.questions[_local2].givenAnswer){ return (false); }; if (questions[_local2].timeBonus != _arg1.questions[_local2].timeBonus){ return (false); }; _local2++; }; _local2 = 0; while (_local2 < 5) { if (wordPairs[_local2].givenAnswer != _arg1.wordPairs[_local2].givenAnswer){ return (false); }; if (wordPairs[_local2].timeBonus != _arg1.wordPairs[_local2].timeBonus){ return (false); }; _local2++; }; if (score != _arg1.score){ return (false); }; if (timeBonus != _arg1.timeBonus){ return (false); }; if (activeQuestion != _arg1.activeQuestion){ return (false); }; if (activeWordPair != _arg1.activeWordPair){ return (false); }; if (finalWordGuesses != _arg1.finalWordGuesses){ return (false); }; return (true); } } }//package com.midasplayer.games.leredita
Section 29
//RequestHandler (com.midasplayer.games.leredita.RequestHandler) package com.midasplayer.games.leredita { import com.midasplayer.game.framework.*; import com.midasplayer.messaging.*; import flash.utils.*; import com.midasplayer.util.*; public class RequestHandler implements IRequestHandler { private var getQuestions:Function; private var openGame:Boolean; public var model:ProxyModel; private var illegalRequestMade:Boolean;// = false private var getWordPairs:Function; public function RequestHandler(_arg1:Function, _arg2:Function, _arg3:Boolean){ this.getQuestions = _arg1; this.getWordPairs = _arg2; this.openGame = _arg3; } private function illegalRequest(_arg1:String):Message{ if (!illegalRequestMade){ Log.warning(_arg1); illegalRequestMade = true; }; return (new Message(MsgTypes.illegalRequest)); } private function onQuestionAnswer(_arg1:Message):Message{ if (model.state != ProxyModel.STATE_AWAITING_QUESTION_ANSWER){ return (illegalRequest("Request handler must be in state AWAITING_QUESTION_ANSWER to be able to accept messages of type questionAnswer.")); }; if ((((0 > _arg1.index)) || ((4 < _arg1.index)))){ return (illegalRequest("Answer must be in range [0-4].")); }; if ((((0 > _arg1.timeBonus)) || (((0.01 * model.questions[model.activeQuestion].value) < _arg1.timeBonus)))){ return (illegalRequest("Time bonus must be in range [0-MaxBonus]")); }; var _local2:int = model.activeQuestion; model.questions[_local2].givenAnswer = _arg1.index; model.questions[_local2].timeBonus = _arg1.timeBonus; if (model.questions[_local2].givenAnswer == model.questions[_local2].correctAnswer){ model.score = (model.score + model.questions[_local2].value); model.timeBonus = (model.timeBonus + model.questions[_local2].timeBonus); }; if (8 != numQuestionsAnswered()){ model.state = ProxyModel.STATE_AWAITING_QUESTION_REQUEST; } else { if (openGame){ model.state = ProxyModel.STATE_POST_GAME; } else { if (110000 >= model.score){ model.state = ProxyModel.STATE_POST_GAME; model.score = 0; } else { model.state = ProxyModel.STATE_AWAITING_WORDPAIR_REQUEST; }; }; }; return (new Message(MsgTypes.questionAnswerResponse, {correctAnswer:model.questions[_local2].correctAnswer})); } private function onFinalWordLengthRequest(_arg1:Message):Message{ if (model.state != ProxyModel.STATE_AWAITING_FINAL_WORD_LENGTH_REQUEST){ return (illegalRequest("Request handler must be in state AWAITING_FINAL_WORD_LENGTH_REQUEST to be able to accept messages of type finalWordLengthRequest.")); }; model.state = ProxyModel.STATE_AWAITING_FINAL_WORD; return (new Message(MsgTypes.finalWordLength, {length:model.finalWordCorrectAnswer.length, finalWord:model.finalWordCorrectAnswer})); } private function onWordPairRequest(_arg1:Message):Message{ if (model.state != ProxyModel.STATE_AWAITING_WORDPAIR_REQUEST){ return (illegalRequest("Request handler must be in state AWAITING_WORDPAIR_REQUEST to be able to accept messages of type wordPairRequest.")); }; if (4 <= model.activeWordPair){ return (illegalRequest("Active word pair must not be 4 or greater.")); }; model.state = ProxyModel.STATE_AWAITING_WORDPAIR_ANSWER; var _local2:int = ++model.activeWordPair; return (new Message(MsgTypes.wordPair, {words0:model.wordPairs[_local2].words[0], words1:model.wordPairs[_local2].words[1]})); } public function recreateGameState(_arg1:String):void{ loadData(); var _local2:ProxyModel = new ProxyModel(ByteArray(_arg1)); model.copyStateVariables(_local2); } private function onWordPairAnswer(_arg1:Message):Message{ if (model.state != ProxyModel.STATE_AWAITING_WORDPAIR_ANSWER){ return (illegalRequest("Request handler must be in state AWAITING_WORDPAIR_ANSWER to be able to accept messages of type wordPairAnswer.")); }; if ((((0 > _arg1.index)) || ((2 < _arg1.index)))){ return (illegalRequest("Answer must be in range [0-2]")); }; if ((((0 > _arg1.timeBonus)) || (((0.01 * model.score) < _arg1.timeBonus)))){ return (illegalRequest("Time bonus must be in range [0-MaxBonus]")); }; if (4 != model.activeWordPair){ model.state = ProxyModel.STATE_AWAITING_WORDPAIR_REQUEST; } else { model.state = ProxyModel.STATE_AWAITING_FINAL_WORD_LENGTH_REQUEST; }; var _local2:int = model.activeWordPair; model.wordPairs[_local2].givenAnswer = _arg1.index; model.wordPairs[_local2].timeBonus = _arg1.timeBonus; if (model.wordPairs[_local2].givenAnswer != model.wordPairs[_local2].correctAnswer){ model.score = int(Math.floor((0.5 * model.score))); } else { model.timeBonus = (model.timeBonus + model.wordPairs[_local2].timeBonus); }; return (new Message(MsgTypes.wordPairAnswerResponse, {correctAnswer:model.wordPairs[_local2].correctAnswer})); } public function createGameState():void{ model = new ProxyModel(); loadData(); } private function numQuestionsAnswered():int{ var _local1:int; var _local2:int; while (_local2 < 8) { if (-1 != model.questions[_local2].givenAnswer){ _local1++; }; _local2++; }; return (_local1); } private function onFinalWordAnswer(_arg1:Message):Message{ if (model.state != ProxyModel.STATE_AWAITING_FINAL_WORD){ return (illegalRequest("Request handler must be in state AWAITING_FINAL_WORD to be able to accept messages of type finalWordAnswer.")); }; if (3 <= model.finalWordGuesses){ return (illegalRequest("Final word guesses must not be 2 or greater.")); }; if ((((0 > _arg1.timeBonus)) || (((0.01 * model.score) < _arg1.timeBonus)))){ return (illegalRequest("Time bonus must be in range [0-MaxBonus]")); }; model.finalWordGuesses++; model.finalWordGivenAnswer = _arg1.word; var _local2 = (model.finalWordCorrectAnswer.toLowerCase() == model.finalWordGivenAnswer.toLowerCase()); if (!_arg1.result){ if (1 == model.finalWordGuesses){ model.score = int(Math.floor(((2 * model.score) / 3))); } else { if (2 == model.finalWordGuesses){ model.score = int(Math.floor((model.score / 2))); } else { if (3 == model.finalWordGuesses){ model.score = 0; }; }; }; }; if (_arg1.result){ model.timeBonus = (model.timeBonus + _arg1.timeBonus); }; var _local3 = ""; if (2 <= model.finalWordGuesses){ _local3 = (_local3 + model.finalWordCorrectAnswer.charAt(0)); }; if (((_local2) || ((3 == model.finalWordGuesses)))){ model.state = ProxyModel.STATE_POST_GAME; }; return (new Message(MsgTypes.finalWordAnswerResponse, {result:_local2, firstLetter:_local3})); } private function onQuestionRequest(_arg1:Message):Message{ if (model.state != ProxyModel.STATE_AWAITING_QUESTION_REQUEST){ return (illegalRequest("Request handler must be in state AWAITING_QUESTION_REQUEST to be able to accept messages of type questionRequest.")); }; if ((((0 > _arg1.index)) || ((7 < _arg1.index)))){ return (illegalRequest("Question must be in range [0-7].")); }; if (-1 != model.questions[_arg1.index].givenAnswer){ return (illegalRequest("Request handler cannot accept multiple questionRequest messages for the same question.")); }; model.state = ProxyModel.STATE_AWAITING_QUESTION_ANSWER; model.activeQuestion = _arg1.index; var _local2:int = model.activeQuestion; var _local3:Object = new Object(); _local3.question = model.questions[_local2].question; _local3.answers0 = model.questions[_local2].answers[0]; _local3.answers1 = model.questions[_local2].answers[1]; _local3.answers2 = model.questions[_local2].answers[2]; _local3.answers3 = model.questions[_local2].answers[3]; return (new Message(MsgTypes.question, _local3)); } private function loadData():void{ var _local1:Array = getQuestions(); var _local2:int; while (_local2 < 8) { model.questions[_local2] = _local1[_local2]; _local2++; }; var _local3:Array = getWordPairs(); var _local4:int; while (_local4 < 5) { model.wordPairs[_local4] = _local3[_local4]; _local4++; }; model.finalWordCorrectAnswer = _local3[5].correctAnswer; } private function onCategoriesRequest(_arg1:Message):Message{ if (model.state != ProxyModel.STATE_PRE_GAME){ return (illegalRequest("Request handler must be in state PRE_GAME to be able to accept messages of type categoryRequest.")); }; model.state = ProxyModel.STATE_AWAITING_QUESTION_REQUEST; var _local2:Object = new Object(); var _local3:int; while (_local3 < 8) { _local2[("names" + _local3)] = model.questions[_local3].category; _local2[("values" + _local3)] = model.questions[_local3].value; _local3++; }; return (new Message(MsgTypes.categories, _local2)); } public function getRequestResponse(_arg1:String):String{ var id:int; var message:Message; var clientModel:ProxyModel; var response:Message; var bytes:ByteArray; var requestString = _arg1; if ("pusher" == requestString){ return ("pusher"); }; if (illegalRequestMade){ response = illegalRequest("Request ignored"); } else { try { if ("c" == requestString.charAt(0)){ Assert.halt("String request not yet supported"); } else { bytes = Base64.decodeToByteArray(requestString.substring(1)); id = bytes.readShort(); message = new Message(bytes); clientModel = new ProxyModel(bytes); }; if (model == null){ loadData(); model.copyStateVariables(clientModel); }; if (!model.stateEquals(clientModel)){ response = illegalRequest("Proxy and client state does not match"); } else { if (message.type == MsgTypes.categoriesRequest){ response = onCategoriesRequest(message); } else { if (message.type == MsgTypes.questionRequest){ response = onQuestionRequest(message); } else { if (message.type == MsgTypes.questionAnswer){ response = onQuestionAnswer(message); } else { if (message.type == MsgTypes.wordPairRequest){ response = onWordPairRequest(message); } else { if (message.type == MsgTypes.wordPairAnswer){ response = onWordPairAnswer(message); } else { if (message.type == MsgTypes.finalWordLengthRequest){ response = onFinalWordLengthRequest(message); } else { if (message.type == MsgTypes.finalWordAnswer){ response = onFinalWordAnswer(message); } else { response = illegalRequest("Unrecognized request type"); }; }; }; }; }; }; }; }; } catch(e:Error) { response = illegalRequest((("Exception (" + e.name) + ") thrown during request handling")); }; }; var binaryResponse:ByteArray = new ByteArray(); binaryResponse.writeShort(id); binaryResponse.writeBytes(response.toBinaryPlayData()); binaryResponse.writeBytes(model.toByteArray()); return (("b" + Base64.encodeByteArray(binaryResponse))); } } }//package com.midasplayer.games.leredita
Section 30
//ViewModel (com.midasplayer.games.leredita.ViewModel) package com.midasplayer.games.leredita { import flash.display.*; public class ViewModel { public var selectedWord:int; public var state:int;// = 0 public var answeredWordPairs:int;// = 0 public var finalWordGuesses:int;// = 0 public var activeAnimations:Array; public var timeBonus:int;// = 0 public var answeredCorrectly:Boolean; public var selectedQuestion:int; public var finalWordLength:int; public var answerStates:Array; public var questionValues:Array; public var finalInputField:FinalInputField; public var finalWord:Array; public var answeredQuestions:Array; public var playerScore:int;// = 0 public var mainGraphics:MainGraphics; public var opponentScore:int;// = 0 public var unansweredQuestions:Array; public var selectedAnswer:int; public static const STATE_QUESTION_SELECTION:int = 1; public static const STATE_QUESTION_SELECTED:int = 2; public static const STATE_WORDPAIR_SELECTED:int = 6; public static const STATE_FINALWORD_ENTERED:int = 8; public static const STATE_FINALWORD_ENTER:int = 7; public static const STATE_ANSWER_SELECTED:int = 4; public static const STATE_ANSWER_SELECTION:int = 3; public static const STATE_NO_INPUT:int = 0; public static const STATE_WORDPAIR_SELECTION:int = 5; public function ViewModel(){ var _local1:int; answeredQuestions = new Array(); unansweredQuestions = [0, 1, 2, 3, 4, 5, 6, 7]; questionValues = new Array(); finalWord = new Array(); mainGraphics = new MainGraphics(); activeAnimations = new Array(); super(); stopAnimationOnFullTree(mainGraphics); disableMouseOnFullTree(mainGraphics); mainGraphics.introVideo.visible = false; mainGraphics.clock.visible = false; mainGraphics.timeBonus.visible = false; mainGraphics.timeBar.visible = false; mainGraphics.soundButton.visible = false; mainGraphics.musicButton.visible = false; mainGraphics.quitButton.visible = false; mainGraphics.infoPanel.visible = false; mainGraphics.ghigliottina.visible = false; mainGraphics.duello.visible = false; mainGraphics.duello.glassWalls.visible = false; mainGraphics.duello.scoreBrick.visible = false; mainGraphics.duello.floor.visible = false; mainGraphics.duello.legalText.selectable = false; mainGraphics.infoPanel.signupButton.visible = false; mainGraphics.infoPanel.signupTexts.visible = false; var _local2:MovieClip = MovieClip(mainGraphics.duello); var _local3:Array = [_local2.tile0, _local2.tile1, _local2.tile2, _local2.tile3, _local2.tile4, _local2.tile5, _local2.tile6, _local2.tile7]; _local1 = 0; while (_local1 < 8) { _local3[_local1].visible = false; _local3[_local1].hitSprite.visible = false; _local3[_local1].hatch.visible = false; _local3[_local1].expand.visible = false; _local1++; }; var _local4:Array = [_local2.answer0, _local2.answer1, _local2.answer2, _local2.answer3]; _local1 = 0; while (_local1 < 4) { _local4[_local1].visible = false; _local1++; }; } private function disableMouseOnFullTree(_arg1:InteractiveObject):void{ var _local2:DisplayObjectContainer; var _local3:int; var _local4:Object; _arg1.mouseEnabled = false; if ((_arg1 is DisplayObjectContainer)){ _local2 = (_arg1 as DisplayObjectContainer); _local2.mouseChildren = false; _local3 = 0; while (_local3 < _local2.numChildren) { _local4 = _local2.getChildAt(_local3); if ((_local4 is InteractiveObject)){ disableMouseOnFullTree((_local4 as InteractiveObject)); }; _local3++; }; }; } private function stopAnimationOnFullTree(_arg1:DisplayObjectContainer):void{ var _local3:Object; if ((_arg1 is MovieClip)){ (_arg1 as MovieClip).stop(); }; var _local2:int; while (_local2 < _arg1.numChildren) { _local3 = _arg1.getChildAt(_local2); if ((_local3 is DisplayObjectContainer)){ stopAnimationOnFullTree((_local3 as DisplayObjectContainer)); }; _local2++; }; } } }//package com.midasplayer.games.leredita
Section 31
//MtRandom (com.midasplayer.math.MtRandom) package com.midasplayer.math { import flash.utils.*; public class MtRandom { private var mti:uint; private var mt:Array; public static var MATRIX_A:uint = 2567483615; public static var UPPER_MASK:uint = 2147483648; public static var LOWER_MASK:uint = 2147483647; public static var M:int = 397; public static var N:int = 624; private static var mag01:Array = [uint(0), uint(MATRIX_A)]; public function MtRandom(_arg1:uint=0){ mti = (N + 1); super(); if (_arg1 == 0){ _arg1 = getTimer(); }; mt = new Array(N); init_genrand(_arg1); } private function genrand_int32():uint{ var _local1:Number; var _local2:uint; if (mti >= N){ if (mti == (N + 1)){ init_genrand(5489); }; _local2 = 0; while (_local2 < (N - M)) { _local1 = ((mt[_local2] & UPPER_MASK) | (mt[(_local2 + 1)] & LOWER_MASK)); mt[_local2] = ((mt[(_local2 + M)] ^ (_local1 >>> 1)) ^ mag01[uint((_local1 & 1))]); _local2++; }; while (_local2 < (N - 1)) { _local1 = ((mt[_local2] & UPPER_MASK) | (mt[(_local2 + 1)] & LOWER_MASK)); mt[_local2] = ((mt[(_local2 + (M - N))] ^ (_local1 >>> 1)) ^ mag01[uint((_local1 & 1))]); _local2++; }; _local1 = ((mt[(N - 1)] & UPPER_MASK) | (mt[0] & LOWER_MASK)); mt[(N - 1)] = ((mt[(M - 1)] ^ (_local1 >>> 1)) ^ mag01[uint((_local1 & 1))]); mti = 0; }; _local1 = mt[mti++]; _local1 = (_local1 ^ (_local1 >>> 11)); _local1 = (_local1 ^ ((_local1 << 7) & 2636928640)); _local1 = (_local1 ^ ((_local1 << 15) & 4022730752)); _local1 = (_local1 ^ (_local1 >>> 18)); return (uint(_local1)); } private function next(_arg1:uint):uint{ return ((genrand_int32() & ((uint(1) << _arg1) - uint(1)))); } private function init_genrand(_arg1:uint):void{ var _local2:uint; var _local3:uint; mt[0] = uint(_arg1); mti = 1; while (mti < N) { _local2 = (mt[(mti - 1)] ^ (mt[(mti - 1)] >>> 30)); _local3 = uint((_local2 * 1289)); _local3 = uint((_local3 * 1406077)); _local3 = uint((_local3 + mti)); mt[mti] = _local3; mti++; }; } public function nextFloat():Number{ return ((next(24) / 16777216)); } public function setSeed(_arg1:uint):void{ init_genrand(_arg1); } public function nextDouble():Number{ return ((next(24) / 16777216)); } public function nextInt(_arg1:uint):uint{ return (((genrand_int32() & 2147483647) % _arg1)); } } }//package com.midasplayer.math
Section 32
//IMsgDispatcher (com.midasplayer.messaging.IMsgDispatcher) package com.midasplayer.messaging { public interface IMsgDispatcher { function removeMsgListener(_arg1:Object, _arg2:Function):void; function hasMsgListener(_arg1:Object):Boolean; function addMsgListener(_arg1:Object, _arg2:Function):void; function dispatchMessage(_arg1:Message):void; } }//package com.midasplayer.messaging
Section 33
//Message (com.midasplayer.messaging.Message) package com.midasplayer.messaging { import flash.utils.*; import com.midasplayer.util.*; public dynamic class Message { public var type:Object; public var tick:int;// = -1 private static const idMap:Dictionary = maps[0]; private static const typeMap:Dictionary = maps[1]; public static const serializationDelimiter:String = " "; public static const templates:Class = MsgTypes; private static const maps:Array = createMaps(); public function Message(_arg1:Object, _arg2:Object=null){ var typeData:Object; var p:String; var descriptor = _arg1; var args = _arg2; super(); if ((descriptor is String)){ initWithPlayData((descriptor as String)); } else { if ((descriptor is ByteArray)){ initWithBinaryPlayData((descriptor as ByteArray)); } else { typeData = typeMap[descriptor]; Assert.assert(typeData, ("Descriptor argument if not a string must be one of the templates declared in class " + getQualifiedClassName(templates))); type = typeData.type; if (typeData.properties.length){ Assert.assert(args, ("Args argument must not be null for template " + typeData.name)); Assert.assert((function ():int{ var _local2:*; var _local1:* = 0; for (_local2 in args) { _local1++; }; return (_local1); }() == function ():int{ var _local2:*; var _local1:* = 0; for (_local2 in type) { _local1++; }; return (_local1); }()), ("Args argument must contain the same number of elements as template " + typeData.name)); for each (p in typeData.properties) { Assert.assert(!((args[p] == undefined)), ((("Args argument must contain data for property " + p) + " declared in the template ") + typeData.name)); Assert.assert((args[p] is type[p]), (("Argument data for property " + p) + " must be of or convertible to the property datatype")); this[p] = args[p]; }; }; }; }; } private function initWithBinaryPlayData(_arg1:ByteArray):void{ var _local3:String; var _local4:int; var _local5:String; var _local6:int; Assert.assert((0 < _arg1.length), "Play data must contain more than zero bytes"); var _local2:Object = idMap[_arg1[_arg1.position]]; Assert.assert(_local2, ("Unrecognized play data type identifier " + _arg1[_arg1.position])); type = _local2.type; _arg1.position++; tick = _arg1.readShort(); for each (_local3 in _local2.properties) { if (Boolean == type[_local3]){ this[_local3] = _arg1.readBoolean(); } else { if (int == type[_local3]){ this[_local3] = _arg1.readInt(); } else { if (Number == type[_local3]){ this[_local3] = _arg1.readDouble(); } else { if (String == type[_local3]){ _local4 = _arg1.readShort(); _local5 = new String(); _local6 = 0; while (_local6 < _local4) { _local5 = (_local5 + String.fromCharCode(_arg1.readShort())); _local6++; }; this[_local3] = _local5; } else { Assert.halt((((("Property " + _local3) + " in template ") + _local2.name) + " must not be of a type other than Boolean, int, Number or String if it should deserialized from compressed play data")); }; }; }; }; }; } public function typeName():String{ var _local1:Object = typeMap[type]; return (_local1.name); } public function toPlayData():String{ var _local3:String; var _local4:String; var _local1:Object = typeMap[type]; var _local2:String = ((_local1.id + " ") + tick); for each (_local3 in _local1.properties) { if (Boolean == _local1.type[_local3]){ _local2 = (_local2 + (serializationDelimiter + (this[_local3]) ? "1" : "0")); } else { _local4 = this[_local3].toString(); Assert.assert((-1 == _local4.search(serializationDelimiter)), (((((("Property " + _local3) + " serialized to \"") + _local4) + "\" contains the serialization delimiter pattern \"") + serializationDelimiter) + "\"")); _local2 = (_local2 + (serializationDelimiter + _local4)); }; }; return (_local2); } private function initWithPlayData(_arg1:String):void{ var _local5:String; var _local2:Array = _arg1.split(serializationDelimiter); Assert.assert((0 < _local2.length), "Play data must contain more than zero elements"); var _local3:Object = idMap[parseInt(_local2[0])]; Assert.assert(_local3, ("Unrecognized play data type identifier " + _local2[0])); type = _local3.type; Assert.assert(!(isNaN(_local2[1])), (("Play data \"" + _arg1) + "\" must use a number format parsable with parseInt")); tick = parseInt(_local2[1]); var _local4 = 2; for each (_local5 in _local3.properties) { if (Boolean == type[_local5]){ this[_local5] = ((!(("0" == _local2[_local4]))) && (!(("false" == _local2[_local4].toLowerCase())))); } else { if (int == type[_local5]){ this[_local5] = parseInt(_local2[_local4]); Assert.assert(!(isNaN(this[_local5])), (("Play data \"" + _arg1) + "\" must use a number format parsable with parseInt")); } else { if (Number == type[_local5]){ this[_local5] = parseFloat(_local2[_local4]); Assert.assert(!(isNaN(this[_local5])), (("Play data \"" + _arg1) + "\" must use a number format parsable with parseFloat")); } else { this[_local5] = new type[_local5](_local2[_local4]); }; }; }; _local4++; }; } public function toBinaryPlayData():ByteArray{ var _local3:String; var _local4:String; var _local5:int; var _local1:Object = typeMap[type]; var _local2:ByteArray = new ByteArray(); _local2.writeByte(_local1.id); _local2.writeShort(tick); for each (_local3 in _local1.properties) { if (Boolean == _local1.type[_local3]){ _local2.writeByte((this[_local3]) ? 1 : 0); } else { if (int == _local1.type[_local3]){ _local2.writeInt(this[_local3]); } else { if (Number == _local1.type[_local3]){ _local2.writeDouble(this[_local3]); } else { if (String == _local1.type[_local3]){ _local4 = this[_local3]; _local2.writeShort(_local4.length); _local5 = 0; while (_local5 < _local4.length) { _local2.writeShort(_local4.charCodeAt(_local5)); _local5++; }; } else { Assert.halt((((("Property " + _local3) + " in template ") + _local1.name) + " must not be of a type other than Boolean, int, Number or String if it should serialized to compressed play data")); }; }; }; }; }; _local2.position = 0; return (_local2); } public function toString():String{ var _local3:String; var _local1:Object = typeMap[type]; var _local2:String = _local1.name; for each (_local3 in _local1.properties) { _local2 = (_local2 + (((" " + _local3) + ":") + this[_local3])); }; return (_local2); } public static function typeFromID(_arg1:int):Object{ var _local2:Object = idMap[_arg1]; return ((_local2) ? _local2.type : null); } private static function createMaps():Array{ var _local2:XML; var _local3:Dictionary; var _local4:Dictionary; var _local5:int; var _local6:String; var _local7:Object; var _local8:Array; var _local9:String; var _local10:Object; var _local1:Array = new Array(); for each (_local2 in describeType(templates).child("constant")) { if ("Object" == _local2.attribute("type")){ _local1.push(_local2.attribute("name")); }; }; Assert.assert((0 < _local1.length), (("Template class " + getQualifiedClassName(templates)) + " contains no public static constants of type Object")); _local1.sort(); _local3 = new Dictionary(); _local4 = new Dictionary(); _local5 = 0; for each (_local6 in _local1) { _local7 = templates[_local6]; _local8 = new Array(); for (_local9 in _local7) { Assert.assert(!((_local7[_local9] == null)), (("Template property " + _local9) + " must not be null")); Assert.assert(!((_local7[_local9] == uint)), (("Template property " + _local9) + " must not be of illegal type uint")); _local8.push(_local9); }; _local8.sort(); _local10 = {id:_local5, name:_local6, type:_local7, properties:_local8}; _local3[_local5] = _local10; _local4[_local7] = _local10; _local5++; }; return ([_local3, _local4]); } public static function idFromType(_arg1:Object):int{ var _local2:Object = typeMap[_arg1]; return ((_local2) ? _local2.id : -1); } } }//package com.midasplayer.messaging
Section 34
//MsgDispatcher (com.midasplayer.messaging.MsgDispatcher) package com.midasplayer.messaging { import flash.utils.*; import com.midasplayer.util.*; public class MsgDispatcher implements IMsgDispatcher { private var target:IMsgDispatcher;// = null private var listeners:Array; public function MsgDispatcher(_arg1:IMsgDispatcher=null){ listeners = new Array(); super(); if (_arg1){ this.target = _arg1; }; } public function removeMsgListener(_arg1:Object, _arg2:Function):void{ var _local5:int; Assert.assert(!((-1 == Message.idFromType(_arg1))), ("Type argument must be one of the templates declared in class " + getQualifiedClassName(Message.templates))); if (target){ target.removeMsgListener(_arg1, _arg2); return; }; var _local3:int = Message.idFromType(_arg1); var _local4:Array = listeners[_local3]; if (_local4){ _local5 = _local4.lastIndexOf(_arg2); if (-1 != _local5){ _local4.splice(_local5, 1); if (0 == _local4.length){ listeners[_local3] = null; }; }; }; } public function hasMsgListener(_arg1:Object):Boolean{ Assert.assert(!((-1 == Message.idFromType(_arg1))), ("Type argument must be one of the templates declared in class " + getQualifiedClassName(Message.templates))); if (target){ return (target.hasMsgListener(_arg1)); }; return (Boolean(listeners[Message.idFromType(_arg1)])); } public function dispatchMessage(_arg1:Message):void{ var _local2:Function; Assert.assert(!((null == _arg1)), "Message argument must not be null"); if (target){ return (target.dispatchMessage(_arg1)); }; for each (_local2 in listeners[Message.idFromType(_arg1.type)]) { _local2(_arg1); }; } public function addMsgListener(_arg1:Object, _arg2:Function):void{ Assert.assert(!((-1 == Message.idFromType(_arg1))), ("Type argument must be one of the templates declared in class " + getQualifiedClassName(Message.templates))); if (target){ target.addMsgListener(_arg1, _arg2); return; }; var _local3:Array = listeners[Message.idFromType(_arg1)]; if (_local3){ _local3.push(_arg2); } else { listeners[Message.idFromType(_arg1)] = new Array(_arg2); }; } } }//package com.midasplayer.messaging
Section 35
//MsgTypes (com.midasplayer.messaging.MsgTypes) package com.midasplayer.messaging { public dynamic class MsgTypes { public static const wordPairAnswerResponse:Object = {correctAnswer:int}; public static const questionAnswer:Object = {index:int, timeBonus:int}; public static const questionRequest:Object = {index:int}; public static const finalWordLengthRequest:Object = {}; public static const categoriesRequest:Object = {}; public static const gameData:Object = {sound:Boolean, music:Boolean}; public static const gameEnd:Object = {}; public static const countdownUpdate:Object = {remaining:int}; public static const categories:Object = {names0:String, names1:String, names2:String, names3:String, names4:String, names5:String, names6:String, names7:String, values0:int, values1:int, values2:int, values3:int, values4:int, values5:int, values6:int, values7:int}; public static const finalWordAnswerResponse:Object = {result:Boolean, firstLetter:String}; public static const questionSelected:Object = {index:int}; public static const questionAnswerResponse:Object = {correctAnswer:int}; public static const quitGame:Object = {}; public static const wordPairAnswer:Object = {index:int, timeBonus:int}; public static const timeBonus:Object = {bonus:int}; public static const wordPairRequest:Object = {}; public static const timelimitHit:Object = {}; public static const question:Object = {question:String, answers0:String, answers1:String, answers2:String, answers3:String}; public static const wordPair:Object = {words0:String, words1:String}; public static const finalWordLength:Object = {length:int, finalWord:String}; public static const illegalRequest:Object = {}; public static const finalWordAnswer:Object = {word:String, timeBonus:int}; } }//package com.midasplayer.messaging
Section 36
//ManagedSound (com.midasplayer.sound.ManagedSound) package com.midasplayer.sound { import flash.media.*; public class ManagedSound { public var activeSounds:Array; private var manager:SoundManager; private var ClassReference:Class; public function ManagedSound(_arg1:SoundManager, _arg2:Class){ activeSounds = new Array(); super(); this.manager = _arg1; this.ClassReference = _arg2; } public function stop():void{ var _local1:int; while (_local1 < activeSounds.length) { activeSounds[_local1].stop(); _local1++; }; } public function play(_arg1:Number=1, _arg2:Number=0, _arg3:Function=null):ManagedSoundChannel{ var _local4:SoundChannel = new ClassReference().play(0, 0, new SoundTransform(_arg1, _arg2)); return (new ManagedSoundChannel(manager, this, _local4, _arg3)); } public function loop(_arg1:Number=1, _arg2:Number=0, _arg3:Number=999999999):ManagedSoundChannel{ var _local4:SoundChannel = new ClassReference().play(0, _arg3, new SoundTransform(_arg1, _arg2)); return (new ManagedSoundChannel(manager, this, _local4, null)); } public function playAt(_arg1:Number=1, _arg2:Number=0, _arg3:Number=0, _arg4:Function=null):ManagedSoundChannel{ var _local5:SoundChannel = new ClassReference().play(_arg2, 0, new SoundTransform(_arg1, _arg3)); return (new ManagedSoundChannel(manager, this, _local5, _arg4)); } public function fadeToAndStop(_arg1:Number, _arg2:Number):void{ var _local3:int; while (_local3 < activeSounds.length) { activeSounds[_local3].fadeToAndStop(_arg1, _arg2); _local3++; }; } public function isPlaying():Boolean{ return ((activeSounds.length > 0)); } public function update():void{ var _local1:int; while (_local1 < activeSounds.length) { activeSounds[_local1].update(); _local1++; }; } public function fadeTo(_arg1:Number, _arg2:Number):void{ var _local3:int; while (_local3 < activeSounds.length) { activeSounds[_local3].fadeTo(_arg1, _arg2); _local3++; }; } public function panTo(_arg1:Number, _arg2:Number):void{ var _local3:int; while (_local3 < activeSounds.length) { activeSounds[_local3].panTo(_arg1, _arg2); _local3++; }; } public function setPan(_arg1:Number):void{ var _local2:int; while (_local2 < activeSounds.length) { activeSounds[_local2].setPan(_arg1); _local2++; }; } public function setVolume(_arg1:Number):void{ var _local2:int; while (_local2 < activeSounds.length) { activeSounds[_local2].setVolume(_arg1); _local2++; }; } } }//package com.midasplayer.sound
Section 37
//ManagedSoundChannel (com.midasplayer.sound.ManagedSoundChannel) package com.midasplayer.sound { import flash.events.*; import flash.utils.*; import flash.media.*; public class ManagedSoundChannel { private var fadeStartVolume:Number;// = -1 private var channel:SoundChannel; private var fadeEndVolume:Number;// = -1 private var targetVolume:Number; private var targetPan:Number; private var sound:ManagedSound; private var stopAfterFade:Boolean;// = false private var panEndTime:Number;// = -1 private var fadeEndTime:Number;// = -1 private var manager:SoundManager; private var playing:Boolean;// = true private var panStartTime:Number;// = -1 private var fadeStartTime:Number;// = -1 private var panEndVolume:Number;// = -1 private var onEnd:Function; private var panStartVolume:Number;// = -1 public function ManagedSoundChannel(_arg1:SoundManager, _arg2:ManagedSound, _arg3:SoundChannel, _arg4:Function){ this.manager = _arg1; this.sound = _arg2; this.channel = _arg3; this.onEnd = _arg4; _arg2.activeSounds.push(this); if (_arg3 == null){ soundComplete(null); return; }; _arg3.addEventListener(Event.SOUND_COMPLETE, soundComplete); targetVolume = _arg3.soundTransform.volume; targetPan = _arg3.soundTransform.pan; update(); } public function stop():void{ if (!playing){ return; }; if (channel == null){ return; }; channel.stop(); soundComplete(null); } public function update():void{ var _local1:Number; if (!playing){ return; }; if (fadeStartTime >= 0){ _local1 = ((getTimer() - fadeStartTime) / (fadeEndTime - fadeStartTime)); if (_local1 < 0){ _local1 = 0; }; if (_local1 > 1){ _local1 = 1; }; targetVolume = (fadeStartVolume + ((fadeEndVolume - fadeStartVolume) * _local1)); targetVolume = (targetVolume * targetVolume); if (_local1 == 1){ fadeStartTime = -1; }; if ((((_local1 == 1)) && (stopAfterFade))){ stop(); }; }; if (panStartTime >= 0){ _local1 = ((getTimer() - panStartTime) / (panEndTime - panStartTime)); if (_local1 < 0){ _local1 = 0; }; if (_local1 > 1){ _local1 = 1; }; targetPan = (panStartVolume + ((panEndVolume - panStartVolume) * _local1)); if (_local1 == 1){ panStartTime = -1; }; }; var _local2:Number = (targetVolume * manager.volume); var _local3:Number = targetPan; if (channel == null){ return; }; if (((!((_local2 == channel.soundTransform.volume))) || (!((_local3 == channel.soundTransform.pan))))){ channel.soundTransform = new SoundTransform(_local2, _local3); }; } public function isPlaying():Boolean{ return (playing); } public function fadeTo(_arg1:Number, _arg2:Number):void{ if (!playing){ return; }; fadeStartVolume = Math.sqrt(targetVolume); fadeEndVolume = Math.sqrt(_arg1); fadeStartTime = getTimer(); fadeEndTime = (getTimer() + _arg2); stopAfterFade = false; } public function setPan(_arg1:Number):void{ if (!playing){ return; }; if (channel == null){ return; }; channel.soundTransform.pan = _arg1; panStartTime = -1; update(); } public function fadeToAndStop(_arg1:Number, _arg2:Number):void{ if (!playing){ return; }; fadeTo(_arg1, _arg2); stopAfterFade = true; } public function setVolume(_arg1:Number):void{ if (!playing){ return; }; stopAfterFade = false; this.targetVolume = _arg1; fadeStartTime = -1; update(); } public function soundComplete(_arg1:Event):void{ if (!playing){ return; }; sound.activeSounds.splice(sound.activeSounds.indexOf(this), 1); if (null != onEnd){ onEnd(); }; playing = false; } public function panTo(_arg1:Number, _arg2:Number):void{ if (!playing){ return; }; panStartVolume = targetPan; panEndVolume = _arg1; panStartTime = getTimer(); panEndTime = (getTimer() + _arg2); } } }//package com.midasplayer.sound
Section 38
//SoundManager (com.midasplayer.sound.SoundManager) package com.midasplayer.sound { import flash.utils.*; public class SoundManager { private var fadeStartVolume:Number;// = -1 private var lastTime:Number;// = -1 private var managedSounds:Array; private var fadeEndTime:Number;// = -1 private var fadeStartTime:Number;// = -1 private var fadeEndVolume:Number;// = -1 public var volume:Number;// = 1 private var managedSoundMap:Object; public function SoundManager(){ managedSoundMap = new Object(); managedSounds = new Array(); super(); } public function update():void{ var _local3:Number; var _local1:Number = getTimer(); if (lastTime < 0){ lastTime = _local1; }; if (fadeStartTime >= 0){ _local3 = ((getTimer() - fadeStartTime) / (fadeEndTime - fadeStartTime)); if (_local3 < 0){ _local3 = 0; }; if (_local3 > 1){ _local3 = 1; }; volume = (fadeStartVolume + ((fadeEndVolume - fadeStartVolume) * _local3)); volume = (volume * volume); if (_local3 == 1){ fadeStartTime = -1; }; }; var _local2:int; while (_local2 < managedSounds.length) { managedSounds[_local2].update(); _local2++; }; } public function stopAll():void{ var _local1:int; while (_local1 < managedSounds.length) { managedSounds[_local1].stop(); _local1++; }; } public function getFromClass(_arg1:Class):ManagedSound{ var _local2:String = getQualifiedClassName(_arg1); if (managedSoundMap[_local2] == null){ managedSoundMap[_local2] = new ManagedSound(this, _arg1); managedSounds.push(managedSoundMap[_local2]); }; return (managedSoundMap[_local2]); } public function get(_arg1:String):ManagedSound{ var _local2:Class; if (managedSoundMap[_arg1] == null){ _local2 = (getDefinitionByName(_arg1) as Class); if (_local2 == null){ _local2 = (getDefinitionByName(("sound." + _arg1)) as Class); }; if (_local2 == null){ _local2 = (getDefinitionByName(("snd." + _arg1)) as Class); }; if (_local2 == null){ throw (new Error(("Failed to find sound " + _arg1))); }; managedSoundMap[_arg1] = new ManagedSound(this, _local2); managedSounds.push(managedSoundMap[_arg1]); }; return (managedSoundMap[_arg1]); } public function fadeTo(_arg1:Number, _arg2:Number):void{ fadeStartVolume = Math.sqrt(volume); fadeEndVolume = Math.sqrt(_arg1); fadeStartTime = getTimer(); fadeEndTime = (getTimer() + _arg2); } public function setVolume(_arg1:Number):void{ this.volume = _arg1; fadeStartTime = -1; } } }//package com.midasplayer.sound
Section 39
//I18n (com.midasplayer.text.I18n) package com.midasplayer.text { public class I18n { private static var m_strings:Object; public static function init(_arg1:Object):void{ var _local2:String; m_strings = new Object(); for (_local2 in _arg1) { m_strings[_local2] = _arg1[_local2]; }; } public static function getString(_arg1:String, ... _args):String{ var _local3:String; var _local4:int; var _local5:RegExp; if (m_strings[_arg1] != undefined){ _local3 = m_strings[_arg1]; if (_args.length > 0){ _local4 = 0; while (_local4 < _args.length) { _local5 = new RegExp((("\\{" + _local4) + "\\}"), "gi"); _local3 = _local3.replace(_local5, _args[_local4]); _local4++; }; }; return (_local3); } else { }; return ((!NULL! + !NULL!)); } } }//package com.midasplayer.text
Section 40
//Assert (com.midasplayer.util.Assert) package com.midasplayer.util { public class Assert { public static var enabled:Boolean = true; private static var handlers:Array = [defaultHandler]; public static function verify(_arg1:Boolean, _arg2:String=null):void{ assert(_arg1, _arg2); } public static function getAsFormattedString(_arg1:String, _arg2:String, _arg3:int, _arg4:String, _arg5:String, _arg6:String=null):String{ return ((((((("Assertion failure in " + _arg4) + ".") + _arg5) + (_arg1) ? (": " + _arg1) : "") + (_arg2) ? (((" " + _arg2) + ":") + _arg3) : "") + (_arg6) ? ("\n" + _arg6) : "\n")); } public static function assert(_arg1:Boolean, _arg2:String=null):void{ var _local3:String; var _local4:int; var _local5:int; var _local7:int; var _local10:int; var _local11:String; var _local16:String; if (((!(enabled)) || (_arg1))){ return; }; _local3 = new Error().getStackTrace(); _local3 = _local3.substring((_local3.indexOf("\n", 6) + 1)); _local4 = 4; _local5 = _local3.indexOf("/", _local4); var _local6:int = _local3.indexOf("(", _local4); _local7 = _local3.indexOf("\n", _local4); var _local8:int = ((_local5 >= _local7)) ? _local6 : (("$" == _local3.charAt((_local5 - 1)))) ? (_local5 - 1) : _local5; var _local9:int = ((_local5 >= _local7)) ? _local4 : (_local5 + 1); _local10 = _local6; _local11 = _local3.substring((_local3.indexOf("[") + 1), _local3.indexOf("]")); var _local12:String = _local11.substring(0, _local11.lastIndexOf(":")); var _local13:int = int(_local11.substring((_local11.lastIndexOf(":") + 1))); var _local14:String = _local3.substring(_local4, _local8); var _local15:String = _local3.substring(_local9, _local10); if (handlers[(handlers.length - 1)](_arg2, _local12, _local13, _local14, _local15, _local3)){ _local16 = getAsFormattedString(_arg2, _local12, _local13, _local14, _local15, null); throw (new AssertionError(_local16.substr(0, (_local16.length - 1)))); }; } public static function pushHandler(_arg1:Function):void{ handlers.push(_arg1); } public static function halt(_arg1:String=null):void{ if (_arg1){ throw (new Error(_arg1)); }; throw (new Error("Halting execution")); } public static function popHandler():void{ Assert.assert((1 < handlers.length), "Trying to pop the default assertion handler."); if (1 < handlers.length){ handlers.pop(); }; } private static function defaultHandler(_arg1:String, _arg2:String, _arg3:int, _arg4:String, _arg5:String, _arg6:String):Boolean{ return (true); } } }//package com.midasplayer.util
Section 41
//AssertionError (com.midasplayer.util.AssertionError) package com.midasplayer.util { public class AssertionError extends Error { public function AssertionError(_arg1:String){ super(_arg1); } } }//package com.midasplayer.util
Section 42
//Base64 (com.midasplayer.util.Base64) package com.midasplayer.util { import flash.utils.*; public class Base64 { private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; public static function decodeToByteArray(_arg1:String):ByteArray{ var _local6:uint; var _local7:uint; var _local2:ByteArray = new ByteArray(); var _local3:Array = new Array(4); var _local4:Array = new Array(3); var _local5:uint; while (_local5 < _arg1.length) { _local6 = 0; while ((((_local6 < 4)) && (((_local5 + _local6) < _arg1.length)))) { _local3[_local6] = BASE64_CHARS.indexOf(_arg1.charAt((_local5 + _local6))); _local6++; }; _local4[0] = ((_local3[0] << 2) + ((_local3[1] & 48) >> 4)); _local4[1] = (((_local3[1] & 15) << 4) + ((_local3[2] & 60) >> 2)); _local4[2] = (((_local3[2] & 3) << 6) + _local3[3]); _local7 = 0; while (_local7 < _local4.length) { if (_local3[(_local7 + 1)] == 64){ break; }; _local2.writeByte(_local4[_local7]); _local7++; }; _local5 = (_local5 + 4); }; _local2.position = 0; return (_local2); } public static function encodeByteArray(_arg1:ByteArray):String{ var _local3:Array; var _local5:uint; var _local6:uint; var _local7:uint; var _local2 = ""; var _local4:Array = new Array(4); _arg1.position = 0; while (_arg1.bytesAvailable > 0) { _local3 = new Array(); _local5 = 0; while ((((_local5 < 3)) && ((_arg1.bytesAvailable > 0)))) { _local3[_local5] = _arg1.readUnsignedByte(); _local5++; }; _local4[0] = ((_local3[0] & 252) >> 2); _local4[1] = (((_local3[0] & 3) << 4) | (_local3[1] >> 4)); _local4[2] = (((_local3[1] & 15) << 2) | (_local3[2] >> 6)); _local4[3] = (_local3[2] & 63); _local6 = _local3.length; while (_local6 < 3) { _local4[(_local6 + 1)] = 64; _local6++; }; _local7 = 0; while (_local7 < _local4.length) { _local2 = (_local2 + BASE64_CHARS.charAt(_local4[_local7])); _local7++; }; }; return (_local2); } } }//package com.midasplayer.util
Section 43
//getLabelFrame (com.midasplayer.util.getLabelFrame) package com.midasplayer.util { import flash.display.*; public function getLabelFrame(_arg1:String, _arg2:MovieClip):int{ var _local3:FrameLabel; for each (_local3 in _arg2.currentLabels) { if (_arg1 == _local3.name){ return (_local3.frame); }; }; return (0); } }//package com.midasplayer.util
Section 44
//Log (com.midasplayer.util.Log) package com.midasplayer.util { public class Log { public static const LEVEL_ERROR:int = 0; public static const LEVEL_DEBUG:int = 3; public static const LEVEL_WARNING:int = 1; public static const LEVEL_INFO:int = 2; public static var enabled:Boolean = true; public static var level:int = 1; private static var handlers:Array = [defaultHandler]; public static function errorIf(_arg1:Boolean, _arg2:String):void{ if (_arg1){ error(_arg2); }; } public static function attachHandler(_arg1:Function):void{ handlers.push(_arg1); } public static function error(_arg1:String):void{ var _local3:Function; var _local2:Boolean; if (((enabled) && ((LEVEL_ERROR <= level)))){ for each (_local3 in handlers) { _local2 = ((_local3(LEVEL_ERROR, _arg1)) || (_local2)); }; }; if (_local2){ Assert.halt(("Log handler requested halt to execution - Error: " + _arg1)); }; } public static function debugIf(_arg1:Boolean, _arg2:String):void{ if (_arg1){ debug(_arg2); }; } public static function debug(_arg1:String):void{ var _local3:Function; var _local2:Boolean; if (((enabled) && ((LEVEL_DEBUG <= level)))){ for each (_local3 in handlers) { _local2 = ((_local3(LEVEL_DEBUG, _arg1)) || (_local2)); }; }; if (_local2){ Assert.halt(("Log handler requested halt to execution - Debug: " + _arg1)); }; } public static function warningIf(_arg1:Boolean, _arg2:String):void{ if (_arg1){ warning(_arg2); }; } public static function warning(_arg1:String):void{ var _local3:Function; var _local2:Boolean; if (((enabled) && ((LEVEL_WARNING <= level)))){ for each (_local3 in handlers) { _local2 = ((_local3(LEVEL_WARNING, _arg1)) || (_local2)); }; }; if (_local2){ Assert.halt(("Log handler requested halt to execution - Warning: " + _arg1)); }; } public static function infoIf(_arg1:Boolean, _arg2:String):void{ if (_arg1){ info(_arg2); }; } public static function info(_arg1:String):void{ var _local3:Function; var _local2:Boolean; if (((enabled) && ((LEVEL_INFO <= level)))){ for each (_local3 in handlers) { _local2 = ((_local3(LEVEL_INFO, _arg1)) || (_local2)); }; }; if (_local2){ Assert.halt(("Log handler requested halt to execution - Info: " + _arg1)); }; } public static function defaultHandler(_arg1:int, _arg2:String):Boolean{ trace((((_arg1 == LEVEL_ERROR)) ? "Error: " : ((_arg1 == LEVEL_WARNING)) ? "Warning: " : ((_arg1 == LEVEL_INFO)) ? "Info: " : "Debug: " + _arg2)); return ((_arg1 == LEVEL_ERROR)); } public static function detachHandler(_arg1:Function):void{ handlers.splice(handlers.indexOf(_arg1), 1); } } }//package com.midasplayer.util
Section 45
//printBinary (com.midasplayer.util.printBinary) package com.midasplayer.util { import flash.utils.*; public function printBinary(_arg1:Object):String{ var _local3:int; var _local4:int; var _local2:String = new String(); if ((_arg1 is ByteArray)){ _local3 = 0; while (_local3 < _arg1.length) { _local4 = 128; while (_local4 > 0) { _local2 = (_local2 + ((_arg1[_local3] & _local4)) ? "1" : "0"); _local4 = (_local4 >> 1); }; if (_local3 < (_arg1.length - 1)){ _local2 = (_local2 + " "); }; _local3++; }; }; return (_local2); } }//package com.midasplayer.util
Section 46
//safeCall (com.midasplayer.util.safeCall) package com.midasplayer.util { public function safeCall(_arg1:Function, _arg2:Array=null):void{ if (null != _arg1){ if (_arg2){ _arg1.apply(null, _arg2); } else { _arg1(); }; }; } }//package com.midasplayer.util
Section 47
//NumberFormat (de.polygonal.core.fmt.NumberFormat) package de.polygonal.core.fmt { import de.polygonal.core.math.*; public class NumberFormat { public function NumberFormat():void{ } public static function toBin(_arg1:int):String{ var _local2 = (null as String); var _local3:int; if (_arg1 == 0){ return ("0"); //unresolved jump }; if (_arg1 == -1){ return ("11111111111111111111111111111111"); //unresolved jump }; _local2 = ""; _local3 = _arg1; while (_local3 > 0) { _local2 = ((((_local3 & 1))>0) ? "1" : "0" + _local2); _local3 = (_local3 >> 1); }; return (_local2); } public static function toHex(_arg1:int):String{ var _local2 = (null as String); var _local3:int; var _local4:int; if (_arg1 == 0){ return ("0"); }; if (_arg1 == -1){ return ("FFFFFFFF"); //unresolved jump }; _local2 = ""; _local3 = _arg1; for (;_local3 > 0;(_local3 = (_local3 >> 4))) { _local4 = (_local3 & 15); //unexpected switch _local2 = (_local4 + _local2); continue; _local2 = ("A" + _local2); continue; _local2 = ("B" + _local2); continue; _local2 = ("C" + _local2); continue; _local2 = ("D" + _local2); continue; _local2 = ("E" + _local2); continue; _local2 = ("F" + _local2); }; return (_local2); } public static function toOct(_arg1:int):String{ var _local4:int; var _local2:String = ""; var _local3:int = _arg1; while (_local3 > 0) { _local4 = (_local3 & 7); _local2 = (_local4 + _local2); _local3 = (_local3 >> 3); }; return (_local2); } public static function toRadix(_arg1:int, _arg2:int):String{ var _local5:int; var _local3:String = ""; var _local4:int = _arg1; while (_local4 > 0) { _local5 = (_local4 % _arg2); _local3 = (_local5 + _local3); _local4 = Std._int((_local4 / _arg2)); }; return (_local3); } public static function toFixed(_arg1:Number, _arg2:int):String{ var _local3:int; var _local4 = (null as String); var _local5:int; var _local6:int; var _local7:int; if (Mathematics.isNaN(_arg1)){ return ("NaN"); //unresolved jump }; _local3 = Mathematics.exp(10, _arg2); _local4 = Std.string((Std._int((_arg1 * _local3)) / _local3)); _local5 = _local4.indexOf("."); if (_local5 != -1){ _local6 = _local4.substr((_local5 + 1)).length; while (_local6 < _arg2) { _local6++; _local7 = _local6; _local4 = (_local4 + "0"); }; } else { _local4 = (_local4 + "."); _local6 = 0; while (_local6 < _arg2) { _local6++; _local7 = _local6; _local4 = (_local4 + "0"); }; }; return (_local4); } public static function toMMSS(_arg1:int):String{ var _local2:int = (_arg1 % 1000); var _local3:Number = ((_arg1 - _local2) / 1000); var _local4:Number = (_local3 % 60); return (((("0" + ((_local3 - _local4) / 60)).substr(-2) + ":") + ("0" + _local4).substr(-2))); } public static function groupDigits(_arg1:int, _arg2:String):String{ var _local6 = (null as String); var _local7:int; var _local8:int; var _local3:Number = _arg1; var _local4:int; while (_local3 > 1) { _local3 = (_local3 / 10); _local4++; }; _local4 = (_local4 / 3); var _local5:String = Std.string(_arg1); if (_local4 == 0){ return (_local5); //unresolved jump }; _local6 = ""; _local7 = 0; _local8 = (_local5.length - 1); while (_local8 >= 0) { if (_local7 == 3){ _local8--; _local6 = ((_local5.charAt(_local8) + _arg2) + _local6); _local7 = 0; _local4--; } else { _local8--; _local6 = (_local5.charAt(_local8) + _local6); }; _local7++; }; return (_local6); } public static function centToEuro(_arg1:int, _arg2:String=",", _arg3:String="."):String{ var _local5 = (null as String); var _local6:int; var _local7:int; var _local8:int; var _local4:int = Std._int((_arg1 / 100)); if (_local4 == 0){ if (_arg1 < 10){ return (((("0" + _arg2) + "0") + _arg1)); } else { return ((("0" + _arg2) + _arg1)); }; //unresolved jump }; _local6 = (_arg1 - (_local4 * 100)); if (_local6 < 10){ _local5 = ((_arg2 + "0") + _local6); } else { _local5 = (_arg2 + _local6); }; if (_local4 >= 1000){ _local7 = _local4; while (_local7 >= 1000) { _local7 = Std._int((_local4 / 1000)); _local8 = (_local4 - (_local7 * 1000)); if (_local8 < 10){ _local5 = (((_arg3 + "00") + _local8) + _local5); } else { if (_local8 < 100){ _local5 = (((_arg3 + "0") + _local8) + _local5); } else { _local5 = ((_arg3 + _local8) + _local5); }; }; _local4 = _local7; }; _local5 = (_local7 + _local5); return (_local5); } else { _local5 = (_local4 + _local5); }; return (_local5); } } }//package de.polygonal.core.fmt
Section 48
//Sprintf (de.polygonal.core.fmt.Sprintf) package de.polygonal.core.fmt { import de.polygonal.ds.*; import flash.*; import de.polygonal.core.math.*; import de.polygonal.gl.text.*; import haxe.*; public class Sprintf { public var _bits:Array; public static var BIT_MINUS:int; public static var BIT_PLUS:int; public static var BIT_SPACE:int; public static var BIT_SHARP:int; public static var BIT_ZERO:int; public static var BIT_h:int; public static var BIT_l:int; public static var BIT_L:int; public static var BIT_c:int; public static var BIT_d:int; public static var BIT_i:int; public static var BIT_e:int; public static var BIT_E:int; public static var BIT_f:int; public static var BIT_g:int; public static var BIT_G:int; public static var BIT_o:int; public static var BIT_s:int; public static var BIT_u:int; public static var BIT_x:int; public static var BIT_X:int; public static var BIT_p:int; public static var BIT_n:int; public static var BIT_b:int; public static var MASK_SPECIFIERS:int; public static var _instance:Sprintf; public function Sprintf():void{ var _local3:int; var _local4:int; if (Boot.skip_constructor){ return; }; _bits = []; var _local1:String = "-+ #0hlLcdieEfgGosuxXpnb"; var _local2:int; while (_local2 < 0xFF) { _local2++; _local3 = _local2; _bits[_local3] = 0; }; _local2 = 0; _local3 = _local1.length; while (_local2 < _local3) { _local2++; _local4 = _local2; _bits[cca(_local1, _local4)] = (1 << _local4); }; } public function cca(_arg1:String, _arg2:int):int{ return (_arg1.charCodeAt(_arg2)); } public function _rpad(_arg1:String, _arg2:String, _arg3:int):String{ var _local7:int; var _local4:String = _arg2; var _local5:int; var _local6 = (_arg3 - 1); while (_local5 < _local6) { _local5++; _local7 = _local5; _local4 = (_local4 + _arg2); }; return ((_arg1 + _local4)); } public function _padNumber(_arg1:String, _arg2:Number, _arg3:int, _arg4:int):String{ var _local5:int = _arg1.length; if (_arg4 > 0){ false; }; if (false){ _arg4 = (_arg4 - _local5); if (Bits.hasBits(_arg3, 1)){ _arg1 = _rpad(_arg1, " ", _arg4); } else { if (_arg2 >= 0){ _arg1 = _lpad(_arg1, (Bits.hasBits(_arg3, 16)) ? "0" : " ", _arg4); } else { if (Bits.hasBits(_arg3, 16)){ _arg1 = ("-" + _lpad(_arg1.substr(1), "0", _arg4)); } else { _arg1 = _lpad(_arg1, " ", _arg4); }; }; }; }; return (_arg1); } public function _lpad(_arg1:String, _arg2:String, _arg3:int):String{ var _local7:int; var _local4:String = _arg2; var _local5:int; var _local6 = (_arg3 - 1); while (_local5 < _local6) { _local5++; _local7 = _local5; _local4 = (_local4 + _arg2); }; return ((_local4 + _arg1)); } public function _format(_arg1:String, _arg2:Array):String{ var _local7:int; var _local8:int; var _local9:Boolean; var _local10:int; var _local11:int; var _local12 = (null as String); var _local13:int; var _local14:Number; var _local15:int; var _local16:int; var _local17:int; var _local18:int; var _local19:Number; var _local20:int; var _local21 = (null as String); var _local22 = (null as String); var _local23 = (null as String); var _local3:int; var _local4:String = ""; var _local5:int; var _local6:int = _arg1.length; while (_local5 < _local6) { _local5++; _local7 = cca(_arg1, _local5); if (_local7 == 37){ _local5++; _local7 = cca(_arg1, _local5); if (_local7 == 37){ _local4 = (_local4 + "%"); } else { _local8 = 0; while (Bits.hasBits(_bits[_local7], 31)) { _local8 = Bits.setBits(_local8, _bits[_local7]); _local5++; _local7 = cca(_arg1, _local5); }; if (Bits.hasAllBits(_local8, 17)){ Log.trace("warning: `0' flag ignored with '-' flag in printf format", {fileName:"Sprintf.hx", lineNumber:153, className:"de.polygonal.core.fmt.Sprintf", methodName:"_format"}); _local8 = Bits.clrBits(_local8, 16); }; if (Bits.hasAllBits(_local8, 6)){ Log.trace("warning: ` ' flag ignored with '+' flag in printf format", {fileName:"Sprintf.hx", lineNumber:158, className:"de.polygonal.core.fmt.Sprintf", methodName:"_format"}); _local8 = Bits.clrBits(_local8, 4); }; _local9 = false; _local10 = 0; if (_local7 == 42){ _local9 = true; _local5++; _local7 = cca(_arg1, _local5); } else { if (ASCII.isDigit(_local7)){ _local10 = (_local7 - 48); _local5++; _local7 = cca(_arg1, _local5); if (ASCII.isDigit(_local7)){ _local10 = ((_local7 - 48) + (_local10 * 10)); _local5++; _local7 = cca(_arg1, _local5); if (ASCII.isDigit(_local7)){ while (ASCII.isDigit(_local7)) { _local5++; _local7 = cca(_arg1, _local5); }; }; }; }; }; _local11 = -1; if (_local7 == 46){ _local5++; _local7 = cca(_arg1, _local5); if (_local7 == 42){ _local3++; _local11 = Std._int(_arg2[_local3]); _local5++; _local7 = cca(_arg1, _local5); } else { if (ASCII.isDigit(_local7)){ _local11 = (_local7 - 48); _local5++; _local7 = cca(_arg1, _local5); if (ASCII.isDigit(_local7)){ _local11 = ((_local7 - 48) + (_local11 * 10)); _local5++; _local7 = cca(_arg1, _local5); if (ASCII.isDigit(_local7)){ while (ASCII.isDigit(_local7)) { _local5++; _local7 = cca(_arg1, _local5); }; }; }; } else { _local11 = 0; }; }; }; while (Bits.hasBits(_bits[_local7], 224)) { _local8 = Bits.setBits(_local8, _bits[_local7]); _local5++; _local7 = cca(_arg1, _local5); }; _local12 = ""; if (_local9){ _local3++; _local10 = _arg2[_local3]; }; _local13 = _bits[_local7]; if (Bits.hasBits(_local13, 0xFFFF00)){ if (Bits.hasBits(_local13, 0x2000)){ if (_local11 == -1){ _local11 = 6; }; _local3++; _local14 = _arg2[_local3]; if (_local11 == 0){ _local12 = Std.string(Mathematics.round(_local14)); if (Bits.hasBits(_local8, 8)){ _local12 = (_local12 + "."); }; } else { _local14 = Mathematics.roundTo(_local14, Math.pow(0.1, _local11)); _local12 = NumberFormat.toFixed(_local14, _local11); }; if (Bits.hasBits(_local8, 2)){ false; }; if (false){ _local12 = ("+" + _local12); } else { if (Bits.hasBits(_local8, 4)){ false; }; if (false){ _local12 = (" " + _local12); }; }; _local4 = (_local4 + _padNumber(_local12, _local14, _local8, _local10)); } else { if (Bits.hasBits(_local13, 131328)){ if (Bits.hasBits(_local8, 2)){ _local8 = Bits.clrBits(_local8, 2); Log.trace("warning: `+' flag used with `%s' printf format", {fileName:"Sprintf.hx", lineNumber:275, className:"de.polygonal.core.fmt.Sprintf", methodName:"_format"}); }; if (Bits.hasBits(_local8, 4)){ _local8 = Bits.clrBits(_local8, 4); Log.trace("warning: ` ' flag used with `%s' printf format", {fileName:"Sprintf.hx", lineNumber:280, className:"de.polygonal.core.fmt.Sprintf", methodName:"_format"}); } else { if (Bits.hasBits(_local8, 16)){ _local8 = Bits.clrBits(_local8, 16); Log.trace("warning: `0' flag used with `%s' printf format", {fileName:"Sprintf.hx", lineNumber:286, className:"de.polygonal.core.fmt.Sprintf", methodName:"_format"}); } else { if (Bits.hasBits(_local8, 8)){ _local8 = Bits.clrBits(_local8, 8); Log.trace("warning: ` #' flag used with `%s' printf format", {fileName:"Sprintf.hx", lineNumber:292, className:"de.polygonal.core.fmt.Sprintf", methodName:"_format"}); }; }; }; if (_local13 == 131072){ _local3++; _local12 = Std.string(_arg2[_local3]); if (_local11 > 0){ _local12 = _local12.substr(0, _local11); }; } else { _local3++; _local12 = String.fromCharCode(_arg2[_local3]); }; _local15 = _local12.length; if (_local10 > 0){ false; }; if (false){ _local10 = (_local10 - _local15); if (Bits.hasBits(_local8, 1)){ _local12 = _rpad(_local12, " ", _local10); } else { _local12 = _lpad(_local12, " ", _local10); }; }; _local4 = (_local4 + _local12); } else { if (Bits.hasBits(_local13, 0x9D0600)){ if (_local11 == -1){ _local11 = 1; }; _local3++; _local15 = _arg2[_local3]; if (_local11 == 0){ false; }; if (false){ _local12 = ""; } else { if (Bits.hasBits(_local13, 32)){ _local15 = (_local15 & 0xFFFF); } else { if (Bits.hasBits(_local13, 65536)){ _local12 = NumberFormat.toOct(_local15); if (Bits.hasBits(_local8, 8)){ _local12 = ("0" + _local12); }; } else { if (Bits.hasBits(_local13, 524288)){ _local12 = NumberFormat.toHex(_local15).toLowerCase(); if (Bits.hasBits(_local8, 8)){ false; }; if (false){ _local12 = ("0x" + _local12); }; } else { if (Bits.hasBits(_local13, 0x100000)){ _local12 = NumberFormat.toHex(_local15).toUpperCase(); if (Bits.hasBits(_local8, 8)){ false; }; if (false){ _local12 = ("0X" + _local12); }; } else { if (Bits.hasBits(_local13, 0x800000)){ _local12 = NumberFormat.toBin(_local15); if (_local11 > 1){ if (_local12.length < _local11){ _local11 = (_local11 - _local12.length); _local16 = 0; while (_local16 < _local11) { _local16++; _local17 = _local16; _local12 = ("0" + _local12); }; }; _local11 = 0; }; if (Bits.hasBits(_local8, 8)){ _local12 = ("b" + _local12); }; } else { _local12 = Std.string(_local15); }; }; }; }; }; if (_local11 > 1){ false; }; if (false){ if (_local15 > 0){ _local16 = 0; _local17 = (_local11 - 1); while (_local16 < _local17) { _local16++; _local18 = _local16; _local12 = ("0" + _local12); }; } else { _local12 = ("0" + -(_local15)); _local16 = 0; _local17 = (_local11 - 2); while (_local16 < _local17) { _local16++; _local18 = _local16; _local12 = ("0" + _local12); }; _local12 = ("-" + _local12); }; }; }; if (_local15 >= 0){ if (Bits.hasBits(_local8, 2)){ _local12 = ("+" + _local12); } else { if (Bits.hasBits(_local8, 4)){ _local12 = (" " + _local12); }; }; }; _local4 = (_local4 + _padNumber(_local12, _local15, _local8, _local10)); } else { if (Bits.hasBits(_local13, 0x1800)){ if (_local11 == -1){ _local11 = 6; }; _local3++; _local14 = _arg2[_local3]; _local15 = Mathematics.fsign(_local14); _local14 = Mathematics.fabs(_local14); _local16 = 0; if (_local14 > 1){ while (_local14 > 10) { _local14 = (_local14 / 10); _local16++; }; } else { while (_local14 < 1) { _local14 = (_local14 * 10); _local16--; }; }; _local19 = 0.1; _local17 = 0; _local18 = (_local11 - 1); while (_local17 < _local18) { _local17++; _local20 = _local17; _local19 = (_local19 * 0.1); }; _local14 = Mathematics.roundTo(_local14, _local19); _local12 = (_local12 + (((_local15)<0) ? "-" : (Bits.hasBits(_local8, 2)) ? "+" : "" + Std.string(_local14).substr(0, (_local11 + 2)))); _local12 = (_local12 + (Bits.hasBits(_local13, 0x0800)) ? "e" : "E"); _local12 = (_local12 + ((_local16)>0) ? "+" : "-"); if (_local16 < 10){ _local12 = _rpad(_local12, "0", 2); } else { if (_local16 < 100){ _local12 = _rpad(_local12, "0", 1); }; }; _local12 = (_local12 + Std.string(Mathematics.abs(_local16))); _local4 = (_local4 + _local12); } else { if (Bits.hasBits(_local13, 0xC000)){ _local11 = 0; _local21 = ""; if (Bits.hasBits(_local8, 1)){ _local21 = (_local21 + "-"); }; if (Bits.hasBits(_local8, 2)){ _local21 = (_local21 + "+"); }; if (Bits.hasBits(_local8, 4)){ _local21 = (_local21 + " "); }; if (Bits.hasBits(_local8, 16)){ _local21 = (_local21 + "0"); }; _local3++; _local14 = _arg2[_local3]; _local22 = _format((((("%" + _local21) + ".") + _local11) + "f"), [_local14]); _local23 = _format((((("%" + _local21) + ".") + _local11) + ((_local7)==71) ? "E" : "e"), [_local14]); if (Bits.hasBits(_local8, 8)){ if (_local22.indexOf(".") != -1){ _local15 = (_local22.length - 1); while (cca(_local22, _local15) == 48) { _local15--; }; _local22 = _local22.substr(0, _local15); }; }; _local4 = (_local4 + ((_local22.length)<_local23.length) ? _local22 : _local23); } else { if (Bits.hasBits(_local13, 0x600000)){ Boot.lastError = new Error(); throw ("warning: specifier 'p' and 'n' are not supported"); }; }; }; }; }; }; } else { Boot.lastError = new Error(); throw ("malformed format string: no specifier found"); }; }; } else { _local4 = (_local4 + _arg1.charAt((_local5 - 1))); }; }; return (_local4); } public static function get():Sprintf{ if (Sprintf._instance == null){ Sprintf._instance = new Sprintf(); }; return (Sprintf._instance); } public static function free():void{ Sprintf._instance = null; } public static function format(_arg1:String, _arg2:Array):String{ return (Sprintf.get()._format(_arg1, _arg2)); } } Sprintf.BIT_MINUS = 1; Sprintf.BIT_PLUS = 2; Sprintf.BIT_SPACE = 4; Sprintf.BIT_SHARP = 8; Sprintf.BIT_ZERO = 16; Sprintf.BIT_h = 32; Sprintf.BIT_l = 64; Sprintf.BIT_L = 128; Sprintf.BIT_c = 0x0100; Sprintf.BIT_d = 0x0200; Sprintf.BIT_i = 0x0400; Sprintf.BIT_e = 0x0800; Sprintf.BIT_E = 0x1000; Sprintf.BIT_f = 0x2000; Sprintf.BIT_g = 0x4000; Sprintf.BIT_G = 0x8000; Sprintf.BIT_o = 65536; Sprintf.BIT_s = 131072; Sprintf.BIT_u = 262144; Sprintf.BIT_x = 524288; Sprintf.BIT_X = 0x100000; Sprintf.BIT_p = 0x200000; Sprintf.BIT_n = 0x400000; Sprintf.BIT_b = 0x800000; Sprintf.MASK_SPECIFIERS = 0xFFFF00; Sprintf._instance = null; }//package de.polygonal.core.fmt
Section 49
//Mathematics (de.polygonal.core.math.Mathematics) package de.polygonal.core.math { import de.polygonal.core.util.*; public class Mathematics { public static var INT8_MIN:int; public static var INT8_MAX:int; public static var UINT8_MAX:int; public static var INT16_MIN:int; public static var INT16_MAX:int; public static var UINT16_MAX:int; public static var INT32_MIN:int; public static var INT32_MAX:int; public static var UINT32_MAX:int; public static var NaN:Number; public static var POSITIVE_INFINITY:Number; public static var NEGATIVE_INFINITY:Number; public static var FLOAT_MAX:Number; public static var FLOAT_MIN:Number; public static var DOUBLE_MIN:Number; public static var DOUBLE_MAX:Number; public static var RAD_DEG:Number; public static var DEG_RAD:Number; public static var LN2:Number; public static var PIHALF:Number; public static var PI:Number; public static var PI2:Number; public static var EPS:Number; public static var EPS_SQ:Number; public function Mathematics():void{ } public static function isNaN(_arg1:Number):Boolean{ return (Math.isNaN(_arg1)); } public static function min(_arg1:int, _arg2:int):int{ return (((_arg1)<_arg2) ? _arg1 : _arg2); } public static function max(_arg1:int, _arg2:int):int{ return (((_arg1)>_arg2) ? _arg1 : _arg2); } public static function abs(_arg1:int):int{ return (((_arg1)<0) ? -(_arg1) : _arg1); } public static function sign(_arg1:int):int{ return (((_arg1)>0) ? 1 : ((_arg1)<0) ? -1 : 0); } public static function clamp(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1)<_arg2) ? _arg2 : ((_arg1)>_arg3) ? _arg3 : _arg1); } public static function clampSymmetric(_arg1:int, _arg2:int):int{ return (((_arg1)<-(_arg2)) ? -(_arg2) : ((_arg1)>_arg2) ? _arg2 : _arg1); } public static function wrap(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1)<_arg2) ? (((_arg1 - _arg2) + _arg3) + 1) : ((_arg1)>_arg3) ? (((_arg1 - _arg3) + _arg2) - 1) : _arg1); } public static function fmin(_arg1:Number, _arg2:Number):Number{ return (((_arg1)<_arg2) ? _arg1 : _arg2); } public static function fmax(_arg1:Number, _arg2:Number):Number{ return (((_arg1)>_arg2) ? _arg1 : _arg2); } public static function fabs(_arg1:Number):Number{ return (((_arg1)<0) ? -(_arg1) : _arg1); } public static function fsign(_arg1:Number):int{ return (((_arg1)>=0) ? 1 : -1); } public static function fclamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (((_arg1)<_arg2) ? _arg2 : ((_arg1)>_arg3) ? _arg3 : _arg1); } public static function fclampSymmetric(_arg1:Number, _arg2:Number):Number{ return (((_arg1)<-(_arg2)) ? -(_arg2) : ((_arg1)>_arg2) ? _arg2 : _arg1); } public static function fwrap(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (((_arg1)<_arg2) ? (((_arg1 - _arg2) + _arg3) + 1) : ((_arg1)>_arg3) ? (((_arg1 - _arg3) + _arg2) - 1) : _arg1); } public static function equalSign(_arg1:int, _arg2:int):Boolean{ return (((_arg1 ^ _arg2) >= 0)); } public static function isEven(_arg1:int):Boolean{ return (((_arg1 & 1) == 0)); } public static function isOdd(_arg1:int):Boolean{ return (((_arg1 & 1) == 1)); } public static function isPow2(_arg1:int):Boolean{ if (_arg1 > 0){ false; }; return (false); } public static function lerp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return ((_arg1 + ((_arg2 - _arg1) * _arg3))); } public static function slerp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ if (_arg1 > 0){ false; }; var _local4:Number = (false) ? -(_arg1) : _arg1; var _local5:Number = (_arg2 - _local4); var _local6:Number = Math.sin(_local5); if (_local6 == 0){ return ((_local4 + (_local5 * _arg3))); } else { }; return (!NULL!); } public static function nextPow2(_arg1:int):int{ var _local2:int = _arg1; _local2 = (_local2 | (_local2 >> 1)); _local2 = (_local2 | (_local2 >> 2)); _local2 = (_local2 | (_local2 >> 3)); _local2 = (_local2 | (_local2 >> 4)); _local2 = (_local2 | (_local2 >> 5)); return ((_local2 + 1)); } public static function exp(_arg1:int, _arg2:int):int{ var _local3 = 1; var _local4:int; while (true) { if ((_arg2 & 1) != 0){ _local3 = (_arg1 * _local3); }; _arg2 = (_arg2 >> 1); if (_arg2 == 0){ _local4 = _local3; break; } else { _arg1 = (_arg1 * _arg1); }; }; return (_local4); } public static function roundTo(_arg1:Number, _arg2:Number):Number{ return ((Math.round((_arg1 / _arg2)) * _arg2)); } public static function round(_arg1:Number):int{ return (Std._int(((_arg1)>0) ? (_arg1 + 0.5) : ((_arg1)<0) ? (_arg1 - 0.5) : 0)); } public static function ceil(_arg1:Number):int{ var _local2:int; if (_arg1 > 0){ _local2 = Std._int((_arg1 + 0.5)); if (_local2 < _arg1){ return ((_local2 + 1)); } else { return (_local2); }; //unresolved jump }; if (_arg1 < 0){ _local2 = Std._int((_arg1 - 0.5)); if (_local2 < _arg1){ return ((_local2 + 1)); } else { return (_local2); }; //unresolved jump }; return (0); } public static function floor(_arg1:Number):int{ var _local2:int; if (_arg1 > 0){ _local2 = Std._int((_arg1 + 0.5)); if (_local2 < _arg1){ return (_local2); } else { return ((_local2 - 1)); }; //unresolved jump }; if (_arg1 < 0){ _local2 = Std._int((_arg1 - 0.5)); if (_local2 > _arg1){ return ((_local2 - 1)); } else { return (_local2); }; //unresolved jump }; return (0); } public static function sqr(_arg1:Number):Number{ return ((_arg1 * _arg1)); } public static function invSqrt(_arg1:Number):Number{ return ((1 / Math.sqrt(_arg1))); } public static function wrapPI(_arg1:Number):Number{ if (_arg1 < -(3.14159265358979)){ return ((_arg1 + 6.28318530717959)); //unresolved jump }; if (_arg1 > 3.14159265358979){ return ((_arg1 - 6.28318530717959)); //unresolved jump }; return (_arg1); } public static function compareAbsolute(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Number = (_arg1 - _arg2); return (((_local4)>0) ? (_local4 < _arg3) : (-(_local4) < _arg3)); } public static function snap(_arg1:Number, _arg2:Number):Number{ return (Mathematics.floor(((_arg1 + (_arg2 * 0.5)) / _arg2))); } public static function inRange(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ if (_arg1 >= _arg2){ false; }; return (false); } public static function frand():Number{ return (Math.random()); } public static function irand():int{ return (Std._int((Math.random() * 2147483647))); } public static function frandRange(_arg1:Number, _arg2:Number):Number{ return ((_arg1 + ((_arg2 - _arg1) * Math.random()))); } public static function frandRangeSymmetric(_arg1:Number):Number{ Assert.assert((_arg1 > 0), "range > 0", {fileName:"Mathematics.hx", lineNumber:407, className:"de.polygonal.core.math.Mathematics", methodName:"frandRangeSymmetric"}); return (Mathematics.frandRange(-(_arg1), _arg1)); } public static function irandRange(_arg1:int, _arg2:int):int{ return (Mathematics.round(((_arg1 - 0.4999) + (((_arg2 + 0.4999) - (_arg1 - 0.4999)) * Mathematics.frand())))); } public static function irandRangeSymmetric(_arg1:int):Number{ Assert.assert((_arg1 > 0), "range > 0", {fileName:"Mathematics.hx", lineNumber:423, className:"de.polygonal.core.math.Mathematics", methodName:"irandRangeSymmetric"}); return (Mathematics.irandRange(-(_arg1), _arg1)); } } Mathematics.INT8_MIN = -128; Mathematics.INT8_MAX = 127; Mathematics.UINT8_MAX = 0xFF; Mathematics.INT16_MIN = -32768; Mathematics.INT16_MAX = 32767; Mathematics.UINT16_MAX = 0xFFFF; Mathematics.INT32_MIN = -2147483648; Mathematics.INT32_MAX = 2147483647; Mathematics.UINT32_MAX = -1; Mathematics.NaN = (0 / 0); Mathematics.POSITIVE_INFINITY = (1 / 0); Mathematics.NEGATIVE_INFINITY = (-1 / 0); Mathematics.FLOAT_MAX = 3.40282346638528E38; Mathematics.FLOAT_MIN = -(3.40282346638528E38); Mathematics.DOUBLE_MIN = 1.79769313486231E308; Mathematics.DOUBLE_MAX = -(1.79769313486231E308); Mathematics.RAD_DEG = (180 / 3.14159265358979); Mathematics.DEG_RAD = (3.14159265358979 / 180); Mathematics.LN2 = 0.693147180559945; Mathematics.PIHALF = 1.5707963267949; Mathematics.PI = 3.14159265358979; Mathematics.PI2 = 6.28318530717959; Mathematics.EPS = 1E-6; Mathematics.EPS_SQ = 1E-12; }//package de.polygonal.core.math
Section 50
//Assert (de.polygonal.core.util.Assert) package de.polygonal.core.util { import flash.*; public class Assert { public function Assert():void{ } public static function assert(_arg1:Boolean, _arg2:String, _arg3:Object=undefined):void{ if (!_arg1){ Boot.lastError = new Error(); throw (new AssertionError(_arg2, _arg3)); }; } } }//package de.polygonal.core.util
Section 51
//AssertionError (de.polygonal.core.util.AssertionError) package de.polygonal.core.util { import de.polygonal.core.fmt.*; import flash.*; public class AssertionError extends Error { public function AssertionError(_arg1:String=undefined, _arg2:Object=undefined):void{ if (Boot.skip_constructor){ return; }; super(Sprintf.format("Assertation \"%s\" failed in file %s, line %d, %s::%s", [_arg1, _arg2.fileName, _arg2.lineNumber, _arg2.className, _arg2.methodName])); } } }//package de.polygonal.core.util
Section 52
//LinkedQueueIterator (de.polygonal.ds._LinkedQueue.LinkedQueueIterator) package de.polygonal.ds._LinkedQueue { import de.polygonal.ds.*; import flash.*; public class LinkedQueueIterator implements Itr { public var _walker:LinkedQueueNode; public var _f:LinkedQueue; public function LinkedQueueIterator(_arg1:LinkedQueue=undefined):void{ if (Boot.skip_constructor){ return; }; _f = _arg1; reset(); } public function reset():void{ _walker = __head(_f); } public function next():Object{ var _local1:Object = _walker.val; _walker = _walker.next; return (_local1); } public function hasNext():Boolean{ return (!((_walker == null))); } public function __head(_arg1:Object):LinkedQueueNode{ return (_arg1._head); } } }//package de.polygonal.ds._LinkedQueue
Section 53
//LinkedQueueNode (de.polygonal.ds._LinkedQueue.LinkedQueueNode) package de.polygonal.ds._LinkedQueue { import flash.*; public class LinkedQueueNode { public var val:Object; public var next:LinkedQueueNode; public function LinkedQueueNode(_arg1:Object=undefined):void{ if (Boot.skip_constructor){ return; }; val = _arg1; } public function toString():String{ return (("" + val)); } } }//package de.polygonal.ds._LinkedQueue
Section 54
//VectorIterator (de.polygonal.ds._Vector.VectorIterator) package de.polygonal.ds._Vector { import de.polygonal.ds.*; import flash.*; public class VectorIterator implements Itr { public var _s:int; public var _i:int; public var _f:Vector; public var _a:Array; public function VectorIterator(_arg1:Vector=undefined):void{ if (Boot.skip_constructor){ return; }; _f = _arg1; reset(); } public function reset():void{ _a = __a(_f); _s = __size(_f); _i = 0; } public function next():Object{ var _local1:int = _i; _i = (_local1 + 1); return (_a[_local1]); } public function hasNext():Boolean{ return ((_i < _s)); } public function __size(_arg1:Object):int{ return (_arg1._size); } public function __a(_arg1:Object):Array{ return (_arg1._a); } } }//package de.polygonal.ds._Vector
Section 55
//Bits (de.polygonal.ds.Bits) package de.polygonal.ds { import de.polygonal.core.fmt.*; import de.polygonal.core.util.*; public class Bits { public static var BIT_01:int; public static var BIT_02:int; public static var BIT_03:int; public static var BIT_04:int; public static var BIT_05:int; public static var BIT_06:int; public static var BIT_07:int; public static var BIT_08:int; public static var BIT_09:int; public static var BIT_10:int; public static var BIT_11:int; public static var BIT_12:int; public static var BIT_13:int; public static var BIT_14:int; public static var BIT_15:int; public static var BIT_16:int; public static var BIT_17:int; public static var BIT_18:int; public static var BIT_19:int; public static var BIT_20:int; public static var BIT_21:int; public static var BIT_22:int; public static var BIT_23:int; public static var BIT_24:int; public static var BIT_25:int; public static var BIT_26:int; public static var BIT_27:int; public static var BIT_28:int; public static var BIT_29:int; public static var BIT_30:int; public static var BIT_31:int; public static var BIT_32:int; public static var ALL:int; public function Bits():void{ } public static function hasBits(_arg1:int, _arg2:int):Boolean{ return (!(((_arg1 & _arg2) == 0))); } public static function hasAllBits(_arg1:int, _arg2:int):Boolean{ return (((_arg1 & _arg2) == _arg2)); } public static function setBits(_arg1:int, _arg2:int):int{ return ((_arg1 | _arg2)); } public static function clrBits(_arg1:int, _arg2:int):int{ return ((_arg1 & ~(_arg2))); } public static function invBits(_arg1:int, _arg2:int):int{ return ((_arg1 ^ _arg2)); } public static function mask(_arg1:int):int{ if (_arg1 >= 1){ false; }; Assert.assert(false, "n >= 1 && n <= 32", {fileName:"Bits.hx", lineNumber:106, className:"de.polygonal.ds.Bits", methodName:"mask"}); return (((1 << _arg1) - 1)); } public static function ones(_arg1:int):int{ _arg1 = (_arg1 - ((_arg1 >> 1) & 1431655765)); _arg1 = (((_arg1 >> 2) & 858993459) + (_arg1 & 858993459)); _arg1 = (((_arg1 >> 4) + _arg1) & 252645135); _arg1 = (_arg1 + (_arg1 >> 8)); _arg1 = (_arg1 + (_arg1 >> 16)); return ((_arg1 & 63)); } public static function ntz(_arg1:int):int{ var _local2 = 32; while (_arg1 != 0) { _local2--; _arg1 = (_arg1 + _arg1); }; return (_local2); } public static function nlz(_arg1:int):int{ if (_arg1 < 0){ return (0); //unresolved jump }; _arg1 = (_arg1 | (_arg1 >> 1)); _arg1 = (_arg1 | (_arg1 >> 2)); _arg1 = (_arg1 | (_arg1 >> 4)); _arg1 = (_arg1 | (_arg1 >> 8)); _arg1 = (_arg1 | (_arg1 >> 16)); return ((32 - Bits.ones(_arg1))); } public static function msb(_arg1:int):int{ _arg1 = (_arg1 | (_arg1 >> 1)); _arg1 = (_arg1 | (_arg1 >> 2)); _arg1 = (_arg1 | (_arg1 >> 4)); _arg1 = (_arg1 | (_arg1 >> 8)); _arg1 = (_arg1 | (_arg1 >> 16)); return ((_arg1 & ~((_arg1 >>> 1)))); } public static function reverse(_arg1:int):int{ var _local2 = 1431655765; _arg1 = (((_arg1 >> 1) & _local2) | ((_arg1 & _local2) << 1)); _local2 = 858993459; _arg1 = (((_arg1 >> 2) & _local2) | ((_arg1 & _local2) << 2)); _local2 = 252645135; _arg1 = (((_arg1 >> 4) & _local2) | ((_arg1 & _local2) << 4)); _local2 = 0xFF00FF; _arg1 = (((_arg1 >> 8) & _local2) | ((_arg1 & _local2) << 8)); return (((_arg1 >> 16) | (_arg1 << 16))); } public static function hasBitAt(_arg1:int, _arg2:int):Boolean{ if (_arg2 >= 1){ false; }; Assert.assert(false, Sprintf.format("position out of range (%d)", [_arg2]), {fileName:"Bits.hx", lineNumber:214, className:"de.polygonal.ds.Bits", methodName:"hasBitAt"}); return (!(((_arg1 & (1 << (_arg2 - 1))) == 0))); } public static function setBitAt(_arg1:int, _arg2:int):int{ if (_arg2 >= 1){ false; }; Assert.assert(false, Sprintf.format("position out of range (%d)", [_arg2]), {fileName:"Bits.hx", lineNumber:228, className:"de.polygonal.ds.Bits", methodName:"setBitAt"}); return ((_arg1 | (1 << (_arg2 - 1)))); } public static function clrBitAt(_arg1:int, _arg2:int):int{ if (_arg2 >= 1){ false; }; Assert.assert(false, Sprintf.format("position out of range (%d)", [_arg2]), {fileName:"Bits.hx", lineNumber:242, className:"de.polygonal.ds.Bits", methodName:"clrBitAt"}); return ((_arg1 & ~((1 << (_arg2 - 1))))); } public static function invBitAt(_arg1:int, _arg2:int):int{ if (_arg2 >= 1){ false; }; Assert.assert(false, Sprintf.format("position out of range (%d)", [_arg2]), {fileName:"Bits.hx", lineNumber:259, className:"de.polygonal.ds.Bits", methodName:"invBitAt"}); return ((_arg1 ^ (1 << (_arg2 - 1)))); } public static function setBitsIf(_arg1:int, _arg2:Boolean, _arg3:int):int{ _arg1 = (_arg1 ^ ((-((_arg2) ? 1 : 0) ^ _arg1) & _arg3)); return (_arg1); } public static function setBitsRange(_arg1:int, _arg2:int, _arg3:int):int{ var _local6:int; if (_arg2 < _arg3){ false; if (_arg2 != _arg3){ false; if (_arg2 >= 1){ false; }; }; }; Assert.assert(false, Sprintf.format("invalid range (min: %d, max: %d)", [_arg2, _arg3]), {fileName:"Bits.hx", lineNumber:279, className:"de.polygonal.ds.Bits", methodName:"setBitsRange"}); var _local4:int = _arg2; var _local5 = (_arg3 + 1); while (_local4 < _local5) { _local4++; _local6 = _local4; _arg1 = Bits.setBits(_arg1, (1 << (_local6 - 1))); }; return (_arg1); } } Bits.BIT_01 = 1; Bits.BIT_02 = 2; Bits.BIT_03 = 4; Bits.BIT_04 = 8; Bits.BIT_05 = 16; Bits.BIT_06 = 32; Bits.BIT_07 = 64; Bits.BIT_08 = 128; Bits.BIT_09 = 0x0100; Bits.BIT_10 = 0x0200; Bits.BIT_11 = 0x0400; Bits.BIT_12 = 0x0800; Bits.BIT_13 = 0x1000; Bits.BIT_14 = 0x2000; Bits.BIT_15 = 0x4000; Bits.BIT_16 = 0x8000; Bits.BIT_17 = 65536; Bits.BIT_18 = 131072; Bits.BIT_19 = 262144; Bits.BIT_20 = 524288; Bits.BIT_21 = 0x100000; Bits.BIT_22 = 0x200000; Bits.BIT_23 = 0x400000; Bits.BIT_24 = 0x800000; Bits.BIT_25 = 16777216; Bits.BIT_26 = 33554432; Bits.BIT_27 = 67108864; Bits.BIT_28 = 134217728; Bits.BIT_29 = 268435456; Bits.BIT_30 = 536870912; Bits.BIT_31 = 1073741824; Bits.BIT_32 = -2147483648; Bits.ALL = -1; }//package de.polygonal.ds
Section 56
//Cloneable (de.polygonal.ds.Cloneable) package de.polygonal.ds { public interface Cloneable { function clone():Object; } }//package de.polygonal.ds
Section 57
//Collection (de.polygonal.ds.Collection) package de.polygonal.ds { public interface Collection { function toVector(_arg1:Vector=undefined):Vector; function toArray(_arg1:Array=undefined):Array; function size():int; function iterator():Object; function isEmpty():Boolean; function contains(_arg1:Object):Boolean; function clone(_arg1:Boolean, _arg2:Object=undefined):Collection; function clear():void; } }//package de.polygonal.ds
Section 58
//Comparable (de.polygonal.ds.Comparable) package de.polygonal.ds { public interface Comparable { function compare(_arg1:Object):int; } }//package de.polygonal.ds
Section 59
//Itr (de.polygonal.ds.Itr) package de.polygonal.ds { public interface Itr { function reset():void; function next():Object; function hasNext():Boolean; } }//package de.polygonal.ds
Section 60
//LinkedQueue (de.polygonal.ds.LinkedQueue) package de.polygonal.ds { import de.polygonal.ds._LinkedQueue.*; import de.polygonal.core.fmt.*; import de.polygonal.core.util.*; import flash.*; public class LinkedQueue implements Queue { public var _tail:LinkedQueueNode; public var _size:int; public var _maxSize:int; public var _head:LinkedQueueNode; public function LinkedQueue(_arg1:int=-1):void{ if (Boot.skip_constructor){ return; }; _size = 0; _maxSize = _arg1; } public function toVector(_arg1:Vector=undefined):Vector{ var _local2:Vector = new Vector(); var _local3:LinkedQueueNode = _head; while (_local3 != null) { _local2.pushBack(_local3.val); _local3 = _local3.next; }; return (_local2); } public function toString():String{ var _local1:String = Sprintf.format("\n{LinkedQueue size: %d}", [size()]); if (size() == 0){ return (_local1); }; _local1 = (_local1 + "\n|<\n"); var _local2:LinkedQueueNode = _head; var _local3:int; while (_local2 != null) { _local3++; _local1 = (_local1 + Sprintf.format(" %4d -> %s\n", [_local3, Std.string(_local2.val)])); _local2 = _local2.next; }; _local1 = (_local1 + ">|"); return (_local1); } public function toArray(_arg1:Array=undefined):Array{ Assert.assert(!((_arg1 == null)), "output is null", {fileName:"LinkedQueue.hx", lineNumber:344, className:"de.polygonal.ds.LinkedQueue", methodName:"toArray"}); var _local2:LinkedQueueNode = _head; while (_local2 != null) { _arg1.push(_local2.val); _local2 = _local2.next; }; return (_arg1); } public function size():int{ return (_size); } public function shuffle(_arg1:Vector=undefined):void{ var _local3 = (null as Class); var _local4:int; var _local5 = (null as LinkedQueueNode); var _local6:int; var _local7:int; var _local8 = (null as Object); var _local9 = (null as LinkedQueueNode); var _local10:int; var _local2:int = _size; if (_arg1 == null){ _local3 = Math; while (_local2 > 1) { _local2--; _local4 = Std._int((_local3.random() * _local2)); _local5 = _head; _local6 = 0; while (_local6 < _local2) { _local6++; _local7 = _local6; _local5 = _local5.next; }; _local8 = _local5.val; _local9 = _head; _local6 = 0; while (_local6 < _local4) { _local6++; _local7 = _local6; _local9 = _local9.next; }; _local5.val = _local9.val; _local9.val = _local8; }; } else { Assert.assert(!((_arg1 == null)), "rval is null", {fileName:"LinkedQueue.hx", lineNumber:223, className:"de.polygonal.ds.LinkedQueue", methodName:"shuffle"}); Assert.assert((_arg1.size() >= size()), "insufficient random values", {fileName:"LinkedQueue.hx", lineNumber:224, className:"de.polygonal.ds.LinkedQueue", methodName:"shuffle"}); _local4 = 0; while (_local2 > 1) { _local2--; _local4++; _local6 = Std._int((_arg1.get(_local4) * _local2)); _local5 = _head; _local7 = 0; while (_local7 < _local2) { _local7++; _local10 = _local7; _local5 = _local5.next; }; _local8 = _local5.val; _local9 = _head; _local7 = 0; while (_local7 < _local6) { _local7++; _local10 = _local7; _local9 = _local9.next; }; _local5.val = _local9.val; _local9.val = _local8; }; }; } public function peek():Object{ Assert.assert(!((_head == null)), "queue is empty", {fileName:"LinkedQueue.hx", lineNumber:81, className:"de.polygonal.ds.LinkedQueue", methodName:"peek"}); return (_head.val); } public function maxSize():int{ return (_maxSize); } public function iterator():Object{ return (new LinkedQueueIterator(this)); } public function isEmpty():Boolean{ return ((_size == 0)); } public function enqueue(_arg1:Object):void{ var _local3 = (null as LinkedQueueNode); if (maxSize() != -1){ Assert.assert((size() < maxSize()), Sprintf.format("size equals max size (%d)", [maxSize()]), {fileName:"LinkedQueue.hx", lineNumber:105, className:"de.polygonal.ds.LinkedQueue", methodName:"enqueue"}); }; _size = (_size + 1); var _local2:LinkedQueueNode = new LinkedQueueNode(_arg1); if (_head == null){ _local3 = _local2; _tail = _local3; _head = _local3; _head.next = _tail; } else { _tail.next = _local2; _tail = _local2; }; } public function dequeue():Object{ Assert.assert(!((_head == null)), "queue is empty", {fileName:"LinkedQueue.hx", lineNumber:130, className:"de.polygonal.ds.LinkedQueue", methodName:"dequeue"}); _size = (_size - 1); var _local1:LinkedQueueNode = _head; if (_head == _tail){ _head = null; _tail = null; } else { _head = _head.next; }; _local1.next = null; return (_local1.val); } public function contains(_arg1:Object):Boolean{ var _local2:LinkedQueueNode = _head; var _local3:Boolean; while (_local2 != null) { if (_local2.val == _arg1){ return (true); }; _local2 = _local2.next; }; return (false); } public function clone(_arg1:Boolean, _arg2:Object=undefined):Collection{ var _local4 = (null as LinkedQueueNode); var _local5 = (null as LinkedQueueNode); var _local6 = (null as Cloneable); var _local3:LinkedQueue = new LinkedQueue(); if (_size == 0){ return (_local3); }; if (_arg1){ _local4 = _head; if (_local4 != null){ _local5 = new LinkedQueueNode(_local4.val); _local3._tail = _local5; _local3._head = _local5; _local3._head.next = _local3._tail; }; _local4 = _local4.next; while (_local4 != null) { _local5 = new LinkedQueueNode(_local4.val); _local3._tail.next = _local5; _local3._tail = _local5; _local4 = _local4.next; }; } else { if (_arg2 == null){ _local6 = null; _local4 = _head; if (_local4 != null){ Assert.assert(Std.is(_local4.val, Cloneable), Sprintf.format("element is not of type Cloneable (%s)", [_local4.val]), {fileName:"LinkedQueue.hx", lineNumber:412, className:"de.polygonal.ds.LinkedQueue", methodName:"clone"}); _local6 = _local4.val; _local5 = new LinkedQueueNode(_local6.clone()); _local3._tail = _local5; _local3._head = _local5; _local3._head.next = _local3._tail; }; _local4 = _local4.next; while (_local4 != null) { Assert.assert(Std.is(_local4.val, Cloneable), Sprintf.format("element is not of type Cloneable (%s)", [_local4.val]), {fileName:"LinkedQueue.hx", lineNumber:422, className:"de.polygonal.ds.LinkedQueue", methodName:"clone"}); _local6 = _local4.val; _local5 = new LinkedQueueNode(_local6.clone()); _local3._tail.next = _local5; _local3._tail = _local5; _local4 = _local4.next; }; } else { _local4 = _head; if (_local4 != null){ _local5 = new LinkedQueueNode(_arg2(_local4.val)); _local3._tail = _local5; _local3._head = _local5; _local3._head.next = _local3._tail; }; _local4 = _local4.next; while (_local4 != null) { _local5 = new LinkedQueueNode(_arg2(_local4.val)); _local3._tail.next = _local5; _local3._tail = _local5; _local4 = _local4.next; }; }; }; _local3._size = _size; return (_local3); } public function clear():void{ var _local2 = (null as LinkedQueueNode); var _local1:LinkedQueueNode = _head; while (_local1 != null) { _local2 = _local1.next; _local1.next = null; _local1 = _local1.next; }; _local2 = null; _tail = _local2; _head = _local2; _size = 0; } public function back():Object{ Assert.assert(!((_tail == null)), "queue is empty", {fileName:"LinkedQueue.hx", lineNumber:94, className:"de.polygonal.ds.LinkedQueue", methodName:"back"}); return (_tail.val); } public function assign(_arg1, _arg2:Array=undefined, _arg3:int=0):void{ var _local4 = (null as LinkedQueueNode); var _local5:int; var _local6:int; if (_arg3 > 0){ if (maxSize() != -1){ Assert.assert((_arg3 <= maxSize()), Sprintf.format("limit out of range (%d)", [_arg3]), {fileName:"LinkedQueue.hx", lineNumber:164, className:"de.polygonal.ds.LinkedQueue", methodName:"assign"}); }; } else { _arg3 = size(); }; if (Std.is(_arg1, Class)){ if (_arg2 == null){ _arg2 = []; }; _local4 = _head; _local5 = 0; while (_local5 < _arg3) { _local5++; _local6 = _local5; _local4.val = Type.createInstance(_arg1, _arg2); _local4 = _local4.next; }; } else { _local4 = _head; _local5 = 0; while (_local5 < _arg3) { _local5++; _local6 = _local5; _local4.val = _arg1; _local4 = _local4.next; }; }; } } }//package de.polygonal.ds
Section 61
//Queue (de.polygonal.ds.Queue) package de.polygonal.ds { public interface Queue extends Collection { function peek():Object; function enqueue(_arg1:Object):void; function dequeue():Object; function back():Object; } }//package de.polygonal.ds
Section 62
//Vector (de.polygonal.ds.Vector) package de.polygonal.ds { import de.polygonal.core.fmt.*; import de.polygonal.core.util.*; import flash.*; import de.polygonal.ds._Vector.*; public class Vector implements Collection { public var _size:int; public var _maxSize:int; public var _a:Array; public function Vector(_arg1:int=-1):void{ if (Boot.skip_constructor){ return; }; _a = []; _maxSize = _arg1; _size = 0; } public function toVector(_arg1:Vector=undefined):Vector{ var _local4:int; if (_arg1 == null){ _arg1 = new Vector(); }; var _local2:int; var _local3:int = _a.length; while (_local2 < _local3) { _local2++; _local4 = _local2; _arg1.pushBack(__get(_local4)); }; return (_arg1); } public function toString():String{ var _local4:int; var _local1:String = Sprintf.format("\n{Vector, size/max: %d/%d}", [size(), maxSize()]); if (size() == 0){ return (_local1); }; _local1 = (_local1 + "\n|<\n"); var _local2:int; var _local3:int = size(); while (_local2 < _local3) { _local2++; _local4 = _local2; _local1 = (_local1 + Sprintf.format(" %4d -> %s\n", [_local4, Std.string(__get(_local4))])); }; _local1 = (_local1 + ">|"); return (_local1); } public function toArray(_arg1:Array=undefined):Array{ var _local4:int; if (_arg1 == null){ _arg1 = []; }; var _local2:int; var _local3:int = size(); while (_local2 < _local3) { _local2++; _local4 = _local2; _arg1.push(__get(_local4)); }; return (_arg1); } public function swp(_arg1:int, _arg2:int):void{ if (_arg1 >= 0){ false; }; Assert.assert(false, Sprintf.format("i index out of range (%d)", [_arg1]), {fileName:"Vector.hx", lineNumber:134, className:"de.polygonal.ds.Vector", methodName:"swp"}); if (_arg2 >= 0){ false; }; Assert.assert(false, Sprintf.format("j index out of range (%d)", [_arg2]), {fileName:"Vector.hx", lineNumber:135, className:"de.polygonal.ds.Vector", methodName:"swp"}); Assert.assert(!((_arg1 == _arg2)), Sprintf.format("i index equals j index (%d)", [_arg1]), {fileName:"Vector.hx", lineNumber:136, className:"de.polygonal.ds.Vector", methodName:"swp"}); var _local3:Object = __get(_arg1); __cpy(_arg1, _arg2); __set(_arg2, _local3); } public function sort(_arg1:Function, _arg2:Boolean=false):void{ if (size() > 1){ if (_arg1 == null){ if (_arg2){ _insertionSortComparable(); } else { _quickSortComparable(0, size()); }; } else { if (_arg2){ _insertionSort(_arg1); } else { _a.sort(_arg1); }; }; }; } public function size():int{ return (_size); } public function shuffle(_arg1:Vector=undefined):void{ var _local3 = (null as Class); var _local4:int; var _local5 = (null as Object); var _local6:int; var _local2:int = size(); if (_arg1 == null){ _local3 = Math; while (_local2--, _local2 > 1) { _local4 = Std._int((_local3.random() * _local2)); _local5 = __get(_local2); __cpy(_local2, _local4); __set(_local4, _local5); }; } else { Assert.assert(!((_arg1 == null)), "rval is null", {fileName:"Vector.hx", lineNumber:684, className:"de.polygonal.ds.Vector", methodName:"shuffle"}); Assert.assert((_arg1.size() >= size()), "insufficient random values", {fileName:"Vector.hx", lineNumber:685, className:"de.polygonal.ds.Vector", methodName:"shuffle"}); _local4 = 0; while (_local2--, _local2 > 1) { _local4++; _local6 = Std._int((_arg1.get(_local4) * _local2)); _local5 = __get(_local2); __cpy(_local2, _local6); __set(_local6, _local5); }; }; } public function set(_arg1:int, _arg2:Object):void{ Assert.assert((size() > 0), "vector is empty", {fileName:"Vector.hx", lineNumber:120, className:"de.polygonal.ds.Vector", methodName:"set"}); if (_arg1 >= 0){ false; }; Assert.assert(false, Sprintf.format("i index out of range (%d)", [_arg1]), {fileName:"Vector.hx", lineNumber:121, className:"de.polygonal.ds.Vector", methodName:"set"}); __set(_arg1, _arg2); } public function reverse():void{ _a.reverse(); } public function removeRange(_arg1:int, _arg2:int, _arg3:Vector=undefined):Vector{ var _local4 = (null as Object); var _local5:int; var _local6:int; var _local7 = (null as Object); var _local8:int; if (_arg1 >= 0){ false; }; Assert.assert(false, Sprintf.format("i index out of range (%d)", [_arg1]), {fileName:"Vector.hx", lineNumber:345, className:"de.polygonal.ds.Vector", methodName:"removeRange"}); if (_arg2 > 0){ false; }; Assert.assert(false, Sprintf.format("invalid num (%d)", [_arg2]), {fileName:"Vector.hx", lineNumber:346, className:"de.polygonal.ds.Vector", methodName:"removeRange"}); if (_arg3 == null){ _local4 = __get(_arg1); _local5 = size(); _local6 = (_arg1 + _arg2); while (_local6 < _local5) { _local6++; __set((_local6 - _arg2), __get(_local6)); }; } else { _local4 = __get(_arg1); _local5 = size(); _local6 = (_arg1 + _arg2); while (_local6 < _local5) { _local8 = (_local6 - _arg2); _local7 = __get(_local8); _arg3.pushBack(_local7); _local6++; __cpy(_local8, _local6); }; }; _size = (_size - _arg2); return (_arg3); } public function removeAt(_arg1:int):Object{ Assert.assert((size() > 0), "vector is empty", {fileName:"Vector.hx", lineNumber:268, className:"de.polygonal.ds.Vector", methodName:"removeAt"}); if (_arg1 >= 0){ false; }; Assert.assert(false, Sprintf.format("i index out of range (%d)", [_arg1]), {fileName:"Vector.hx", lineNumber:269, className:"de.polygonal.ds.Vector", methodName:"removeAt"}); var _local2:Object = __get(_arg1); var _local3 = (size() - 1); var _local4:int = _arg1; while (_local4 < _local3) { _local4++; __cpy(_local4, _local4); }; _size = (_size - 1); return (_local2); } public function pushFront(_arg1:Object):void{ if (maxSize() != -1){ Assert.assert((size() < maxSize()), Sprintf.format("size equals max size (%d)", [maxSize()]), {fileName:"Vector.hx", lineNumber:235, className:"de.polygonal.ds.Vector", methodName:"pushFront"}); }; insertAt(0, _arg1); } public function pushBack(_arg1:Object):void{ if (maxSize() != -1){ Assert.assert((size() < maxSize()), Sprintf.format("size equals max size (%d)", [maxSize()]), {fileName:"Vector.hx", lineNumber:206, className:"de.polygonal.ds.Vector", methodName:"pushBack"}); }; var _local2:int = _size; _size = (_local2 + 1); __set(_local2, _arg1); } public function popFront():Object{ Assert.assert((size() > 0), "vector is empty", {fileName:"Vector.hx", lineNumber:220, className:"de.polygonal.ds.Vector", methodName:"popFront"}); return (removeAt(0)); } public function popBack():Object{ Assert.assert((size() > 0), "vector is empty", {fileName:"Vector.hx", lineNumber:192, className:"de.polygonal.ds.Vector", methodName:"popBack"}); var _local1 = (_size - 1); _size = _local1; return (__get(_local1)); } public function move(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:int; var _local5:int; var _local6 = (null as Array); Assert.assert(!((_arg1 == _arg2)), Sprintf.format("destination equals source (%d)", [_arg2]), {fileName:"Vector.hx", lineNumber:487, className:"de.polygonal.ds.Vector", methodName:"move"}); Assert.assert((_arg3 >= 0), Sprintf.format("num invalid (%d)", [_arg3]), {fileName:"Vector.hx", lineNumber:488, className:"de.polygonal.ds.Vector", methodName:"move"}); if (_arg1 >= 0){ false; }; Assert.assert(false, Sprintf.format("destination invalid (%d)", [_arg1]), {fileName:"Vector.hx", lineNumber:489, className:"de.polygonal.ds.Vector", methodName:"move"}); if (_arg2 >= 0){ false; }; Assert.assert(false, Sprintf.format("source invalid (%d)", [_arg2]), {fileName:"Vector.hx", lineNumber:490, className:"de.polygonal.ds.Vector", methodName:"move"}); if ((_arg1 + _arg3) > _arg2){ true; }; if (true){ _local4 = 0; while (_local4 < _arg3) { _local4++; _local5 = _local4; __cpy((_arg1 + _local5), (_arg2 + _local5)); }; } else { _local6 = []; _local4 = 0; while (_local4 < _arg3) { _local4++; _local5 = _local4; _local6[_local5] = __get((_arg2 + _local5)); }; _local4 = 0; while (_local4 < _arg3) { _local4++; _local5 = _local4; __set((_arg1 + _local5), _local6[_local5]); }; }; } public function maxSize():int{ return (_maxSize); } public function lastIndexOf(_arg1:Object, _arg2:int=-1):int{ if (_arg2 == -1){ _arg2 = (size() - 1); }; Assert.assert((size() > 0), "vector is empty", {fileName:"Vector.hx", lineNumber:416, className:"de.polygonal.ds.Vector", methodName:"lastIndexOf"}); if (_arg2 >= 0){ false; }; Assert.assert(false, Sprintf.format("from index out of range (%d)", [_arg2]), {fileName:"Vector.hx", lineNumber:417, className:"de.polygonal.ds.Vector", methodName:"lastIndexOf"}); var _local3 = -1; var _local4:int = _arg2; do { } while (__get(_local4) != _arg1); return (_local3); } public function join(_arg1:String):String{ return (_a.join(_arg1)); } public function iterator():Object{ return (new VectorIterator(this)); } public function isEmpty():Boolean{ return ((_a.length == 0)); } public function insertAt(_arg1:int, _arg2:Object):void{ if (maxSize() != -1){ Assert.assert((size() < maxSize()), Sprintf.format("size equals max size (%d)", [maxSize()]), {fileName:"Vector.hx", lineNumber:250, className:"de.polygonal.ds.Vector", methodName:"insertAt"}); }; if (_arg1 >= 0){ false; }; Assert.assert(false, Sprintf.format("i index out of range (%d)", [_arg1]), {fileName:"Vector.hx", lineNumber:251, className:"de.polygonal.ds.Vector", methodName:"insertAt"}); var _local3:int = size(); while (_local3 > _arg1) { _local3--; __cpy(_local3, _local3); }; __set(_arg1, _arg2); _size = (_size + 1); } public function indexOf(_arg1:Object, _arg2:int=0):int{ Assert.assert((size() > 0), "vector is empty", {fileName:"Vector.hx", lineNumber:385, className:"de.polygonal.ds.Vector", methodName:"indexOf"}); if (_arg2 >= 0){ false; }; Assert.assert(false, Sprintf.format("from index out of range (%d)", [_arg2]), {fileName:"Vector.hx", lineNumber:386, className:"de.polygonal.ds.Vector", methodName:"indexOf"}); var _local3 = -1; var _local4:int = _arg2; var _local5 = (size() - 1); do { } while (__get(_local4) != _arg1); return (_local3); } public function getArray():Array{ return (_a); } public function get(_arg1:int):Object{ Assert.assert((size() > 0), "vector is empty", {fileName:"Vector.hx", lineNumber:106, className:"de.polygonal.ds.Vector", methodName:"get"}); if (_arg1 >= 0){ false; }; Assert.assert(false, Sprintf.format("i index out of range (%d)", [_arg1]), {fileName:"Vector.hx", lineNumber:107, className:"de.polygonal.ds.Vector", methodName:"get"}); return (__get(_arg1)); } public function front():Object{ Assert.assert((size() > 0), "vector is empty", {fileName:"Vector.hx", lineNumber:166, className:"de.polygonal.ds.Vector", methodName:"front"}); return (__get(0)); } public function erase(_arg1:Object):Boolean{ var _local4:int; var _local2:int; var _local3:int = size(); while (_local2 < _local3) { _local2++; _local4 = _local2; if (__get(_local4) == _arg1){ removeAt(_local4); return (true); }; }; return (false); } public function cpy(_arg1:int, _arg2:int):void{ if (_arg1 >= 0){ false; }; Assert.assert(false, Sprintf.format("i index out of range (%d)", [_arg1]), {fileName:"Vector.hx", lineNumber:151, className:"de.polygonal.ds.Vector", methodName:"cpy"}); if (_arg2 >= 0){ false; }; Assert.assert(false, Sprintf.format("j index out of range (%d)", [_arg2]), {fileName:"Vector.hx", lineNumber:152, className:"de.polygonal.ds.Vector", methodName:"cpy"}); Assert.assert(!((_arg1 == _arg2)), Sprintf.format("i index equals j index (%d)", [_arg1]), {fileName:"Vector.hx", lineNumber:153, className:"de.polygonal.ds.Vector", methodName:"cpy"}); __cpy(_arg1, _arg2); } public function contains(_arg1:Object):Boolean{ var _local4:int; var _local2:int; var _local3:int = size(); while (_local2 < _local3) { _local2++; _local4 = _local2; if (__get(_local4) == _arg1){ return (true); }; }; return (false); } public function concat(_arg1:Vector, _arg2:Boolean=false):Vector{ var _local3 = (null as Vector); var _local4:int; var _local5:int; var _local6:int; var _local7:int; Assert.assert(!((_arg1 == null)), "x is null", {fileName:"Vector.hx", lineNumber:305, className:"de.polygonal.ds.Vector", methodName:"concat"}); if (_arg2){ _local3 = new Vector(); _local3._size = (size() + _arg1.size()); _local4 = 0; _local5 = size(); while (_local4 < _local5) { _local4++; _local6 = _local4; _local3.set(_local6, __get(_local6)); }; _local4 = size(); _local5 = (size() + _arg1.size()); while (_local4 < _local5) { _local4++; _local6 = _local4; _local3.set(_local6, _arg1.get((_local6 - size()))); }; return (_local3); //unresolved jump }; Assert.assert(!((_arg1 == this)), "x equals this", {fileName:"Vector.hx", lineNumber:324, className:"de.polygonal.ds.Vector", methodName:"concat"}); _local4 = _size; _size = (_size + _arg1.size()); _local5 = 0; _local6 = _arg1.size(); while (_local5 < _local6) { _local5++; _local7 = _local5; _local4++; __set(_local4, _arg1.get(_local7)); }; return (this); } public function compact():void{ _a.length = _size; } public function clone(_arg1:Boolean, _arg2:Object=undefined):Collection{ var _local4:int; var _local5:int; var _local6:int; var _local7 = (null as Cloneable); var _local3:Vector = new Vector(); _local3._size = _size; if (_arg1){ _local4 = 0; _local5 = size(); while (_local4 < _local5) { _local4++; _local6 = _local4; _local3.__set(_local6, __get(_local6)); }; } else { if (_arg2 == null){ _local7 = null; _local4 = 0; _local5 = size(); while (_local4 < _local5) { _local4++; _local6 = _local4; Assert.assert(Std.is(__get(_local6), Cloneable), Sprintf.format("element is not of type Cloneable (%s)", [__get(_local6)]), {fileName:"Vector.hx", lineNumber:645, className:"de.polygonal.ds.Vector", methodName:"clone"}); _local7 = __get(_local6); _local3.__set(_local6, _local7.clone()); }; } else { _local4 = 0; _local5 = size(); while (_local4 < _local5) { _local4++; _local6 = _local4; _local3.__set(_local6, _arg2(__get(_local6))); }; }; }; return (_local3); } public function clear():void{ _size = 0; } public function back():Object{ Assert.assert((size() > 0), "vector is empty", {fileName:"Vector.hx", lineNumber:179, className:"de.polygonal.ds.Vector", methodName:"back"}); return (__get((size() - 1))); } public function assign(_arg1, _arg2:Array=undefined, _arg3:int=0):void{ var _local4:int; var _local5:int; if (_arg3 > 0){ if (maxSize() != -1){ Assert.assert((_arg3 <= maxSize()), Sprintf.format("limit out of range (%d)", [_arg3]), {fileName:"Vector.hx", lineNumber:457, className:"de.polygonal.ds.Vector", methodName:"assign"}); }; } else { _arg3 = size(); }; _size = _arg3; if (Std.is(_arg1, Class)){ if (_arg2 == null){ _arg2 = []; }; _local4 = 0; while (_local4 < _arg3) { _local4++; _local5 = _local4; __set(_local5, Type.createInstance(_arg1, _arg2)); }; } else { _local4 = 0; while (_local4 < _arg3) { _local4++; _local5 = _local4; __set(_local5, _arg1); }; }; } public function _quickSortComparable(_arg1:int, _arg2:int):void{ var _local6:int; var _local7:int; var _local8:int; var _local9 = (null as Object); var _local10 = (null as Object); var _local11 = (null as Object); var _local12:int; var _local13:int; var _local14 = (null as Object); var _local3 = ((_arg1 + _arg2) - 1); var _local4:int = _arg1; var _local5:int = _local3; if (_arg2 > 1){ _local6 = _arg1; _local7 = (_local6 + (_arg2 >> 1)); _local8 = ((_local6 + _arg2) - 1); _local9 = __get(_local6); _local10 = __get(_local7); _local11 = __get(_local8); Assert.assert(Std.is(_local9, Comparable), Sprintf.format("element is not of type Comparable (%s)", [Std.string(_local9)]), {fileName:"Vector.hx", lineNumber:795, className:"de.polygonal.ds.Vector", methodName:"_quickSortComparable"}); Assert.assert(Std.is(_local10, Comparable), Sprintf.format("element is not of type Comparable (%s)", [Std.string(_local10)]), {fileName:"Vector.hx", lineNumber:796, className:"de.polygonal.ds.Vector", methodName:"_quickSortComparable"}); Assert.assert(Std.is(_local11, Comparable), Sprintf.format("element is not of type Comparable (%s)", [Std.string(_local11)]), {fileName:"Vector.hx", lineNumber:797, className:"de.polygonal.ds.Vector", methodName:"_quickSortComparable"}); _local13 = _local9.compare(_local11); if (_local13 < 0){ false; }; if (false){ _local12 = ((_local10.compare(_local11))<0) ? _local7 : _local8; } else { if (_local9.compare(_local10) < 0){ false; }; if (false){ _local12 = ((_local13)<0) ? _local6 : _local8; } else { _local12 = ((_local11.compare(_local9))<0) ? _local7 : _local6; }; }; _local14 = __get(_local12); __cpy(_local12, _arg1); while (_local4 < _local5) { Assert.assert(Std.is(__get(_local4), Comparable), Sprintf.format("element is not of type Comparable (%s)", [Std.string(__get(_local4))]), {fileName:"Vector.hx", lineNumber:818, className:"de.polygonal.ds.Vector", methodName:"_quickSortComparable"}); Assert.assert(Std.is(__get(_local5), Comparable), Sprintf.format("element is not of type Comparable (%s)", [Std.string(__get(_local5))]), {fileName:"Vector.hx", lineNumber:819, className:"de.polygonal.ds.Vector", methodName:"_quickSortComparable"}); Assert.assert(Std.is(_local14, Comparable), Sprintf.format("element is not of type Comparable (%s)", [Std.string(_local14)]), {fileName:"Vector.hx", lineNumber:820, className:"de.polygonal.ds.Vector", methodName:"_quickSortComparable"}); while (if (_local14.compare(__get(_local5)) < 0){ false; }, false) { _local5--; }; if (_local5 != _local4){ __cpy(_local4, _local5); _local4++; }; while (if (_local14.compare(__get(_local4)) > 0){ false; }, false) { _local4++; }; if (_local5 != _local4){ __cpy(_local5, _local4); _local5--; }; }; __set(_local4, _local14); _quickSortComparable(_arg1, (_local4 - _arg1)); _quickSortComparable((_local4 + 1), (_local3 - _local4)); }; } public function _quickSort(_arg1:int, _arg2:int, _arg3:Function):void{ var _local7:int; var _local8:int; var _local9:int; var _local10 = (null as Object); var _local11 = (null as Object); var _local12 = (null as Object); var _local13:int; var _local14:int; var _local15 = (null as Object); var _local4 = ((_arg1 + _arg2) - 1); var _local5:int = _arg1; var _local6:int = _local4; if (_arg2 > 1){ _local7 = _arg1; _local8 = (_local7 + (_arg2 >> 1)); _local9 = ((_local7 + _arg2) - 1); _local10 = __get(_local7); _local11 = __get(_local8); _local12 = __get(_local9); _local14 = _arg3(_local10, _local12); if (_local14 < 0){ false; }; if (false){ _local13 = ((_arg3(_local11, _local12))<0) ? _local8 : _local9; } else { if (_arg3(_local11, _local10) < 0){ false; }; if (false){ _local13 = ((_local14)<0) ? _local7 : _local9; } else { _local13 = ((_arg3(_local12, _local10))<0) ? _local8 : _local7; }; }; _local15 = __get(_local13); __cpy(_local13, _arg1); while (_local5 < _local6) { while (if (_arg3(_local15, __get(_local6)) < 0){ false; }, false) { _local6--; }; if (_local6 != _local5){ __cpy(_local5, _local6); _local5++; }; while (if (_arg3(_local15, __get(_local5)) > 0){ false; }, false) { _local5++; }; if (_local6 != _local5){ __cpy(_local6, _local5); _local6--; }; }; __set(_local5, _local15); _quickSort(_arg1, (_local5 - _arg1), _arg3); _quickSort((_local5 + 1), (_local4 - _local5), _arg3); }; } public function _insertionSortComparable():void{ var _local3:int; var _local4 = (null as Object); var _local5:int; var _local6 = (null as Object); var _local1 = 1; var _local2:int = size(); while (_local1 < _local2) { _local1++; _local3 = _local1; _local4 = __get(_local3); Assert.assert(Std.is(_local4, Comparable), "element is not of type Comparable", {fileName:"Vector.hx", lineNumber:870, className:"de.polygonal.ds.Vector", methodName:"_insertionSortComparable"}); _local5 = _local3; while (_local5 > 0) { _local6 = __get((_local5 - 1)); Assert.assert(Std.is(_local6, Comparable), "element is not of type Comparable", {fileName:"Vector.hx", lineNumber:879, className:"de.polygonal.ds.Vector", methodName:"_insertionSortComparable"}); if (_local6.compare(_local4) > 0){ __set(_local5, _local6); _local5--; } else { break; }; }; __set(_local5, _local4); }; } public function _insertionSort(_arg1:Function):void{ var _local4:int; var _local5 = (null as Object); var _local6:int; var _local7 = (null as Object); var _local2 = 1; var _local3:int = size(); while (_local2 < _local3) { _local2++; _local4 = _local2; _local5 = __get(_local4); _local6 = _local4; while (_local6 > 0) { _local7 = __get((_local6 - 1)); if (_arg1(_local7, _local5) > 0){ __set(_local6, _local7); _local6--; } else { break; }; }; __set(_local6, _local5); }; } public function __set(_arg1:int, _arg2:Object):void{ _a[_arg1] = _arg2; } public function __get(_arg1:int):Object{ return (_a[_arg1]); } public function __cpy(_arg1:int, _arg2:int):void{ _a[_arg1] = _a[_arg2]; } } }//package de.polygonal.ds
Section 63
//ASCII (de.polygonal.gl.text.ASCII) package de.polygonal.gl.text { public class ASCII { public static var BACKSPACE:int; public static var TAB:int; public static var NEWLINE:int; public static var SPACE:int; public static var EXCLAM:int; public static var QUOTEDBL:int; public static var NUMBERSIGN:int; public static var DOLLAR:int; public static var PERCENT:int; public static var AMPERSAND:int; public static var QUOTESINGLE:int; public static var PARENLEFT:int; public static var PARENRIGHT:int; public static var ASTERISK:int; public static var PLUS:int; public static var COMMA:int; public static var HYPHEN:int; public static var PERIOD:int; public static var SLASH:int; public static var ZERO:int; public static var ONE:int; public static var TWO:int; public static var THREE:int; public static var FOUR:int; public static var FIVE:int; public static var SIX:int; public static var SEVEN:int; public static var EIGHT:int; public static var NINE:int; public static var COLON:int; public static var SEMICOLON:int; public static var LESS:int; public static var EQUAL:int; public static var GREATER:int; public static var QUESTION:int; public static var AT:int; public static var A:int; public static var B:int; public static var C:int; public static var D:int; public static var E:int; public static var F:int; public static var G:int; public static var H:int; public static var I:int; public static var J:int; public static var K:int; public static var L:int; public static var M:int; public static var N:int; public static var O:int; public static var P:int; public static var Q:int; public static var R:int; public static var S:int; public static var T:int; public static var U:int; public static var V:int; public static var W:int; public static var X:int; public static var Y:int; public static var Z:int; public static var BRACKETLEFT:int; public static var BACKSLASH:int; public static var BRACKETRIGHT:int; public static var CIRCUM:int; public static var UNDERSCORE:int; public static var GRAVE:int; public static var a:int; public static var b:int; public static var c:int; public static var d:int; public static var e:int; public static var f:int; public static var g:int; public static var h:int; public static var i:int; public static var j:int; public static var k:int; public static var l:int; public static var m:int; public static var n:int; public static var o:int; public static var p:int; public static var q:int; public static var r:int; public static var s:int; public static var t:int; public static var u:int; public static var v:int; public static var w:int; public static var x:int; public static var y:int; public static var z:int; public static var BRACELEFT:int; public static var BAR:int; public static var BRACERIGTH:int; public static var TILDE:int; public function ASCII():void{ } public static function isASCII(_arg1:int):Boolean{ if (_arg1 >= 0){ false; }; return (false); } public static function isDigit(_arg1:int):Boolean{ if (_arg1 >= 48){ false; }; return (false); } public static function isWhite(_arg1:int):Boolean{ return ((_arg1 <= 32)); } public static function isPrintable(_arg1:int):Boolean{ if (_arg1 >= 33){ false; }; return (false); } public static function isUpperCaseAlphabetic(_arg1:int):Boolean{ if (_arg1 >= 65){ false; }; return (false); } public static function isLowerCaseAlphabetic(_arg1:int):Boolean{ if (_arg1 >= 97){ false; }; return (false); } public static function isAlphabetic(_arg1:int):Boolean{ if (!ASCII.isUpperCaseAlphabetic(_arg1)){ true; }; return (true); } public static function isAlphaNumeric(_arg1:int):Boolean{ if (!ASCII.isDigit(_arg1)){ true; if (!ASCII.isUpperCaseAlphabetic(_arg1)){ true; }; }; return (true); } } ASCII.BACKSPACE = 8; ASCII.TAB = 9; ASCII.NEWLINE = 10; ASCII.SPACE = 32; ASCII.EXCLAM = 33; ASCII.QUOTEDBL = 34; ASCII.NUMBERSIGN = 35; ASCII.DOLLAR = 36; ASCII.PERCENT = 37; ASCII.AMPERSAND = 38; ASCII.QUOTESINGLE = 39; ASCII.PARENLEFT = 40; ASCII.PARENRIGHT = 41; ASCII.ASTERISK = 42; ASCII.PLUS = 43; ASCII.COMMA = 44; ASCII.HYPHEN = 45; ASCII.PERIOD = 46; ASCII.SLASH = 47; ASCII.ZERO = 48; ASCII.ONE = 49; ASCII.TWO = 50; ASCII.THREE = 51; ASCII.FOUR = 52; ASCII.FIVE = 53; ASCII.SIX = 54; ASCII.SEVEN = 55; ASCII.EIGHT = 56; ASCII.NINE = 57; ASCII.COLON = 58; ASCII.SEMICOLON = 59; ASCII.LESS = 60; ASCII.EQUAL = 61; ASCII.GREATER = 62; ASCII.QUESTION = 63; ASCII.AT = 64; ASCII.A = 65; ASCII.B = 66; ASCII.C = 67; ASCII.D = 68; ASCII.E = 69; ASCII.F = 70; ASCII.G = 71; ASCII.H = 72; ASCII.I = 73; ASCII.J = 74; ASCII.K = 75; ASCII.L = 76; ASCII.M = 77; ASCII.N = 78; ASCII.O = 79; ASCII.P = 80; ASCII.Q = 81; ASCII.R = 82; ASCII.S = 83; ASCII.T = 84; ASCII.U = 85; ASCII.V = 86; ASCII.W = 87; ASCII.X = 88; ASCII.Y = 89; ASCII.Z = 90; ASCII.BRACKETLEFT = 91; ASCII.BACKSLASH = 92; ASCII.BRACKETRIGHT = 93; ASCII.CIRCUM = 94; ASCII.UNDERSCORE = 95; ASCII.GRAVE = 96; ASCII.a = 97; ASCII.b = 98; ASCII.c = 99; ASCII.d = 100; ASCII.e = 101; ASCII.f = 102; ASCII.g = 103; ASCII.h = 104; ASCII.i = 105; ASCII.j = 106; ASCII.k = 107; ASCII.l = 108; ASCII.m = 109; ASCII.n = 110; ASCII.o = 111; ASCII.p = 112; ASCII.q = 113; ASCII.r = 114; ASCII.s = 115; ASCII.t = 116; ASCII.u = 117; ASCII.v = 118; ASCII.w = 119; ASCII.x = 120; ASCII.y = 121; ASCII.z = 122; ASCII.BRACELEFT = 123; ASCII.BAR = 124; ASCII.BRACERIGTH = 125; ASCII.TILDE = 126; }//package de.polygonal.gl.text
Section 64
//Boot (flash.Boot) package flash { import flash.display.*; import flash.utils.*; import flash.text.*; public dynamic class Boot extends MovieClip { public static var init:Function; public static var tf:TextField; public static var lines:Array; public static var lastError:Error; public static var skip_constructor:Boolean; public function Boot(_arg1:MovieClip=undefined):void{ var _local3:* = null; if (Boot.skip_constructor){ return; }; super(); _local3 = Array.prototype; _local3.copy = function (){ return (this.slice()); }; _local3.insert = function (_arg1, _arg2):void{ this.splice(_arg1, 0, _arg2); }; _local3.remove = function (_arg1):Boolean{ var _local2:int = this.indexOf(_arg1); if (_local2 == -1){ return (false); }; this.splice(_local2, 1); return (true); }; _local3.iterator = function ():Object{ var cur:int; var arr = this; return ({hasNext:function ():Boolean{ return ((cur < arr.length)); }, next:function (){ var _local1:int = cur; cur = (_local1 + 1); return (arr[_local1]); }}); }; _local3.setPropertyIsEnumerable("copy", false); _local3.setPropertyIsEnumerable("insert", false); _local3.setPropertyIsEnumerable("remove", false); _local3.setPropertyIsEnumerable("iterator", false); var cca:* = String.prototype.charCodeAt; String.prototype.charCodeAt = function (_arg1){ var _local2:* = cca.call(this, _arg1); if (isNaN(_local2)){ return (null); }; return (_local2); }; Boot.lines = []; var _local4:MovieClip = ((_arg1)==null) ? this : _arg1; Lib.current = _local4; try { if (_local4.stage != null){ false; }; if (false){ _local4.stage.align = "TOP_LEFT"; } else { null; }; } catch(#InvalidMultinameIndex#) { _local3 = !NULL!; }; if (Boot.init != null){ Boot.init(); }; } public static function enum_to_string(_arg1:Object):String{ if (_arg1.params == null){ return (_arg1.tag); }; return ((((_arg1.tag + "(") + _arg1.params.join(",")) + ")")); } public static function __instanceof(_arg1, _arg2):Boolean{ var _local4:* = null; try { if (_arg2 == Dynamic){ return (true); }; return ((_arg1 is _arg2)); } catch!ERROR! return (false); } public static function __clear_trace():void{ if (Boot.tf == null){ return; }; Lib.current.removeChild(Boot.tf); Boot.tf = null; Boot.lines = []; } public static function __set_trace_color(_arg1:uint):void{ Boot.getTrace().textColor = _arg1; } public static function getTrace():TextField{ var _local2 = (null as TextFormat); var _local1:MovieClip = Lib.current; if (Boot.tf == null){ Boot.tf = new TextField(); _local2 = Boot.tf.getTextFormat(); _local2.font = "Consolas"; Boot.tf.defaultTextFormat = _local2; Boot.tf.selectable = false; Boot.tf.width = ((_local1.stage)==null) ? 800 : _local1.stage.stageWidth; Boot.tf.autoSize = TextFieldAutoSize.LEFT; Boot.tf.mouseEnabled = false; }; _local1.addChild(Boot.tf); return (Boot.tf); } public static function __trace(_arg1, _arg2:Object):void{ var _local3:TextField = Boot.getTrace(); var _local4:String = ((_arg2)==null) ? "(null)" : ((_arg2.fileName + ":") + _arg2.lineNumber); Boot.lines = Boot.lines.concat(((_local4 + ": ") + Boot.__string_rec(_arg1, "")).split("\n")); _local3.text = Boot.lines.join("\n"); var _local5:Stage = Lib.current.stage; if (_local5 == null){ return; }; while (if (Boot.lines.length > 1){ false; }, false) { Boot.lines.shift(); _local3.text = Boot.lines.join("\n"); }; } public static function __string_rec(_arg1, _arg2:String):String{ var _local4 = (null as String); var _local5 = (null as Array); var _local6 = (null as Array); var _local7:int; var _local8:* = null; var _local9 = (null as String); var _local10:Boolean; var _local11:int; var _local12:int; var _local13 = (null as String); var _local3:String = getQualifiedClassName(_arg1); _local4 = _local3; if (_local4 == "Object"){ _local7 = 0; _local6 = []; _local8 = _arg1; for (/*?*/in _arg1) { _local6.push(//unresolved nextvalue or nextname); }; _local5 = _local6; _local9 = "{"; _local10 = true; _local7 = 0; _local11 = _local5.length; while (_local7 < _local11) { _local7++; _local12 = _local7; _local13 = _local5[_local12]; if (_local10){ _local10 = false; } else { _local9 = (_local9 + ","); }; _local9 = (_local9 + (((" " + _local13) + " : ") + Boot.__string_rec(_arg1[_local13], _arg2))); }; if (!_local10){ _local9 = (_local9 + " "); }; _local9 = (_local9 + "}"); return (_local9); } else { if (_local4 == "Array"){ _local9 = "["; _local10 = true; _local5 = _arg1; _local7 = 0; _local11 = _local5.length; while (_local7 < _local11) { _local7++; _local12 = _local7; if (_local10){ _local10 = false; } else { _local9 = (_local9 + ","); }; _local9 = (_local9 + Boot.__string_rec(_local5[_local12], _arg2)); }; return ((_local9 + "]")); } else { _local4 = typeof(_arg1); if (_local4 == "function"){ return ("<function>"); //unresolved jump }; }; }; return (new String(_arg1)); } public static function __unprotect__(_arg1:String):String{ return (_arg1); } } Boot.skip_constructor = false; ??getglobalscope .Boot.init = function ():void{ Math.NaN = Number.NaN; Math.NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY; Math.POSITIVE_INFINITY = Number.POSITIVE_INFINITY; Math.isFinite = function (_arg1:Number):Boolean{ return (isFinite(_arg1)); }; Math.isNaN = function (_arg1:Number):Boolean{ return (isNaN(_arg1)); }; null; }; }//package flash
Section 65
//Lib (flash.Lib) package flash { import flash.display.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class Lib { public static var current:MovieClip; public function Lib():void{ } public static function getTimer():int{ return (getTimer()); } public static function eval(_arg1:String){ var _local6:* = null; var _local8 = (null as String); var _local3:Array = _arg1.split("."); var _local4:Array = []; var _local5:* = null; while (_local3.length > 0) { try { _local5 = getDefinitionByName(_local3.join(".")); } catch(#InvalidMultinameIndex#) { if (( as Error)){ Boot.lastError = _local6; }; _local4.unshift(_local3.pop()); }; if (_local5 != null){ break; }; }; var _local7:int; while (_local7 < _local4.length) { _local8 = _local4[_local7]; _local7++; if (_local5 == null){ return (null); }; _local5 = _local5[_local8]; }; return (_local5); } public static function getURL(_arg1:URLRequest, _arg2:String=undefined):void{ var _local3:Function = navigateToURL; if (_arg2 == null){ _local3(_arg1); } else { _local3(_arg1, _arg2); }; } public static function fscommand(_arg1:String, _arg2:String=undefined):void{ fscommand(_arg1, ((_arg2)==null) ? "" : _arg2); } public static function trace(_arg1):void{ trace(_arg1); } public static function attach(_arg1:String):MovieClip{ var _local2:* = (getDefinitionByName(_arg1) as Class); return (new (_local2)); } public static function as(_arg1, _arg2:Class):Object{ return ((_arg1 as _arg2)); } } }//package flash
Section 66
//Log (haxe.Log) package haxe { public class Log { public static var trace:Function; public static var clear:Function; public static var setColor:Function; public function Log():void{ } } [OP_NEWCLASS ClassInfo:84 base:Object].trace = function (_arg1, _arg2:Object=undefined):void{ Boot.__trace(_arg1, _arg2); }; [OP_NEWCLASS ClassInfo:84 base:Object].clear = function ():void{ Boot.__clear_trace(); }; [OP_NEWCLASS ClassInfo:84 base:Object].setColor = function (_arg1:int):void{ Boot.__set_trace_color(_arg1); }; }//package haxe
Section 67
//answerCorrect (sfx.answerCorrect) package sfx { import flash.media.*; public dynamic class answerCorrect extends Sound { } }//package sfx
Section 68
//answerSelect (sfx.answerSelect) package sfx { import flash.media.*; public dynamic class answerSelect extends Sound { } }//package sfx
Section 69
//answerWrong (sfx.answerWrong) package sfx { import flash.media.*; public dynamic class answerWrong extends Sound { } }//package sfx
Section 70
//duello (sfx.duello) package sfx { import flash.media.*; public dynamic class duello extends Sound { } }//package sfx
Section 71
//duelloVictory (sfx.duelloVictory) package sfx { import flash.media.*; public dynamic class duelloVictory extends Sound { } }//package sfx
Section 72
//ghigliottina (sfx.ghigliottina) package sfx { import flash.media.*; public dynamic class ghigliottina extends Sound { } }//package sfx
Section 73
//ghigliottinaVictory (sfx.ghigliottinaVictory) package sfx { import flash.media.*; public dynamic class ghigliottinaVictory extends Sound { } }//package sfx
Section 74
//goldBar (sfx.goldBar) package sfx { import flash.media.*; public dynamic class goldBar extends Sound { } }//package sfx
Section 75
//intro (sfx.intro) package sfx { import flash.media.*; public dynamic class intro extends Sound { } }//package sfx
Section 76
//scoreUpdate (sfx.scoreUpdate) package sfx { import flash.media.*; public dynamic class scoreUpdate extends Sound { } }//package sfx
Section 77
//showQuestion (sfx.showQuestion) package sfx { import flash.media.*; public dynamic class showQuestion extends Sound { } }//package sfx
Section 78
//showWord (sfx.showWord) package sfx { import flash.media.*; public dynamic class showWord extends Sound { } }//package sfx
Section 79
//tileReveal (sfx.tileReveal) package sfx { import flash.media.*; public dynamic class tileReveal extends Sound { } }//package sfx
Section 80
//tileSelect (sfx.tileSelect) package sfx { import flash.media.*; public dynamic class tileSelect extends Sound { } }//package sfx
Section 81
//timelimitHit (sfx.timelimitHit) package sfx { import flash.media.*; public dynamic class timelimitHit extends Sound { } }//package sfx
Section 82
//valueReveal (sfx.valueReveal) package sfx { import flash.media.*; public dynamic class valueReveal extends Sound { } }//package sfx
Section 83
//wordCorrect (sfx.wordCorrect) package sfx { import flash.media.*; public dynamic class wordCorrect extends Sound { } }//package sfx
Section 84
//wordWrong (sfx.wordWrong) package sfx { import flash.media.*; public dynamic class wordWrong extends Sound { } }//package sfx
Section 85
//Dynamic (Dynamic) package { public class Dynamic { public function Dynamic():void{ } } }//package
Section 86
//InputLetter (InputLetter) package { import flash.display.*; public dynamic class InputLetter extends MovieClip { public var line:MovieClip; public var clip:MovieClip; } }//package
Section 87
//MainGraphics (MainGraphics) package { import flash.display.*; import flash.text.*; public dynamic class MainGraphics extends MovieClip { public var quitButton:MovieClip; public var timeBar:MovieClip; public var soundButton:MovieClip; public var ghigliottina:MovieClip; public var clock:TextField; public var introVideo:MovieClip; public var musicButton:MovieClip; public var timeBonus:MovieClip; public var duello:MovieClip; public var infoPanel:MovieClip; } }//package
Section 88
//Reflect (Reflect) package { public class Reflect { public function Reflect():void{ } public static function hasField(_arg1, _arg2:String):Boolean{ return (_arg1.hasOwnProperty(_arg2)); } public static function field(_arg1, _arg2:String){ return (((_arg1)==null) ? null : _arg1[_arg2]); } public static function setField(_arg1, _arg2:String, _arg3):void{ _arg1[_arg2] = _arg3; } public static function callMethod(_arg1, _arg2, _arg3:Array){ return (_arg2.apply(_arg1, _arg3)); } public static function fields(_arg1):Array{ if (_arg1 == null){ return ([]); }; var _local4:int; var _local3:Array = []; var _local5:* = _arg1; for (/*?*/in _arg1) { _local3.push(//unresolved nextvalue or nextname); }; var _local2:Array = _local3; _local4 = 0; while (_local4 < _local2.length) { if (!_arg1.hasOwnProperty(_local2[_local4])){ _local2.splice(_local4, 1); } else { _local4++; }; }; return (_local2); } public static function isFunction(_arg1):Boolean{ return ((typeof(_arg1) == "function")); } public static function compare(_arg1:Object, _arg2:Object):int{ return (((_arg1)==_arg2) ? 0 : ((_arg1)>_arg2) ? 1 : -1); } public static function compareMethods(_arg1, _arg2):Boolean{ if (_arg1 == _arg2){ return (true); }; if (!!(Reflect.isFunction(_arg1))){ true; }; if (true){ return (false); }; return (false); } public static function isObject(_arg1):Boolean{ var _local4:* = null; if (_arg1 == null){ return (false); }; var _local3:String = typeof(_arg1); if (_local3 == "object"){ try { if (_arg1.__enum__ == true){ return (false); }; } catch(#InvalidMultinameIndex#) { _local4 = !NULL!; }; return (true); }; return ((_local3 == "string")); } public static function deleteField(_arg1, _arg2:String):Boolean{ if (_arg1.hasOwnProperty(_arg2) != true){ return (false); }; delete _arg1[_arg2]; return (true); } public static function copy(_arg1:Object):Object{ var _local5 = (null as String); var _local2:* = {}; var _local3:int; var _local4:Array = Reflect.fields(_arg1); while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; Reflect.setField(_local2, _local5, Reflect.field(_arg1, _local5)); }; return (_local2); } public static function makeVarArgs(_arg1:Function){ var f = _arg1; return (function (... _args){ return (f(_args)); }); } } }//package
Section 89
//Std (Std) package { import flash.*; public class Std { public function Std():void{ } public static function is(_arg1, _arg2):Boolean{ return (Boot.__instanceof(_arg1, _arg2)); } public static function string(_arg1):String{ return (Boot.__string_rec(_arg1, "")); } public static function _int(_arg1:Number):int{ return (_arg1); } public static function parseInt(_arg1:String):Object{ var _local2:* = parseInt(_arg1); if (isNaN(_local2)){ return (null); }; return (_local2); } public static function parseFloat(_arg1:String):Number{ return (parseFloat(_arg1)); } public static function random(_arg1:int):int{ return (Math.floor((Math.random() * _arg1))); } } }//package
Section 90
//Type (Type) package { import flash.utils.*; import flash.*; public class Type { public function Type():void{ } public static function getClass(_arg1:Object):Class{ var _local2:String = getQualifiedClassName(_arg1); if (_local2 != "null"){ true; if (_local2 != "Object"){ true; if (_local2 != "int"){ true; if (_local2 != "Number"){ true; }; }; }; }; if (true){ return (null); }; if (_arg1.hasOwnProperty("prototype")){ return (null); }; var _local3:* = (getDefinitionByName(_local2) as Class); if (_local3.__isenum){ return (null); }; return (_local3); } public static function getEnum(_arg1):Class{ var _local2:String = getQualifiedClassName(_arg1); if (_local2 != "null"){ true; }; if (true){ return (null); }; if (_arg1.hasOwnProperty("prototype")){ return (null); }; var _local3:* = (getDefinitionByName(_local2) as Class); if (!_local3.__isenum){ return (null); }; return (_local3); } public static function getSuperClass(_arg1:Class):Class{ var _local2:String = getQualifiedSuperclassName(_arg1); if (_local2 == "Object"){ return (null); }; return ((getDefinitionByName(_local2) as Class)); } public static function getClassName(_arg1:Class):String{ if (_arg1 == null){ return (null); }; var _local2:String = getQualifiedClassName(_arg1); var _local3:String = _local2; if (_local3 == "int"){ return ("Int"); } else { if (_local3 == "Number"){ return ("Float"); } else { if (_local3 == "Boolean"){ return ("Bool"); //unresolved jump }; }; }; return (_local2.split("::").join(".")); } public static function getEnumName(_arg1:Class):String{ return (Type.getClassName(_arg1)); } public static function resolveClass(_arg1:String):Class{ var _local3 = (null as Class); var _local4:* = null; var _local5 = (null as String); try { _local3 = (getDefinitionByName(_arg1) as Class); if (_local3.__isenum){ return (null); }; return (_local3); } catch(#InvalidMultinameIndex#) { _local4 = !NULL!; _local5 = _arg1; if (_local5 == "Int"){ return (int); } else { if (_local5 == "Float"){ return (Number); //unresolved jump }; }; return (null); }; if (_local3 != null){ true; }; if (true){ return (null); }; return (_local3); } public static function resolveEnum(_arg1:String):Class{ var _local3:* = null; var _local4:* = null; try { _local3 = getDefinitionByName(_arg1); if (!_local3.__isenum){ return (null); }; return (_local3); } catch(#InvalidMultinameIndex#) { _local4 = !NULL!; if (_arg1 == "Bool"){ return (Boolean); }; return (null); }; if (_local3 != null){ true; }; if (true){ return (null); }; return (_local3); } public static function createInstance(_arg1:Class, _arg2:Array):Object{ //unexpected switch Boot.lastError = new Error(); throw ("Too many arguments"); //unresolved jump //unresolved jump //unresolved jump //unresolved jump //unresolved jump //unresolved jump //unresolved jump //unresolved jump //unresolved jump //unresolved jump //unresolved jump //unresolved jump //unresolved jump //unresolved jump //unresolved jump return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7], _arg2[8], _arg2[9], _arg2[10], _arg2[11], _arg2[12], _arg2[13])); } public static function createEmptyInstance(_arg1:Class):Object{ var _local3 = (null as Object); var _local4:* = null; try { Boot.skip_constructor = true; _local3 = new (_arg1); Boot.skip_constructor = false; return (_local3); } catch(#InvalidMultinameIndex#) { _local4 = !NULL!; Boot.skip_constructor = false; Boot.lastError = new Error(); throw (_local4); }; return (null); } public static function createEnum(_arg1:Class, _arg2:String, _arg3:Array=undefined):Object{ var _local4:Object = Reflect.field(_arg1, _arg2); if (_local4 == null){ Boot.lastError = new Error(); throw (("No such constructor " + _arg2)); }; if (Reflect.isFunction(_local4)){ if (_arg3 == null){ Boot.lastError = new Error(); throw ((("Constructor " + _arg2) + " need parameters")); }; return (Reflect.callMethod(_arg1, _local4, _arg3)); }; if (_arg3 != null){ false; }; if (false){ Boot.lastError = new Error(); throw ((("Constructor " + _arg2) + " does not need parameters")); }; return (_local4); } public static function createEnumIndex(_arg1:Class, _arg2:int, _arg3:Array=undefined):Object{ var _local4:String = Type.getEnumConstructs(_arg1)[_arg2]; if (_local4 == null){ Boot.lastError = new Error(); throw ((_arg2 + " is not a valid enum constructor index")); }; return (Type.createEnum(_arg1, _local4, _arg3)); } public static function describe(_arg1, _arg2:Boolean):Array{ var _local8:int; var _local3:Array = []; var _local4:XML = describeType(_arg1); if (_arg2){ _local4 = _local4.factory[0]; }; var _local5:XMLList = _local4.child("method"); var _local6:int; var _local7:int = _local5.length(); while (_local6 < _local7) { _local6++; _local8 = _local6; _local3.push(Std.string(_local5[_local8].attribute("name"))); }; var _local9:XMLList = _local4.child("variable"); _local6 = 0; _local7 = _local9.length(); while (_local6 < _local7) { _local6++; _local8 = _local6; _local3.push(Std.string(_local9[_local8].attribute("name"))); }; var _local10:XMLList = _local4.child("accessor"); _local6 = 0; _local7 = _local10.length(); while (_local6 < _local7) { _local6++; _local8 = _local6; _local3.push(Std.string(_local10[_local8].attribute("name"))); }; return (_local3); } public static function getInstanceFields(_arg1:Class):Array{ return (Type.describe(_arg1, true)); } public static function getClassFields(_arg1:Class):Array{ var _local2:Array = Type.describe(_arg1, false); _local2.remove("__construct__"); _local2.remove("prototype"); return (_local2); } public static function getEnumConstructs(_arg1:Class):Array{ return (_arg1.__constructs__); } public static function typeof(_arg1):ValueType{ var _local5:* = null; var _local6:* = null; var _local3:String = getQualifiedClassName(_arg1); var _local4:String = _local3; if (_local4 == "null"){ return (ValueType.TNull); } else { if (_local4 == "void"){ return (ValueType.TNull); } else { if (_local4 == "int"){ return (ValueType.TInt); } else { if (_local4 == "Number"){ return (ValueType.TFloat); } else { if (_local4 == "Boolean"){ return (ValueType.TBool); } else { if (_local4 == "Object"){ return (ValueType.TObject); } else { _local5 = null; try { _local5 = getDefinitionByName(_local3); if (_arg1.hasOwnProperty("prototype")){ return (ValueType.TObject); }; if (_local5.__isenum){ return (ValueType.TEnum(_local5)); }; return (ValueType.TClass(_local5)); } catch(#InvalidMultinameIndex#) { if (( as Error)){ Boot.lastError = _local6; }; if (_local3 != "builtin.as$0::MethodClosure"){ true; }; if (true){ return (ValueType.TFunction); }; return (((_local5)==null) ? ValueType.TFunction : ValueType.TClass(_local5)); }; }; }; }; }; }; }; return (null); } public static function enumEq(_arg1:Object, _arg2:Object):Boolean{ var _local4 = (null as Array); var _local5 = (null as Array); var _local6:int; var _local7:int; var _local8:int; var _local9:* = null; if (_arg1 == _arg2){ return (true); }; try { if (_arg1.index != _arg2.index){ return (false); }; _local4 = _arg1.params; _local5 = _arg2.params; _local6 = 0; _local7 = _local4.length; while (_local6 < _local7) { _local6++; _local8 = _local6; if (!Type.enumEq(_local4[_local8], _local5[_local8])){ return (false); }; }; } catch(#InvalidMultinameIndex#) { _local9 = !NULL!; return (false); }; return (true); } public static function enumConstructor(_arg1):String{ return (_arg1.tag); } public static function enumParameters(_arg1):Array{ return (((_arg1.params)==null) ? [] : _arg1.params); } public static function enumIndex(_arg1):int{ return (_arg1.index); } } }//package
Section 91
//ValueType (ValueType) package { import flash.*; public final class ValueType { public const __enum__:Boolean = true; public var tag:String; public var index:int; public var params:Array; public static const __isenum:Boolean = true; public static var __constructs__; public static var TUnknown:ValueType; public static var TObject:ValueType; public static var TNull:ValueType; public static var TInt:ValueType; public static var TFunction:ValueType; public static var TFloat:ValueType; public static var TBool:ValueType; public function ValueType(_arg1:String, _arg2:int, _arg3):void{ tag = _arg1; index = _arg2; params = _arg3; } final public function toString():String{ return (Boot.enum_to_string(this)); } public static function TEnum(_arg1:Class):ValueType{ return (new ValueType("TEnum", 7, [_arg1])); } public static function TClass(_arg1:Class):ValueType{ return (new ValueType("TClass", 6, [_arg1])); } } var _local1 = [OP_NEWCLASS ClassInfo:77 base:Object]; ??getglobalscope .ValueType = _local1; var _slot1 = new ValueType("TBool", 3, null); var _slot4 = new ValueType("TFloat", 2, null); var _slot5 = new ValueType("TFunction", 5, null); var _slot6 = new ValueType("TInt", 1, null); var _slot7 = new ValueType("TNull", 0, null); var _slot8 = new ValueType("TObject", 4, null); var _slot9 = new ValueType("TUnknown", 8, null); _local1.__constructs__ = ["TNull", "TInt", "TFloat", "TBool", "TObject", "TFunction", "TClass", "TEnum", "TUnknown"]; }//package
Section 92
//Void (Void) package { import flash.*; public final class Void { public const __enum__:Boolean = true; public var tag:String; public var index:int; public var params:Array; public static const __isenum:Boolean = true; public static var __constructs__; public function Void(_arg1:String, _arg2:int, _arg3):void{ tag = _arg1; index = _arg2; params = _arg3; } final public function toString():String{ return (Boot.enum_to_string(this)); } } var _local1 = [OP_NEWCLASS ClassInfo:32 base:Object]; ??getglobalscope .Void = _local1; _local1.__constructs__ = []; }//package

Library Items

Symbol 1 Sound {sfx.wordCorrect} [sfx.wordCorrect]
Symbol 2 Sound {sfx.wordWrong} [sfx.wordWrong]
Symbol 3 Sound {sfx.answerSelect} [sfx.answerSelect]
Symbol 4 Sound {sfx.answerCorrect} [sfx.answerCorrect]
Symbol 5 Sound {sfx.ghigliottina} [sfx.ghigliottina]
Symbol 6 Sound {sfx.ghigliottinaVictory} [sfx.ghigliottinaVictory]
Symbol 7 Sound {sfx.showQuestion} [sfx.showQuestion]
Symbol 8 Sound {sfx.showWord} [sfx.showWord]
Symbol 9 Sound {sfx.timelimitHit} [sfx.timelimitHit]
Symbol 10 BitmapUsed by:11
Symbol 11 GraphicUses:10Used by:301
Symbol 12 GraphicUsed by:16
Symbol 13 BitmapUsed by:14
Symbol 14 GraphicUses:13Used by:15
Symbol 15 MovieClipUses:14Used by:16
Symbol 16 MovieClipUses:12 15Used by:301
Symbol 17 FontUsed by:18 174 181 204 263 281 287 293 295 306 308 333 335 337 339 344 345 346 347 348 350 352 377 411
Symbol 18 EditableTextUses:17Used by:301
Symbol 19 BitmapUsed by:20
Symbol 20 GraphicUses:19Used by:21
Symbol 21 MovieClipUses:20Used by:301
Symbol 22 GraphicUsed by:257 301
Symbol 23 BitmapUsed by:24
Symbol 24 GraphicUses:23Used by:148
Symbol 25 BitmapUsed by:26
Symbol 26 GraphicUses:25Used by:148
Symbol 27 BitmapUsed by:28
Symbol 28 GraphicUses:27Used by:148
Symbol 29 BitmapUsed by:30
Symbol 30 GraphicUses:29Used by:148
Symbol 31 BitmapUsed by:32
Symbol 32 GraphicUses:31Used by:148
Symbol 33 BitmapUsed by:34
Symbol 34 GraphicUses:33Used by:148
Symbol 35 BitmapUsed by:36
Symbol 36 GraphicUses:35Used by:148
Symbol 37 BitmapUsed by:38
Symbol 38 GraphicUses:37Used by:148
Symbol 39 BitmapUsed by:40
Symbol 40 GraphicUses:39Used by:148
Symbol 41 BitmapUsed by:42
Symbol 42 GraphicUses:41Used by:148
Symbol 43 BitmapUsed by:44
Symbol 44 GraphicUses:43Used by:148
Symbol 45 BitmapUsed by:46
Symbol 46 GraphicUses:45Used by:148
Symbol 47 BitmapUsed by:48
Symbol 48 GraphicUses:47Used by:148
Symbol 49 BitmapUsed by:50
Symbol 50 GraphicUses:49Used by:148
Symbol 51 BitmapUsed by:52
Symbol 52 GraphicUses:51Used by:148
Symbol 53 BitmapUsed by:54
Symbol 54 GraphicUses:53Used by:148
Symbol 55 BitmapUsed by:56
Symbol 56 GraphicUses:55Used by:148
Symbol 57 BitmapUsed by:58
Symbol 58 GraphicUses:57Used by:148
Symbol 59 BitmapUsed by:60
Symbol 60 GraphicUses:59Used by:148
Symbol 61 BitmapUsed by:62
Symbol 62 GraphicUses:61Used by:148
Symbol 63 BitmapUsed by:64
Symbol 64 GraphicUses:63Used by:148
Symbol 65 BitmapUsed by:66
Symbol 66 GraphicUses:65Used by:148
Symbol 67 BitmapUsed by:68
Symbol 68 GraphicUses:67Used by:148
Symbol 69 BitmapUsed by:70
Symbol 70 GraphicUses:69Used by:148
Symbol 71 BitmapUsed by:72
Symbol 72 GraphicUses:71Used by:148
Symbol 73 BitmapUsed by:74
Symbol 74 GraphicUses:73Used by:148
Symbol 75 BitmapUsed by:76
Symbol 76 GraphicUses:75Used by:148
Symbol 77 BitmapUsed by:78
Symbol 78 GraphicUses:77Used by:79
Symbol 79 MovieClipUses:78Used by:148
Symbol 80 BitmapUsed by:81
Symbol 81 GraphicUses:80Used by:148
Symbol 82 BitmapUsed by:83
Symbol 83 GraphicUses:82Used by:148
Symbol 84 BitmapUsed by:85
Symbol 85 GraphicUses:84Used by:148
Symbol 86 BitmapUsed by:87
Symbol 87 GraphicUses:86Used by:148
Symbol 88 BitmapUsed by:89
Symbol 89 GraphicUses:88Used by:148
Symbol 90 BitmapUsed by:91
Symbol 91 GraphicUses:90Used by:148
Symbol 92 BitmapUsed by:93
Symbol 93 GraphicUses:92Used by:148
Symbol 94 BitmapUsed by:95
Symbol 95 GraphicUses:94Used by:148
Symbol 96 BitmapUsed by:97
Symbol 97 GraphicUses:96Used by:148
Symbol 98 BitmapUsed by:99
Symbol 99 GraphicUses:98Used by:148
Symbol 100 BitmapUsed by:101
Symbol 101 GraphicUses:100Used by:148
Symbol 102 BitmapUsed by:103
Symbol 103 GraphicUses:102Used by:148
Symbol 104 BitmapUsed by:105
Symbol 105 GraphicUses:104Used by:148
Symbol 106 BitmapUsed by:107
Symbol 107 GraphicUses:106Used by:148
Symbol 108 BitmapUsed by:109
Symbol 109 GraphicUses:108Used by:148
Symbol 110 BitmapUsed by:111
Symbol 111 GraphicUses:110Used by:148
Symbol 112 BitmapUsed by:113
Symbol 113 GraphicUses:112Used by:148
Symbol 114 BitmapUsed by:115
Symbol 115 GraphicUses:114Used by:148
Symbol 116 BitmapUsed by:117
Symbol 117 GraphicUses:116Used by:148
Symbol 118 BitmapUsed by:119
Symbol 119 GraphicUses:118Used by:148
Symbol 120 BitmapUsed by:121
Symbol 121 GraphicUses:120Used by:148
Symbol 122 BitmapUsed by:123
Symbol 123 GraphicUses:122Used by:148
Symbol 124 BitmapUsed by:125
Symbol 125 GraphicUses:124Used by:148
Symbol 126 BitmapUsed by:127
Symbol 127 GraphicUses:126Used by:148
Symbol 128 BitmapUsed by:129
Symbol 129 GraphicUses:128Used by:148
Symbol 130 BitmapUsed by:131
Symbol 131 GraphicUses:130Used by:148
Symbol 132 BitmapUsed by:133
Symbol 133 GraphicUses:132Used by:148
Symbol 134 BitmapUsed by:135
Symbol 135 GraphicUses:134Used by:148
Symbol 136 BitmapUsed by:137
Symbol 137 GraphicUses:136Used by:148
Symbol 138 BitmapUsed by:139
Symbol 139 GraphicUses:138Used by:148
Symbol 140 BitmapUsed by:141
Symbol 141 GraphicUses:140Used by:148
Symbol 142 BitmapUsed by:143
Symbol 143 GraphicUses:142Used by:148
Symbol 144 BitmapUsed by:145
Symbol 145 GraphicUses:144Used by:148
Symbol 146 BitmapUsed by:147
Symbol 147 GraphicUses:146Used by:148
Symbol 148 MovieClipUses:24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147Used by:301
Symbol 149 BitmapUsed by:150
Symbol 150 GraphicUses:149Used by:151
Symbol 151 MovieClipUses:150Used by:193
Symbol 152 BitmapUsed by:153
Symbol 153 GraphicUses:152Used by:173
Symbol 154 BitmapUsed by:155
Symbol 155 GraphicUses:154Used by:173
Symbol 156 BitmapUsed by:157
Symbol 157 GraphicUses:156Used by:173
Symbol 158 BitmapUsed by:159
Symbol 159 GraphicUses:158Used by:173
Symbol 160 BitmapUsed by:161
Symbol 161 GraphicUses:160Used by:173
Symbol 162 BitmapUsed by:163
Symbol 163 GraphicUses:162Used by:173
Symbol 164 BitmapUsed by:165
Symbol 165 GraphicUses:164Used by:173
Symbol 166 BitmapUsed by:167
Symbol 167 GraphicUses:166Used by:173
Symbol 168 BitmapUsed by:169
Symbol 169 GraphicUses:168Used by:173
Symbol 170 BitmapUsed by:171
Symbol 171 GraphicUses:170Used by:172
Symbol 172 MovieClipUses:171Used by:173
Symbol 173 MovieClipUses:153 155 157 159 161 163 165 167 169 172Used by:193 200 209 216 226 233 240 247
Symbol 174 EditableTextUses:17Used by:175
Symbol 175 MovieClipUses:174Used by:193 200 226 233
Symbol 176 GraphicUsed by:177 365
Symbol 177 MovieClipUses:176Used by:193 200 209 216 226 233 240 247
Symbol 178 FontUsed by:179 250 255 313 322 370
Symbol 179 EditableTextUses:178Used by:180
Symbol 180 MovieClipUses:179Used by:193 200 209 216 226 233 240 247
Symbol 181 EditableTextUses:17Used by:182
Symbol 182 MovieClipUses:181Used by:193 200 209 216 226 233 240 247
Symbol 183 BitmapUsed by:184
Symbol 184 GraphicUses:183Used by:185
Symbol 185 MovieClipUses:184Used by:189
Symbol 186 BitmapUsed by:187
Symbol 187 GraphicUses:186Used by:188
Symbol 188 MovieClipUses:187Used by:189
Symbol 189 MovieClipUses:185 188Used by:193 200 209 216 226 233 240 247
Symbol 190 BitmapUsed by:191
Symbol 191 GraphicUses:190Used by:192
Symbol 192 MovieClipUses:191Used by:193
Symbol 193 MovieClipUses:151 173 175 177 180 182 189 192Used by:301
Symbol 194 BitmapUsed by:195
Symbol 195 GraphicUses:194Used by:196
Symbol 196 MovieClipUses:195Used by:200
Symbol 197 BitmapUsed by:198
Symbol 198 GraphicUses:197Used by:199
Symbol 199 MovieClipUses:198Used by:200
Symbol 200 MovieClipUses:196 173 175 177 180 182 189 199Used by:301
Symbol 201 BitmapUsed by:202
Symbol 202 GraphicUses:201Used by:203
Symbol 203 MovieClipUses:202Used by:209
Symbol 204 EditableTextUses:17Used by:205
Symbol 205 MovieClipUses:204Used by:209 216 240 247
Symbol 206 BitmapUsed by:207
Symbol 207 GraphicUses:206Used by:208
Symbol 208 MovieClipUses:207Used by:209
Symbol 209 MovieClipUses:203 173 205 177 180 182 189 208Used by:301
Symbol 210 BitmapUsed by:211
Symbol 211 GraphicUses:210Used by:212
Symbol 212 MovieClipUses:211Used by:216
Symbol 213 BitmapUsed by:214
Symbol 214 GraphicUses:213Used by:215
Symbol 215 MovieClipUses:214Used by:216
Symbol 216 MovieClipUses:212 173 205 177 180 182 189 215Used by:301
Symbol 217 BitmapUsed by:218
Symbol 218 GraphicUses:217Used by:219
Symbol 219 MovieClipUses:218Used by:301
Symbol 220 BitmapUsed by:221
Symbol 221 GraphicUses:220Used by:222
Symbol 222 MovieClipUses:221Used by:226
Symbol 223 BitmapUsed by:224
Symbol 224 GraphicUses:223Used by:225
Symbol 225 MovieClipUses:224Used by:226
Symbol 226 MovieClipUses:222 173 175 177 180 182 189 225Used by:301
Symbol 227 BitmapUsed by:228
Symbol 228 GraphicUses:227Used by:229
Symbol 229 MovieClipUses:228Used by:233
Symbol 230 BitmapUsed by:231
Symbol 231 GraphicUses:230Used by:232
Symbol 232 MovieClipUses:231Used by:233
Symbol 233 MovieClipUses:229 173 175 177 180 182 189 232Used by:301
Symbol 234 BitmapUsed by:235
Symbol 235 GraphicUses:234Used by:236
Symbol 236 MovieClipUses:235Used by:240
Symbol 237 BitmapUsed by:238
Symbol 238 GraphicUses:237Used by:239
Symbol 239 MovieClipUses:238Used by:240
Symbol 240 MovieClipUses:236 173 205 177 180 182 189 239Used by:301
Symbol 241 BitmapUsed by:242
Symbol 242 GraphicUses:241Used by:243
Symbol 243 MovieClipUses:242Used by:247
Symbol 244 BitmapUsed by:245
Symbol 245 GraphicUses:244Used by:246
Symbol 246 MovieClipUses:245Used by:247
Symbol 247 MovieClipUses:243 173 205 177 180 182 189 246Used by:301
Symbol 248 BitmapUsed by:249
Symbol 249 GraphicUses:248Used by:251
Symbol 250 EditableTextUses:178Used by:251
Symbol 251 MovieClipUses:249 250Used by:301
Symbol 252 BitmapUsed by:253
Symbol 253 GraphicUses:252Used by:254
Symbol 254 MovieClipUses:253Used by:257
Symbol 255 EditableTextUses:178Used by:256
Symbol 256 MovieClipUses:255Used by:257
Symbol 257 MovieClipUses:22 254 256Used by:301
Symbol 258 BitmapUsed by:259
Symbol 259 GraphicUses:258Used by:301
Symbol 260 BitmapUsed by:261
Symbol 261 GraphicUses:260Used by:262
Symbol 262 MovieClipUses:261Used by:277 292
Symbol 263 EditableTextUses:17Used by:264
Symbol 264 MovieClipUses:263Used by:277
Symbol 265 BitmapUsed by:266
Symbol 266 GraphicUses:265Used by:267
Symbol 267 MovieClipUses:266Used by:277
Symbol 268 BitmapUsed by:269
Symbol 269 GraphicUses:268Used by:270
Symbol 270 MovieClipUses:269Used by:277
Symbol 271 BitmapUsed by:272
Symbol 272 GraphicUses:271Used by:273
Symbol 273 MovieClipUses:272Used by:277
Symbol 274 BitmapUsed by:275
Symbol 275 GraphicUses:274Used by:276
Symbol 276 MovieClipUses:275Used by:277
Symbol 277 MovieClipUses:262 264 267 270 273 276Used by:301
Symbol 278 BitmapUsed by:279
Symbol 279 GraphicUses:278Used by:280
Symbol 280 MovieClipUses:279Used by:286
Symbol 281 EditableTextUses:17Used by:282
Symbol 282 MovieClipUses:281Used by:286
Symbol 283 BitmapUsed by:284
Symbol 284 GraphicUses:283Used by:285
Symbol 285 MovieClipUses:284Used by:286
Symbol 286 MovieClipUses:280 282 285Used by:301
Symbol 287 EditableTextUses:17Used by:288
Symbol 288 MovieClipUses:287Used by:292 300
Symbol 289 BitmapUsed by:290
Symbol 290 GraphicUses:289Used by:291
Symbol 291 MovieClipUses:290Used by:292
Symbol 292 MovieClipUses:262 288 291Used by:301
Symbol 293 EditableTextUses:17Used by:294
Symbol 294 MovieClipUses:293Used by:300
Symbol 295 EditableTextUses:17Used by:296
Symbol 296 MovieClipUses:295Used by:300
Symbol 297 BitmapUsed by:298
Symbol 298 GraphicUses:297Used by:299
Symbol 299 MovieClipUses:298Used by:300 365
Symbol 300 MovieClipUses:294 296 299 288Used by:301
Symbol 301 MovieClipUses:11 16 18 21 22 148 193 200 209 216 219 226 233 240 247 251 257 259 277 286 292 300Used by:399
Symbol 302 BitmapUsed by:303
Symbol 303 GraphicUses:302Used by:332
Symbol 304 GraphicUsed by:305
Symbol 305 MovieClipUses:304Used by:309
Symbol 306 EditableTextUses:17Used by:307
Symbol 307 MovieClipUses:306Used by:309
Symbol 308 EditableTextUses:17Used by:309
Symbol 309 MovieClipUses:305 307 308Used by:332
Symbol 310 BitmapUsed by:311
Symbol 311 GraphicUses:310Used by:312
Symbol 312 MovieClipUses:311Used by:318
Symbol 313 EditableTextUses:178Used by:314
Symbol 314 MovieClipUses:313Used by:318
Symbol 315 BitmapUsed by:316
Symbol 316 GraphicUses:315Used by:317
Symbol 317 MovieClipUses:316Used by:318
Symbol 318 MovieClipUses:312 314 317Used by:332
Symbol 319 BitmapUsed by:320
Symbol 320 GraphicUses:319Used by:321
Symbol 321 MovieClipUses:320Used by:324
Symbol 322 EditableTextUses:178Used by:323
Symbol 323 MovieClipUses:322Used by:324 331
Symbol 324 MovieClipUses:321 323Used by:332
Symbol 325 BitmapUsed by:326
Symbol 326 GraphicUses:325Used by:327
Symbol 327 MovieClipUses:326Used by:331
Symbol 328 BitmapUsed by:329
Symbol 329 GraphicUses:328Used by:330
Symbol 330 MovieClipUses:329Used by:331
Symbol 331 MovieClipUses:327 323 330Used by:332
Symbol 332 MovieClipUses:303 309 318 324 331Used by:399
Symbol 333 EditableTextUses:17Used by:334
Symbol 334 MovieClipUses:333Used by:365
Symbol 335 EditableTextUses:17Used by:336
Symbol 336 MovieClipUses:335Used by:365
Symbol 337 EditableTextUses:17Used by:338
Symbol 338 MovieClipUses:337Used by:365
Symbol 339 EditableTextUses:17Used by:340
Symbol 340 MovieClipUses:339Used by:365
Symbol 341 BitmapUsed by:342
Symbol 342 GraphicUses:341Used by:343
Symbol 343 MovieClipUses:342Used by:365
Symbol 344 EditableTextUses:17Used by:349
Symbol 345 EditableTextUses:17Used by:349
Symbol 346 EditableTextUses:17Used by:349
Symbol 347 EditableTextUses:17Used by:349
Symbol 348 EditableTextUses:17Used by:349
Symbol 349 MovieClipUses:344 345 346 347 348Used by:365
Symbol 350 EditableTextUses:17Used by:351
Symbol 351 MovieClipUses:350Used by:365
Symbol 352 EditableTextUses:17Used by:353
Symbol 353 MovieClipUses:352Used by:365
Symbol 354 GraphicUsed by:355
Symbol 355 MovieClipUses:354Used by:365
Symbol 356 BitmapUsed by:357
Symbol 357 GraphicUses:356Used by:358
Symbol 358 MovieClipUses:357Used by:365
Symbol 359 BitmapUsed by:360
Symbol 360 GraphicUses:359Used by:361
Symbol 361 MovieClipUses:360Used by:365
Symbol 362 BitmapUsed by:363
Symbol 363 GraphicUses:362Used by:364
Symbol 364 MovieClipUses:363Used by:365
Symbol 365 MovieClipUses:176 334 336 338 340 343 299 349 351 353 355 358 361 364Used by:399
Symbol 366 GraphicUsed by:369
Symbol 367 GraphicUsed by:368
Symbol 368 MovieClipUses:367Used by:369
Symbol 369 MovieClipUses:366 368Used by:399
Symbol 370 EditableTextUses:178Used by:371
Symbol 371 MovieClipUses:370Used by:375
Symbol 372 BitmapUsed by:373
Symbol 373 GraphicUses:372Used by:374
Symbol 374 MovieClipUses:373Used by:375
Symbol 375 MovieClipUses:371 374Used by:376
Symbol 376 MovieClipUses:375Used by:399
Symbol 377 EditableTextUses:17Used by:399
Symbol 378 VideoUsed by:380
Symbol 379 GraphicUsed by:380
Symbol 380 MovieClipUses:378 379Used by:399
Symbol 381 BitmapUsed by:382
Symbol 382 GraphicUses:381Used by:385
Symbol 383 BitmapUsed by:384
Symbol 384 GraphicUses:383Used by:385
Symbol 385 MovieClipUses:382 384Used by:399
Symbol 386 BitmapUsed by:387
Symbol 387 GraphicUses:386Used by:393
Symbol 388 BitmapUsed by:389
Symbol 389 GraphicUses:388Used by:390
Symbol 390 MovieClipUses:389Used by:393 398
Symbol 391 BitmapUsed by:392
Symbol 392 GraphicUses:391Used by:393
Symbol 393 MovieClipUses:387 390 392Used by:399
Symbol 394 BitmapUsed by:395
Symbol 395 GraphicUses:394Used by:398
Symbol 396 BitmapUsed by:397
Symbol 397 GraphicUses:396Used by:398
Symbol 398 MovieClipUses:395 390 397Used by:399
Symbol 399 MovieClip {MainGraphics} [MainGraphics]Uses:301 332 365 369 376 377 380 385 393 398
Symbol 400 Sound {sfx.valueReveal} [sfx.valueReveal]
Symbol 401 Sound {sfx.duello} [sfx.duello]
Symbol 402 Sound {sfx.tileReveal} [sfx.tileReveal]
Symbol 403 Sound {sfx.tileSelect} [sfx.tileSelect]
Symbol 404 Sound {sfx.scoreUpdate} [sfx.scoreUpdate]
Symbol 405 Sound {sfx.answerWrong} [sfx.answerWrong]
Symbol 406 Sound {sfx.intro} [sfx.intro]
Symbol 407 Sound {sfx.duelloVictory} [sfx.duelloVictory]
Symbol 408 Sound {sfx.goldBar} [sfx.goldBar]
Symbol 409 GraphicUsed by:410
Symbol 410 MovieClipUses:409Used by:413
Symbol 411 EditableTextUses:17Used by:412
Symbol 412 MovieClipUses:411Used by:413
Symbol 413 MovieClip {InputLetter} [InputLetter]Uses:410 412

Instance Names

"field"Symbol 175 MovieClip Frame 1Symbol 174 EditableText
"field"Symbol 180 MovieClip Frame 1Symbol 179 EditableText
"field"Symbol 182 MovieClip Frame 1Symbol 181 EditableText
"expand"Symbol 193 MovieClip Frame 1Symbol 173 MovieClip
"category"Symbol 193 MovieClip Frame 1Symbol 175 MovieClip
"value"Symbol 193 MovieClip Frame 1Symbol 180 MovieClip
"categoryExpanded"Symbol 193 MovieClip Frame 1Symbol 182 MovieClip
"hatch"Symbol 193 MovieClip Frame 1Symbol 189 MovieClip
"hitSprite"Symbol 193 MovieClip Frame 1Symbol 192 MovieClip
"expand"Symbol 200 MovieClip Frame 1Symbol 173 MovieClip
"category"Symbol 200 MovieClip Frame 1Symbol 175 MovieClip
"value"Symbol 200 MovieClip Frame 1Symbol 180 MovieClip
"categoryExpanded"Symbol 200 MovieClip Frame 1Symbol 182 MovieClip
"hatch"Symbol 200 MovieClip Frame 1Symbol 189 MovieClip
"hitSprite"Symbol 200 MovieClip Frame 1Symbol 199 MovieClip
"field"Symbol 205 MovieClip Frame 1Symbol 204 EditableText
"expand"Symbol 209 MovieClip Frame 1Symbol 173 MovieClip
"category"Symbol 209 MovieClip Frame 1Symbol 205 MovieClip
"value"Symbol 209 MovieClip Frame 1Symbol 180 MovieClip
"categoryExpanded"Symbol 209 MovieClip Frame 1Symbol 182 MovieClip
"hatch"Symbol 209 MovieClip Frame 1Symbol 189 MovieClip
"hitSprite"Symbol 209 MovieClip Frame 1Symbol 208 MovieClip
"expand"Symbol 216 MovieClip Frame 1Symbol 173 MovieClip
"category"Symbol 216 MovieClip Frame 1Symbol 205 MovieClip
"value"Symbol 216 MovieClip Frame 1Symbol 180 MovieClip
"categoryExpanded"Symbol 216 MovieClip Frame 1Symbol 182 MovieClip
"hatch"Symbol 216 MovieClip Frame 1Symbol 189 MovieClip
"hitSprite"Symbol 216 MovieClip Frame 1Symbol 215 MovieClip
"expand"Symbol 226 MovieClip Frame 1Symbol 173 MovieClip
"category"Symbol 226 MovieClip Frame 1Symbol 175 MovieClip
"value"Symbol 226 MovieClip Frame 1Symbol 180 MovieClip
"categoryExpanded"Symbol 226 MovieClip Frame 1Symbol 182 MovieClip
"hatch"Symbol 226 MovieClip Frame 1Symbol 189 MovieClip
"hitSprite"Symbol 226 MovieClip Frame 1Symbol 225 MovieClip
"expand"Symbol 233 MovieClip Frame 1Symbol 173 MovieClip
"category"Symbol 233 MovieClip Frame 1Symbol 175 MovieClip
"value"Symbol 233 MovieClip Frame 1Symbol 180 MovieClip
"categoryExpanded"Symbol 233 MovieClip Frame 1Symbol 182 MovieClip
"hatch"Symbol 233 MovieClip Frame 1Symbol 189 MovieClip
"hitSprite"Symbol 233 MovieClip Frame 1Symbol 232 MovieClip
"expand"Symbol 240 MovieClip Frame 1Symbol 173 MovieClip
"category"Symbol 240 MovieClip Frame 1Symbol 205 MovieClip
"value"Symbol 240 MovieClip Frame 1Symbol 180 MovieClip
"categoryExpanded"Symbol 240 MovieClip Frame 1Symbol 182 MovieClip
"hatch"Symbol 240 MovieClip Frame 1Symbol 189 MovieClip
"hitSprite"Symbol 240 MovieClip Frame 1Symbol 239 MovieClip
"expand"Symbol 247 MovieClip Frame 1Symbol 173 MovieClip
"category"Symbol 247 MovieClip Frame 1Symbol 205 MovieClip
"value"Symbol 247 MovieClip Frame 1Symbol 180 MovieClip
"categoryExpanded"Symbol 247 MovieClip Frame 1Symbol 182 MovieClip
"hatch"Symbol 247 MovieClip Frame 1Symbol 189 MovieClip
"hitSprite"Symbol 247 MovieClip Frame 1Symbol 246 MovieClip
"field"Symbol 251 MovieClip Frame 1Symbol 250 EditableText
"field"Symbol 256 MovieClip Frame 1Symbol 255 EditableText
"clip"Symbol 257 MovieClip Frame 1Symbol 256 MovieClip
"field"Symbol 264 MovieClip Frame 1Symbol 263 EditableText
"clip"Symbol 277 MovieClip Frame 1Symbol 264 MovieClip
"field"Symbol 282 MovieClip Frame 1Symbol 281 EditableText
"clip"Symbol 286 MovieClip Frame 1Symbol 282 MovieClip
"field"Symbol 288 MovieClip Frame 1Symbol 287 EditableText
"clip"Symbol 292 MovieClip Frame 1Symbol 288 MovieClip
"field"Symbol 294 MovieClip Frame 1Symbol 293 EditableText
"field"Symbol 296 MovieClip Frame 1Symbol 295 EditableText
"player"Symbol 300 MovieClip Frame 1Symbol 294 MovieClip
"opponent"Symbol 300 MovieClip Frame 1Symbol 296 MovieClip
"clip"Symbol 300 MovieClip Frame 1Symbol 288 MovieClip
"floor"Symbol 301 MovieClip Frame 1Symbol 16 MovieClip
"legalText"Symbol 301 MovieClip Frame 1Symbol 18 EditableText
"legalLogos"Symbol 301 MovieClip Frame 1Symbol 21 MovieClip
"tilesIntro"Symbol 301 MovieClip Frame 1Symbol 148 MovieClip
"tile7"Symbol 301 MovieClip Frame 1Symbol 193 MovieClip
"tile4"Symbol 301 MovieClip Frame 1Symbol 200 MovieClip
"tile3"Symbol 301 MovieClip Frame 1Symbol 209 MovieClip
"tile0"Symbol 301 MovieClip Frame 1Symbol 216 MovieClip
"glassWalls"Symbol 301 MovieClip Frame 1Symbol 219 MovieClip
"tile6"Symbol 301 MovieClip Frame 1Symbol 226 MovieClip
"tile5"Symbol 301 MovieClip Frame 1Symbol 233 MovieClip
"tile2"Symbol 301 MovieClip Frame 1Symbol 240 MovieClip
"tile1"Symbol 301 MovieClip Frame 1Symbol 247 MovieClip
"scoreBrick"Symbol 301 MovieClip Frame 1Symbol 251 MovieClip
"goldBar"Symbol 301 MovieClip Frame 1Symbol 257 MovieClip
"answer3"Symbol 301 MovieClip Frame 1Symbol 277 MovieClip
"answer2"Symbol 301 MovieClip Frame 1Symbol 277 MovieClip
"answer1"Symbol 301 MovieClip Frame 1Symbol 277 MovieClip
"answer0"Symbol 301 MovieClip Frame 1Symbol 277 MovieClip
"question"Symbol 301 MovieClip Frame 1Symbol 286 MovieClip
"questionValue"Symbol 301 MovieClip Frame 1Symbol 292 MovieClip
"opponentScore"Symbol 301 MovieClip Frame 1Symbol 300 MovieClip
"playerScore"Symbol 301 MovieClip Frame 1Symbol 300 MovieClip
"field"Symbol 307 MovieClip Frame 1Symbol 306 EditableText
"back"Symbol 309 MovieClip Frame 1Symbol 305 MovieClip
"clip"Symbol 309 MovieClip Frame 1Symbol 307 MovieClip
"statusField"Symbol 309 MovieClip Frame 1Symbol 308 EditableText
"field"Symbol 314 MovieClip Frame 1Symbol 313 EditableText
"clip1"Symbol 318 MovieClip Frame 1Symbol 314 MovieClip
"clip0"Symbol 318 MovieClip Frame 1Symbol 314 MovieClip
"field"Symbol 323 MovieClip Frame 1Symbol 322 EditableText
"clip"Symbol 324 MovieClip Frame 1Symbol 323 MovieClip
"clip"Symbol 331 MovieClip Frame 1Symbol 323 MovieClip
"panel"Symbol 332 MovieClip Frame 1Symbol 309 MovieClip
"score"Symbol 332 MovieClip Frame 1Symbol 318 MovieClip
"word5"Symbol 332 MovieClip Frame 1Symbol 324 MovieClip
"word4"Symbol 332 MovieClip Frame 1Symbol 324 MovieClip
"word3"Symbol 332 MovieClip Frame 1Symbol 324 MovieClip
"word2"Symbol 332 MovieClip Frame 1Symbol 324 MovieClip
"word1"Symbol 332 MovieClip Frame 1Symbol 324 MovieClip
"word0"Symbol 332 MovieClip Frame 1Symbol 324 MovieClip
"alt1"Symbol 332 MovieClip Frame 1Symbol 331 MovieClip
"alt0"Symbol 332 MovieClip Frame 1Symbol 331 MovieClip
"field"Symbol 334 MovieClip Frame 1Symbol 333 EditableText
"field"Symbol 336 MovieClip Frame 1Symbol 335 EditableText
"field"Symbol 338 MovieClip Frame 1Symbol 337 EditableText
"field"Symbol 340 MovieClip Frame 1Symbol 339 EditableText
"signup0"Symbol 349 MovieClip Frame 1Symbol 344 EditableText
"signup1"Symbol 349 MovieClip Frame 1Symbol 345 EditableText
"signup2"Symbol 349 MovieClip Frame 1Symbol 346 EditableText
"signup3"Symbol 349 MovieClip Frame 1Symbol 347 EditableText
"signup4"Symbol 349 MovieClip Frame 1Symbol 348 EditableText
"field"Symbol 351 MovieClip Frame 1Symbol 350 EditableText
"field"Symbol 353 MovieClip Frame 1Symbol 352 EditableText
"counter"Symbol 365 MovieClip Frame 1Symbol 334 MovieClip
"instructions"Symbol 365 MovieClip Frame 1Symbol 336 MovieClip
"totalScore"Symbol 365 MovieClip Frame 1Symbol 338 MovieClip
"totalScoreLabel"Symbol 365 MovieClip Frame 1Symbol 340 MovieClip
"timeBonus"Symbol 365 MovieClip Frame 1Symbol 338 MovieClip
"timeBonusLabel"Symbol 365 MovieClip Frame 1Symbol 340 MovieClip
"score"Symbol 365 MovieClip Frame 1Symbol 338 MovieClip
"scoreLabel"Symbol 365 MovieClip Frame 1Symbol 340 MovieClip
"legalImage"Symbol 365 MovieClip Frame 1Symbol 343 MovieClip
"signupButton"Symbol 365 MovieClip Frame 1Symbol 299 MovieClip
"signupTexts"Symbol 365 MovieClip Frame 1Symbol 349 MovieClip
"small_header"Symbol 365 MovieClip Frame 1Symbol 351 MovieClip
"header"Symbol 365 MovieClip Frame 1Symbol 353 MovieClip
"field"Symbol 371 MovieClip Frame 1Symbol 370 EditableText
"clip"Symbol 375 MovieClip Frame 1Symbol 371 MovieClip
"d3"Symbol 376 MovieClip Frame 1Symbol 375 MovieClip
"d2"Symbol 376 MovieClip Frame 1Symbol 375 MovieClip
"d1"Symbol 376 MovieClip Frame 1Symbol 375 MovieClip
"d0"Symbol 376 MovieClip Frame 1Symbol 375 MovieClip
"crossed"Symbol 393 MovieClip Frame 1Symbol 390 MovieClip
"crossed"Symbol 398 MovieClip Frame 1Symbol 390 MovieClip
"duello"Symbol 399 MovieClip {MainGraphics} [MainGraphics] Frame 1Symbol 301 MovieClip
"ghigliottina"Symbol 399 MovieClip {MainGraphics} [MainGraphics] Frame 1Symbol 332 MovieClip
"infoPanel"Symbol 399 MovieClip {MainGraphics} [MainGraphics] Frame 1Symbol 365 MovieClip
"timeBar"Symbol 399 MovieClip {MainGraphics} [MainGraphics] Frame 1Symbol 369 MovieClip
"timeBonus"Symbol 399 MovieClip {MainGraphics} [MainGraphics] Frame 1Symbol 376 MovieClip
"clock"Symbol 399 MovieClip {MainGraphics} [MainGraphics] Frame 1Symbol 377 EditableText
"introVideo"Symbol 399 MovieClip {MainGraphics} [MainGraphics] Frame 1Symbol 380 MovieClip
"quitButton"Symbol 399 MovieClip {MainGraphics} [MainGraphics] Frame 1Symbol 385 MovieClip
"soundButton"Symbol 399 MovieClip {MainGraphics} [MainGraphics] Frame 1Symbol 393 MovieClip
"musicButton"Symbol 399 MovieClip {MainGraphics} [MainGraphics] Frame 1Symbol 398 MovieClip
"field"Symbol 412 MovieClip Frame 1Symbol 411 EditableText
"line"Symbol 413 MovieClip {InputLetter} [InputLetter] Frame 1Symbol 410 MovieClip
"clip"Symbol 413 MovieClip {InputLetter} [InputLetter] Frame 1Symbol 412 MovieClip

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1459 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 1 as "sfx.wordCorrect"
ExportAssets (56)Timeline Frame 1Symbol 2 as "sfx.wordWrong"
ExportAssets (56)Timeline Frame 1Symbol 3 as "sfx.answerSelect"
ExportAssets (56)Timeline Frame 1Symbol 4 as "sfx.answerCorrect"
ExportAssets (56)Timeline Frame 1Symbol 5 as "sfx.ghigliottina"
ExportAssets (56)Timeline Frame 1Symbol 6 as "sfx.ghigliottinaVictory"
ExportAssets (56)Timeline Frame 1Symbol 7 as "sfx.showQuestion"
ExportAssets (56)Timeline Frame 1Symbol 8 as "sfx.showWord"
ExportAssets (56)Timeline Frame 1Symbol 9 as "sfx.timelimitHit"
ExportAssets (56)Timeline Frame 1Symbol 399 as "MainGraphics"
ExportAssets (56)Timeline Frame 1Symbol 400 as "sfx.valueReveal"
ExportAssets (56)Timeline Frame 1Symbol 401 as "sfx.duello"
ExportAssets (56)Timeline Frame 1Symbol 402 as "sfx.tileReveal"
ExportAssets (56)Timeline Frame 1Symbol 403 as "sfx.tileSelect"
ExportAssets (56)Timeline Frame 1Symbol 404 as "sfx.scoreUpdate"
ExportAssets (56)Timeline Frame 1Symbol 405 as "sfx.answerWrong"
ExportAssets (56)Timeline Frame 1Symbol 406 as "sfx.intro"
ExportAssets (56)Timeline Frame 1Symbol 407 as "sfx.duelloVictory"
ExportAssets (56)Timeline Frame 1Symbol 408 as "sfx.goldBar"
ExportAssets (56)Timeline Frame 1Symbol 413 as "InputLetter"
SerialNumber (41)Timeline Frame 1

Labels

"com_midasplayer_games_leredita_Main"Frame 1
"begin"Symbol 16 MovieClip Frame 1
"end"Symbol 16 MovieClip Frame 768
"begin"Symbol 148 MovieClip Frame 24
"show0"Symbol 148 MovieClip Frame 66
"show1"Symbol 148 MovieClip Frame 68
"show2"Symbol 148 MovieClip Frame 70
"show3"Symbol 148 MovieClip Frame 72
"show4"Symbol 148 MovieClip Frame 74
"show5"Symbol 148 MovieClip Frame 76
"show6"Symbol 148 MovieClip Frame 78
"show7"Symbol 148 MovieClip Frame 80
"end"Symbol 148 MovieClip Frame 84
"begin"Symbol 173 MovieClip Frame 1
"end"Symbol 173 MovieClip Frame 20
"begin"Symbol 189 MovieClip Frame 1
"end"Symbol 189 MovieClip Frame 9
"tile_intro_begin"Symbol 193 MovieClip Frame 1
"tile_intro_end"Symbol 193 MovieClip Frame 4
"selectable"Symbol 193 MovieClip Frame 4
"mouse_over"Symbol 193 MovieClip Frame 5
"slide_back_begin"Symbol 193 MovieClip Frame 6
"slide_back_end"Symbol 193 MovieClip Frame 10
"question_flip_begin"Symbol 193 MovieClip Frame 11
"selected"Symbol 193 MovieClip Frame 11
"flip_expand_trigger"Symbol 193 MovieClip Frame 22
"open_hatch_trigger"Symbol 193 MovieClip Frame 33
"question_flip_end"Symbol 193 MovieClip Frame 41
"deactivate_begin"Symbol 193 MovieClip Frame 42
"deactivate_end"Symbol 193 MovieClip Frame 48
"tile_intro_begin"Symbol 200 MovieClip Frame 1
"tile_intro_end"Symbol 200 MovieClip Frame 4
"selectable"Symbol 200 MovieClip Frame 4
"mouse_over"Symbol 200 MovieClip Frame 5
"slide_back_begin"Symbol 200 MovieClip Frame 6
"slide_back_end"Symbol 200 MovieClip Frame 10
"question_flip_begin"Symbol 200 MovieClip Frame 11
"selected"Symbol 200 MovieClip Frame 11
"flip_expand_trigger"Symbol 200 MovieClip Frame 22
"open_hatch_trigger"Symbol 200 MovieClip Frame 33
"question_flip_end"Symbol 200 MovieClip Frame 41
"deactivate_begin"Symbol 200 MovieClip Frame 42
"deactivate_end"Symbol 200 MovieClip Frame 48
"tile_intro_begin"Symbol 209 MovieClip Frame 1
"tile_intro_end"Symbol 209 MovieClip Frame 4
"selectable"Symbol 209 MovieClip Frame 4
"mouse_over"Symbol 209 MovieClip Frame 5
"slide_back_begin"Symbol 209 MovieClip Frame 6
"slide_back_end"Symbol 209 MovieClip Frame 10
"question_flip_begin"Symbol 209 MovieClip Frame 11
"selected"Symbol 209 MovieClip Frame 11
"flip_expand_trigger"Symbol 209 MovieClip Frame 22
"open_hatch_trigger"Symbol 209 MovieClip Frame 33
"question_flip_end"Symbol 209 MovieClip Frame 41
"deactivate_begin"Symbol 209 MovieClip Frame 42
"deactivate_end"Symbol 209 MovieClip Frame 48
"tile_intro_begin"Symbol 216 MovieClip Frame 1
"tile_intro_end"Symbol 216 MovieClip Frame 4
"selectable"Symbol 216 MovieClip Frame 4
"mouse_over"Symbol 216 MovieClip Frame 5
"slide_back_begin"Symbol 216 MovieClip Frame 6
"slide_back_end"Symbol 216 MovieClip Frame 10
"question_flip_begin"Symbol 216 MovieClip Frame 11
"selected"Symbol 216 MovieClip Frame 11
"flip_expand_trigger"Symbol 216 MovieClip Frame 22
"open_hatch_trigger"Symbol 216 MovieClip Frame 33
"question_flip_end"Symbol 216 MovieClip Frame 41
"deactivate_begin"Symbol 216 MovieClip Frame 42
"deactivate_end"Symbol 216 MovieClip Frame 48
"tile_intro_begin"Symbol 226 MovieClip Frame 1
"tile_intro_end"Symbol 226 MovieClip Frame 4
"selectable"Symbol 226 MovieClip Frame 4
"mouse_over"Symbol 226 MovieClip Frame 5
"slide_back_begin"Symbol 226 MovieClip Frame 6
"slide_back_end"Symbol 226 MovieClip Frame 10
"question_flip_begin"Symbol 226 MovieClip Frame 11
"selected"Symbol 226 MovieClip Frame 11
"flip_expand_trigger"Symbol 226 MovieClip Frame 22
"open_hatch_trigger"Symbol 226 MovieClip Frame 33
"question_flip_end"Symbol 226 MovieClip Frame 41
"deactivate_begin"Symbol 226 MovieClip Frame 42
"deactivate_end"Symbol 226 MovieClip Frame 48
"tile_intro_begin"Symbol 233 MovieClip Frame 1
"tile_intro_end"Symbol 233 MovieClip Frame 4
"selectable"Symbol 233 MovieClip Frame 4
"mouse_over"Symbol 233 MovieClip Frame 5
"slide_back_begin"Symbol 233 MovieClip Frame 6
"slide_back_end"Symbol 233 MovieClip Frame 10
"question_flip_begin"Symbol 233 MovieClip Frame 11
"selected"Symbol 233 MovieClip Frame 11
"flip_expand_trigger"Symbol 233 MovieClip Frame 22
"open_hatch_trigger"Symbol 233 MovieClip Frame 33
"question_flip_end"Symbol 233 MovieClip Frame 41
"deactivate_begin"Symbol 233 MovieClip Frame 42
"deactivate_end"Symbol 233 MovieClip Frame 48
"tile_intro_begin"Symbol 240 MovieClip Frame 1
"tile_intro_end"Symbol 240 MovieClip Frame 4
"selectable"Symbol 240 MovieClip Frame 4
"mouse_over"Symbol 240 MovieClip Frame 5
"slide_back_begin"Symbol 240 MovieClip Frame 6
"slide_back_end"Symbol 240 MovieClip Frame 10
"question_flip_begin"Symbol 240 MovieClip Frame 11
"selected"Symbol 240 MovieClip Frame 11
"flip_expand_trigger"Symbol 240 MovieClip Frame 22
"open_hatch_trigger"Symbol 240 MovieClip Frame 33
"question_flip_end"Symbol 240 MovieClip Frame 41
"deactivate_begin"Symbol 240 MovieClip Frame 42
"deactivate_end"Symbol 240 MovieClip Frame 48
"tile_intro_begin"Symbol 247 MovieClip Frame 1
"tile_intro_end"Symbol 247 MovieClip Frame 4
"selectable"Symbol 247 MovieClip Frame 4
"mouse_over"Symbol 247 MovieClip Frame 5
"slide_back_begin"Symbol 247 MovieClip Frame 6
"slide_back_end"Symbol 247 MovieClip Frame 10
"question_flip_begin"Symbol 247 MovieClip Frame 11
"selected"Symbol 247 MovieClip Frame 11
"flip_expand_trigger"Symbol 247 MovieClip Frame 22
"open_hatch_trigger"Symbol 247 MovieClip Frame 33
"question_flip_end"Symbol 247 MovieClip Frame 41
"deactivate_begin"Symbol 247 MovieClip Frame 42
"deactivate_end"Symbol 247 MovieClip Frame 48
"begin"Symbol 257 MovieClip Frame 1
"end"Symbol 257 MovieClip Frame 96
"in_begin"Symbol 277 MovieClip Frame 1
"in_end"Symbol 277 MovieClip Frame 6
"selectable"Symbol 277 MovieClip Frame 6
"selected_begin"Symbol 277 MovieClip Frame 8
"mouse_over"Symbol 277 MovieClip Frame 8
"selected_end"Symbol 277 MovieClip Frame 10
"correct_begin"Symbol 277 MovieClip Frame 11
"correct_end"Symbol 277 MovieClip Frame 14
"selected_correct_begin"Symbol 277 MovieClip Frame 15
"selected_correct_end"Symbol 277 MovieClip Frame 18
"wrong_begin"Symbol 277 MovieClip Frame 19
"wrong_end"Symbol 277 MovieClip Frame 22
"neutral_out_begin"Symbol 277 MovieClip Frame 23
"neutral_out_end"Symbol 277 MovieClip Frame 26
"correct_out_begin"Symbol 277 MovieClip Frame 27
"correct_out_end"Symbol 277 MovieClip Frame 30
"wrong_out_begin"Symbol 277 MovieClip Frame 31
"wrong_out_end"Symbol 277 MovieClip Frame 34
"in_begin"Symbol 286 MovieClip Frame 1
"in_end"Symbol 286 MovieClip Frame 7
"out_begin"Symbol 286 MovieClip Frame 8
"out_end"Symbol 286 MovieClip Frame 11
"in_begin"Symbol 292 MovieClip Frame 1
"in_end"Symbol 292 MovieClip Frame 6
"out_begin"Symbol 292 MovieClip Frame 7
"out_end"Symbol 292 MovieClip Frame 10
"in_begin"Symbol 300 MovieClip Frame 1
"in_end"Symbol 300 MovieClip Frame 5
"out_begin"Symbol 300 MovieClip Frame 6
"out_end"Symbol 300 MovieClip Frame 9
"begin"Symbol 309 MovieClip Frame 1
"end"Symbol 309 MovieClip Frame 27
"in_begin"Symbol 318 MovieClip Frame 1
"in_end"Symbol 318 MovieClip Frame 7
"cutoff_begin"Symbol 318 MovieClip Frame 8
"cutoff_end"Symbol 318 MovieClip Frame 13
"in_begin"Symbol 324 MovieClip Frame 1
"in_end"Symbol 324 MovieClip Frame 8
"partial_begin"Symbol 324 MovieClip Frame 9
"partial_end"Symbol 324 MovieClip Frame 15
"in_begin"Symbol 331 MovieClip Frame 1
"in_end"Symbol 331 MovieClip Frame 11
"selectable"Symbol 331 MovieClip Frame 12
"select_begin"Symbol 331 MovieClip Frame 13
"mouse_over"Symbol 331 MovieClip Frame 13
"select_end"Symbol 331 MovieClip Frame 15
"fall_0_correct_begin"Symbol 331 MovieClip Frame 16
"fall_0_correct_end"Symbol 331 MovieClip Frame 33
"fall_0_wrong_begin"Symbol 331 MovieClip Frame 34
"fall_0_wrong_end"Symbol 331 MovieClip Frame 43
"fall_1_correct_begin"Symbol 331 MovieClip Frame 44
"fall_1_correct_end"Symbol 331 MovieClip Frame 61
"fall_1_wrong_begin"Symbol 331 MovieClip Frame 62
"fall_1_wrong_end"Symbol 331 MovieClip Frame 71
"large_in_begin"Symbol 365 MovieClip Frame 1
"instructions_in_begin"Symbol 365 MovieClip Frame 31
"instructions_in_end"Symbol 365 MovieClip Frame 83
"large_in_end"Symbol 365 MovieClip Frame 88
"large_out_begin"Symbol 365 MovieClip Frame 89
"large_out_end"Symbol 365 MovieClip Frame 92
"small_in_begin"Symbol 365 MovieClip Frame 93
"small_in_end"Symbol 365 MovieClip Frame 98
"small_out_begin"Symbol 365 MovieClip Frame 99
"small_out_end"Symbol 365 MovieClip Frame 104
"begin"Symbol 369 MovieClip Frame 1
"end"Symbol 369 MovieClip Frame 121
"begin"Symbol 375 MovieClip Frame 1
"end"Symbol 375 MovieClip Frame 23
"begin"Symbol 380 MovieClip Frame 1
"fade_begin"Symbol 380 MovieClip Frame 168
"end"Symbol 380 MovieClip Frame 173
"active"Symbol 385 MovieClip Frame 1
"mouseOver"Symbol 385 MovieClip Frame 2
"active"Symbol 393 MovieClip Frame 1
"mouseOver"Symbol 393 MovieClip Frame 2
"active"Symbol 398 MovieClip Frame 1
"mouseOver"Symbol 398 MovieClip Frame 2




http://swfchan.com/50/246755/info.shtml
Created: 23/4 -2022 00:54:46 Last modified: 23/4 -2022 00:54:46 Server time: 21/05 -2024 12:56:36