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

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

Red Ball 2 - help the ball to get his lost crown in this fun game.swf

This is the info page for
Flash #93000

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


Text
This site does not support this game.
Please visit King.com to play.

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Resume Game</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Resume Game</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Resume Game</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Walkthrough</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Walkthrough</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Walkthrough</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Sound FX: On</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Sound FX: Off</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Sound FX: On</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Sound FX: Off</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Main Menu</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Main Menu</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Main Menu</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Music: On</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Music: Off</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Music: On</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Music: Off</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Menu</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Menu</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Menu</font></p>

<p align="left"><font face="GROBOLD" size="16" color="#ffcc00" letterSpacing="0.000000" kerning="1">0/0</font></p>

<p align="left"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">Level 00</font></p>

<p align="left"><font face="GROBOLD" size="16" color="#ffcc00" letterSpacing="0.000000" kerning="1">00000</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Restart</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Restart</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Restart</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">Start Game</font></p>

<p align="center"><font face="GROBOLD" size="22" color="#ff9900" letterSpacing="0.000000" kerning="1">Start Game</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">Start Game</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">More games</font></p>

<p align="center"><font face="GROBOLD" size="22" color="#ff9900" letterSpacing="0.000000" kerning="1">More games</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">More games</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">Credits</font></p>

<p align="center"><font face="GROBOLD" size="22" color="#ff9900" letterSpacing="0.000000" kerning="1">Credits</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">Credits</font></p>

<p align="left"><font face="GROBOLD" size="50" color="#ff0000" letterSpacing="0.000000" kerning="1">Red Ball 2</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">Walkthrough</font></p>

<p align="center"><font face="GROBOLD" size="22" color="#ff9900" letterSpacing="0.000000" kerning="1">Walkthrough</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">Walkthrough</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#ffcc00" letterSpacing="0.000000" kerning="1">Add this game to your website</font></p>

<p align="center"><font face="GROBOLD" size="13" color="#ff9900" letterSpacing="0.000000" kerning="1">Add this game to your website</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#ffcc00" letterSpacing="0.000000" kerning="1">Add this game to your website</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#ffcc00" letterSpacing="0.000000" kerning="1">Play Red Ball 1</font></p>

<p align="center"><font face="GROBOLD" size="13" color="#ff9900" letterSpacing="0.000000" kerning="1">Play Red Ball 1</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#ffcc00" letterSpacing="0.000000" kerning="1">Play Red Ball 1</font></p>

<p align="center"><font face="GROBOLD" size="16" color="#ff3300" letterSpacing="24.000000" kerning="1">THE KING</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">Bonus Levels</font></p>

<p align="center"><font face="GROBOLD" size="22" color="#ff9900" letterSpacing="0.000000" kerning="1">Bonus Levels</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">Bonus Levels</font></p>

<p align="center"><font face="GROBOLD" size="11" color="#000000" letterSpacing="0.000000" kerning="1">Play Red Ball 1 on King.com</font></p>

<p align="center"><font face="GROBOLD" size="22" color="#ff9900" letterSpacing="0.000000" kerning="1">Credits</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">Back</font></p>

<p align="center"><font face="GROBOLD" size="22" color="#ff9900" letterSpacing="0.000000" kerning="1">Back</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ffcc00" letterSpacing="0.000000" kerning="1">Back</font></p>

<p align="left"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Developed by:</font></p>

<p align="left"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Physic Engine:</font></p>

<p align="left"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Thanks to:</font></p>

<p align="left"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Music and FX:</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Evgeniy Fedoseev</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Evgeniy Fedoseev</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Evgeniy Fedoseev</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Box2D</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Box2D</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Box2D</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">FGL</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">FGL</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">FGL</font></p>

<p align="left"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">,</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Johnny-K</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Johnny-K</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Johnny-K</font></p>

<p align="left"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">,</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Badim</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Badim</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Badim</font></p>

<p align="left"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">,</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">CGP</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">CGP</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">CGP</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Soundsnap</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Soundsnap</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Soundsnap</font></p>

<p align="left"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">,</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Tombor911</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Tombor911</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Tombor911</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Cross666</font></p>

<p align="center"><font face="GROBOLD" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Cross666</font></p>

<p align="center"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">Cross666</font></p>

<p align="left"><font face="GROBOLD" size="18" color="#ffcc00" letterSpacing="0.000000" kerning="1">,</font></p>

<p align="left"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">Clearly, he needs your help... let the adventure begin!</font></p>

<p align="center"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1"> I MUST FIND MY CROWN!</font></p>

<p align="left"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">He started looking around, but without success.</font></p>

<p align="center"><font face="GROBOLD" size="13" color="#000000" letterSpacing="0.000000" kerning="1">Crown? Has anyone seen my crown???</font></p>

<p align="left"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">Red Ball was very worried.</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#000000" letterSpacing="0.000000" kerning="1">Where did my crown go? How will I be treated if I don’t have my crown?</font></p>

<p align="left"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">Suddenly, a strong wind came from nowhere and took Red Ball by surprise...</font></p>

<p align="center"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">Hey! This is an awesome day!</font></p>

<p align="left"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">It was a very warm day and Red Ball was very happy.</font></p>

<p align="left"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">One day the Red Ball, the King of the Monarchy of Balls, walked his country with his crown.</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">(click anywhere to continue)</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">skip intro</font></p>

<p align="center"><font face="GROBOLD" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1">skip intro</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">skip intro</font></p>

<p align="left"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">But... news of more adventures cheered him up!</font></p>

<p align="center"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">Want to play 5 bonus levels?</font></p>

<p align="left"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">Visit</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">main menu</font></p>

<p align="center"><font face="GROBOLD" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1">main menu</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">main menu</font></p>

<p align="left"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">But he is very sad to part with you, and he will miss your company.</font></p>

<p align="center"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">I&apos;ll be bored without you!</font></p>

<p align="left"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">The Red Ball is very happy to find his crown.</font></p>

<p align="center"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">Hey! Thanks for your help!</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">(click anywhere to continue)</font></p>

<p align="left"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">Thanks for playing! </font></p><p align="left"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">This is not the end...</font></p>

<p align="center"><font face="GROBOLD" size="15" color="#ff0000" letterSpacing="0.000000" kerning="1">Red</font></p>

<p align="center"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">&amp;</font></p>

<p align="center"><font face="GROBOLD" size="15" color="#0000ff" letterSpacing="0.000000" kerning="1">Blue</font></p>

<p align="center"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">Balls</font></p>

<p align="center"><font face="GROBOLD" size="15" color="#000000" letterSpacing="0.000000" kerning="1">Coming soon!</font></p>

<p align="center"><font face="GROBOLD" size="22" color="#ff9900" letterSpacing="0.000000" kerning="1">Select Level</font></p>

<p align="center"><font face="GROBOLD" size="15" color="#333333" letterSpacing="0.000000" kerning="1">00</font></p>

<p align="center"><font face="GROBOLD" size="16" color="#ffcc00" letterSpacing="0.000000" kerning="1">Main menu</font></p>

<p align="center"><font face="GROBOLD" size="17" color="#ff9900" letterSpacing="0.000000" kerning="1">Main menu</font></p>

<p align="center"><font face="GROBOLD" size="16" color="#ffcc00" letterSpacing="0.000000" kerning="1">Main menu</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#ffcc00" letterSpacing="0.000000" kerning="1">Reset level progress</font></p>

<p align="center"><font face="GROBOLD" size="13" color="#ff9900" letterSpacing="0.000000" kerning="1">Reset level progress</font></p>

<p align="center"><font face="GROBOLD" size="12" color="#ffcc00" letterSpacing="0.000000" kerning="1">Reset level progress</font></p>

ActionScript [AS3]

Section 1
//Locale (ascb.util.Locale) package ascb.util { import flash.system.*; public class Locale { private var _sVariant:String; private var _sLanguage:String; public static const GERMAN:String = "de"; public static const CHINESE:String = "zh"; public static const ENGLISH:String = "en"; public static const SPANISH:String = "es"; public static const UK:String = "UK"; public static const US:String = "US"; public static const FRENCH:String = "fr"; public static const JAPANESE:String = "jp"; private static var __sLanguage:String; private static var __sVariant:String; public function Locale(_arg1:String=null, _arg2:String=null){ _sLanguage = _arg1; _sVariant = _arg2; } public function set language(_arg1:String):void{ _sLanguage = _arg1; } public function get variant():String{ if (_sVariant == null){ if (Locale.svariant == null){ if (Capabilities.language.length > 2){ _sVariant = Capabilities.language.substr(3); } else { if (language == ENGLISH){ if (new Date().getTimezoneOffset() > 120){ _sVariant = US; } else { _sVariant = UK; }; } else { if (language == SPANISH){ if (new Date().getTimezoneOffset() > 120){ _sVariant = "MX"; } else { _sVariant = "ES"; }; }; }; }; } else { _sVariant = Locale.svariant; }; }; return (_sVariant); } public function reset():void{ _sLanguage = null; _sVariant = null; } public function set languageVariant(_arg1:String):void{ var _local2:Array = _arg1.split("-"); _sLanguage = _local2[0]; _sVariant = _local2[1]; } public function set variant(_arg1:String):void{ _sVariant = _arg1; } public function get languageVariant():String{ var _local1:String = language; if (variant != null){ _local1 = (_local1 + ("-" + variant)); }; return (_local1); } public function get language():String{ if (_sLanguage == null){ if (Locale.slanguage == null){ _sLanguage = Capabilities.language.substr(0, 2); } else { _sLanguage = Locale.slanguage; }; }; return (_sLanguage); } public static function sreset():void{ __sLanguage = null; __sVariant = null; } public static function get slanguage():String{ return (__sLanguage); } public static function set slanguage(_arg1:String):void{ __sLanguage = _arg1; } public static function set svariant(_arg1:String):void{ __sVariant = _arg1; } public static function get svariant():String{ return (__sVariant); } public static function get slanguageVariant():String{ var _local1:String = slanguage; if (svariant != null){ _local1 = (_local1 + ("-" + svariant)); }; return (_local1); } public static function set slanguageVariant(_arg1:String):void{ var _local2:Array = _arg1.split("-"); __sLanguage = _local2[0]; __sVariant = _local2[1]; } } }//package ascb.util
Section 2
//NumberFormat (ascb.util.NumberFormat) package ascb.util { public class NumberFormat { private var _sMask:String; public function NumberFormat(_arg1:String=null){ _sMask = _arg1; } public function parse(_arg1:String, _arg2:Number, _arg3:Boolean, _arg4:Locale):Number{ if (_arg4 == null){ _arg4 = new Locale(); }; var _local5:Object = getSymbols(_arg3, _arg4); var _local6:Array = _arg1.split(""); if (isNaN(_arg2)){ if (_local6[0] == "O"){ if (_local6[1] == "x"){ _arg2 = 16; } else { _arg2 = 8; }; } else { if (_local6[0] == "#"){ _arg2 = 16; } else { _arg2 = (isNaN(_arg2)) ? 10 : _arg2; }; }; }; var _local7:Number = 0; while (_local7 < _local6.length) { switch (_local6[_local7]){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": break; case _local5.decimal: _local6[_local7] = "."; break; default: if (_arg2 > 10){ if ((((((_local6[_local7].charCodeAt(0) > 64)) && ((_local6[_local7].charCodeAt(0) < 91)))) || ((((_local6[_local7].charCodeAt(0) > 96)) && ((_local6[_local7].charCodeAt(0) < 123)))))){ break; }; }; _local6.splice(_local7, 1); _local7--; }; _local7++; }; if (_arg2 == 10){ return (Number(_local6.join(""))); }; return (parseInt(_local6.join(""), _arg2)); } private function getSymbols(_arg1:Boolean, _arg2:Locale):Object{ var _local3:Object = new Object(); switch (_arg2.languageVariant){ case "en-US": _local3.currency = "$"; _local3.group = ","; _local3.decimal = "."; _local3.before = true; break; case "en-UK": _local3.currency = "£"; _local3.group = ","; _local3.decimal = "."; _local3.before = true; break; case "es-MX": _local3.currency = "$"; _local3.group = ","; _local3.decimal = "."; _local3.before = true; break; case "es-ES": _local3.currency = "€"; _local3.group = "."; _local3.decimal = ","; _local3.before = false; break; case "fr": _local3.currency = "€"; _local3.group = "."; _local3.decimal = ","; _local3.before = false; break; case "sv": _local3.currency = "kr"; _local3.group = (_arg1) ? "," : " "; _local3.decimal = "."; _local3.before = false; break; case "jp": _local3.currency = " 5"; _local3.group = ","; _local3.decimal = "."; _local3.before = true; break; case "nl": _local3.currency = "€"; _local3.group = "."; _local3.decimal = ","; _local3.before = true; break; default: _local3.currency = "€"; _local3.group = "."; _local3.decimal = ","; _local3.before = true; break; }; return (_local3); } public function format(_arg1:Number, _arg2:Object=null, _arg3:Object=null):String{ var _local4:String; var _local10:Number; var _local11:String; var _local12:Object; var _local13:Locale; var _local14:Locale; var _local15:Number; var _local16:Number; var _local17:Array; var _local18:Array; var _local19:Array; var _local20:Number; var _local21:Number; var _local22:Boolean; var _local23:Array; var _local24:Number; if (typeof(_arg2) == "number"){ _local10 = Number(_arg2); _local4 = _arg1.toString(_local10); _local11 = ""; if (_local10 == 16){ _local11 = "0x"; }; if (_local10 == 8){ _local11 = "0"; }; if (_arg3 != null){ _local11 = String(_arg3); }; return ((_local11 + _local4.toUpperCase())); }; var _local5 = ","; var _local6 = "."; if (((!((_arg2 == null))) && (_arg2.hasOwnProperty("group")))){ _local12 = _arg2; } else { _local13 = Locale(_arg2); if (_local13 == null){ _local13 = new Locale(); }; _local14 = Locale(_local13); _local12 = getSymbols(false, _local14); }; _local5 = _local12.decimal; _local6 = _local12.group; var _local7:Array = String(_arg1).split("."); var _local8:Array = _local7[0].split(""); var _local9:Array = ((_local7.length)>1) ? _local7[1].split("") : new Array(); if (_sMask == null){ _local15 = 1; _local8.reverse(); _local16 = 0; while (_local16 < _local8.length) { if (_local15 > 3){ _local15 = 0; _local8.splice(_local16, 0, _local6); }; _local15++; _local16++; }; _local8.reverse(); _local4 = _local8.join(""); if (_local7[1] != null){ _local4 = (_local4 + (_local5 + _local7[1])); }; } else { _local17 = _sMask.split(""); _local16 = 0; while (_local16 < _local17.length) { if (((((!((_local17[_local16] == "0"))) && (!((_local17[_local16] == "#"))))) && (!((_local17[_local16] == "."))))){ _local17.splice(_local16, 1); _local16--; }; _local16++; }; _local17 = _local17.join("").split("."); _local18 = _local17[0].split(""); _local19 = ((_local17.length)>1) ? _local17[1].split("") : new Array(); _local15 = _local18.length; _local20 = 0; _local21 = 0; _local4 = ""; if (_local15 < _local8.length){ _local16 = 0; while (_local16 < (_local8.length - _local15)) { _local4 = (_local4 + _local8[_local16]); _local20++; _local16++; }; } else { if (_local15 > _local8.length){ _local16 = 0; while (_local16 < (_local15 - _local8.length)) { if (_local18[_local16] == "0"){ _local4 = (_local4 + "0"); } else { if (_local18[_local16] == "#"){ _local4 = (_local4 + " "); }; }; _local21++; _local16++; }; }; }; _local22 = false; _local16 = _local21; while (_local16 < _local18.length) { if ((((_local18[_local16] == "0")) || ((_local18[_local16] == "#")))){ _local4 = (_local4 + ((_local8[_local20])==undefined) ? "" : _local8[_local20]); _local20++; }; _local16++; }; _local17 = _sMask.split("."); _local17 = _local17[0].split(""); _local23 = _local4.split(""); _local22 = false; _local16 = 0; while (_local16 < _local17.length) { if (((((!((_local17[_local16] == "0"))) && (!((_local17[_local16] == "#"))))) && (!((_local17[_local16] == "."))))){ if (_local22){ _local23.splice(_local16, 0, _local6); } else { _local23.splice(_local16, 0, " "); }; }; if (((!((_local23[_local16] == " "))) && (!((_local23[_local16] == "0"))))){ _local22 = true; }; _local16++; }; _local4 = _local23.join(""); if (_local19.length > 0){ _local4 = (_local4 + _local5); }; _local16 = 0; while (_local16 < _local19.length) { if (_local9[_local16] == null){ if (_local19[_local16] == "0"){ _local4 = (_local4 + "0"); } else { if (_local19[_local16] == "#"){ _local4 = (_local4 + " "); }; }; } else { _local24 = Number(((_local9[_local16] + "") + _local9[(_local16 + 1)])); if ((((_local16 == (_local19.length - 1))) && (!(isNaN(_local24))))){ _local4 = (_local4 + String(Math.round((_local24 / 10)))); } else { _local4 = (_local4 + _local9[_local16]); }; }; _local16++; }; }; return (_local4); } public function set mask(_arg1:String):void{ _sMask = _arg1; } public function currencyFormat(_arg1:Number, _arg2:Object=null):String{ var _local15:Object; var _local16:Number; var _local4:Locale = ((arguments[1] is Locale)) ? arguments[1] : new Locale(); if (((!((_arg2 == null))) && (_arg2.hasOwnProperty("group")))){ _local15 = _arg2; } else { _local15 = getSymbols(true, _local4); }; var _local5:String = _local15.currency; var _local6:String = _local15.group; var _local7:String = _local15.decimal; var _local8:String = _sMask; _sMask = null; var _local9:Locale = new Locale(); _local9.language = "en"; _local9.variant = "US"; var _local10:String = format(_arg1, _local9); _sMask = _local8; var _local11:Array = _local10.split("."); if (_local11[1] == undefined){ _local11[1] = "00"; } else { _local11[1] = Number(_local11[1]); _local16 = String(_local11[1]).length; if (_local16 > 2){ _local11[1] = (_local11[1] / Math.pow(10, (_local16 - 2))); _local11[1] = Math.round(_local11[1]); }; }; _local10 = _local11.join("."); var _local12:Array = _local10.split(""); var _local13:Number = 0; while (_local13 < _local12.length) { if (_local12[_local13] == ","){ _local12[_local13] = _local6; } else { if (_local12[_local13] == "."){ _local12[_local13] = _local7; }; }; _local13++; }; var _local14:String = (((_local15.before) ? _local5 : "" + _local12.join("")) + (_local15.before) ? "" : _local5); return (_local14); } public function get mask():String{ return (_sMask); } } }//package ascb.util
Section 3
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var radius:Number; public var localPosition:b2Vec2; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 4
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2XForm, _arg4:b2Vec2):Number{ var _local5:b2Vec2 = b2Math.b2MulX(_arg3, m_localPosition); var _local6:Number = -((b2Math.b2Dot(_arg1, _local5) - _arg2)); if (_local6 < (-(m_radius) + Number.MIN_VALUE)){ return (0); }; if (_local6 > m_radius){ _arg4.SetV(_local5); return (((b2Settings.b2_pi * m_radius) * m_radius)); }; var _local7:Number = (m_radius * m_radius); var _local8:Number = (_local6 * _local6); var _local9:Number = ((_local7 * (Math.asin((_local6 / m_radius)) + (b2Settings.b2_pi / 2))) + (_local6 * Math.sqrt((_local7 - _local8)))); var _local10:Number = (((-2 / 3) * Math.pow((_local7 - _local8), 1.5)) / _local9); _arg4.x = (_local5.x + (_arg1.x * _local10)); _arg4.y = (_local5.y + (_arg1.y * _local10)); return (_local9); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 5
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 6
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 7
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 8
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_coreVertices:Array; public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2XForm, _arg4:b2Vec2):Number{ var _local13:int; var _local22:b2Vec2; var _local24:Boolean; var _local25:b2MassData; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local5:b2Vec2 = b2Math.b2MulTMV(_arg3.R, _arg1); var _local6:Number = (_arg2 - b2Math.b2Dot(_arg1, _arg3.position)); var _local7:Array = []; var _local8:int; var _local9 = -1; var _local10 = -1; var _local11:b2Vec2; var _local12:Boolean; _local13 = 0; while (_local13 < m_vertexCount) { _local11 = m_vertices[_local13]; _local7[_local13] = (((_local5.x * _local11.x) + (_local5.y * _local11.y)) - _local6); _local24 = (_local7[_local13] < -(Number.MIN_VALUE)); if (_local13 > 0){ if (_local24){ if (!_local12){ _local9 = (_local13 - 1); _local8++; }; } else { if (_local12){ _local10 = (_local13 - 1); _local8++; }; }; }; _local12 = _local24; _local13++; }; switch (_local8){ case 0: if (_local12){ _local25 = new b2MassData(); ComputeMass(_local25); _arg4.SetV(b2Math.b2MulX(_arg3, _local25.center)); return ((_local25.mass / m_density)); }; return (0); case 1: if (_local9 == -1){ _local9 = (m_vertexCount - 1); } else { _local10 = (m_vertexCount - 1); }; break; }; var _local14:int = ((_local9 + 1) % m_vertexCount); var _local15:int = ((_local10 + 1) % m_vertexCount); var _local16:Number = ((0 - _local7[_local9]) / (_local7[_local14] - _local7[_local9])); var _local17:Number = ((0 - _local7[_local10]) / (_local7[_local15] - _local7[_local10])); var _local18:b2Vec2 = new b2Vec2(((m_vertices[_local9].x * (1 - _local16)) + (m_vertices[_local14].x * _local16)), ((m_vertices[_local9].y * (1 - _local16)) + (m_vertices[_local14].y * _local16))); var _local19:b2Vec2 = new b2Vec2(((m_vertices[_local10].x * (1 - _local17)) + (m_vertices[_local15].x * _local17)), ((m_vertices[_local10].y * (1 - _local17)) + (m_vertices[_local15].y * _local17))); var _local20:Number = 0; _arg4.Set(0, 0); var _local21:b2Vec2 = m_vertices[_local14]; var _local23:Number = (1 / 3); _local13 = _local14; while (_local13 != _local15) { _local13 = ((_local13 + 1) % m_vertexCount); if (_local13 == _local15){ _local22 = _local19; } else { _local22 = m_vertices[_local13]; }; _local26 = (_local21.x - _local18.x); _local27 = (_local21.y - _local18.y); _local28 = (_local22.x - _local18.x); _local29 = (_local22.y - _local18.y); _local30 = ((_local26 * _local29) - (_local27 * _local28)); _local31 = (0.5 * _local30); _local20 = (_local20 + _local31); _arg4.x = (_arg4.x + ((_local31 * _local23) * ((_local18.x + _local21.x) + _local22.x))); _arg4.y = (_arg4.y + ((_local31 * _local23) * ((_local18.y + _local21.y) + _local22.y))); _local21 = _local22; }; _arg4.x = (_arg4.x / _local20); _arg4.y = (_arg4.y / _local20); _arg4.SetV(b2Math.b2MulX(_arg3, _arg4)); return (_local20); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetNormals():Array{ return (m_normals); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 9
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_isSensor:Boolean; public var m_restitution:Number; public var m_userData; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2XForm, _arg4:b2Vec2):Number{ return (0); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 10
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int;// = -1 public function b2ShapeDef(){ filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 11
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 12
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 13
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 14
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 15
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 16
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 17
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } public function get key():uint{ return (_key); } } }//package Box2D.Collision
Section 18
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 19
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - _local21) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 20
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 21
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 22
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 23
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var proxyId1:uint; public var userData;// = null public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 24
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 25
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 26
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 27
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 28
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local6) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 29
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 30
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 31
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 32
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 33
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 34
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 35
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 36
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 37
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return ((((_r << 16) | (_g << 8)) | _b)); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 38
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 20; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 39
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 40
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetNext():b2Contact{ return (m_next); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var tangentMass:Number; public var equalizedMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 45
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; public class b2ContactResult { public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 47
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 49
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 50
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 51
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 52
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_ground2:b2Body; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 53
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 54
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular1:Number; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 55
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 56
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 57
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.Joints
Section 58
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 59
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.Joints
Section 61
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 62
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; import Types.*; public class b2PulleyJoint extends b2Joint { public var m_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; public static const b2_minPulleyLength:Number = 1; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if ((((Math.abs(_local2.m_linearVelocity.y) > 0.5)) || ((Math.abs(_local3.m_linearVelocity.y) > 0.5)))){ Preloader.sound.Play(SoundID.PULLEY); } else { Preloader.sound.Stop(SoundID.PULLEY); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 63
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 64
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_pivotMass:b2Mat22; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.Joints
Section 65
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var motorSpeed:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var lowerAngle:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 66
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 67
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2BodyDef { public var angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 68
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ if (_arg1.m_userData){ _arg1.m_userData.outBoundary = true; }; } } }//package Box2D.Dynamics
Section 69
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 70
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 71
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape2; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 72
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import flash.display.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 73
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 74
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_joints:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 75
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 76
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function GetDebugDraw():b2DebugDraw{ return (m_debugDraw); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function Validate():void{ m_broadPhase.Validate(); } public function GetGravity():b2Vec2{ return (m_gravity); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function GetBodyList():b2Body{ return (m_bodyList); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 77
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public static function getObjectLength(_arg1:Object):uint{ var _local3:String; var _local2:uint; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } public static function concatObjects(... _args):Object{ var _local3:Object; var _local5:String; var _local2:Object = {}; var _local4:int; while (_local4 < _args.length) { _local3 = _args[_local4]; for (_local5 in _local3) { if (_local3[_local5] == null){ delete _local2[_local5]; } else { _local2[_local5] = _local3[_local5]; }; }; _local4++; }; return (_local2); } } }//package caurina.transitions
Section 78
//Equations (caurina.transitions.Equations) package caurina.transitions { public class Equations { public function Equations(){ trace("Equations is a static class and should not be instantiated."); } public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); }; --_arg1; return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2)); } public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2)); }; _arg1 = (_arg1 - 2); _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2)); } public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2)); } public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2)); } public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function init():void{ Tweener.registerTransition("easenone", easeNone); Tweener.registerTransition("linear", easeNone); Tweener.registerTransition("easeinquad", easeInQuad); Tweener.registerTransition("easeoutquad", easeOutQuad); Tweener.registerTransition("easeinoutquad", easeInOutQuad); Tweener.registerTransition("easeoutinquad", easeOutInQuad); Tweener.registerTransition("easeincubic", easeInCubic); Tweener.registerTransition("easeoutcubic", easeOutCubic); Tweener.registerTransition("easeinoutcubic", easeInOutCubic); Tweener.registerTransition("easeoutincubic", easeOutInCubic); Tweener.registerTransition("easeinquart", easeInQuart); Tweener.registerTransition("easeoutquart", easeOutQuart); Tweener.registerTransition("easeinoutquart", easeInOutQuart); Tweener.registerTransition("easeoutinquart", easeOutInQuart); Tweener.registerTransition("easeinquint", easeInQuint); Tweener.registerTransition("easeoutquint", easeOutQuint); Tweener.registerTransition("easeinoutquint", easeInOutQuint); Tweener.registerTransition("easeoutinquint", easeOutInQuint); Tweener.registerTransition("easeinsine", easeInSine); Tweener.registerTransition("easeoutsine", easeOutSine); Tweener.registerTransition("easeinoutsine", easeInOutSine); Tweener.registerTransition("easeoutinsine", easeOutInSine); Tweener.registerTransition("easeincirc", easeInCirc); Tweener.registerTransition("easeoutcirc", easeOutCirc); Tweener.registerTransition("easeinoutcirc", easeInOutCirc); Tweener.registerTransition("easeoutincirc", easeOutInCirc); Tweener.registerTransition("easeinexpo", easeInExpo); Tweener.registerTransition("easeoutexpo", easeOutExpo); Tweener.registerTransition("easeinoutexpo", easeInOutExpo); Tweener.registerTransition("easeoutinexpo", easeOutInExpo); Tweener.registerTransition("easeinelastic", easeInElastic); Tweener.registerTransition("easeoutelastic", easeOutElastic); Tweener.registerTransition("easeinoutelastic", easeInOutElastic); Tweener.registerTransition("easeoutinelastic", easeOutInElastic); Tweener.registerTransition("easeinback", easeInBack); Tweener.registerTransition("easeoutback", easeOutBack); Tweener.registerTransition("easeinoutback", easeInOutBack); Tweener.registerTransition("easeoutinback", easeOutInBack); Tweener.registerTransition("easeinbounce", easeInBounce); Tweener.registerTransition("easeoutbounce", easeOutBounce); Tweener.registerTransition("easeinoutbounce", easeInOutBounce); Tweener.registerTransition("easeoutinbounce", easeOutInBounce); } public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001))); } public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; --_arg1; return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); } public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005))); }; --_arg1; return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2)); } public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } } }//package caurina.transitions
Section 79
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var modifierParameters:Array; public var isSpecialProperty:Boolean; public var valueComplete:Number; public var modifierFunction:Function; public var extra:Object; public var valueStart:Number; public var hasModifier:Boolean; public var arrayIndex:Number; public var originalValueComplete:Object; public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Object, _arg4:Number, _arg5:Object, _arg6:Boolean, _arg7:Function, _arg8:Array){ valueStart = _arg1; valueComplete = _arg2; originalValueComplete = _arg3; arrayIndex = _arg4; extra = _arg5; isSpecialProperty = _arg6; hasModifier = Boolean(_arg7); modifierFunction = _arg7; modifierParameters = _arg8; } public function toString():String{ var _local1 = "\n[PropertyInfoObj "; _local1 = (_local1 + ("valueStart:" + String(valueStart))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("valueComplete:" + String(valueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("originalValueComplete:" + String(originalValueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("arrayIndex:" + String(arrayIndex))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("extra:" + String(extra))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("isSpecialProperty:" + String(isSpecialProperty))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("hasModifier:" + String(hasModifier))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierFunction:" + String(modifierFunction))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierParameters:" + String(modifierParameters))); _local1 = (_local1 + "]\n"); return (_local1); } public function clone():PropertyInfoObj{ var _local1:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters); return (_local1); } } }//package caurina.transitions
Section 80
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var parameters:Array; public var getValue:Function; public var preProcess:Function; public var setValue:Function; public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null, _arg4:Function=null){ getValue = _arg1; setValue = _arg2; parameters = _arg3; preProcess = _arg4; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialProperty "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("setValue:" + String(setValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("preProcess:" + String(preProcess))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 81
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier) package caurina.transitions { public class SpecialPropertyModifier { public var getValue:Function; public var modifyValues:Function; public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){ modifyValues = _arg1; getValue = _arg2; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialPropertyModifier "); _local1 = (_local1 + ("modifyValues:" + String(modifyValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 82
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter) package caurina.transitions { public class SpecialPropertySplitter { public var parameters:Array; public var splitValues:Function; public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){ splitValues = _arg1; parameters = _arg2; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 83
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tweener { private static var _timeScale:Number = 1; private static var _currentTimeFrame:Number; private static var _specialPropertySplitterList:Object; private static var _engineExists:Boolean = false; private static var _specialPropertyModifierList:Object; private static var _currentTime:Number; private static var _tweenList:Array; private static var _specialPropertyList:Object; private static var _transitionList:Object; private static var _inited:Boolean = false; private static var __tweener_controller__:MovieClip; public function Tweener(){ trace("Tweener is a static class and should not be instantiated."); } public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{ if (!_inited){ init(); }; var _local4:SpecialPropertyModifier = new SpecialPropertyModifier(_arg2, _arg3); _specialPropertyModifierList[_arg1] = _local4; } public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{ if (!_inited){ init(); }; var _local6:SpecialProperty = new SpecialProperty(_arg2, _arg3, _arg4, _arg5); _specialPropertyList[_arg1] = _local6; } public static function init(... _args):void{ _inited = true; _transitionList = new Object(); Equations.init(); _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); } private static function updateTweens():Boolean{ var _local1:int; if (_tweenList.length == 0){ return (false); }; _local1 = 0; while (_local1 < _tweenList.length) { if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){ if (!updateTweenByIndex(_local1)){ removeTweenByIndex(_local1); }; if (_tweenList[_local1] == null){ removeTweenByIndex(_local1, true); _local1--; }; }; _local1++; }; return (true); } public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Array; var _local8:Function; var _local9:TweenListObj; var _local10:Number; var _local11:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local4 = _arg1.concat(); } else { _local4 = [_arg1]; }; var _local5:Object = _arg2; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local6:Number = (isNaN(_local5.time)) ? 0 : _local5.time; var _local7:Number = (isNaN(_local5.delay)) ? 0 : _local5.delay; if (typeof(_local5.transition) == "string"){ _local11 = _local5.transition.toLowerCase(); _local8 = _transitionList[_local11]; } else { _local8 = _local5.transition; }; if (!Boolean(_local8)){ _local8 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local4.length) { if (_local5.useFrames == true){ _local9 = new TweenListObj(_local4[_local3], (_currentTimeFrame + (_local7 / _timeScale)), (_currentTimeFrame + ((_local7 + _local6) / _timeScale)), true, _local8, _local5.transitionParams); } else { _local9 = new TweenListObj(_local4[_local3], (_currentTime + ((_local7 * 1000) / _timeScale)), (_currentTime + (((_local7 * 1000) + (_local6 * 1000)) / _timeScale)), false, _local8, _local5.transitionParams); }; _local9.properties = null; _local9.onStart = _local5.onStart; _local9.onUpdate = _local5.onUpdate; _local9.onComplete = _local5.onComplete; _local9.onOverwrite = _local5.onOverwrite; _local9.onStartParams = _local5.onStartParams; _local9.onUpdateParams = _local5.onUpdateParams; _local9.onCompleteParams = _local5.onCompleteParams; _local9.onOverwriteParams = _local5.onOverwriteParams; _local9.onStartScope = _local5.onStartScope; _local9.onUpdateScope = _local5.onUpdateScope; _local9.onCompleteScope = _local5.onCompleteScope; _local9.onOverwriteScope = _local5.onOverwriteScope; _local9.onErrorScope = _local5.onErrorScope; _local9.isCaller = true; _local9.count = _local5.count; _local9.waitFrames = _local5.waitFrames; _tweenList.push(_local9); if ((((_local6 == 0)) && ((_local7 == 0)))){ _local10 = (_tweenList.length - 1); updateTweenByIndex(_local10); removeTweenByIndex(_local10); }; _local3++; }; return (true); } public static function pauseAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { pauseTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function removeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local5:SpecialPropertySplitter; var _local6:Array; var _local7:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ if (_specialPropertySplitterList[_args[_local4]]){ _local5 = _specialPropertySplitterList[_args[_local4]]; _local6 = _local5.splitValues(_arg1, null); _local7 = 0; while (_local7 < _local6.length) { _local3.push(_local6[_local7].name); _local7++; }; } else { _local3.push(_args[_local4]); }; }; _local4++; }; return (affectTweens(removeTweenByIndex, _arg1, _local3)); } public static function splitTweens(_arg1:Number, _arg2:Array):uint{ var _local5:uint; var _local6:String; var _local7:Boolean; var _local3:TweenListObj = _tweenList[_arg1]; var _local4:TweenListObj = _local3.clone(false); _local5 = 0; while (_local5 < _arg2.length) { _local6 = _arg2[_local5]; if (Boolean(_local3.properties[_local6])){ _local3.properties[_local6] = undefined; delete _local3.properties[_local6]; }; _local5++; }; for (_local6 in _local4.properties) { _local7 = false; _local5 = 0; while (_local5 < _arg2.length) { if (_arg2[_local5] == _local6){ _local7 = true; break; }; _local5++; }; if (!_local7){ _local4.properties[_local6] = undefined; delete _local4.properties[_local6]; }; }; _tweenList.push(_local4); return ((_tweenList.length - 1)); } public static function updateFrame():void{ _currentTimeFrame++; } public static function resumeTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (!(_local2.isPaused)))){ return (false); }; var _local3:Number = getCurrentTweeningTime(_local2); _local2.timeStart = (_local2.timeStart + (_local3 - _local2.timePaused)); _local2.timeComplete = (_local2.timeComplete + (_local3 - _local2.timePaused)); _local2.timePaused = undefined; _local2.isPaused = false; return (true); } public static function getVersion():String{ return ("AS3 1.31.74"); } public static function onEnterFrame(_arg1:Event):void{ updateTime(); updateFrame(); var _local2:Boolean; _local2 = updateTweens(); if (!_local2){ stopEngine(); }; } public static function updateTime():void{ _currentTime = getTimer(); } private static function updateTweenByIndex(_arg1:Number):Boolean{ var tTweening:TweenListObj; var mustUpdate:Boolean; var nv:Number; var t:Number; var b:Number; var c:Number; var d:Number; var pName:String; var eventScope:Object; var tScope:Object; var tProperty:Object; var pv:Number; var i = _arg1; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; var isOver:Boolean; var cTime:Number = getCurrentTweeningTime(tTweening); if (cTime >= tTweening.timeStart){ tScope = tTweening.scope; if (tTweening.isCaller){ do { t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1)); b = tTweening.timeStart; c = (tTweening.timeComplete - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); } while (!(cTime >= nv)); } else { mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates))); if (cTime >= tTweening.timeComplete){ isOver = true; mustUpdate = true; }; if (!tTweening.hasStarted){ if (Boolean(tTweening.onStart)){ eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope; try { tTweening.onStart.apply(eventScope, tTweening.onStartParams); } catch(e2:Error) { handleError(tTweening, e2, "onStart"); }; }; for (pName in tTweening.properties) { if (tTweening.properties[pName].isSpecialProperty){ if (Boolean(_specialPropertyList[pName].preProcess)){ tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra); }; pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { pv = tScope[pName]; }; tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv; }; mustUpdate = true; tTweening.hasStarted = true; }; if (mustUpdate){ for (pName in tTweening.properties) { tProperty = tTweening.properties[pName]; if (isOver){ nv = tProperty.valueComplete; } else { if (tProperty.hasModifier){ t = (cTime - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams); nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters); } else { t = (cTime - tTweening.timeStart); b = tProperty.valueStart; c = (tProperty.valueComplete - tProperty.valueStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d, tTweening.transitionParams); }; }; if (tTweening.rounded){ nv = Math.round(nv); }; if (tProperty.isSpecialProperty){ _specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { tScope[pName] = nv; }; }; tTweening.updatesSkipped = 0; if (Boolean(tTweening.onUpdate)){ eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope; try { tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams); } catch(e3:Error) { handleError(tTweening, e3, "onUpdate"); }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope; try { tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams); } catch(e4:Error) { handleError(tTweening, e4, "onComplete"); }; }; return (!(isOver)); }; return (true); } public static function setTimeScale(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (isNaN(_arg1)){ _arg1 = 1; }; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; if (_arg1 != _timeScale){ if (_tweenList != null){ _local2 = 0; while (_local2 < _tweenList.length) { _local3 = getCurrentTweeningTime(_tweenList[_local2]); _tweenList[_local2].timeStart = (_local3 - (((_local3 - _tweenList[_local2].timeStart) * _timeScale) / _arg1)); _tweenList[_local2].timeComplete = (_local3 - (((_local3 - _tweenList[_local2].timeComplete) * _timeScale) / _arg1)); if (_tweenList[_local2].timePaused != undefined){ _tweenList[_local2].timePaused = (_local3 - (((_local3 - _tweenList[_local2].timePaused) * _timeScale) / _arg1)); }; _local2++; }; }; _timeScale = _arg1; }; } public static function resumeAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { resumeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } private static function handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{ var eventScope:Object; var pTweening = _arg1; var pError = _arg2; var pCallBackName = _arg3; if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){ eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope; try { pTweening.onError.apply(eventScope, [pTweening.scope, pError]); } catch(metaError:Error) { printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + metaError.getStackTrace())); }; } else { if (!Boolean(pTweening.onError)){ printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace())); }; }; } private static function startEngine():void{ _engineExists = true; _tweenList = new Array(); __tweener_controller__ = new MovieClip(); __tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); _currentTimeFrame = 0; updateTime(); } public static function removeAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { removeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Number; var _local5:String; var _local6:Array; var _local13:Function; var _local14:Object; var _local15:TweenListObj; var _local16:Number; var _local17:Array; var _local18:Array; var _local19:Array; var _local20:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local6 = _arg1.concat(); } else { _local6 = [_arg1]; }; var _local7:Object = TweenListObj.makePropertiesChain(_arg2); if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local8:Number = (isNaN(_local7.time)) ? 0 : _local7.time; var _local9:Number = (isNaN(_local7.delay)) ? 0 : _local7.delay; var _local10:Array = new Array(); var _local11:Object = {time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true}; var _local12:Object = new Object(); for (_local5 in _local7) { if (!_local11[_local5]){ if (_specialPropertySplitterList[_local5]){ _local17 = _specialPropertySplitterList[_local5].splitValues(_local7[_local5], _specialPropertySplitterList[_local5].parameters); _local3 = 0; while (_local3 < _local17.length) { if (_specialPropertySplitterList[_local17[_local3].name]){ _local18 = _specialPropertySplitterList[_local17[_local3].name].splitValues(_local17[_local3].value, _specialPropertySplitterList[_local17[_local3].name].parameters); _local4 = 0; while (_local4 < _local18.length) { _local10[_local18[_local4].name] = {valueStart:undefined, valueComplete:_local18[_local4].value, arrayIndex:_local18[_local4].arrayIndex, isSpecialProperty:false}; _local4++; }; } else { _local10[_local17[_local3].name] = {valueStart:undefined, valueComplete:_local17[_local3].value, arrayIndex:_local17[_local3].arrayIndex, isSpecialProperty:false}; }; _local3++; }; } else { if (_specialPropertyModifierList[_local5] != undefined){ _local19 = _specialPropertyModifierList[_local5].modifyValues(_local7[_local5]); _local3 = 0; while (_local3 < _local19.length) { _local12[_local19[_local3].name] = {modifierParameters:_local19[_local3].parameters, modifierFunction:_specialPropertyModifierList[_local5].getValue}; _local3++; }; } else { _local10[_local5] = {valueStart:undefined, valueComplete:_local7[_local5]}; }; }; }; }; for (_local5 in _local10) { if (_specialPropertyList[_local5] != undefined){ _local10[_local5].isSpecialProperty = true; } else { if (_local6[0][_local5] == undefined){ printError((((("The property '" + _local5) + "' doesn't seem to be a normal object property of ") + String(_local6[0])) + " or a registered special property.")); }; }; }; for (_local5 in _local12) { if (_local10[_local5] != undefined){ _local10[_local5].modifierParameters = _local12[_local5].modifierParameters; _local10[_local5].modifierFunction = _local12[_local5].modifierFunction; }; }; if (typeof(_local7.transition) == "string"){ _local20 = _local7.transition.toLowerCase(); _local13 = _transitionList[_local20]; } else { _local13 = _local7.transition; }; if (!Boolean(_local13)){ _local13 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local6.length) { _local14 = new Object(); for (_local5 in _local10) { _local14[_local5] = new PropertyInfoObj(_local10[_local5].valueStart, _local10[_local5].valueComplete, _local10[_local5].valueComplete, _local10[_local5].arrayIndex, {}, _local10[_local5].isSpecialProperty, _local10[_local5].modifierFunction, _local10[_local5].modifierParameters); }; if (_local7.useFrames == true){ _local15 = new TweenListObj(_local6[_local3], (_currentTimeFrame + (_local9 / _timeScale)), (_currentTimeFrame + ((_local9 + _local8) / _timeScale)), true, _local13, _local7.transitionParams); } else { _local15 = new TweenListObj(_local6[_local3], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), false, _local13, _local7.transitionParams); }; _local15.properties = _local14; _local15.onStart = _local7.onStart; _local15.onUpdate = _local7.onUpdate; _local15.onComplete = _local7.onComplete; _local15.onOverwrite = _local7.onOverwrite; _local15.onError = _local7.onError; _local15.onStartParams = _local7.onStartParams; _local15.onUpdateParams = _local7.onUpdateParams; _local15.onCompleteParams = _local7.onCompleteParams; _local15.onOverwriteParams = _local7.onOverwriteParams; _local15.onStartScope = _local7.onStartScope; _local15.onUpdateScope = _local7.onUpdateScope; _local15.onCompleteScope = _local7.onCompleteScope; _local15.onOverwriteScope = _local7.onOverwriteScope; _local15.onErrorScope = _local7.onErrorScope; _local15.rounded = _local7.rounded; _local15.skipUpdates = _local7.skipUpdates; removeTweensByTime(_local15.scope, _local15.properties, _local15.timeStart, _local15.timeComplete); _tweenList.push(_local15); if ((((_local8 == 0)) && ((_local9 == 0)))){ _local16 = (_tweenList.length - 1); updateTweenByIndex(_local16); removeTweenByIndex(_local16); }; _local3++; }; return (true); } public static function registerTransition(_arg1:String, _arg2:Function):void{ if (!_inited){ init(); }; _transitionList[_arg1] = _arg2; } public static function printError(_arg1:String):void{ trace(("## [Tweener] Error: " + _arg1)); } private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{ var _local5:uint; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; var _local4:Boolean; if (!Boolean(_tweenList)){ return (false); }; _local5 = 0; while (_local5 < _tweenList.length) { if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){ if (_arg3.length == 0){ _arg1(_local5); _local4 = true; } else { _local6 = new Array(); _local7 = 0; while (_local7 < _arg3.length) { if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){ _local6.push(_arg3[_local7]); }; _local7++; }; if (_local6.length > 0){ _local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties); if (_local8 == _local6.length){ _arg1(_local5); _local4 = true; } else { _local9 = splitTweens(_local5, _local6); _arg1(_local9); _local4 = true; }; }; }; }; _local5++; }; return (_local4); } public static function getTweens(_arg1:Object):Array{ var _local2:uint; var _local3:String; if (!Boolean(_tweenList)){ return ([]); }; var _local4:Array = new Array(); _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ for (_local3 in _tweenList[_local2].properties) { _local4.push(_local3); }; }; _local2++; }; return (_local4); } public static function isTweening(_arg1:Object):Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ return (true); }; _local2++; }; return (false); } public static function pauseTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (_local2.isPaused))){ return (false); }; _local2.timePaused = getCurrentTweeningTime(_local2); _local2.isPaused = true; return (true); } public static function getCurrentTweeningTime(_arg1:Object):Number{ return ((_arg1.useFrames) ? _currentTimeFrame : _currentTime); } public static function getTweenCount(_arg1:Object):Number{ var _local2:uint; if (!Boolean(_tweenList)){ return (0); }; var _local3:Number = 0; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ _local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties)); }; _local2++; }; return (_local3); } private static function stopEngine():void{ _engineExists = false; _tweenList = null; _currentTime = 0; _currentTimeFrame = 0; __tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); __tweener_controller__ = null; } public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{ var removedLocally:Boolean; var i:uint; var pName:String; var eventScope:Object; var p_scope = _arg1; var p_properties = _arg2; var p_timeStart = _arg3; var p_timeComplete = _arg4; var removed:Boolean; var tl:uint = _tweenList.length; i = 0; while (i < tl) { if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){ if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){ removedLocally = false; for (pName in _tweenList[i].properties) { if (Boolean(p_properties[pName])){ if (Boolean(_tweenList[i].onOverwrite)){ eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope; try { _tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams); } catch(e:Error) { handleError(_tweenList[i], e, "onOverwrite"); }; }; _tweenList[i].properties[pName] = undefined; delete _tweenList[i].properties[pName]; removedLocally = true; removed = true; }; }; if (removedLocally){ if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){ removeTweenByIndex(i); }; }; }; }; i = (i + 1); }; return (removed); } public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{ if (!_inited){ init(); }; var _local4:SpecialPropertySplitter = new SpecialPropertySplitter(_arg2, _arg3); _specialPropertySplitterList[_arg1] = _local4; } public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{ _tweenList[_arg1] = null; if (_arg2){ _tweenList.splice(_arg1, 1); }; return (true); } public static function resumeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(resumeTweenByIndex, _arg1, _local3)); } public static function pauseTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(pauseTweenByIndex, _arg1, _local3)); } } }//package caurina.transitions
Section 84
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var hasStarted:Boolean; public var onUpdate:Function; public var useFrames:Boolean; public var count:Number; public var onOverwriteParams:Array; public var timeStart:Number; public var timeComplete:Number; public var onStartParams:Array; public var onUpdateScope:Object; public var rounded:Boolean; public var onUpdateParams:Array; public var properties:Object; public var onComplete:Function; public var transitionParams:Object; public var updatesSkipped:Number; public var onStart:Function; public var onOverwriteScope:Object; public var skipUpdates:Number; public var onStartScope:Object; public var scope:Object; public var isCaller:Boolean; public var timePaused:Number; public var transition:Function; public var onCompleteParams:Array; public var onError:Function; public var timesCalled:Number; public var onErrorScope:Object; public var onOverwrite:Function; public var isPaused:Boolean; public var waitFrames:Boolean; public var onCompleteScope:Object; public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object){ scope = _arg1; timeStart = _arg2; timeComplete = _arg3; useFrames = _arg4; transition = _arg5; transitionParams = _arg6; properties = new Object(); isPaused = false; timePaused = undefined; isCaller = false; updatesSkipped = 0; timesCalled = 0; skipUpdates = 0; hasStarted = false; } public function clone(_arg1:Boolean):TweenListObj{ var _local3:String; var _local2:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams); _local2.properties = new Array(); for (_local3 in properties) { _local2.properties[_local3] = properties[_local3].clone(); }; _local2.skipUpdates = skipUpdates; _local2.updatesSkipped = updatesSkipped; if (!_arg1){ _local2.onStart = onStart; _local2.onUpdate = onUpdate; _local2.onComplete = onComplete; _local2.onOverwrite = onOverwrite; _local2.onError = onError; _local2.onStartParams = onStartParams; _local2.onUpdateParams = onUpdateParams; _local2.onCompleteParams = onCompleteParams; _local2.onOverwriteParams = onOverwriteParams; _local2.onStartScope = onStartScope; _local2.onUpdateScope = onUpdateScope; _local2.onCompleteScope = onCompleteScope; _local2.onOverwriteScope = onOverwriteScope; _local2.onErrorScope = onErrorScope; }; _local2.rounded = rounded; _local2.isPaused = isPaused; _local2.timePaused = timePaused; _local2.isCaller = isCaller; _local2.count = count; _local2.timesCalled = timesCalled; _local2.waitFrames = waitFrames; _local2.hasStarted = hasStarted; return (_local2); } public function toString():String{ var _local3:String; var _local1 = "\n[TweenListObj "; _local1 = (_local1 + ("scope:" + String(scope))); _local1 = (_local1 + ", properties:"); var _local2:Boolean; for (_local3 in properties) { if (!_local2){ _local1 = (_local1 + ","); }; _local1 = (_local1 + ("[name:" + properties[_local3].name)); _local1 = (_local1 + (",valueStart:" + properties[_local3].valueStart)); _local1 = (_local1 + (",valueComplete:" + properties[_local3].valueComplete)); _local1 = (_local1 + "]"); _local2 = false; }; _local1 = (_local1 + (", timeStart:" + String(timeStart))); _local1 = (_local1 + (", timeComplete:" + String(timeComplete))); _local1 = (_local1 + (", useFrames:" + String(useFrames))); _local1 = (_local1 + (", transition:" + String(transition))); _local1 = (_local1 + (", transitionParams:" + String(transitionParams))); if (skipUpdates){ _local1 = (_local1 + (", skipUpdates:" + String(skipUpdates))); }; if (updatesSkipped){ _local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped))); }; if (Boolean(onStart)){ _local1 = (_local1 + (", onStart:" + String(onStart))); }; if (Boolean(onUpdate)){ _local1 = (_local1 + (", onUpdate:" + String(onUpdate))); }; if (Boolean(onComplete)){ _local1 = (_local1 + (", onComplete:" + String(onComplete))); }; if (Boolean(onOverwrite)){ _local1 = (_local1 + (", onOverwrite:" + String(onOverwrite))); }; if (Boolean(onError)){ _local1 = (_local1 + (", onError:" + String(onError))); }; if (onStartParams){ _local1 = (_local1 + (", onStartParams:" + String(onStartParams))); }; if (onUpdateParams){ _local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams))); }; if (onCompleteParams){ _local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams))); }; if (onOverwriteParams){ _local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams))); }; if (onStartScope){ _local1 = (_local1 + (", onStartScope:" + String(onStartScope))); }; if (onUpdateScope){ _local1 = (_local1 + (", onUpdateScope:" + String(onUpdateScope))); }; if (onCompleteScope){ _local1 = (_local1 + (", onCompleteScope:" + String(onCompleteScope))); }; if (onOverwriteScope){ _local1 = (_local1 + (", onOverwriteScope:" + String(onOverwriteScope))); }; if (onErrorScope){ _local1 = (_local1 + (", onErrorScope:" + String(onErrorScope))); }; if (rounded){ _local1 = (_local1 + (", rounded:" + String(rounded))); }; if (isPaused){ _local1 = (_local1 + (", isPaused:" + String(isPaused))); }; if (timePaused){ _local1 = (_local1 + (", timePaused:" + String(timePaused))); }; if (isCaller){ _local1 = (_local1 + (", isCaller:" + String(isCaller))); }; if (count){ _local1 = (_local1 + (", count:" + String(count))); }; if (timesCalled){ _local1 = (_local1 + (", timesCalled:" + String(timesCalled))); }; if (waitFrames){ _local1 = (_local1 + (", waitFrames:" + String(waitFrames))); }; if (hasStarted){ _local1 = (_local1 + (", hasStarted:" + String(hasStarted))); }; _local1 = (_local1 + "]\n"); return (_local1); } public static function makePropertiesChain(_arg1:Object):Object{ var _local3:Object; var _local4:Object; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; var _local2:Object = _arg1.base; if (_local2){ _local3 = {}; if ((_local2 is Array)){ _local4 = []; _local8 = 0; while (_local8 < _local2.length) { _local4.push(_local2[_local8]); _local8++; }; } else { _local4 = [_local2]; }; _local4.push(_arg1); _local6 = _local4.length; _local7 = 0; while (_local7 < _local6) { if (_local4[_local7]["base"]){ _local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]); } else { _local5 = _local4[_local7]; }; _local3 = AuxFunctions.concatObjects(_local3, _local5); _local7++; }; if (_local3["base"]){ delete _local3["base"]; }; return (_local3); //unresolved jump }; return (_arg1); } } }//package caurina.transitions
Section 85
//JSONDecoder (com.adobe.serialization.json.JSONDecoder) package com.adobe.serialization.json { public class JSONDecoder { private var value; private var tokenizer:JSONTokenizer; private var token:JSONToken; public function JSONDecoder(_arg1:String){ tokenizer = new JSONTokenizer(_arg1); nextToken(); value = parseValue(); } private function nextToken():JSONToken{ return ((token = tokenizer.getNextToken())); } private function parseObject():Object{ var _local1:Object; var _local2:String; _local1 = new Object(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; while (true) { if (token.type == JSONTokenType.STRING){ _local2 = String(token.value); nextToken(); if (token.type == JSONTokenType.COLON){ nextToken(); _local1[_local2] = parseValue(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; if (token.type == JSONTokenType.COMMA){ nextToken(); } else { tokenizer.parseError(("Expecting } or , but found " + token.value)); }; } else { tokenizer.parseError(("Expecting : but found " + token.value)); }; } else { tokenizer.parseError(("Expecting string but found " + token.value)); }; }; return (null); } private function parseArray():Array{ var _local1:Array; _local1 = new Array(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; while (true) { _local1.push(parseValue()); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; if (token.type == JSONTokenType.COMMA){ nextToken(); } else { tokenizer.parseError(("Expecting ] or , but found " + token.value)); }; }; return (null); } public function getValue(){ return (value); } private function parseValue():Object{ if (token == null){ tokenizer.parseError("Unexpected end of input"); }; switch (token.type){ case JSONTokenType.LEFT_BRACE: return (parseObject()); case JSONTokenType.LEFT_BRACKET: return (parseArray()); case JSONTokenType.STRING: case JSONTokenType.NUMBER: case JSONTokenType.TRUE: case JSONTokenType.FALSE: case JSONTokenType.NULL: return (token.value); default: tokenizer.parseError(("Unexpected " + token.value)); }; return (null); } } }//package com.adobe.serialization.json
Section 86
//JSONParseError (com.adobe.serialization.json.JSONParseError) package com.adobe.serialization.json { public class JSONParseError extends Error { private var _text:String; private var _location:int; public function JSONParseError(_arg1:String="", _arg2:int=0, _arg3:String=""){ super(_arg1); _location = _arg2; _text = _arg3; } public function get text():String{ return (_text); } public function get location():int{ return (_location); } } }//package com.adobe.serialization.json
Section 87
//JSONToken (com.adobe.serialization.json.JSONToken) package com.adobe.serialization.json { public class JSONToken { private var _value:Object; private var _type:int; public function JSONToken(_arg1:int=-1, _arg2:Object=null){ _type = _arg1; _value = _arg2; } public function set value(_arg1:Object):void{ _value = _arg1; } public function get value():Object{ return (_value); } public function set type(_arg1:int):void{ _type = _arg1; } public function get type():int{ return (_type); } } }//package com.adobe.serialization.json
Section 88
//JSONTokenizer (com.adobe.serialization.json.JSONTokenizer) package com.adobe.serialization.json { public class JSONTokenizer { private var loc:int; private var ch:String; private var obj:Object; private var jsonString:String; public function JSONTokenizer(_arg1:String){ jsonString = _arg1; loc = 0; nextChar(); } private function skipComments():void{ if (ch == "/"){ nextChar(); switch (ch){ case "/": do { nextChar(); } while (((!((ch == "\n"))) && (!((ch == ""))))); nextChar(); break; case "*": nextChar(); while (true) { if (ch == "*"){ nextChar(); if (ch == "/"){ nextChar(); break; }; } else { nextChar(); }; if (ch == ""){ parseError("Multi-line comment not closed"); }; }; break; default: parseError((("Unexpected " + ch) + " encountered (expecting '/' or '*' )")); }; }; } private function isDigit(_arg1:String):Boolean{ return ((((_arg1 >= "0")) && ((_arg1 <= "9")))); } private function readNumber():JSONToken{ var _local1:JSONToken; var _local2:String; var _local3:Number; _local1 = new JSONToken(); _local1.type = JSONTokenType.NUMBER; _local2 = ""; if (ch == "-"){ _local2 = (_local2 + "-"); nextChar(); }; if (!isDigit(ch)){ parseError("Expecting a digit"); }; if (ch == "0"){ _local2 = (_local2 + ch); nextChar(); if (isDigit(ch)){ parseError("A digit cannot immediately follow 0"); }; } else { while (isDigit(ch)) { _local2 = (_local2 + ch); nextChar(); }; }; if (ch == "."){ _local2 = (_local2 + "."); nextChar(); if (!isDigit(ch)){ parseError("Expecting a digit"); }; while (isDigit(ch)) { _local2 = (_local2 + ch); nextChar(); }; }; if ((((ch == "e")) || ((ch == "E")))){ _local2 = (_local2 + "e"); nextChar(); if ((((ch == "+")) || ((ch == "-")))){ _local2 = (_local2 + ch); nextChar(); }; if (!isDigit(ch)){ parseError("Scientific notation number needs exponent value"); }; while (isDigit(ch)) { _local2 = (_local2 + ch); nextChar(); }; }; _local3 = Number(_local2); if (((isFinite(_local3)) && (!(isNaN(_local3))))){ _local1.value = _local3; return (_local1); }; parseError((("Number " + _local3) + " is not valid!")); return (null); } private function nextChar():String{ return ((ch = jsonString.charAt(loc++))); } public function getNextToken():JSONToken{ var _local1:JSONToken; var _local2:String; var _local3:String; var _local4:String; _local1 = new JSONToken(); skipIgnored(); switch (ch){ case "{": _local1.type = JSONTokenType.LEFT_BRACE; _local1.value = "{"; nextChar(); break; case "}": _local1.type = JSONTokenType.RIGHT_BRACE; _local1.value = "}"; nextChar(); break; case "[": _local1.type = JSONTokenType.LEFT_BRACKET; _local1.value = "["; nextChar(); break; case "]": _local1.type = JSONTokenType.RIGHT_BRACKET; _local1.value = "]"; nextChar(); break; case ",": _local1.type = JSONTokenType.COMMA; _local1.value = ","; nextChar(); break; case ":": _local1.type = JSONTokenType.COLON; _local1.value = ":"; nextChar(); break; case "t": _local2 = ((("t" + nextChar()) + nextChar()) + nextChar()); if (_local2 == "true"){ _local1.type = JSONTokenType.TRUE; _local1.value = true; nextChar(); } else { parseError(("Expecting 'true' but found " + _local2)); }; break; case "f": _local3 = (((("f" + nextChar()) + nextChar()) + nextChar()) + nextChar()); if (_local3 == "false"){ _local1.type = JSONTokenType.FALSE; _local1.value = false; nextChar(); } else { parseError(("Expecting 'false' but found " + _local3)); }; break; case "n": _local4 = ((("n" + nextChar()) + nextChar()) + nextChar()); if (_local4 == "null"){ _local1.type = JSONTokenType.NULL; _local1.value = null; nextChar(); } else { parseError(("Expecting 'null' but found " + _local4)); }; break; case "\"": _local1 = readString(); break; default: if (((isDigit(ch)) || ((ch == "-")))){ _local1 = readNumber(); } else { if (ch == ""){ return (null); }; parseError((("Unexpected " + ch) + " encountered")); }; }; return (_local1); } private function skipWhite():void{ while (isWhiteSpace(ch)) { nextChar(); }; } private function isWhiteSpace(_arg1:String):Boolean{ return ((((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n")))) || ((_arg1 == "\r")))); } public function parseError(_arg1:String):void{ throw (new JSONParseError(_arg1, loc, jsonString)); } private function skipIgnored():void{ skipWhite(); skipComments(); skipWhite(); } private function isHexDigit(_arg1:String):Boolean{ var _local2:String; _local2 = _arg1.toUpperCase(); return (((isDigit(_arg1)) || ((((_local2 >= "A")) && ((_local2 <= "F")))))); } private function readString():JSONToken{ var _local1:JSONToken; var _local2:String; var _local3:String; var _local4:int; _local1 = new JSONToken(); _local1.type = JSONTokenType.STRING; _local2 = ""; nextChar(); while (((!((ch == "\""))) && (!((ch == ""))))) { if (ch == "\\"){ nextChar(); switch (ch){ case "\"": _local2 = (_local2 + "\""); break; case "/": _local2 = (_local2 + "/"); break; case "\\": _local2 = (_local2 + "\\"); break; case "b": _local2 = (_local2 + "\b"); break; case "f": _local2 = (_local2 + "\f"); break; case "n": _local2 = (_local2 + "\n"); break; case "r": _local2 = (_local2 + "\r"); break; case "t": _local2 = (_local2 + "\t"); break; case "u": _local3 = ""; _local4 = 0; while (_local4 < 4) { if (!isHexDigit(nextChar())){ parseError((" Excepted a hex digit, but found: " + ch)); }; _local3 = (_local3 + ch); _local4++; }; _local2 = (_local2 + String.fromCharCode(parseInt(_local3, 16))); break; default: _local2 = (_local2 + ("\\" + ch)); }; } else { _local2 = (_local2 + ch); }; nextChar(); }; if (ch == ""){ parseError("Unterminated string literal"); }; nextChar(); _local1.value = _local2; return (_local1); } } }//package com.adobe.serialization.json
Section 89
//JSONTokenType (com.adobe.serialization.json.JSONTokenType) package com.adobe.serialization.json { public class JSONTokenType { public static const NUMBER:int = 11; public static const FALSE:int = 8; public static const RIGHT_BRACKET:int = 4; public static const NULL:int = 9; public static const TRUE:int = 7; public static const RIGHT_BRACE:int = 2; public static const UNKNOWN:int = -1; public static const COMMA:int = 0; public static const LEFT_BRACKET:int = 3; public static const STRING:int = 10; public static const LEFT_BRACE:int = 1; public static const COLON:int = 6; } }//package com.adobe.serialization.json
Section 90
//b2BuoyancyController (com.boristhebrave.Box2D.Controllers.b2BuoyancyController) package com.boristhebrave.Box2D.Controllers { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2BuoyancyController extends b2MultiController { public var useDensity:Boolean;// = false public var useWorldGravity:Boolean;// = true public var normal:b2Vec2; public var density:Number;// = 0 public var centerInBodies:Array; public var offset:Number;// = 0 public var gravity:b2Vec2;// = null public var angularDrag:Number;// = 1 public var linearDrag:Number;// = 2 public var velocity:b2Vec2; public function b2BuoyancyController(){ normal = new b2Vec2(0, -1); velocity = new b2Vec2(0, 0); centerInBodies = new Array(); super(); } override public function Draw(_arg1:b2DebugDraw):void{ var _local2:Number = 1000; var _local3:b2Vec2 = new b2Vec2(); var _local4:b2Vec2 = new b2Vec2(); _local3.x = ((normal.x * offset) + (normal.y * _local2)); _local3.y = ((normal.y * offset) - (normal.x * _local2)); _local4.x = ((normal.x * offset) - (normal.y * _local2)); _local4.y = ((normal.y * offset) + (normal.x * _local2)); var _local5:b2Color = new b2Color(0, 0, 1); _arg1.DrawSegment(_local3, _local4, _local5); } override public function Step(_arg1:Number):void{ var _local3:b2Body; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Shape; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; if (m_bodies.length == 0){ return; }; if (useWorldGravity){ gravity = m_bodies[0].GetWorld().GetGravity().Copy(); }; var _local2:int; while (_local2 < m_bodies.length) { _local3 = m_bodies[_local2]; if (_local3.IsSleeping()){ } else { _local4 = new b2Vec2(); _local5 = new b2Vec2(); _local6 = 0; _local7 = 0; _local8 = _local3.GetShapeList(); while (_local8) { _local11 = new b2Vec2(); _local12 = _local8.ComputeSubmergedArea(normal, offset, _local3.GetXForm(), _local11); _local6 = (_local6 + _local12); _local4.x = (_local4.x + (_local12 * _local11.x)); _local4.y = (_local4.y + (_local12 * _local11.y)); if (useDensity){ _local13 = _local8.m_density; } else { _local13 = 1; }; _local7 = (_local7 + (_local12 * _local13)); _local5.x = (_local5.x + ((_local12 * _local11.x) * _local13)); _local5.y = (_local5.y + ((_local12 * _local11.y) * _local13)); _local8 = _local8.GetNext(); }; _local4.x = (_local4.x / _local6); _local4.y = (_local4.y / _local6); _local5.x = (_local5.x / _local7); _local5.y = (_local5.y / _local7); if (_local6 < Number.MIN_VALUE){ } else { _local9 = gravity.Negative(); _local9.Multiply((density * _local6)); _local3.ApplyForce(_local9, _local5); _local10 = _local3.GetLinearVelocityFromWorldPoint(_local4); _local10.Subtract(velocity); _local10.Multiply((-(linearDrag) * _local6)); _local3.ApplyForce(_local10, _local4); _local3.ApplyTorque(((((-(_local3.GetInertia()) / _local3.GetMass()) * _local6) * _local3.GetAngularVelocity()) * angularDrag)); }; }; _local2++; }; } public static function FromBodies(_arg1:Array, _arg2:b2Vec2=null, _arg3:Number=0, _arg4:Number=0):b2BuoyancyController{ var _local5:b2BuoyancyController = new (b2BuoyancyController); var _local6:* = 0; while (_local6 < _arg1.length) { _local5.AddBody(_arg1[_local6]); _local6++; }; if (_arg2 != null){ _local5.normal.SetV(_arg2); _local5.offset = _arg3; }; if (_arg4 > 0){ _local5.density = _arg4; }; return (_local5); } } }//package com.boristhebrave.Box2D.Controllers
Section 91
//b2Controller (com.boristhebrave.Box2D.Controllers.b2Controller) package com.boristhebrave.Box2D.Controllers { import Box2D.Dynamics.*; public class b2Controller { public var m_prev:b2Controller; public var m_userData; public var m_next:b2Controller; public function GetPrev():b2Controller{ return (m_prev); } public function Step(_arg1:Number):void{ } public function Draw(_arg1:b2DebugDraw):void{ } public function GetNext():b2Controller{ return (m_next); } } }//package com.boristhebrave.Box2D.Controllers
Section 92
//b2GravityController (com.boristhebrave.Box2D.Controllers.b2GravityController) package com.boristhebrave.Box2D.Controllers { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2GravityController extends b2MultiController { public var G:Number;// = 1 public var invSqr:Boolean;// = true override public function Step(_arg1:Number):void{ var _local2:int; var _local3:b2Body; var _local4:b2Vec2; var _local5:Number = 0; var _local6:int; var _local7:b2Body; var _local8:b2Vec2; var _local9:Number = 0; var _local10:Number = 0; var _local11:Number = 0; var _local12:b2Vec2; if (invSqr){ _local2 = 0; while (_local2 < m_bodies.length) { _local3 = m_bodies[_local2]; _local4 = _local3.GetWorldCenter(); _local5 = _local3.GetMass(); _local6 = 0; while (_local6 < _local2) { _local7 = m_bodies[_local6]; _local8 = _local7.GetWorldCenter(); _local9 = (_local8.x - _local4.x); _local10 = (_local8.y - _local4.y); _local11 = ((_local9 * _local9) + (_local10 * _local10)); if (_local11 < Number.MIN_VALUE){ } else { _local12 = new b2Vec2(_local9, _local10); _local12.Multiply(((((G / _local11) / Math.sqrt(_local11)) * _local5) * _local7.GetMass())); if (!_local3.IsSleeping()){ _local3.ApplyForce(_local12, _local4); }; _local12.Multiply(-1); if (!_local7.IsSleeping()){ _local7.ApplyForce(_local12, _local8); }; }; _local6++; }; _local2++; }; } else { _local2 = 0; while (_local2 < m_bodies.length) { _local3 = m_bodies[_local2]; _local4 = _local3.GetWorldCenter(); _local5 = _local3.GetMass(); _local6 = 0; while (_local6 < _local2) { _local7 = m_bodies[_local2]; _local8 = _local7.GetWorldCenter(); _local9 = (_local8.x - _local4.x); _local10 = (_local8.y - _local4.y); _local11 = ((_local9 * _local9) + (_local10 * _local10)); if (_local11 < Number.MIN_VALUE){ } else { _local12 = new b2Vec2(_local9, _local10); _local12.Multiply((((G / _local11) * _local5) * _local7.GetMass())); if (!_local3.IsSleeping()){ _local3.ApplyForce(_local12, _local4); }; _local12.Multiply(-1); if (!_local7.IsSleeping()){ _local7.ApplyForce(_local12, _local8); }; }; _local6++; }; _local2++; }; }; } public static function FromBodies(_arg1:Array):b2GravityController{ var _local2:b2GravityController = new (b2GravityController); var _local3:* = 0; while (_local3 < _arg1.length) { _local2.AddBody(_arg1[_local3]); _local3++; }; return (_local2); } } }//package com.boristhebrave.Box2D.Controllers
Section 93
//b2MultiController (com.boristhebrave.Box2D.Controllers.b2MultiController) package com.boristhebrave.Box2D.Controllers { import Box2D.Dynamics.*; public class b2MultiController extends b2Controller { var m_bodies:Array; public function b2MultiController(){ m_bodies = []; super(); } public function AddBodies(_arg1:Array):void{ var _local2:* = 0; while (_local2 < _arg1.length) { AddBody(_arg1[_local2]); _local2++; }; } public function AddBody(_arg1:b2Body):void{ m_bodies.push(_arg1); } public function WakeBodies():void{ var _local1:int; while (_local1 < m_bodies.length) { m_bodies[_local1].WakeUp(); _local1++; }; } public function RemoveBody(_arg1:b2Body):void{ var body = _arg1; m_bodies = m_bodies.filter(function (_arg1){ return (!((_arg1 == body))); }); } public function GetBodies():Array{ return (m_bodies); } public static function FromBodies(_arg1:Array):b2MultiController{ var _local2:b2MultiController = new (b2MultiController); var _local3:* = 0; while (_local3 < _arg1.length) { _local2.AddBody(_arg1[_local3]); _local3++; }; return (_local2); } } }//package com.boristhebrave.Box2D.Controllers
Section 94
//b2PairController (com.boristhebrave.Box2D.Controllers.b2PairController) package com.boristhebrave.Box2D.Controllers { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PairController extends b2Controller { var m_body1:b2Body; var m_body2:b2Body; public function GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function SetAnchor1(_arg1:b2Vec2):void{ } public function SetBody1(_arg1:b2Body):void{ m_body1 = _arg1; } public function SetBody2(_arg1:b2Body):void{ m_body2 = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SetAnchor2(_arg1:b2Vec2):void{ } } }//package com.boristhebrave.Box2D.Controllers
Section 95
//b2SpringController (com.boristhebrave.Box2D.Controllers.b2SpringController) package com.boristhebrave.Box2D.Controllers { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2SpringController extends b2PairController { public var damping:Number;// = 0 public var length:Number;// = 0 var m_anchor1:b2Vec2; var m_anchor2:b2Vec2; public var k:Number;// = 1 public function b2SpringController(){ m_anchor1 = new b2Vec2(); m_anchor2 = new b2Vec2(); super(); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_anchor2)); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_anchor1)); } override public function Step(_arg1:Number):void{ var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; if (((m_body1.IsSleeping()) && (m_body2.IsSleeping()))){ return; }; var _local2:b2Vec2 = m_body1.GetWorldPoint(m_anchor1); var _local3:b2Vec2 = m_body2.GetWorldPoint(m_anchor2); var _local4:b2Vec2 = b2Math.SubtractVV(_local3, _local2); var _local5:Number = _local4.Normalize(); var _local6:b2Vec2 = _local4.Copy(); _local6.Multiply(((_local5 - length) * k)); m_body1.ApplyForce(_local6, _local2); m_body2.ApplyForce(_local6.Negative(), _local3); if (damping != 0){ _local7 = m_body1.GetLinearVelocityFromWorldPoint(_local2); _local8 = m_body2.GetLinearVelocityFromWorldPoint(_local3); _local9 = b2Math.SubtractVV(_local8, _local7); _local10 = _local4.Copy(); _local10.Multiply((b2Math.b2Dot(_local9, _local4) * damping)); m_body1.ApplyForce(_local10, _local2); m_body2.ApplyForce(_local10.Negative(), _local3); }; } override public function SetAnchor1(_arg1:b2Vec2):void{ m_anchor1.SetV(m_body1.GetLocalPoint(_arg1)); } override public function SetAnchor2(_arg1:b2Vec2):void{ m_anchor2.SetV(m_body2.GetLocalPoint(_arg1)); } override public function Draw(_arg1:b2DebugDraw):void{ var _local15:Number; var _local16:*; var _local2:Number = 10; var _local3:Number = 0.05; var _local4:Number = 0.05; _local4 = (((1 - (2 * _local3)) / _local2) / 2); var _local5:b2Color = new b2Color((0 / 0xFF), (0 / 0xFF), (0 / 0xFF)); var _local6:b2Vec2 = m_body1.GetWorldPoint(m_anchor1); var _local7:b2Vec2 = m_body2.GetWorldPoint(m_anchor2); var _local8:b2Vec2 = b2Math.SubtractVV(_local7, _local6); var _local9:Number = _local8.Normalize(); var _local10:* = ((_local8.y * _local4) * length); var _local11:* = ((-(_local8.x) * _local4) * length); var _local12:* = new b2Vec2(((_local6.x * (1 - _local3)) + (_local7.x * _local3)), ((_local6.y * (1 - _local3)) + (_local7.y * _local3))); _arg1.DrawSegment(_local6, _local12, _local5); var _local13:* = _local12; var _local14:* = 0; while (_local14 <= _local2) { _local15 = (((_local14 % 2) == 0)) ? -1 : 1; _local16 = new b2Vec2(((_local6.x + ((_local8.x * _local9) * (_local3 + (((1 - (2 * _local3)) * _local14) / _local2)))) + (_local10 * _local15)), ((_local6.y + ((_local8.y * _local9) * (_local3 + (((1 - (2 * _local3)) * _local14) / _local2)))) + (_local11 * _local15))); _arg1.DrawSegment(_local13, _local16, _local5); _local13 = _local16; _local14++; }; _local16 = new b2Vec2(((_local7.x * (1 - _local3)) + (_local6.x * _local3)), ((_local7.y * (1 - _local3)) + (_local6.y * _local3))); _arg1.DrawSegment(_local13, _local16, _local5); _arg1.DrawSegment(_local16, _local7, _local5); } } }//package com.boristhebrave.Box2D.Controllers
Section 96
//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent) package com.kongregate.as3.client.events { import flash.events.*; public class KongregateEvent extends Event { public static const COMPLETE:String = "component_api_available"; public function KongregateEvent(_arg1:String){ super(_arg1); } } }//package com.kongregate.as3.client.events
Section 97
//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService) package com.kongregate.as3.client.services { import flash.events.*; public class AbstractShadowService extends EventDispatcher { protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{ trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4)); } } }//package com.kongregate.as3.client.services
Section 98
//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow) package com.kongregate.as3.client.services { public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices { private var mode:String; public function HighScoreServiceShadow(){ mode = ""; } public function submit(_arg1:Number, _arg2:String=null):void{ alert("IHighScoreServices", "submit", arguments); } public function connect():Boolean{ alert("IKongregateServices", "connect"); return (true); } public function requestList(_arg1:Function):void{ alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]")); _arg1({success:false}); } public function setMode(_arg1:String):void{ alert("IHighScoreServices", "setMode", arguments); this.mode = _arg1; } } }//package com.kongregate.as3.client.services
Section 99
//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices) package com.kongregate.as3.client.services { public interface IHighScoreServices { function setMode(_arg1:String):void; function submit(_arg1:Number, _arg2:String=null):void; function requestList(_arg1:Function):void; } }//package com.kongregate.as3.client.services
Section 100
//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices) package com.kongregate.as3.client.services { import flash.events.*; public interface IKongregateServices extends IEventDispatcher { function getPlayerInfo(_arg1:Function):void; function connect(_arg1:Number=-1):Boolean; } }//package com.kongregate.as3.client.services
Section 101
//IStatServices (com.kongregate.as3.client.services.IStatServices) package com.kongregate.as3.client.services { public interface IStatServices { function submitArray(_arg1:Array):void; function submit(_arg1:String, _arg2:Number):void; } }//package com.kongregate.as3.client.services
Section 102
//IUserServices (com.kongregate.as3.client.services.IUserServices) package com.kongregate.as3.client.services { public interface IUserServices { function getName():String; function getPlayerInfo(_arg1:Function):void; } }//package com.kongregate.as3.client.services
Section 103
//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow) package com.kongregate.as3.client.services { public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices { public function getName():String{ alert("IKongregateServices", "getName"); return ("Guest"); } public function connect(_arg1:Number=-1):Boolean{ alert("IKongregateServices", "connect", arguments); return (true); } public function getPlayerInfo(_arg1:Function):void{ alert("IKongregateServices", "getPlayerInfo"); _arg1(new Object()); } } }//package com.kongregate.as3.client.services
Section 104
//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow) package com.kongregate.as3.client.services { public class StatServiceShadow extends AbstractShadowService implements IStatServices { public function submitArray(_arg1:Array):void{ alert("IStatServices", "submitArray", arguments); } public function submit(_arg1:String, _arg2:Number):void{ alert("IStatServices", "submitStat", arguments); } } }//package com.kongregate.as3.client.services
Section 105
//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow) package com.kongregate.as3.client.services { public class UserServiceShadow extends AbstractShadowService implements IUserServices { public function getName():String{ alert("UserService", "getName"); return ("Guest"); } public function getPlayerInfo(_arg1:Function):void{ alert("UserService", "getPlayerInfo"); _arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""}); } } }//package com.kongregate.as3.client.services
Section 106
//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap) package com.kongregate.as3.client { import flash.events.*; import flash.display.*; public interface IAPIBootstrap { function init(_arg1:Event=null, _arg2:Stage=null):void; function hideLog():void; function showLog(_arg1:int=0):void; } }//package com.kongregate.as3.client
Section 107
//KongregateAPI (com.kongregate.as3.client.KongregateAPI) package com.kongregate.as3.client { import flash.events.*; import flash.display.*; import com.kongregate.as3.client.services.*; import flash.utils.*; import com.kongregate.as3.client.events.*; import flash.system.*; import flash.net.*; import flash.errors.*; public class KongregateAPI extends Sprite { private const VERSION:Number = 1; private var loader:Loader; private var loadedDomain:ApplicationDomain; private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices"; private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices"; private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices"; private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices"; private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf"; private static var _connected:Boolean; private static var kUser:IUserServices; private static var _loaded:Boolean; private static var kServices:IKongregateServices; private static var kScores:IHighScoreServices; private static var mInstance:KongregateAPI; private static var kStats:IStatServices; private static var kAPI:IAPIBootstrap; public function KongregateAPI(){ if (mInstance != null){ throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access.")); }; mInstance = this; this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true); } public function get loaded():Boolean{ return (_loaded); } public function get connected():Boolean{ return (_connected); } private function alertConnected(_arg1:TimerEvent=null):void{ var _local2:KongregateEvent; var _local3:Boolean; _local2 = new KongregateEvent(KongregateEvent.COMPLETE); _local3 = this.dispatchEvent(_local2); } private function init(_arg1:Event):void{ var _local2:Object; var _local3:String; var _local4:URLRequest; var _local5:LoaderContext; this.removeEventListener(Event.ADDED_TO_STAGE, init); _loaded = false; _connected = false; _local2 = LoaderInfo(root.loaderInfo).parameters; _local3 = _local2.api_path; if (_local3 == null){ trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded."); createShadowServices(); return; }; Security.allowDomain("*.kongregate.com"); Security.allowDomain("kongregatetrunk.com"); _local4 = new URLRequest(_local3); _local5 = new LoaderContext(false); _local5.applicationDomain = ApplicationDomain.currentDomain; _local5.securityDomain = SecurityDomain.currentDomain; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); loader.load(_local4, _local5); } public function get api():IAPIBootstrap{ return (kAPI); } private function loadComplete(_arg1:Event):void{ getServices(); } public function get scores():IHighScoreServices{ return (kScores); } private function ioErrorHandler(_arg1:IOErrorEvent):void{ throw (new IOError(("API file not found. " + _arg1))); } public function get services():IKongregateServices{ return (kServices); } public function get stats():IStatServices{ return (kStats); } private function createShadowServices():void{ var _local1:Timer; trace(">>> Kongregate Shadow Services instantiated for local development.."); kServices = new KongregateServiceShadow(); kScores = new HighScoreServiceShadow(); kStats = new StatServiceShadow(); kUser = new UserServiceShadow(); _local1 = new Timer(200, 1); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected); _local1.start(); _connected = true; } public function get user():IUserServices{ return (kUser); } private function getServices():void{ var _local1:ApplicationDomain; var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local1 = ApplicationDomain.currentDomain; kAPI = IAPIBootstrap(loader.getChildAt(0)); this.addChild(loader); _local2 = _local1.getDefinition(CLASS_SERVICES); trace(_local2); kServices = _local2.getInstance(); _local3 = _local1.getDefinition(CLASS_SCORES); kScores = _local3.getInstance(); _local4 = _local1.getDefinition(CLASS_STATS); kStats = _local4.getInstance(); _local5 = _local1.getDefinition(CLASS_USER); kUser = _local5.getInstance(); kServices.connect(VERSION); _loaded = true; _connected = true; alertConnected(); } public static function getInstance():KongregateAPI{ if (!mInstance){ throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it.")); }; return (mInstance); } } }//package com.kongregate.as3.client
Section 108
//DrawSine (com.midasplayer.extras.DrawSine) package com.midasplayer.extras { import flash.display.*; public class DrawSine extends MovieClip { private var target_mc:MovieClip; private var step_x:Number; private var my_height:Number; private var stroke_color:Number;// = 0 private var draw_fill:Boolean;// = false private var stroke_weight:Number;// = 1 private var fill_alpha:Number; private var fill_height:Number; private var draw_array; private var steps:Number; private var fill_color:Number;// = 0xFF0000 private var my_width:Number; public function DrawSine(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number){ draw_array = new Array(); super(); target_mc = _arg1; my_width = _arg2; my_height = _arg3; steps = _arg4; step_x = (_arg2 / steps); var _local5:* = 0; while (_local5 < steps) { draw_array.push({x:(step_x * _local5), y:0}); _local5++; }; } public function set_fill(_arg1:Boolean, _arg2:Number, _arg3:Number):void{ draw_fill = _arg1; fill_color = (stroke_color = _arg2); fill_alpha = _arg3; } public function set_stroke(_arg1:Number, _arg2:Number):void{ stroke_weight = _arg1; stroke_color = _arg2; } public function draw_waves(_arg1:Array):void{ var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local2:* = draw_array.length; var _local3:* = _arg1.length; var _local4:* = 0; while (_local4 < _local3) { _local6 = (((_arg1[_local4].cycles * Math.PI) * 2) / steps); _local7 = 0; while (_local7 < _local2) { if (_local4 == 0){ draw_array[_local7].y = (Math.sin((_arg1[_local4].phase + (_local6 * _local7))) * _arg1[_local4].radius); } else { draw_array[_local7].y = (draw_array[_local7].y + (Math.sin((_arg1[_local4].phase + (_local6 * _local7))) * _arg1[_local4].radius)); }; _local7++; }; _local4++; }; target_mc.graphics.clear(); if (stroke_weight > 0){ target_mc.graphics.lineStyle(stroke_weight, stroke_color); }; if (draw_fill){ target_mc.graphics.beginFill(fill_color, fill_alpha); }; target_mc.graphics.moveTo(draw_array[0].x, draw_array[0].y); var _local5:* = 1; while (_local5 < _local2) { _local8 = draw_array[_local5].x; _local9 = draw_array[_local5].y; target_mc.graphics.lineTo(_local8, _local9); _local5++; }; if (draw_fill){ target_mc.graphics.lineTo(_local8, (my_height / 2)); target_mc.graphics.lineTo(0, (my_height / 2)); target_mc.graphics.lineTo(0, draw_array[0].y); target_mc.graphics.endFill(); }; } } }//package com.midasplayer.extras
Section 109
//md5 (com.midasplayer.extras.md5) package com.midasplayer.extras { public class md5 { public static const HEX_FORMAT_LOWERCASE:uint = 0; public static const HEX_FORMAT_UPPERCASE:uint = 1; public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = ""; public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "="; public static var hexcase:uint = 0; public static var b64pad:String = ""; public static function md5_gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{ return (safe_add(bit_rol(safe_add(safe_add(_arg2, _arg1), safe_add(_arg4, _arg6)), _arg5), _arg3)); } public static function binl_md5(_arg1:Array, _arg2:Number):Array{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32))); _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2; var _local3:Number = 1732584193; var _local4:Number = -271733879; var _local5:Number = -1732584194; var _local6:Number = 271733878; var _local7:Number = 0; while (_local7 < _arg1.length) { _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551); _local3 = safe_add(_local3, _local8); _local4 = safe_add(_local4, _local9); _local5 = safe_add(_local5, _local10); _local6 = safe_add(_local6, _local11); _local7 = (_local7 + 16); }; return ([_local3, _local4, _local5, _local6]); } public static function str2rstr_utf16le(_arg1:String):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode((_arg1.charCodeAt(_local3) & 0xFF), ((_arg1.charCodeAt(_local3) >>> 8) & 0xFF))); _local3++; }; return (_local2); } public static function hex_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2hex(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function binl2rstr(_arg1:Array):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < (_arg1.length * 32)) { _local2 = (_local2 + String.fromCharCode(((_arg1[(_local3 >> 5)] >>> (_local3 % 32)) & 0xFF))); _local3 = (_local3 + 8); }; return (_local2); } public static function md5_ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2binl(_arg1:String):Array{ var _local2:Number = 0; var _local3:Array = new Array((_arg1.length >> 2)); _local2 = 0; while (_local2 < _local3.length) { _local3[_local2] = 0; _local2++; }; _local2 = 0; while (_local2 < (_arg1.length * 8)) { _local3[(_local2 >> 5)] = (_local3[(_local2 >> 5)] | ((_arg1.charCodeAt((_local2 / 8)) & 0xFF) << (_local2 % 32))); _local2 = (_local2 + 8); }; return (_local3); } public static function md5_vm_test():Boolean{ return ((hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72")); } public static function b64_md5(_arg1:String):String{ return (rstr2b64(rstr_md5(str2rstr_utf8(_arg1)))); } public static function any_hmac_md5(_arg1:String, _arg2:String, _arg3:String):String{ return (rstr2any(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)), _arg3)); } public static function hex_md5(_arg1:String):String{ return (rstr2hex(rstr_md5(str2rstr_utf8(_arg1)))); } public static function bit_rol(_arg1:Number, _arg2:Number):Number{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } public static function encrypt(_arg1:String):String{ return (hex_md5(_arg1)); } public static function md5_hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2hex(_arg1:String):String{ var _local4:Number; var _local2:String = (hexcase) ? "0123456789ABCDEF" : "0123456789abcdef"; var _local3 = ""; var _local5:Number = 0; while (_local5 < _arg1.length) { _local4 = _arg1.charCodeAt(_local5); _local3 = (_local3 + (_local2.charAt(((_local4 >>> 4) & 15)) + _local2.charAt((_local4 & 15)))); _local5++; }; return (_local3); } public static function any_md5(_arg1:String, _arg2:String):String{ return (rstr2any(rstr_md5(str2rstr_utf8(_arg1)), _arg2)); } public static function b64_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2b64(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function rstr2b64(_arg1:String):String{ var _local6:Number; var _local7:Number; var _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var _local3 = ""; var _local4:Number = _arg1.length; var _local5:Number = 0; while (_local5 < _local4) { _local6 = (((_arg1.charCodeAt(_local5) << 16) | (((_local5 + 1) < _local4)) ? (_arg1.charCodeAt((_local5 + 1)) << 8) : 0) | (((_local5 + 2) < _local4)) ? _arg1.charCodeAt((_local5 + 2)) : 0); _local7 = 0; while (_local7 < 4) { if (((_local5 * 8) + (_local7 * 6)) > (_arg1.length * 8)){ _local3 = (_local3 + b64pad); } else { _local3 = (_local3 + _local2.charAt(((_local6 >>> (6 * (3 - _local7))) & 63))); }; _local7++; }; _local5 = (_local5 + 3); }; return (_local3); } public static function safe_add(_arg1:Number, _arg2:Number):Number{ var _local3:Number = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)); var _local4:Number = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)); return (((_local4 << 16) | (_local3 & 0xFFFF))); } public static function str2rstr_utf8(_arg1:String):String{ var _local4:Number; var _local5:Number; var _local2 = ""; var _local3:Number = -1; while (++_local3 < _arg1.length) { _local4 = _arg1.charCodeAt(_local3); _local5 = (((_local3 + 1) < _arg1.length)) ? _arg1.charCodeAt((_local3 + 1)) : 0; if ((((((((0xD800 <= _local4)) && ((_local4 <= 56319)))) && ((0xDC00 <= _local5)))) && ((_local5 <= 57343)))){ _local4 = ((65536 + ((_local4 & 1023) << 10)) + (_local5 & 1023)); _local3++; }; if (_local4 <= 127){ _local2 = (_local2 + String.fromCharCode(_local4)); } else { if (_local4 <= 2047){ _local2 = (_local2 + String.fromCharCode((192 | ((_local4 >>> 6) & 31)), (128 | (_local4 & 63)))); } else { if (_local4 <= 0xFFFF){ _local2 = (_local2 + String.fromCharCode((224 | ((_local4 >>> 12) & 15)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); } else { if (_local4 <= 2097151){ _local2 = (_local2 + String.fromCharCode((240 | ((_local4 >>> 18) & 7)), (128 | ((_local4 >>> 12) & 63)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); }; }; }; }; }; return (_local2); } public static function rstr_hmac_md5(_arg1:String, _arg2:String):String{ var _local3:Array = rstr2binl(_arg1); if (_local3.length > 16){ _local3 = binl_md5(_local3, (_arg1.length * 8)); }; var _local4:Array = new Array(16); var _local5:Array = new Array(16); var _local6:Number = 0; while (_local6 < 16) { _local4[_local6] = (_local3[_local6] ^ 909522486); _local5[_local6] = (_local3[_local6] ^ 1549556828); _local6++; }; var _local7:Array = binl_md5(_local4.concat(rstr2binl(_arg2)), (0x0200 + (_arg2.length * 8))); return (binl2rstr(binl_md5(_local5.concat(_local7), (0x0200 + 128)))); } public static function str2rstr_utf16be(_arg1:String):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(((_arg1.charCodeAt(_local3) >>> 8) & 0xFF), (_arg1.charCodeAt(_local3) & 0xFF))); _local3++; }; return (_local2); } public static function rstr2any(_arg1:String, _arg2:String):String{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Array; var _local3:Number = _arg2.length; var _local4:Array = []; var _local9:Array = ((_arg1.length / 2) as Array); _local5 = 0; while (_local5 < _local9.length) { _local9[_local5] = ((_arg1.charCodeAt((_local5 * 2)) << 8) | _arg1.charCodeAt(((_local5 * 2) + 1))); _local5++; }; while (_local9.length > 0) { _local8 = []; _local7 = 0; _local5 = 0; while (_local5 < _local9.length) { _local7 = ((_local7 << 16) + _local9[_local5]); _local6 = Math.floor((_local7 / _local3)); _local7 = (_local7 - (_local6 * _local3)); if ((((_local8.length > 0)) || ((_local6 > 0)))){ _local8[_local8.length] = _local6; }; _local5++; }; _local4[_local4.length] = _local7; _local9 = _local8; }; var _local10 = ""; _local5 = (_local4.length - 1); while (_local5 >= 0) { _local10 = (_local10 + _arg2.charAt(_local4[_local5])); _local5--; }; return (_local10); } public static function rstr_md5(_arg1:String):String{ return (binl2rstr(binl_md5(rstr2binl(_arg1), (_arg1.length * 8)))); } } }//package com.midasplayer.extras
Section 110
//SimpleParticle (com.midasplayer.extras.SimpleParticle) package com.midasplayer.extras { import flash.display.*; public dynamic class SimpleParticle extends Shape { private var _color:Number;// = 0 private var _size:Number;// = 1 private var _type:String;// = "rect" public static var RECT:String = "rect"; public static var CIRCLE:String = "circle"; public function get size():Number{ return (_size); } public function set size(_arg1:Number){ _size = _arg1; draw(); } public function get color():Number{ return (_color); } public function set color(_arg1:Number){ _color = _arg1; draw(); } public function get type():String{ return (_type); } private function draw(){ clear(); graphics.beginFill(_color, 1); switch (type){ case RECT: graphics.drawRect((-(size) / 2), (-(size) / 2), size, size); break; case CIRCLE: graphics.drawCircle((-(size) / 2), (-(size) / 2), size); break; }; graphics.endFill(); } public function clear(){ graphics.clear(); } public function set type(_arg1:String){ _type = _arg1; draw(); } } }//package com.midasplayer.extras
Section 111
//SineWave (com.midasplayer.extras.SineWave) package com.midasplayer.extras { public class SineWave { private var my_cycles:Number; private var my_radius:Number; private var my_phase:Number; private var my_inc:Number; public function SineWave(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ my_phase = _arg1; my_cycles = _arg2; my_radius = _arg3; my_inc = _arg4; } public function set radius(_arg1:Number):void{ my_radius = _arg1; } public function get cycles():Number{ return (my_cycles); } public function get radius():Number{ return (my_radius); } public function set cycles(_arg1:Number):void{ my_cycles = _arg1; } public function get phase():Number{ return (my_phase); } public function set inc(_arg1:Number):void{ my_inc = _arg1; } public function set phase(_arg1:Number):void{ my_phase = _arg1; } public function get inc():Number{ return (my_inc); } } }//package com.midasplayer.extras
Section 112
//Water (com.midasplayer.extras.Water) package com.midasplayer.extras { import flash.display.*; public class Water extends MovieClip { private var m_lines:Array; public function Water(){ m_lines = new Array(); super(); } public function decrThickness(_arg1:Boolean):Boolean{ var _local2:int; var _local3:Boolean; var _local4:int; var _local5:Boolean; if (_arg1){ _local2 = 0; while (_local2 < m_lines.length) { _local3 = false; if (m_lines[_local2].decrThickness()){ _local3 = true; } else { return (false); }; _local2++; }; return (_local3); //unresolved jump }; _local4 = 0; while (_local4 < m_lines.length) { _local5 = false; if (m_lines[_local4].incrThickness()){ _local5 = true; } else { return (false); }; _local4++; }; return (_local5); } public function init(_arg1:Number, _arg2:Number){ var _local3:WaterLine; var _local5:int; var _local4:uint = 0xFF0000; if (this.name == "RED"){ _local4 = 0xFF0000; _local5 = 1; }; if (this.name == "GREEN"){ _local4 = 0xFF00; _local5 = 1; }; if (this.name == "BLUE"){ _local4 = 2782939; _local5 = 1; }; var _local6:* = 0; while (_local6 < _local5) { _local3 = new WaterLine(); _local3.addParams(_local4, _arg1, _arg2); _local3.x = (_local6 * 1.5); addChild(_local3); m_lines.push(_local3); _local6++; }; } } }//package com.midasplayer.extras
Section 113
//WaterLine (com.midasplayer.extras.WaterLine) package com.midasplayer.extras { import flash.events.*; import flash.display.*; public class WaterLine extends MovieClip { private var _height:Number;// = 400 private var _line:Shape; private var _particlesQuantity:Number;// = 20 private var _color:uint; private var _bubbles:Array; private var _step:Number; private var _particles:Array; private var _lineSize:Number; public function WaterLine(){ trace("WaterLine()"); } public function incrThickness():Boolean{ _lineSize = (_lineSize + 0.5); if (_lineSize >= 5){ return (true); }; return (false); } public function get randomDirection():Number{ return (((Math.round((Math.random() * 1)) * 2) - 1)); } public function addParams(_arg1:uint, _arg2:Number, _arg3:Number):void{ _color = _arg1; _height = _arg2; _lineSize = _arg3; init(); } private function createBubbles():void{ var _local2:SimpleParticle; var _local4:Number; var _local5:Number; var _local6:*; var _local1:Array = [_color, _color]; var _local3:* = 0; while (_local3 < 5) { _local2 = new SimpleParticle(); _local2.type = SimpleParticle.CIRCLE; _local2.size = 0.8; _local2.color = _local1[Math.round((Math.random() * (_local1.length - 1)))]; _local2.alpha = 1; addChild(_local2); _bubbles.push(_local2); _local3++; }; for (_local6 in _bubbles) { _local2 = _bubbles[_local6]; if (!_local2.isOut){ _local2.y = (_local2.y + ((Math.random() * 5) + 10)); _local4 = Math.floor((_local2.y / this._step)); _local2.x = (_local2.x + (((_particles[_local4].x + ((Math.random() * 1) * randomDirection)) - _local2.x) * 0.8)); _local5 = Math.sqrt((Math.pow((mouseX - _local2.x), 2) + Math.pow((mouseY - _local2.y), 2))); if ((((_local5 < 4)) && (!(_local2.isOut)))){ }; } else { _local2.y = (_local2.y + _local2.speedY); _local2.speedY = (_local2.speedY + 3); _local2.x = (_local2.x + _local2.speedX); _local2.alpha = (_local2.alpha - 0.005); }; if ((((_local2.y > _height)) || ((_local2.alpha < 0)))){ _bubbles.splice(_local6, 1); _local2.parent.removeChild(_local2); _local2 = null; }; }; } private function createLine():void{ var _local1:SimpleParticle; var _local2:* = 0; while (_local2 < _particlesQuantity) { _local1 = new SimpleParticle(); _local1.elasticX = 0; _local1.yIni = (_local1.y = (_step * _local2)); addChild(_local1); _particles.push(_local1); _local2++; }; } private function init(){ _line = new Shape(); _line.alpha = 0.8; addChild(_line); _bubbles = []; _particles = []; _step = (_height / (_particlesQuantity - 1)); createLine(); addEventListener(Event.ENTER_FRAME, animate); } private function animate(_arg1:Event):void{ var _local2:SimpleParticle; var _local3:SimpleParticle; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local9:Number; var _local8:Number = 10; var _local10:Number = 3; _line.graphics.clear(); _line.graphics.moveTo(_particles[0].x, _particles[0].y); _line.graphics.lineStyle(_lineSize, _color, 1); var _local11:* = 0; while (_local11 < _particles.length) { _local3 = _particles[_local11]; if (_local11 == 0){ _local3.x = (_local3.x + ((((Math.random() * _local10) * randomDirection) - _local3.x) * 0.9)); }; _local2 = ((_local11)>0) ? _particles[(_local11 - 1)] : _local3; _local7 = Math.sqrt((Math.pow((mouseX - 0), 2) + Math.pow((mouseY - _local3.yIni), 2))); if (_local7 < _local8){ } else { _local5 = _local2.x; _local3.elasticX = ((_local3.elasticX * 0.4) + ((_local5 - _local3.x) * 0.4)); _local3.x = (_local3.x + _local3.elasticX); }; if (_local11 > 0){ _line.graphics.curveTo(_local2.x, _local2.y, ((_local2.x + _local3.x) / 2), ((_local2.y + _local3.y) / 2)); }; _local11++; }; } private function spreadBubble(_arg1:SimpleParticle):void{ _arg1.isOut = true; parent.parent.addChild(_arg1); _arg1.size = 1.2; _arg1.alpha = 0.35; _arg1.x = (parent.x + _arg1.x); _arg1.y = (parent.y + _arg1.y); _arg1.speedY = (-5 - (Math.random() * 10)); _arg1.speedX = (((Math.random() * 15) + 1) * randomDirection); } public function decrThickness():Boolean{ _lineSize--; if (_lineSize <= 0){ return (true); }; return (false); } } }//package com.midasplayer.extras
Section 114
//WaveEngine (com.midasplayer.extras.WaveEngine) package com.midasplayer.extras { import flash.events.*; import flash.display.*; public class WaveEngine extends MovieClip { private var m_wave:DrawSine; private var m_fillColor:uint; private var m_num_waves:int;// = 3 private var m_waveHolder:MovieClip; private var m_sinArr:Array; private var m_rootRef:MovieClip; public function WaveEngine(_arg1:MovieClip, _arg2:int, _arg3:int, _arg4:uint, _arg5:uint, _arg6:MovieClip){ m_waveHolder = new MovieClip(); m_sinArr = new Array(); super(); m_rootRef = _arg1; m_waveHolder = _arg6; m_wave = new DrawSine(m_waveHolder, _arg2, _arg3, 100); var _local7:* = 0; while (_local7 < m_num_waves) { m_sinArr.push(new SineWave(((Math.random() * Math.PI) * 1.5), (Math.random() * 1.5), ((Math.random() * 1.5) + 1), (Math.random() - 0.5))); _local7++; }; m_wave.set_stroke(3, _arg5); m_wave.set_fill(true, _arg4, 100); m_fillColor = _arg4; } public function startWave():void{ m_rootRef.addEventListener(Event.ENTER_FRAME, update); } public function getWave():MovieClip{ return (m_waveHolder); } private function update(_arg1:Event):void{ var _local2:*; for (_local2 in m_sinArr) { m_sinArr[_local2].phase = (m_sinArr[_local2].phase + m_sinArr[_local2].inc); }; m_wave.set_fill(true, m_fillColor, 1); m_wave.draw_waves(m_sinArr); } public function stopWave():void{ m_rootRef.removeEventListener(Event.ENTER_FRAME, update); } public function colorUpdate(_arg1:uint):void{ var _local2:String = ("0x" + _arg1.toString(16)); m_fillColor = uint(_local2); } } }//package com.midasplayer.extras
Section 115
//KingAPI (com.midasplayer.KingAPI) package com.midasplayer { import flash.events.*; import com.midasplayer.extras.*; import flash.net.*; import flash.external.*; public class KingAPI { public static const LINK_TYPE_RIGHT_CLICK:String = "rightclick"; public static const USER_TYPE_SUBSCRIPTION:int = 3; public static const LINK_TYPE_HIGHSCORES:String = "highscores"; public static const LINK_TYPE_SIGN:String = "sign"; public static const INITIALIZED_EVENT:String = "initialized"; public static const LINK_TYPE_OTHER_GAMES:String = "other_games"; public static const USER_TYPE_REGISTERED:int = 1; private static const SAK:String = "ggfd7sday923mdsfd8csfds34"; private static const loadHomeParametersURL:String = "http://www.king.com/servlet/FreeGameServlet?action=load"; public static const LINK_TYPE_LOADER_MOVIE:String = "loader_movie"; private static const bounceURL:String = "http://www.mygame.com/king/bounce.jsp"; public static const LINK_TYPE_PROTECT:String = "protect"; public static const LINK_TYPE_ADD_GAME:String = "add_game"; public static const USER_TYPE_GOLD:int = 2; public static const USER_TYPE_UNREGISTERED:int = 0; public static const HOST_BANNED_EVENT:String = "hostBanned"; private static const SK:String = "vf78hxcsjak77cxzhjkwad87s"; private static const loadCountURL:String = "http://www.mygame.com/king/loadcount.jsp"; public static const LINK_TYPE_LOADER_PROGRESS:String = "loader_progress"; private static var check:String = null; public static var gameName:String; public static var banned:Boolean = false; protected static var dispatcher:EventDispatcher; public static var isHome:Boolean = false; private static var sessionID:String; private static var iscore:int = 123; public static var fromURL:String; private static var SSK:String = "ng43ui54hy35tdsnd6f54rews"; private static function loadUrlErrorHandler(_arg1:Event):void{ trace(("Unable to load url: " + _arg1)); } public static function resetScore():void{ iscore = 123; check = null; } public static function openOfflineProtectionLink():void{ openKingPage(LINK_TYPE_PROTECT); } public static function init(_arg1:String, _arg2:String):void{ var so:SharedObject; var rnd1:Number; var rnd2:Number; var name = _arg1; var from = _arg2; gameName = name; fromURL = from; var loadCounter:URLLoader = new URLLoader(); var reqvars:URLVariables = new URLVariables(); reqvars.game = gameName; reqvars.from = fromURL; try { so = SharedObject.getLocal("sessionId"); if (so.data.sessionID == null){ rnd1 = Math.abs(Math.floor((Math.random() * 4294967295))); rnd2 = Math.abs(Math.floor((Math.random() * 4294967295))); so.data.sessionID = (rnd1.toString(16) + rnd2.toString(16)); so.flush(); }; sessionID = so.data.sessionID; } catch(e:Error) { sessionID = "error"; }; reqvars.session = sessionID; var request:URLRequest = new URLRequest(((loadCountURL + "?") + reqvars.toString())); loadCounter.addEventListener(Event.COMPLETE, loadCountHandler); loadCounter.addEventListener(IOErrorEvent.IO_ERROR, loadUrlErrorHandler); loadCounter.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadUrlErrorHandler); try { loadCounter.load(request); } catch(error:Error) { trace(("Unable to load loadcount url: " + loadCountURL)); trace(error.message); }; } private static function loadHomeParametersHandler(_arg1:Event):void{ var _local2:URLLoader = URLLoader(_arg1.target); trace(("loadCounter.data" + _local2.data)); } public static function submitInternalScore():void{ checkScore(); var _local1:int = ((iscore - 123) / 2); submitScore(_local1); } public static function openOtherGamesLink():void{ openKingPage(LINK_TYPE_OTHER_GAMES); } public static function openKingPage(_arg1:String, _arg2:String=null):void{ var _local3:URLVariables = new URLVariables(); _local3.game = gameName; _local3.from = fromURL; _local3.type = _arg1; _local3.session = sessionID; if (_arg2 != null){ _local3.redirect = _arg2; }; var _local4 = "_blank"; if (isHome){ _local4 = "_top"; }; navigateToURL(new URLRequest(((bounceURL + "?") + _local3.toString())), _local4); } private static function loadCountHandler(_arg1:Event):void{ var vars:URLVariables; var event = _arg1; var loadCounter:URLLoader = URLLoader(event.target); trace(("loadCounter.data :" + loadCounter.data)); try { vars = new URLVariables(loadCounter.data); if (vars.h == "true"){ isHome = true; }; if (vars.b == "true"){ banned = true; dispatcher.dispatchEvent(new Event(HOST_BANNED_EVENT)); } else { dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT)); }; trace((("::" + vars.h) + "::")); trace((("::" + vars.b) + "::")); } catch(e:Error) { trace(("Error reading data from loadcount url: " + e)); dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT)); }; } public static function addEventListener(_arg1:String, _arg2:Function):void{ if (dispatcher == null){ dispatcher = new EventDispatcher(); }; dispatcher.addEventListener(_arg1, _arg2); } public static function openLoaderMovieLink():void{ openKingPage(LINK_TYPE_LOADER_MOVIE); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ if (dispatcher == null){ return; }; dispatcher.removeEventListener(_arg1, _arg2); } public static function submitScore(_arg1:int):void{ var score = _arg1; var hash:String = md5.encrypt(((((score + ":") + gameName) + ":") + SSK)); try { if (isHome){ ExternalInterface.call("submitScore", score, hash); } else { openKingPage(LINK_TYPE_HIGHSCORES, ((((("game/" + gameName) + "/submit/") + score) + ":") + hash)); }; } catch(e:Error) { trace(e); }; } public static function submitLevel(_arg1:int):void{ var level = _arg1; var hash:String = md5.encrypt(((((level + ":") + gameName) + ":") + SSK)); try { if (isHome){ ExternalInterface.call("submitLevel", level, hash); }; } catch(e:Error) { trace(e); }; } public static function openHighscoresLink():void{ openKingPage(LINK_TYPE_HIGHSCORES, (("game/" + gameName) + "/highscores")); } public static function openSignLink():void{ if (!isHome){ openKingPage(LINK_TYPE_SIGN); }; } public static function openRightClickLink():void{ openKingPage(LINK_TYPE_RIGHT_CLICK); } private static function checkScore():void{ if (check != null){ if (check != md5.encrypt(((((iscore + ":") + gameName) + ":") + SK))){ SSK = "ng41ui54hy35tdsnd6f54rews"; }; }; } public static function addScore(_arg1:int):int{ checkScore(); var _local2:int = ((iscore - 123) / 2); _local2 = (_local2 + _arg1); iscore = ((_local2 * 2) + 123); check = md5.encrypt(((((iscore + ":") + gameName) + ":") + SK)); return (_local2); } public static function openLoaderProgressLink():void{ openKingPage(LINK_TYPE_LOADER_PROGRESS); } public static function openAddToWebsiteLink():void{ openKingPage(LINK_TYPE_ADD_GAME, "website_content.jsp"); } public static function submitAchievement(_arg1:String):void{ var achievement = _arg1; var hash:String = md5.encrypt(((((achievement + ":") + gameName) + ":") + SAK)); try { if (isHome){ ExternalInterface.call("submitAchievement", achievement, hash); }; } catch(e:Error) { trace(e); }; } } }//package com.midasplayer
Section 116
//MainLoader (com.midasplayer.MainLoader) package com.midasplayer { import flash.events.*; import flash.display.*; import caurina.transitions.*; import utils.*; import fl.transitions.*; import flash.geom.*; import com.midasplayer.extras.*; import flash.media.*; import Types.*; import fl.transitions.easing.*; import flash.text.*; import flash.filters.*; import flash.net.*; public class MainLoader extends MovieClip { public var cross666Button:SimpleButton; private var m_tween:Tween; public var nowLevelAvailable:int; public var redBall1BannerButton:SimpleButton; private var m_dist:Number; private var m_yellowDest:Number; private var m_logoHolder:Sprite; public var FWGLogo:SimpleButton; public var i:int; public var creditsButton:SimpleButton; private var m_maskRown:MovieClip; public var levelButton10:LevelButton; public var levelButton11:LevelButton; public var levelButton12:LevelButton; public var levelButton13:LevelButton; public var levelButton14:LevelButton; public var levelButton15:LevelButton; public var levelButton16:LevelButton; public var levelButton17:LevelButton; public var levelButton18:LevelButton; public var levelButton19:LevelButton; private var m_rootRef:MovieClip; public var badimButton:SimpleButton; public var program:Sprite; public var preloader:Preloader; public var johnnyKButton:SimpleButton; private var m_GREEN:MovieClip; public var levelButton20:LevelButton; private var m_bounce:Boolean;// = false private var m_loaderContent:Array; private var m_colorOff:Boolean;// = false public var redBall1Dialog:HelpText; private var m_otherGames:Sprite; private var m_pressBtn:Boolean;// = false private var m_ferryRed:MovieClip; private var m_streamGreen:Boolean;// = true public var crown:MovieClip; private var GAME_NAME:String;// = "red-ball-2" public var colorFilter:BitmapFilter; public var moreGamesButton:SimpleButton; private var m_sampleLoadPerc:Number;// = -1 private var m_count;// = 0 private var m_clsBlue:Water; public var backToMenuButton:SimpleButton; public var tombor911Button:SimpleButton; public var title2:TextField; public var fglButton:SimpleButton; public var cgpButton:SimpleButton; public var title1:MovieClip; private var m_endColor:ColorTransform; public var playRedBall1Button:SimpleButton; private var m_BLUE:MovieClip; public var box2DButton:SimpleButton; private var m_greenDest:Number; public var backButton:SimpleButton; public var bright:Number; private var m_waveEngineLogo:WaveEngine; private var STAGE_WIDTH:Number;// = 550 public var afterGameComics:AfterGameComics; private var m_waveEngineCrown:WaveEngine; private var m_streamBlue:Boolean;// = false public var preGameComics:PreGameComics; public var levelFlag:MovieClip; private var m_clsRed:Water; public var levelButton1:LevelButton; public var levelButton2:LevelButton; public var levelButton3:LevelButton; public var levelButton4:LevelButton; public var levelButton5:LevelButton; public var levelButton6:LevelButton; public var levelButton7:LevelButton; public var levelButton8:LevelButton; public var levelButton9:LevelButton; private var m_overBtn:Boolean;// = false private var m_ferryGreen:MovieClip; public var walkthroughButton:SimpleButton; public var efButton:SimpleButton; public var bonusLevelsButton:SimpleButton; private var m_ferryBlue:MovieClip; public var efCreditsButton:SimpleButton; private var m_tweenBounceLogo:Tween; private var m_startColor:ColorTransform; private var m_bg:Sprite; private var m_prevPerc:Number;// = -1 public var programClass:Class; private var m_step:Number; public var filterMatrix:Array; public var resetButton:SimpleButton; private var m_logoFill:Boolean;// = true private var m_streamHeight:Number; private var m_waveHolderLogo:MovieClip; private var m_isLoaded:Boolean;// = false private var m_sun:Sprite; private var m_mask:MovieClip; private var m_clsGreen:Water; private var m_crownFill:Boolean;// = false public var levelCrown:MovieClip; public var embedPreloader:EmbedPreloader; private var m_RED:MovieClip; private var MOCHI:String;// = "517d0932" private var STAGE_HEIGHT:Number;// = 400 public var kingButton:SimpleButton; private var m_streamRed:Boolean;// = false public var startGameButton:SimpleButton; private var m_gameFrameRate:int; private var m_play:Sprite; public var levelButton:LevelButton; public var downloadButton:SimpleButton; private var m_waveHolderCrown:MovieClip; public var soundsnapButton:SimpleButton; public function MainLoader(){ m_loaderContent = new Array(); m_waveHolderLogo = new MovieClip(); m_waveHolderCrown = new MovieClip(); m_mask = new MovieClip(); m_maskRown = new MovieClip(); m_RED = new WaterHolderR(); m_GREEN = new WaterHolderG(); m_BLUE = new WaterHolderB(); m_ferryGreen = new ferryGreen(); m_ferryRed = new ferryRed(); m_ferryBlue = new ferryBlue(); super(); addFrameScript(0, frame1, 2, frame3, 3, frame4, 4, frame5, 7, frame8, 8, frame9); trace("MainLoader()"); stop(); m_rootRef = this; m_bg = new Sprite(); m_bg.graphics.beginFill(0x333333, 1); m_bg.graphics.drawRect(0, 0, STAGE_WIDTH, STAGE_HEIGHT); m_bg.addEventListener(MouseEvent.CLICK, openKingPage); m_rootRef.addChild(m_bg); m_loaderContent.push(m_bg); stage.scaleMode = StageScaleMode.NO_SCALE; KingAPI.addEventListener(KingAPI.INITIALIZED_EVENT, onKingApiInit); KingAPI.addEventListener(KingAPI.HOST_BANNED_EVENT, onKingApiInit); KingAPI.init(GAME_NAME, root.loaderInfo.url); } public function bonusLevelsButtonClickHandler(_arg1:MouseEvent):void{ Preloader.bonusPlaying = true; StartGame(21); Preloader.sound.Play(SoundID.MENU_SELECT); } private function onBtnOut(_arg1:MouseEvent):void{ _arg1.target.removeEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); if (m_pressBtn){ _arg1.target.x = (_arg1.target.x - 1); _arg1.target.y = (_arg1.target.y - 2); m_pressBtn = false; }; } private function onLoaderMovieFinished():void{ trace("onGameLoaded()"); m_tween.removeEventListener(TweenEvent.MOTION_CHANGE, tweenTransformCrown); m_rootRef.removeEventListener(Event.ENTER_FRAME, update); } public function fglButtonClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.flashgamelicense.com/"), "_blank"); Preloader.sound.Play(SoundID.MENU_SELECT); } private function onPlayReleased(_arg1:MouseEvent):void{ cleanUp(); gotoGame(); } public function soundsnapButtonClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.soundsnap.com/"), "_blank"); Preloader.sound.Play(SoundID.MENU_SELECT); } public function redBall1BannerButtonOverHandler(_arg1:MouseEvent):void{ Preloader.sound.Play(SoundID.MENU_MOVE); Tweener.addTween(redBall1Dialog, {scaleX:0.9, scaleY:0.9, time:0.5, transition:"easeOutBack"}); } public function backButtonClickHandler(_arg1:MouseEvent):void{ gotoAndStop("mainMenu"); Preloader.sound.Play(SoundID.MENU_SELECT); } private function onBtnPress(_arg1:MouseEvent):void{ m_pressBtn = true; _arg1.target.x = (_arg1.target.x + 1); _arg1.target.y = (_arg1.target.y + 2); } function frame1(){ preloader = new Preloader(); addChild(preloader); preloader.Init(); embedPreloader.stop(); } function frame4(){ efCreditsButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); box2DButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); cgpButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); fglButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); johnnyKButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); badimButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); backButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); soundsnapButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); tombor911Button.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); cross666Button.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); efCreditsButton.addEventListener(MouseEvent.CLICK, efCreditsButtonClickHandler, false, 0, true); box2DButton.addEventListener(MouseEvent.CLICK, box2DButtonClickHandler, false, 0, true); cgpButton.addEventListener(MouseEvent.CLICK, cgpButtonClickHandler, false, 0, true); fglButton.addEventListener(MouseEvent.CLICK, fglButtonClickHandler, false, 0, true); johnnyKButton.addEventListener(MouseEvent.CLICK, johnnyKButtonClickHandler, false, 0, true); badimButton.addEventListener(MouseEvent.CLICK, badimButtonClickHandler, false, 0, true); backButton.addEventListener(MouseEvent.CLICK, backButtonClickHandler, false, 0, true); soundsnapButton.addEventListener(MouseEvent.CLICK, soundsnapButtonClickHandler, false, 0, true); tombor911Button.addEventListener(MouseEvent.CLICK, tombor911ButtonClickHandler, false, 0, true); cross666Button.addEventListener(MouseEvent.CLICK, cross666ButtonClickHandler, false, 0, true); } function frame5(){ if (Preloader.levelAvailable > Preloader.levelTotal){ crown.visible = true; } else { crown.visible = false; }; } function frame8(){ Preloader.sound.Play(SoundID.LOOP1); levelFlag.gotoAndStop(10); if (Preloader.levelAvailable <= Preloader.levelTotal){ levelFlag.visible = true; levelCrown.visible = false; } else { levelFlag.visible = false; levelCrown.visible = true; }; nowLevelAvailable = (Preloader.continueGame) ? Preloader.levelStart : Preloader.levelAvailable; i = 1; while (i <= Preloader.levelTotal) { levelButton = (getChildByName(("levelButton" + i)) as LevelButton); levelButton.Init(i); if (levelButton.n <= nowLevelAvailable){ levelButton.gotoAndStop(3); } else { levelButton.gotoAndStop(1); }; if (i == nowLevelAvailable){ levelButton.filters = [new GlowFilter(0xFF0000, 1, 2, 2, 10, 1, false, false)]; levelFlag.visible = true; levelFlag.x = (levelButton.x + 4); levelFlag.y = (levelButton.y - 29); }; if (!Preloader.continueGame){ levelButton.addEventListener(MouseEvent.MOUSE_OVER, mouseOverLevelButtonHandler, false, 0, true); levelButton.addEventListener(MouseEvent.MOUSE_OUT, mouseOutLevelButtonHandler, false, 0, true); levelButton.addEventListener(MouseEvent.CLICK, mouseClickLevelButtonHandler, false, 0, true); }; i++; }; filterMatrix = new Array(); bright = 0.38; filterMatrix = filterMatrix.concat([bright, bright, bright, 0, 0]); filterMatrix = filterMatrix.concat([bright, bright, bright, 0, 0]); filterMatrix = filterMatrix.concat([bright, bright, bright, 0, 0]); filterMatrix = filterMatrix.concat([0, 0, 0, 1, 0]); colorFilter = new ColorMatrixFilter(filterMatrix); backToMenuButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); resetButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); resetButton.addEventListener(MouseEvent.CLICK, resetButtonClickHandler, false, 0, true); backToMenuButton.addEventListener(MouseEvent.CLICK, backToMenuButtonClickHandler, false, 0, true); if (Preloader.continueGame){ resetButton.visible = false; backToMenuButton.visible = false; } else { resetButton.visible = true; backToMenuButton.visible = true; }; if (Preloader.continueGame){ Preloader.stageLink.addEventListener(KeyboardEvent.KEY_DOWN, continueGame, false, 0, true); Preloader.stageLink.addEventListener(MouseEvent.CLICK, continueGame, false, 0, true); }; } private function onBtnOver(_arg1:MouseEvent):void{ _arg1.target.addEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); } function frame9(){ programClass = (loaderInfo.applicationDomain.getDefinition("Game") as Class); program = (getWR(new programClass()).object as Sprite); addChild(program); } function frame3(){ stop(); Preloader.sound.Play(SoundID.LOOP1); startGameButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); bonusLevelsButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); walkthroughButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); moreGamesButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); creditsButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); playRedBall1Button.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); downloadButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); efButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); kingButton.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); redBall1BannerButton.addEventListener(MouseEvent.MOUSE_OVER, redBall1BannerButtonOverHandler, false, 0, true); redBall1BannerButton.addEventListener(MouseEvent.MOUSE_OUT, redBall1BannerButtonOutHandler, false, 0, true); startGameButton.addEventListener(MouseEvent.CLICK, startGameButtonClickHandler, false, 0, true); bonusLevelsButton.addEventListener(MouseEvent.CLICK, bonusLevelsButtonClickHandler, false, 0, true); walkthroughButton.addEventListener(MouseEvent.CLICK, walktroughButtonClickHandler, false, 0, true); moreGamesButton.addEventListener(MouseEvent.CLICK, moreGamesButtonClickHandler, false, 0, true); creditsButton.addEventListener(MouseEvent.CLICK, creditsButtonClickHandler, false, 0, true); playRedBall1Button.addEventListener(MouseEvent.CLICK, playRedBall1ButtonClickHandler, false, 0, true); redBall1BannerButton.addEventListener(MouseEvent.CLICK, playRedBall1ButtonClickHandler, false, 0, true); downloadButton.addEventListener(MouseEvent.CLICK, downloadButtonClickHandler, false, 0, true); efButton.addEventListener(MouseEvent.CLICK, efButtonClickHandler, false, 0, true); kingButton.addEventListener(MouseEvent.CLICK, kingButtonClickHandler, false, 0, true); title1.x = 676; title2.x = 552; Tweener.addTween(title1, {x:275, time:0.5, transition:"easeOutBack"}); Tweener.addTween(title2, {x:151, time:0.5, transition:"easeOutBack"}); redBall1Dialog.scaleX = (redBall1Dialog.scaleY = 0); if (Preloader.levelAvailable > Preloader.levelTotal){ crown.visible = true; } else { crown.visible = false; }; if (!Preloader.bonusAvailable){ bonusLevelsButton.alpha = 0.7; bonusLevelsButton.mouseEnabled = false; }; if (Preloader.isUrl(["freeworldgroup.com"])){ FWGLogo.visible = true; FWGLogo.addEventListener(MouseEvent.MOUSE_OVER, overButtonHandler, false, 0, true); FWGLogo.addEventListener(MouseEvent.CLICK, fwgLogoClickHandler, false, 0, true); } else { FWGLogo.visible = false; }; } private function tweenTransformLogo(_arg1:TweenEvent):void{ m_waveEngineLogo.colorUpdate(interpolateColor(m_startColor, m_endColor, m_tween.position).color); } public function moreGamesButtonClickHandler(_arg1:MouseEvent):void{ KingAPI.openOtherGamesLink(); Preloader.sound.Play(SoundID.MENU_SELECT); } public function cgpButtonClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://personal.boristhebrave.com/"), "_blank"); Preloader.sound.Play(SoundID.MENU_SELECT); } public function resetButtonClickHandler(_arg1:MouseEvent):void{ Preloader.levelAvailable = 1; Preloader.levelSave.data.levelAvailable = Preloader.levelAvailable; Preloader.levelSave.flush(100); gotoAndStop(15); gotoAndStop("selectLevelMenu"); Preloader.sound.Play(SoundID.MENU_SELECT); } public function getWR(_arg1):WeakReference{ return (new WeakReference(_arg1)); } public function badimButtonClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://blog.elite-games.net/"), "_blank"); Preloader.sound.Play(SoundID.MENU_SELECT); } private function showBannedScreen():void{ var _local1:Sprite = new mcBannedSign(); _local1.buttonMode = true; _local1.addEventListener(MouseEvent.CLICK, openKingPage); m_rootRef.addChild(_local1); } public function cross666ButtonClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://cross666.newgrounds.com/"), "_blank"); Preloader.sound.Play(SoundID.MENU_SELECT); } private function cleanUp():void{ m_otherGames.removeEventListener(MouseEvent.MOUSE_UP, onOtherReleased); m_otherGames.removeEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); m_otherGames.removeEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_otherGames.removeEventListener(MouseEvent.MOUSE_OUT, onBtnOut); m_play.removeEventListener(MouseEvent.MOUSE_UP, onPlayReleased); m_play.removeEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); m_play.removeEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_play.removeEventListener(MouseEvent.MOUSE_OUT, onBtnOut); var _local1:int; while (_local1 < m_loaderContent.length) { m_rootRef.removeChild(m_loaderContent[_local1]); m_loaderContent[_local1] = null; _local1++; }; } private function onOtherReleased(_arg1:MouseEvent):void{ KingAPI.openOtherGamesLink(); } public function johnnyKButtonClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("mailto:johnny@johnny-k.ru"), "_blank"); Preloader.sound.Play(SoundID.MENU_SELECT); } private function interpolateColor(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:ColorTransform = new ColorTransform(); _local4.redMultiplier = (_arg1.redMultiplier + ((_arg2.redMultiplier - _arg1.redMultiplier) * _arg3)); _local4.greenMultiplier = (_arg1.greenMultiplier + ((_arg2.greenMultiplier - _arg1.greenMultiplier) * _arg3)); _local4.blueMultiplier = (_arg1.blueMultiplier + ((_arg2.blueMultiplier - _arg1.blueMultiplier) * _arg3)); _local4.alphaMultiplier = (_arg1.alphaMultiplier + ((_arg2.alphaMultiplier - _arg1.alphaMultiplier) * _arg3)); _local4.redOffset = (_arg1.redOffset + ((_arg2.redOffset - _arg1.redOffset) * _arg3)); _local4.greenOffset = (_arg1.greenOffset + ((_arg2.greenOffset - _arg1.greenOffset) * _arg3)); _local4.blueOffset = (_arg1.blueOffset + ((_arg2.blueOffset - _arg1.blueOffset) * _arg3)); _local4.alphaOffset = (_arg1.alphaOffset + ((_arg2.alphaOffset - _arg1.alphaOffset) * _arg3)); return (_local4); } public function kingButtonClickHandler(_arg1:MouseEvent):void{ KingAPI.openOtherGamesLink(); Preloader.sound.Play(SoundID.MENU_SELECT); } public function mouseOutLevelButtonHandler(_arg1:MouseEvent):void{ if (_arg1.target.n <= Preloader.levelAvailable){ _arg1.target.gotoAndStop(3); } else { _arg1.target.gotoAndStop(1); }; } private function update(_arg1:Event):void{ var _local2:int; var _local3:int; var _local4:MovieClip; var _local5:Sound; var _local6:Sound; if ((((stage.loaderInfo.bytesLoaded == stage.loaderInfo.bytesTotal)) && (!(m_isLoaded)))){ m_isLoaded = true; trace("LOADED COMPLETWE"); }; m_count++; if (m_streamGreen){ if (m_count == 1){ m_GREEN.height = (m_GREEN.height - m_GREEN.height); m_GREEN.alpha = 1; m_ferryGreen.gotoAndStop("on"); }; m_GREEN.height = (m_GREEN.height + 20); if (m_GREEN.height >= m_streamHeight){ m_GREEN.height = m_streamHeight; if (m_clsGreen.decrThickness(false)){ m_streamGreen = false; m_streamBlue = true; m_count = 0; }; }; }; if (m_streamBlue){ if (m_count >= 40){ if (m_count == 40){ m_BLUE.height = (m_BLUE.height - m_BLUE.height); m_BLUE.alpha = 1; m_ferryBlue.gotoAndStop("on"); m_tween = new Tween(m_waveHolderLogo, "", None.easeNone, 0, 1, 2, true); m_tween.addEventListener(TweenEvent.MOTION_CHANGE, tweenTransformLogo); }; m_BLUE.height = (m_BLUE.height + 20); if (m_BLUE.height >= m_streamHeight){ m_BLUE.height = m_streamHeight; if (m_clsBlue.decrThickness(false)){ m_streamBlue = false; }; }; }; }; if (m_logoFill){ if (m_waveHolderLogo.y > m_greenDest){ m_waveHolderLogo.y = (m_waveHolderLogo.y - 0.3); } else { m_waveHolderLogo.y = m_greenDest; if (!m_streamBlue){ m_colorOff = true; m_waveEngineLogo.stopWave(); }; }; }; if (m_colorOff){ if (m_logoFill){ if (m_clsBlue.decrThickness(true)){ if (m_BLUE.rotation != 180){ m_BLUE.rotation = 180; m_BLUE.y = (STAGE_HEIGHT / 2); m_ferryBlue.gotoAndStop("off"); }; m_BLUE.scaleY = (m_BLUE.scaleY - 0.1); if (m_BLUE.scaleY < 0){ m_BLUE.alpha = 0; m_colorOff = false; m_logoFill = false; m_count = 0; m_crownFill = true; m_streamRed = true; m_startColor = new ColorTransform(); m_startColor.color = 0xFF00; m_endColor = new ColorTransform(); m_endColor.color = 0xFFAA00; m_tween.removeEventListener(TweenEvent.MOTION_CHANGE, tweenTransformLogo); m_tween = new Tween(m_waveHolderCrown, "", None.easeNone, 0, 1, 2, true); m_tween.addEventListener(TweenEvent.MOTION_CHANGE, tweenTransformCrown); }; }; }; if (m_crownFill){ if (((m_clsRed.decrThickness(true)) && (m_clsGreen.decrThickness(true)))){ if (m_GREEN.rotation != 180){ m_GREEN.rotation = 180; m_RED.rotation = 180; m_GREEN.y = (STAGE_HEIGHT / 2); m_RED.y = (STAGE_HEIGHT / 2); m_ferryGreen.gotoAndStop("off"); m_ferryRed.gotoAndStop("off"); }; m_GREEN.scaleY = (m_GREEN.scaleY - 0.1); m_RED.scaleY = (m_RED.scaleY - 0.1); if ((((m_GREEN.scaleY < 0)) && ((m_RED.scaleY < 0)))){ m_GREEN.alpha = 0; m_RED.alpha = 0; m_colorOff = false; m_crownFill = false; m_bounce = true; m_count = 0; }; }; }; }; if (m_crownFill){ if (m_sampleLoadPerc == -1){ m_sampleLoadPerc = (100 - (100 * (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal))); m_step = (m_dist / 100); }; _local2 = (100 - (100 * (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal))); _local2 = ((100 * (m_sampleLoadPerc - _local2)) / m_sampleLoadPerc); if (m_waveHolderCrown.y > m_yellowDest){ if ((m_waveHolderCrown.y - m_step) < m_yellowDest){ m_waveHolderCrown.y = m_yellowDest; } else { if (m_isLoaded){ m_waveHolderCrown.y = (m_waveHolderCrown.y - 0.5); } else { trace(m_prevPerc, _local2); if (m_prevPerc != _local2){ _local3 = (_local2 - m_prevPerc); m_waveHolderCrown.y = (m_waveHolderCrown.y - m_step); m_prevPerc = _local2; }; }; }; } else { m_colorOff = true; m_waveEngineCrown.stopWave(); }; }; if (m_streamRed){ if (m_count >= 20){ if (m_count == 20){ m_RED.height = (m_RED.height - m_RED.height); m_RED.alpha = 1; m_ferryRed.gotoAndStop("on"); }; m_RED.height = (m_RED.height + 20); if (m_RED.height >= m_streamHeight){ m_RED.height = m_streamHeight; if (m_clsRed.decrThickness(false)){ m_streamRed = false; }; }; }; }; if (m_bounce){ if (m_count == 1){ _local4 = new mcWaterRing(); _local4.x = (STAGE_WIDTH / 2); _local4.y = ((STAGE_HEIGHT / 2) + 30); m_rootRef.addChild(_local4); m_loaderContent.push(_local4); }; if (m_count == 2){ _local5 = new sfxBounce(); _local5.play(); }; if (m_count < 3){ m_logoHolder.y = (m_logoHolder.y + 1); m_waveHolderCrown.y = (m_waveHolderCrown.y + 1); m_waveHolderLogo.y = (m_waveHolderLogo.y + 1); m_maskRown.y = (m_maskRown.y + 1); m_mask.y = (m_mask.y + 1); }; if ((((m_count > 2)) && ((m_count < 4)))){ m_logoHolder.y = (m_logoHolder.y - 1); m_waveHolderCrown.y = (m_waveHolderCrown.y - 1); m_waveHolderLogo.y = (m_waveHolderLogo.y - 1); m_maskRown.y = (m_maskRown.y - 1); m_mask.y = (m_mask.y - 1); }; if (m_count == 4){ _local6 = new sfxBell(); _local6.play(); }; if (m_count == 30){ m_play.visible = true; m_otherGames.visible = true; }; if (m_count > 30){ m_play.alpha = (m_play.alpha + 0.05); if (m_count > 40){ m_otherGames.alpha = (m_otherGames.alpha + 0.05); }; if ((((m_play.alpha >= 1)) && ((m_otherGames.alpha >= 1)))){ m_bounce = false; onLoaderMovieFinished(); }; }; }; } private function playLoaderMovie():void{ var _local1:MovieClip = new mcFerryLine(); m_rootRef.addChild(m_ferryGreen); m_rootRef.addChild(m_ferryRed); m_rootRef.addChild(m_ferryBlue); m_ferryGreen.x = ((STAGE_WIDTH / 2) - 2); m_ferryRed.x = ((m_ferryGreen.x - (m_ferryGreen.width / 2)) + 15); m_ferryBlue.x = ((m_ferryGreen.x + (m_ferryGreen.width / 2)) - 17); m_ferryBlue.y = (m_ferryGreen.y = (m_ferryRed.y = (m_bg.y + 15))); m_loaderContent.push(m_ferryGreen); m_loaderContent.push(m_ferryRed); m_loaderContent.push(m_ferryBlue); _local1.x = (STAGE_WIDTH / 2); _local1.y = ((m_ferryGreen.y + m_ferryGreen.height) - 9); m_streamHeight = ((STAGE_HEIGHT / 2) - 40); m_clsRed = m_RED.RED; m_clsRed.init(m_streamHeight, 1); m_clsGreen = m_GREEN.GREEN; m_clsGreen.init(m_streamHeight, 1); m_clsBlue = m_BLUE.BLUE; m_clsBlue.init(m_streamHeight, 1); m_RED.alpha = (m_GREEN.alpha = (m_BLUE.alpha = 0)); m_rootRef.addChild(m_RED); m_rootRef.addChild(m_GREEN); m_rootRef.addChild(m_BLUE); m_loaderContent.push(m_RED); m_loaderContent.push(m_GREEN); m_loaderContent.push(m_BLUE); m_RED.x = ((STAGE_WIDTH / 2) - 22); m_GREEN.x = ((STAGE_WIDTH / 2) - 4); m_BLUE.x = ((STAGE_WIDTH / 2) + 16); m_RED.y = (m_GREEN.y = (m_BLUE.y = _local1.y)); m_waveEngineLogo = new WaveEngine(m_rootRef, 205.8, 120, 0xFF00, 0xFF00, m_waveHolderLogo); m_waveHolderLogo = m_waveEngineLogo.getWave(); m_rootRef.addChild(m_waveHolderLogo); m_loaderContent.push(m_waveHolderLogo); m_waveEngineCrown = new WaveEngine(m_rootRef, 67.5, 100, 0xFFAA00, 0xFFAA00, m_waveHolderCrown); m_waveHolderCrown = m_waveEngineCrown.getWave(); m_rootRef.addChild(m_waveHolderCrown); m_loaderContent.push(m_waveHolderCrown); m_logoHolder = new mcLogoHolder(); m_logoHolder.x = (STAGE_WIDTH / 2); m_logoHolder.y = ((STAGE_HEIGHT / 2) - 2); m_logoHolder.mouseEnabled = false; m_rootRef.addChild(m_logoHolder); m_loaderContent.push(m_logoHolder); m_mask = new mcLogoMask(); m_mask.x = m_logoHolder.x; m_mask.y = m_logoHolder.y; m_rootRef.addChild(m_mask); m_loaderContent.push(m_mask); m_maskRown = new mcCrownMask(); m_maskRown.x = m_logoHolder.x; m_maskRown.y = m_logoHolder.y; m_rootRef.addChild(m_maskRown); m_loaderContent.push(m_maskRown); m_waveHolderLogo.mask = m_mask; m_waveHolderLogo.x = ((STAGE_WIDTH / 2) - (m_mask.width / 2)); m_waveHolderLogo.y = (((STAGE_HEIGHT / 2) + (m_mask.height / 2)) + 15); m_waveHolderCrown.mask = m_maskRown; m_waveHolderCrown.x = (m_logoHolder.x - (m_maskRown.width / 2)); m_waveHolderCrown.y = (m_logoHolder.y + 4); m_waveEngineLogo.startWave(); m_waveEngineCrown.startWave(); m_greenDest = ((m_waveHolderLogo.y - (120 / 2)) - 10); m_yellowDest = (m_waveHolderCrown.y - (100 / 2)); m_dist = (m_waveHolderCrown.y - m_yellowDest); m_startColor = new ColorTransform(); m_startColor.color = 0xFF00; m_endColor = new ColorTransform(); m_endColor.color = 35886; m_play = new mcPlay(); m_play.x = (STAGE_WIDTH / 2); m_play.y = ((m_logoHolder.y + m_logoHolder.height) - 5); m_play.buttonMode = true; m_play.alpha = 0; m_play.visible = false; m_play.addEventListener(MouseEvent.MOUSE_UP, onPlayReleased); m_play.addEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_play.addEventListener(MouseEvent.MOUSE_OUT, onBtnOut); m_rootRef.addChild(m_play); m_loaderContent.push(m_play); m_otherGames = new mcOtherGames(); m_otherGames.x = (STAGE_WIDTH / 2); m_otherGames.y = ((m_play.y + m_play.height) + 15); m_otherGames.buttonMode = true; m_otherGames.alpha = 0; m_otherGames.visible = false; m_otherGames.addEventListener(MouseEvent.MOUSE_UP, onOtherReleased); m_otherGames.addEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_otherGames.addEventListener(MouseEvent.MOUSE_OUT, onBtnOut); m_rootRef.addChild(m_otherGames); m_loaderContent.push(m_otherGames); m_rootRef.addEventListener(Event.ENTER_FRAME, update); } public function backToMenuButtonClickHandler(_arg1:MouseEvent):void{ gotoAndStop("mainMenu"); Preloader.continueGame = false; Preloader.sound.Play(SoundID.MENU_SELECT); } public function playRedBall1ButtonClickHandler(_arg1:MouseEvent):void{ KingAPI.openKingPage("red-ball", "/game/red-ball"); Preloader.sound.Play(SoundID.MENU_SELECT); } private function openKingPage(_arg1:Event):void{ trace(("openKingPage() " + _arg1)); KingAPI.openLoaderMovieLink(); } public function box2DButtonClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.box2d.org/"), "_blank"); Preloader.sound.Play(SoundID.MENU_SELECT); } public function creditsButtonClickHandler(_arg1:MouseEvent):void{ gotoAndStop("creditsMenu"); Preloader.sound.Play(SoundID.MENU_SELECT); } public function continueGame(_arg1:Event):void{ Preloader.stageLink.removeEventListener(KeyboardEvent.KEY_DOWN, continueGame); Preloader.stageLink.removeEventListener(MouseEvent.CLICK, continueGame); StartGame(nowLevelAvailable); } public function overButtonHandler(_arg1:MouseEvent):void{ Preloader.sound.Play(SoundID.MENU_MOVE); } public function StartGame(_arg1:int):void{ Preloader.levelStart = _arg1; gotoAndStop("game"); } public function walktroughButtonClickHandler(_arg1:MouseEvent):void{ KingAPI.openSignLink(); Preloader.sound.Play(SoundID.MENU_SELECT); } private function onKingApiInit(_arg1:Event):void{ trace(("onKingApiInit() :" + _arg1.type)); if (MOCHI != ""){ MochiBot.track(this, MOCHI); }; m_gameFrameRate = root.stage.frameRate; root.stage.frameRate = 30; if (KingAPI.banned){ showBannedScreen(); return; }; if (KingAPI.isHome){ gotoGame(); } else { playLoaderMovie(); }; } public function efButtonClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("mailto:evgeniy_fedoseev@yahoo.com"), "_blank"); Preloader.sound.Play(SoundID.MENU_SELECT); } public function startGameButtonClickHandler(_arg1:MouseEvent):void{ gotoAndStop("selectLevelMenu"); Preloader.sound.Play(SoundID.MENU_SELECT); } public function efCreditsButtonClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("mailto:evgeniy_fedoseev@yahoo.com"), "_blank"); Preloader.sound.Play(SoundID.MENU_SELECT); } public function mouseOverLevelButtonHandler(_arg1:MouseEvent):void{ if (_arg1.target.n <= Preloader.levelAvailable){ _arg1.target.gotoAndStop(4); } else { _arg1.target.gotoAndStop(2); }; Preloader.sound.Play(SoundID.MENU_MOVE); } public function tombor911ButtonClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://tombor911.newgrounds.com/"), "_blank"); Preloader.sound.Play(SoundID.MENU_SELECT); } public function redBall1BannerButtonOutHandler(_arg1:MouseEvent):void{ Tweener.addTween(redBall1Dialog, {scaleX:0, scaleY:0, time:0.4, transition:"easeOutQuint"}); } public function downloadButtonClickHandler(_arg1:MouseEvent):void{ KingAPI.openAddToWebsiteLink(); Preloader.sound.Play(SoundID.MENU_SELECT); } public function fwgLogoClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.freeworldgroup.com"), "_blank"); Preloader.sound.Play(SoundID.MENU_SELECT); } public function mouseClickLevelButtonHandler(_arg1:MouseEvent):void{ if (_arg1.target.n <= Preloader.levelAvailable){ _arg1.target.removeEventListener(MouseEvent.MOUSE_OVER, mouseOverLevelButtonHandler); _arg1.target.removeEventListener(MouseEvent.MOUSE_OUT, mouseOutLevelButtonHandler); _arg1.target.removeEventListener(MouseEvent.CLICK, mouseClickLevelButtonHandler); StartGame(_arg1.target.n); Preloader.sound.Play(SoundID.MENU_SELECT); } else { Preloader.sound.Play(SoundID.NOT_AVAILABLE); }; } private function gotoGame():void{ root.stage.frameRate = m_gameFrameRate; if (Preloader.isUrl(["freeworldgroup.com"])){ m_rootRef.gotoAndStop("fwgSplash"); } else { m_rootRef.gotoAndStop("preGameComics"); }; } private function tweenTransformCrown(_arg1:TweenEvent):void{ m_waveEngineCrown.colorUpdate(interpolateColor(m_startColor, m_endColor, m_tween.position).color); } } }//package com.midasplayer
Section 117
//BitmapEmitter (com.roguedevelopment.pulse.emitter.BitmapEmitter) package com.roguedevelopment.pulse.emitter { import flash.display.*; import com.roguedevelopment.pulse.*; import flash.events.*; import flash.geom.*; import flash.filters.*; public class BitmapEmitter extends GenericEmitter { protected var origin:Point; protected var bitmap:BitmapData; protected var fullRect:Rectangle; protected var fader:ColorMatrixFilter; public function BitmapEmitter(_arg1:Number, _arg2:BitmapData, _arg3:Number=0.85){ origin = new Point(0, 0); fader = new ColorMatrixFilter([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, _arg3, 0]); super(_arg1); this.bitmap = _arg2; fullRect = new Rectangle(0, 0, _arg2.width, _arg2.height); root = new Sprite(); } override public function stop():void{ super.stop(); } override public function start():void{ PulseEngine.instance.root.addEventListener(Event.ENTER_FRAME, onEnterFrame); super.start(); } protected function onEnterFrame(_arg1:Event):void{ bitmap.applyFilter(bitmap, fullRect, origin, fader); var _local2:Matrix = new Matrix(); _local2.rotate(((root.rotation * Math.PI) / 180)); _local2.translate(root.x, root.y); _local2.scale(root.scaleX, root.scaleY); bitmap.draw(root, _local2); } } }//package com.roguedevelopment.pulse.emitter
Section 118
//GenericEmitter (com.roguedevelopment.pulse.emitter.GenericEmitter) package com.roguedevelopment.pulse.emitter { import com.roguedevelopment.pulse.particle.*; import flash.display.*; import com.roguedevelopment.pulse.*; import flash.events.*; import flash.utils.*; public class GenericEmitter implements IParticleEmitter { protected var _y:Number;// = 10 protected var timer:Timer; public var width:Number;// = 1 public var newParticlesOnTop:Boolean;// = true protected var factory:IParticleFactory; public var particleLimit:uint;// = 0 public var root:DisplayObjectContainer;// = null public var height:Number;// = 1 protected var particleCount:uint;// = 0 protected var _x:Number;// = 10 public function GenericEmitter(_arg1:Number){ pps = _arg1; root = PulseEngine.instance.root; } public function get y():Number{ return (_y); } public function stop():void{ if (factory != null){ factory.cleanup(); }; timer.stop(); } public function setFactory(_arg1:IParticleFactory):void{ this.factory = _arg1; } protected function emit(_arg1:TimerEvent):void{ if (factory == null){ return; }; if (particleLimit > 0){ particleCount++; if (particleCount > particleLimit){ timer.stop(); return; }; }; var _local2:IParticle = factory.newParticle(); _local2.x = (x + (Math.random() * width)); _local2.y = (y + (Math.random() * height)); if ((_local2 is DisplayObject)){ if (newParticlesOnTop){ root.addChild((_local2 as DisplayObject)); } else { root.addChildAt((_local2 as DisplayObject), 0); }; }; PulseEngine.instance.addParticle(_local2); } public function getFactory():IParticleFactory{ return (factory); } public function set y(_arg1:Number):void{ _y = _arg1; } public function set pps(_arg1:Number):void{ if (timer != null){ timer.stop(); }; timer = new Timer((1000 / _arg1)); timer.addEventListener(TimerEvent.TIMER, emit); timer.start(); } public function set x(_arg1:Number):void{ _x = _arg1; } public function start():void{ particleCount = 0; timer.start(); } public function get pps():Number{ return (10); } public function get x():Number{ return (_x); } } }//package com.roguedevelopment.pulse.emitter
Section 119
//IParticleEmitter (com.roguedevelopment.pulse.emitter.IParticleEmitter) package com.roguedevelopment.pulse.emitter { import com.roguedevelopment.pulse.particle.*; public interface IParticleEmitter { function set x(_arg1:Number):void; function stop():void; function set y(_arg1:Number):void; function get x():Number; function get y():Number; function start():void; function setFactory(_arg1:IParticleFactory):void; } }//package com.roguedevelopment.pulse.emitter
Section 120
//MovieClipEmitter (com.roguedevelopment.pulse.emitter.MovieClipEmitter) package com.roguedevelopment.pulse.emitter { import com.roguedevelopment.pulse.particle.*; import flash.display.*; import com.roguedevelopment.pulse.*; import flash.events.*; import flash.geom.*; import flash.utils.*; import com.roguedevelopment.pulse.simple.*; public final class MovieClipEmitter extends MovieClip implements IParticleEmitter { protected var _clipName:String; private var _config:String; protected var origin:Point; protected var _rootClip:Boolean; private var realEmitter:GenericEmitter; public function MovieClipEmitter(){ realEmitter = new GenericEmitter(20); origin = new Point(0, 0); super(); width = 10; height = 10; addEventListener(Event.ADDED_TO_STAGE, onAdded); addEventListener(Event.REMOVED_FROM_STAGE, onRemoved); addEventListener(Event.ENTER_FRAME, onEnterFrame); visible = false; } protected function setupEmitter():void{ var _local1:IParticleFactory; var _local3:Class; if (realEmitter != null){ realEmitter.stop(); }; var _local2:Array = []; if ((((movieClipName == "")) || ((movieClipName == null)))){ _local1 = new GenericFactory(DotParticle, _local2, []); } else { _local3 = (getDefinitionByName(_clipName) as Class); _local1 = new GenericFactory(_local3, _local2, []); }; realEmitter.setFactory(_local1); SimpleParticles.configureEmitter(realEmitter, config); realEmitter.start(); realEmitter.x = x; realEmitter.y = y; if ((((parent is Sprite)) && (!(_rootClip)))){ realEmitter.root = parent; } else { realEmitter.root = stage; }; } protected function onRemoved(_arg1:Event):void{ realEmitter.stop(); } public function setSize(_arg1:Number, _arg2:Number):void{ trace(((("setSize: " + _arg1) + " ") + _arg2)); this.width = _arg1; this.height = _arg2; } public function set config(_arg1:String):void{ _config = _arg1; setupEmitter(); } public function setFactory(_arg1:IParticleFactory):void{ throw (new Error("MovieClip Emitter will worry about creating it's own factory based on the Flash authoring environment.")); } override public function set y(_arg1:Number):void{ super.y = _arg1; realEmitter.y = _arg1; } public function get movieClipName():String{ return (_clipName); } public function get config():String{ return (_config); } public function get rootEffect():Boolean{ return (_rootClip); } public function set movieClipName(_arg1:String):void{ _clipName = _arg1; setupEmitter(); } public function move(_arg1:Number, _arg2:Number):void{ trace(("moved " + _arg1)); } override public function stop():void{ realEmitter.stop(); } protected function onAdded(_arg1:Event):void{ if (PulseEngine.instance.root == null){ if (stage != null){ PulseEngine.instance.root = stage; } else { PulseEngine.instance.root = parent; }; }; setupEmitter(); } public function start():void{ realEmitter.start(); } public function set rootEffect(_arg1:Boolean):void{ _rootClip = _arg1; setupEmitter(); } public function set pps(_arg1:Number):void{ realEmitter.pps = _arg1; } protected function onEnterFrame(_arg1:Event):void{ if ((((realEmitter == null)) || ((realEmitter.root == null)))){ return; }; var _local2:Point = localToGlobal(origin); _local2 = realEmitter.root.globalToLocal(_local2); realEmitter.x = _local2.x; realEmitter.y = _local2.y; } override public function set x(_arg1:Number):void{ super.x = _arg1; realEmitter.x = _arg1; } } }//package com.roguedevelopment.pulse.emitter
Section 121
//AngleRandomizerInitializer (com.roguedevelopment.pulse.initializers.AngleRandomizerInitializer) package com.roguedevelopment.pulse.initializers { public class AngleRandomizerInitializer extends ParameterRandomizerInitializer { public function AngleRandomizerInitializer(_arg1:Number, _arg2:Number){ super("angle", ((_arg1 * Math.PI) / 180), ((_arg2 * Math.PI) / 180), round); } } }//package com.roguedevelopment.pulse.initializers
Section 122
//IPulseInitializer (com.roguedevelopment.pulse.initializers.IPulseInitializer) package com.roguedevelopment.pulse.initializers { import com.roguedevelopment.pulse.particle.*; public interface IPulseInitializer { function init(_arg1:IParticle):void; } }//package com.roguedevelopment.pulse.initializers
Section 123
//ParameterInitializer (com.roguedevelopment.pulse.initializers.ParameterInitializer) package com.roguedevelopment.pulse.initializers { import com.roguedevelopment.pulse.particle.*; public class ParameterInitializer implements IPulseInitializer { protected var value:Object; protected var propName:String; public function ParameterInitializer(_arg1:String, _arg2:Object){ this.propName = _arg1; this.value = _arg2; } public function init(_arg1:IParticle):void{ var _local2:Object = (_arg1 as Object); if (_local2.hasOwnProperty(propName)){ _local2[propName] = value; } else { if (_local2.hasOwnProperty("params")){ _local2.params[propName] = value; }; }; } } }//package com.roguedevelopment.pulse.initializers
Section 124
//ParameterRandomizerInitializer (com.roguedevelopment.pulse.initializers.ParameterRandomizerInitializer) package com.roguedevelopment.pulse.initializers { import com.roguedevelopment.pulse.particle.*; public class ParameterRandomizerInitializer implements IPulseInitializer { protected var propName:String; protected var round:Boolean; protected var maxValue:Number; protected var minValue:Number; public function ParameterRandomizerInitializer(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false){ this.minValue = _arg2; this.maxValue = _arg3; this.propName = _arg1; this.round = _arg4; } public function init(_arg1:IParticle):void{ var _local2:Object = _arg1; var _local3:Number = (minValue + (Math.random() * (maxValue - minValue))); if (round){ _local3 = Math.round(_local3); }; if (_local2.hasOwnProperty(propName)){ _local2[propName] = _local3; } else { if (_local2.hasOwnProperty("params")){ _local2.params[propName] = _local3; }; }; } } }//package com.roguedevelopment.pulse.initializers
Section 125
//RandomFrameInit (com.roguedevelopment.pulse.initializers.RandomFrameInit) package com.roguedevelopment.pulse.initializers { import com.roguedevelopment.pulse.particle.*; import flash.display.*; public class RandomFrameInit implements IPulseInitializer { public function init(_arg1:IParticle):void{ var mc:MovieClip; var particle = _arg1; if ((particle is MovieClip)){ mc = (particle as MovieClip); mc.gotoAndStop(Math.round((Math.random() * mc.totalFrames))); } else { if ((particle is Sprite)){ try { mc = ((particle as Sprite).getChildAt(0) as MovieClip); if (mc != null){ mc.gotoAndStop(Math.round((Math.random() * mc.totalFrames))); }; } catch(e:Error) { }; }; }; } } }//package com.roguedevelopment.pulse.initializers
Section 126
//ScaleRandomizerInitializer (com.roguedevelopment.pulse.initializers.ScaleRandomizerInitializer) package com.roguedevelopment.pulse.initializers { import com.roguedevelopment.pulse.particle.*; public class ScaleRandomizerInitializer implements IPulseInitializer { protected var maxValue:Number; protected var minValue:Number; public function ScaleRandomizerInitializer(_arg1:Number, _arg2:Number){ this.minValue = _arg1; this.maxValue = _arg2; } public function init(_arg1:IParticle):void{ var _local2:Object = _arg1; var _local3:Number = (minValue + (Math.random() * (maxValue - minValue))); _local2["scaleX"] = _local3; _local2["scaleY"] = _local3; } } }//package com.roguedevelopment.pulse.initializers
Section 127
//DotParticle (com.roguedevelopment.pulse.particle.DotParticle) package com.roguedevelopment.pulse.particle { public class DotParticle extends GenericParticle { protected var _size:Number;// = 1 protected var _color:uint;// = 0xFFFFFF public function DotParticle(){ redraw(); } public function set size(_arg1:Number):void{ _size = _arg1; redraw(); } public function set color(_arg1:uint):void{ _color = _arg1; redraw(); } protected function redraw():void{ graphics.clear(); graphics.beginFill(_color, 1); graphics.drawCircle(0, 0, _size); graphics.endFill(); } } }//package com.roguedevelopment.pulse.particle
Section 128
//GenericFactory (com.roguedevelopment.pulse.particle.GenericFactory) package com.roguedevelopment.pulse.particle { import flash.display.*; import com.roguedevelopment.pulse.initializers.*; public final class GenericFactory implements IParticleFactory { protected var partClass:Class; protected var _initializers:Array; protected var recycled:Array; public var isRunning:Boolean;// = true protected var _rules:Array; public function GenericFactory(_arg1:Class, _arg2:Array, _arg3:Array){ recycled = []; super(); this.partClass = _arg1; _rules = _arg2; this.initializers = _arg3; } public function cleanup():void{ var _local1:IParticle; isRunning = false; for each (_local1 in recycled) { _local1.remove(); }; recycled = []; } public function newParticle():IParticle{ var _local1:IParticle; var _local2:IPulseInitializer; var _local3:Object; isRunning = true; if (recycled.length > 0){ _local1 = (recycled.shift() as IParticle); (_local1 as IRecyleableParticle).recycle(); } else { _local3 = new partClass(); if ((_local3 is IParticle)){ _local1 = (_local3 as IParticle); } else { if ((_local3 is Sprite)){ _local1 = new GenericParticle(); (_local1 as GenericParticle).addChild((_local3 as Sprite)); }; }; if ((_local1 is IRecyleableParticle)){ (_local1 as IRecyleableParticle).factory = this; }; }; _local1.rules = _rules.concat(); for each (_local2 in _initializers) { trace(_local2); _local2.init(_local1); }; return (_local1); } public function set initializers(_arg1:Array):void{ _initializers = _arg1; } public function recycle(_arg1:IParticle):void{ if (isRunning){ _arg1.visible = false; recycled.push(_arg1); } else { _arg1.remove(); }; } public function set rules(_arg1:Array):void{ _rules = _arg1; } } }//package com.roguedevelopment.pulse.particle
Section 129
//GenericParticle (com.roguedevelopment.pulse.particle.GenericParticle) package com.roguedevelopment.pulse.particle { import flash.display.*; import flash.geom.*; public class GenericParticle extends Sprite implements IRecyleableParticle { protected var _birth:Number; protected var _factory:IParticleFactory; protected var _params:Object; protected var _rules:Array; public function GenericParticle(){ _params = {angle:0, speed:0}; super(); _birth = new Date().time; } public function remove():void{ if (parent != null){ parent.removeChild(this); }; } public function get params():Object{ return (_params); } public function get factory():IParticleFactory{ return (_factory); } public function recycle():void{ _birth = new Date().time; scaleX = 1; rotation = 0; scaleY = 1; alpha = 1; visible = true; transform.colorTransform = new ColorTransform(); } public function set factory(_arg1:IParticleFactory):void{ _factory = _arg1; } public function get rules():Array{ return (_rules); } public function get birthTime():Number{ return (_birth); } public function set rules(_arg1:Array):void{ _rules = _arg1; } } }//package com.roguedevelopment.pulse.particle
Section 130
//ImageParticle (com.roguedevelopment.pulse.particle.ImageParticle) package com.roguedevelopment.pulse.particle { import flash.display.*; import flash.geom.*; public final class ImageParticle extends GenericParticle implements IRecyleableParticle { protected var imaged:Boolean;// = false public function set image(_arg1:Class):void{ if (imaged){ return; }; imaged = true; var _local2:Bitmap = new (_arg1); addChild(_local2); } override public function recycle():void{ _birth = new Date().time; scaleX = 1; rotation = 0; scaleY = 1; alpha = 1; visible = true; transform.colorTransform = new ColorTransform(); } } }//package com.roguedevelopment.pulse.particle
Section 131
//IParticle (com.roguedevelopment.pulse.particle.IParticle) package com.roguedevelopment.pulse.particle { public interface IParticle { function get visible():Boolean; function set alpha(_arg1:Number):void; function set visible(_arg1:Boolean):void; function get alpha():Number; function get params():Object; function set rotation(_arg1:Number):void; function get birthTime():Number; function get rotation():Number; function set rules(_arg1:Array):void; function get scaleY():Number; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function remove():void; function get scaleX():Number; function get rules():Array; function get x():Number; function get y():Number; function set scaleX(_arg1:Number):void; function set scaleY(_arg1:Number):void; } }//package com.roguedevelopment.pulse.particle
Section 132
//IParticleFactory (com.roguedevelopment.pulse.particle.IParticleFactory) package com.roguedevelopment.pulse.particle { public interface IParticleFactory { function set initializers(_arg1:Array):void; function cleanup():void; function newParticle():IParticle; function recycle(_arg1:IParticle):void; function set rules(_arg1:Array):void; } }//package com.roguedevelopment.pulse.particle
Section 133
//IRecyleableParticle (com.roguedevelopment.pulse.particle.IRecyleableParticle) package com.roguedevelopment.pulse.particle { public interface IRecyleableParticle extends IParticle { function get factory():IParticleFactory; function recycle():void; function set factory(_arg1:IParticleFactory):void; } }//package com.roguedevelopment.pulse.particle
Section 134
//LineParticle (com.roguedevelopment.pulse.particle.LineParticle) package com.roguedevelopment.pulse.particle { public class LineParticle extends GenericParticle { protected var _size:Number;// = 1 protected var _color:uint;// = 0xFFFFFF public function LineParticle(){ redraw(); } public function set size(_arg1:Number):void{ _size = _arg1; redraw(); } public function set color(_arg1:uint):void{ _color = _arg1; redraw(); } protected function redraw():void{ graphics.clear(); graphics.lineStyle(1, _color); graphics.moveTo(0, 0); graphics.lineTo(_size, 0); } } }//package com.roguedevelopment.pulse.particle
Section 135
//AccelerationRule (com.roguedevelopment.pulse.rule.AccelerationRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; public final class AccelerationRule implements IPulseRule { protected var amount:Number;// = 1 public function AccelerationRule(_arg1:Number=1){ this.amount = _arg1; } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ var _local4:Number; if (_arg1.params.hasOwnProperty("speed")){ _local4 = _arg1.params["speed"]; _local4 = (_local4 + amount); if ((((amount < 0)) && ((_local4 < 0)))){ _local4 = 0; }; }; _arg1.params["speed"] = _local4; } public function configure(_arg1:Array):void{ amount = _arg1[0]; } } }//package com.roguedevelopment.pulse.rule
Section 136
//BoundingBoxRule (com.roguedevelopment.pulse.rule.BoundingBoxRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; import flash.geom.*; public final class BoundingBoxRule implements IPulseRule { protected var box:Rectangle; public function BoundingBoxRule(_arg1:Rectangle=null){ this.box = _arg1; } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ var _local5:Number; var _local6:Number; var _local7:Number; var _local4:Number = _arg1.params.angle; if ((((((((_arg1.x <= box.x)) && ((_local4 > (Math.PI / 2))))) && ((_local4 < ((3 * Math.PI) / 2))))) || ((((_arg1.x >= box.right)) && ((((_local4 > ((3 * Math.PI) / 2))) || ((_local4 < (Math.PI / 2))))))))){ _local5 = _arg1.params.speed; _local6 = (Math.cos(_local4) * _local5); _local7 = (Math.sin(_local4) * _local5); _local6 = (_local6 * -1); _local4 = Math.atan2(_local7, _local6); if (_local4 < 0){ _local4 = (_local4 + (2 * Math.PI)); }; if (_local4 > (2 * Math.PI)){ _local4 = (_local4 - (2 * Math.PI)); }; _arg1.params.angle = _local4; }; if ((((((((_arg1.y <= box.y)) && ((_local4 > Math.PI)))) && ((_local4 < (2 * Math.PI))))) || ((((((_arg1.y >= box.bottom)) && ((_local4 > 0)))) && ((_local4 < Math.PI)))))){ _local5 = _arg1.params.speed; _local6 = (Math.cos(_local4) * _local5); _local7 = (Math.sin(_local4) * _local5); _local7 = (_local7 * -1); _local4 = Math.atan2(_local7, _local6); if (_local4 < 0){ _local4 = (_local4 + (2 * Math.PI)); }; if (_local4 > 360){ _local4 = (_local4 - (2 * Math.PI)); }; _arg1.params.angle = _local4; }; } public function configure(_arg1:Array):void{ if (_arg1.length != 4){ return; }; box = new Rectangle(_arg1[0], _arg1[1], _arg1[2], _arg1[3]); } } }//package com.roguedevelopment.pulse.rule
Section 137
//ColorTransformRule (com.roguedevelopment.pulse.rule.ColorTransformRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; import flash.display.*; import flash.geom.*; public class ColorTransformRule implements IPulseRule { public var rMult:Number;// = 1 public var rOffset:Number;// = 0 public var endTime:Number; public var startTime:Number; public var bMult:Number;// = 1 public var bOffset:Number;// = 0 public var gMult:Number;// = 1 public var gOffset:Number;// = 0 public function ColorTransformRule(){ var _local1:ColorTransform = new ColorTransform(); } public function configure(_arg1:Array):void{ if (_arg1.length != 8){ return; }; startTime = (_arg1.shift() as Number); endTime = (_arg1.shift() as Number); rMult = (_arg1.shift() as Number); gMult = (_arg1.shift() as Number); bMult = (_arg1.shift() as Number); rOffset = (_arg1.shift() as Number); gOffset = (_arg1.shift() as Number); bOffset = (_arg1.shift() as Number); } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ var _local4:Number = (_arg2 - _arg1.birthTime); if ((((_local4 < startTime)) || ((_local4 > endTime)))){ return; }; var _local5:DisplayObject = (_arg1 as DisplayObject); if (_local5 == null){ return; }; var _local6:Number = ((_local4 - startTime) / (endTime - startTime)); _local5.transform.colorTransform = new ColorTransform((1 + ((rMult - 1) * _local6)), (1 + ((gMult - 1) * _local6)), (1 + ((bMult - 1) * _local6)), 1, (rOffset * _local6), (gOffset * _local6), (bOffset * _local6), 0); } } }//package com.roguedevelopment.pulse.rule
Section 138
//DeathRule (com.roguedevelopment.pulse.rule.DeathRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; import com.roguedevelopment.pulse.*; public final class DeathRule implements IPulseRule { protected var maxAge:Number; public function DeathRule(_arg1:Number=3000){ this.maxAge = _arg1; } public function configure(_arg1:Array):void{ maxAge = (_arg1[0] as Number); } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ if (_arg2 > (maxAge + _arg1.birthTime)){ PulseEngine.instance.removeParticle(_arg1); _arg1.rules.splice(_arg1.rules.indexOf(this), 1); }; } } }//package com.roguedevelopment.pulse.rule
Section 139
//FadeRule (com.roguedevelopment.pulse.rule.FadeRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; public final class FadeRule implements IPulseRule { protected var maxAge:Number; public function FadeRule(_arg1:Number=3000){ this.maxAge = _arg1; } public function configure(_arg1:Array):void{ maxAge = (_arg1[0] as Number); } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ if (_arg2 == _arg1.birthTime){ return; }; var _local4:Number = (_arg2 - _arg1.birthTime); if (_local4 > maxAge){ _arg1.rules.splice(_arg1.rules.indexOf(this), 1); return; }; _arg1.alpha = (1 - (_local4 / maxAge)); } } }//package com.roguedevelopment.pulse.rule
Section 140
//GravityRule (com.roguedevelopment.pulse.rule.GravityRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; public final class GravityRule implements IPulseRule { protected var gravityAmount:Number; public function GravityRule(_arg1:Number=5){ this.gravityAmount = _arg1; } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ var _local4:Number = _arg1.params.speed; var _local5:Number = _arg1.params.angle; var _local6:Number = (Math.cos(_local5) * _local4); var _local7:Number = ((Math.sin(_local5) * _local4) + gravityAmount); _local5 = Math.atan2(_local7, _local6); if (_local5 < 0){ _local5 = (_local5 + (2 * Math.PI)); }; if (_local5 > (2 * Math.PI)){ _local5 = (_local5 - (2 * Math.PI)); }; _arg1.params.angle = _local5; _arg1.params.speed = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); } public function configure(_arg1:Array):void{ gravityAmount = (_arg1[0] as Number); } } }//package com.roguedevelopment.pulse.rule
Section 141
//IPulseRule (com.roguedevelopment.pulse.rule.IPulseRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; public interface IPulseRule { function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void; function configure(_arg1:Array):void; } }//package com.roguedevelopment.pulse.rule
Section 142
//MouseSwarmRule (com.roguedevelopment.pulse.rule.MouseSwarmRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; import flash.display.*; import flash.events.*; import flash.geom.*; public final class MouseSwarmRule implements IPulseRule { protected var mouse:Point; public function MouseSwarmRule(_arg1:Stage=null){ mouse = new Point(); super(); if (_arg1 != null){ _arg1.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); }; } public function configure(_arg1:Array):void{ (_arg1[0] as Stage).addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); } protected function onMouseMove(_arg1:MouseEvent):void{ mouse.x = _arg1.stageX; mouse.y = _arg1.stageY; } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ var _local4:Number = Math.atan2((mouse.y - _arg1.y), (mouse.x - _arg1.x)); if (_local4 < 0){ _local4 = (_local4 + (2 * Math.PI)); }; if (_arg1.params.angle < 0){ _arg1.params.angle = (_arg1.params.angle + (2 * Math.PI)); }; if (_arg1.params.angle > (2 * Math.PI)){ _arg1.params.angle = (_arg1.params.angle - (2 * Math.PI)); }; var _local5:Number = (_arg1.params.angle - _local4); if ((((((_local5 > 0)) && ((_local5 <= Math.PI)))) || ((_local5 < -(Math.PI))))){ _arg1.params.angle = (_arg1.params.angle - Math.min(0.1, Math.abs(_local5))); } else { if ((((((_local5 >= -(Math.PI))) && ((_local5 < 0)))) || ((_local5 > Math.PI)))){ _arg1.params.angle = (_arg1.params.angle + Math.min(0.1, Math.abs(_local5))); }; }; } } }//package com.roguedevelopment.pulse.rule
Section 143
//MovementRule (com.roguedevelopment.pulse.rule.MovementRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; import com.roguedevelopment.pulse.*; public final class MovementRule implements IPulseRule { public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ var _local4:Number = 1; var _local5:Number = 0; if (_arg1.params.hasOwnProperty("speed")){ _local4 = _arg1.params["speed"]; }; if (_arg1.params.hasOwnProperty("angle")){ _local5 = _arg1.params["angle"]; }; var _local6:Number = ((PulseEngine.PARTICLE_LOOP_TIME / 1000) * _local4); var _local7:Number = (Math.cos(_local5) * _local6); var _local8:Number = (Math.sin(_local5) * _local6); _arg1.x = (_arg1.x + _local7); _arg1.y = (_arg1.y + _local8); } public function configure(_arg1:Array):void{ } } }//package com.roguedevelopment.pulse.rule
Section 144
//MovementStopRule (com.roguedevelopment.pulse.rule.MovementStopRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; import flash.geom.*; public final class MovementStopRule implements IPulseRule { protected var box:Rectangle; public function MovementStopRule(_arg1:Rectangle=null){ this.box = _arg1; } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ var _local4:IPulseRule; var _local5:int; if (box.contains(_arg1.x, _arg1.y)){ for each (_local4 in _arg1.rules) { if ((_local4 is MovementRule)){ _local5 = _arg1.rules.lastIndexOf(_local4); _arg1.rules.splice(_local5, 1); }; }; _arg1.params.speed = 0; }; } public function configure(_arg1:Array):void{ if (_arg1.length != 4){ return; }; box = new Rectangle(_arg1[0], _arg1[1], _arg1[2], _arg1[3]); } } }//package com.roguedevelopment.pulse.rule
Section 145
//PointSwarmRule (com.roguedevelopment.pulse.rule.PointSwarmRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; import flash.geom.*; public final class PointSwarmRule implements IPulseRule { protected var dest:Point; public function PointSwarmRule(_arg1:Point=null){ dest = new Point(); super(); if (_arg1 != null){ dest = _arg1; }; } public function configure(_arg1:Array):void{ if ((_arg1[0] is Point)){ dest = (_arg1[0] as Point); } else { dest.x = (_arg1[0] as Number); dest.y = (_arg1[1] as Number); }; } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ var _local4:Number = Math.atan2((dest.y - _arg1.y), (dest.x - _arg1.x)); if (_local4 < 0){ _local4 = (_local4 + (2 * Math.PI)); }; if (_arg1.params.angle < 0){ _arg1.params.angle = (_arg1.params.angle + (2 * Math.PI)); }; if (_arg1.params.angle > (2 * Math.PI)){ _arg1.params.angle = (_arg1.params.angle - (2 * Math.PI)); }; var _local5:Number = (_arg1.params.angle - _local4); if ((((((_local5 > 0)) && ((_local5 <= Math.PI)))) || ((_local5 < -(Math.PI))))){ _arg1.params.angle = (_arg1.params.angle - Math.min(0.1, Math.abs(_local5))); } else { if ((((((_local5 >= -(Math.PI))) && ((_local5 < 0)))) || ((_local5 > Math.PI)))){ _arg1.params.angle = (_arg1.params.angle + Math.min(0.1, Math.abs(_local5))); }; }; } } }//package com.roguedevelopment.pulse.rule
Section 146
//RotateRule (com.roguedevelopment.pulse.rule.RotateRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; public final class RotateRule implements IPulseRule { protected var min:Number; protected var max:Number; public function RotateRule(_arg1:Number=1, _arg2:Number=3){ this.min = _arg1; this.max = _arg2; } public function configure(_arg1:Array):void{ min = (_arg1[0] as Number); max = (_arg1[1] as Number); } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ if (!_arg1.params.hasOwnProperty("rotationSpeed")){ _arg1.params["rotationSpeed"] = (min + (Math.random() * (max - min))); }; _arg1.rotation = (_arg1.rotation + _arg1.params["rotationSpeed"]); } } }//package com.roguedevelopment.pulse.rule
Section 147
//RotateToAngleRule (com.roguedevelopment.pulse.rule.RotateToAngleRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; public final class RotateToAngleRule implements IPulseRule { public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ _arg1.rotation = ((_arg1.params.angle * 180) / Math.PI); } public function configure(_arg1:Array):void{ } } }//package com.roguedevelopment.pulse.rule
Section 148
//ScaleRule (com.roguedevelopment.pulse.rule.ScaleRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; import com.roguedevelopment.*; public final class ScaleRule implements IPulseRule { protected var startScale:Number; protected var targetScale:Number; protected var maxAge:Number; public function ScaleRule(_arg1:Number=3000, _arg2:Number=1, _arg3:Number=5){ this.maxAge = _arg1; this.targetScale = _arg3; this.startScale = _arg2; } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ var _local4:Number = (_arg2 - _arg1.birthTime); if (_local4 > maxAge){ _arg1.rules.splice(_arg1.rules.indexOf(this), 1); return; }; if (startScale > targetScale){ _arg1.scaleX = (startScale - PennerEasing.sineEaseInOut(_local4, targetScale, startScale, maxAge)); } else { _arg1.scaleX = PennerEasing.sineEaseInOut(_local4, startScale, targetScale, maxAge); }; _arg1.scaleY = _arg1.scaleX; } public function configure(_arg1:Array):void{ maxAge = (_arg1[0] as Number); startScale = (_arg1[1] as Number); targetScale = (_arg1[2] as Number); } } }//package com.roguedevelopment.pulse.rule
Section 149
//TweenRule (com.roguedevelopment.pulse.rule.TweenRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; import com.roguedevelopment.*; public final class TweenRule implements IPulseRule { protected var start:Number; protected var maxAge:Number; protected var ease:Function; protected var field:String; protected var end:Number; public function TweenRule(_arg1:String="", _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Function=null){ this.field = _arg1; this.start = _arg2; this.end = _arg3; this.maxAge = _arg4; this.ease = _arg5; if (this.ease == null){ this.ease = PennerEasing.linearEaseNone; }; } public function configure(_arg1:Array):void{ field = _arg1[0]; start = _arg1[1]; end = _arg1[2]; maxAge = _arg1[3]; } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ var _local4:Number = (_arg2 - _arg1.birthTime); if (_local4 > maxAge){ _arg1.rules.splice(_arg1.rules.indexOf(this), 1); return; }; var _local5:Object = _arg1; if (end > start){ _local5[field] = ease(_local4, start, end, maxAge); } else { _local5[field] = (start - ease(_local4, end, start, maxAge)); }; } } }//package com.roguedevelopment.pulse.rule
Section 150
//XOscillatorRule (com.roguedevelopment.pulse.rule.XOscillatorRule) package com.roguedevelopment.pulse.rule { import com.roguedevelopment.pulse.particle.*; public final class XOscillatorRule implements IPulseRule { protected var amount:Number;// = 5 protected var dampen:Number;// = 100 public function XOscillatorRule(_arg1:Number=1, _arg2:Number=100){ this.amount = _arg1; this.dampen = _arg2; } public function configure(_arg1:Array):void{ amount = (_arg1[0] as Number); dampen = (_arg1[1] as Number); } public function applyRule(_arg1:IParticle, _arg2:Number, _arg3:Number):void{ _arg1.x = (_arg1.x + (Math.cos(((_arg2 - _arg1.birthTime) / dampen)) * amount)); } } }//package com.roguedevelopment.pulse.rule
Section 151
//SimpleParticles (com.roguedevelopment.pulse.simple.SimpleParticles) package com.roguedevelopment.pulse.simple { import com.roguedevelopment.pulse.particle.*; import flash.display.*; import com.roguedevelopment.pulse.*; import com.roguedevelopment.pulse.emitter.*; import com.adobe.serialization.json.*; import com.roguedevelopment.pulse.rule.*; import com.roguedevelopment.pulse.initializers.*; public class SimpleParticles { protected static var rules:Object = {scale:ScaleRule, fade:FadeRule, gravity:GravityRule, movement:MovementRule, lifespan:DeathRule, mouseSwarm:MouseSwarmRule, rotateToAngle:RotateToAngleRule, xOscillate:XOscillatorRule, tween:TweenRule, pointSwarm:PointSwarmRule, rotate:RotateRule, accel:AccelerationRule, bound:BoundingBoxRule, stop:MovementStopRule, colorTransform:ColorTransformRule}; public static function createEmitter(_arg1:Object):IParticleEmitter{ var _local2:GenericEmitter; var _local4:BitmapData; var _local5:Bitmap; var _local3 = 10; if (_arg1.hasOwnProperty("pps")){ _local3 = _arg1.pps; }; if (((_arg1.hasOwnProperty("bme")) && (_arg1.bme))){ _local4 = new BitmapData(PulseEngine.instance.root.stage.width, PulseEngine.instance.root.stage.height, true, 0); _local5 = new Bitmap(_local4); PulseEngine.instance.root.addChild(_local5); _local2 = new BitmapEmitter(_local3, _local4); } else { _local2 = new GenericEmitter(_local3); }; configureEmitterByObject(_local2, _arg1); return (_local2); } protected static function doInitializer(_arg1:String, _arg2:Object, _arg3:Array):Boolean{ var _local4:Array = (_arg2 as Array); switch (_arg1){ case "startScale": _arg3.push(new ScaleRandomizerInitializer(_local4[0], _local4[1])); return (true); case "angle": _arg3.push(new AngleRandomizerInitializer(_local4[0], _local4[1])); return (true); case "randomFrame": _arg3.push(new RandomFrameInit()); return (true); }; return (false); } public static function configureEmitter(_arg1:GenericEmitter, _arg2:String):IParticleEmitter{ var r:RegExp; var d:JSONDecoder; var o:Object; var emitter = _arg1; var params = _arg2; try { r = /([a-zA-Z0-9_]+):/g; params = params.replace(r, "\"$1\":"); d = new JSONDecoder(params); o = d.getValue(); } catch(e:Error) { return (emitter); }; return (configureEmitterByObject(emitter, o)); } protected static function createLineFactory(_arg1:Object, _arg2:Array, _arg3:Array):IParticleFactory{ return (new GenericFactory(LineParticle, _arg2, _arg3)); } protected static function createImageFactory(_arg1:Object, _arg2:Array, _arg3:Array):IParticleFactory{ return (new GenericFactory(ImageParticle, _arg2, _arg3)); } protected static function createDotFactory(_arg1:Object, _arg2:Array, _arg3:Array):IParticleFactory{ return (new GenericFactory(DotParticle, _arg2, _arg3)); } public static function configureEmitterByObject(_arg1:GenericEmitter, _arg2:Object):IParticleEmitter{ var _local7:String; var _local8:Array; var _local3:Boolean; var _local4:IParticleFactory = _arg1.getFactory(); var _local5:Array = []; var _local6:Array = []; if (((_arg2.hasOwnProperty("minSpeed")) && (_arg2.hasOwnProperty("maxSpeed")))){ _local6.push(new ParameterRandomizerInitializer("speed", _arg2.minSpeed, _arg2.maxSpeed, true)); }; if (((_arg2.hasOwnProperty("minAngle")) && (_arg2.hasOwnProperty("maxAngle")))){ _local6.push(new AngleRandomizerInitializer(_arg2.minAngle, _arg2.maxAngle)); }; if (((_arg2.hasOwnProperty("minScale")) && (_arg2.hasOwnProperty("maxScale")))){ _local6.push(new ScaleRandomizerInitializer(_arg2.minScale, _arg2.maxScale)); }; for (_local7 in _arg2) { switch (_local7){ case "start": _local3 = _arg2.start; break; case "x": _arg1.x = _arg2.x; break; case "y": _arg1.y = _arg2.y; break; case "dot": _local4 = createDotFactory(_arg2[_local7], _local5, _local6); break; case "line": _local4 = createLineFactory(_arg2[_local7], _local5, _local6); break; case "image": _local6.push(new ParameterInitializer("image", _arg2[_local7])); _local4 = createImageFactory(_arg2[_local7], _local5, _local6); break; case "width": _arg1.width = (_arg2[_local7] as Number); break; case "height": _arg1.height = (_arg2[_local7] as Number); break; case "limit": _arg1.particleLimit = (_arg2[_local7] as Number); break; default: if (((!(doRule(_local7, _arg2[_local7], _local5))) && (!(doInitializer(_local7, _arg2[_local7], _local6))))){ if ((_arg2[_local7] is Array)){ _local8 = (_arg2[_local7] as Array); _local6.push(new ParameterRandomizerInitializer(_local7, _local8[0], _local8[1], true)); }; if ((_arg2[_local7] is Number)){ _local6.push(new ParameterInitializer(_local7, (_arg2[_local7] as Number))); }; }; break; }; }; if (_local4 == null){ _local4 = createDotFactory(null, _local5, _local6); } else { _local4.rules = _local5; _local4.initializers = _local6; }; _arg1.setFactory(_local4); if (_local3){ _arg1.start(); }; return (_arg1); } protected static function doRule(_arg1:String, _arg2:Object, _arg3:Array):Boolean{ if (!rules.hasOwnProperty(_arg1)){ return (false); }; var _local4:Class = rules[_arg1]; var _local5:IPulseRule = new (_local4); if ((_arg2 is Array)){ _local5.configure((_arg2 as Array)); } else { _local5.configure([_arg2]); }; _arg3.push(_local5); return (true); } } }//package com.roguedevelopment.pulse.simple
Section 152
//PulseEngine (com.roguedevelopment.pulse.PulseEngine) package com.roguedevelopment.pulse { import com.roguedevelopment.pulse.particle.*; import flash.display.*; import flash.events.*; import flash.utils.*; import com.roguedevelopment.pulse.rule.*; public final class PulseEngine { public var root:DisplayObjectContainer; protected var emitters:Array; protected var timer:Timer; protected var particles:Array; public var updateAfterTimer:Boolean;// = false protected var lastUpdate:Number; public static const PARTICLE_LOOP_TIME:Number = 30; protected static var _instance:PulseEngine; public function PulseEngine(){ emitters = []; particles = []; super(); if (_instance != null){ throw (new Error("only one engine allowed")); }; timer = new Timer(PARTICLE_LOOP_TIME); timer.addEventListener(TimerEvent.TIMER, onTime); timer.start(); lastUpdate = new Date().time; } public function addParticle(_arg1:IParticle):void{ _arg1.visible = false; particles.push(_arg1); } public function addEmitter(_arg1:IParticleFactory):void{ emitters.push(_arg1); } public function removeParticle(_arg1:IParticle):void{ particles.splice(particles.indexOf(_arg1), 1); if ((_arg1 is IRecyleableParticle)){ (_arg1 as IRecyleableParticle).factory.recycle(_arg1); } else { _arg1.remove(); }; } protected function onTime(_arg1:TimerEvent):void{ var _local3:IParticle; var _local4:IPulseRule; var _local2:Date = new Date(); for each (_local3 in particles) { _local3.visible = true; for each (_local4 in _local3.rules) { _local4.applyRule(_local3, _local2.time, lastUpdate); }; }; lastUpdate = _local2.time; if (updateAfterTimer){ _arg1.updateAfterEvent(); }; } public function stopAndRemoveAllParticles():void{ var _local1:IParticle; for each (_local1 in particles) { _local1.remove(); }; particles = []; } public static function get instance():PulseEngine{ if (_instance == null){ _instance = new (PulseEngine); }; return (_instance); } } }//package com.roguedevelopment.pulse
Section 153
//PennerEasing (com.roguedevelopment.PennerEasing) package com.roguedevelopment { public class PennerEasing { public static function quartEaseOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function circEaseInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } public static function expoEaseIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1)==0) ? _arg2 : ((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2)); } public static function elasticEaseInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * (0.3 * 1.5)); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2)); }; --_arg1; return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) * 0.5) + _arg3) + _arg2)); } public static function expoEaseInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2)); }; --_arg1; return ((((_arg3 / 2) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } public static function linearEaseNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function sineEaseInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } public static function quintEaseInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } public static function quartEaseIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function quadEaseInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } public static function cubicEaseOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function bounceEaseOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function backEaseOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2)); } public static function quadEaseIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function bounceEaseIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 - bounceEaseOut((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function quartEaseInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } public static function cubicEaseIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function quintEaseIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function sineEaseIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function backEaseIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2)); } public static function elasticEaseIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5))); }; --_arg1; return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2)); } public static function circEaseOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function circEaseIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function elasticEaseOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5))); }; return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) + _arg3) + _arg2)); } public static function expoEaseOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : ((_arg3 * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function cubicEaseInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } public static function sineEaseOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function backEaseInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2)); }; _arg1 = (_arg1 - 2); _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2)); } public static function quintEaseOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function quadEaseOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function bounceEaseInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (((bounceEaseIn((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((bounceEaseOut(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } } }//package com.roguedevelopment
Section 154
//None (fl.transitions.easing.None) package fl.transitions.easing { public class None { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package fl.transitions.easing
Section 155
//Tween (fl.transitions.Tween) package fl.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tween extends EventDispatcher { private var _position:Number;// = NAN public var prevTime:Number;// = NAN public var prevPos:Number;// = NAN public var isPlaying:Boolean;// = false private var _fps:Number;// = NAN private var _time:Number;// = NAN public var begin:Number;// = NAN private var _finish:Number;// = NAN public var change:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ this.func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function get position():Number{ return (this.getPosition(this._time)); } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 156
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var position:Number;// = NAN public var time:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 157
//BodyInfo (Info.BodyInfo) package Info { import flash.display.*; public class BodyInfo { public var geomParams:Array; public var bodyParams:Array; public var clip:MovieClip; public var geomType:int; public var bodyType:int; public var outBoundary:Boolean;// = false public function BodyInfo(_arg1:MovieClip, _arg2:int, _arg3:int, _arg4:Array, _arg5:Array){ bodyParams = new Array(); geomParams = new Array(); super(); clip = _arg1; bodyType = _arg2; geomType = _arg3; bodyParams = _arg4.slice(); geomParams = _arg5.slice(); } } }//package Info
Section 158
//ControllerInfo (Info.ControllerInfo) package Info { public class ControllerInfo { public var clip:Array; public var controllerParams:Array; public var controllerType:int; public function ControllerInfo(_arg1:Array, _arg2:int, _arg3:Array){ clip = new Array(); controllerParams = new Array(); super(); clip = _arg1.slice(); controllerType = _arg2; controllerParams = _arg3.slice(); } } }//package Info
Section 159
//JointInfo (Info.JointInfo) package Info { public class JointInfo { public var clip:Array; public var jointType:int; public var jointParams:Array; public function JointInfo(_arg1:Array, _arg2:int, _arg3:Array){ jointParams = new Array(); super(); if (_arg1){ clip = _arg1.slice(); }; jointType = _arg2; jointParams = _arg3.slice(); } } }//package Info
Section 160
//Level_1 (Levels.Level_1) package Levels { import flash.display.*; import Types.*; public class Level_1 extends Level { public var star2:StarCollect; public var checkPoint0:MovieClip; public var barier1:MovieClip; public var firstGround:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public function Level_1():void{ id = 1; super(); CreateBody(firstGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-199, -48], [-129, -20], [-364, -20], [-294, -48]], [[-129, -20], [380, -20], [-560, -20], [-364, -20]], [[-560, -20], [380, -20], [574, 0], [-560, 0]], [[380, -20], [380, -40], [400, -40], [574, 0]], [[574, -80], [574, 0], [420, -60], [420, -80]], [[420, -60], [574, 0], [400, -40], [400, -60]]]]); CreateBody(barier1, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-10, -50], [10, -50], [10, 0], [-10, 0]]]]); if (!instructions[0]){ player.Tell("Use arrow keys to move and jump."); instructions[0] = true; }; } } }//package Levels
Section 161
//Level_10 (Levels.Level_10) package Levels { import Box2D.Dynamics.Joints.*; import flash.display.*; import flash.events.*; import Types.*; public class Level_10 extends Level { public var upGround:MovieClip; public var crane:MovieClip; public var water:MovieClip; public var balanceBody:MovieClip; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var star6:StarCollect; public var star0:StarCollect; public var star8:StarCollect; public var movePlat:MovieClip; public var balancePlat:MovieClip; public var star7:StarCollect; public var star9:StarCollect; public var toxic:MovieClip; public var rightGround:MovieClip; public var checkPoint0:MovieClip; public var balance1:MovieClip; public var flagShip:FlagShip; public var disPlat:MovieClip; public var balance2:MovieClip; public var leftGround:MovieClip; public var upGround2:MovieClip; public var balancePlatPris:MovieClip; public function Level_10():void{ id = 10; super(); CreateBody(leftGround, BodyType.STATIC, GeomType.POLYGON, [[], [0, 0.4, 0.1]], [[[[-82.5, -101], [-82.5, -14], [-186.5, -81], [-186.5, -101]], [[-186.5, -81], [-82.5, -14], [-206.5, -61], [-206.5, -81]], [[-206.5, -61], [-82.5, -14], [-396.5, 101], [-396.5, -61]], [[-82.5, -14], [242.5, -14], [366.5, 101], [-396.5, 101]], [[242.5, -14], [242.5, -84], [271.5, -101], [366.5, -101], [366.5, 101]]]]); CreateBody(upGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[63.5, -10], [304.5, -10], [304.5, 10], [63.5, 10]]]]); CreateBody(upGround2, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[15, -10], [15, 10], [-116, 10], [-116, -10]]]]); CreateBody(movePlat, BodyType.MOVE_Y, GeomType.POLYGON, [[], Materials.STEEL, 41.5, 214.5, -1, 2.5], [[[[-45, 5], [-45, -5], [45, -5], [45, 5]]]]); CreateBody(balancePlat, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-65, -5], [65, -5], [65, 5], [-65, 5]]]]); CreateBody(rightGround, BodyType.STATIC, GeomType.POLYGON, [[], [0, 0.4, 0.1]], [[[[211, -101], [344, -101], [344, 101], [211, 10]], [[-272, -101], [-272, 10], [-398, 101], [-398, -101]], [[-272, 10], [211, 10], [344, 101], [-398, 101]]]]); CreateBody(flagShip, BodyType.STANDART, GeomType.POLYGON, [[], [1, 0.3, 0.2]], [[[[2, -31.5], [2, -11.5], [0, -25.5], [-1, -39.5], [1, -40.5]], [[0, -25.5], [2, -11.5], [0, -10.5]], [[0, -10.5], [2, -11.5], [1, -0.5], [-1, -0.5]], [[-52, 0.5], [-1, -0.5], [1, -0.5], [37, 17.5], [-42, 17.5]], [[53, -1.5], [37, 17.5], [1, -0.5]]]]); CreateBody(balanceBody, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[-2.5, -2.5], [2.5, -2.5], [2.5, 2.5], [-2.5, 2.5]]]]); CreateBody(crane, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[8.95, 0.3], [8.95, 8.25], [-8.9, 3.65], [-8.9, 0.3]], [[-8.9, 3.65], [8.95, 8.25], [-18.8, 8.25], [-10.9, 3.65]], [[-10.9, 1.65], [-10.9, 3.65], [-18.8, 8.25], [-18.8, 1.65]], [[0, -8], [5.6, -5.7], [8, 0], [5.6, 5.65], [0, 8], [-5.7, 5.65], [-8, 0], [-5.7, -5.7]]]]); CreateBody(disPlat, BodyType.LOST, GeomType.POLYGON, [[], Materials.GROUND, 500, 2500, 1500], [[[[-40, -6], [40, -6], [40, 6], [-40, 6]]]]); CreateJoint([balancePlatPris], JointType.PRISMATIC, [false, false]); CreateJoint([balance2, balance1], JointType.PULLEY, [1]); CreateController([water], ControllerType.BUOYANCY, [Materials.WATER]); CreateController([toxic], ControllerType.BUOYANCY, [Materials.TOXIC, 0, 0, 0, Damage.INJURE, 100]); crane.stop(); m_joint.addChild(crane); } override public function Update(_arg1:Event):void{ var _local2:b2PulleyJoint; super.Update(_arg1); if (contactListener.Touch(player.body, GetBodyByClip(crane))){ _local2 = (GetJointByClip(balance2) as b2PulleyJoint); if (_local2.m_maxLength2 > (40.05 / m_physScale)){ if (crane.currentFrame == 1){ sound.Play(SoundID.BUTTON); }; _local2.m_maxLength2 = (_local2.m_maxLength2 - 0.05); GetBodyByClip(balancePlat).WakeUp(); crane.gotoAndStop(2); crane.disk.rotation = (crane.disk.rotation + 6); }; } else { crane.gotoAndStop(1); }; } } }//package Levels
Section 162
//Level_11 (Levels.Level_11) package Levels { import flash.display.*; import flash.events.*; import Types.*; public class Level_11 extends Level { public var checkPoint0:MovieClip; public var ground1:MovieClip; public var box:MovieClip; public var ground2:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var platControl:MovieClip; public var movePlatX:MovieClip; public var movePlatY:MovieClip; public function Level_11():void{ id = 11; super(); CreateBody(ground1, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[289, -29], [289, -80], [393, -80], [523, -29]], [[332, 64], [523, 64], [597, 232], [332, 113]], [[-404, 64], [-404, 113], [-597, 232], [-597, 64]], [[-404, 113], [332, 113], [597, 232], [-597, 232]], [[523, 64], [523, -29], [597, -272], [597, 232]], [[-597, -272], [597, -272], [428, -144], [-597, -144]], [[597, -272], [523, -29], [428, -115], [428, -144]], [[428, -115], [523, -29], [393, -80]]]]); CreateBody(ground2, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-204, -22], [-204, -6], [-423.5, 26], [-423.5, -25], [-208, -25]], [[-423.5, 26], [-204, -6], [-145, -6], [423.5, 26]], [[423.5, -25], [423.5, 26], [-145, -6], [-145, -21], [-141, -25]]]]); CreateBody(box, BodyType.STANDART, GeomType.POLYGON, [[], [0.7, 0.7, 0.2]], [[[[-13, -13], [13, -13], [13, 13], [-13, 13]]]]); CreateBody(movePlatX, BodyType.MOVE_X, GeomType.POLYGON, [[], [4, 0.85, 0.2], -274, 368, -1, 2], [[[[45, -4], [45, 4], [-45, 4], [-45, -4]]]]); CreateBody(movePlatY, BodyType.MOVE_Y, GeomType.POLYGON, [[], Materials.STEEL, 51, 0xFF, 1, 2], [[[[41.15, -0.5], [41.15, 7.5], [-34.85, -0.5]], [[-34.85, -20.5], [-34.85, -0.5], [-37.85, -0.5], [-37.85, -20.5]], [[-34.85, -0.5], [41.15, 7.5], [-37.85, -0.5]], [[-37.85, -0.5], [41.15, 7.5], [-38.85, 7.5], [-38.85, -0.5]]]]); CreateBody(platControl, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-28.5, 7], [-28.5, -7], [28.5, -7], [28.5, 7]]]]); platControl.gotoAndStop(1); } override public function Update(_arg1:Event):void{ super.Update(_arg1); if (((contactListener.Touch(player.body, GetBodyByClip(platControl))) || (contactListener.Touch(GetBodyByClip(box), GetBodyByClip(platControl))))){ if (platControl.currentFrame == 1){ sound.Play(SoundID.BUTTON); }; GetBodyByClip(movePlatX).WakeUp(); platControl.gotoAndStop(2); } else { GetBodyByClip(movePlatX).PutToSleep(); platControl.gotoAndStop(1); }; } } }//package Levels
Section 163
//Level_12 (Levels.Level_12) package Levels { import flash.display.*; import flash.events.*; import Types.*; import caurina.transitions.*; public class Level_12 extends Level { public var checkPoint0:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var star6:StarCollect; public var star7:StarCollect; public var star8:StarCollect; public var plat6:MovieClip; public var plat7:MovieClip; public var plat1:MovieClip; public var plat2:MovieClip; public var plat3:MovieClip; public var plat4:MovieClip; public var plat5:MovieClip; public var flagRev:MovieClip; public var plat8:MovieClip; public var plat9:MovieClip; public var flag:FlagDis; public function Level_12():void{ id = 12; super(); CreateBody(plat1, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-75, -10], [75, -10], [75, 10], [-75, 10]]]]); CreateBody(plat2, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-125, -10], [125, -10], [125, 10], [-125, 10]]]]); CreateBody(plat3, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-200, -10], [200, -10], [200, 10], [-200, 10]]]]); CreateBody(plat4, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-150, 10], [-150, -10], [150, -10], [150, 10]]]]); CreateBody(plat5, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[206.95, 43.75], [197, 61.05], [-5.4, -55.75], [-6.45, -79.45]], [[-206.95, 63.15], [-6.45, -79.45], [-5.4, -55.75], [-195.4, 79.5]]]]); CreateBody(plat6, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-125, -10], [125, -10], [125, 10], [-125, 10]]]]); CreateBody(plat7, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-150, 10], [-150, -10], [150, -10], [150, 10]]]]); CreateBody(plat8, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-125, -10], [125, -10], [125, 10], [-125, 10]]]]); CreateBody(plat9, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[100, -10], [100, 10], [-100, 10], [-100, -10]]]]); CreateBody(flag, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-0.3, -40], [1.7, -40], [1.7, 0], [-0.3, 0]]]]); CreateJoint([flagRev], JointType.REVOLUTE, [false, true, 0, 0, -40, 120]); plat9.alpha = 0; } override public function Update(_arg1:Event):void{ super.Update(_arg1); if (contactListener.Touch(player.body, GetBodyByClip(plat9))){ if (plat9.alpha == 0){ Tweener.addTween(plat9, {alpha:1, time:1, transition:"easeOutQuart"}); }; }; } } }//package Levels
Section 164
//Level_13 (Levels.Level_13) package Levels { import flash.display.*; import flash.events.*; import Types.*; public class Level_13 extends Level { public var upBounce:MovieClip; public var checkPoint0:MovieClip; public var checkPoint1:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var star6:StarCollect; public var star7:StarCollect; public var star8:StarCollect; public var star9:StarCollect; public var plat1:MovieClip; public var plat2:MovieClip; public var mainGround:MovieClip; public var star10:StarCollect; private var dark:Dark; public var toxic:MovieClip; public var movePlat:MovieClip; public function Level_13():void{ id = 13; super(); CreateBody(mainGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[801.5, -21], [801.5, -41], [883.5, -34], [873.5, -21]], [[883.5, -34], [801.5, -41], [1073.5, -215], [966.5, -34]], [[801.5, 19], [966.5, 19], [1073.5, 215], [801.5, 78]], [[345.5, 19], [345.5, 78], [11.5, 39], [11.5, 19]], [[11.5, 39], [345.5, 78], [-8.5, 59], [-8.5, 39]], [[-8.5, 59], [345.5, 78], [-323.5, 79], [-323.5, 59]], [[345.5, 78], [801.5, 78], [-303.5, 79], [-323.5, 79]], [[-303.5, 79], [801.5, 78], [-189.5, 99], [-303.5, 99]], [[-189.5, 99], [801.5, 78], [-189.5, 124]], [[-345.5, 99], [-345.5, 124], [-365.5, 99]], [[-365.5, 79], [-365.5, 99], [-385.5, 79]], [[-365.5, 99], [-345.5, 124], [-1073.5, 215], [-863.5, 59], [-385.5, 79]], [[-385.5, 59], [-385.5, 79], [-863.5, 59]], [[-863.5, 39], [-863.5, 59], [-883.5, 39]], [[-883.5, 19], [-883.5, 39], [-973.5, 19]], [[-883.5, 39], [-863.5, 59], [-1073.5, 215], [-973.5, 19]], [[-973.5, -21], [-973.5, 19], [-1073.5, 215], [-1073.5, -215]], [[-345.5, 124], [-189.5, 124], [-1073.5, 215]], [[-189.5, 124], [801.5, 78], [1073.5, 215], [-1073.5, 215]], [[966.5, 19], [966.5, -34], [1073.5, -215], [1073.5, 215]], [[801.5, -41], [781.5, -41], [781.5, -61], [1073.5, -215]], [[-973.5, -21], [-1073.5, -215], [-714.5, -41], [-714.5, -21]], [[-714.5, -41], [-1073.5, -215], [-694.5, -61], [-694.5, -41]], [[-1073.5, -215], [1073.5, -215], [110.5, -121], [-694.5, -61]], [[-458.5, -41], [-458.5, -61], [-438.5, -41]], [[-438.5, -21], [-438.5, -41], [110.5, -21]], [[-438.5, -41], [-458.5, -61], [110.5, -121], [110.5, -21]], [[-458.5, -61], [-694.5, -61], [110.5, -121]], [[110.5, -121], [1073.5, -215], [186.5, -121]], [[186.5, -21], [186.5, -121], [345.5, -41], [345.5, -21]], [[345.5, -41], [186.5, -121], [365.5, -61], [365.5, -41]], [[186.5, -121], [1073.5, -215], [781.5, -61], [365.5, -61]]]]); var _local1 = 1; while (_local1 <= 2) { CreateBody(("plat" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-25, 5], [-25, -5], [25, -5], [25, 5]]]]); _local1++; }; CreateBody(movePlat, BodyType.MOVE_X, GeomType.POLYGON, [[], Materials.STEEL, 1290, 1672, -1, 1], [[[[35, -5], [35, 5], [-35, 5], [-35, -5]]]]); CreateController([upBounce], ControllerType.BUOYANCY, [Materials.STAR]); CreateController([toxic], ControllerType.BUOYANCY, [Materials.TOXIC, 0, 0, 0, Damage.INJURE, 100]); dark = new Dark(); dark.x = player.x; dark.y = player.y; m_joint.addChildAt(dark, m_joint.numChildren); } override public function Update(_arg1:Event):void{ super.Update(_arg1); dark.x = player.x; dark.y = player.y; } } }//package Levels
Section 165
//Level_14 (Levels.Level_14) package Levels { import Box2D.Dynamics.Joints.*; import com.boristhebrave.Box2D.Controllers.*; import flash.display.*; import flash.events.*; import Types.*; public class Level_14 extends Level { public var pipe1:MovieClip; public var pipe2:MovieClip; public var pipe3:MovieClip; public var pipe4:MovieClip; public var checkPoint0:MovieClip; public var doorRev:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var waterFromPipe1:MovieClip; public var waterFromPipe3:MovieClip; public var kolesoRev:MovieClip; public var door:MovieClip; public var redButton2:MovieClip; public var redButton3:MovieClip; public var redButton1:MovieClip; public var mainGround:MovieClip; public var koleso:MovieClip; public var water1:MovieClip; public var water2:MovieClip; public function Level_14():void{ var _local1:int; id = 14; super(); CreateBody(mainGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-644.5, -115.5], [-449, -115], [-449, 35], [-644.5, 184.5]], [[462, -35], [718, -35], [462, -27]], [[454, -27], [462, -27], [454, 49]], [[462, -27], [718, -35], [533, 31], [454, 49]], [[0x0202, 49], [454, 49], [533, 31]], [[533, 31], [718, -35], [591, 40]], [[718, -35], [717.5, 184.5], [599, 79], [591, 40]], [[717.5, 184.5], [-644.5, 184.5], [424, 79], [599, 79]], [[424, 79], [-644.5, 184.5], [-133, 35], [424, -35]], [[85, -55], [85, -35], [65, -55]], [[65, -75], [65, -55], [45, -75]], [[65, -55], [85, -35], [25, -95], [45, -75]], [[45, -95], [45, -75], [25, -95]], [[25, -115], [25, -95], [-133, -115]], [[25, -95], [85, -35], [-133, 35], [-133, -115]], [[85, -35], [424, -35], [-133, 35]], [[-133, 35], [-644.5, 184.5], [-234, 35]], [[-234, -115], [-234, 35], [-340, 35], [-340, -115]], [[-234, 35], [-644.5, 184.5], [-340, 35]], [[-340, 35], [-644.5, 184.5], [-449, 35]]]]); CreateBody(koleso, BodyType.STANDART, GeomType.POLYGON, [[Damage.NO, 0, 1], Materials.WOOD], [[[[2.5, -40], [2.5, -29.95], [-2.5, -29.9], [-2.5, -40]], [[2.5, -29.95], [19.4, -23], [-29.85, -2.5], [-23.05, -19.55], [-19.5, -23.1], [-2.5, -29.9]], [[-26.5, -30.1], [-19.5, -23.1], [-23.05, -19.55], [-30.05, -26.55]], [[-40, -2.5], [-29.85, -2.5], [-40, 2.5]], [[-29.85, -2.5], [19.4, -23], [-29.85, 2.5], [-40, 2.5]], [[-29.85, 2.5], [19.4, -23], [-22.9, 19.3]], [[-30.1, 26.5], [-22.9, 19.3], [-26.55, 30.05]], [[-22.9, 19.3], [19.4, -23], [-19.35, 22.8], [-26.55, 30.05]], [[-19.35, 22.8], [19.4, -23], [-2.5, 29.9]], [[-2.5, 29.9], [19.4, -23], [2.5, 29.9], [-2.5, 40]], [[2.5, 40], [-2.5, 40], [2.5, 29.9]], [[2.5, 29.9], [19.4, -23], [22.95, -19.45], [29.95, -2.5], [29.95, 2.5], [22.8, 19.2], [19.25, 22.75]], [[26.55, 30.05], [19.25, 22.75], [22.8, 19.2], [30.1, 26.5]], [[40, 2.5], [29.95, 2.5], [29.95, -2.5], [40, -2.5]], [[22.95, -19.45], [19.4, -23], [26.5, -30.1], [30.05, -26.55]]]]); CreateBody(door, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-36, -3.5], [0, -3.5], [0, 3.5], [-36, 3.5]]]]); _local1 = 1; while (_local1 <= 3) { CreateBody(("redButton" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[12.5, 0], [12.5, 5], [-12.5, 5], [-12.5, 0]]]]); _local1++; }; _local1 = 1; while (_local1 <= 4) { CreateBody(("pipe" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[-5.5, -2.5], [5.9, -2.5], [5.9, 2.5], [-5.5, 2.5]]]]); _local1++; }; CreateJoint([kolesoRev], JointType.REVOLUTE, [false, false]); CreateJoint([doorRev], JointType.REVOLUTE, [false, true, 0, 0, 0, 80]); CreateJoint([kolesoRev, doorRev], JointType.GEAR, [-8]); CreateController([water1], ControllerType.BUOYANCY, [Materials.WATER]); CreateController([water2], ControllerType.BUOYANCY, [Materials.WATER]); SetBodiesFilter([mainGround, door, koleso], -1); } override public function Update(_arg1:Event):void{ var _local2:*; var _local3:*; super.Update(_arg1); var _local4:Boolean; if ((((water1.y > 117)) && (contactListener.Touch(player.body, GetBodyByClip(redButton1))))){ water1.y = (water1.y - 0.5); water1.mask.height = (water1.mask.height + 0.5); (GetControllerByClip(water1) as b2BuoyancyController).offset = (-(water1.y) / m_physScale); waterFromPipe1.emiter.start(); sound.Play(SoundID.WATER_STREAM); _local2 = true; } else { waterFromPipe1.emiter.stop(); }; if ((((((water2.y > 117)) && ((water1.y < water2.y)))) && (contactListener.Touch(player.body, GetBodyByClip(redButton2))))){ water1.y = (water1.y + 0.5); water1.mask.height = (water1.mask.height - 0.5); water2.y = (water2.y - 0.5); water2.mask.height = (water2.mask.height + 0.5); (GetControllerByClip(water1) as b2BuoyancyController).offset = (-(water1.y) / m_physScale); (GetControllerByClip(water2) as b2BuoyancyController).offset = (-(water2.y) / m_physScale); sound.Play(SoundID.WATER_STREAM); _local3 = true; }; if ((((water2.y < 175)) && (contactListener.Touch(player.body, GetBodyByClip(redButton3))))){ water2.y = (water2.y + 0.5); water2.mask.height = (water2.mask.height - 0.5); (GetControllerByClip(water2) as b2BuoyancyController).offset = (-(water2.y) / m_physScale); waterFromPipe3.emiter.start(); GetBodyByClip(koleso).SetAngularVelocity(2); GetBodyByClip(koleso).WakeUp(); sound.Play(SoundID.WATER_STREAM); _local4 = true; } else { waterFromPipe3.emiter.stop(); }; if (((((!(_local2)) && (!(_local3)))) && (!(_local4)))){ sound.Stop(SoundID.WATER_STREAM); }; } } }//package Levels
Section 166
//Level_15 (Levels.Level_15) package Levels { import Box2D.Dynamics.Joints.*; import flash.display.*; import flash.events.*; import Types.*; public class Level_15 extends Level { public var upBounce:MovieClip; public var block1:MovieClip; public var block2:MovieClip; public var block3:MovieClip; public var ballCheck:MovieClip; public var checkPoint0:MovieClip; public var block1Pris:MovieClip; public var block2Pris:MovieClip; public var block3Pris:MovieClip; public var box:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var triangleCheck:MovieClip; public var star2:StarCollect; public var triangle:MovieClip; public var mainGround:MovieClip; public var movePlat:MovieClip; public var boxCheck:MovieClip; public var ball:MovieClip; public function Level_15():void{ id = 15; super(); CreateBody(mainGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[567, 0], [566.55, 97.5], [270, 15.5], [270, 0]], [[270, 15.5], [566.55, 97.5], [218, 15.5]], [[218, 0], [218, 15.5], [200, 15.5], [200, 0]], [[218, 15.5], [566.55, 97.5], [200, 15.5]], [[200, 15.5], [566.55, 97.5], [148, 15.5]], [[148, 0], [148, 15.5], [130.5, 15.5], [130.5, 0]], [[148, 15.5], [566.55, 97.5], [130.5, 15.5]], [[130.5, 15.5], [566.55, 97.5], [78.5, 15.5]], [[78.5, 0], [78.5, 15.5], [-183, 0]], [[78.5, 15.5], [566.55, 97.5], [95.5, 97.5], [-183, 0]], [[-567, 144], [-183, 144], [-113.5, 194.5], [-567, 298.5]], [[567, 298.5], [-567, 298.5], [403.5, 262.5], [566.5, 262.5]], [[403.5, 262.5], [-567, 298.5], [410.5, 210.5]], [[410.5, 210.5], [-567, 298.5], [-113.5, 194.5], [0xFF, 195], [470.5, 200.5]], [[532.5, 223.5], [470.5, 200.5], [566.5, 134], [566.5, 217.5]], [[566.5, 134], [470.5, 200.5], [0xFF, 195], [0xFF, 134]], [[-183, 144], [-183, 0], [-101, 145], [-113.5, 194.5]], [[-101, 145], [-183, 0], [-31.5, 144.5]], [[-25, 170], [-31.5, 144.5], [96, 170]], [[-31.5, 144.5], [-183, 0], [95.5, 97.5], [96, 170]]]]); CreateBody(movePlat, BodyType.MOVE_Y, GeomType.POLYGON, [[], Materials.STEEL, 132, 453, 1, 2], [[[[37.15, -20.5], [40.15, -20.5], [40.15, -0.5], [37.15, -0.5]], [[-38.85, -0.5], [37.15, -0.5], [41.15, 6.5], [-38.85, 6.5]], [[41.15, -0.5], [41.15, 6.5], [40.15, -0.5]], [[41.15, 6.5], [37.15, -0.5], [40.15, -0.5]]]]); CreateBody(block1, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-128, -5], [-55, -5], [-55, 5], [-128, 5]], [[128, 5], [-25, 5], [-25, -5], [128, -5]]]]); CreateBody(block2, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-128, 5], [-128, -5], [25, -5], [25, 5]], [[55, -5], [128, -5], [128, 5], [55, 5]]]]); CreateBody(block3, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-128, -5], [-55, -5], [-55, 5], [-128, 5]], [[128, 5], [-25, 5], [-25, -5], [128, -5]]]]); CreateBody(ballCheck, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[25, 0], [25, 15], [-25, 15], [-25, 0]]]]); CreateBody(boxCheck, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[25, 0], [25, 15], [-25, 15], [-25, 0]]]]); CreateBody(triangleCheck, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[25, 0], [25, 15], [-25, 15], [-25, 0]]]]); CreateBody(ball, BodyType.STANDART, GeomType.CIRCLE, [[], [1, 0.5, Materials.materialParams[Materials.WOOD][2]]], [[25]]); CreateBody(box, BodyType.STANDART, GeomType.POLYGON, [[], [1, 0.5, Materials.materialParams[Materials.WOOD][2]]], [[[[-11.5, 11.5], [-11.5, -11.5], [11.5, -11.5], [11.5, 11.5]]]]); CreateBody(triangle, BodyType.STANDART, GeomType.POLYGON, [[], [1.1, 0.5, Materials.materialParams[Materials.WOOD][2]]], [[[[-13.15, 9.45], [0.5, -14.3], [14.15, 9.45]]]]); CreateJoint([block1Pris], JointType.PRISMATIC, [true, true, -0.75, 20, 0, 40]); CreateJoint([block2Pris], JointType.PRISMATIC, [true, true, 0.75, 20, -40, 0]); CreateJoint([block3Pris], JointType.PRISMATIC, [true, true, -0.75, 200, 0, 40]); CreateController([upBounce], ControllerType.BUOYANCY, [Materials.STAR]); ballCheck.gotoAndStop(1); boxCheck.gotoAndStop(1); triangleCheck.gotoAndStop(1); } override public function Update(_arg1:Event):void{ super.Update(_arg1); var _local2:b2PrismaticJoint = (GetJointByClip(block1Pris) as b2PrismaticJoint); var _local3:b2PrismaticJoint = (GetJointByClip(block2Pris) as b2PrismaticJoint); var _local4:b2PrismaticJoint = (GetJointByClip(block3Pris) as b2PrismaticJoint); if (((contactListener.Touch(GetBodyByClip(ball), GetBodyByClip(ballCheck))) || (contactListener.Touch(player.body, GetBodyByClip(ballCheck))))){ _local2.SetMotorSpeed(0.75); if (ballCheck.currentFrame == 1){ sound.Play(SoundID.BUTTON); }; ballCheck.gotoAndStop(2); GetBodyByClip(ball).m_linearVelocity.x = (GetBodyByClip(ball).m_linearVelocity.x * 0.95); } else { _local2.SetMotorSpeed(-0.75); ballCheck.gotoAndStop(1); }; if (contactListener.Touch(GetBodyByClip(box), GetBodyByClip(boxCheck))){ _local3.SetMotorSpeed(-0.75); if (boxCheck.currentFrame == 1){ sound.Play(SoundID.BUTTON); }; boxCheck.gotoAndStop(2); GetBodyByClip(box).m_linearVelocity.x = (GetBodyByClip(box).m_linearVelocity.x * 0.95); } else { _local3.SetMotorSpeed(0.75); boxCheck.gotoAndStop(1); }; if (contactListener.Touch(GetBodyByClip(triangle), GetBodyByClip(triangleCheck))){ _local4.SetMotorSpeed(0.75); if (triangleCheck.currentFrame == 1){ sound.Play(SoundID.BUTTON); }; triangleCheck.gotoAndStop(2); GetBodyByClip(triangle).m_linearVelocity.x = (GetBodyByClip(triangle).m_linearVelocity.x * 0.95); } else { _local4.SetMotorSpeed(-0.75); triangleCheck.gotoAndStop(1); }; GetBodyByClip(block1).WakeUp(); GetBodyByClip(block2).WakeUp(); GetBodyByClip(block3).WakeUp(); } } }//package Levels
Section 167
//Level_16 (Levels.Level_16) package Levels { import flash.display.*; import Types.*; public class Level_16 extends Level { public var mainPlat:MovieClip; public var box1:MovieClip; public var box2:MovieClip; public var box3:MovieClip; public var upPlat3:MovieClip; public var checkPoint0:MovieClip; public var upPlat1:MovieClip; public var checkPoint1:MovieClip; public var toxic1:MovieClip; public var star0:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var star1:StarCollect; public var upPlat2:MovieClip; public var upPlat20:MovieClip; public var disPlat1:MovieClip; public var disPlat2:MovieClip; public var disPlat3:MovieClip; public function Level_16():void{ var _local1:int; id = 16; super(); CreateBody(mainPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-235, -54.5], [-221, -3.5], [-310, -54.5]], [[-221, -3.5], [-207, 15.5], [-310, -54.5]], [[-207, 15.5], [-164, 53.5], [-407, -45.5], [-433, -74.5], [-310, -54.5]], [[-319, -66.5], [-310, -54.5], [-433, -74.5]], [[-433, -50.5], [-433, -74.5], [-407, -45.5]], [[-407, -45.5], [-164, 53.5], [-439, -27.5], [-433, -45.5]], [[-475, -38.5], [-439, -27.5], [-522, -11.5]], [[-439, -27.5], [-164, 53.5], [-517, 18.5], [-522, -11.5]], [[-517, 18.5], [-164, 53.5], [-569, 39.5], [-574, 27.5]], [[-569, 39.5], [-164, 53.5], [-574, 54.5]], [[-164, 53.5], [492, 53.5], [731, 74.5], [-731, 74.5], [-574, 54.5]], [[-731, 54.5], [-574, 54.5], [-731, 74.5]], [[492, 53.5], [537, 15.5], [731, 74.5]], [[537, 15.5], [551, -3.5], [731, 74.5]], [[551, -3.5], [565, -54.5], [731, -54.5], [731, 74.5]]]]); _local1 = 1; while (_local1 <= 3) { CreateBody(("disPlat" + _local1), BodyType.LOST, GeomType.POLYGON, [[], Materials.GROUND, (1500 * (_local1 - 1)), 3000, 2000], [[[[-25, 5], [-25, -5], [24.95, -5], [24.95, 5]]]]); _local1++; }; CreateBody(upPlat1, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-140, 10], [-140, -10], [140, -10], [140, 10]]]]); CreateBody(upPlat2, BodyType.STATIC, GeomType.POLYGON, [[], [Materials.materialParams[Materials.GROUND][0], 0.25, Materials.materialParams[Materials.GROUND][2]]], [[[[-60, 10], [-60, -10], [60, -10], [60, 10]]]]); CreateBody(upPlat20, BodyType.STATIC, GeomType.POLYGON, [[], [Materials.materialParams[Materials.GROUND][0], 0.25, Materials.materialParams[Materials.GROUND][2]]], [[[[-60, 10], [-60, -10], [60, -10], [60, 10]]]]); CreateBody(upPlat3, BodyType.STATIC, GeomType.POLYGON, [[], [Materials.materialParams[Materials.GROUND][0], 0.25, Materials.materialParams[Materials.GROUND][2]]], [[[[-100, 10], [-100, -10], [100, -10], [100, 10]]]]); _local1 = 1; while (_local1 <= 3) { CreateBody(("box" + _local1), BodyType.STANDART, GeomType.POLYGON, [[], [1.2, 0.25, Materials.materialParams[Materials.WOOD][2]]], [[[[35, -10.05], [35, 9.95], [-35, 9.95], [-35, -10.05]]]]); _local1++; }; CreateController([toxic1], ControllerType.BUOYANCY, [Materials.TOXIC, 0, 0, 0, Damage.INJURE, 100]); } } }//package Levels
Section 168
//Level_17 (Levels.Level_17) package Levels { import flash.display.*; import flash.events.*; import Types.*; import caurina.transitions.*; public class Level_17 extends Level { public var checkPoint0:MovieClip; public var wall:MovieClip; public var star0:StarCollect; public var plat1:MovieClip; public var flag:MovieClip; public var invPlat1:MovieClip; public var invPlat2:MovieClip; public var invPlat4:MovieClip; public var invPlat5:MovieClip; public var invPlat6:MovieClip; public var invPlat7:MovieClip; public var invPlat3:MovieClip; public function Level_17():void{ var _local1:int; id = 17; super(); CreateBody(plat1, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-100, -10], [100, -10], [100, 10], [-100, 10]]]]); CreateBody(wall, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-10, 75], [-10, -75], [10, -75], [10, 75]]]]); _local1 = 1; while (_local1 <= 7) { CreateBody(("invPlat" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-39, 2], [-39, -10], [61, -10], [61, 2]]]]); _local1++; }; _local1 = 1; while (_local1 <= 6) { getChildByName(("invPlat" + _local1)).alpha = 0; _local1++; }; } override public function Update(_arg1:Event):void{ var _local4:MovieClip; super.Update(_arg1); var _local2 = 1; while (_local2 <= 6) { _local4 = (getChildByName(("invPlat" + _local2)) as MovieClip); if (contactListener.Touch(player.body, GetBodyByClip(_local4))){ if (_local4.alpha == 0){ Tweener.addTween(_local4, {alpha:1, time:1, transition:"easeOutQuart"}); sound.Play(SoundID.APPEAR); }; }; _local2++; }; var _local3:Boolean; if (player.x < -6){ if (checkPoint0.x > -6){ Tweener.addTween(checkPoint0, {x:-68, time:2, transition:"easeOutElastic"}); _local3 = true; }; if (flag.x < -6){ Tweener.addTween(flag, {x:50, time:2, transition:"easeOutElastic"}); _local3 = true; }; } else { if (checkPoint0.x < -6){ Tweener.addTween(checkPoint0, {x:50, time:2, transition:"easeOutElastic"}); _local3 = true; }; if (flag.x > -6){ Tweener.addTween(flag, {x:-68, time:2, transition:"easeOutElastic"}); _local3 = true; }; }; if (_local3){ sound.Play(SoundID.CHANGE); }; } } }//package Levels
Section 169
//Level_18 (Levels.Level_18) package Levels { import flash.display.*; import Types.*; public class Level_18 extends Level { public var star10:StarCollect; public var plat33:MovieClip; public var plat50:MovieClip; public var plat51:MovieClip; public var plat52:MovieClip; public var plat53:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var star6:StarCollect; public var star7:StarCollect; public var star8:StarCollect; public var star9:StarCollect; public var plat10:MovieClip; public var plat11:MovieClip; public var plat13:MovieClip; public var plat14:MovieClip; public var plat15:MovieClip; public var plat16:MovieClip; public var plat17:MovieClip; public var plat18:MovieClip; public var plat19:MovieClip; public var plat12:MovieClip; public var plat20:MovieClip; public var plat21:MovieClip; public var plat22:MovieClip; public var plat23:MovieClip; public var plat24:MovieClip; public var plat25:MovieClip; public var plat26:MovieClip; public var plat27:MovieClip; public var plat28:MovieClip; public var plat29:MovieClip; public var checkPoint0:MovieClip; public var plat30:MovieClip; public var plat31:MovieClip; public var plat35:MovieClip; public var plat36:MovieClip; public var plat37:MovieClip; public var plat38:MovieClip; public var plat39:MovieClip; public var plat34:MovieClip; public var plat32:MovieClip; public var plat1:MovieClip; public var plat2:MovieClip; public var plat3:MovieClip; public var plat4:MovieClip; public var plat5:MovieClip; public var plat6:MovieClip; public var plat7:MovieClip; public var plat9:MovieClip; public var plat40:MovieClip; public var plat41:MovieClip; public var plat42:MovieClip; public var plat43:MovieClip; public var plat44:MovieClip; public var plat45:MovieClip; public var plat46:MovieClip; public var plat47:MovieClip; public var plat48:MovieClip; public var plat49:MovieClip; public var plat8:MovieClip; public var star11:StarCollect; public function Level_18():void{ var _local1:int; id = 18; super(); _local1 = 1; while (_local1 <= 2) { CreateBody(("plat" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-10, 10], [-10, -10], [10, -10], [10, 10]]]]); _local1++; }; _local1 = 3; while (_local1 <= 53) { CreateBody(("plat" + _local1), BodyType.DISAP, GeomType.POLYGON, [[], Materials.STONE], [[[[-10, 10], [-10, -10], [10, -10], [10, 10]]]]); _local1++; }; } } }//package Levels
Section 170
//Level_19 (Levels.Level_19) package Levels { import flash.display.*; import Types.*; public class Level_19 extends Level { public var balk9:MovieClip; public var mainPlat:MovieClip; public var balk10:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var star6:StarCollect; public var balk11:MovieClip; public var star8:StarCollect; public var star9:StarCollect; public var star7:StarCollect; public var steps:MovieClip; public var checkPoint0:MovieClip; public var star10:StarCollect; public var balk1:MovieClip; public var balk2:MovieClip; public var balk3:MovieClip; public var balk5:MovieClip; public var balk6:MovieClip; public var balk7:MovieClip; public var balk8:MovieClip; public var balk4:MovieClip; public function Level_19():void{ var _local1:int; id = 19; super(); CreateBody(mainPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-500, -10], [500, -10], [500, 10], [-500, 10]]]]); CreateBody(steps, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[54, -40], [54, -20], [-34, -20], [-34, -40]], [[54, -20], [74, -20], [-54, -20], [-34, -20]], [[-54, -20], [74, -20], [-54, 0]], [[-74, 0], [-54, 0], [-74, 20]], [[-54, 0], [74, -20], [-74, 20]], [[-94, 20], [-74, 20], [-94, 40]], [[-74, 20], [74, -20], [74, 0], [-94, 40]], [[114, 40], [-94, 40], [94, 20], [114, 20]], [[94, 20], [-94, 40], [74, 0], [94, 0]]]]); _local1 = 1; while (_local1 <= 6) { CreateBody(("balk" + _local1), BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-50, -5], [50, -5], [50, 5], [-50, 5]]]]); _local1++; }; _local1 = 7; while (_local1 <= 9) { CreateBody(("balk" + _local1), BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-60, 5], [-60, -5], [60, -5], [60, 5]]]]); _local1++; }; _local1 = 10; while (_local1 <= 11) { CreateBody(("balk" + _local1), BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-75, 5], [-75, -5], [75, -5], [75, 5]]]]); _local1++; }; _local1 = 0; while (_local1 <= 10) { (getChildByName(("star" + _local1)) as MovieClip).stop(); CreateBody(("star" + _local1), BodyType.STANDART, GeomType.POLYGON, [[], Materials.STEEL], [[[[0, -7], [1.85, -1.85], [-1.9, -1.85]], [[-1.9, -1.85], [1.85, -1.85], [-3, 1.7], [-7.4, -1.7]], [[-3, 1.7], [1.85, -1.85], [0, 3.85], [-4.6, 7]], [[0, 3.85], [1.85, -1.85], [3, 1.7], [4.6, 7]], [[7.4, -1.7], [3, 1.7], [1.85, -1.85]]]]); _local1++; }; } } }//package Levels
Section 171
//Level_2 (Levels.Level_2) package Levels { import flash.display.*; import Types.*; public class Level_2 extends Level { public var checkPoint0:MovieClip; public var checkPoint1:MovieClip; public var upBounce1:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var movePlat:MovieClip; public var finishPlat:MovieClip; public var firstPlat:MovieClip; public function Level_2():void{ id = 2; super(); CreateBody(firstPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[180.5, -71], [180.5, -51], [-0.5, 51], [-0.5, -71]], [[180.5, -51], [200.5, -51], [200.5, -31], [-0.5, 51]], [[-453.5, 51], [-0.5, 51], [453.5, 71], [-453.5, 71]], [[453.5, 71], [-0.5, 51], [240.5, 9], [453.5, 9]], [[240.5, 9], [-0.5, 51], [220.5, -11], [240.5, -11]], [[220.5, -11], [-0.5, 51], [200.5, -31], [220.5, -31]]]]); CreateBody(movePlat, BodyType.MOVE_X, GeomType.POLYGON, [[], Materials.STEEL, 456, 759, -1, 3], [[[[-50, 5], [-50, -5], [50, -5], [50, 5]]]]); CreateBody(finishPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-100, 10], [-100, -10], [100, -10], [100, 10]]]]); CreateController([upBounce1], ControllerType.BUOYANCY, [Materials.STAR]); if (!instructions[4]){ player.Tell("Use down key to stop."); instructions[4] = true; }; } } }//package Levels
Section 172
//Level_20 (Levels.Level_20) package Levels { import com.boristhebrave.Box2D.Controllers.*; import flash.display.*; import flash.events.*; import Types.*; import caurina.transitions.*; public class Level_20 extends Level { public var star11:StarCollect; public var upBounce:MovieClip; public var plat90:MovieClip; public var star21:StarCollect; public var star22:StarCollect; var crownOnBall:Boolean;// = false public var movePlat1:MovieClip; public var movePlat2:MovieClip; public var stepPlat:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star5:StarCollect; public var star6:StarCollect; public var star7:StarCollect; public var star8:StarCollect; public var star9:StarCollect; public var star20:StarCollect; public var plat801:MovieClip; public var plat803:MovieClip; public var plat804:MovieClip; public var plat805:MovieClip; public var mainGround:MovieClip; public var star4:StarCollect; public var plat802:MovieClip; public var toxic:MovieClip; public var plat130:MovieClip; public var checkPoint0:MovieClip; public var flagShip:FlagShip; public var crown:PlayerCrown; public var disPlat:MovieClip; public var plat180:MovieClip; public var star10:StarCollect; public var star12:StarCollect; public var star13:StarCollect; public var star15:StarCollect; public var star16:StarCollect; public var star17:StarCollect; public var star18:StarCollect; public var star19:StarCollect; public var star14:StarCollect; public function Level_20():void{ id = 20; super(); levelWinTerm = false; CreateBody(mainGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[450.05, -592], [451, -592], [451, 600], [220, 384], [219.5, -333.5]], [[219.5, -333.5], [-220, -333], [-454, -592], [450.05, -592]], [[-220, -333], [-220, 384], [-454, 600], [-454, -592]], [[-220, 384], [220, 384], [451, 600], [-454, 600]]]]); var _local1 = 1; while (_local1 <= 5) { CreateBody(("plat80" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-40, 10], [-40, -10], [40, -10], [40, 10]]]]); _local1++; }; CreateBody(disPlat, BodyType.LOST, GeomType.POLYGON, [[], [0, 0.7, 0.2], 0, 4000, 2000], [[[[-30, 6], [-30, -6], [30, -6], [30, 6]]]]); CreateBody(movePlat1, BodyType.MOVE_X, GeomType.POLYGON, [[], Materials.STEEL, -12, 167, 1, 2.5], [[[[-35, 5], [-35, -5], [35, -5], [35, 5]]]]); CreateBody(movePlat2, BodyType.MOVE_XY, GeomType.POLYGON, [[], Materials.STEEL, 179, 686, -24, 542, 1, 2.5], [[[[-35, 5], [-35, -5], [35, -5], [35, 5]]]]); CreateBody(plat180, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-90, 10], [-90, -10], [90, -10], [90, 10]]]]); CreateBody(plat90, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-45, -10], [45, -10], [45, 10], [-45, 10]]]]); CreateBody(plat130, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[65, -10], [65, 10], [-65, 10], [-65, -10]]]]); CreateBody(flagShip, BodyType.STANDART, GeomType.POLYGON, [[], [1, 0.3, 0.2]], [[[[2, -31.5], [2, -11.5], [0, -25.5], [-1, -39.5], [1, -40.5]], [[0, -25.5], [2, -11.5], [0, -10.5]], [[0, -10.5], [2, -11.5], [1, -0.5], [-1, -0.5]], [[-52, 0.5], [-1, -0.5], [1, -0.5], [37, 17.5], [-42, 17.5]], [[53, -1.5], [37, 17.5], [1, -0.5]]]]); CreateBody(stepPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-13.05, -20], [6.95, -20], [-13.05, 0]], [[-33.05, 0], [-13.05, 0], [-33.05, 20]], [[-13.05, 0], [6.95, -20], [85, 40], [-33.05, 20]], [[-85, 20], [-33.05, 20], [85, 40], [-85, 40]], [[6.95, -20], [6.95, -40], [84.95, 20], [85, 40]], [[85, 20], [85, 40], [84.95, 20]], [[84.95, -40], [84.95, 20], [6.95, -40]]]]); CreateController([upBounce], ControllerType.BUOYANCY, [Materials.STAR]); CreateController([toxic], ControllerType.BUOYANCY, [Materials.TOXIC, 0, 0, 0, Damage.INJURE, 100]); } override public function Update(_arg1:Event):void{ super.Update(_arg1); if (toxic.y > 415){ toxic.y = (toxic.y - 0.4); (GetControllerByClip(toxic) as b2BuoyancyController).offset = (-(toxic.y) / m_physScale); GetBodyByClip(flagShip).WakeUp(); }; if (((!(crownOnBall)) && (player.HitTestObjectControlPoints(crown, true)))){ crownOnBall = true; Tweener.addTween(crown, {scaleX:1, scaleY:1, time:0.5, transition:"linear"}); levelWinTerm = true; sound.Play(SoundID.CROWN); }; if (crownOnBall){ crown.x = player.x; crown.y = player.y; crown.rotation = player.rotation; }; if (((!(dialogues[0])) && ((player.y < 445)))){ player.Tell("Hey! This is my CROWN!!!"); dialogues[0] = true; }; } } }//package Levels
Section 173
//Level_21 (Levels.Level_21) package Levels { import flash.display.*; import Types.*; public class Level_21 extends Level { public var star10:StarCollect; public var plat10:MovieClip; public var platLeft1:MovieClip; public var platLeft2:MovieClip; public var platLeft3:MovieClip; public var star0:StarCollect; public var platLeft5:MovieClip; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var platRight1:MovieClip; public var platLeft4:MovieClip; public var star1:StarCollect; public var star9:StarCollect; public var star6:StarCollect; public var star7:StarCollect; public var star8:StarCollect; public var platLeft6:MovieClip; public var bigPlat2:MovieClip; public var bigPlat1:MovieClip; public var bigPlat3:MovieClip; public var checkPoint0:MovieClip; public var mainGround:MovieClip; public var plat1:MovieClip; public var plat2:MovieClip; public var plat3:MovieClip; public var plat4:MovieClip; public var plat6:MovieClip; public var plat8:MovieClip; public var plat5:MovieClip; public var plat7:MovieClip; public var plat9:MovieClip; public var star11:StarCollect; public var star12:StarCollect; public var star13:StarCollect; public var star14:StarCollect; public var star15:StarCollect; public var star16:StarCollect; public var star17:StarCollect; public function Level_21():void{ var _local1:int; id = 21; super(); CreateBody(mainGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-350.05, 10], [-350.05, -10], [449.9, -10], [449.9, 10]]]]); _local1 = 1; while (_local1 <= 10) { CreateBody(("plat" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[25, -4], [25, 4], [-25, 4], [-25, -4]]]]); _local1++; }; _local1 = 1; while (_local1 <= 3) { CreateBody(("bigPlat" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[-70, 4], [-70, -4], [70, -4], [70, 4]]]]); _local1++; }; _local1 = 1; while (_local1 <= 6) { CreateBody(("platLeft" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[-70, -4], [0, -4], [0, 4], [-70, 4]]]]); _local1++; }; CreateBody(platRight1, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[0, -4], [70, -4], [70, 4], [0, 4]]]]); } } }//package Levels
Section 174
//Level_22 (Levels.Level_22) package Levels { import flash.display.*; import flash.events.*; import Types.*; import caurina.transitions.*; public class Level_22 extends Level { public var plat47:MovieClip; public var plat48:MovieClip; public var star13:StarCollect; public var star10:StarCollect; public var plat50:MovieClip; public var plat51:MovieClip; public var plat52:MovieClip; public var plat53:MovieClip; public var plat54:MovieClip; public var plat55:MovieClip; public var plat56:MovieClip; public var plat57:MovieClip; public var plat58:MovieClip; public var plat59:MovieClip; public var star20:StarCollect; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var star6:StarCollect; public var star7:StarCollect; public var star8:StarCollect; public var star9:StarCollect; public var plat60:MovieClip; public var plat61:MovieClip; public var plat62:MovieClip; public var plat63:MovieClip; public var plat65:MovieClip; public var plat67:MovieClip; public var plat69:MovieClip; public var plat64:MovieClip; public var plat66:MovieClip; public var plat68:MovieClip; public var plat49:MovieClip; public var plat71:MovieClip; public var plat73:MovieClip; public var plat75:MovieClip; public var plat70:MovieClip; public var plat78:MovieClip; public var plat79:MovieClip; public var plat74:MovieClip; public var plat76:MovieClip; public var plat72:MovieClip; public var plat100:MovieClip; public var plat101:MovieClip; public var plat102:MovieClip; public var plat103:MovieClip; public var plat104:MovieClip; public var plat80:MovieClip; public var plat81:MovieClip; public var plat82:MovieClip; public var plat83:MovieClip; public var plat84:MovieClip; public var plat85:MovieClip; public var plat86:MovieClip; public var plat87:MovieClip; public var plat106:MovieClip; public var plat89:MovieClip; public var plat108:MovieClip; public var plat109:MovieClip; public var plat105:MovieClip; public var plat107:MovieClip; public var plat77:MovieClip; public var plat88:MovieClip; public var plat110:MovieClip; public var plat111:MovieClip; public var plat112:MovieClip; public var plat113:MovieClip; public var plat114:MovieClip; public var plat90:MovieClip; public var plat91:MovieClip; public var plat92:MovieClip; public var plat93:MovieClip; public var plat94:MovieClip; public var plat95:MovieClip; public var plat96:MovieClip; public var plat97:MovieClip; public var plat98:MovieClip; public var plat99:MovieClip; public var plat119:MovieClip; public var plat115:MovieClip; public var plat117:MovieClip; public var star11:StarCollect; public var plat116:MovieClip; public var plat120:MovieClip; public var plat121:MovieClip; public var plat122:MovieClip; public var plat118:MovieClip; public var plat1:MovieClip; public var plat2:MovieClip; public var plat3:MovieClip; public var plat4:MovieClip; public var plat5:MovieClip; public var plat6:MovieClip; public var plat7:MovieClip; public var plat8:MovieClip; public var plat9:MovieClip; public var plat10:MovieClip; public var plat11:MovieClip; public var plat13:MovieClip; public var plat14:MovieClip; public var plat15:MovieClip; public var plat16:MovieClip; public var plat17:MovieClip; public var plat18:MovieClip; public var plat19:MovieClip; public var plat12:MovieClip; public var plat20:MovieClip; public var plat21:MovieClip; public var plat22:MovieClip; public var plat23:MovieClip; public var plat24:MovieClip; public var plat25:MovieClip; public var plat26:MovieClip; public var plat27:MovieClip; public var plat28:MovieClip; public var plat29:MovieClip; public var checkPoint0:MovieClip; public var plat31:MovieClip; public var plat35:MovieClip; public var plat36:MovieClip; public var plat37:MovieClip; public var plat38:MovieClip; public var plat39:MovieClip; public var plat34:MovieClip; public var plat30:MovieClip; public var plat32:MovieClip; public var plat33:MovieClip; public var plat40:MovieClip; public var plat41:MovieClip; public var plat42:MovieClip; public var plat44:MovieClip; public var plat46:MovieClip; public var star12:StarCollect; public var star14:StarCollect; public var star15:StarCollect; public var star16:StarCollect; public var star17:StarCollect; public var star18:StarCollect; public var star19:StarCollect; public var plat43:MovieClip; public var plat45:MovieClip; public function Level_22():void{ var _local1:int; id = 22; super(); _local1 = 1; while (_local1 <= 122) { CreateBody(("plat" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[10, -10], [10, 10], [-10, 10], [-10, -10]]]]); _local1++; }; _local1 = 4; while (_local1 <= 122) { getChildByName(("plat" + _local1)).alpha = 0; _local1++; }; } override public function Update(_arg1:Event):void{ var _local3:MovieClip; super.Update(_arg1); var _local2 = 4; while (_local2 <= 122) { _local3 = (getChildByName(("plat" + _local2)) as MovieClip); if (contactListener.Touch(player.body, GetBodyByClip(_local3))){ if (_local3.alpha == 0){ Tweener.addTween(_local3, {alpha:1, time:1, transition:"easeOutQuart"}); sound.Play(SoundID.APPEAR); }; }; _local2++; }; } } }//package Levels
Section 175
//Level_23 (Levels.Level_23) package Levels { import flash.display.*; import flash.events.*; import Types.*; public class Level_23 extends Level { public var golfBall:MovieClip; public var checkPoint0:MovieClip; public var startGround:MovieClip; public var wall:MovieClip; public var stand:MovieClip; public var water:MovieClip; public var disPlat:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var stone2:MovieClip; public var stone3:MovieClip; public var stone1:MovieClip; public var finishGround:MovieClip; public var waterGround:MovieClip; public function Level_23():void{ id = 23; super(); levelWinTerm = false; CreateBody(startGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-355, -79], [355, -79], [355, 79], [-355, 79]]]]); CreateBody(finishGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-283, -79], [-266, -51], [-475, -79]], [[-266, -51], [-247, -32], [-475, -79]], [[-247, -32], [-220, -14], [-475, -79]], [[-220, -14], [-203, -9], [-480, -54], [-475, -79]], [[-480, -54], [-203, -9], [-633, 79], [-510, -54]], [[-515, -79], [-510, -54], [-633, 79], [-633, -79]], [[-203, -9], [-165, -5], [-633, 79]], [[-165, -5], [36.8, -5], [-633, 79]], [[36.8, -5], [74.8, -9], [633, 79], [-633, 79]], [[633, 79], [74.8, -9], [91.8, -14], [633, -79]], [[155, -79], [633, -79], [137.8, -51]], [[137.8, -51], [633, -79], [118.8, -32]], [[118.8, -32], [633, -79], [91.8, -14]]]]); CreateBody(stone1, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-10.65, -11], [-1.2, -11], [10.2, -7], [18.85, 0], [-18.8, 0]]]]); CreateBody(stone2, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[24.3, -16], [38.3, -12], [54.75, 0], [4.3, -7]], [[-21.7, -11], [4.3, -7], [-54.7, 0]], [[-54.7, 0], [4.3, -7], [54.75, 0]]]]); CreateBody(stone3, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[25.5, -4.05], [32.1, 0], [-32.1, 0], [-4.1, -13]]]]); CreateBody(disPlat, BodyType.LOST, GeomType.POLYGON, [[], Materials.GROUND, 0, 4000, 2000], [[[[-50, 6], [-50, -6], [50, -6], [50, 6]]]]); CreateBody(golfBall, BodyType.STANDART, GeomType.CIRCLE, [[], [0.8, 0.2, 0.2]], [[16]]); CreateBody(stand, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[5, -18], [2, -16], [-2, -16], [-5, -18]], [[-2, -16], [2, -16], [1, 0], [-1, 0]]]]); CreateBody(waterGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[61.5, -14.9], [32.5, -10], [-34.5, -10], [-61.55, -14.9], [-81.5, -25], [-86, -31], [86, -31], [82.5, -25]]]]); CreateBody(wall, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[12.5, -50], [12.5, 0], [-7.5, 0], [-7.5, -50]]]]); CreateController([water], ControllerType.BUOYANCY, [Materials.WATER]); player.Tell("Let's play King golf now!"); } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((((((golfBall.x > -160)) && ((golfBall.x < -130)))) && ((golfBall.y > 145)))) && ((golfBall.y < 220)))){ if (!levelWinTerm){ sound.Play(SoundID.STAR_COLLECT); }; levelWinTerm = true; } else { levelWinTerm = false; }; } } }//package Levels
Section 176
//Level_24 (Levels.Level_24) package Levels { import Box2D.Dynamics.Joints.*; import flash.display.*; import flash.events.*; import Types.*; import flash.filters.*; import caurina.transitions.*; public class Level_24 extends Level { private var check:Array; public var plat10:MovieClip; public var plat11:MovieClip; public var plat13:MovieClip; public var plat14:MovieClip; public var plat15:MovieClip; public var plat16:MovieClip; public var plat17:MovieClip; public var plat18:MovieClip; public var plat19:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var plat12:MovieClip; public var plat20:MovieClip; public var mainGround:MovieClip; public var door:MovieClip; public var checkPlat1:MovieClip; public var checkPlat2:MovieClip; public var checkPlat3:MovieClip; public var checkPoint0:MovieClip; public var plat1:MovieClip; public var plat2:MovieClip; public var plat3:MovieClip; public var plat4:MovieClip; public var plat5:MovieClip; public var plat6:MovieClip; public var plat7:MovieClip; public var plat8:MovieClip; public var plat9:MovieClip; public var doorPris:MovieClip; public function Level_24():void{ var _local1:int; check = [false, false, false]; id = 24; super(); levelWinTerm = false; CreateBody(mainGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[713, -235], [713, 0], [583.9, -215], [583.95, -235]], [[583.9, -215], [713, 0], [563.9, -195], [563.95, -215]], [[563.9, -195], [713, 0], [543.9, -175], [543.95, -195]], [[543.9, -175], [713, 0], [523.9, -155], [523.95, -175]], [[523.9, -155], [713, 0], [503.9, -135], [503.95, -155]], [[503.9, -135], [713, 0], [-244, -91], [54, -135]], [[53.95, -155], [54, -135], [34, -155]], [[33.95, -175], [34, -155], [14, -175]], [[34, -155], [54, -135], [-26, -215], [-6, -195], [14, -175]], [[13.95, -195], [14, -175], [-6, -195]], [[-6.05, -215], [-6, -195], [-26, -215]], [[-26.05, -235], [-26, -215], [-236, -235]], [[-26, -215], [54, -135], [-244, -227], [-244.5, -235.5], [-236, -235]], [[-244, -227], [54, -135], [-244, -91]], [[-244, -91], [713, 0], [-713, 0], [-536, -91]], [[-458, -121], [-462.5, -141.5], [-274, -235], [-274, -121]], [[-462.5, -141.5], [-527.5, -141.5], [-400.45, -219.2], [-274, -235]], [[-400.35, -235], [-274, -235], [-400.45, -219.2]], [[-400.45, -219.2], [-527.5, -141.5], [-452.45, -219.2]], [[-452.45, -219.2], [-527.5, -141.5], [-470.45, -219.2], [-452.45, -234.7]], [[-470.45, -234.7], [-452.45, -234.7], [-470.45, -219.2]], [[-470.45, -219.2], [-527.5, -141.5], [-522.45, -219.2]], [[-527.5, -141.5], [-536, -91], [-539.95, -219.2], [-539.95, -234.7], [-522.45, -234.7], [-522.45, -219.2]], [[-539.95, -219.2], [-536, -91], [-591.95, -219.2]], [[-591.95, -234.7], [-591.95, -219.2], [-713, -234.7]], [[-591.95, -219.2], [-536, -91], [-713, 0], [-713, -234.7]]]]); _local1 = 1; while (_local1 <= 3) { CreateBody(("checkPlat" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[25, 0], [25, 15], [-25, 15], [-25, 0]]]]); _local1++; }; CreateBody(door, BodyType.STANDART, GeomType.POLYGON, [[], Materials.STEEL], [[[[-36, -3.5], [0, -3.5], [0, 3.5], [-36, 3.5]]]]); _local1 = 1; while (_local1 <= 20) { CreateBody(("plat" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[-10, 10], [-10, -10], [10, -10], [10, 10]]]]); _local1++; }; CreateJoint([doorPris], JointType.PRISMATIC, [true, true, -0.75, 20, 0, 30]); _local1 = 1; while (_local1 <= 20) { getChildByName(("plat" + _local1)).alpha = 0; _local1++; }; _local1 = 1; while (_local1 <= 3) { (getChildByName(("checkPlat" + _local1)) as MovieClip).symbolShow.gotoAndStop((int((5 * Math.random())) + 1)); _local1++; }; } override public function Update(_arg1:Event):void{ var _local3:int; var _local4:MovieClip; var _local5:MovieClip; super.Update(_arg1); trace(check.toString()); var _local2:b2PrismaticJoint = (GetJointByClip(doorPris) as b2PrismaticJoint); if ((((((checkPlat1.symbolShow.currentFrame == 1)) && ((checkPlat2.symbolShow.currentFrame == 4)))) && ((checkPlat3.symbolShow.currentFrame == 2)))){ if (!levelWinTerm){ sound.Play(SoundID.STAR_COLLECT); }; levelWinTerm = true; _local2.SetMotorSpeed(0.75); checkPlat1.symbolShow.filters = (checkPlat2.symbolShow.filters = (checkPlat3.symbolShow.filters = [new GlowFilter(0xFF0000, 1, 2, 2, 1.5, 1, false, false)])); }; GetBodyByClip(door).WakeUp(); if (!levelWinTerm){ _local3 = 1; while (_local3 <= 3) { _local4 = (getChildByName(("checkPlat" + _local3)) as MovieClip); if (((contactListener.Touch(player.body, GetBodyByClip(_local4))) && (!(check[(_local3 - 1)])))){ if (_local4.symbolShow.currentFrame <= 4){ _local4.symbolShow.gotoAndStop((_local4.symbolShow.currentFrame + 1)); } else { _local4.symbolShow.gotoAndStop(1); }; check[(_local3 - 1)] = true; }; if (!contactListener.Touch(player.body, GetBodyByClip(_local4))){ check[(_local3 - 1)] = false; }; _local3++; }; }; _local3 = 1; while (_local3 <= 20) { _local5 = (getChildByName(("plat" + _local3)) as MovieClip); if (contactListener.Touch(player.body, GetBodyByClip(_local5))){ if (_local5.alpha == 0){ Tweener.addTween(_local5, {alpha:1, time:1, transition:"easeOutQuart"}); sound.Play(SoundID.APPEAR); }; }; _local3++; }; } } }//package Levels
Section 177
//Level_25 (Levels.Level_25) package Levels { import flash.display.*; import flash.events.*; import Types.*; import caurina.transitions.*; public class Level_25 extends Level { public var plat10:MovieClip; public var plat11:MovieClip; public var plat13:MovieClip; public var plat14:MovieClip; public var plat15:MovieClip; public var plat16:MovieClip; public var plat17:MovieClip; public var plat18:MovieClip; public var plat19:MovieClip; public var star1:StarCollect; public var mainGround:MovieClip; public var star3:StarCollect; public var star0:StarCollect; public var star2:StarCollect; public var wall2:MovieClip; public var plat20:MovieClip; public var wall1:MovieClip; public var plat12:MovieClip; private var checkA0:Number;// = -132 public var plat21:MovieClip; public var checkPoint0:MovieClip; private var flagX0:Number;// = 266 private var checkX0:Number;// = -266 public var plat1:MovieClip; public var plat2:MovieClip; public var plat3:MovieClip; public var plat4:MovieClip; public var plat5:MovieClip; public var plat6:MovieClip; public var plat7:MovieClip; public var plat8:MovieClip; public var plat9:MovieClip; public var flag:Flag; private var r:Number;// = 400 private var flagA0:Number;// = -48 public function Level_25():void{ var _local1:int; id = 25; super(); CreateBody(mainGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[174.7, -99.5], [194.65, -99.5], [364, 0], [174.9, -79.05]], [[-175.3, -99.5], [-175.1, -79], [-195.25, -99.5]], [[-195.3, -119.5], [-195.25, -99.5], [-215.25, -119.5]], [[-195.25, -99.5], [-175.1, -79], [-366, 0], [-366, -140], [-215.25, -119.5]], [[-215, -140], [-215.25, -119.5], [-366, -140]], [[-175.1, -79], [174.9, -79.05], [364, 0], [-366, 0]], [[364, 0], [194.65, -99.5], [214.65, -119.5], [364, -140]], [[214.9, -140], [364, -140], [214.65, -119.5]], [[194.7, -119.5], [214.65, -119.5], [194.65, -99.5]]]]); _local1 = 1; while (_local1 <= 2) { CreateBody(("wall" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[10, -30], [10, 30], [-10, 30], [-10, -30]]]]); _local1++; }; _local1 = 1; while (_local1 <= 21) { CreateBody(("plat" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[-10, 10], [-10, -10], [10, -10], [10, 10]]]]); _local1++; }; _local1 = 1; while (_local1 <= 21) { getChildByName(("plat" + _local1)).alpha = 0; _local1++; }; } override public function Update(_arg1:Event):void{ var _local3:Number; var _local4:Number; var _local5:MovieClip; super.Update(_arg1); if ((((player.x > checkX0)) && ((player.x < flagX0)))){ _local3 = (checkA0 + (((player.x - checkX0) / (flagX0 - checkX0)) * (flagA0 - checkA0))); checkPoint0.x = (r * Math.cos(((_local3 * Math.PI) / 180))); checkPoint0.y = ((r * Math.sin(((_local3 * Math.PI) / 180))) - 20); _local4 = (flagA0 - (_local3 - checkA0)); flag.x = (r * Math.cos(((_local4 * Math.PI) / 180))); flag.y = (r * Math.sin(((_local4 * Math.PI) / 180))); }; var _local2 = 1; while (_local2 <= 21) { _local5 = (getChildByName(("plat" + _local2)) as MovieClip); if (contactListener.Touch(player.body, GetBodyByClip(_local5))){ if (_local5.alpha == 0){ Tweener.addTween(_local5, {alpha:1, time:1, transition:"easeOutQuart"}); sound.Play(SoundID.APPEAR); }; }; _local2++; }; } } }//package Levels
Section 178
//Level_3 (Levels.Level_3) package Levels { import flash.display.*; import Types.*; public class Level_3 extends Level { public var checkPoint0:MovieClip; public var checkPoint1:MovieClip; public var checkPoint2:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var star6:StarCollect; public var woodBox:MovieClip; public var waterPlat:MovieClip; public var stepPlat1:MovieClip; public var stepPlat2:MovieClip; public var water1:MovieClip; public var water2:MovieClip; public var firstPlat:MovieClip; public function Level_3():void{ id = 3; super(); CreateBody(firstPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[13, -68.95], [350, -68.95], [350, 59], [13, 39.05]], [[-350, 39], [13, 39.05], [350, 59], [-350, 59]]]]); CreateBody(woodBox, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[20, -20], [20, 20], [-20, 20], [-20, -20]]]]); CreateBody(stepPlat1, BodyType.LOST, GeomType.POLYGON, [[], Materials.GROUND, 500, 4000, 2000], [[[[-35, -7.5], [35, -7.5], [35, 7.5], [-35, 7.5]]]]); CreateBody(stepPlat2, BodyType.LOST, GeomType.POLYGON, [[], Materials.GROUND, 2500, 4000, 2000], [[[[-35, -7.5], [35, -7.5], [35, 7.5], [-35, 7.5]]]]); CreateBody(waterPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[232.5, -2], [326.5, -2], [232.5, 18]], [[212.5, 18], [232.5, 18], [212.5, 38]], [[232.5, 18], [326.5, -2], [212.5, 38]], [[192.5, 38], [212.5, 38], [192.5, 58]], [[212.5, 38], [326.5, -2], [378.5, 97], [192.5, 58]], [[-226.5, -97], [-226.5, 19], [-378.5, -96.85]], [[-226.5, 19], [-187.5, 58], [-378.5, 97], [-378.5, -96.85]], [[-187.5, 58], [192.5, 58], [378.5, 97], [-378.5, 97]], [[326.5, -2], [326.5, -55], [378.5, -97], [378.5, 97]], [[378.5, -97], [326.5, -55], [213.5, -55], [-15.5, -97]], [[-15.5, 32], [-15.5, -97], [213.5, -55], [124.5, 32]]]]); CreateController([water1], ControllerType.BUOYANCY, [Materials.WATER]); CreateController([water2], ControllerType.BUOYANCY, [Materials.WATER]); if (!instructions[1]){ player.Tell("Use R to reset the level."); instructions[1] = true; }; } } }//package Levels
Section 179
//Level_4 (Levels.Level_4) package Levels { import flash.display.*; import Types.*; public class Level_4 extends Level { public var upBounce:MovieClip; public var checkPoint0:MovieClip; public var plat10:MovieClip; public var checkPoint1:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var star6:StarCollect; public var star7:StarCollect; public var star8:StarCollect; public var plat6:MovieClip; public var plat0:MovieClip; public var plat1:MovieClip; public var plat2:MovieClip; public var plat3:MovieClip; public var plat4:MovieClip; public var plat5:MovieClip; public var plat7:MovieClip; public var plat8:MovieClip; public var plat9:MovieClip; public var firstPlat:MovieClip; public function Level_4():void{ id = 4; super(); CreateBody(firstPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-250, 10], [-250, -10], [250, -10], [250, 10]]]]); var _local1:int; while (_local1 <= 10) { CreateBody(("plat" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-31, -7.5], [31, -7.5], [31, 7.5], [-31, 7.5]]]]); _local1++; }; CreateController([upBounce], ControllerType.BUOYANCY, [Materials.STAR]); if (!instructions[2]){ player.Tell("Use P to pause the game."); instructions[2] = true; }; } } }//package Levels
Section 180
//Level_5 (Levels.Level_5) package Levels { import flash.display.*; import Types.*; public class Level_5 extends Level { public var checkPoint0:MovieClip; public var helpPris:MovieClip; public var triangle:MovieClip; public var helpPlat:MovieClip; public var balance1:MovieClip; public var backet:MovieClip; public var balance2:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var afterDisPlat:MovieClip; public var backetPris:MovieClip; public var disPlat:MovieClip; public var movePlat:MovieClip; public var finishPlat:MovieClip; public var swingsRev:MovieClip; public var afterBacketPlat:MovieClip; public var steelBall:MovieClip; public var swings:MovieClip; public var upPlat:MovieClip; public var firstPlat:MovieClip; public function Level_5():void{ id = 5; super(); killHeight = 750; CreateBody(movePlat, BodyType.MOVE_Y, GeomType.POLYGON, [[], Materials.STEEL, 136, 295, -1, 2.5], [[[[50, -5], [50, 5], [-50, 5], [-50, -5]]]]); CreateBody(firstPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-358, -9.55], [400.5, -9.5], [606.5, 9.5], [-358, 10]], [[400.5, -9.5], [455.5, -32.5], [606.5, -32.5], [606.5, 9.5]]]]); CreateBody(upPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-8.5, 40], [-49.5, 20], [125.5, 20], [125.5, 40]], [[125.5, 20], [-49.5, 20], [1.5, 20]], [[1.5, 20], [-49.5, 20], [-125.5, 0], [-38.5, 0]], [[-125.5, 20], [-125.5, 0], [-49.5, 20]]]]); CreateBody(steelBall, BodyType.STANDART, GeomType.CIRCLE, [[], Materials.WOOD], [[60]]); CreateBody(triangle, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[3.5, 7.5], [16.5, 29.5], [-16.5, 29.5], [-3.5, 7.5]]]]); CreateBody(swings, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-120, 2.5], [-120, -2.5], [120, -2.5], [120, 2.5]]]]); CreateBody(disPlat, BodyType.LOST, GeomType.POLYGON, [[], Materials.GROUND, 0, 4000, 2000], [[[[-50, 6], [-50, -6], [50, -6], [50, 6]]]]); CreateBody(afterDisPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-107.5, -10], [107.5, -10], [107.5, 10], [-107.5, 10]]]]); CreateBody(backet, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[44.5, -60], [50.5, -60], [50.5, 0], [41.5, -8]], [[-44.5, -60], [-41.5, -8], [-50.5, 0], [-50.5, -60]], [[-41.5, -8], [41.5, -8], [50.5, 0], [-50.5, 0]]]]); CreateBody(afterBacketPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-50, -10], [50, -10], [50, 10], [-50, 10]]]]); CreateBody(helpPlat, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-175, -4], [175, -4], [175, 4], [-175, 4]]]]); CreateBody(finishPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-159.5, 23.5], [-159.5, 3.5], [-69.5, 3.5], [159.5, 23.5]], [[159.5, -23.5], [159.5, 23.5], [-69.5, 3.5], [-0.5, -23.5]]]]); CreateJoint([swingsRev], JointType.REVOLUTE, [false, false]); CreateJoint([backetPris], JointType.PRISMATIC, [false, true]); CreateJoint([helpPris], JointType.PRISMATIC, [false, true, 0, 0, 0, 170]); CreateJoint([balance1, balance2], JointType.PULLEY, [1]); } } }//package Levels
Section 181
//Level_6 (Levels.Level_6) package Levels { import flash.display.*; import Types.*; public class Level_6 extends Level { public var upBounce:MovieClip; public var checkPoint0:MovieClip; public var checkPoint1:MovieClip; public var movePlat1:MovieClip; public var movePlat2:MovieClip; public var movePlat3:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star5:StarCollect; public var star7:StarCollect; public var star9:StarCollect; public var stoneBarier:MovieClip; public var star4:StarCollect; public var hammer1:MovieClip; public var hammer2:MovieClip; public var hammer3:MovieClip; public var mainGround:MovieClip; public var star10:StarCollect; public var star11:StarCollect; public var star6:StarCollect; public var star8:StarCollect; public function Level_6():void{ id = 6; super(); CreateBody(mainGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-333.5, 58.5], [-333.5, -77.5], [325.5, -65.5], [345.5, -45.5], [347.5, 58.5]], [[395.5, 111.5], [347.5, 58.5], [345.5, -45.5], [518.5, -45.5], [518.5, 111.5]], [[345.5, -65.5], [345.5, -45.5], [325.5, -65.5]], [[325.5, -65.5], [-333.5, -77.5], [325.5, -85.5]], [[-333.5, -77.5], [-563.5, -77.5], [-87.5, -85.5], [325.5, -85.5]], [[-87.5, -85.5], [-563.5, -77.5], [-107.5, -105.5], [-87.5, -105.5]], [[-107.5, -105.5], [-563.5, -77.5], [-626.5, -125.5], [-107.5, -125.5]], [[-563.5, -77.5], [-563.5, -13.5], [-626.5, 210.5], [-626.5, -125.5]], [[-259.5, -210.5], [626.5, -210.5], [-259.5, -190.5]], [[-279.5, -190.5], [-259.5, -190.5], [-279.5, -170.5]], [[-259.5, -190.5], [626.5, -210.5], [-279.5, -170.5]], [[-299.5, -170.5], [-279.5, -170.5], [-299.5, -150.5]], [[-279.5, -170.5], [626.5, -210.5], [332.5, -150.5], [-299.5, -150.5]], [[332.5, -150.5], [626.5, -210.5], [566.5, -70.5], [413.5, -70.5]], [[626.5, -210.5], [626.5, 210.5], [566.5, 155.5], [566.5, -70.5]], [[626.5, 210.5], [-626.5, 210.5], [518.5, 155.5], [566.5, 155.5]], [[518.5, 155.5], [-626.5, 210.5], [-423.5, 143.5], [518.5, 143.5]], [[-626.5, 210.5], [-563.5, -13.5], [-423.5, -13.5], [-423.5, 143.5]]]]); CreateBody(movePlat1, BodyType.MOVE_X, GeomType.POLYGON, [[], Materials.STEEL, 327, 577, -1, 2], [[[[-40, 5], [-40, -5], [40, -5], [40, 5]]]]); CreateBody(movePlat2, BodyType.MOVE_X, GeomType.POLYGON, [[], Materials.STEEL, 659, 907, 1, 2], [[[[-40, 5], [-40, -5], [40, -5], [40, 5]]]]); var _local1 = 1; while (_local1 <= 3) { CreateBody(("hammer" + _local1), BodyType.UP_AND_DROP, GeomType.POLYGON, [[], Materials.STEEL, 561, 619, 1, 2], [[[[16, 0], [42, 0], [42, 92], [16, 92]], [[-0.5, 105.5], [16, 92], [42, 92], [58.5, 105.5], [58.5, 109.5], [-0.5, 109.5]]]]); _local1++; }; CreateBody(stoneBarier, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[10, -25], [10, 25], [-10, 25], [-10, -25]]]]); CreateBody(movePlat3, BodyType.MOVE_Y, GeomType.POLYGON, [[], Materials.STEEL, 548, 736, 1, 2], [[[[-22, -5], [22, -5], [22, 5], [-22, 5]]]]); CreateController([upBounce], ControllerType.BUOYANCY, [Materials.STAR]); SetBodiesFilter([mainGround, hammer1, hammer2, hammer3], -1); } } }//package Levels
Section 182
//Level_7 (Levels.Level_7) package Levels { import Box2D.Dynamics.Joints.*; import flash.display.*; import flash.events.*; import Types.*; public class Level_7 extends Level { public var water2right:MovieClip; public var water2left:MovieClip; public var upBounce1:MovieClip; public var doorRev:MovieClip; public var gatePris:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var star6:StarCollect; public var star7:StarCollect; public var star8:StarCollect; public var star9:StarCollect; public var door:MovieClip; public var mainGround:MovieClip; public var rightWaterPlat:MovieClip; public var leftWaterPlat:MovieClip; public var checkPoint0:MovieClip; public var woodBalk:MovieClip; public var wall:MovieClip; public var gate:MovieClip; public var kolesoRev:MovieClip; public var steelBall:MovieClip; public var castle:MovieClip; public var koleso:MovieClip; public var water1:MovieClip; public function Level_7():void{ id = 7; super(); CreateBody(mainGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[1335, 8], [1343, 8], [0x0600, 213], [1335, 47]], [[1239, 47], [1335, 47], [0x0600, 213], [1239, 104]], [[764, 104], [1239, 104], [0x0600, 213], [764, 169]], [[234, 149], [234, 169], [214, 149]], [[214, 129], [214, 149], [194, 129]], [[214, 149], [234, 169], [154, 89], [174, 109], [194, 129]], [[194, 109], [194, 129], [174, 109]], [[174, 89], [174, 109], [154, 89]], [[154, 0], [154, 89], [0, 0]], [[154, 89], [234, 169], [0, 213], [0, 0]], [[234, 169], [764, 169], [0x0600, 213], [0, 213]], [[1343, 8], [1343, 0], [0x0600, 0], [0x0600, 213]]]]); CreateBody(leftWaterPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[244, 0], [244, 10], [0, 54], [0, 0]], [[244, 10], [254, 10], [254, 139], [83, 139], [0, 54]]]]); CreateBody(rightWaterPlat, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[741, 0], [741, 17], [10, 10], [10, 0]], [[10, 10], [741, 17], [622, 17], [0, 10]], [[0, 139], [0, 10], [171, 74], [171, 139]], [[171, 74], [0, 10], [305, 47], [305, 74]], [[305, 47], [0, 10], [328, 24]], [[328, 24], [0, 10], [622, 17], [465, 24]], [[488, 74], [488, 47], [622, 74]], [[488, 47], [465, 24], [622, 17], [622, 74]]]]); CreateBody(castle, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[0, -1], [11, -1], [11, 24], [0, 30]], [[27, 160], [27, 51], [35, 158], [35, 160]], [[35, 158], [27, 51], [45, 158]], [[45, 160], [45, 158], [599, 160]], [[45, 158], [27, 51], [558, 140], [599, 160]], [[599, 140], [599, 160], [558, 140]], [[558, 120], [558, 140], [538, 120]], [[558, 140], [27, 51], [538, 120]], [[538, 100], [538, 120], [518, 100]], [[538, 120], [27, 51], [518, 100]], [[518, 80], [518, 100], [498, 80]], [[518, 100], [27, 51], [498, 80]], [[498, 60], [498, 80], [478, 60]], [[498, 80], [27, 51], [478, 60]], [[478, 60], [27, 51], [32, 40], [478, 40]], [[27, 51], [0, 30], [11, 24], [32, 40]]]]); CreateBody(wall, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[10, -67.5], [10, 67.5], [-10, 67.5], [-10, -67.5]]]]); CreateBody(steelBall, BodyType.STANDART, GeomType.CIRCLE, [[], Materials.STEEL], [[50]]); CreateBody(woodBalk, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-71, 4.5], [-71, -4.5], [71, -4.5], [71, 4.5]]]]); CreateBody(gate, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[4, -110], [4, 0], [-4, 0], [-4, -110]]]]); CreateBody(koleso, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[26.5, -30.1], [30.05, -26.55], [-12.25, 8.65], [8.65, -12.3]], [[2.5, -40], [2.5, -14.85], [-2.5, -14.8], [-2.5, -40]], [[2.5, -14.85], [8.65, -12.3], [-12.25, 8.65], [-14.8, 2.5], [-14.8, -2.5], [-12.25, -8.75], [-8.7, -12.3], [-2.5, -14.8]], [[-26.5, -30.1], [-8.7, -12.3], [-12.25, -8.75], [-30.05, -26.55]], [[-40, -2.5], [-14.8, -2.5], [-14.8, 2.5], [-40, 2.5]], [[-12.25, 8.65], [30.05, -26.55], [12.2, -8.75], [-30.1, 26.5]], [[-26.55, 30.05], [-30.1, 26.5], [-8.75, 12.2]], [[-2.5, 40], [-2.5, 14.8], [2.5, 14.8], [2.5, 40]], [[-2.5, 14.8], [-8.75, 12.2], [12.2, -8.75], [14.8, -2.5], [14.8, 2.5], [12.25, 8.65], [8.7, 12.2], [2.5, 14.8]], [[26.55, 30.05], [8.7, 12.2], [12.25, 8.65], [30.1, 26.5]], [[40, 2.5], [14.8, 2.5], [14.8, -2.5], [40, -2.5]], [[-8.75, 12.2], [-30.1, 26.5], [12.2, -8.75]]]]); CreateBody(door, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-36, 3.5], [-36, -3.5], [0, -3.5], [0, 3.5]]]]); CreateJoint([gatePris], JointType.PRISMATIC, [false, true, 0, 0, 0, 84]); CreateJoint([kolesoRev], JointType.REVOLUTE, [false, true, 0, 0, 0, 0]); CreateJoint([gatePris, kolesoRev], JointType.GEAR, [-0.1]); CreateJoint([doorRev], JointType.REVOLUTE, [false, true, 0, 0, 0, 90]); CreateController([water1], ControllerType.BUOYANCY, [Materials.WATER]); CreateController([water2left], ControllerType.BUOYANCY, [Materials.WATER]); CreateController([water2right], ControllerType.BUOYANCY, [Materials.WATER]); CreateController([upBounce1], ControllerType.BUOYANCY, [Materials.STAR]); SetBodiesFilter([koleso, mainGround, door, rightWaterPlat], -1); } override public function Update(_arg1:Event):void{ super.Update(_arg1); var _local2:b2RevoluteJoint = (GetJointByClip(kolesoRev) as b2RevoluteJoint); _local2.SetLimits(_local2.GetJointAngle(), (_local2.GetJointAngle() + Math.PI)); } } }//package Levels
Section 183
//Level_8 (Levels.Level_8) package Levels { import com.boristhebrave.Box2D.Controllers.*; import flash.display.*; import flash.events.*; import Types.*; public class Level_8 extends Level { public var upBounce:MovieClip; public var balanceGatePris:MovieClip; public var water:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var star5:StarCollect; public var star6:StarCollect; public var star7:StarCollect; public var star8:StarCollect; public var mainGround:MovieClip; public var stoneBlock:MovieClip; public var redButton:MovieClip; public var balancePlat:MovieClip; public var waterFromPipe:MovieClip; public var littleBlock:MovieClip; public var pipe1:MovieClip; public var pipe3:MovieClip; public var checkPoint0:MovieClip; public var pipe2:MovieClip; public var balanceGate:MovieClip; public var pipe4:MovieClip; public var balance1:MovieClip; public var balance2:MovieClip; public var balancePlatPris:MovieClip; public var ball:MovieClip; public function Level_8():void{ id = 8; super(); CreateBody(mainGround, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[798.5, -135.5], [798.5, 112.5], [250.5, -84.5], [250.5, -135.5]], [[250.5, -84.5], [798.5, 112.5], [134.5, -84.5]], [[134.5, -135.5], [134.5, -84.5], [-82.5, -135.5]], [[134.5, -84.5], [798.5, 112.5], [-88.5, 77.5], [-88.5, -129.5], [-82.5, -135.5]], [[-88.5, 77.5], [798.5, 112.5], [-798.5, 112.5], [-238.5, 77.5]], [[-238.5, -129.5], [-238.5, 77.5], [-313.5, -2.5], [-313.5, -69.5], [-244.5, -135.5]], [[-561.5, -135.5], [-244.5, -135.5], [-313.5, -69.5], [-561.5, -69.5]], [[-313.5, -2.5], [-238.5, 77.5], [-798.5, 112.5], [-474.5, -2.5]], [[-474.5, -44.5], [-474.5, -2.5], [-798.5, 112.5], [-586.5, -44.5]], [[-586.5, -135.5], [-586.5, -44.5], [-798.5, 112.5], [-798.5, -135.5]]]]); CreateBody(ball, BodyType.STANDART, GeomType.CIRCLE, [[], [0.5, Materials.materialParams[Materials.WOOD][1], Materials.materialParams[Materials.WOOD][2]]], [[50]]); CreateBody(balancePlat, BodyType.STANDART, GeomType.POLYGON, [[], Materials.WOOD], [[[[-56, 5], [-56, -5], [56, -5], [56, 5]]]]); CreateBody(stoneBlock, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-160.5, -96.5], [160.5, -96.5], [-3.5, 16.5], [-66.5, 43.5], [-160.5, 43.5]], [[-3.5, 16.5], [160.5, -96.5], [138.5, 16.5]], [[138.5, 16.5], [160.5, -96.5], [160.5, 78.5], [138.5, 78.5]]]]); CreateBody(balanceGate, BodyType.STANDART, GeomType.POLYGON, [[], Materials.STEEL], [[[[4, -17.5], [4, 17.5], [-4, 17.5], [-4, -17.5]]]]); CreateBody(redButton, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[12.5, 0], [12.5, 5], [-12.5, 5], [-12.5, 0]]]]); CreateBody(pipe2, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[-80.95, 2.5], [-80.95, -2.5], [81, -2.5], [81, 2.5]]]]); CreateBody(littleBlock, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-6.5, 0], [-3.5, -20], [2.5, -20], [6.5, 0]]]]); CreateBody(pipe4, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STEEL], [[[[-5.5, 2.5], [-5.5, -2.5], [5.9, -2.5], [5.9, 2.5]]]]); CreateJoint([balancePlatPris], JointType.PRISMATIC, [false, false]); CreateJoint([balanceGatePris], JointType.PRISMATIC, [false, true, 0, 0, 0, 40]); CreateJoint([balance1, balance2], JointType.PULLEY, [1]); CreateController([upBounce], ControllerType.BUOYANCY, [Materials.STAR]); CreateController([water], ControllerType.BUOYANCY, [Materials.WATER]); m_joint.addChild(stoneBlock); } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((water.y > 275)) && (contactListener.Touch(player.body, GetBodyByClip(redButton))))){ water.y = (water.y - 1); water.mask.height = (water.mask.height + 1); (GetControllerByClip(water) as b2BuoyancyController).offset = (-(water.y) / m_physScale); GetBodyByClip(ball).WakeUp(); waterFromPipe.emiter.start(); sound.Play(SoundID.WATER_STREAM); } else { waterFromPipe.emiter.stop(); sound.Stop(SoundID.WATER_STREAM); }; } } }//package Levels
Section 184
//Level_9 (Levels.Level_9) package Levels { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import flash.display.*; import flash.events.*; import flash.geom.*; import Types.*; import caurina.transitions.*; public class Level_9 extends Level { public var water1:MovieClip; public var brick1:MovieClip; public var brick2:MovieClip; public var brick3:MovieClip; public var brick4:MovieClip; public var brick5:MovieClip; public var brick6:MovieClip; public var brick7:MovieClip; public var brick8:MovieClip; public var brick9:MovieClip; public var star0:StarCollect; public var star1:StarCollect; public var star2:StarCollect; public var star3:StarCollect; public var star4:StarCollect; public var brick13:MovieClip; public var brick15:MovieClip; public var brick16:MovieClip; public var brick17:MovieClip; public var brick18:MovieClip; public var brick19:MovieClip; public var brick14:MovieClip; public var brickHalf10:MovieClip; public var brickHalf11:MovieClip; public var brickHalf12:MovieClip; public var brick10:MovieClip; public var castle1:MovieClip; public var castle2:MovieClip; public var brick20:MovieClip; public var brick22:MovieClip; public var door2:MovieClip; public var brick26:MovieClip; public var brick27:MovieClip; public var brick28:MovieClip; public var brick29:MovieClip; public var brick25:MovieClip; public var brick11:MovieClip; public var door1:MovieClip; public var cannonWheel:MovieClip; public var brick31:MovieClip; public var brick32:MovieClip; public var brick33:MovieClip; public var brick23:MovieClip; public var brick30:MovieClip; public var cannonRev:MovieClip; public var door1Rev:MovieClip; public var brick12:MovieClip; public var brick21:MovieClip; public var brick24:MovieClip; private var bulletI:int;// = 0 public var ground1:MovieClip; private var flareInHands:int;// = 0 public var brickHalf1:MovieClip; public var brickHalf2:MovieClip; public var brickHalf3:MovieClip; public var brickHalf4:MovieClip; public var brickHalf5:MovieClip; public var brickHalf6:MovieClip; public var brickHalf7:MovieClip; public var brickHalf8:MovieClip; public var brickHalf9:MovieClip; public var barier1:MovieClip; private var framesAfterLastBullet:int;// = 0 public var door2Rev:MovieClip; private var bulletBody:b2Body; public var checkPoint0:MovieClip; public var flare:MovieClip; public var water2:MovieClip; public var cannon:MovieClip; public function Level_9():void{ var _local1:int; id = 9; super(); CreateBody(ground1, BodyType.STATIC, GeomType.POLYGON, [[], Materials.GROUND], [[[[-331, -16], [-331, -99], [-152, -95], [-232, -16]], [[-152, -95], [-331, -99], [-323, -99], [-106, -95]], [[-106, -107], [-106, -95], [-323, -99], [-323, -107]], [[680, -107], [680, 92], [-67, -99.05], [-67, -107]], [[-67, -99.05], [680, 92], [-75, -69], [-75, -99.05]], [[-75, -69], [680, 92], [-139, -49], [-139, -69]], [[-139, -49], [680, 92], [-159, -29], [-159, -49]], [[-159, -29], [680, 92], [-179, -9], [-179, -29]], [[-179, -9], [680, 92], [-199, 11], [-199, -9]], [[-199, 11], [680, 92], [-861, 92], [-448, 11]], [[-448, -107], [-448, 11], [-861, 92], [-861, -107]]]]); CreateBody(castle1, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-48, -45], [-48, -23], [-58, -19], [-58, -45]], [[-58, -19], [-48, -23], [-26, -1], [-39, 0]], [[-39, 44], [-39, 0], [-26, -1], [58, -1], [58, 44]]]]); CreateBody(castle2, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[5, -146], [5, -126.05], [-145, -86], [-145, -144], [-133, -146]], [[-154, -189], [-154, -167], [-164, -163], [-164, -189]], [[-154, -167], [-133, -146], [-145, -144], [-164, -163]], [[65, -86], [-145, -86], [25, -106.05], [65, -106]], [[-145, -86], [5, -126.05], [25, -126], [25, -106.05]], [[125, -28], [145, -28], [125, -8.05]], [[105, -8], [125, -8.05], [105, 11.95]], [[125, -8.05], [145, -28], [211, -48], [237, 68], [85, 32], [105, 11.95]], [[85, 12], [105, 11.95], [85, 32]], [[-145, 32], [85, 32], [237, 68], [-145, 68]], [[237, -145], [237, 68], [211, -48], [211, -145]], [[145, -48], [211, -48], [145, -28]]]]); CreateBody(door1, BodyType.STANDART, GeomType.POLYGON, [[], Materials.STEEL], [[[[65.5, -3.5], [65.5, 3.5], [-57.5, 3.5], [-57.5, -3.5]]]]); CreateBody(door2, BodyType.STANDART, GeomType.POLYGON, [[], [1, 0.4, 0.1]], [[[[-18.5, 3.5], [-18.5, -3.5], [18.5, -3.5], [18.5, 3.5]]]]); _local1 = 1; while (_local1 <= 33) { CreateBody(("brick" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-9, -4], [9, -4], [9, 4], [-9, 4]]]]); _local1++; }; _local1 = 1; while (_local1 <= 12) { CreateBody(("brickHalf" + _local1), BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[4, -4], [4, 4], [-4, 4], [-4, -4]]]]); _local1++; }; CreateBody(cannonWheel, BodyType.STANDART, GeomType.CIRCLE, [[], Materials.STEEL], [[26]]); CreateBody(cannon, BodyType.STANDART, GeomType.POLYGON, [[], [4, 0.6, 0.1]], [[[[5.5, -8.5], [36.5, -5.5], [-36.5, -1.5], [-33.5, -7.5], [-30.5, -8.5], [-25.5, -9.5], [-13.5, -9.5]], [[-36.5, -1.5], [36.5, -5.5], [-36.5, 2.5], [-38, 1], [-37.5, -0.5]], [[-36.5, 2.5], [36.5, -5.5], [36.5, 6.5], [-9.5, 9.5], [-25.5, 9.5], [-33, 8], [-34.5, 6.5]]]]); CreateBody(barier1, BodyType.STATIC, GeomType.POLYGON, [[], Materials.STONE], [[[[-11.05, -6], [-4.05, -6], [7.95, 10], [-10.95, 10]]]]); CreateJoint([door1Rev], JointType.REVOLUTE, [true, true, 5, 30, -88, -1]); CreateJoint([door2Rev], JointType.REVOLUTE, [false, true, 0, 0, 2, 89]); CreateJoint([cannonRev], JointType.REVOLUTE, [false, false]); CreateController([water1], ControllerType.BUOYANCY, [Materials.WATER]); CreateController([water2], ControllerType.BUOYANCY, [Materials.WATER]); SetBodiesFilter([door1, door2, castle1, ground1], -1); m_joint.addChild(castle1); } override public function Update(_arg1:Event):void{ var _local4:Bullet; var _local5:Point; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:int; var _local11:b2Body; var _local12:b2Body; super.Update(_arg1); var _local2:Point = m_sprite.globalToLocal(door1.localToGlobal(new Point(-55, 0))); var _local3:Point = m_sprite.globalToLocal(castle1.localToGlobal(new Point(-35, 41))); DrawRope(_local3, _local2); DrawNail(_local2); DrawNail(_local3); if ((((flareInHands == 0)) && (player.HitTestObjectControlPoints(flare, true)))){ flareInHands = 1; Tweener.addTween(flare, {scaleX:0.75, scaleY:0.75, rotation:21, time:1, transition:"linear"}); }; if (flareInHands == 1){ sound.Play(SoundID.FIRE); } else { sound.Stop(SoundID.FIRE); }; if ((((flareInHands == 1)) || ((flareInHands == 2)))){ flare.x = player.x; flare.y = player.y; if (player.smile.currentLabel == "underWater"){ flare.emiter.stop(); flareInHands = 2; }; if ((((((flareInHands == 1)) && (player.HitTestObjectControlPoints(cannon, true)))) && ((framesAfterLastBullet > 60)))){ _local4 = new Bullet(); _local5 = m_sprite.globalToLocal(cannon.localToGlobal(new Point(45, 0))); _local4.x = _local5.x; _local4.y = _local5.y; _local4.name = ("bullet" + bulletI); m_sprite.addChildAt(_local4, (m_sprite.getChildIndex(cannon) - 1)); bulletBody = CreateBody(_local4.name, BodyType.STANDART, GeomType.CIRCLE, [[], Materials.STEEL], [[10]]); _local6 = (_local4.x - cannon.x); _local7 = (_local4.y - cannon.y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); _local9 = (120 + (80 * Math.random())); bulletBody.ApplyForce(new b2Vec2(((_local9 * _local6) / _local8), ((_local9 * _local7) / _local8)), bulletBody.GetPosition()); bulletI++; framesAfterLastBullet = 0; cannon.fire.gotoAndPlay(1); sound.Play(SoundID.CANNON); }; }; framesAfterLastBullet++; if (bulletBody){ _local10 = 1; while (_local10 <= 33) { _local11 = GetBodyByClip(("brick" + _local10)); if (contactListener.Touch(bulletBody, _local11)){ DestroyBody(_local11, true); DestroyBody(bulletBody, true); }; _local10++; }; _local10 = 1; while (_local10 <= 12) { _local12 = GetBodyByClip(("brickHalf" + _local10)); if (contactListener.Touch(bulletBody, _local12)){ DestroyBody(_local12, true); DestroyBody(bulletBody, true); }; _local10++; }; if (contactListener.IsTouching(bulletBody)){ DestroyBody(bulletBody, true); }; }; } } }//package Levels
Section 185
//Bubbles_104 (movie_fla.Bubbles_104) package movie_fla { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class Bubbles_104 extends MovieClip { public var __id4_:MovieClipEmitter; public function Bubbles_104(){ __setProp___id4__Bubbles_Layer1_0(); } function __setProp___id4__Bubbles_Layer1_0(){ try { __id4_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id4_.config = "{pps:30,x:0, y:0, width:1, height:1,size:15, color:16777215, movement:true, speed:[55.7,88.2] , angle:[274.2,267.95] , startScale:[0,0.1] , accel:0.95, fade:1190, xOscillate:[0.25,100], lifespan:840}"; __id4_.movieClipName = ""; __id4_.pps = 30; __id4_.rootEffect = false; try { __id4_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package movie_fla
Section 186
//Cannon_192 (movie_fla.Cannon_192) package movie_fla { import flash.display.*; public dynamic class Cannon_192 extends MovieClip { public var fire:MovieClip; public function Cannon_192(){ addFrameScript(0, frame1); } function frame1(){ fire.gotoAndStop(6); } } }//package movie_fla
Section 187
//CannonFire_193 (movie_fla.CannonFire_193) package movie_fla { import flash.display.*; public dynamic class CannonFire_193 extends MovieClip { public function CannonFire_193(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package movie_fla
Section 188
//ComicsFrame1_353 (movie_fla.ComicsFrame1_353) package movie_fla { import flash.display.*; import flash.events.*; import Types.*; import com.midasplayer.*; public dynamic class ComicsFrame1_353 extends MovieClip { public var kingButton:SimpleButton; public var backToMainMenuButton:SimpleButton; public function ComicsFrame1_353(){ addFrameScript(0, frame1); } function frame1(){ kingButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); kingButton.addEventListener(MouseEvent.CLICK, kingButtonClickHandler, false, 0, true); backToMainMenuButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); backToMainMenuButton.addEventListener(MouseEvent.CLICK, backToMainMenuButtonClickHandler, false, 0, true); } public function buttonOverHandler(_arg1:MouseEvent):void{ Preloader.sound.Play(SoundID.MENU_MOVE); } public function kingButtonClickHandler(_arg1:MouseEvent):void{ KingAPI.openOtherGamesLink(); Preloader.sound.Play(SoundID.MENU_SELECT); } public function backToMainMenuButtonClickHandler(_arg1:MouseEvent):void{ var _local2:MovieClip = (this.parent.parent as MovieClip); (this.parent as AfterBonusLevelsComics).PrepearToDie(); _local2.gotoAndStop("mainMenu"); Preloader.sound.Play(SoundID.MENU_SELECT); } } }//package movie_fla
Section 189
//ComicsFrame3_348 (movie_fla.ComicsFrame3_348) package movie_fla { import flash.display.*; import flash.events.*; import Types.*; import com.midasplayer.*; public dynamic class ComicsFrame3_348 extends MovieClip { public var kingButton:SimpleButton; public var backToMainMenuButton:SimpleButton; public function ComicsFrame3_348(){ addFrameScript(0, frame1); } function frame1(){ kingButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); kingButton.addEventListener(MouseEvent.CLICK, kingButtonClickHandler, false, 0, true); backToMainMenuButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); backToMainMenuButton.addEventListener(MouseEvent.CLICK, backToMainMenuButtonClickHandler, false, 0, true); } public function buttonOverHandler(_arg1:MouseEvent):void{ Preloader.sound.Play(SoundID.MENU_MOVE); } public function kingButtonClickHandler(_arg1:MouseEvent):void{ if (Preloader.bonusAvailable){ (this.parent as AfterGameComics).StartBonusGame(); } else { KingAPI.openSignLink(); }; Preloader.sound.Play(SoundID.MENU_SELECT); } public function backToMainMenuButtonClickHandler(_arg1:MouseEvent):void{ var _local2:MovieClip = (this.parent.parent as MovieClip); (this.parent as AfterGameComics).PrepearToDie(); _local2.gotoAndStop("mainMenu"); Preloader.sound.Play(SoundID.MENU_SELECT); } } }//package movie_fla
Section 190
//Flare_199 (movie_fla.Flare_199) package movie_fla { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class Flare_199 extends MovieClip { public var emiter:MovieClipEmitter; public function Flare_199(){ __setProp_emiter_Flare_Layer1_0(); } function __setProp_emiter_Flare_Layer1_0(){ try { emiter["componentInspectorSetting"] = true; } catch(e:Error) { }; emiter.config = "{pps:80,x:0, y:0, width:1, height:1,size:15, color:16737792, movement:true, speed:[33.35,37.15] , angle:[246.1,295.6] , startScale:[0,0.15] , fade:420, lifespan:570}"; emiter.movieClipName = ""; emiter.pps = 80; emiter.rootEffect = false; try { emiter["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package movie_fla
Section 191
//LOGO_368 (movie_fla.LOGO_368) package movie_fla { import flash.display.*; public dynamic class LOGO_368 extends MovieClip { public function LOGO_368(){ addFrameScript(134, frame135); } function frame135(){ (parent as MovieClip).gotoAndStop("preGameComics"); } } }//package movie_fla
Section 192
//PlayerSmile_40 (movie_fla.PlayerSmile_40) package movie_fla { import flash.display.*; public dynamic class PlayerSmile_40 extends MovieClip { public function PlayerSmile_40(){ addFrameScript(99, frame100, 199, frame200, 213, frame214, 217, frame218, 221, frame222, 222, frame223); } function frame100(){ gotoAndPlay("wink"); } function frame200(){ gotoAndPlay("wink"); } function frame223(){ stop(); } function frame214(){ stop(); } function frame218(){ gotoAndPlay("wink"); } function frame222(){ gotoAndPlay("wink"); } } }//package movie_fla
Section 193
//UpBounce_131 (movie_fla.UpBounce_131) package movie_fla { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class UpBounce_131 extends MovieClip { public var __id3_:MovieClipEmitter; public function UpBounce_131(){ __setProp___id3__UpBounce_Layer2_0(); } function __setProp___id3__UpBounce_Layer2_0(){ try { __id3_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id3_.config = "{pps:17,x:0, y:0, width:25, height:91, movement:true, speed:[24.9,51.9] , angle:[271.15,268.8] , startScale:[0,0.4] , accel:0.2, rotateToAngle:true, lifespan:1200}"; __id3_.movieClipName = "Star"; __id3_.pps = 17; __id3_.rootEffect = false; try { __id3_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package movie_fla
Section 194
//UpBounce_157 (movie_fla.UpBounce_157) package movie_fla { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class UpBounce_157 extends MovieClip { public var __id2_:MovieClipEmitter; public function UpBounce_157(){ __setProp___id2__UpBounce_Layer2_0(); } function __setProp___id2__UpBounce_Layer2_0(){ try { __id2_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id2_.config = "{pps:30,x:0, y:0, width:98, height:149, movement:true, speed:[24.9,51.9] , angle:[271.15,268.8] , startScale:[0,0.4] , accel:0.2, rotateToAngle:true, lifespan:3000}"; __id2_.movieClipName = "Star"; __id2_.pps = 30; __id2_.rootEffect = false; try { __id2_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package movie_fla
Section 195
//UpBounce_222 (movie_fla.UpBounce_222) package movie_fla { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class UpBounce_222 extends MovieClip { public var __id1_:MovieClipEmitter; public function UpBounce_222(){ __setProp___id1__UpBounce_Layer1_0(); } function __setProp___id1__UpBounce_Layer1_0(){ try { __id1_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id1_.config = "{pps:30,x:0, y:0, width:79, height:111, movement:true, speed:[24.9,51.9] , angle:[271.15,268.8] , startScale:[0,0.4] , accel:0.2, rotateToAngle:true,lifespan:2000}"; __id1_.movieClipName = "Star"; __id1_.pps = 30; __id1_.rootEffect = false; try { __id1_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package movie_fla
Section 196
//UpBounce_246 (movie_fla.UpBounce_246) package movie_fla { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class UpBounce_246 extends MovieClip { public var __id0_:MovieClipEmitter; public function UpBounce_246(){ __setProp___id0__UpBounce_Layer2_0(); } function __setProp___id0__UpBounce_Layer2_0(){ try { __id0_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id0_.config = "{pps:25,x:0, y:0, width:77, height:81, movement:true, speed:[24.9,51.9] , angle:[271.15,268.8] , startScale:[0,0.4] , accel:0.2, rotateToAngle:true, lifespan:1500}"; __id0_.movieClipName = "Star"; __id0_.pps = 25; __id0_.rootEffect = false; try { __id0_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package movie_fla
Section 197
//UpBounce_59 (movie_fla.UpBounce_59) package movie_fla { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class UpBounce_59 extends MovieClip { public var __id8_:MovieClipEmitter; public function UpBounce_59(){ __setProp___id8__UpBounce_Layer2_0(); } function __setProp___id8__UpBounce_Layer2_0(){ try { __id8_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id8_.config = "{pps:30,x:0, y:0, width:82, height:165, movement:true, speed:[24.9,51.9] , angle:[271.15,268.8] , startScale:[0,0.4] , accel:0.2, rotateToAngle:true, lifespan:3000}"; __id8_.movieClipName = "Star"; __id8_.pps = 30; __id8_.rootEffect = false; try { __id8_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package movie_fla
Section 198
//UpBounce_77 (movie_fla.UpBounce_77) package movie_fla { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class UpBounce_77 extends MovieClip { public var __id7_:MovieClipEmitter; public function UpBounce_77(){ __setProp___id7__UpBounce_Layer2_0(); } function __setProp___id7__UpBounce_Layer2_0(){ try { __id7_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id7_.config = "{pps:30, x:0, y:0, width:89, height:200, movement:true, speed:[24.9,51.9] , angle:[271.15,268.8] , startScale:[0,0.4] , accel:0.2, rotateToAngle:true, lifespan:1500}"; __id7_.movieClipName = "Star"; __id7_.pps = 30; __id7_.rootEffect = false; try { __id7_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package movie_fla
Section 199
//UpBounce_97 (movie_fla.UpBounce_97) package movie_fla { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class UpBounce_97 extends MovieClip { public var __id5_:MovieClipEmitter; public function UpBounce_97(){ __setProp___id5__UpBounce_Layer1_0(); } function __setProp___id5__UpBounce_Layer1_0(){ try { __id5_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id5_.config = "{pps:150,x:0, y:0, width:500, height:1000, movement:true, speed:[24.9,51.9] , angle:[271.15,268.8] , startScale:[0,0.4] , accel:0.2, rotateToAngle:true,lifespan:10000}"; __id5_.movieClipName = "Star"; __id5_.pps = 150; __id5_.rootEffect = false; try { __id5_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package movie_fla
Section 200
//UpBounce1_87 (movie_fla.UpBounce1_87) package movie_fla { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class UpBounce1_87 extends MovieClip { public var __id6_:MovieClipEmitter; public function UpBounce1_87(){ __setProp___id6__UpBounce1_Layer2_0(); } function __setProp___id6__UpBounce1_Layer2_0(){ try { __id6_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id6_.config = "{pps:25,x:0, y:0, width:50, height:116, movement:true, speed:[24.9,51.9] , angle:[271.15,268.8] , startScale:[0,0.4] , accel:0.2, rotateToAngle:true, lifespan:900}"; __id6_.movieClipName = "Star"; __id6_.pps = 25; __id6_.rootEffect = false; try { __id6_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package movie_fla
Section 201
//WaterFromPipe_125 (movie_fla.WaterFromPipe_125) package movie_fla { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class WaterFromPipe_125 extends MovieClip { public var emiter:MovieClipEmitter; public function WaterFromPipe_125(){ __setProp_emiter_WaterFromPipe_Layer1_0(); } function __setProp_emiter_WaterFromPipe_Layer1_0(){ try { emiter["componentInspectorSetting"] = true; } catch(e:Error) { }; emiter.config = "{pps:60,x:418, y:251, width:1, height:1,size:15, color:2588900, movement:true, speed:[143.05,161.2] , angle:[0,12.7] , startScale:[0,0.15] , gravity:9, fade:1230, lifespan:1070}"; emiter.movieClipName = ""; emiter.pps = 60; emiter.rootEffect = false; try { emiter["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package movie_fla
Section 202
//WaterFromPipe_249 (movie_fla.WaterFromPipe_249) package movie_fla { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class WaterFromPipe_249 extends MovieClip { public var emiter:MovieClipEmitter; public function WaterFromPipe_249(){ __setProp_emiter_WaterFromPipe_Layer1_0(); } function __setProp_emiter_WaterFromPipe_Layer1_0(){ try { emiter["componentInspectorSetting"] = true; } catch(e:Error) { }; emiter.config = "{pps:60,x:418, y:251, width:1, height:1,size:15, color:2588900, movement:true, speed:[143.05,161.2] , angle:[0,12.7] , startScale:[0,0.15] , gravity:9, fade:1230, lifespan:1070}"; emiter.movieClipName = ""; emiter.pps = 60; emiter.rootEffect = false; try { emiter["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package movie_fla
Section 203
//WaterGlare_66 (movie_fla.WaterGlare_66) package movie_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class WaterGlare_66 extends MovieClip { public function WaterGlare_66(){ addFrameScript(0, frame1); } function frame1(){ addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true); } public function enterFrameHandler(_arg1:Event):void{ var _local2:WaterWave; if (Math.random() < (0.2 * ((this.parent.width * this.parent.height) / (200 * 150)))){ _local2 = new WaterWave(); _local2.x = (this.parent.width * Math.random()); _local2.y = (this.parent.height * Math.random()); _local2.scaleX = (_local2.ScaleY = (0.3 + (0.5 * Math.random()))); _local2.alpha = 0.3; addChild(_local2); }; } } }//package movie_fla
Section 204
//BodyType (Types.BodyType) package Types { public class BodyType { public static const PLAYER:int = 0; public static const LOST:int = 9; public static const MOVE_XY:int = 7; public static const MOVE_X:int = 5; public static const MOVE_Y:int = 6; public static const DISAP:int = 10; public static const STANDART:int = 2; public static const STATIC:int = 1; public static const DROP:int = 3; public static const JUMP:int = 8; public static const UP_AND_DROP:int = 4; } }//package Types
Section 205
//ButtonAction (Types.ButtonAction) package Types { public class ButtonAction { public static const DESTROY:int = 0; public static const FALL:int = 1; } }//package Types
Section 206
//ControllerType (Types.ControllerType) package Types { public class ControllerType { public static const BUOYANCY:int = 0; public static const SPRING:int = 1; public static const GRAVITY:int = 2; } }//package Types
Section 207
//Damage (Types.Damage) package Types { public class Damage { public static var NO:int = 0; public static var INJURE:int = 2; public static var KILL:int = 1; } }//package Types
Section 208
//GeomType (Types.GeomType) package Types { public class GeomType { public static const CIRCLE:int = 1; public static const POLYGON:int = 0; } }//package Types
Section 209
//JointType (Types.JointType) package Types { public class JointType { public static const REVOLUTE:int = 1; public static const PRISMATIC:int = 2; public static const GEAR:int = 4; public static const DISTANCE:int = 0; public static const REVOLUTE_ANGLE_TARGET:int = 5; public static const PULLEY:int = 3; } }//package Types
Section 210
//LevelStatus (Types.LevelStatus) package Types { public class LevelStatus { public static const PLAY:int = 0; public static const LOSE:int = 2; public static const WIN:int = 1; } }//package Types
Section 211
//Materials (Types.Materials) package Types { public class Materials { public static const PLAYER:int = 0; public static const SNOW:int = 6; public static const STONE:int = 2; public static const GROUND:int = 1; public static const STEEL:int = 4; public static const WOOD:int = 3; public static const ICE:int = 7; public static const WATER:int = 8; public static const STAR:int = 9; public static const GLASS:int = 5; public static const TOXIC:int = 10; public static var materialParams:Array = new Array(new Array(2, 1, 0), new Array(0, 0.8, 0.1), new Array(2, 0.7, 0.1), new Array(0.5, 0.4, 0.2), new Array(4, 0.5, 0.2), new Array(1.5, 0.1, 0.2), new Array(0, 0.1, 0.1), new Array(1.5, 0, 0.2), new Array(3.5, 5, 2), new Array(3.2, 1.3, 1), new Array(3.5, 5, 2)); } }//package Types
Section 212
//ObjectType (Types.ObjectType) package Types { public class ObjectType { public static const STAR:int = 1005; public static const PIN:int = 1001; public static const BUTTON:int = 1002; public static const FLAG:int = 1003; public static const CHECKPOINT:int = 1004; } }//package Types
Section 213
//ScoreID (Types.ScoreID) package Types { public class ScoreID { public static const KONGREGATE:int = 2; public static const KING:int = 1; } }//package Types
Section 214
//SoundID (Types.SoundID) package Types { public class SoundID { public static const REMOVE:String = "RemoveFX"; public static const CHECKPOINT:String = "CheckPointFX"; public static const LOOP1:String = "Loop1"; public static const LOOP2:String = "Loop2"; public static const LOOP3:String = "Loop3"; public static const LOOP4:String = "Loop4"; public static const LOOP5:String = "Loop5"; public static const APPEAR:String = "AppearFX"; public static const TURN_PAGE:String = "TurnPageFX"; public static const STAR_COLLECT:String = "StarCollectFX"; public static const NOT_AVAILABLE:String = "NotAvailableFX"; public static const CROWN:String = "CrownFX"; public static const CHANGE:String = "ChangeFX"; public static const BUTTON:String = "ButtonFX"; public static const JUMP:String = "JumpFX"; public static const FIRE:String = "FireFX"; public static const PULLEY:String = "PulleyFX"; public static const WATER_STREAM:String = "WaterStreamFX"; public static const MENU_MOVE:String = "MenuMoveFX"; public static const PAUSE:String = "PauseFX"; public static const MENU_SELECT:String = "MenuSelectFX"; public static const DIE:String = "DieFX"; public static const CREEK:String = "CreekFX"; public static const FLAG:String = "FlagFX"; public static const WATER_IN:String = "WaterInFX"; public static const CANNON:String = "CannonFX"; } }//package Types
Section 215
//MemoryController (utils.MemoryController) package utils { import flash.geom.*; import flash.utils.*; import flash.system.*; import flash.net.*; public class MemoryController { private var mWarningFunction:Function; private var mForcedCleanInterval:int; private var mForcedIterationsNum:int; private var mWarningMemoryLimit:int; private var mInterval:int; private var mCriticalMemoryLimit:int; private var mAbortFunction:Function; private var mIsAbleToForce:Boolean; public function MemoryController(_arg1:int=1000, _arg2:int=62914560, _arg3:int=104857600, _arg4:int=5000, _arg5:int=1, _arg6:Function=null, _arg7:Function=null):void{ mInterval = _arg1; mWarningMemoryLimit = _arg2; mCriticalMemoryLimit = _arg3; mAbortFunction = _arg6; mWarningFunction = _arg7; mForcedIterationsNum = _arg5; mForcedCleanInterval = _arg4; mIsAbleToForce = true; setInterval(checkMemoryUsage, mInterval); } private function doForcedClean():void{ if (!mIsAbleToForce){ return; }; var i:int; i = 0; while (i < mForcedIterationsNum) { try { new LocalConnection().connect("Crio"); new LocalConnection().connect("Crio"); } catch(e) { }; i = (i + 1); }; mIsAbleToForce = false; setTimeout(MakeAbleToForce, mForcedCleanInterval); } private function doSimpleClean():void{ var _local1:Point = new Point(); _local1 = null; var _local2:String = new String("1234567812345678"); _local2 = null; var _local3:Array = new Array(); var _local4:int; _local4 = 0; while (_local4 < 0x0100) { _local3.push(new String("a")); _local4++; }; _local4 = 0; while (_local4 < 0x0100) { delete _local3[_local4]; _local4++; }; _local3 = null; } private function MakeAbleToForce():void{ mIsAbleToForce = true; } private function checkMemoryUsage():void{ if (System.totalMemory > mWarningMemoryLimit){ doForcedClean(); if (mWarningFunction){ mWarningFunction(); }; } else { if (System.totalMemory > mCriticalMemoryLimit){ if (mAbortFunction){ mAbortFunction(); }; doForcedClean(); }; }; } } }//package utils
Section 216
//WeakReference (utils.WeakReference) package utils { import flash.utils.*; public class WeakReference { private var dictionary:Dictionary; public function WeakReference(_arg1){ dictionary = new Dictionary(true); dictionary[_arg1] = null; } public function get object():Object{ var _local1:Object; for (_local1 in dictionary) { return (_local1); }; return (null); } } }//package utils
Section 217
//AfterBonusLevelsComics (AfterBonusLevelsComics) package { import flash.display.*; import flash.events.*; public class AfterBonusLevelsComics extends Comics { public var comicsFrame1:MovieClip; public function AfterBonusLevelsComics():void{ framesNum = 1; shouldTurnLastFrame = false; } override public function lastFrameDelayHandler(_arg1:TimerEvent):void{ } } }//package
Section 218
//AfterGameComics (AfterGameComics) package { import flash.events.*; import flash.display.*; public class AfterGameComics extends Comics { public var comicsFrame1:MovieClip; public var comicsFrame2:MovieClip; public var comicsFrame3:MovieClip; public function AfterGameComics():void{ framesNum = 3; lastFrameDelayTime = 100; if (Preloader.bonusAvailable){ shouldTurnLastFrame = true; } else { shouldTurnLastFrame = false; }; } override public function lastFrameDelayHandler(_arg1:TimerEvent):void{ if (Preloader.bonusAvailable){ StartBonusGame(); }; } public function StartBonusGame():void{ Preloader.levelStart = (Preloader.levelTotal + 1); Preloader.bonusPlaying = true; (parent as MovieClip).gotoAndStop("game"); } } }//package
Section 219
//AppearFX (AppearFX) package { import flash.media.*; public dynamic class AppearFX extends Sound { } }//package
Section 220
//Background (Background) package { import flash.display.*; public dynamic class Background extends MovieClip { } }//package
Section 221
//BlueBall (BlueBall) package { import flash.display.*; public dynamic class BlueBall extends MovieClip { } }//package
Section 222
//BodyContactFilter (BodyContactFilter) package { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import Types.*; public class BodyContactFilter extends b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new b2ContactFilter(); override public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); var _local5:b2Body = _arg1.GetBody(); var _local6:b2Body = _arg2.GetBody(); if ((((_local5.m_userData.bodyType == BodyType.LOST)) && ((_local5.m_userData.bodyParams[6] == false)))){ return (false); }; if ((((_local6.m_userData.bodyType == BodyType.LOST)) && ((_local6.m_userData.bodyParams[6] == false)))){ return (false); }; if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local7:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local7); } } }//package
Section 223
//BodyContactListener (BodyContactListener) package { import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import flash.display.*; import flash.events.*; import Box2D.Dynamics.Contacts.*; import flash.media.*; public class BodyContactListener extends b2ContactListener { public var contactPoints:Array; public function BodyContactListener(){ contactPoints = new Array(); super(); } override public function Add(_arg1:b2ContactPoint):void{ contactPoints.push(new CustomContactPoint(_arg1.id.key, _arg1.shape1, _arg1.shape2, _arg1.position, _arg1.normal, 0)); } public function RemoveBodiesCommonPoints(_arg1:b2Body, _arg2:b2Body):void{ var _local3:int; while (_local3 < contactPoints.length) { if ((((((contactPoints[_local3].shape1.GetBody() == _arg1)) && ((contactPoints[_local3].shape2.GetBody() == _arg2)))) || ((((contactPoints[_local3].shape1.GetBody() == _arg2)) && ((contactPoints[_local3].shape2.GetBody() == _arg1)))))){ contactPoints.splice(contactPoints.indexOf(contactPoints[_local3]), 1); _local3--; }; _local3++; }; } override public function Persist(_arg1:b2ContactPoint):void{ var _local2:int; while (_local2 < contactPoints.length) { if (contactPoints[_local2].Equal(_arg1)){ contactPoints[_local2].position.SetV(_arg1.position); contactPoints[_local2].normal.SetV(_arg1.normal); }; _local2++; }; } public function RemoveBodyPoints(_arg1:b2Body):void{ var _local2:int; while (_local2 < contactPoints.length) { if ((((contactPoints[_local2].shape1.GetBody() == _arg1)) || ((contactPoints[_local2].shape2.GetBody() == _arg1)))){ contactPoints.splice(contactPoints.indexOf(contactPoints[_local2]), 1); _local2--; }; _local2++; }; } override public function Remove(_arg1:b2ContactPoint):void{ var _local2:int; while (_local2 < contactPoints.length) { if (contactPoints[_local2].Equal(_arg1)){ contactPoints.splice(contactPoints.indexOf(contactPoints[_local2]), 1); _local2--; }; _local2++; }; } override public function Result(_arg1:b2ContactResult):void{ var _local2:int; while (_local2 < contactPoints.length) { if (contactPoints[_local2].Equal(_arg1)){ contactPoints[_local2].normalImpulse = _arg1.normalImpulse; }; _local2++; }; } public function IsTouching(_arg1:b2Body):Array{ var _local3:CustomContactPoint; var _local2:Array = new Array(); for each (_local3 in contactPoints) { if ((((_local3.shape1.GetBody() == _arg1)) || ((_local3.shape2.GetBody() == _arg1)))){ _local2.push(_local3); }; }; if (_local2.length > 0){ return (_local2); }; return (null); } public function Touch(_arg1:b2Body, _arg2:b2Body):Array{ var _local4:CustomContactPoint; var _local3:Array = new Array(); for each (_local4 in contactPoints) { if ((((((_local4.shape1.GetBody() == _arg1)) && ((_local4.shape2.GetBody() == _arg2)))) || ((((_local4.shape1.GetBody() == _arg2)) && ((_local4.shape2.GetBody() == _arg1)))))){ _local3.push(_local4); }; }; if (_local3.length > 0){ return (_local3); }; return (null); } } }//package
Section 224
//Bullet (Bullet) package { import flash.display.*; public dynamic class Bullet extends MovieClip { } }//package
Section 225
//ButtonFX (ButtonFX) package { import flash.media.*; public dynamic class ButtonFX extends Sound { } }//package
Section 226
//CannonFX (CannonFX) package { import flash.media.*; public dynamic class CannonFX extends Sound { } }//package
Section 227
//ChangeFX (ChangeFX) package { import flash.media.*; public dynamic class ChangeFX extends Sound { } }//package
Section 228
//CheckPointFX (CheckPointFX) package { import flash.media.*; public dynamic class CheckPointFX extends Sound { } }//package
Section 229
//Comics (Comics) package { import flash.events.*; import flash.display.*; import caurina.transitions.*; import flash.geom.*; import flash.utils.*; import Types.*; import flash.filters.*; public class Comics extends MovieClip { public var framesNum:int;// = 1 public var dropShadowDistance:Number; public var frame:int;// = 1 public var lastFrameDelayTime:int;// = 500 public var frameClipSkewY:Number; public var dropShadowFilter:DropShadowFilter; public var preFrameTime:int;// = 0 public var lastFrameDelayTimer:Timer; public var frameClip:Sprite; public var shouldTurnLastFrame:Boolean;// = true public function Comics():void{ addEventListener(MouseEvent.CLICK, comicsClickHandler, false, 0, true); addEventListener(Event.ENTER_FRAME, comicsEnterFrameHandler, false, 0, true); Preloader.sound.Play(SoundID.LOOP1); } public function comicsClickHandler(_arg1:MouseEvent):void{ if (preFrameTime > 10){ if ((((((frame <= framesNum)) && (shouldTurnLastFrame))) || ((((frame < framesNum)) && (!(shouldTurnLastFrame)))))){ if (frameClip){ removeChild(frameClip); frameClip = null; }; frameClip = (getChildByName(("comicsFrame" + frame)) as Sprite); if (frameClip){ Tweener.addTween(frameClip, {x:-300, scaleX:0.5, time:0.5, transition:"easeInCubic"}); frameClipSkewY = 0; Tweener.addTween(this, {frameClipSkewY:-0.25, time:0.5, transition:"easeInCubic"}); dropShadowDistance = 150; dropShadowFilter = new DropShadowFilter(dropShadowDistance, 5, 0, 0.2, 0, 0, 1, 1, false, false, false); frameClip.filters = [dropShadowFilter]; Tweener.addTween(this, {dropShadowDistance:20, time:0.5, transition:"easeInCubic"}); frame++; preFrameTime = 0; Preloader.sound.Play(SoundID.TURN_PAGE); }; }; if (frame > framesNum){ lastFrameDelayTimer = new Timer(lastFrameDelayTime, 1); lastFrameDelayTimer.addEventListener(TimerEvent.TIMER, lastFrameDelayHandler, false, 0, true); lastFrameDelayTimer.start(); }; }; } public function comicsEnterFrameHandler(_arg1:Event):void{ var _local2:Matrix; var _local3:Array; if (frameClip){ _local2 = frameClip.transform.matrix; _local2.b = frameClipSkewY; frameClip.transform.matrix = _local2; _local3 = frameClip.filters; _local3[0].distance = dropShadowDistance; frameClip.filters = _local3; }; preFrameTime++; } public function PrepearToDie():void{ removeEventListener(MouseEvent.CLICK, comicsClickHandler); removeEventListener(Event.ENTER_FRAME, comicsEnterFrameHandler); if (this.parent){ this.parent.removeChild(this); }; frameClip = null; lastFrameDelayTimer = null; dropShadowFilter = null; } public function lastFrameDelayHandler(_arg1:TimerEvent):void{ PrepearToDie(); } } }//package
Section 230
//CreekFX (CreekFX) package { import flash.media.*; public dynamic class CreekFX extends Sound { } }//package
Section 231
//CrownFX (CrownFX) package { import flash.media.*; public dynamic class CrownFX extends Sound { } }//package
Section 232
//CustomContactPoint (CustomContactPoint) package { import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class CustomContactPoint { public var normal:b2Vec2; public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var key:uint; public function CustomContactPoint(_arg1:uint, _arg2:b2Shape, _arg3:b2Shape, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:Number){ position = new b2Vec2(); normal = new b2Vec2(); super(); key = _arg1; shape1 = _arg2; shape2 = _arg3; position.SetV(_arg4); normal.SetV(_arg5); normalImpulse = _arg6; } public function Equal(_arg1):Boolean{ if ((((((this.key == _arg1.id.key)) && ((this.shape1 == _arg1.shape1)))) && ((this.shape2 == _arg1.shape2)))){ return (true); }; return (false); } } }//package
Section 233
//Dark (Dark) package { import flash.display.*; public dynamic class Dark extends MovieClip { } }//package
Section 234
//DieAnimation (DieAnimation) package { import flash.display.*; public dynamic class DieAnimation extends MovieClip { public function DieAnimation(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package
Section 235
//DieFX (DieFX) package { import flash.media.*; public dynamic class DieFX extends Sound { } }//package
Section 236
//EmbedClip (EmbedClip) package { import flash.display.*; public dynamic class EmbedClip extends MovieClip { public function EmbedClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 237
//EmbedPreloader (EmbedPreloader) package { import flash.display.*; public dynamic class EmbedPreloader extends MovieClip { } }//package
Section 238
//ferryBlue (ferryBlue) package { import flash.display.*; public dynamic class ferryBlue extends MovieClip { public function ferryBlue(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 239
//ferryGreen (ferryGreen) package { import flash.display.*; public dynamic class ferryGreen extends MovieClip { public function ferryGreen(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 240
//ferryRed (ferryRed) package { import flash.display.*; public dynamic class ferryRed extends MovieClip { public function ferryRed(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 241
//FireFX (FireFX) package { import flash.media.*; public dynamic class FireFX extends Sound { } }//package
Section 242
//Flag (Flag) package { import flash.display.*; public class Flag extends MovieClip { public function Flag():void{ } } }//package
Section 243
//FlagDis (FlagDis) package { public dynamic class FlagDis extends Flag { } }//package
Section 244
//FlagFX (FlagFX) package { import flash.media.*; public dynamic class FlagFX extends Sound { } }//package
Section 245
//FlagShip (FlagShip) package { public dynamic class FlagShip extends Flag { } }//package
Section 246
//Game (Game) package { import flash.display.*; import ascb.util.*; import flash.events.*; import flash.geom.*; import utils.*; import Types.*; import flash.filters.*; import flash.text.*; import com.kongregate.as3.client.*; import Levels.*; import caurina.transitions.*; import flash.ui.*; import com.midasplayer.*; import flash.net.*; public class Game extends MovieClip { public var kingInGameButton:SimpleButton; public var scoreLabel:MovieClip; public var levelText:TextField; public var sound:SoundManager; public var pauseSprite:PauseMenu; public var scoreText:TextField; public var walktroughButton:SimpleButton; public var restartButton:SimpleButton; public var starText:TextField; private var m_currLevel:Level; public var kongregate:KongregateAPI; public var menuButton:SimpleButton; private var pause:Boolean;// = false private var m_currId:int; public function Game():void{ m_currId = Preloader.levelStart; sound = Preloader.sound; super(); addFrameScript(0, frame1); pauseSprite.visible = false; if (!Preloader.continueGame){ if (Preloader.levelStart == 1){ Preloader.scoreAvailable = true; } else { Preloader.scoreAvailable = false; }; Preloader.score = 0; } else { Preloader.continueGame = false; }; if (!Preloader.scoreAvailable){ scoreLabel.alpha = 0.7; scoreText.alpha = 0.7; }; SetLevel(m_currId); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); Preloader.stageLink.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandler, false, 0, true); sound.StopLoop(); sound.PlayRandomLoop(); } public function QuitTo(_arg1:String, _arg2:Boolean=false):void{ sound.StopAll(); PrepearToDie(); ResetLevelsInfo(); Preloader.continueGame = _arg2; if (!Preloader.continueGame){ Level.instructions[3] = false; }; Preloader.bonusPlaying = false; (parent as MovieClip).gotoAndStop(_arg1); parent.removeChild(this); } public function buttonOverHandler(_arg1:MouseEvent):void{ sound.Play(SoundID.MENU_MOVE); } public function ResetLevelsInfo():void{ Level.lastCheckNum = 0; Level.starsCollected = 0; Level.diesOnThisLevel = 0; Level.starsCollectedNumbers.splice(0, Level.starsCollectedNumbers.length); Level.instructions = [false, false, false, Level.instructions[3], false]; } private function KeyDownHandler(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case 80: case Keyboard.ESCAPE: Pause(); break; case 82: Restart(); break; case 77: sound.isMusic = !(sound.isMusic); sound.isSoundFX = sound.isMusic; pauseSprite.RefreshSoundButtons(); if (sound.isMusic){ sound.Play(SoundID.PAUSE); }; break; }; } public function kingInGameButtonClickHandler(_arg1:MouseEvent):void{ KingAPI.openSignLink(); sound.Play(SoundID.MENU_SELECT); } private function PrepearToDie():void{ removeEventListener(Event.ENTER_FRAME, Update); Preloader.stageLink.removeEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandler); Tweener.removeAllTweens(); m_currLevel.PrepearToDie(); m_currLevel = null; } public function Pause():void{ var _local1:Array; var _local2:Number; var _local3:BitmapFilter; var _local4:BlurFilter; var _local5:Matrix; var _local6:BitmapData; var _local7:Bitmap; pause = !(pause); if (pause){ Tweener.pauseAllTweens(); _local1 = new Array(); _local2 = 0.333; _local1 = _local1.concat([_local2, _local2, _local2, 0, 0]); _local1 = _local1.concat([_local2, _local2, _local2, 0, 0]); _local1 = _local1.concat([_local2, _local2, _local2, 0, 0]); _local1 = _local1.concat([0, 0, 0, 1, 0]); _local3 = new ColorMatrixFilter(_local1); _local4 = new BlurFilter(2, 2); _local5 = new Matrix(1, 0, 0, 1, m_currLevel.x, m_currLevel.y); _local6 = new BitmapData(Preloader.stageWidth, Preloader.stageHeight); _local6.draw(m_currLevel, _local5); _local6.applyFilter(_local6, _local6.rect, new Point(0, 0), _local3); _local6.applyFilter(_local6, _local6.rect, new Point(0, 0), _local4); _local7 = new Bitmap(_local6); _local7.x = (-(Preloader.stageWidth) / 2); _local7.y = (-(Preloader.stageHeight) / 2); _local7.name = "screenBitmap"; pauseSprite.addChildAt(_local7, 0); pauseSprite.visible = true; pauseSprite.RefreshSoundButtons(); removeEventListener(Event.ENTER_FRAME, Update); sound.StopFX(); } else { Tweener.resumeAllTweens(); pauseSprite.removeChild(pauseSprite.getChildByName("screenBitmap")); pauseSprite.visible = false; addEventListener(Event.ENTER_FRAME, Update, false, 0, true); }; sound.Play(SoundID.PAUSE); } public function restartButtonClickHandler(_arg1:MouseEvent):void{ Restart(); sound.Play(SoundID.MENU_SELECT); } function frame1(){ menuButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); restartButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); kingInGameButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); walktroughButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); menuButton.addEventListener(MouseEvent.CLICK, menuButtonClickHandler, false, 0, true); restartButton.addEventListener(MouseEvent.CLICK, restartButtonClickHandler, false, 0, true); kingInGameButton.addEventListener(MouseEvent.CLICK, kingInGameButtonClickHandler, false, 0, true); walktroughButton.addEventListener(MouseEvent.CLICK, walktroughButtonClickHandler, false, 0, true); } public function SetLevel(_arg1:int):void{ sound.StopFX(); if (m_currLevel){ removeChild(m_currLevel); m_currLevel.PrepearToDie(); m_currLevel = null; }; m_currId = _arg1; var _local2:Class = (Preloader.stageLoaderInfo.applicationDomain.getDefinition(("Levels.Level_" + m_currId.toString())) as Class); m_currLevel = (getWR(new (_local2)).object as Level); addChildAt(m_currLevel, 0); RefreshBoard(); } public function walktroughButtonClickHandler(_arg1:MouseEvent):void{ KingAPI.openSignLink(); Preloader.sound.Play(SoundID.MENU_SELECT); } public function RefreshBoard():void{ var _local1:NumberFormat = new NumberFormat("00000"); var _local2:NumberFormat = new NumberFormat("00"); levelText.text = ("Level " + _local2.format(m_currId)); starText.text = ((Level.starsCollected + "/") + m_currLevel.starsNeed); scoreText.text = _local1.format(Preloader.score); } private function Restart():void{ if (pause){ Pause(); }; Preloader.score = (Preloader.score - 100); Level.diesOnThisLevel++; SetLevel(m_currId); } public function Update(_arg1:Event):void{ m_currLevel.Update(_arg1); switch (m_currLevel.GetStatus()){ case LevelStatus.LOSE: Preloader.score = (Preloader.score - 100); Level.diesOnThisLevel++; SetLevel(m_currId); break; case LevelStatus.WIN: m_currId++; Preloader.levelStart = m_currId; if (Preloader.levelAvailable < m_currId){ Preloader.levelAvailable = m_currId; Preloader.levelSave.data.levelAvailable = Preloader.levelAvailable; Preloader.levelSave.flush(100); }; ResetLevelsInfo(); if (m_currId <= Preloader.levelTotal){ if ((((((m_currId == 5)) || ((m_currId == 10)))) || ((m_currId == 15)))){ QuitTo("selectLevelMenu", true); } else { SetLevel(m_currId); }; } else { if (Preloader.bonusPlaying){ if (m_currId <= (Preloader.levelTotal + Preloader.bonusTotal)){ SetLevel(m_currId); } else { QuitTo("afterBonusLevelsComics"); }; } else { if (Preloader.scoreAvailable){ switch (Preloader.scoreID){ case ScoreID.KING: KingAPI.submitScore(Preloader.score); break; case ScoreID.KONGREGATE: kongregate = KongregateAPI.getInstance(); kongregate.stats.submit("Score", Preloader.score); break; }; }; QuitTo("afterGameComics"); }; }; break; }; } public function menuButtonClickHandler(_arg1:MouseEvent):void{ Pause(); } private function getWR(_arg1):WeakReference{ return (new WeakReference(_arg1)); } } }//package
Section 247
//GameObject (GameObject) package { import Box2D.Dynamics.*; import flash.display.*; import Types.*; import caurina.transitions.*; public class GameObject extends MovieClip { public var clip:MovieClip; private var levelIn:Level; public var type:int; private var objParams:Array; public function GameObject(_arg1:MovieClip, _arg2:int, _arg3:Array):void{ var _local4:Boolean; objParams = new Array(); super(); clip = _arg1; type = _arg2; levelIn = (clip.parent as Level); objParams = _arg3.slice(); switch (type){ case ObjectType.BUTTON: clip.stop(); if ((_arg3[0] is b2Body)){ objParams[0] = _arg3[0]; } else { objParams[0] = levelIn.GetBodyByClip(_arg3[0]); }; break; case ObjectType.CHECKPOINT: clip.stop(); if (Level.lastCheckNum >= objParams[0]){ clip.gotoAndStop(10); }; break; case ObjectType.FLAG: clip.stop(); break; case ObjectType.STAR: _local4 = false; if (objParams[0] > ((Level.lastCheckNum == 0)) ? -1 : levelIn.starCheckPoint[(Level.lastCheckNum - 1)]){ _local4 = true; } else { if (Level.starsCollectedNumbers.indexOf(objParams[0]) == -1){ _local4 = true; }; }; if (_local4){ if (Level.starsCollectedNumbers.indexOf(objParams[0]) != -1){ Level.starsCollectedNumbers.splice(Level.starsCollectedNumbers.indexOf(objParams[0]), 1); Preloader.score = (Preloader.score - 100); }; objParams.push(true); Level.starsCollected = Level.starsCollectedNumbers.length; break; } else { levelIn.DestroyObject(this); }; break; }; } public function Update():void{ var _local1:int; switch (type){ case ObjectType.PIN: if (levelIn.player.HitTestObjectControlPoints(clip, ((levelIn.id == 12)) ? true : false)){ levelIn.player.Kill(); }; break; case ObjectType.BUTTON: if (((levelIn.player.HitTestObjectControlPoints(clip)) && ((clip.currentFrame == 1)))){ clip.gotoAndStop(2); switch (objParams[1]){ case ButtonAction.DESTROY: levelIn.DestroyBody(objParams[0]); break; case ButtonAction.FALL: levelIn.CreateBody(objParams[0].m_userData.clip, BodyType.STANDART, objParams[0].m_userData.geomType, objParams[0].m_userData.bodyParams, objParams[0].m_userData.geomParams); levelIn.m_world.DestroyBody(objParams[0]); break; }; }; break; case ObjectType.FLAG: if (((levelIn.player.HitTestObjectControlPoints(clip)) && ((clip.currentFrame == 1)))){ if ((((Level.starsCollected >= levelIn.starsNeed)) && (levelIn.levelWinTerm))){ clip.play(); levelIn.SetStatus(LevelStatus.WIN); levelIn.sound.Play(SoundID.FLAG); } else { if (((((!((levelIn.id == 20))) && (!((levelIn.id == 10))))) && (!((levelIn.id == 23))))){ if (levelIn.player.Tell((("You need to collect " + (levelIn.starsNeed - Level.starsCollected)) + " more stars."))){ levelIn.sound.Play(SoundID.NOT_AVAILABLE); }; }; if ((((levelIn.id == 23)) && (!(levelIn.levelWinTerm)))){ if (levelIn.player.Tell("Kick the golf ball into the hole.")){ levelIn.sound.Play(SoundID.NOT_AVAILABLE); }; }; }; }; if (clip.currentFrame == 20){ clip.stop(); }; break; case ObjectType.CHECKPOINT: if (((levelIn.player.HitTestObjectControlPoints(clip)) && ((clip.currentFrame == 1)))){ if (objParams[0] > Level.lastCheckNum){ Level.lastCheckNum = objParams[0]; levelIn.sound.Play(SoundID.CHECKPOINT); }; clip.play(); }; if (clip.currentFrame == 10){ clip.stop(); }; break; case ObjectType.STAR: if (((levelIn.player.hitTestObject(clip)) && (objParams[1]))){ Level.starsCollected++; Preloader.score = (Preloader.score + 100); levelIn.sound.Play(SoundID.STAR_COLLECT); _local1 = 0; while (_local1 < levelIn.checkPointsNum) { if (objParams[0] <= levelIn.starCheckPoint[_local1]){ Level.starsCollectedNumbers.push(objParams[0]); break; }; _local1++; }; (levelIn.parent as Game).RefreshBoard(); objParams[1] = false; Tweener.addTween(clip, {scaleX:0, scaleY:0, time:0.5, transition:"easeOutQuart"}); }; if (clip.scaleX == 0){ levelIn.DestroyObject(this); }; break; }; } } }//package
Section 248
//HelpText (HelpText) package { import flash.display.*; import flash.text.*; public dynamic class HelpText extends MovieClip { public var text:TextField; } }//package
Section 249
//JumpFX (JumpFX) package { import flash.media.*; public dynamic class JumpFX extends Sound { } }//package
Section 250
//Level (Level) package { import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import com.boristhebrave.Box2D.Controllers.*; import flash.display.*; import flash.events.*; import Box2D.Dynamics.Contacts.*; import flash.geom.*; import Info.*; import Types.*; import flash.utils.*; import caurina.transitions.*; import flash.ui.*; public class Level extends Sprite { protected var m_controllers:Array; public var sound:SoundManager; private var m_boundaryListener:b2BoundaryListener; private var blueBall:BlueBall; public var starsNeed:int;// = 0 public var m_ground:b2Body; public var id:int; public var dialogues:Array; public var killHeight:Number;// = 5000 private var Left:Boolean;// = false public var background:Sprite; private var jumpTimer:Timer; public var m_joint:Sprite; private var Up:Boolean;// = false public var m_world:b2World; public var levelWinTerm:Boolean;// = true private var Down:Boolean;// = false public var filterListener:BodyContactFilter; protected var playerStartPosition:Point; protected var m_bodies:Array; public var m_sprite:Sprite; public var starCheckPoint:Array; public var player:Player; private var m_objects:Array; public var contactListener:BodyContactListener; public var status:int; public var checkPointsNum:int;// = 0 private var Right:Boolean;// = false public static const m_physScale:Number = 30; public static const m_timeStep:Number = 0.0333333333333333; public static const m_iterations:int = 10; public static var starsCollectedNumbers:Array = new Array(); public static var instructions:Array = [false, false, false, false, false]; public static var starsCollected:int = 0; public static var lastCheckNum:int = 0; public static var diesOnThisLevel:int = 0; public function Level():void{ starCheckPoint = new Array(); m_joint = new Sprite(); contactListener = new BodyContactListener(); filterListener = new BodyContactFilter(); m_boundaryListener = new b2BoundaryListener(); m_objects = new Array(); m_bodies = new Array(); m_controllers = new Array(); dialogues = [false]; sound = Preloader.sound; super(); m_sprite = this; m_joint.x = 0; m_joint.y = 0; m_sprite.addChild(m_joint); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-1000, -1000); _local1.upperBound.Set(1000, 1000); var _local2:b2Vec2 = new b2Vec2(0, 10); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); m_ground = m_world.GetGroundBody(); m_world.SetContactListener(contactListener); m_world.SetContactFilter(filterListener); m_world.SetBoundaryListener(m_boundaryListener); var _local4:b2DebugDraw = new b2DebugDraw(); _local4.m_sprite = m_joint; _local4.m_drawScale = m_physScale; _local4.m_fillAlpha = 1; _local4.m_lineThickness = 1; m_world.SetDebugDraw(_local4); CreateFinishedObjects(); var _local5:* = getChildByName(("checkPoint" + lastCheckNum.toString())); playerStartPosition = new Point((_local5.x - 20), _local5.y); player = new Player(playerStartPosition, this); jumpTimer = new Timer(500, 1); SetControl(); var _local6:Rectangle = getBounds(this); killHeight = ((_local6.y + _local6.height) + 250); background = new Background(); background.x = playerStartPosition.x; background.y = playerStartPosition.y; background.cacheAsBitmap = true; m_sprite.addChildAt(background, 0); SetStatus(LevelStatus.PLAY); if (((((!(Preloader.scoreAvailable)) && (!(instructions[3])))) && (!(Preloader.bonusPlaying)))){ player.Tell("Start from level 1 to submit score."); instructions[3] = true; }; if (((!((Level.diesOnThisLevel == 0))) && (((Level.diesOnThisLevel % 5) == 0)))){ player.Tell("See walktrough on King.com"); }; } protected function CreateObject(_arg1:MovieClip, _arg2:int, _arg3:Array):GameObject{ var _local4:GameObject = new GameObject(_arg1, _arg2, _arg3); m_objects.push(_local4); return (_local4); } private function CreateFinishedObjects():void{ var _local2:int; var _local3:*; var _local1:int; _local2 = 0; while (_local2 < numChildren) { _local3 = getChildAt(_local2); if ((((_local3 is Pin)) || ((_local3 is Pin10)))){ CreateObject(_local3, ObjectType.PIN, []); }; if ((_local3 is Flag)){ CreateObject(_local3, ObjectType.FLAG, []); }; _local2++; }; _local2 = 0; while (_local2 < 10) { _local3 = getChildByName(("checkPoint" + _local2.toString())); if (_local3){ CreateObject(_local3, ObjectType.CHECKPOINT, [_local2]); } else { checkPointsNum = _local2; break; }; _local2++; }; _local2 = 0; while (_local2 < 30) { if (!getChildByName(("star" + _local2.toString()))){ starsNeed = _local2; break; }; _local2++; }; switch (id){ case 2: starCheckPoint = [4, 5]; break; case 3: starCheckPoint = [2, 4, 6]; break; case 4: starCheckPoint = [3, 8]; break; case 6: starCheckPoint = [7, 11]; break; case 13: starCheckPoint = [7, 10]; break; case 16: starCheckPoint = [1, 4]; break; default: starCheckPoint = [(starsNeed - 1)]; break; }; _local2 = 0; while (_local2 < 30) { _local3 = getChildByName(("star" + _local2.toString())); if (_local3){ CreateObject(_local3, ObjectType.STAR, [_local2]); } else { break; }; _local2++; }; } public function BodyInBuoyancy(_arg1:b2Body, _arg2:int=-1, _arg3:b2Controller=null):Boolean{ var _local4:b2Controller; for each (_local4 in m_controllers) { if ((((((_local4.m_userData.controllerType == ControllerType.BUOYANCY)) && (!((_local4 == _arg3))))) && ((((_arg2 == -1)) || (((!((_arg2 == -1))) && ((_local4.m_userData.controllerParams[0] == _arg2)))))))){ if ((_local4 as b2BuoyancyController).GetBodies().indexOf(_arg1) != -1){ return (true); }; }; }; return (false); } private function KeyDownHandler(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case Keyboard.LEFT: case 65: Left = true; break; case Keyboard.RIGHT: case 68: Right = true; break; case Keyboard.UP: case 87: case Keyboard.SPACE: Up = true; break; case Keyboard.DOWN: case 83: Down = true; break; }; } public function GetBodyAtPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=true):Array{ var _local12:b2Shape; var _local13:Boolean; var _local4:Array = new Array(); var _local5:b2Vec2 = new b2Vec2(_arg1, _arg2); var _local6:b2AABB = new b2AABB(); _local6.lowerBound.Set((_arg1 - 0.001), (_arg2 - 0.001)); _local6.upperBound.Set((_arg1 + 0.001), (_arg2 + 0.001)); var _local7 = 10; var _local8:Array = new Array(); var _local9:int = m_world.Query(_local6, _local8, _local7); var _local10:b2Body; var _local11:int; while (_local11 < _local9) { if ((((_local8[_local11].GetBody().IsStatic() == false)) || (_arg3))){ _local12 = (_local8[_local11] as b2Shape); _local13 = (_local8[_local11] as b2Shape).TestPoint(_local12.GetBody().GetXForm(), _local5); if (_local13){ _local10 = _local12.GetBody(); _local4.push(_local10); }; }; _local11++; }; return (_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body; var _local3:b2Body; var _local8:b2PulleyJoint; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:int; var _local13:int; var _local14:Rectangle; var _local15:Rectangle; _local2 = _arg1.m_body1; _local3 = _arg1.m_body2; var _local4:b2Vec2 = _local2.GetPosition(); var _local5:b2Vec2 = _local3.GetPosition(); var _local6:b2Vec2 = _arg1.GetAnchor1(); var _local7:b2Vec2 = _arg1.GetAnchor2(); switch (_arg1.m_type){ case b2Joint.e_distanceJoint: DrawRope(new Point((_local6.x * m_physScale), (_local6.y * m_physScale)), new Point((_local7.x * m_physScale), (_local7.y * m_physScale))); break; case b2Joint.e_revoluteJoint: DrawNail(new Point((_local7.x * m_physScale), (_local7.y * m_physScale)), 2); break; case b2Joint.e_pulleyJoint: _local8 = (_arg1 as b2PulleyJoint); _local9 = _local8.GetGroundAnchor1(); _local10 = _local8.GetGroundAnchor2(); _local11 = 20; _local12 = 3; _local13 = 3; _local14 = _local2.m_userData.clip.getBounds(this); _local15 = _local3.m_userData.clip.getBounds(this); DrawRope(new Point((_local9.x * m_physScale), (_local9.y * m_physScale)), new Point((_local6.x * m_physScale), (_local14.y - _local11)), (_local8.GetLength1() * m_physScale)); DrawRope(new Point((_local6.x * m_physScale), (_local14.y - _local11)), new Point((_local14.x + _local12), (_local14.y + _local13))); DrawRope(new Point((_local6.x * m_physScale), (_local14.y - _local11)), new Point(((_local14.x + _local14.width) - _local12), (_local14.y + _local13))); DrawNail(new Point((_local6.x * m_physScale), (_local14.y - _local11))); DrawNail(new Point((_local14.x + _local12), (_local14.y + _local13))); DrawNail(new Point(((_local14.x + _local14.width) - _local12), (_local14.y + _local13))); DrawRope(new Point((_local10.x * m_physScale), (_local10.y * m_physScale)), new Point((_local7.x * m_physScale), (_local15.y - _local11)), (_local8.GetLength2() * m_physScale)); DrawRope(new Point((_local7.x * m_physScale), (_local15.y - _local11)), new Point((_local15.x + _local12), (_local15.y + _local13))); DrawRope(new Point((_local7.x * m_physScale), (_local15.y - _local11)), new Point(((_local15.x + _local15.width) - _local12), (_local15.y + _local13))); DrawNail(new Point((_local7.x * m_physScale), (_local15.y - _local11))); DrawNail(new Point((_local15.x + _local12), (_local15.y + _local13))); DrawNail(new Point(((_local15.x + _local15.width) - _local12), (_local15.y + _local13))); DrawRope(new Point((_local9.x * m_physScale), (_local9.y * m_physScale)), new Point((_local10.x * m_physScale), (_local10.y * m_physScale)), (_local8.GetLength2() * m_physScale)); DrawNail(new Point(((_local9.x * m_physScale) + 2), ((_local9.y * m_physScale) + 2)), 5); DrawNail(new Point(((_local10.x * m_physScale) - 2), ((_local10.y * m_physScale) + 2)), 5); break; }; } public function DrawRope(_arg1:Point, _arg2:Point, _arg3:Number=1):void{ var _local17:Point; var _local4:Number = (_arg2.x - _arg1.x); var _local5:Number = (_arg2.y - _arg1.y); var _local6:Number = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); var _local7:Number = Math.acos((_local4 / _local6)); var _local8:Number = 3; var _local9:Number = ((_local8 / 2) * Math.cos(_local7)); var _local10:Number = ((_local8 / 2) * Math.sin(_local7)); m_joint.graphics.lineStyle(0.5, 0x333333, 1); m_joint.graphics.beginFill(13147213, 1); m_joint.graphics.moveTo((_arg1.x + _local10), (_arg1.y - _local9)); m_joint.graphics.lineTo((_arg1.x - _local10), (_arg1.y + _local9)); m_joint.graphics.lineTo((_arg2.x - _local10), (_arg2.y + _local9)); m_joint.graphics.lineTo((_arg2.x + _local10), (_arg2.y - _local9)); m_joint.graphics.endFill(); var _local11:Number = 12; var _local12:Number = (Math.PI / 10); var _local13:Number = (_local8 / (2 * Math.sin(_local12))); var _local14:Number = (_local13 * Math.cos(((Math.PI - _local7) - _local12))); var _local15:Number = (_local13 * Math.sin(((Math.PI - _local7) - _local12))); m_joint.graphics.lineStyle(0.25, 0x333333, 0.5); var _local16:Number = ((_local11 / 2) + (_arg3 % _local11)); while (_local16 < _local6) { _local17 = new Point((_arg1.x + (_local16 * Math.cos(_local7))), (_arg1.y + (_local16 * Math.sin(_local7)))); m_joint.graphics.moveTo((_local17.x - _local14), (_local17.y + _local15)); m_joint.graphics.lineTo((_local17.x + _local14), (_local17.y - _local15)); _local16 = (_local16 + _local11); }; } private function loseStatusTimerHandler(_arg1:TimerEvent):void{ status = LevelStatus.LOSE; } public function DestroyController(_arg1:b2Controller):void{ var _local2:int = m_controllers.indexOf(_arg1); if (_local2 != -1){ m_controllers.splice(_local2, 1); }; if (((((_arg1.m_userData.clip) && (_arg1.m_userData.clip.parent))) && (_arg1.m_userData.clip.parent.contains(_arg1.m_userData.clip)))){ _arg1.m_userData.clip.parent.removeChild(_arg1.m_userData.clip); }; } public function DrawNail(_arg1:Point, _arg2:Number=2):void{ m_joint.graphics.lineStyle(1, 0x444444, 1); m_joint.graphics.beginFill(0xBBBBBB, 1); m_joint.graphics.drawCircle(_arg1.x, _arg1.y, _arg2); m_joint.graphics.endFill(); m_joint.graphics.lineStyle(); m_joint.graphics.beginFill(0, 1); m_joint.graphics.drawCircle(_arg1.x, _arg1.y, 1); m_joint.graphics.endFill(); } public function DestroyBody(_arg1:b2Body, _arg2:Boolean=false):void{ contactListener.RemoveBodyPoints(_arg1); if (m_bodies.indexOf(_arg1) != -1){ m_bodies.splice(m_bodies.indexOf(_arg1), 1); }; if (_arg2){ Tweener.addTween(_arg1.m_userData.clip, {scaleX:0, scaleY:0, time:0.5, transition:"easeOutQuart"}); sound.Play(SoundID.REMOVE); } else { if (((((((_arg1.m_userData) && (_arg1.m_userData.clip))) && (_arg1.m_userData.clip.parent))) && (_arg1.m_userData.clip.parent.contains(_arg1.m_userData.clip)))){ _arg1.m_userData.clip.parent.removeChild(_arg1.m_userData.clip); }; }; m_world.DestroyBody(_arg1); } public function PrepearToDie():void{ var _local3:int; jumpTimer.stop(); Tweener.removeAllTweens(); Preloader.stageLink.removeEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandler); Preloader.stageLink.removeEventListener(KeyboardEvent.KEY_UP, KeyUpHandler); var _local1:b2Body = m_world.m_bodyList; while (_local1) { DestroyBody(_local1); _local1 = _local1.m_next; }; var _local2:b2Joint = m_world.m_jointList; while (_local2) { DestroyJoint(_local2); _local2 = _local2.m_next; }; _local3 = 0; while (_local3 < m_controllers.length) { DestroyController(m_controllers[_local3]); _local3++; }; _local3 = 0; while (_local3 < m_objects.length) { DestroyObject(m_objects[_local3]); _local3++; }; _local3 = 0; while (_local3 < numChildren) { removeChildAt(_local3); _local3++; }; id = null; status = null; killHeight = null; starsNeed = null; player = null; playerStartPosition = null; Left = null; Right = null; Up = null; Down = null; jumpTimer = null; m_world = null; m_sprite = null; m_joint = null; m_ground = null; contactListener = null; filterListener = null; m_boundaryListener = null; m_objects = null; m_bodies = null; m_controllers = null; background = null; starCheckPoint = null; } private function KeyUpHandler(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case Keyboard.LEFT: case 65: Left = false; break; case Keyboard.RIGHT: case 68: Right = false; break; case Keyboard.UP: case 87: case Keyboard.SPACE: Up = false; break; case Keyboard.DOWN: case 83: Down = false; break; }; } public function DestroyObject(_arg1:GameObject):void{ var _local2:int = m_objects.indexOf(_arg1); if (_local2 != -1){ m_objects.splice(_local2, 1); }; var _local3:b2Body = GetBodyByClip(_arg1.clip); if (_local3){ DestroyBody(_local3); } else { if (((((_arg1.clip) && (_arg1.clip.parent))) && (_arg1.clip.parent.contains(_arg1.clip)))){ _arg1.clip.parent.removeChild(_arg1.clip); }; }; } protected function SetBodiesFilter(_arg1:Array, _arg2:int):void{ var _local5:b2Body; var _local6:b2Shape; var _local3:b2FilterData = new b2FilterData(); _local3.groupIndex = _arg2; var _local4:int; while (_local4 < _arg1.length) { if ((_arg1[_local4] is b2Body)){ _local5 = _arg1[_local4]; } else { _local5 = GetBodyByClip(_arg1[_local4]); }; _local6 = _local5.m_shapeList; while (_local6) { _local6.SetFilterData(_local3); m_world.Refilter(_local6); _local6 = _local6.m_next; }; _local4++; }; } public function CreateSimpleJoint(_arg1, _arg2:int, _arg3:Array):b2Joint{ var _local4:b2Joint; var _local5:JointInfo; var _local6:b2DistanceJointDef; var _local7:Number; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Body; var _local11:b2Body; var _local12:b2RevoluteJointDef; var _local13:b2Vec2; var _local14:b2PrismaticJointDef; var _local15:b2Vec2; _local5 = new JointInfo(null, _arg2, _arg3); switch (_arg2){ case JointType.DISTANCE: _local6 = new b2DistanceJointDef(); _local7 = _arg3[0]; _local8 = _arg1[0]; _local9 = _arg1[1]; _local10 = GetBodyAtPoint(_local8.x, _local8.y)[0]; _local11 = GetBodyAtPoint(_local9.x, _local9.y)[0]; if (_local10 == null){ _local10 = m_ground; }; if (_local11 == null){ _local11 = m_ground; }; _local6.Initialize(_local10, _local11, _local8, _local9); _local4 = m_world.CreateJoint(_local6); break; case JointType.REVOLUTE: _local12 = new b2RevoluteJointDef(); _local13 = _arg1[0]; _local10 = GetBodyAtPoint(_local13.x, _local13.y)[1]; _local11 = GetBodyAtPoint(_local13.x, _local13.y)[0]; if (_local10 == null){ _local10 = m_ground; }; if (_local11 == null){ _local11 = m_ground; }; _local12.enableMotor = _arg3[0]; _local12.enableLimit = _arg3[1]; if (_local12.enableMotor){ _local12.motorSpeed = _arg3[2]; _local12.maxMotorTorque = _arg3[3]; }; if (_local12.enableLimit){ _local12.lowerAngle = ((_arg3[4] * Math.PI) / 180); _local12.upperAngle = ((_arg3[5] * Math.PI) / 180); }; _local12.Initialize(_local10, _local11, _local13); _local4 = m_world.CreateJoint(_local12); break; case JointType.PRISMATIC: _local14 = new b2PrismaticJointDef(); if (_arg1[0] == "By2Points"){ _local8 = _arg1[1]; _local9 = _arg1[2]; _local15 = new b2Vec2((_local9.x - _local8.x), (_local9.y - _local8.y)); _local15 = new b2Vec2((_local15.x / _local15.Length()), (_local15.y / _local15.Length())); _local10 = GetBodyAtPoint(_local9.x, _local9.y)[0]; _local11 = GetBodyAtPoint(_local8.x, _local8.y)[0]; }; if (_arg1[0] == "ByAxis"){ _local10 = _arg1[1]; _local11 = m_ground; _local15 = _arg1[2]; _local15 = new b2Vec2((_local15.x / _local15.Length()), (_local15.y / _local15.Length())); _local8 = _local10.GetPosition(); }; if (_local10 == null){ _local10 = m_ground; }; if (_local11 == null){ _local11 = m_ground; }; _local14.enableMotor = _arg3[0]; _local14.enableLimit = _arg3[1]; if (_local14.enableMotor){ _local14.motorSpeed = _arg3[2]; _local14.maxMotorForce = _arg3[3]; }; if (_local14.enableLimit){ _local14.lowerTranslation = _arg3[4]; _local14.upperTranslation = _arg3[5]; }; _local14.Initialize(_local10, _local11, _local8, _local15); _local4 = m_world.CreateJoint(_local14); break; }; _local4.m_userData = _local5; return (_local4); } public function GetStatus():int{ return (status); } public function OutControl():void{ Preloader.stageLink.removeEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandler); Preloader.stageLink.removeEventListener(KeyboardEvent.KEY_UP, KeyUpHandler); Left = false; Right = false; Up = false; if (id != 25){ player.body.m_linearDamping = 5; }; } public function DestroyJoint(_arg1:b2Joint):void{ if (((((((_arg1.m_userData) && (_arg1.m_userData.clip))) && (_arg1.m_userData.clip.parent))) && (_arg1.m_userData.clip.parent.contains(_arg1.m_userData.clip)))){ _arg1.m_userData.clip.parent.removeChild(_arg1.m_userData.clip); }; m_world.DestroyJoint(_arg1); } private function winStatusTimerHandler(_arg1:TimerEvent):void{ status = LevelStatus.WIN; } public function SetStatus(_arg1:int):void{ var _local2:Timer; var _local3:Timer; switch (_arg1){ case LevelStatus.PLAY: status = LevelStatus.PLAY; break; case LevelStatus.WIN: OutControl(); player.smile.gotoAndPlay("winSmile"); _local2 = new Timer(1500, 1); _local2.addEventListener(TimerEvent.TIMER, winStatusTimerHandler, false, 0, true); _local2.start(); break; case LevelStatus.LOSE: OutControl(); _local3 = new Timer(1000, 1); _local3.addEventListener(TimerEvent.TIMER, loseStatusTimerHandler, false, 0, true); _local3.start(); break; }; } public function CreateJoint(_arg1:Array, _arg2:int, _arg3:Array):b2Joint{ var _local4:Array; var _local5:int; var _local6:b2Joint; var _local7:JointInfo; var _local8:b2DistanceJointDef; var _local9:Number; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Body; var _local13:b2Body; var _local14:b2RevoluteJointDef; var _local15:b2Vec2; var _local16:b2PrismaticJointDef; var _local17:b2Vec2; var _local18:b2PulleyJointDef; var _local19:b2Vec2; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Vec2; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2GearJointDef; _local4 = new Array(); _local5 = 0; while (_local5 < _arg1.length) { if ((_arg1[_local5] is MovieClip)){ _local4.push(_arg1[_local5]); } else { _local4.push((this.getChildByName(_arg1[_local5]) as MovieClip)); }; _local5++; }; _local7 = new JointInfo(_local4, _arg2, _arg3); switch (_arg2){ case JointType.DISTANCE: _local8 = new b2DistanceJointDef(); _local9 = _arg3[0]; _local10 = new b2Vec2((_local4[0].x / m_physScale), (_local4[0].y / m_physScale)); _local11 = new b2Vec2(((_local4[0].x + (_local9 * Math.cos(((_local4[0].rotation * Math.PI) / 180)))) / m_physScale), ((_local4[0].y + (_local9 * Math.sin(((_local4[0].rotation * Math.PI) / 180)))) / m_physScale)); _local12 = GetBodyAtPoint(_local10.x, _local10.y)[0]; _local13 = GetBodyAtPoint(_local11.x, _local11.y)[0]; if (_local12 == null){ _local12 = m_ground; }; if (_local13 == null){ _local13 = m_ground; }; _local8.Initialize(_local12, _local13, _local10, _local11); _local6 = m_world.CreateJoint(_local8); break; case JointType.REVOLUTE: _local14 = new b2RevoluteJointDef(); _local15 = new b2Vec2((_local4[0].x / m_physScale), (_local4[0].y / m_physScale)); _local12 = GetBodyAtPoint(_local15.x, _local15.y)[1]; _local13 = GetBodyAtPoint(_local15.x, _local15.y)[0]; if (_local12 == null){ _local12 = m_ground; }; if (_local13 == null){ _local13 = m_ground; }; _local14.enableMotor = _arg3[0]; _local14.enableLimit = _arg3[1]; if (_local14.enableMotor){ _local14.motorSpeed = _arg3[2]; _local14.maxMotorTorque = _arg3[3]; }; if (_local14.enableLimit){ _local14.lowerAngle = ((_arg3[4] * Math.PI) / 180); _local14.upperAngle = ((_arg3[5] * Math.PI) / 180); }; _local14.Initialize(_local12, _local13, _local15); _local6 = m_world.CreateJoint(_local14); break; case JointType.PRISMATIC: _local16 = new b2PrismaticJointDef(); _local10 = new b2Vec2((_local4[0].x / m_physScale), (_local4[0].y / m_physScale)); _local11 = new b2Vec2(((_local4[0].x + (100 * Math.cos(((_local4[0].rotation * Math.PI) / 180)))) / m_physScale), ((_local4[0].y + (100 * Math.sin(((_local4[0].rotation * Math.PI) / 180)))) / m_physScale)); _local12 = GetBodyAtPoint(_local11.x, _local11.y)[0]; _local13 = GetBodyAtPoint(_local10.x, _local10.y)[0]; if (_local12 == null){ _local12 = m_ground; }; if (_local13 == null){ _local13 = m_ground; }; _local17 = new b2Vec2((_local11.x - _local10.x), (_local11.y - _local10.y)); _local17 = new b2Vec2((_local17.x / _local17.Length()), (_local17.y / _local17.Length())); _local16.enableMotor = _arg3[0]; _local16.enableLimit = _arg3[1]; if (_local16.enableMotor){ _local16.motorSpeed = _arg3[2]; _local16.maxMotorForce = _arg3[3]; }; if (_local16.enableLimit){ _local16.lowerTranslation = (_arg3[4] / m_physScale); _local16.upperTranslation = (_arg3[5] / m_physScale); }; _local16.Initialize(_local12, _local13, _local10, _local17); _local6 = m_world.CreateJoint(_local16); break; case JointType.PULLEY: _local18 = new b2PulleyJointDef(); _local19 = new b2Vec2((_local4[0].x / m_physScale), (_local4[0].y / m_physScale)); _local20 = new b2Vec2((_local4[1].x / m_physScale), (_local4[1].y / m_physScale)); _local21 = new b2Vec2((_local4[0].x / m_physScale), ((_local4[0].y + _local4[0].height) / m_physScale)); _local22 = new b2Vec2((_local4[1].x / m_physScale), ((_local4[1].y + _local4[1].height) / m_physScale)); _local12 = GetBodyAtPoint(_local21.x, _local21.y)[0]; if (_local12 == null){ _local12 = m_ground; }; _local13 = GetBodyAtPoint(_local22.x, _local22.y)[0]; if (_local13 == null){ _local13 = m_ground; }; _local23 = _arg3[0]; _local24 = (_local4[0].height / m_physScale); _local25 = (_local4[1].height / m_physScale); _local18.Initialize(_local12, _local13, _local19, _local20, _local21, _local22, _local23); _local18.maxLength1 = (_local24 + _local25); _local18.maxLength2 = (_local24 + _local25); _local6 = m_world.CreateJoint(_local18); break; case JointType.GEAR: _local26 = new b2GearJointDef(); _local26.joint1 = GetJointByClip(_local4[0]); _local26.joint2 = GetJointByClip(_local4[1]); _local26.body1 = _local26.joint1.GetBody2(); _local26.body2 = _local26.joint2.GetBody2(); _local26.ratio = _arg3[0]; _local6 = m_world.CreateJoint(_local26); break; case JointType.REVOLUTE_ANGLE_TARGET: _local6 = CreateJoint(_arg1, JointType.REVOLUTE, [true, false, 0, 0]); break; }; _local6.m_userData = _local7; _local5 = 0; while (_local5 < _local4.length) { if (m_sprite.contains(_local4[_local5])){ m_sprite.removeChild(_local4[_local5]); }; _local5++; }; return (_local6); } protected function CreateController(_arg1:Array, _arg2:int, _arg3:Array):b2Controller{ var _local4:Array; var _local5:int; var _local7:b2SpringController; var _local8:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Body; var _local12:b2Body; var _local13:b2BuoyancyController; var _local14:b2GravityController; _local4 = new Array(); _local5 = 0; while (_local5 < _arg1.length) { if ((_arg1[_local5] is MovieClip)){ _local4.push(_arg1[_local5]); } else { _local4.push((this.getChildByName(_arg1[_local5]) as MovieClip)); }; _local5++; }; var _local6:ControllerInfo = new ControllerInfo(_local4, _arg2, _arg3); switch (_arg2){ case ControllerType.SPRING: _local7 = new b2SpringController(); _local7.m_userData = _local6; _local8 = _arg3[0]; _local9 = new b2Vec2((_local4[0].x / m_physScale), (_local4[0].y / m_physScale)); _local10 = new b2Vec2(((_local4[0].x + (_local8 * Math.cos(((_local4[0].rotation * Math.PI) / 180)))) / m_physScale), ((_local4[0].y + (_local8 * Math.sin(((_local4[0].rotation * Math.PI) / 180)))) / m_physScale)); _local11 = GetBodyAtPoint(_local9.x, _local9.y)[0]; _local12 = GetBodyAtPoint(_local10.x, _local10.y)[0]; if (_local11 == null){ _local11 = m_ground; }; if (_local12 == null){ _local12 = m_ground; }; _local7.SetBody1(_local11); _local7.SetBody2(_local12); _local7.SetAnchor1(_local9); _local7.SetAnchor2(_local10); _local7.length = (_local8 / m_physScale); _local7.damping = _arg3[1]; m_controllers.push(_local7); if (m_sprite.contains(_local4[0])){ m_sprite.removeChild(_local4[0]); }; break; case ControllerType.BUOYANCY: _local13 = new b2BuoyancyController(); _local13.m_userData = _local6; _local13.normal.Set(0, -1); _local13.offset = (-(_local4[0].y) / m_physScale); switch (_arg3[0]){ case Materials.WATER: case Materials.STAR: case Materials.TOXIC: _local13.density = Materials.materialParams[_arg3[0]][0]; _local13.linearDrag = Materials.materialParams[_arg3[0]][1]; _local13.angularDrag = Materials.materialParams[_arg3[0]][2]; break; default: _local13.density = _arg3[1]; _local13.linearDrag = _arg3[2]; _local13.angularDrag = _arg3[3]; break; }; m_controllers.push(_local13); break; case ControllerType.GRAVITY: _local14 = new b2GravityController(); _local14.m_userData = _local6; _local14.G = _arg3[0]; _local14.invSqr = _arg3[1]; _local5 = 0; while (_local5 < _local4.length) { _local14.AddBody(GetBodyByClip(_local4[_local5])); _local5++; }; m_controllers.push(_local14); break; }; return (m_controllers[(m_controllers.length - 1)]); } public function GetControllerByClip(_arg1:MovieClip):b2Controller{ var _local2:int; while (_local2 < m_controllers.length) { if (m_controllers[_local2].m_userData.clip[0] == _arg1){ return (m_controllers[_local2]); }; _local2++; }; return (null); } public function GetJointByClip(_arg1:MovieClip):b2Joint{ var _local2:b2Joint = m_world.m_jointList; while (_local2) { if (_local2.m_userData){ if (_local2.m_userData.clip[0] == _arg1){ return (_local2); }; }; _local2 = _local2.m_next; }; return (null); } public function SetControl():void{ Preloader.stageLink.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandler, false, 0, true); Preloader.stageLink.addEventListener(KeyboardEvent.KEY_UP, KeyUpHandler, false, 0, true); Left = false; Right = false; Up = false; } public function CreateBody(_arg1, _arg2:int, _arg3:int, _arg4:Array, _arg5:Array):b2Body{ var _local6:b2Body; var _local7:BodyInfo; var _local8:b2BodyDef; var _local9:b2PolygonDef; var _local10:b2CircleDef; var _local11:b2PrismaticJointDef; var _local12:MovieClip; var _local13:int; var _local14:int; var _local15:Number; if ((_arg1 is MovieClip)){ _local12 = _arg1; } else { _local12 = (this.getChildByName(_arg1) as MovieClip); }; _local7 = new BodyInfo(_local12, _arg2, _arg3, _arg4, _arg5); _local8 = new b2BodyDef(); _local8.position = new b2Vec2((_local12.x / m_physScale), (_local12.y / m_physScale)); _local8.angle = (_local12.rotation * (Math.PI / 180)); _local8.userData = _local7; if (_local7.bodyParams[0].length >= 2){ _local8.linearDamping = _local7.bodyParams[0][1]; }; if (_local7.bodyParams[0].length >= 3){ _local8.angularDamping = _local7.bodyParams[0][2]; }; if (_local7.bodyParams[0].length >= 4){ _local8.isBullet = _local7.bodyParams[0][3]; }; _local6 = m_world.CreateBody(_local8); switch (_arg3){ case GeomType.POLYGON: _local13 = 0; while (_local13 < _arg5[0].length) { _local9 = new b2PolygonDef(); _local9.vertexCount = _arg5[0][_local13].length; _local14 = 0; while (_local14 < _local9.vertexCount) { _local9.vertices[_local14].Set(((_local12.scaleX * _arg5[0][_local13][_local14][0]) / m_physScale), ((_local12.scaleY * _arg5[0][_local13][_local14][1]) / m_physScale)); _local14++; }; switch (_arg2){ case BodyType.STATIC: case BodyType.DROP: case BodyType.DISAP: _local9.density = 0; break; default: if ((_arg4[1] is Array)){ _local9.density = _arg4[1][0]; } else { _local9.density = Materials.materialParams[_arg4[1]][0]; }; break; }; if ((_arg4[1] is Array)){ _local9.friction = _arg4[1][1]; _local9.restitution = _arg4[1][2]; } else { _local9.friction = Materials.materialParams[_arg4[1]][1]; _local9.restitution = Materials.materialParams[_arg4[1]][2]; }; _local6.CreateShape(_local9); _local13++; }; break; case GeomType.CIRCLE: _local10 = new b2CircleDef(); _local10.radius = (((_local12.scaleX * _arg5[0][0]) / m_physScale) / 2); _local10.localPosition.Set(0, 0); switch (_arg2){ case BodyType.STATIC: case BodyType.DROP: case BodyType.DISAP: _local10.density = 0; break; default: if ((_arg4[1] is Array)){ _local10.density = _arg4[1][0]; } else { _local10.density = Materials.materialParams[_arg4[1]][0]; }; break; }; if ((_arg4[1] is Array)){ _local10.friction = _arg4[1][1]; _local10.restitution = _arg4[1][2]; } else { _local10.friction = Materials.materialParams[_arg4[1]][1]; _local10.restitution = Materials.materialParams[_arg4[1]][2]; }; _local6.CreateShape(_local10); break; }; _local6.SetMassFromShapes(); switch (_arg2){ case BodyType.MOVE_X: CreateSimpleJoint(["ByAxis", _local6, new b2Vec2(1, 0)], JointType.PRISMATIC, [false, false]); break; case BodyType.MOVE_Y: CreateSimpleJoint(["ByAxis", _local6, new b2Vec2(0, 1)], JointType.PRISMATIC, [false, false]); break; case BodyType.MOVE_XY: CreateSimpleJoint(["ByAxis", _local6, new b2Vec2((_arg4[2] - _arg4[4]), (_arg4[3] - _arg4[5]))], JointType.PRISMATIC, [false, false]); break; case BodyType.UP_AND_DROP: CreateSimpleJoint(["ByAxis", _local6, new b2Vec2(0, 1)], JointType.PRISMATIC, [false, false]); break; case BodyType.JUMP: _local15 = (((_local12.rotation + 90) * Math.PI) / 180); CreateSimpleJoint(["ByAxis", _local6, new b2Vec2(Math.cos(_local15), Math.sin(_local15))], JointType.PRISMATIC, [true, true, _arg4[3], 0, 0, _arg4[4]]); break; case BodyType.DISAP: _local6.m_userData.bodyParams[2] = 0; }; if (!_local6.IsStatic()){ m_bodies.push(_local6); }; m_sprite.setChildIndex(m_joint, (numChildren - 1)); return (_local6); } public function GetBodyByClip(_arg1):b2Body{ if (!(_arg1 is MovieClip)){ _arg1 = (getChildByName(_arg1) as MovieClip); }; var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.m_userData){ if (_local2.m_userData.clip == _arg1){ return (_local2); }; }; _local2 = _local2.m_next; }; return (null); } public function Update(_arg1:Event):void{ var _local2:b2Body; var _local3:b2Joint; var _local4:b2Controller; var _local5:Array; var _local6:Boolean; var _local7:Boolean; var _local8:Number; var _local9:CustomContactPoint; var _local10:Number; var _local11:CustomContactPoint; var _local12:int; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:b2Body; var _local17:b2Body; var _local18:b2Body; var _local19:b2Shape; var _local20:b2RevoluteJoint; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:MovieClip; var _local26:b2Body; var _local27:b2BuoyancyController; var _local28:Boolean; var _local29:Boolean; var _local30:Point; var _local31:Boolean; var _local32:Boolean; var _local33:*; var _local34:int; var _local35:Number; m_world.Step(m_timeStep, m_iterations); m_joint.graphics.clear(); _local2 = m_world.m_bodyList; while (_local2) { if (_local2.m_userData){ _local2.m_userData.clip.x = (_local2.GetPosition().x * m_physScale); _local2.m_userData.clip.y = (_local2.GetPosition().y * m_physScale); _local2.m_userData.clip.rotation = ((_local2.GetAngle() * (180 / Math.PI)) % 360); if (_local2.m_userData.outBoundary){ DestroyBody(_local2); }; switch (_local2.m_userData.bodyType){ case BodyType.DROP: if (contactListener.Touch(_local2, player.body)){ CreateBody(_local2.m_userData.clip, BodyType.STANDART, _local2.m_userData.geomType, _local2.m_userData.bodyParams, _local2.m_userData.geomParams); contactListener.RemoveBodyPoints(_local2); m_world.DestroyBody(_local2); }; break; case BodyType.MOVE_X: if (_local2.m_userData.clip.x < _local2.m_userData.bodyParams[2]){ _local2.m_userData.bodyParams[4] = 1; }; if (_local2.m_userData.clip.x > _local2.m_userData.bodyParams[3]){ _local2.m_userData.bodyParams[4] = -1; }; _local2.SetLinearVelocity(new b2Vec2((_local2.m_userData.bodyParams[4] * _local2.m_userData.bodyParams[5]), 0)); break; case BodyType.MOVE_Y: if (_local2.m_userData.clip.y < _local2.m_userData.bodyParams[2]){ _local2.m_userData.bodyParams[4] = 1; }; if (_local2.m_userData.clip.y > _local2.m_userData.bodyParams[3]){ _local2.m_userData.bodyParams[4] = -1; }; _local2.SetLinearVelocity(new b2Vec2(0, (_local2.m_userData.bodyParams[4] * _local2.m_userData.bodyParams[5]))); break; case BodyType.MOVE_XY: _local13 = Math.atan(((_local2.m_userData.bodyParams[5] - _local2.m_userData.bodyParams[3]) / (_local2.m_userData.bodyParams[4] - _local2.m_userData.bodyParams[2]))); if (_local2.m_userData.bodyParams[2] < _local2.m_userData.bodyParams[4]){ if (_local2.m_userData.clip.x < _local2.m_userData.bodyParams[2]){ _local2.m_userData.bodyParams[6] = 1; }; if (_local2.m_userData.clip.x > _local2.m_userData.bodyParams[4]){ _local2.m_userData.bodyParams[6] = -1; }; } else { if (_local2.m_userData.clip.x < _local2.m_userData.bodyParams[4]){ _local2.m_userData.bodyParams[6] = 1; }; if (_local2.m_userData.clip.x > _local2.m_userData.bodyParams[2]){ _local2.m_userData.bodyParams[6] = -1; }; }; _local2.SetLinearVelocity(new b2Vec2(((_local2.m_userData.bodyParams[6] * _local2.m_userData.bodyParams[7]) * Math.cos(_local13)), ((_local2.m_userData.bodyParams[6] * _local2.m_userData.bodyParams[7]) * Math.sin(_local13)))); break; case BodyType.UP_AND_DROP: if (_local2.m_userData.clip.y < _local2.m_userData.bodyParams[2]){ _local2.m_userData.bodyParams[4] = 1; }; if (_local2.m_userData.clip.y > _local2.m_userData.bodyParams[3]){ _local2.m_userData.bodyParams[4] = -1; }; if (_local2.m_userData.bodyParams[4] == -1){ _local2.SetLinearVelocity(new b2Vec2(0, (_local2.m_userData.bodyParams[4] * _local2.m_userData.bodyParams[5]))); }; break; case BodyType.JUMP: if (contactListener.Touch(_local2, player.body)){ (_local2.GetJointList().joint as b2PrismaticJoint).SetMaxMotorForce(_local2.m_userData.bodyParams[2]); }; if ((_local2.GetJointList().joint as b2PrismaticJoint).GetJointTranslation() >= (_local2.GetJointList().joint as b2PrismaticJoint).GetUpperLimit()){ (_local2.GetJointList().joint as b2PrismaticJoint).SetMaxMotorForce(0); }; break; case BodyType.LOST: _local14 = (0.25 * _local2.m_userData.bodyParams[3]); _local15 = (0.75 * _local2.m_userData.bodyParams[3]); if (_local2.m_userData.bodyParams[2] >= 0){ _local2.m_userData.bodyParams[2] = (_local2.m_userData.bodyParams[2] - Preloader.frameTime); _local2.m_userData.bodyParams[5] = _local14; _local2.m_userData.bodyParams[6] = true; } else { if (_local2.m_userData.bodyParams[5] > 0){ _local2.m_userData.bodyParams[5] = (_local2.m_userData.bodyParams[5] + Preloader.frameTime); }; if (_local2.m_userData.bodyParams[5] <= 0){ _local2.m_userData.bodyParams[5] = (_local2.m_userData.bodyParams[5] - Preloader.frameTime); }; if (_local2.m_userData.bodyParams[5] > 0){ if (_local2.m_userData.bodyParams[5] <= _local14){ _local2.m_userData.clip.alpha = (_local2.m_userData.bodyParams[5] / _local14); if (_local2.m_userData.bodyParams[5] > (_local14 / 20)){ _local2.m_userData.bodyParams[6] = true; }; }; if (_local2.m_userData.bodyParams[5] >= _local15){ _local2.m_userData.clip.alpha = ((_local2.m_userData.bodyParams[3] - _local2.m_userData.bodyParams[5]) / (_local2.m_userData.bodyParams[3] - _local15)); if (_local2.m_userData.bodyParams[5] > (_local2.m_userData.bodyParams[3] - (_local14 / 20))){ _local2.m_userData.bodyParams[6] = false; _local19 = _local2.m_shapeList; while (_local19) { m_world.Refilter(_local19); contactListener.RemoveBodiesCommonPoints(_local2, player.body); _local19 = _local19.m_next; }; }; }; } else { _local2.m_userData.clip.alpha = 0; }; if (_local2.m_userData.bodyParams[5] > _local2.m_userData.bodyParams[3]){ _local2.m_userData.bodyParams[5] = -1; }; if (_local2.m_userData.bodyParams[5] < -(_local2.m_userData.bodyParams[4])){ _local2.m_userData.bodyParams[5] = 1; }; }; break; case BodyType.DISAP: _local16 = GetBodyAtPoint(player.body.GetPosition().x, (player.body.GetPosition().y + 0.4))[0]; _local17 = GetBodyAtPoint((player.body.GetPosition().x - 0.2), (player.body.GetPosition().y + 0.38))[0]; _local18 = GetBodyAtPoint((player.body.GetPosition().x + 0.2), (player.body.GetPosition().y + 0.38))[0]; if (((contactListener.Touch(_local2, player.body)) && ((((((_local16 == _local2)) || ((_local17 == _local2)))) || ((_local18 == _local2)))))){ var _local36 = _local2.m_userData.bodyParams; var _local37 = 2; var _local38 = (_local36[_local37] + 1); _local36[_local37] = _local38; }; if (((((((((!(contactListener.Touch(_local2, player.body))) && (!((_local16 == _local2))))) && (!((_local17 == _local2))))) && (!((_local18 == _local2))))) && ((_local2.m_userData.bodyParams[2] >= 1)))){ DestroyBody(_local2, true); }; break; }; switch (_local2.m_userData.bodyParams[0]){ case Materials.GLASS: if (contactListener.Touch(_local2, player.body)){ DestroyBody(_local2); }; break; }; if (_local2.m_userData.bodyParams[0].length >= 1){ switch (_local2.m_userData.bodyParams[0][0]){ case Damage.KILL: if (contactListener.Touch(_local2, player.body)){ player.Kill(); }; break; }; }; }; _local2 = _local2.m_next; }; _local3 = m_world.m_jointList; while (_local3) { switch (_local3.m_userData.jointType){ case JointType.REVOLUTE_ANGLE_TARGET: _local20 = (_local3 as b2RevoluteJoint); _local21 = _local20.GetJointAngle(); _local22 = _local3.m_userData.jointParams[1]; _local23 = _local3.m_userData.jointParams[2]; _local24 = _local3.m_userData.jointParams[3]; _local20.SetMaxMotorTorque(Math.abs(((_local21 * _local22) + (_local20.GetJointSpeed() * _local23)))); _local20.SetMotorSpeed(((_local21 > _local3.m_userData.jointParams[0])) ? -(_local24) : _local24); break; }; DrawJoint(_local3); _local3 = _local3.m_next; }; for each (_local4 in m_controllers) { _local4.Step(m_timeStep); if (_local4.m_userData){ switch (_local4.m_userData.controllerType){ case ControllerType.BUOYANCY: _local12 = 0; while (_local12 < numChildren) { _local25 = (getChildAt(_local12) as MovieClip); if ((_local25 is MovieClip)){ _local26 = GetBodyByClip(_local25); if (((_local26) && (!(_local26.IsStatic())))){ _local27 = (_local4 as b2BuoyancyController); _local28 = (_local4.m_userData.controllerParams[0] == Materials.STAR); _local29 = (((_local4.m_userData.controllerParams[0] == Materials.WATER)) || ((_local4.m_userData.controllerParams[0] == Materials.TOXIC))); _local30 = this.localToGlobal(new Point(_local25.x, _local25.y)); _local31 = (_local4 as b2BuoyancyController).m_userData.clip[0].hitTestPoint(_local30.x, _local30.y); _local32 = (_local4 as b2BuoyancyController).m_userData.clip[0].hitTestObject(_local25); if (((((_local28) && (_local31))) || (((_local29) && (_local32))))){ if (!BodyInBuoyancy(_local26)){ _local27.AddBody(_local26); }; if (_local25 == player){ if (((!((_local4.m_userData.controllerParams[0] == Materials.WATER))) && (!((_local4.m_userData.controllerParams[0] == Materials.STAR))))){ switch (_local4.m_userData.controllerParams[4]){ case Damage.KILL: player.Kill(); break; case Damage.INJURE: player.Injure((_local4.m_userData.controllerParams[5] / 30)); break; }; }; }; } else { _local27.RemoveBody(_local26); }; if (_local29){ if (((((((((_local31) && ((_local27.centerInBodies.indexOf(_local26) == -1)))) && (!(BodyInBuoyancy(_local26, -1, _local27))))) && ((_local26.GetLinearVelocity().Length() > 3)))) || (((((((!(_local31)) && (!((_local27.centerInBodies.indexOf(_local26) == -1))))) && ((_local25.y < _local4.m_userData.clip[0].y)))) && ((_local26.GetLinearVelocity().Length() > 3)))))){ _local33 = ((_local4.m_userData.controllerParams[0] == Materials.WATER)) ? new WaterSpray() : new ToxicSpray(); _local33.x = _local25.x; _local33.y = _local25.y; _local33.alpha = 0.5; addChildAt(_local33, (getChildIndex(m_joint) - 1)); sound.Play(SoundID.WATER_IN); }; if (_local31){ if (_local27.centerInBodies.indexOf(_local26) == -1){ _local27.centerInBodies.push(_local26); }; if (_local25 == player){ player.smile.gotoAndPlay("underWater"); }; } else { _local34 = _local27.centerInBodies.indexOf(_local26); if (_local34 != -1){ _local27.centerInBodies.splice(_local34, 1); }; }; }; }; }; _local12++; }; break; case ControllerType.SPRING: _local4.Draw(m_world.m_debugDraw); break; }; }; }; player.Update(); _local5 = contactListener.IsTouching(player.body); _local6 = false; _local7 = false; _local8 = 0; _local10 = 0; for each (_local11 in _local5) { if (_local11.position.y > player.body.GetPosition().y){ _local6 = true; _local35 = ((((_local11.shape1.GetBody() == player.body)) ? -1 : 1 * _local11.normal.y) * player.JUMP_FORCE); if (_local35 < _local8){ _local7 = true; _local9 = _local11; _local8 = _local35; }; }; _local10 = (_local10 + _local11.normalImpulse); }; if ((((_local10 > 10)) || (BodyInBuoyancy(player.body, Materials.TOXIC)))){ player.Injure(_local10); player.smile.gotoAndPlay("injure"); }; if (((((((((_local6) && (!(Left)))) && (!(Right)))) && (!(Up)))) && (!(Down)))){ player.body.m_linearVelocity.x = (player.body.m_linearVelocity.x * 0.975); }; if (Left){ player.body.WakeUp(); if (_local6){ if (player.body.m_linearVelocity.x > -(player.MAX_VX)){ player.body.m_linearVelocity.x = (player.body.m_linearVelocity.x - player.DV_FRAME); }; } else { if (player.body.m_linearVelocity.x > (-(player.MAX_VX) * player.FLY_VK)){ player.body.m_linearVelocity.x = (player.body.m_linearVelocity.x - (player.DV_FRAME * player.FLY_VK)); }; }; }; if (Right){ player.body.WakeUp(); if (_local6){ if (player.body.m_linearVelocity.x < player.MAX_VX){ player.body.m_linearVelocity.x = (player.body.m_linearVelocity.x + player.DV_FRAME); }; } else { if (player.body.m_linearVelocity.x < (player.MAX_VX * player.FLY_VK)){ player.body.m_linearVelocity.x = (player.body.m_linearVelocity.x + (player.DV_FRAME * player.FLY_VK)); }; }; }; if (Up){ player.body.WakeUp(); if (((((_local7) && (!(jumpTimer.running)))) && (!(BodyInBuoyancy(player.body))))){ if (player.body.m_linearVelocity.y > 0){ player.body.m_linearVelocity.y = 0; }; player.body.ApplyForce(new b2Vec2(0, _local8), player.body.GetWorldCenter()); player.smile.gotoAndPlay("jump"); jumpTimer.start(); sound.Play(SoundID.JUMP); } else { if ((((player.body.m_linearVelocity.y < 0)) && (!(BodyInBuoyancy(player.body))))){ player.body.ApplyForce(new b2Vec2(0, -(player.JUMP_FRAME)), player.body.GetWorldCenter()); }; }; if (BodyInBuoyancy(player.body, Materials.STAR)){ player.body.ApplyForce(new b2Vec2(0, (-0.2 * player.JUMP_FRAME)), player.body.GetWorldCenter()); }; if (BodyInBuoyancy(player.body, Materials.WATER)){ player.body.ApplyForce(new b2Vec2(0, (-2 * player.JUMP_FRAME)), player.body.GetWorldCenter()); }; if (BodyInBuoyancy(player.body, Materials.TOXIC)){ player.body.ApplyForce(new b2Vec2(0, (-2 * player.JUMP_FRAME)), player.body.GetWorldCenter()); }; }; if (Down){ if (BodyInBuoyancy(player.body, Materials.STAR)){ player.body.ApplyForce(new b2Vec2(0, (3.5 * player.JUMP_FRAME)), player.body.GetWorldCenter()); }; if (BodyInBuoyancy(player.body, Materials.WATER)){ player.body.ApplyForce(new b2Vec2(0, (5 * player.JUMP_FRAME)), player.body.GetWorldCenter()); }; if (BodyInBuoyancy(player.body, Materials.TOXIC)){ player.body.ApplyForce(new b2Vec2(0, (5 * player.JUMP_FRAME)), player.body.GetWorldCenter()); }; if (((!(BodyInBuoyancy(player.body))) && (_local6))){ player.body.m_angularVelocity = (player.body.m_angularVelocity * 0.85); player.body.m_linearVelocity.x = (player.body.m_linearVelocity.x * 0.85); player.body.m_linearVelocity.y = (player.body.m_linearVelocity.y * 0.85); }; }; if (((((((((((((!(Left)) && (!(Right)))) && (!(Up)))) && (!(Down)))) && ((player.body.m_linearVelocity.Length() < 1)))) && ((player.smile.currentFrame == 100)))) && ((Math.random() < 0.5)))){ player.smile.gotoAndPlay("eyesDance"); }; if ((killHeight - player.y) > 250){ Tweener.addTween(m_sprite, {x:((m_sprite.scaleX * -(player.x)) + (Preloader.stageWidth / 2)), y:(((m_sprite.scaleY * -(player.y)) + (Preloader.stageHeight / 2)) - 15), time:1, transition:"easeOutExpo"}); Tweener.addTween(background, {x:(player.x - ((player.x - playerStartPosition.x) / 10)), y:(player.y - ((player.y - playerStartPosition.y) / 10)), time:1, transition:"easeOutExpo"}); } else { player.smile.gotoAndStop("creek"); if ((killHeight - player.y) > 200){ sound.Play(SoundID.CREEK); }; }; if (player.y > killHeight){ player.Destroy(); }; _local12 = 0; while (_local12 < m_objects.length) { m_objects[_local12].Update(); _local12++; }; } } }//package
Section 251
//LevelButton (LevelButton) package { import flash.display.*; import flash.text.*; import flash.filters.*; public class LevelButton extends MovieClip { public var nText:TextField; private var _n:int; public function LevelButton():void{ addFrameScript(0, frame1); } public function Init(_arg1:int):void{ _n = _arg1; nText.text = n.toString(); mouseChildren = false; filters = [new DropShadowFilter(0.5, 45, 0x333333, 1, 1, 1, 1, 1, false, false, false)]; } function frame1(){ stop(); } public function get n():int{ return (_n); } } }//package
Section 252
//Loop1 (Loop1) package { import flash.media.*; public dynamic class Loop1 extends Sound { } }//package
Section 253
//Loop2 (Loop2) package { import flash.media.*; public dynamic class Loop2 extends Sound { } }//package
Section 254
//Loop3 (Loop3) package { import flash.media.*; public dynamic class Loop3 extends Sound { } }//package
Section 255
//Loop4 (Loop4) package { import flash.media.*; public dynamic class Loop4 extends Sound { } }//package
Section 256
//mcBannedSign (mcBannedSign) package { import flash.display.*; public dynamic class mcBannedSign extends MovieClip { public var bg:MovieClip; } }//package
Section 257
//mcCrownMask (mcCrownMask) package { import flash.display.*; public dynamic class mcCrownMask extends MovieClip { } }//package
Section 258
//mcFerryLine (mcFerryLine) package { import flash.display.*; public dynamic class mcFerryLine extends MovieClip { } }//package
Section 259
//mcLogoHolder (mcLogoHolder) package { import flash.display.*; public dynamic class mcLogoHolder extends MovieClip { } }//package
Section 260
//mcLogoMask (mcLogoMask) package { import flash.display.*; public dynamic class mcLogoMask extends MovieClip { } }//package
Section 261
//mcOtherGames (mcOtherGames) package { import flash.display.*; public dynamic class mcOtherGames extends MovieClip { } }//package
Section 262
//mcPlay (mcPlay) package { import flash.display.*; public dynamic class mcPlay extends MovieClip { } }//package
Section 263
//mcWaterRing (mcWaterRing) package { import flash.display.*; public dynamic class mcWaterRing extends MovieClip { public function mcWaterRing(){ addFrameScript(39, frame40); } function frame40(){ stop(); } } }//package
Section 264
//MenuMoveFX (MenuMoveFX) package { import flash.media.*; public dynamic class MenuMoveFX extends Sound { } }//package
Section 265
//MenuSelectFX (MenuSelectFX) package { import flash.media.*; public dynamic class MenuSelectFX extends Sound { } }//package
Section 266
//MochiBot (MochiBot) package { import flash.display.*; import flash.system.*; import flash.net.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 267
//NotAvailableFX (NotAvailableFX) package { import flash.media.*; public dynamic class NotAvailableFX extends Sound { } }//package
Section 268
//PauseFX (PauseFX) package { import flash.media.*; public dynamic class PauseFX extends Sound { } }//package
Section 269
//PauseMenu (PauseMenu) package { import flash.display.*; import flash.events.*; import Types.*; import com.midasplayer.*; public dynamic class PauseMenu extends MovieClip { public var pauseMenuRect:MovieClip; public var mainMenuButton:SimpleButton; public var resumeGameButton:SimpleButton; public var walktroughButton:SimpleButton; public var game:Game; public var soundFXButton:MovieClip; public var musicButton:MovieClip; public function PauseMenu(){ addFrameScript(0, frame1); } public function buttonOverHandler(_arg1:MouseEvent):void{ game.sound.Play(SoundID.MENU_MOVE); } public function mainMenuButtonClickHandler(_arg1:MouseEvent):void{ game.sound.Play(SoundID.MENU_SELECT); game.QuitTo("mainMenu"); game = null; } public function RefreshSoundButtons():void{ if (game.sound.isMusic){ musicButton.gotoAndStop(1); } else { musicButton.gotoAndStop(2); }; if (game.sound.isSoundFX){ soundFXButton.gotoAndStop(1); } else { soundFXButton.gotoAndStop(2); }; } public function resumeGameButtonClickHandler(_arg1:MouseEvent):void{ game.Pause(); } public function musicButtonOverHandler(_arg1:MouseEvent):void{ if (game.sound.isMusic){ musicButton.gotoAndStop(3); } else { musicButton.gotoAndStop(4); }; } public function soundFXButtonOverHandler(_arg1:MouseEvent):void{ if (game.sound.isSoundFX){ soundFXButton.gotoAndStop(3); } else { soundFXButton.gotoAndStop(4); }; } public function walktroughButtonClickHandler(_arg1:MouseEvent):void{ KingAPI.openSignLink(); game.sound.Play(SoundID.MENU_SELECT); } function frame1(){ musicButton.buttonMode = true; musicButton.useHandCursor = true; musicButton.mouseChildren = false; soundFXButton.buttonMode = true; soundFXButton.useHandCursor = true; soundFXButton.mouseChildren = false; game = (this.parent as Game); resumeGameButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); walktroughButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); musicButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); soundFXButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); mainMenuButton.addEventListener(MouseEvent.MOUSE_OVER, buttonOverHandler, false, 0, true); resumeGameButton.addEventListener(MouseEvent.CLICK, resumeGameButtonClickHandler, false, 0, true); walktroughButton.addEventListener(MouseEvent.CLICK, walktroughButtonClickHandler, false, 0, true); musicButton.addEventListener(MouseEvent.CLICK, musicButtonClickHandler, false, 0, true); soundFXButton.addEventListener(MouseEvent.CLICK, soundFXButtonClickHandler, false, 0, true); mainMenuButton.addEventListener(MouseEvent.CLICK, mainMenuButtonClickHandler, false, 0, true); RefreshSoundButtons(); musicButton.addEventListener(MouseEvent.ROLL_OVER, musicButtonOverHandler, false, 0, true); musicButton.addEventListener(MouseEvent.ROLL_OUT, musicButtonOutHandler, false, 0, true); soundFXButton.addEventListener(MouseEvent.ROLL_OVER, soundFXButtonOverHandler, false, 0, true); soundFXButton.addEventListener(MouseEvent.ROLL_OUT, soundFXButtonOutHandler, false, 0, true); } public function soundFXButtonOutHandler(_arg1:MouseEvent):void{ if (game.sound.isSoundFX){ soundFXButton.gotoAndStop(1); } else { soundFXButton.gotoAndStop(2); }; } public function soundFXButtonClickHandler(_arg1:MouseEvent):void{ game.sound.isSoundFX = !(game.sound.isSoundFX); if (game.sound.isSoundFX){ soundFXButton.gotoAndStop(3); game.sound.Play(SoundID.MENU_SELECT); } else { soundFXButton.gotoAndStop(4); game.sound.StopFX(); }; } public function musicButtonClickHandler(_arg1:MouseEvent):void{ game.sound.isMusic = !(game.sound.isMusic); if (game.sound.isMusic){ musicButton.gotoAndStop(3); game.sound.Play(SoundID.MENU_SELECT); } else { musicButton.gotoAndStop(4); }; } public function musicButtonOutHandler(_arg1:MouseEvent):void{ if (game.sound.isMusic){ musicButton.gotoAndStop(1); } else { musicButton.gotoAndStop(2); }; } } }//package
Section 270
//Pin (Pin) package { import flash.display.*; public dynamic class Pin extends MovieClip { } }//package
Section 271
//Pin10 (Pin10) package { import flash.display.*; public dynamic class Pin10 extends MovieClip { } }//package
Section 272
//Player (Player) package { import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import flash.display.*; import flash.events.*; import Box2D.Dynamics.Contacts.*; import flash.geom.*; import Types.*; import flash.filters.*; import flash.text.*; import caurina.transitions.*; import com.midasplayer.*; public class Player extends MovieClip { public const JUMP_FORCE:Number = 120; public const JUMP_FRAME:Number = 2; public const MAX_VX:Number = 6; public const MAX_VY:Number = 10; public const DV_FRAME:Number = 0.55; public const FLY_VK:Number = 0.5; public var smile:MovieClip; private var levelIn:Level; private var helpTextFramesExist:int;// = 0 private var testPoints:Array; public var light:PlayerLight; public var health:Number;// = 100 public var body:b2Body; private var helpText:HelpText; private var material:int;// = 0 private var live:Boolean;// = true public var crown:PlayerCrown; public function Player(_arg1:Point, _arg2:Level):void{ testPoints = new Array(); light = new PlayerLight(); super(); x = _arg1.x; y = _arg1.y; name = "player"; cacheAsBitmap = true; levelIn = _arg2; body = levelIn.CreateBody(this, BodyType.PLAYER, GeomType.CIRCLE, [[Damage.NO, 0, 0, true], material], [[this.width]]); levelIn.m_sprite.addChildAt(this, (levelIn.getChildIndex(levelIn.getChildByName("checkPoint0")) + 1)); levelIn.m_sprite.x = (-(this.x) + (Preloader.stageWidth / 2)); levelIn.m_sprite.y = (-(this.y) + (Preloader.stageHeight / 2)); light.x = x; light.y = y; light.cacheAsBitmap = true; levelIn.m_sprite.addChildAt(light, (levelIn.getChildIndex(this) + 1)); if (Preloader.bonusPlaying){ crown = new PlayerCrown(); crown.x = x; crown.y = y; crown.rotation = rotation; crown.cacheAsBitmap = true; levelIn.m_sprite.addChildAt(crown, (levelIn.getChildIndex(light) + 1)); }; var _local3 = 16; var _local4:Number = (this.width / 2); var _local5:Number = ((2 * Math.PI) / _local3); var _local6:int; while (_local6 < _local3) { testPoints.push(new Point((_local4 * Math.cos((_local5 * _local6))), (_local4 * Math.sin((_local5 * _local6))))); _local6++; }; } public function Live():Boolean{ return (live); } public function Tell(_arg1:String):Boolean{ if (!helpText){ helpText = new HelpText(); helpText.text.text = _arg1; helpText.x = (this.x + 14); helpText.y = (this.y - 4); helpText.filters = [new DropShadowFilter(1, 45, 0, 1, 1, 1, 1, 1, false, false, false)]; helpText.alpha = 0; levelIn.addChildAt(helpText, levelIn.numChildren); Tweener.addTween(helpText, {alpha:0.7, time:0.5, transition:"linear"}); helpTextFramesExist = 0; if (helpText.text.text.indexOf("walktrough") != -1){ helpText.addEventListener(MouseEvent.CLICK, helpTextClickHandler, false, 0, true); helpText.buttonMode = true; helpText.useHandCursor = true; helpText.mouseChildren = false; }; return (true); }; return (false); } public function HitTestObjectControlPoints(_arg1:DisplayObject, _arg2:Boolean=false):Boolean{ var _local4:Point; var _local3:int; while (_local3 < testPoints.length) { _local4 = localToGlobal(testPoints[_local3]); if (_arg1.hitTestPoint(_local4.x, _local4.y, _arg2)){ return (true); }; _local3++; }; return (false); } private function helpTextClickHandler(_arg1:MouseEvent):void{ KingAPI.openSignLink(); } public function Destroy():void{ var _local1:DieAnimation; var _local2:int; if (((Live()) && (!((levelIn.status == LevelStatus.WIN))))){ if (y < levelIn.killHeight){ _local1 = new DieAnimation(); _local1.x = x; _local1.y = y; _local1.alpha = 0.8; if (((levelIn.BodyInBuoyancy(body, Materials.WATER)) || (levelIn.BodyInBuoyancy(body, Materials.TOXIC)))){ _local2 = (levelIn.getChildIndex(this) + 1); } else { _local2 = (levelIn.getChildIndex(levelIn.m_joint) - 1); }; levelIn.m_sprite.addChildAt(_local1, _local2); }; levelIn.DestroyBody(this.body); levelIn.m_sprite.removeChild(light); if (crown){ levelIn.m_sprite.removeChild(crown); crown = null; }; if (((helpText) && (levelIn.contains(helpText)))){ levelIn.removeChild(helpText); helpText = null; }; live = false; levelIn.SetStatus(LevelStatus.LOSE); }; } public function Injure(_arg1:Number):void{ health = (health - _arg1); } public function Update():void{ light.x = x; light.y = y; if (crown){ crown.x = x; crown.y = y; crown.rotation = rotation; }; if (helpText){ helpText.x = (this.x + 14); helpText.y = (this.y - 4); helpTextFramesExist++; if (helpTextFramesExist > (160 - 45)){ Tweener.addTween(helpText, {alpha:0, time:0.3, transition:"linear"}); }; if (helpTextFramesExist > 160){ levelIn.removeChild(helpText); helpText = null; helpTextFramesExist = 0; }; }; if (health <= 0){ Kill(); }; } public function Kill():void{ if (Live()){ levelIn.sound.Play(SoundID.DIE); }; Destroy(); } } }//package
Section 273
//PlayerCrown (PlayerCrown) package { import flash.display.*; public dynamic class PlayerCrown extends MovieClip { } }//package
Section 274
//PlayerLight (PlayerLight) package { import flash.display.*; public dynamic class PlayerLight extends MovieClip { } }//package
Section 275
//PreGameComics (PreGameComics) package { import flash.events.*; import flash.display.*; import Types.*; public class PreGameComics extends Comics { public var comicsFrame5:MovieClip; public var comicsFrame6:MovieClip; public var comicsFrame3:MovieClip; public var skipButton:SimpleButton; public var comicsFrame1:MovieClip; public var comicsFrame2:MovieClip; public var comicsFrame4:MovieClip; public function PreGameComics():void{ framesNum = 6; skipButton.addEventListener(MouseEvent.MOUSE_OVER, skipButtonOverHandler, false, 0, true); skipButton.addEventListener(MouseEvent.CLICK, skipButtonClickHandler, false, 0, true); } private function skipButtonClickHandler(_arg1:MouseEvent):void{ var _local2:MovieClip = (this.parent as MovieClip); PrepearToDie(); _local2.gotoAndStop("mainMenu"); Preloader.sound.Play(SoundID.MENU_SELECT); } private function skipButtonOverHandler(_arg1:MouseEvent):void{ Preloader.sound.Play(SoundID.MENU_MOVE); } override public function lastFrameDelayHandler(_arg1:TimerEvent):void{ var _local2:MovieClip = (this.parent as MovieClip); super.lastFrameDelayHandler(_arg1); _local2.gotoAndStop("mainMenu"); } override public function PrepearToDie():void{ skipButton.removeEventListener(MouseEvent.CLICK, skipButtonClickHandler); super.PrepearToDie(); } } }//package
Section 276
//Preloader (Preloader) package { import flash.events.*; import flash.display.*; import com.kongregate.as3.client.*; import utils.*; import Types.*; import flash.text.*; import flash.net.*; public class Preloader extends MovieClip { private var mMemoryController:MemoryController; public static const stageHeight:Number = 400; public static const stageWidth:Number = 550; public static const frameTime:Number = 33.3333333333333; public static var levelStart:int; public static var bonusPlaying:Boolean = false; private static var _score:int = 0; public static var sound:SoundManager = new SoundManager(); public static var scoreAvailable:Boolean = false; public static var stageLink:Stage; public static var levelTotal:int; public static var levelSave:SharedObject; public static var levelAvailable:int; public static var bonusAvailable:Boolean = false; public static var bonusTotal:int; public static var scoreID:int; public static var continueGame:Boolean = false; public static var stageLoaderInfo:LoaderInfo; public function Init(){ stop(); stage.showDefaultContextMenu = false; stage.scaleMode = StageScaleMode.NO_SCALE; stageLoaderInfo = loaderInfo; stageLink = stage; levelTotal = 20; bonusTotal = 5; levelSave = SharedObject.getLocal("RedBall2", "/"); if (levelSave.data.levelAvailable != undefined){ levelAvailable = levelSave.data.levelAvailable; } else { levelAvailable = 1; }; if (isUrl(["king.com", "mygame.com", "king.de", "midasplayer.com", "notdoppler.com", "kongregate.com"])){ bonusAvailable = true; }; scoreID = ScoreID.KING; if (isUrl(["kongregate.com"])){ scoreID = ScoreID.KONGREGATE; addChild(new KongregateAPI()); }; mMemoryController = new MemoryController(); } public static function get score():int{ return (_score); } public static function set score(_arg1:int):void{ _score = ((_arg1 > 0)) ? _arg1 : 0; } public static function isUrl(_arg1:Array):Boolean{ var _local2:String = stageLink.loaderInfo.loaderURL; var _local3:Number = (_local2.indexOf("://") + 3); var _local4:Number = _local2.indexOf("/", _local3); var _local5:String = _local2.substring(_local3, _local4); var _local6:Number = (_local5.lastIndexOf(".") - 1); var _local7:Number = (_local5.lastIndexOf(".", _local6) + 1); _local5 = _local5.substring(_local7, _local5.length); var _local8:int; while (_local8 < _arg1.length) { if (_local5 == _arg1[_local8]){ return (true); }; _local8++; }; return (false); } } }//package
Section 277
//PulleyFX (PulleyFX) package { import flash.media.*; public dynamic class PulleyFX extends Sound { } }//package
Section 278
//RemoveFX (RemoveFX) package { import flash.media.*; public dynamic class RemoveFX extends Sound { } }//package
Section 279
//sfxBell (sfxBell) package { import flash.media.*; public dynamic class sfxBell extends Sound { } }//package
Section 280
//sfxBounce (sfxBounce) package { import flash.media.*; public dynamic class sfxBounce extends Sound { } }//package
Section 281
//SoundManager (SoundManager) package { import flash.events.*; import flash.media.*; import Types.*; public class SoundManager { private const loopsNumber:int = 4; private var loopChannel:SoundChannel; private var waterStreamFX:WaterStreamFX; private var pulleyFX:PulleyFX; private var creekFX:CreekFX; private var fireFX:FireFX; private var creekFXChannel:SoundChannel; private var _isSoundFX:Boolean;// = true private var fireFXChannel:SoundChannel; private var _isMusic:Boolean;// = true private var loop:Sound; private var pulleyFXChannel:SoundChannel; private var waterStreamFXChannel:SoundChannel; public function SoundManager():void{ } private function creekFXCompliteHandler(_arg1:Event):void{ creekFX = null; creekFXChannel = null; } private function pulleyFXCompliteHandler(_arg1:Event):void{ pulleyFX = null; pulleyFXChannel = null; } public function StopFX():void{ Stop(SoundID.CREEK); Stop(SoundID.WATER_STREAM); Stop(SoundID.PULLEY); Stop(SoundID.FIRE); } private function waterStreamFXCompliteHandler(_arg1:Event):void{ waterStreamFX = null; waterStreamFXChannel = null; } public function set isMusic(_arg1:Boolean):void{ _isMusic = _arg1; if (isMusic){ PlayRandomLoop(); } else { StopLoop(); }; } public function Play(_arg1:String):void{ var _local2:Class; var _local3:Class; var _local4:Sound; var _local5:SoundChannel; if (((((isMusic) && (IsLoop(_arg1)))) && (!(loop)))){ _local2 = (Preloader.stageLoaderInfo.applicationDomain.getDefinition(_arg1) as Class); loop = new (_local2); loopChannel = loop.play(0, 1); loopChannel.addEventListener(Event.SOUND_COMPLETE, LoopCompliteHandler, false, 0, true); }; if (((isSoundFX) && (IsSoundFX(_arg1)))){ switch (_arg1){ case SoundID.CREEK: if (!creekFXChannel){ creekFX = new CreekFX(); creekFXChannel = creekFX.play(0, 1); creekFXChannel.addEventListener(Event.SOUND_COMPLETE, creekFXCompliteHandler); }; break; case SoundID.WATER_STREAM: if (!waterStreamFXChannel){ waterStreamFX = new WaterStreamFX(); waterStreamFXChannel = waterStreamFX.play(0, 1); waterStreamFXChannel.addEventListener(Event.SOUND_COMPLETE, waterStreamFXCompliteHandler); }; break; case SoundID.PULLEY: if (!pulleyFXChannel){ pulleyFX = new PulleyFX(); pulleyFXChannel = pulleyFX.play(0, 1); pulleyFXChannel.addEventListener(Event.SOUND_COMPLETE, pulleyFXCompliteHandler); }; break; case SoundID.FIRE: if (!fireFXChannel){ fireFX = new FireFX(); fireFXChannel = fireFX.play(0, 1); fireFXChannel.addEventListener(Event.SOUND_COMPLETE, fireFXCompliteHandler); }; break; default: _local3 = (Preloader.stageLoaderInfo.applicationDomain.getDefinition(_arg1) as Class); _local4 = new (_local3); _local5 = _local4.play(0, 1); break; }; }; } public function get isSoundFX():Boolean{ return (_isSoundFX); } private function IsSoundFX(_arg1:String):Boolean{ if (!IsLoop(_arg1)){ return (true); }; return (false); } public function StopAll():void{ StopLoop(); StopFX(); } public function Stop(_arg1:String):void{ if (IsLoop(_arg1)){ StopLoop(); }; if (IsSoundFX(_arg1)){ switch (_arg1){ case SoundID.CREEK: if (creekFXChannel){ creekFXChannel.stop(); creekFX = null; creekFXChannel = null; }; break; case SoundID.WATER_STREAM: if (waterStreamFXChannel){ waterStreamFXChannel.stop(); waterStreamFX = null; waterStreamFXChannel = null; }; break; case SoundID.PULLEY: if (pulleyFXChannel){ pulleyFXChannel.stop(); pulleyFX = null; pulleyFXChannel = null; }; break; case SoundID.FIRE: if (fireFXChannel){ fireFXChannel.stop(); fireFX = null; fireFXChannel = null; }; break; }; }; } private function fireFXCompliteHandler(_arg1:Event):void{ fireFX = null; fireFXChannel = null; } public function StopLoop():void{ if (loopChannel){ loopChannel.stop(); loopChannel = null; loop = null; }; } private function LoopCompliteHandler(_arg1:Event):void{ StopLoop(); PlayRandomLoop(); } public function set isSoundFX(_arg1:Boolean):void{ _isSoundFX = _arg1; if (!isSoundFX){ StopFX(); }; } private function IsLoop(_arg1:String):Boolean{ switch (_arg1){ case SoundID.LOOP1: case SoundID.LOOP2: case SoundID.LOOP3: case SoundID.LOOP4: case SoundID.LOOP5: return (true); }; return (false); } public function PlayRandomLoop():void{ Play(("Loop" + int(((loopsNumber * Math.random()) + 1)))); } public function get isMusic():Boolean{ return (_isMusic); } } }//package
Section 282
//Star (Star) package { import flash.display.*; public dynamic class Star extends MovieClip { } }//package
Section 283
//StarCollect (StarCollect) package { import flash.display.*; public dynamic class StarCollect extends MovieClip { } }//package
Section 284
//StarCollectFX (StarCollectFX) package { import flash.media.*; public dynamic class StarCollectFX extends Sound { } }//package
Section 285
//ToxicSpray (ToxicSpray) package { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class ToxicSpray extends MovieClip { public var __id9_:MovieClipEmitter; public function ToxicSpray(){ __setProp___id9__ToxicSpray_Layer1_0(); } function __setProp___id9__ToxicSpray_Layer1_0(){ try { __id9_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id9_.config = "{pps:75,x:0, y:0, width:15, height:1,size:1, circle:true, color:65280, movement:true, speed:[97.9,234.2] , angle:[339.5,205] , startScale:[0.7,1.5] , limit:20, gravity:18, lifespan:400}"; __id9_.movieClipName = ""; __id9_.pps = 75; __id9_.rootEffect = false; try { __id9_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 286
//TurnPageFX (TurnPageFX) package { import flash.media.*; public dynamic class TurnPageFX extends Sound { } }//package
Section 287
//WaterHolderB (WaterHolderB) package { import flash.display.*; import com.midasplayer.extras.*; public dynamic class WaterHolderB extends MovieClip { public var BLUE:Water; } }//package
Section 288
//WaterHolderG (WaterHolderG) package { import flash.display.*; import com.midasplayer.extras.*; public dynamic class WaterHolderG extends MovieClip { public var GREEN:Water; } }//package
Section 289
//WaterHolderR (WaterHolderR) package { import flash.display.*; import com.midasplayer.extras.*; public dynamic class WaterHolderR extends MovieClip { public var RED:Water; } }//package
Section 290
//WaterInFX (WaterInFX) package { import flash.media.*; public dynamic class WaterInFX extends Sound { } }//package
Section 291
//WaterSpray (WaterSpray) package { import flash.display.*; import flash.events.*; import com.roguedevelopment.pulse.emitter.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.system.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class WaterSpray extends MovieClip { public var __id10_:MovieClipEmitter; public function WaterSpray(){ __setProp___id10__WaterSpray_Layer1_0(); } function __setProp___id10__WaterSpray_Layer1_0(){ try { __id10_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id10_.config = "{pps:75,x:0, y:0, width:15, height:1,size:1, circle:true, color:3381708, movement:true, speed:[97.9,234.2] , angle:[339.5,205] , startScale:[0.7,1.5] , limit:20, gravity:18, lifespan:400}"; __id10_.movieClipName = ""; __id10_.pps = 75; __id10_.rootEffect = false; try { __id10_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 292
//WaterStreamFX (WaterStreamFX) package { import flash.media.*; public dynamic class WaterStreamFX extends Sound { } }//package
Section 293
//WaterWave (WaterWave) package { import flash.display.*; public dynamic class WaterWave extends MovieClip { public function WaterWave(){ addFrameScript(14, frame15); } function frame15(){ stop(); this.parent.removeChild(this); } } }//package

Library Items

Symbol 1 GraphicUsed by:119 123 132 148 254 286 302 320 381 384 428 540 579 717 721 725 731 735 743 748 764 862 871 918 928 932  Timeline
Symbol 2 MovieClip {com.midasplayer.extras.Water}Used by:3 4 5 52
Symbol 3 MovieClip {WaterHolderR}Uses:2Used by:52
Symbol 4 MovieClip {WaterHolderG}Uses:2Used by:52
Symbol 5 MovieClip {WaterHolderB}Uses:2Used by:52
Symbol 6 MovieClip {com.midasplayer.extras.WaterLine}Used by:52
Symbol 7 BitmapUsed by:15 25
Symbol 8 BitmapUsed by:15 24
Symbol 9 BitmapUsed by:15 28
Symbol 10 BitmapUsed by:15 27
Symbol 11 BitmapUsed by:15 16
Symbol 12 BitmapUsed by:15 18
Symbol 13 BitmapUsed by:15 31
Symbol 14 BitmapUsed by:15 30
Symbol 15 GraphicUses:7 8 9 10 11 12 13 14Used by:52
Symbol 16 GraphicUses:11Used by:17
Symbol 17 MovieClip {mcPlay}Uses:16Used by:52
Symbol 18 GraphicUses:12Used by:19
Symbol 19 MovieClip {mcOtherGames}Uses:18Used by:52
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClip {mcFerryLine}Uses:20Used by:52
Symbol 22 GraphicUsed by:23
Symbol 23 MovieClipUses:22Used by:26 29 32 52
Symbol 24 GraphicUses:8Used by:26
Symbol 25 GraphicUses:7Used by:26
Symbol 26 MovieClip {ferryRed}Uses:23 24 25Used by:52
Symbol 27 GraphicUses:10Used by:29
Symbol 28 GraphicUses:9Used by:29
Symbol 29 MovieClip {ferryGreen}Uses:23 27 28Used by:52
Symbol 30 GraphicUses:14Used by:32
Symbol 31 GraphicUses:13Used by:32
Symbol 32 MovieClip {ferryBlue}Uses:23 30 31Used by:52
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClip {mcLogoMask}Uses:33Used by:52
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClip {mcCrownMask}Uses:35Used by:52
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClipUses:37Used by:52
Symbol 39 GraphicUsed by:52
Symbol 40 GraphicUsed by:41 52
Symbol 41 MovieClip {mcWaterRing}Uses:40Used by:52
Symbol 42 GraphicUsed by:43
Symbol 43 MovieClipUses:42Used by:44 52
Symbol 44 MovieClip {mcLogoHolder}Uses:43Used by:52
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:49 52
Symbol 47 FontUsed by:48
Symbol 48 EditableTextUses:47Used by:49
Symbol 49 MovieClip {mcBannedSign}Uses:46 48Used by:52
Symbol 50 Sound {sfxBounce}Used by:52
Symbol 51 Sound {sfxBell}Used by:52
Symbol 52 MovieClip {EmbedPreloader}Uses:2 3 4 5 6 15 17 19 21 23 26 29 32 34 36 38 39 40 41 43 44 46 49 50 51Used by:Timeline
Symbol 53 MovieClip {com.kongregate.as3.client.KongregateAPI}
Symbol 54 Sound {CreekFX}
Symbol 55 Sound {PulleyFX}
Symbol 56 Sound {FireFX}
Symbol 57 Sound {WaterStreamFX}
Symbol 58 GraphicUsed by:67
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClipUses:59Used by:67
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClipUses:61Used by:67 711 830 835 840 848 853 857 872 877 881 894 906 910 913
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClipUses:63Used by:67 711 830 835 840 848 853 857 872 877 881 894
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClipUses:65Used by:67 711 830 835 840 848 853 857 872 877 881 894 906 910 913
Symbol 67 MovieClip {Background}Uses:58 60 62 64 66
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}Uses:68Used by:70 71 254 286 302 320 331 370 381 428 499 540 579 583
Symbol 70 MovieClip {WaterSpray}Uses:69
Symbol 71 MovieClip {ToxicSpray}Uses:69
Symbol 72 GraphicUsed by:73
Symbol 73 MovieClip {Bullet}Uses:72
Symbol 74 ShapeTweeningUsed by:78
Symbol 75 GraphicUsed by:78
Symbol 76 ShapeTweeningUsed by:78
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClip {WaterWave}Uses:74 75 76 77
Symbol 79 GraphicUsed by:81
Symbol 80 GraphicUsed by:81
Symbol 81 MovieClip {Dark}Uses:79 80
Symbol 82 GraphicUsed by:99
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClipUses:83Used by:99
Symbol 85 GraphicUsed by:98
Symbol 86 GraphicUsed by:98 708
Symbol 87 GraphicUsed by:98 708
Symbol 88 GraphicUsed by:98 708
Symbol 89 GraphicUsed by:98
Symbol 90 GraphicUsed by:98
Symbol 91 GraphicUsed by:98
Symbol 92 GraphicUsed by:98
Symbol 93 GraphicUsed by:98
Symbol 94 GraphicUsed by:98
Symbol 95 GraphicUsed by:98
Symbol 96 GraphicUsed by:98
Symbol 97 GraphicUsed by:98
Symbol 98 MovieClip {movie_fla.PlayerSmile_40}Uses:85 86 87 88 89 90 91 92 93 94 95 96 97Used by:99 165
Symbol 99 MovieClip {BlueBall}Uses:82 84 98
Symbol 100 GraphicUsed by:101
Symbol 101 MovieClip {Star}Uses:100
Symbol 102 GraphicUsed by:103
Symbol 103 MovieClipUses:102Used by:112 495
Symbol 104 GraphicUsed by:105
Symbol 105 MovieClipUses:104Used by:112 495
Symbol 106 GraphicUsed by:107
Symbol 107 MovieClipUses:106Used by:112 495
Symbol 108 GraphicUsed by:109
Symbol 109 MovieClipUses:108Used by:112 495
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClipUses:110Used by:112 495
Symbol 112 MovieClip {DieAnimation}Uses:103 105 107 109 111
Symbol 113 GraphicUsed by:114
Symbol 114 MovieClipUses:113Used by:138
Symbol 115 FontUsed by:116 117 118 120 121 122 124 125 126 127 129 130 131 133 134 135 136 141 142 143 149 152 153 154 155 156 714 715 716 718 719 720 722 723 724 726 728 729 730 732 733 734 740 741 742 744 745 746 747 753 760 761 762 763 765 766 767 768 769 770 771 774 775 776 779 780 781 783 784 785 786 789 790 791 792 795 796 797 798 801 802 803 806 807 808 809 812 813 814 816 828 829 833 834 838 839 847 851 852 856 858 859 860 861 865 866 867 868 869 870 875 876 879 880 882 888 889 890 891 892 893 915 920 925 926 927 929 930 931
Symbol 116 EditableTextUses:115Used by:119
Symbol 117 EditableTextUses:115Used by:119
Symbol 118 EditableTextUses:115Used by:119
Symbol 119 ButtonUses:116 117 118 1Used by:138
Symbol 120 EditableTextUses:115Used by:123
Symbol 121 EditableTextUses:115Used by:123
Symbol 122 EditableTextUses:115Used by:123
Symbol 123 ButtonUses:120 121 122 1Used by:138 161
Symbol 124 EditableTextUses:115Used by:128
Symbol 125 EditableTextUses:115Used by:128
Symbol 126 EditableTextUses:115Used by:128
Symbol 127 EditableTextUses:115Used by:128
Symbol 128 MovieClipUses:124 125 126 127Used by:138
Symbol 129 EditableTextUses:115Used by:132
Symbol 130 EditableTextUses:115Used by:132
Symbol 131 EditableTextUses:115Used by:132
Symbol 132 ButtonUses:129 130 131 1Used by:138
Symbol 133 EditableTextUses:115Used by:137
Symbol 134 EditableTextUses:115Used by:137
Symbol 135 EditableTextUses:115Used by:137
Symbol 136 EditableTextUses:115Used by:137
Symbol 137 MovieClipUses:133 134 135 136Used by:138
Symbol 138 MovieClip {PauseMenu}Uses:114 119 123 128 132 137Used by:161
Symbol 139 GraphicUsed by:140
Symbol 140 MovieClipUses:139Used by:161
Symbol 141 EditableTextUses:115Used by:145
Symbol 142 EditableTextUses:115Used by:145
Symbol 143 EditableTextUses:115Used by:145
Symbol 144 GraphicUsed by:145
Symbol 145 ButtonUses:141 142 143 144Used by:161
Symbol 146 GraphicUsed by:147 148
Symbol 147 MovieClipUses:146Used by:148
Symbol 148 ButtonUses:147 1 146Used by:161 872 894  Timeline
Symbol 149 EditableTextUses:115Used by:161
Symbol 150 GraphicUsed by:151
Symbol 151 MovieClipUses:150Used by:161 244 914
Symbol 152 EditableTextUses:115Used by:161
Symbol 153 EditableTextUses:115Used by:161
Symbol 154 EditableTextUses:115Used by:158
Symbol 155 EditableTextUses:115Used by:158
Symbol 156 EditableTextUses:115Used by:158
Symbol 157 GraphicUsed by:158
Symbol 158 ButtonUses:154 155 156 157Used by:161
Symbol 159 GraphicUsed by:160
Symbol 160 MovieClipUses:159Used by:161
Symbol 161 MovieClip {Game}Uses:138 140 145 148 149 151 152 153 158 160 123Used by:702
Symbol 162 GraphicUsed by:165
Symbol 163 GraphicUsed by:164
Symbol 164 MovieClipUses:163Used by:165
Symbol 165 MovieClip {Player}Uses:162 164 98Used by:702
Symbol 166 GraphicUsed by:169
Symbol 167 GraphicUsed by:168
Symbol 168 MovieClipUses:167Used by:169
Symbol 169 MovieClip {PlayerLight}Uses:166 168Used by:702
Symbol 170 GraphicUsed by:210
Symbol 171 GraphicUsed by:210
Symbol 172 GraphicUsed by:210
Symbol 173 GraphicUsed by:210
Symbol 174 GraphicUsed by:210
Symbol 175 GraphicUsed by:210
Symbol 176 GraphicUsed by:210
Symbol 177 GraphicUsed by:210
Symbol 178 GraphicUsed by:210
Symbol 179 GraphicUsed by:210
Symbol 180 GraphicUsed by:210
Symbol 181 GraphicUsed by:210
Symbol 182 GraphicUsed by:210
Symbol 183 GraphicUsed by:210
Symbol 184 GraphicUsed by:210
Symbol 185 GraphicUsed by:210
Symbol 186 GraphicUsed by:210
Symbol 187 GraphicUsed by:210
Symbol 188 GraphicUsed by:210
Symbol 189 GraphicUsed by:210
Symbol 190 GraphicUsed by:210
Symbol 191 GraphicUsed by:210
Symbol 192 GraphicUsed by:210
Symbol 193 GraphicUsed by:210
Symbol 194 GraphicUsed by:210
Symbol 195 GraphicUsed by:210
Symbol 196 GraphicUsed by:210
Symbol 197 GraphicUsed by:210
Symbol 198 GraphicUsed by:210
Symbol 199 GraphicUsed by:210
Symbol 200 GraphicUsed by:210
Symbol 201 GraphicUsed by:210
Symbol 202 GraphicUsed by:210
Symbol 203 GraphicUsed by:210
Symbol 204 GraphicUsed by:210
Symbol 205 GraphicUsed by:210
Symbol 206 GraphicUsed by:210
Symbol 207 GraphicUsed by:210
Symbol 208 GraphicUsed by:210
Symbol 209 GraphicUsed by:210
Symbol 210 MovieClipUses:170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209Used by:213 459 548 556
Symbol 211 ShapeTweeningUsed by:213
Symbol 212 GraphicUsed by:213 459 556
Symbol 213 MovieClip {Flag}Uses:210 211 212Used by:245 257 273 287 319 325 340 369 410 439 456 523 554 582 609 612 623 632 635 660 674 680
Symbol 214 ShapeTweeningUsed by:229
Symbol 215 ShapeTweeningUsed by:229
Symbol 216 ShapeTweeningUsed by:229
Symbol 217 ShapeTweeningUsed by:229
Symbol 218 ShapeTweeningUsed by:229
Symbol 219 ShapeTweeningUsed by:229
Symbol 220 ShapeTweeningUsed by:229
Symbol 221 ShapeTweeningUsed by:229
Symbol 222 ShapeTweeningUsed by:229
Symbol 223 ShapeTweeningUsed by:229
Symbol 224 ShapeTweeningUsed by:229
Symbol 225 ShapeTweeningUsed by:229
Symbol 226 ShapeTweeningUsed by:229
Symbol 227 ShapeTweeningUsed by:229
Symbol 228 GraphicUsed by:229
Symbol 229 MovieClipUses:214 215 216 217 218 219 220 221 222 223 224 225 226 227 228Used by:231
Symbol 230 GraphicUsed by:231
Symbol 231 MovieClipUses:229 230Used by:245 257 273 287 319 325 340 369 410 439 456 488 523 546 554 571 582 609 612 623 632 635 660 674 680  Timeline
Symbol 232 BitmapUsed by:233 282 292 311 323 333 359 375 386 390 413 415 450 489 493 506 508 517 519 521 526 528 532 534 536 538 549 610 619 624 626 628 636 638 640 642 676 909
Symbol 233 GraphicUses:232Used by:234
Symbol 234 MovieClipUses:233Used by:245
Symbol 235 BitmapUsed by:236 252 255 258 260 268 271 274 280 288 290 303 305 307 321 328 335 338 345 351 353 355 363 371 377 388 411 424 440 442 444 460 463 468 484 486 491 513 524 544 552 557 559 561 564 567 569 572 575 577 588 593 621 630 646 653 656 658 661 672 678 706 823 912
Symbol 236 GraphicUses:235Used by:243
Symbol 237 GraphicUsed by:238
Symbol 238 MovieClipUses:237Used by:243 253 256 269 272 281 304 306 322 337 339 346 352 356 364 389 425 461 464 469 485 516 551 553 558 560 562 565 570 594 622 631 654 657 673 679 711 824 913
Symbol 239 GraphicUsed by:240
Symbol 240 MovieClipUses:239Used by:243 256 269 272 281 304 339 346 352 364 425 461 560 562 565 594 622 654 657 659 673 679 711 824
Symbol 241 GraphicUsed by:242
Symbol 242 MovieClipUses:241Used by:243 256 269 281 306 312 339 346 356 364 389 425 464 469 485 516 594 622 654 657 673 711
Symbol 243 MovieClipUses:236 238 240 242Used by:245
Symbol 244 MovieClip {StarCollect}Uses:151Used by:245 257 273 287 319 325 340 369 410 439 456 488 523 546 554 571 582 609 612 623 632 635 660 674 680
Symbol 245 MovieClip {Levels.Level_1}Uses:213 231 234 243 244Used by:702
Symbol 246 GraphicUsed by:247
Symbol 247 MovieClip {Pin}Uses:246Used by:248 456
Symbol 248 MovieClip {Pin10}Uses:247Used by:257 287 325 456 546 571 582 660
Symbol 249 BitmapUsed by:250 276 284 297 341 349 373 379 398 400 404 406 408 426 429 446 448 465 474 481 496 498 503 530 580 584 595 597 599 601 603 605 607 633 902
Symbol 250 GraphicUses:249Used by:251
Symbol 251 MovieClipUses:250Used by:257
Symbol 252 GraphicUses:235Used by:253 337 551
Symbol 253 MovieClipUses:252 238Used by:257
Symbol 254 MovieClip {movie_fla.UpBounce_59}Uses:1 69Used by:257
Symbol 255 GraphicUses:235Used by:256
Symbol 256 MovieClipUses:255 238 240 242Used by:257
Symbol 257 MovieClip {Levels.Level_2}Uses:231 213 248 251 253 244 254 256Used by:702
Symbol 258 GraphicUses:235Used by:259
Symbol 259 MovieClipUses:258Used by:273
Symbol 260 GraphicUses:235Used by:261
Symbol 261 MovieClipUses:260Used by:273
Symbol 262 BitmapUsed by:263 295 300 309 317 326 343 347 357 361 382 392 418 420 422 426 448 454 458 470 500 510 590 613 615 617 904
Symbol 263 GraphicUses:262Used by:264
Symbol 264 MovieClipUses:263Used by:273
Symbol 265 GraphicUsed by:267 270 294 299 385 462 505 512 592 652
Symbol 266 MovieClip {movie_fla.WaterGlare_66}Used by:267 270 294 299 385 462 505 512 543 592 652
Symbol 267 MovieClipUses:265 266Used by:273 913
Symbol 268 GraphicUses:235Used by:269
Symbol 269 MovieClipUses:268 238 240 242Used by:273
Symbol 270 MovieClipUses:265 266Used by:273
Symbol 271 GraphicUses:235Used by:272
Symbol 272 MovieClipUses:271 238 240Used by:273
Symbol 273 MovieClip {Levels.Level_3}Uses:259 261 231 213 264 267 269 270 272 244Used by:702
Symbol 274 GraphicUses:235Used by:275
Symbol 275 MovieClipUses:274Used by:287
Symbol 276 GraphicUses:249Used by:277
Symbol 277 MovieClipUses:276Used by:287
Symbol 278 GraphicUsed by:279
Symbol 279 MovieClipUses:278Used by:287
Symbol 280 GraphicUses:235Used by:281
Symbol 281 MovieClipUses:280 238 240 242Used by:287
Symbol 282 GraphicUses:232Used by:283
Symbol 283 MovieClipUses:282Used by:287
Symbol 284 GraphicUses:249Used by:285
Symbol 285 MovieClipUses:284Used by:287
Symbol 286 MovieClip {movie_fla.UpBounce_77}Uses:1 69Used by:287
Symbol 287 MovieClip {Levels.Level_6}Uses:275 231 213 244 277 248 279 281 283 285 286Used by:702
Symbol 288 GraphicUses:235Used by:289
Symbol 289 MovieClipUses:288Used by:319
Symbol 290 GraphicUses:235Used by:291
Symbol 291 MovieClipUses:290Used by:319
Symbol 292 GraphicUses:232Used by:293
Symbol 293 MovieClipUses:292Used by:319
Symbol 294 MovieClipUses:265 266Used by:319
Symbol 295 GraphicUses:262Used by:296
Symbol 296 MovieClipUses:295Used by:319
Symbol 297 GraphicUses:249Used by:298
Symbol 298 MovieClipUses:297Used by:319
Symbol 299 MovieClipUses:265 266Used by:319
Symbol 300 GraphicUses:262Used by:301
Symbol 301 MovieClipUses:300Used by:319
Symbol 302 MovieClip {movie_fla.UpBounce1_87}Uses:1 69Used by:319
Symbol 303 GraphicUses:235Used by:304
Symbol 304 MovieClipUses:303 238 240Used by:319
Symbol 305 GraphicUses:235Used by:306
Symbol 306 MovieClipUses:305 238 242Used by:319
Symbol 307 GraphicUses:235Used by:308
Symbol 308 MovieClipUses:307Used by:319
Symbol 309 GraphicUses:262Used by:310
Symbol 310 MovieClipUses:309Used by:319
Symbol 311 GraphicUses:232Used by:312
Symbol 312 MovieClipUses:242 311Used by:319
Symbol 313 GraphicUsed by:314
Symbol 314 MovieClipUses:313Used by:319 369 410 439 488 674
Symbol 315 GraphicUsed by:316 651
Symbol 316 MovieClipUses:315Used by:319 369 523 571 609
Symbol 317 GraphicUses:262Used by:318
Symbol 318 MovieClipUses:317Used by:319
Symbol 319 MovieClip {Levels.Level_7}Uses:289 291 213 231 293 294 296 298 299 244 301 302 304 306 308 310 312 314 316 318Used by:702
Symbol 320 MovieClip {movie_fla.UpBounce_97}Uses:1 69Used by:325
Symbol 321 GraphicUses:235Used by:322
Symbol 322 MovieClipUses:321 238Used by:325
Symbol 323 GraphicUses:232Used by:324
Symbol 324 MovieClipUses:323Used by:325
Symbol 325 MovieClip {Levels.Level_4}Uses:213 231 320 322 248 324 244Used by:702
Symbol 326 GraphicUses:262Used by:327
Symbol 327 MovieClipUses:326Used by:340
Symbol 328 GraphicUses:235Used by:329
Symbol 329 MovieClipUses:328Used by:340
Symbol 330 GraphicUsed by:332 467 543 574
Symbol 331 MovieClip {movie_fla.Bubbles_104}Uses:69Used by:332 467 574
Symbol 332 MovieClipUses:330 331Used by:340
Symbol 333 GraphicUses:232Used by:334
Symbol 334 MovieClipUses:333Used by:340
Symbol 335 GraphicUses:235Used by:336
Symbol 336 MovieClipUses:335Used by:340
Symbol 337 MovieClipUses:252 238Used by:340
Symbol 338 GraphicUses:235Used by:339
Symbol 339 MovieClipUses:338 238 240 242Used by:340
Symbol 340 MovieClip {Levels.Level_16}Uses:327 244 231 213 329 332 334 336 337 339Used by:702
Symbol 341 GraphicUses:249Used by:342
Symbol 342 MovieClipUses:341Used by:369
Symbol 343 GraphicUses:262Used by:344
Symbol 344 MovieClipUses:343Used by:369
Symbol 345 GraphicUses:235Used by:346
Symbol 346 MovieClipUses:345 240 242 238Used by:369
Symbol 347 GraphicUses:262Used by:348
Symbol 348 MovieClipUses:347Used by:369
Symbol 349 GraphicUses:249Used by:350
Symbol 350 MovieClipUses:349Used by:369
Symbol 351 GraphicUses:235Used by:352
Symbol 352 MovieClipUses:351 238 240Used by:369
Symbol 353 GraphicUses:235Used by:354 655
Symbol 354 MovieClipUses:353Used by:369
Symbol 355 GraphicUses:235Used by:356
Symbol 356 MovieClipUses:355 238 242Used by:369
Symbol 357 GraphicUses:262Used by:358
Symbol 358 MovieClipUses:357Used by:369
Symbol 359 GraphicUses:232Used by:360
Symbol 360 MovieClipUses:359Used by:369
Symbol 361 GraphicUses:262Used by:362
Symbol 362 MovieClipUses:361Used by:369
Symbol 363 GraphicUses:235Used by:364
Symbol 364 MovieClipUses:363 240 242 238Used by:369
Symbol 365 GraphicUsed by:366
Symbol 366 MovieClipUses:365Used by:369
Symbol 367 GraphicUsed by:368
Symbol 368 MovieClipUses:367Used by:369
Symbol 369 MovieClip {Levels.Level_5}Uses:213 231 342 344 244 346 348 350 352 354 356 358 360 362 364 316 314 366 368Used by:702
Symbol 370 MovieClip {movie_fla.WaterFromPipe_125}Uses:69Used by:410
Symbol 371 GraphicUses:235Used by:372
Symbol 372 MovieClipUses:371Used by:410
Symbol 373 GraphicUses:249Used by:374 586
Symbol 374 MovieClipUses:373Used by:410
Symbol 375 GraphicUses:232Used by:376
Symbol 376 MovieClipUses:375Used by:410
Symbol 377 GraphicUses:235Used by:378
Symbol 378 MovieClipUses:377Used by:410
Symbol 379 GraphicUses:249Used by:380
Symbol 380 MovieClipUses:379Used by:410
Symbol 381 MovieClip {movie_fla.UpBounce_131}Uses:1 69Used by:410
Symbol 382 GraphicUses:262Used by:383
Symbol 383 MovieClipUses:382Used by:410
Symbol 384 MovieClipUses:1Used by:385 592
Symbol 385 MovieClipUses:384 265 266Used by:410
Symbol 386 GraphicUses:232Used by:387
Symbol 387 MovieClipUses:386Used by:410
Symbol 388 GraphicUses:235Used by:389
Symbol 389 MovieClipUses:388 238 242Used by:410
Symbol 390 GraphicUses:232Used by:391
Symbol 391 MovieClipUses:390Used by:410
Symbol 392 GraphicUses:262Used by:393
Symbol 393 MovieClipUses:392Used by:410
Symbol 394 GraphicUsed by:395
Symbol 395 MovieClipUses:394Used by:410
Symbol 396 GraphicUsed by:397
Symbol 397 MovieClipUses:396Used by:410
Symbol 398 GraphicUses:249Used by:399
Symbol 399 MovieClipUses:398Used by:410
Symbol 400 GraphicUses:249Used by:401
Symbol 401 MovieClipUses:400Used by:410
Symbol 402 GraphicUsed by:403 587
Symbol 403 MovieClipUses:402Used by:410
Symbol 404 GraphicUses:249Used by:405
Symbol 405 MovieClipUses:404Used by:410
Symbol 406 GraphicUses:249Used by:407
Symbol 407 MovieClipUses:406Used by:410
Symbol 408 GraphicUses:249Used by:409
Symbol 409 MovieClipUses:408Used by:410
Symbol 410 MovieClip {Levels.Level_8}Uses:370 372 374 376 378 213 380 231 381 383 244 385 387 389 391 393 314 395 397 399 401 403 405 407 409Used by:702
Symbol 411 GraphicUses:235Used by:412
Symbol 412 MovieClipUses:411Used by:439
Symbol 413 GraphicUses:232Used by:414 417
Symbol 414 MovieClipUses:413Used by:439
Symbol 415 GraphicUses:232Used by:416
Symbol 416 MovieClipUses:415Used by:439
Symbol 417 MovieClipUses:413Used by:439
Symbol 418 GraphicUses:262Used by:419
Symbol 419 MovieClipUses:418Used by:439
Symbol 420 GraphicUses:262Used by:421
Symbol 421 MovieClipUses:420Used by:439
Symbol 422 GraphicUses:262Used by:423
Symbol 423 MovieClipUses:422Used by:439
Symbol 424 GraphicUses:235Used by:425
Symbol 425 MovieClipUses:424 238 240 242Used by:439
Symbol 426 GraphicUses:249 262Used by:427
Symbol 427 MovieClipUses:426Used by:439
Symbol 428 MovieClip {movie_fla.UpBounce_157}Uses:1 69Used by:439
Symbol 429 GraphicUses:249Used by:432 435 438 670
Symbol 430 GraphicUsed by:431
Symbol 431 MovieClipUses:430Used by:432
Symbol 432 MovieClipUses:429 431Used by:439
Symbol 433 GraphicUsed by:434
Symbol 434 MovieClipUses:433Used by:435
Symbol 435 MovieClipUses:429 434Used by:439
Symbol 436 GraphicUsed by:437
Symbol 437 MovieClipUses:436Used by:438
Symbol 438 MovieClipUses:429 437Used by:439
Symbol 439 MovieClip {Levels.Level_15}Uses:412 414 416 417 213 231 419 421 423 425 427 428 314 432 435 438 244Used by:702
Symbol 440 GraphicUses:235Used by:441
Symbol 441 MovieClipUses:440Used by:456
Symbol 442 GraphicUses:235Used by:443
Symbol 443 MovieClipUses:442Used by:456
Symbol 444 GraphicUses:235Used by:445
Symbol 445 MovieClipUses:444Used by:456
Symbol 446 GraphicUses:249Used by:447
Symbol 447 MovieClipUses:446Used by:456
Symbol 448 GraphicUses:262 249Used by:449
Symbol 449 MovieClipUses:448Used by:456
Symbol 450 GraphicUses:232Used by:453
Symbol 451 GraphicUsed by:453
Symbol 452 GraphicUsed by:453
Symbol 453 MovieClipUses:450 451 452Used by:456
Symbol 454 GraphicUses:262Used by:455
Symbol 455 MovieClipUses:454Used by:456
Symbol 456 MovieClip {Levels.Level_11}Uses:441 248 247 213 231 443 445 447 449 453 244 455Used by:702
Symbol 457 ShapeTweeningUsed by:459
Symbol 458 GraphicUses:262Used by:459
Symbol 459 MovieClip {FlagShip}Uses:210 457 458 212Used by:488 546
Symbol 460 GraphicUses:235Used by:461
Symbol 461 MovieClipUses:460 238 240Used by:488
Symbol 462 MovieClipUses:265 266Used by:488
Symbol 463 GraphicUses:235Used by:464
Symbol 464 MovieClipUses:463 238 242Used by:488
Symbol 465 GraphicUses:249Used by:466
Symbol 466 MovieClipUses:465Used by:488
Symbol 467 MovieClipUses:330 331Used by:488
Symbol 468 GraphicUses:235Used by:469
Symbol 469 MovieClipUses:468 238 242Used by:488
Symbol 470 GraphicUses:262Used by:471
Symbol 471 MovieClipUses:470Used by:488
Symbol 472 GraphicUsed by:473
Symbol 473 MovieClipUses:472Used by:488
Symbol 474 GraphicUses:249Used by:475
Symbol 475 MovieClipUses:474Used by:488
Symbol 476 GraphicUsed by:477
Symbol 477 MovieClipUses:476Used by:488
Symbol 478 GraphicUsed by:483
Symbol 479 GraphicUsed by:480
Symbol 480 MovieClipUses:479Used by:483
Symbol 481 GraphicUses:249Used by:483
Symbol 482 GraphicUsed by:483
Symbol 483 MovieClipUses:478 480 481 482Used by:488
Symbol 484 GraphicUses:235Used by:485
Symbol 485 MovieClipUses:484 238 242Used by:488
Symbol 486 GraphicUses:235Used by:487
Symbol 487 MovieClipUses:486Used by:488
Symbol 488 MovieClip {Levels.Level_10}Uses:459 231 461 244 462 464 466 467 469 471 473 475 477 314 483 485 487Used by:702
Symbol 489 GraphicUses:232Used by:490
Symbol 490 MovieClipUses:489Used by:523
Symbol 491 GraphicUses:235Used by:492
Symbol 492 MovieClipUses:491Used by:523
Symbol 493 GraphicUses:232Used by:494
Symbol 494 MovieClipUses:493Used by:523
Symbol 495 MovieClip {movie_fla.CannonFire_193}Uses:103 105 107 109 111Used by:497
Symbol 496 GraphicUses:249Used by:497 908
Symbol 497 MovieClip {movie_fla.Cannon_192}Uses:495 496Used by:523
Symbol 498 GraphicUses:249Used by:499
Symbol 499 MovieClip {movie_fla.Flare_199}Uses:69 498Used by:523
Symbol 500 GraphicUses:262Used by:501
Symbol 501 MovieClipUses:500Used by:523 910
Symbol 502 MovieClipUsed by:523
Symbol 503 GraphicUses:249Used by:504
Symbol 504 MovieClipUses:503Used by:523
Symbol 505 MovieClipUses:265 266Used by:523
Symbol 506 GraphicUses:232Used by:507
Symbol 507 MovieClipUses:506Used by:523
Symbol 508 GraphicUses:232Used by:509
Symbol 509 MovieClipUses:508Used by:523
Symbol 510 GraphicUses:262Used by:511
Symbol 511 MovieClipUses:510Used by:523
Symbol 512 MovieClipUses:265 266Used by:523
Symbol 513 GraphicUses:235Used by:516
Symbol 514 GraphicUsed by:515
Symbol 515 MovieClipUses:514Used by:516 594 673 679
Symbol 516 MovieClipUses:513 238 242 515Used by:523
Symbol 517 GraphicUses:232Used by:518
Symbol 518 MovieClipUses:517Used by:523
Symbol 519 GraphicUses:232Used by:520
Symbol 520 MovieClipUses:519Used by:523
Symbol 521 GraphicUses:232Used by:522
Symbol 522 MovieClipUses:521Used by:523
Symbol 523 MovieClip {Levels.Level_9}Uses:213 490 492 494 231 497 499 501 502 504 316 505 507 509 511 512 516 518 520 244 522Used by:702
Symbol 524 GraphicUses:235Used by:525
Symbol 525 MovieClipUses:524Used by:546
Symbol 526 GraphicUses:232Used by:527
Symbol 527 MovieClipUses:526Used by:546
Symbol 528 GraphicUses:232Used by:529
Symbol 529 MovieClipUses:528Used by:546
Symbol 530 GraphicUses:249Used by:531
Symbol 531 MovieClipUses:530Used by:546
Symbol 532 GraphicUses:232Used by:533
Symbol 533 MovieClipUses:532Used by:546
Symbol 534 GraphicUses:232Used by:535
Symbol 535 MovieClipUses:534Used by:546
Symbol 536 GraphicUses:232Used by:537
Symbol 537 MovieClipUses:536Used by:546
Symbol 538 GraphicUses:232Used by:539
Symbol 539 MovieClipUses:538Used by:546
Symbol 540 MovieClip {movie_fla.UpBounce_222}Uses:1 69Used by:546
Symbol 541 GraphicUsed by:542
Symbol 542 MovieClip {PlayerCrown}Uses:541Used by:546
Symbol 543 MovieClipUses:330 266Used by:546
Symbol 544 GraphicUses:235Used by:545
Symbol 545 MovieClipUses:544Used by:546
Symbol 546 MovieClip {Levels.Level_20}Uses:525 527 529 531 533 248 535 537 539 244 540 459 231 542 543 545Used by:702
Symbol 547 GraphicUsed by:548
Symbol 548 MovieClipUses:210 547Used by:554
Symbol 549 GraphicUses:232Used by:550
Symbol 550 MovieClipUses:549Used by:554
Symbol 551 MovieClipUses:252 238Used by:554
Symbol 552 GraphicUses:235Used by:553
Symbol 553 MovieClipUses:552 238Used by:554
Symbol 554 MovieClip {Levels.Level_17}Uses:213 548 231 550 551 244 553Used by:702
Symbol 555 ShapeTweeningUsed by:556
Symbol 556 MovieClip {FlagDis}Uses:210 555 212Used by:571
Symbol 557 GraphicUses:235Used by:558 563
Symbol 558 MovieClipUses:557 238Used by:571
Symbol 559 GraphicUses:235Used by:560
Symbol 560 MovieClipUses:559 238 240Used by:571
Symbol 561 GraphicUses:235Used by:562 566
Symbol 562 MovieClipUses:561 238 240Used by:571
Symbol 563 MovieClipUses:557Used by:571
Symbol 564 GraphicUses:235Used by:565
Symbol 565 MovieClipUses:564 238 240Used by:571
Symbol 566 MovieClipUses:561Used by:571
Symbol 567 GraphicUses:235Used by:568
Symbol 568 MovieClipUses:567Used by:571
Symbol 569 GraphicUses:235Used by:570
Symbol 570 MovieClipUses:569 238Used by:571
Symbol 571 MovieClip {Levels.Level_12}Uses:244 556 231 558 560 562 248 563 565 566 568 316 570Used by:702
Symbol 572 GraphicUses:235Used by:573
Symbol 573 MovieClipUses:572Used by:582
Symbol 574 MovieClipUses:330 331Used by:582
Symbol 575 GraphicUses:235Used by:576
Symbol 576 MovieClipUses:575Used by:582
Symbol 577 GraphicUses:235Used by:578
Symbol 578 MovieClipUses:577Used by:582
Symbol 579 MovieClip {movie_fla.UpBounce_246}Uses:1 69Used by:582
Symbol 580 GraphicUses:249Used by:581
Symbol 581 MovieClipUses:580Used by:582
Symbol 582 MovieClip {Levels.Level_13}Uses:573 213 231 574 248 576 578 244 579 581Used by:702
Symbol 583 MovieClip {movie_fla.WaterFromPipe_249}Uses:69Used by:609
Symbol 584 GraphicUses:249Used by:585
Symbol 585 MovieClipUses:584Used by:609
Symbol 586 MovieClipUses:373Used by:609
Symbol 587 MovieClipUses:402Used by:609
Symbol 588 GraphicUses:235Used by:589
Symbol 589 MovieClipUses:588Used by:609
Symbol 590 GraphicUses:262Used by:591
Symbol 591 MovieClipUses:590Used by:609
Symbol 592 MovieClipUses:384 265 266Used by:609
Symbol 593 GraphicUses:235Used by:594
Symbol 594 MovieClipUses:593 238 240 242 515Used by:609
Symbol 595 GraphicUses:249Used by:596 663
Symbol 596 MovieClipUses:595Used by:609
Symbol 597 GraphicUses:249Used by:598
Symbol 598 MovieClipUses:597Used by:609
Symbol 599 GraphicUses:249Used by:600
Symbol 600 MovieClipUses:599Used by:609
Symbol 601 GraphicUses:249Used by:602
Symbol 602 MovieClipUses:601Used by:609
Symbol 603 GraphicUses:249Used by:604
Symbol 604 MovieClipUses:603Used by:609
Symbol 605 GraphicUses:249Used by:606
Symbol 606 MovieClipUses:605Used by:609
Symbol 607 GraphicUses:249Used by:608
Symbol 608 MovieClipUses:607Used by:609
Symbol 609 MovieClip {Levels.Level_14}Uses:583 585 586 587 589 213 231 591 244 592 594 316 596 598 600 602 604 606 608Used by:702
Symbol 610 GraphicUses:232Used by:611
Symbol 611 MovieClipUses:610Used by:612
Symbol 612 MovieClip {Levels.Level_18}Uses:213 231 611 244Used by:702
Symbol 613 GraphicUses:262Used by:614
Symbol 614 MovieClipUses:613Used by:623
Symbol 615 GraphicUses:262Used by:616
Symbol 616 MovieClipUses:615Used by:623
Symbol 617 GraphicUses:262Used by:618
Symbol 618 MovieClipUses:617Used by:623
Symbol 619 GraphicUses:232Used by:620
Symbol 620 MovieClipUses:619Used by:623
Symbol 621 GraphicUses:235Used by:622
Symbol 622 MovieClipUses:621 238 242 240Used by:623
Symbol 623 MovieClip {Levels.Level_19}Uses:213 231 244 614 616 618 620 622Used by:702
Symbol 624 GraphicUses:232Used by:625
Symbol 625 MovieClipUses:624Used by:632
Symbol 626 GraphicUses:232Used by:627
Symbol 627 MovieClipUses:626Used by:632
Symbol 628 GraphicUses:232Used by:629
Symbol 629 MovieClipUses:628Used by:632
Symbol 630 GraphicUses:235Used by:631
Symbol 631 MovieClipUses:630 238Used by:632
Symbol 632 MovieClip {Levels.Level_21}Uses:625 213 627 629 231 244 631Used by:702
Symbol 633 GraphicUses:249Used by:634 671 675
Symbol 634 MovieClipUses:633Used by:635
Symbol 635 MovieClip {Levels.Level_22}Uses:213 634 231 244Used by:702
Symbol 636 GraphicUses:232Used by:637
Symbol 637 MovieClipUses:636Used by:660
Symbol 638 GraphicUses:232Used by:639
Symbol 639 MovieClipUses:638Used by:660
Symbol 640 GraphicUses:232Used by:641
Symbol 641 MovieClipUses:640Used by:660
Symbol 642 GraphicUses:232Used by:643
Symbol 643 MovieClipUses:642Used by:660
Symbol 644 GraphicUsed by:645
Symbol 645 MovieClipUses:644Used by:660
Symbol 646 GraphicUses:235Used by:647
Symbol 647 MovieClipUses:646Used by:660
Symbol 648 GraphicUsed by:651
Symbol 649 GraphicUsed by:651
Symbol 650 GraphicUsed by:651
Symbol 651 MovieClipUses:648 315 649 650Used by:660
Symbol 652 MovieClipUses:265 266Used by:660
Symbol 653 GraphicUses:235Used by:654
Symbol 654 MovieClipUses:653 238 240 242Used by:660
Symbol 655 MovieClipUses:353Used by:660
Symbol 656 GraphicUses:235Used by:657
Symbol 657 MovieClipUses:656 238 240 242Used by:660
Symbol 658 GraphicUses:235Used by:659
Symbol 659 MovieClipUses:658 240Used by:660
Symbol 660 MovieClip {Levels.Level_23}Uses:637 639 641 643 645 647 213 651 231 248 244 652 654 655 657 659Used by:702
Symbol 661 GraphicUses:235Used by:662
Symbol 662 MovieClipUses:661Used by:674
Symbol 663 MovieClipUses:595Used by:674
Symbol 664 GraphicUsed by:669
Symbol 665 GraphicUsed by:669
Symbol 666 GraphicUsed by:669
Symbol 667 GraphicUsed by:669
Symbol 668 GraphicUsed by:669
Symbol 669 MovieClipUses:664 665 666 667 668Used by:670
Symbol 670 MovieClipUses:429 669Used by:674
Symbol 671 MovieClipUses:633Used by:674
Symbol 672 GraphicUses:235Used by:673
Symbol 673 MovieClipUses:672 238 515 240 242Used by:674
Symbol 674 MovieClip {Levels.Level_24}Uses:662 663 670 671 213 231 673 244 314Used by:702
Symbol 675 MovieClipUses:633Used by:680
Symbol 676 GraphicUses:232Used by:677
Symbol 677 MovieClipUses:676Used by:680
Symbol 678 GraphicUses:235Used by:679
Symbol 679 MovieClipUses:678 515 238 240Used by:680
Symbol 680 MovieClip {Levels.Level_25}Uses:675 677 213 244 231 679Used by:702
Symbol 681 Sound {JumpFX}Used by:702
Symbol 682 Sound {TurnPageFX}Used by:702
Symbol 683 Sound {Loop2}Used by:702
Symbol 684 Sound {Loop1}Used by:702
Symbol 685 Sound {MenuMoveFX}Used by:702
Symbol 686 Sound {MenuSelectFX}Used by:702
Symbol 687 Sound {NotAvailableFX}Used by:702
Symbol 688 Sound {StarCollectFX}Used by:702
Symbol 689 Sound {CheckPointFX}Used by:702
Symbol 690 Sound {FlagFX}Used by:702
Symbol 691 Sound {WaterInFX}Used by:702
Symbol 692 Sound {DieFX}Used by:702
Symbol 693 Sound {PauseFX}Used by:702
Symbol 694 Sound {CannonFX}Used by:702
Symbol 695 Sound {RemoveFX}Used by:702
Symbol 696 Sound {ButtonFX}Used by:702
Symbol 697 Sound {CrownFX}Used by:702
Symbol 698 Sound {ChangeFX}Used by:702
Symbol 699 Sound {AppearFX}Used by:702
Symbol 700 Sound {Loop3}Used by:702
Symbol 701 Sound {Loop4}Used by:702
Symbol 702 MovieClip {EmbedClip}Uses:161 165 169 245 257 273 287 319 325 340 369 410 439 456 488 523 546 554 571 582 609 612 623 632 635 660 674 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701Used by:Timeline
Symbol 703 GraphicUsed by:711
Symbol 704 GraphicUsed by:705
Symbol 705 MovieClipUses:704Used by:711 830 835 840 848 853 857 872 877 881 894 906 910 913
Symbol 706 GraphicUses:235Used by:711
Symbol 707 GraphicUsed by:709 821
Symbol 708 MovieClipUses:86 87 88Used by:709
Symbol 709 MovieClipUses:707 708Used by:711
Symbol 710 GraphicUsed by:711
Symbol 711 MovieClipUses:703 64 66 62 705 706 709 710 238 242 240Used by:Timeline
Symbol 712 GraphicUsed by:713
Symbol 713 MovieClipUses:712Used by:848 853 857 872 877 881 894 906 910 913  Timeline
Symbol 714 EditableTextUses:115Used by:717
Symbol 715 EditableTextUses:115Used by:717
Symbol 716 EditableTextUses:115Used by:717
Symbol 717 ButtonUses:714 715 716 1Used by:Timeline
Symbol 718 EditableTextUses:115Used by:721
Symbol 719 EditableTextUses:115Used by:721
Symbol 720 EditableTextUses:115Used by:721
Symbol 721 ButtonUses:718 719 720 1Used by:Timeline
Symbol 722 EditableTextUses:115Used by:725
Symbol 723 EditableTextUses:115Used by:725
Symbol 724 EditableTextUses:115Used by:725
Symbol 725 ButtonUses:722 723 724 1Used by:Timeline
Symbol 726 EditableTextUses:115Used by:727
Symbol 727 MovieClipUses:726Used by:Timeline
Symbol 728 EditableTextUses:115Used by:731
Symbol 729 EditableTextUses:115Used by:731
Symbol 730 EditableTextUses:115Used by:731
Symbol 731 ButtonUses:728 729 730 1Used by:Timeline
Symbol 732 EditableTextUses:115Used by:735
Symbol 733 EditableTextUses:115Used by:735
Symbol 734 EditableTextUses:115Used by:735
Symbol 735 ButtonUses:732 733 734 1Used by:Timeline
Symbol 736 GraphicUsed by:737 739
Symbol 737 MovieClipUses:736Used by:739
Symbol 738 GraphicUsed by:739
Symbol 739 ButtonUses:737 738 736Used by:Timeline
Symbol 740 EditableTextUses:115Used by:743
Symbol 741 EditableTextUses:115Used by:743
Symbol 742 EditableTextUses:115Used by:743
Symbol 743 ButtonUses:740 741 742 1Used by:Timeline
Symbol 744 EditableTextUses:115Used by:Timeline
Symbol 745 EditableTextUses:115Used by:748
Symbol 746 EditableTextUses:115Used by:748
Symbol 747 EditableTextUses:115Used by:748
Symbol 748 ButtonUses:745 746 747 1Used by:Timeline
Symbol 749 BitmapUsed by:750
Symbol 750 GraphicUses:749Used by:751
Symbol 751 ButtonUses:750Used by:Timeline
Symbol 752 GraphicUsed by:754
Symbol 753 EditableTextUses:115Used by:754
Symbol 754 MovieClip {HelpText}Uses:752 753Used by:Timeline
Symbol 755 GraphicUsed by:759
Symbol 756 GraphicUsed by:759
Symbol 757 GraphicUsed by:759
Symbol 758 GraphicUsed by:759
Symbol 759 ButtonUses:755 756 757 758Used by:Timeline
Symbol 760 EditableTextUses:115Used by:Timeline
Symbol 761 EditableTextUses:115Used by:764
Symbol 762 EditableTextUses:115Used by:764
Symbol 763 EditableTextUses:115Used by:764
Symbol 764 ButtonUses:761 762 763 1Used by:Timeline
Symbol 765 EditableTextUses:115Used by:Timeline
Symbol 766 EditableTextUses:115Used by:Timeline
Symbol 767 EditableTextUses:115Used by:Timeline
Symbol 768 EditableTextUses:115Used by:Timeline
Symbol 769 EditableTextUses:115Used by:773
Symbol 770 EditableTextUses:115Used by:773
Symbol 771 EditableTextUses:115Used by:773
Symbol 772 GraphicUsed by:773
Symbol 773 ButtonUses:769 770 771 772Used by:Timeline
Symbol 774 EditableTextUses:115Used by:778
Symbol 775 EditableTextUses:115Used by:778
Symbol 776 EditableTextUses:115Used by:778
Symbol 777 GraphicUsed by:778 782
Symbol 778 ButtonUses:774 775 776 777Used by:Timeline
Symbol 779 EditableTextUses:115Used by:782
Symbol 780 EditableTextUses:115Used by:782
Symbol 781 EditableTextUses:115Used by:782
Symbol 782 ButtonUses:779 780 781 777Used by:Timeline
Symbol 783 EditableTextUses:115Used by:Timeline
Symbol 784 EditableTextUses:115Used by:788
Symbol 785 EditableTextUses:115Used by:788
Symbol 786 EditableTextUses:115Used by:788
Symbol 787 GraphicUsed by:788
Symbol 788 ButtonUses:784 785 786 787Used by:Timeline
Symbol 789 EditableTextUses:115Used by:Timeline
Symbol 790 EditableTextUses:115Used by:794
Symbol 791 EditableTextUses:115Used by:794
Symbol 792 EditableTextUses:115Used by:794
Symbol 793 GraphicUsed by:794
Symbol 794 ButtonUses:790 791 792 793Used by:Timeline
Symbol 795 EditableTextUses:115Used by:Timeline
Symbol 796 EditableTextUses:115Used by:800
Symbol 797 EditableTextUses:115Used by:800
Symbol 798 EditableTextUses:115Used by:800
Symbol 799 GraphicUsed by:800
Symbol 800 ButtonUses:796 797 798 799Used by:Timeline
Symbol 801 EditableTextUses:115Used by:805
Symbol 802 EditableTextUses:115Used by:805
Symbol 803 EditableTextUses:115Used by:805
Symbol 804 GraphicUsed by:805
Symbol 805 ButtonUses:801 802 803 804Used by:Timeline
Symbol 806 EditableTextUses:115Used by:Timeline
Symbol 807 EditableTextUses:115Used by:811
Symbol 808 EditableTextUses:115Used by:811
Symbol 809 EditableTextUses:115Used by:811
Symbol 810 GraphicUsed by:811 815
Symbol 811 ButtonUses:807 808 809 810Used by:Timeline
Symbol 812 EditableTextUses:115Used by:815
Symbol 813 EditableTextUses:115Used by:815
Symbol 814 EditableTextUses:115Used by:815
Symbol 815 ButtonUses:812 813 814 810Used by:Timeline
Symbol 816 EditableTextUses:115Used by:Timeline
Symbol 817 GraphicUsed by:818  Timeline
Symbol 818 MovieClipUses:817Used by:830 835 840 848 853 857 872 877 881 894
Symbol 819 GraphicUsed by:830 835 840 848 853 857 872 877 881 894 906 910 913
Symbol 820 GraphicUsed by:830 835 840 906 910 913
Symbol 821 MovieClipUses:707Used by:830 835 840 848 853 857 872 877 881 894 906 910 913
Symbol 822 GraphicUsed by:830
Symbol 823 GraphicUses:235Used by:824
Symbol 824 MovieClipUses:823 238 240Used by:830 835 840 848 853 857 872 877 881 894 906 910
Symbol 825 GraphicUsed by:830 853 877 881
Symbol 826 GraphicUsed by:827
Symbol 827 MovieClipUses:826Used by:830 835 840 853 872 881 894
Symbol 828 EditableTextUses:115Used by:830
Symbol 829 EditableTextUses:115Used by:830
Symbol 830 MovieClipUses:818 819 820 64 66 62 705 821 822 824 825 827 828 829Used by:863
Symbol 831 GraphicUsed by:835
Symbol 832 GraphicUsed by:835
Symbol 833 EditableTextUses:115Used by:835
Symbol 834 EditableTextUses:115Used by:835
Symbol 835 MovieClipUses:818 819 820 64 66 62 705 821 831 824 832 827 833 834Used by:863
Symbol 836 GraphicUsed by:840
Symbol 837 GraphicUsed by:840
Symbol 838 EditableTextUses:115Used by:840
Symbol 839 EditableTextUses:115Used by:840
Symbol 840 MovieClipUses:818 819 820 64 66 62 705 821 836 824 837 827 838 839Used by:863
Symbol 841 GraphicUsed by:848
Symbol 842 GraphicUsed by:848
Symbol 843 GraphicUsed by:848
Symbol 844 GraphicUsed by:848 857 906 910 913
Symbol 845 GraphicUsed by:846
Symbol 846 MovieClipUses:845Used by:848 857 877
Symbol 847 EditableTextUses:115Used by:848
Symbol 848 MovieClipUses:818 819 841 64 66 62 705 842 821 713 843 824 844 846 847Used by:863
Symbol 849 GraphicUsed by:853
Symbol 850 GraphicUsed by:853 881
Symbol 851 EditableTextUses:115Used by:853
Symbol 852 EditableTextUses:115Used by:853
Symbol 853 MovieClipUses:818 819 849 64 66 62 705 821 713 850 824 825 827 851 852Used by:863
Symbol 854 GraphicUsed by:857 872 894
Symbol 855 GraphicUsed by:857 872
Symbol 856 EditableTextUses:115Used by:857
Symbol 857 MovieClipUses:818 819 854 64 66 62 705 821 713 855 824 844 846 856Used by:863
Symbol 858 EditableTextUses:115Used by:863
Symbol 859 EditableTextUses:115Used by:862
Symbol 860 EditableTextUses:115Used by:862
Symbol 861 EditableTextUses:115Used by:862
Symbol 862 ButtonUses:859 860 861 1Used by:863
Symbol 863 MovieClip {PreGameComics}Uses:830 835 840 848 853 857 858 862Used by:Timeline
Symbol 864 GraphicUsed by:872
Symbol 865 EditableTextUses:115Used by:872
Symbol 866 EditableTextUses:115Used by:872
Symbol 867 EditableTextUses:115Used by:872
Symbol 868 EditableTextUses:115Used by:871
Symbol 869 EditableTextUses:115Used by:871
Symbol 870 EditableTextUses:115Used by:871
Symbol 871 ButtonUses:868 869 870 1Used by:872 894
Symbol 872 MovieClip {movie_fla.ComicsFrame3_348}Uses:818 819 854 64 66 62 705 821 713 855 824 864 827 865 866 867 148 871Used by:883
Symbol 873 GraphicUsed by:877
Symbol 874 GraphicUsed by:877
Symbol 875 EditableTextUses:115Used by:877
Symbol 876 EditableTextUses:115Used by:877
Symbol 877 MovieClipUses:818 819 873 64 66 62 705 821 874 713 824 825 846 875 876Used by:883
Symbol 878 GraphicUsed by:881
Symbol 879 EditableTextUses:115Used by:881
Symbol 880 EditableTextUses:115Used by:881
Symbol 881 MovieClipUses:818 819 878 64 66 62 705 821 713 850 824 825 827 879 880Used by:883
Symbol 882 EditableTextUses:115Used by:883
Symbol 883 MovieClip {AfterGameComics}Uses:872 877 881 882Used by:Timeline
Symbol 884 GraphicUsed by:885
Symbol 885 MovieClipUses:884Used by:894
Symbol 886 GraphicUsed by:894
Symbol 887 GraphicUsed by:894
Symbol 888 EditableTextUses:115Used by:894
Symbol 889 EditableTextUses:115Used by:894
Symbol 890 EditableTextUses:115Used by:894
Symbol 891 EditableTextUses:115Used by:894
Symbol 892 EditableTextUses:115Used by:894
Symbol 893 EditableTextUses:115Used by:894
Symbol 894 MovieClip {movie_fla.ComicsFrame1_353}Uses:818 819 854 64 66 62 705 821 713 885 886 824 887 827 888 889 890 891 892 893 148 871Used by:895
Symbol 895 MovieClip {AfterBonusLevelsComics}Uses:894Used by:Timeline
Symbol 896 GraphicUsed by:914
Symbol 897 BitmapUsed by:898
Symbol 898 GraphicUses:897Used by:899
Symbol 899 MovieClipUses:898Used by:914
Symbol 900 GraphicUsed by:906
Symbol 901 GraphicUsed by:906
Symbol 902 GraphicUses:249Used by:903
Symbol 903 MovieClipUses:902Used by:906
Symbol 904 GraphicUses:262Used by:905
Symbol 905 MovieClipUses:904Used by:906
Symbol 906 MovieClipUses:819 820 66 62 705 900 821 713 901 903 905 824 844Used by:914
Symbol 907 GraphicUsed by:910
Symbol 908 MovieClipUses:496Used by:910
Symbol 909 GraphicUses:232Used by:910
Symbol 910 MovieClipUses:819 820 66 62 705 821 713 907 908 501 909 824 844Used by:914
Symbol 911 GraphicUsed by:913
Symbol 912 GraphicUses:235Used by:913
Symbol 913 MovieClipUses:819 820 66 62 705 821 713 911 267 912 238 844Used by:914
Symbol 914 MovieClipUses:896 899 906 910 913 151Used by:Timeline
Symbol 915 EditableTextUses:115Used by:Timeline
Symbol 916 GraphicUsed by:917
Symbol 917 MovieClipUses:916Used by:Timeline
Symbol 918 MovieClipUses:1Used by:924
Symbol 919 GraphicUsed by:924
Symbol 920 EditableTextUses:115Used by:924
Symbol 921 GraphicUsed by:924
Symbol 922 GraphicUsed by:924
Symbol 923 GraphicUsed by:924
Symbol 924 MovieClip {LevelButton}Uses:918 919 920 921 922 923Used by:Timeline
Symbol 925 EditableTextUses:115Used by:928
Symbol 926 EditableTextUses:115Used by:928
Symbol 927 EditableTextUses:115Used by:928
Symbol 928 ButtonUses:925 926 927 1Used by:Timeline
Symbol 929 EditableTextUses:115Used by:932
Symbol 930 EditableTextUses:115Used by:932
Symbol 931 EditableTextUses:115Used by:932
Symbol 932 ButtonUses:929 930 931 1Used by:Timeline
Symbol 933 GraphicUsed by:965
Symbol 934 GraphicUsed by:965
Symbol 935 GraphicUsed by:965
Symbol 936 GraphicUsed by:965
Symbol 937 GraphicUsed by:965
Symbol 938 GraphicUsed by:965
Symbol 939 GraphicUsed by:965
Symbol 940 GraphicUsed by:965
Symbol 941 GraphicUsed by:965
Symbol 942 GraphicUsed by:965
Symbol 943 GraphicUsed by:965
Symbol 944 GraphicUsed by:965
Symbol 945 GraphicUsed by:965
Symbol 946 GraphicUsed by:965
Symbol 947 GraphicUsed by:965
Symbol 948 GraphicUsed by:965
Symbol 949 GraphicUsed by:965
Symbol 950 GraphicUsed by:965
Symbol 951 GraphicUsed by:965
Symbol 952 GraphicUsed by:965
Symbol 953 GraphicUsed by:964
Symbol 954 GraphicUsed by:964
Symbol 955 GraphicUsed by:964
Symbol 956 GraphicUsed by:964
Symbol 957 GraphicUsed by:964
Symbol 958 GraphicUsed by:964
Symbol 959 GraphicUsed by:964
Symbol 960 GraphicUsed by:964
Symbol 961 GraphicUsed by:964
Symbol 962 GraphicUsed by:964
Symbol 963 GraphicUsed by:964
Symbol 964 MovieClipUses:953 954 955 956 957 958 959 960 961 962 963Used by:965
Symbol 965 MovieClip {movie_fla.LOGO_368}Uses:933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 964Used by:Timeline

Instance Names

"embedPreloader"Frame 1Symbol 52 MovieClip {EmbedPreloader}
"crown"Frame 3Symbol 713 MovieClip
"startGameButton"Frame 3Symbol 717 Button
"moreGamesButton"Frame 3Symbol 721 Button
"creditsButton"Frame 3Symbol 725 Button
"title1"Frame 3Symbol 727 MovieClip
"walkthroughButton"Frame 3Symbol 731 Button
"downloadButton"Frame 3Symbol 735 Button
"kingButton"Frame 3Symbol 148 Button
"efButton"Frame 3Symbol 739 Button
"playRedBall1Button"Frame 3Symbol 743 Button
"title2"Frame 3Symbol 744 EditableText
"bonusLevelsButton"Frame 3Symbol 748 Button
"redBall1BannerButton"Frame 3Symbol 751 Button
"redBall1Dialog"Frame 3Symbol 754 MovieClip {HelpText}
"FWGLogo"Frame 3Symbol 759 Button
"backButton"Frame 4Symbol 764 Button
"efCreditsButton"Frame 4Symbol 773 Button
"box2DButton"Frame 4Symbol 778 Button
"fglButton"Frame 4Symbol 782 Button
"johnnyKButton"Frame 4Symbol 788 Button
"badimButton"Frame 4Symbol 794 Button
"cgpButton"Frame 4Symbol 800 Button
"soundsnapButton"Frame 4Symbol 805 Button
"tombor911Button"Frame 4Symbol 811 Button
"cross666Button"Frame 4Symbol 815 Button
"preGameComics"Frame 5Symbol 863 MovieClip {PreGameComics}
"afterGameComics"Frame 6Symbol 883 MovieClip {AfterGameComics}
"levelButton1"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton3"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton2"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton4"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton5"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton6"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton7"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton8"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton9"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton10"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton11"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton12"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton20"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton13"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton14"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton16"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton15"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton17"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton18"Frame 8Symbol 924 MovieClip {LevelButton}
"levelButton19"Frame 8Symbol 924 MovieClip {LevelButton}
"levelCrown"Frame 8Symbol 713 MovieClip
"backToMenuButton"Frame 8Symbol 928 Button
"resetButton"Frame 8Symbol 932 Button
"levelFlag"Frame 8Symbol 231 MovieClip
"RED"Symbol 3 MovieClip {WaterHolderR} Frame 1Symbol 2 MovieClip {com.midasplayer.extras.Water}
"GREEN"Symbol 4 MovieClip {WaterHolderG} Frame 1Symbol 2 MovieClip {com.midasplayer.extras.Water}
"BLUE"Symbol 5 MovieClip {WaterHolderB} Frame 1Symbol 2 MovieClip {com.midasplayer.extras.Water}
"bg"Symbol 49 MovieClip {mcBannedSign} Frame 1Symbol 46 MovieClip
"__id10_"Symbol 70 MovieClip {WaterSpray} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"__id9_"Symbol 71 MovieClip {ToxicSpray} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"pauseMenuRect"Symbol 138 MovieClip {PauseMenu} Frame 1Symbol 114 MovieClip
"resumeGameButton"Symbol 138 MovieClip {PauseMenu} Frame 1Symbol 119 Button
"walktroughButton"Symbol 138 MovieClip {PauseMenu} Frame 1Symbol 123 Button
"soundFXButton"Symbol 138 MovieClip {PauseMenu} Frame 1Symbol 128 MovieClip
"mainMenuButton"Symbol 138 MovieClip {PauseMenu} Frame 1Symbol 132 Button
"musicButton"Symbol 138 MovieClip {PauseMenu} Frame 1Symbol 137 MovieClip
"pauseSprite"Symbol 161 MovieClip {Game} Frame 1Symbol 138 MovieClip {PauseMenu}
"menuButton"Symbol 161 MovieClip {Game} Frame 1Symbol 145 Button
"kingInGameButton"Symbol 161 MovieClip {Game} Frame 1Symbol 148 Button
"starText"Symbol 161 MovieClip {Game} Frame 1Symbol 149 EditableText
"levelText"Symbol 161 MovieClip {Game} Frame 1Symbol 152 EditableText
"scoreText"Symbol 161 MovieClip {Game} Frame 1Symbol 153 EditableText
"restartButton"Symbol 161 MovieClip {Game} Frame 1Symbol 158 Button
"scoreLabel"Symbol 161 MovieClip {Game} Frame 1Symbol 160 MovieClip
"walktroughButton"Symbol 161 MovieClip {Game} Frame 1Symbol 123 Button
"smile"Symbol 165 MovieClip {Player} Frame 1Symbol 98 MovieClip {movie_fla.PlayerSmile_40}
"checkPoint0"Symbol 245 MovieClip {Levels.Level_1} Frame 1Symbol 231 MovieClip
"barier1"Symbol 245 MovieClip {Levels.Level_1} Frame 1Symbol 234 MovieClip
"firstGround"Symbol 245 MovieClip {Levels.Level_1} Frame 1Symbol 243 MovieClip
"star0"Symbol 245 MovieClip {Levels.Level_1} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 245 MovieClip {Levels.Level_1} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 245 MovieClip {Levels.Level_1} Frame 1Symbol 244 MovieClip {StarCollect}
"__id8_"Symbol 254 MovieClip {movie_fla.UpBounce_59} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"checkPoint1"Symbol 257 MovieClip {Levels.Level_2} Frame 1Symbol 231 MovieClip
"checkPoint0"Symbol 257 MovieClip {Levels.Level_2} Frame 1Symbol 231 MovieClip
"movePlat"Symbol 257 MovieClip {Levels.Level_2} Frame 1Symbol 251 MovieClip
"finishPlat"Symbol 257 MovieClip {Levels.Level_2} Frame 1Symbol 253 MovieClip
"star0"Symbol 257 MovieClip {Levels.Level_2} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 257 MovieClip {Levels.Level_2} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 257 MovieClip {Levels.Level_2} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 257 MovieClip {Levels.Level_2} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 257 MovieClip {Levels.Level_2} Frame 1Symbol 244 MovieClip {StarCollect}
"upBounce1"Symbol 257 MovieClip {Levels.Level_2} Frame 1Symbol 254 MovieClip {movie_fla.UpBounce_59}
"firstPlat"Symbol 257 MovieClip {Levels.Level_2} Frame 1Symbol 256 MovieClip
"star5"Symbol 257 MovieClip {Levels.Level_2} Frame 1Symbol 244 MovieClip {StarCollect}
"stepPlat1"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 261 MovieClip
"stepPlat2"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 261 MovieClip
"checkPoint1"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 231 MovieClip
"checkPoint2"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 231 MovieClip
"checkPoint0"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 231 MovieClip
"woodBox"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 264 MovieClip
"water1"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 267 MovieClip
"firstPlat"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 269 MovieClip
"water2"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 270 MovieClip
"waterPlat"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 272 MovieClip
"star0"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 244 MovieClip {StarCollect}
"star6"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 244 MovieClip {StarCollect}
"star5"Symbol 273 MovieClip {Levels.Level_3} Frame 1Symbol 244 MovieClip {StarCollect}
"__id7_"Symbol 286 MovieClip {movie_fla.UpBounce_77} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"checkPoint1"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 231 MovieClip
"star5"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 244 MovieClip {StarCollect}
"star6"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 244 MovieClip {StarCollect}
"star7"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 244 MovieClip {StarCollect}
"movePlat3"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 277 MovieClip
"checkPoint0"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 231 MovieClip
"hammer3"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 279 MovieClip
"hammer2"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 279 MovieClip
"hammer1"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 279 MovieClip
"mainGround"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 281 MovieClip
"stoneBarier"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 283 MovieClip
"movePlat1"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 285 MovieClip
"movePlat2"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 285 MovieClip
"star0"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 244 MovieClip {StarCollect}
"star9"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 244 MovieClip {StarCollect}
"star10"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 244 MovieClip {StarCollect}
"star11"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 244 MovieClip {StarCollect}
"star8"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 244 MovieClip {StarCollect}
"upBounce"Symbol 287 MovieClip {Levels.Level_6} Frame 1Symbol 286 MovieClip {movie_fla.UpBounce_77}
"__id6_"Symbol 302 MovieClip {movie_fla.UpBounce1_87} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"checkPoint0"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 231 MovieClip
"wall"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 293 MovieClip
"water2right"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 294 MovieClip
"woodBalk"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 296 MovieClip
"steelBall"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 298 MovieClip
"water1"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 299 MovieClip
"star1"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 244 MovieClip {StarCollect}
"water2left"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 294 MovieClip
"koleso"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 301 MovieClip
"upBounce1"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 302 MovieClip {movie_fla.UpBounce1_87}
"mainGround"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 304 MovieClip
"leftWaterPlat"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 306 MovieClip
"rightWaterPlat"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 308 MovieClip
"gate"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 310 MovieClip
"star9"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 244 MovieClip {StarCollect}
"star8"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 244 MovieClip {StarCollect}
"star7"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 244 MovieClip {StarCollect}
"star6"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 244 MovieClip {StarCollect}
"star5"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 244 MovieClip {StarCollect}
"castle"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 312 MovieClip
"gatePris"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 314 MovieClip
"kolesoRev"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 316 MovieClip
"door"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 318 MovieClip
"doorRev"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 316 MovieClip
"star0"Symbol 319 MovieClip {Levels.Level_7} Frame 1Symbol 244 MovieClip {StarCollect}
"__id5_"Symbol 320 MovieClip {movie_fla.UpBounce_97} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"checkPoint1"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 231 MovieClip
"checkPoint0"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 231 MovieClip
"upBounce"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 320 MovieClip {movie_fla.UpBounce_97}
"firstPlat"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 322 MovieClip
"plat0"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 324 MovieClip
"star0"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 244 MovieClip {StarCollect}
"plat1"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 324 MovieClip
"star1"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 244 MovieClip {StarCollect}
"plat2"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 324 MovieClip
"star2"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 244 MovieClip {StarCollect}
"plat3"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 324 MovieClip
"star3"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 244 MovieClip {StarCollect}
"plat4"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 324 MovieClip
"plat5"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 324 MovieClip
"star4"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 244 MovieClip {StarCollect}
"plat6"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 324 MovieClip
"star5"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 244 MovieClip {StarCollect}
"plat7"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 324 MovieClip
"star6"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 244 MovieClip {StarCollect}
"plat8"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 324 MovieClip
"star7"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 244 MovieClip {StarCollect}
"plat9"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 324 MovieClip
"star8"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 244 MovieClip {StarCollect}
"plat10"Symbol 325 MovieClip {Levels.Level_4} Frame 1Symbol 324 MovieClip
"__id4_"Symbol 331 MovieClip {movie_fla.Bubbles_104} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"box3"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 327 MovieClip
"box2"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 327 MovieClip
"box1"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 327 MovieClip
"star0"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 244 MovieClip {StarCollect}
"star5"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 244 MovieClip {StarCollect}
"checkPoint1"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 231 MovieClip
"disPlat1"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 329 MovieClip
"disPlat2"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 329 MovieClip
"disPlat3"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 329 MovieClip
"checkPoint0"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 231 MovieClip
"toxic1"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 332 MovieClip
"mainPlat"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 334 MovieClip
"upPlat2"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 336 MovieClip
"upPlat3"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 337 MovieClip
"upPlat20"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 336 MovieClip
"upPlat1"Symbol 340 MovieClip {Levels.Level_16} Frame 1Symbol 339 MovieClip
"checkPoint0"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 231 MovieClip
"movePlat"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 342 MovieClip
"steelBall"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 344 MovieClip
"star0"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 244 MovieClip {StarCollect}
"upPlat"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 346 MovieClip
"swings"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 348 MovieClip
"triangle"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 350 MovieClip
"firstPlat"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 352 MovieClip
"disPlat"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 354 MovieClip
"afterDisPlat"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 356 MovieClip
"backet"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 358 MovieClip
"afterBacketPlat"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 360 MovieClip
"helpPlat"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 362 MovieClip
"finishPlat"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 364 MovieClip
"swingsRev"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 316 MovieClip
"helpPris"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 314 MovieClip
"backetPris"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 314 MovieClip
"balance2"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 366 MovieClip
"balance1"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 368 MovieClip
"star1"Symbol 369 MovieClip {Levels.Level_5} Frame 1Symbol 244 MovieClip {StarCollect}
"emiter"Symbol 370 MovieClip {movie_fla.WaterFromPipe_125} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"__id3_"Symbol 381 MovieClip {movie_fla.UpBounce_131} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"mask"Symbol 385 MovieClip Frame 1Symbol 384 MovieClip
"waterFromPipe"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 370 MovieClip {movie_fla.WaterFromPipe_125}
"pipe4"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 374 MovieClip
"balanceGate"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 380 MovieClip
"checkPoint0"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 231 MovieClip
"upBounce"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 381 MovieClip {movie_fla.UpBounce_131}
"ball"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 383 MovieClip
"star6"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 244 MovieClip {StarCollect}
"star7"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 244 MovieClip {StarCollect}
"star8"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 244 MovieClip {StarCollect}
"water"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 385 MovieClip
"littleBlock"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 387 MovieClip
"mainGround"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 389 MovieClip
"stoneBlock"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 391 MovieClip
"balancePlat"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 393 MovieClip
"balancePlatPris"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 314 MovieClip
"balanceGatePris"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 314 MovieClip
"balance1"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 395 MovieClip
"balance2"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 397 MovieClip
"pipe1"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 399 MovieClip
"pipe2"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 401 MovieClip
"redButton"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 403 MovieClip
"pipe3"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 405 MovieClip
"star3"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 244 MovieClip {StarCollect}
"star5"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 244 MovieClip {StarCollect}
"star0"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 410 MovieClip {Levels.Level_8} Frame 1Symbol 244 MovieClip {StarCollect}
"__id2_"Symbol 428 MovieClip {movie_fla.UpBounce_157} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"block1"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 414 MovieClip
"block2"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 416 MovieClip
"block3"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 417 MovieClip
"checkPoint0"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 231 MovieClip
"triangle"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 419 MovieClip
"box"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 421 MovieClip
"ball"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 423 MovieClip
"mainGround"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 425 MovieClip
"movePlat"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 427 MovieClip
"upBounce"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 428 MovieClip {movie_fla.UpBounce_157}
"block1Pris"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 314 MovieClip
"block2Pris"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 314 MovieClip
"block3Pris"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 314 MovieClip
"ballCheck"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 432 MovieClip
"boxCheck"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 435 MovieClip
"triangleCheck"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 438 MovieClip
"star1"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 244 MovieClip {StarCollect}
"star0"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 439 MovieClip {Levels.Level_15} Frame 1Symbol 244 MovieClip {StarCollect}
"checkPoint0"Symbol 456 MovieClip {Levels.Level_11} Frame 1Symbol 231 MovieClip
"ground1"Symbol 456 MovieClip {Levels.Level_11} Frame 1Symbol 443 MovieClip
"ground2"Symbol 456 MovieClip {Levels.Level_11} Frame 1Symbol 445 MovieClip
"movePlatX"Symbol 456 MovieClip {Levels.Level_11} Frame 1Symbol 447 MovieClip
"movePlatY"Symbol 456 MovieClip {Levels.Level_11} Frame 1Symbol 449 MovieClip
"platControl"Symbol 456 MovieClip {Levels.Level_11} Frame 1Symbol 453 MovieClip
"star0"Symbol 456 MovieClip {Levels.Level_11} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 456 MovieClip {Levels.Level_11} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 456 MovieClip {Levels.Level_11} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 456 MovieClip {Levels.Level_11} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 456 MovieClip {Levels.Level_11} Frame 1Symbol 244 MovieClip {StarCollect}
"box"Symbol 456 MovieClip {Levels.Level_11} Frame 1Symbol 455 MovieClip
"disk"Symbol 483 MovieClip Frame 1Symbol 480 MovieClip
"flagShip"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 459 MovieClip {FlagShip}
"checkPoint0"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 231 MovieClip
"upGround"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 461 MovieClip
"star0"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 244 MovieClip {StarCollect}
"water"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 462 MovieClip
"leftGround"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 464 MovieClip
"movePlat"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 466 MovieClip
"toxic"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 467 MovieClip
"rightGround"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 469 MovieClip
"balancePlat"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 471 MovieClip
"balance1"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 473 MovieClip
"balanceBody"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 475 MovieClip
"balance2"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 477 MovieClip
"balancePlatPris"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 314 MovieClip
"star5"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 244 MovieClip {StarCollect}
"star6"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 244 MovieClip {StarCollect}
"star7"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 244 MovieClip {StarCollect}
"crane"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 483 MovieClip
"upGround2"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 485 MovieClip
"disPlat"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 487 MovieClip
"star8"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 244 MovieClip {StarCollect}
"star9"Symbol 488 MovieClip {Levels.Level_10} Frame 1Symbol 244 MovieClip {StarCollect}
"fire"Symbol 497 MovieClip {movie_fla.Cannon_192} Frame 1Symbol 495 MovieClip {movie_fla.CannonFire_193}
"emiter"Symbol 499 MovieClip {movie_fla.Flare_199} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"checkPoint0"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 231 MovieClip
"cannon"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 497 MovieClip {movie_fla.Cannon_192}
"flare"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 499 MovieClip {movie_fla.Flare_199}
"cannonWheel"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 501 MovieClip
"door1"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 504 MovieClip
"door1Rev"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 316 MovieClip
"cannonRev"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 316 MovieClip
"water2"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 505 MovieClip
"castle1"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 507 MovieClip
"castle2"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 509 MovieClip
"door2"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 511 MovieClip
"water1"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 512 MovieClip
"ground1"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 516 MovieClip
"door2Rev"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 316 MovieClip
"brick1"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brickHalf1"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 520 MovieClip
"brick2"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick3"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick4"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick5"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brickHalf2"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 520 MovieClip
"star3"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 244 MovieClip {StarCollect}
"star0"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 244 MovieClip {StarCollect}
"barier1"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 522 MovieClip
"brick6"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brickHalf3"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 520 MovieClip
"brick7"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick8"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick9"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick10"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brickHalf4"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 520 MovieClip
"brick11"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brickHalf5"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 520 MovieClip
"brick12"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick13"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick14"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick15"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brickHalf6"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 520 MovieClip
"brick16"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brickHalf7"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 520 MovieClip
"brick17"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick18"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick19"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick20"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brickHalf8"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 520 MovieClip
"brick21"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brickHalf9"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 520 MovieClip
"brick22"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick23"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick24"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick25"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brickHalf10"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 520 MovieClip
"brick26"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brickHalf11"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 520 MovieClip
"brick27"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick28"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick29"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick30"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brickHalf12"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 520 MovieClip
"brick31"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick32"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"brick33"Symbol 523 MovieClip {Levels.Level_9} Frame 1Symbol 518 MovieClip
"__id1_"Symbol 540 MovieClip {movie_fla.UpBounce_222} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"plat801"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 527 MovieClip
"plat802"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 527 MovieClip
"plat803"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 527 MovieClip
"disPlat"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 529 MovieClip
"plat805"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 527 MovieClip
"movePlat1"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 531 MovieClip
"movePlat2"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 531 MovieClip
"plat804"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 527 MovieClip
"plat180"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 533 MovieClip
"plat90"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 535 MovieClip
"plat130"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 537 MovieClip
"stepPlat"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 539 MovieClip
"star0"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star5"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star7"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star8"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star9"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star10"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star11"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star12"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star17"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star16"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star15"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star14"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star13"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star18"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star19"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star20"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star6"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star21"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"star22"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 244 MovieClip {StarCollect}
"upBounce"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 540 MovieClip {movie_fla.UpBounce_222}
"flagShip"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 459 MovieClip {FlagShip}
"checkPoint0"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 231 MovieClip
"crown"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 542 MovieClip {PlayerCrown}
"toxic"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 543 MovieClip
"mainGround"Symbol 546 MovieClip {Levels.Level_20} Frame 1Symbol 545 MovieClip
"flag"Symbol 554 MovieClip {Levels.Level_17} Frame 1Symbol 548 MovieClip
"checkPoint0"Symbol 554 MovieClip {Levels.Level_17} Frame 1Symbol 231 MovieClip
"wall"Symbol 554 MovieClip {Levels.Level_17} Frame 1Symbol 550 MovieClip
"plat1"Symbol 554 MovieClip {Levels.Level_17} Frame 1Symbol 551 MovieClip
"star0"Symbol 554 MovieClip {Levels.Level_17} Frame 1Symbol 244 MovieClip {StarCollect}
"invPlat1"Symbol 554 MovieClip {Levels.Level_17} Frame 1Symbol 553 MovieClip
"invPlat2"Symbol 554 MovieClip {Levels.Level_17} Frame 1Symbol 553 MovieClip
"invPlat3"Symbol 554 MovieClip {Levels.Level_17} Frame 1Symbol 553 MovieClip
"invPlat4"Symbol 554 MovieClip {Levels.Level_17} Frame 1Symbol 553 MovieClip
"invPlat5"Symbol 554 MovieClip {Levels.Level_17} Frame 1Symbol 553 MovieClip
"invPlat6"Symbol 554 MovieClip {Levels.Level_17} Frame 1Symbol 553 MovieClip
"invPlat7"Symbol 554 MovieClip {Levels.Level_17} Frame 1Symbol 553 MovieClip
"star6"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 244 MovieClip {StarCollect}
"star5"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 244 MovieClip {StarCollect}
"flag"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 556 MovieClip {FlagDis}
"checkPoint0"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 231 MovieClip
"plat7"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 558 MovieClip
"plat1"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 560 MovieClip
"star0"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 244 MovieClip {StarCollect}
"plat2"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 562 MovieClip
"plat4"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 563 MovieClip
"star7"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 244 MovieClip {StarCollect}
"plat5"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 565 MovieClip
"plat6"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 566 MovieClip
"star1"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 244 MovieClip {StarCollect}
"plat3"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 568 MovieClip
"star2"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 244 MovieClip {StarCollect}
"flagRev"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 316 MovieClip
"star8"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 244 MovieClip {StarCollect}
"plat8"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 562 MovieClip
"plat9"Symbol 571 MovieClip {Levels.Level_12} Frame 1Symbol 570 MovieClip
"__id0_"Symbol 579 MovieClip {movie_fla.UpBounce_246} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"checkPoint1"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 231 MovieClip
"checkPoint0"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 231 MovieClip
"toxic"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 574 MovieClip
"mainGround"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 576 MovieClip
"plat1"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 578 MovieClip
"plat2"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 578 MovieClip
"star1"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 244 MovieClip {StarCollect}
"star0"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 244 MovieClip {StarCollect}
"star7"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 244 MovieClip {StarCollect}
"star6"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 244 MovieClip {StarCollect}
"star5"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 244 MovieClip {StarCollect}
"star8"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 244 MovieClip {StarCollect}
"star9"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 244 MovieClip {StarCollect}
"star10"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 244 MovieClip {StarCollect}
"upBounce"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 579 MovieClip {movie_fla.UpBounce_246}
"movePlat"Symbol 582 MovieClip {Levels.Level_13} Frame 1Symbol 581 MovieClip
"emiter"Symbol 583 MovieClip {movie_fla.WaterFromPipe_249} Frame 1Symbol 69 MovieClip {com.roguedevelopment.pulse.emitter.MovieClipEmitter}
"mask"Symbol 592 MovieClip Frame 1Symbol 384 MovieClip
"waterFromPipe1"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 583 MovieClip {movie_fla.WaterFromPipe_249}
"pipe4"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 586 MovieClip
"redButton2"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 587 MovieClip
"pipe1"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 586 MovieClip
"checkPoint0"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 231 MovieClip
"waterFromPipe3"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 583 MovieClip {movie_fla.WaterFromPipe_249}
"koleso"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 591 MovieClip
"pipe3"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 586 MovieClip
"star3"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 244 MovieClip {StarCollect}
"water2"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 592 MovieClip
"pipe2"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 586 MovieClip
"star0"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 244 MovieClip {StarCollect}
"water1"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 592 MovieClip
"mainGround"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 594 MovieClip
"kolesoRev"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 316 MovieClip
"door"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 596 MovieClip
"doorRev"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 316 MovieClip
"redButton1"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 587 MovieClip
"redButton3"Symbol 609 MovieClip {Levels.Level_14} Frame 1Symbol 587 MovieClip
"checkPoint0"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 231 MovieClip
"plat1"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat3"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat4"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat2"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat5"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat6"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat7"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat8"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat9"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat10"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat11"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat12"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat13"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat14"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat15"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat16"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat17"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat18"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat19"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat20"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat21"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat22"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat23"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat24"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat25"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat26"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat27"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat28"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat29"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat30"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat31"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat32"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat33"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat34"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat35"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat36"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat38"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat37"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat39"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat42"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat40"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat41"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat43"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat47"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat44"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat45"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat46"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat48"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat53"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat49"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat50"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat51"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"plat52"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 611 MovieClip
"star0"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 244 MovieClip {StarCollect}
"star5"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 244 MovieClip {StarCollect}
"star6"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 244 MovieClip {StarCollect}
"star7"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 244 MovieClip {StarCollect}
"star8"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 244 MovieClip {StarCollect}
"star9"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 244 MovieClip {StarCollect}
"star10"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 244 MovieClip {StarCollect}
"star11"Symbol 612 MovieClip {Levels.Level_18} Frame 1Symbol 244 MovieClip {StarCollect}
"checkPoint0"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 231 MovieClip
"star0"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 244 MovieClip {StarCollect}
"star7"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 244 MovieClip {StarCollect}
"star10"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 244 MovieClip {StarCollect}
"star9"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 244 MovieClip {StarCollect}
"star6"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 244 MovieClip {StarCollect}
"star5"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 244 MovieClip {StarCollect}
"star8"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 244 MovieClip {StarCollect}
"balk1"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 614 MovieClip
"balk2"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 614 MovieClip
"balk3"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 614 MovieClip
"balk7"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 616 MovieClip
"balk8"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 616 MovieClip
"balk10"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 618 MovieClip
"balk9"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 616 MovieClip
"balk4"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 614 MovieClip
"balk11"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 618 MovieClip
"balk5"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 614 MovieClip
"balk6"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 614 MovieClip
"steps"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 620 MovieClip
"mainPlat"Symbol 623 MovieClip {Levels.Level_19} Frame 1Symbol 622 MovieClip
"plat9"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 627 MovieClip
"bigPlat3"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 629 MovieClip
"plat10"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 627 MovieClip
"plat1"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 627 MovieClip
"platLeft1"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 629 MovieClip
"plat2"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 627 MovieClip
"platLeft2"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 629 MovieClip
"plat3"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 627 MovieClip
"platLeft3"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 629 MovieClip
"plat4"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 627 MovieClip
"platLeft4"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 629 MovieClip
"platLeft5"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 629 MovieClip
"plat5"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 627 MovieClip
"plat7"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 627 MovieClip
"platLeft6"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 629 MovieClip
"bigPlat1"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 629 MovieClip
"platRight1"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 629 MovieClip
"plat6"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 627 MovieClip
"bigPlat2"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 629 MovieClip
"plat8"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 627 MovieClip
"checkPoint0"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 231 MovieClip
"star1"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star8"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star7"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star0"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star9"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star6"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star13"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star11"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star12"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star5"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star10"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star14"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"mainGround"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 631 MovieClip
"star16"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star15"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"star17"Symbol 632 MovieClip {Levels.Level_21} Frame 1Symbol 244 MovieClip {StarCollect}
"plat1"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat2"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat3"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat4"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat5"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat6"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat7"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat8"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat9"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat10"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat11"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat12"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat16"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat17"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat38"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat18"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat37"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat21"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat19"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat22"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat39"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat40"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat49"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat46"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat47"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat42"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat41"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat43"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat45"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat44"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat48"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat51"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat53"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat52"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat54"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat55"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat50"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat58"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat57"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat56"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat62"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat61"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat59"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat60"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat80"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat79"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat64"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat63"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat78"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat77"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat76"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat75"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat81"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat65"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat67"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat20"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat82"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat36"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat35"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat34"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat33"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat32"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat31"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat30"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat29"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat28"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat27"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat24"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat26"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat23"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat25"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat14"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat15"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat13"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat71"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat70"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat69"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat86"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat84"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat83"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat85"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat90"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat88"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat87"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat89"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat94"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat92"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat91"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat93"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat101"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat100"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat99"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat98"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat97"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat96"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat95"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat102"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat103"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat111"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat113"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat114"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat112"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat107"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat109"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat110"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat108"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat106"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat105"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat104"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat122"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat120"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat119"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat121"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat118"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat117"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat116"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat115"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat73"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat72"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat74"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat68"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"plat66"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 634 MovieClip
"checkPoint0"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 231 MovieClip
"star6"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star7"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star9"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star10"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star8"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star0"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star5"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star13"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star15"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star14"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star12"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star11"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star17"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star16"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star18"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star20"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"star19"Symbol 635 MovieClip {Levels.Level_22} Frame 1Symbol 244 MovieClip {StarCollect}
"stone3"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 637 MovieClip
"stone2"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 639 MovieClip
"stone1"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 641 MovieClip
"wall"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 643 MovieClip
"stand"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 645 MovieClip
"golfBall"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 651 MovieClip
"checkPoint0"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 231 MovieClip
"star2"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 244 MovieClip {StarCollect}
"star0"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 244 MovieClip {StarCollect}
"water"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 652 MovieClip
"finishGround"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 654 MovieClip
"disPlat"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 655 MovieClip
"startGround"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 657 MovieClip
"waterGround"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 659 MovieClip
"star3"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 660 MovieClip {Levels.Level_23} Frame 1Symbol 244 MovieClip {StarCollect}
"symbolShow"Symbol 670 MovieClip Frame 1Symbol 669 MovieClip
"door"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 663 MovieClip
"checkPlat1"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 670 MovieClip
"checkPlat2"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 670 MovieClip
"checkPlat3"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 670 MovieClip
"plat1"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat2"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat3"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat5"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat9"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat7"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat6"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat4"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat12"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat11"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat10"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat13"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat14"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat16"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat15"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat18"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat17"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat19"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat20"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"plat8"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 671 MovieClip
"checkPoint0"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 231 MovieClip
"mainGround"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 673 MovieClip
"star0"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 244 MovieClip {StarCollect}
"star4"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 244 MovieClip {StarCollect}
"doorPris"Symbol 674 MovieClip {Levels.Level_24} Frame 1Symbol 314 MovieClip
"plat1"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat2"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat3"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat10"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat11"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat12"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat13"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat14"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat15"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat16"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat17"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat18"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat19"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat20"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat21"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat4"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat5"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat9"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat6"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"plat7"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"wall2"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 677 MovieClip
"wall1"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 677 MovieClip
"flag"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 213 MovieClip {Flag}
"star0"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 244 MovieClip {StarCollect}
"star1"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 244 MovieClip {StarCollect}
"star2"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 244 MovieClip {StarCollect}
"star3"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 244 MovieClip {StarCollect}
"checkPoint0"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 231 MovieClip
"mainGround"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 679 MovieClip
"plat8"Symbol 680 MovieClip {Levels.Level_25} Frame 1Symbol 675 MovieClip
"text"Symbol 754 MovieClip {HelpText} Frame 1Symbol 753 EditableText
"comicsFrame6"Symbol 863 MovieClip {PreGameComics} Frame 1Symbol 830 MovieClip
"comicsFrame5"Symbol 863 MovieClip {PreGameComics} Frame 1Symbol 835 MovieClip
"comicsFrame4"Symbol 863 MovieClip {PreGameComics} Frame 1Symbol 840 MovieClip
"comicsFrame3"Symbol 863 MovieClip {PreGameComics} Frame 1Symbol 848 MovieClip
"comicsFrame2"Symbol 863 MovieClip {PreGameComics} Frame 1Symbol 853 MovieClip
"comicsFrame1"Symbol 863 MovieClip {PreGameComics} Frame 1Symbol 857 MovieClip
"skipButton"Symbol 863 MovieClip {PreGameComics} Frame 1Symbol 862 Button
"kingButton"Symbol 872 MovieClip {movie_fla.ComicsFrame3_348} Frame 1Symbol 148 Button
"backToMainMenuButton"Symbol 872 MovieClip {movie_fla.ComicsFrame3_348} Frame 1Symbol 871 Button
"comicsFrame3"Symbol 883 MovieClip {AfterGameComics} Frame 1Symbol 872 MovieClip {movie_fla.ComicsFrame3_348}
"comicsFrame2"Symbol 883 MovieClip {AfterGameComics} Frame 1Symbol 877 MovieClip
"comicsFrame1"Symbol 883 MovieClip {AfterGameComics} Frame 1Symbol 881 MovieClip
"kingButton"Symbol 894 MovieClip {movie_fla.ComicsFrame1_353} Frame 1Symbol 148 Button
"backToMainMenuButton"Symbol 894 MovieClip {movie_fla.ComicsFrame1_353} Frame 1Symbol 871 Button
"comicsFrame1"Symbol 895 MovieClip {AfterBonusLevelsComics} Frame 1Symbol 894 MovieClip {movie_fla.ComicsFrame1_353}
"cannon"Symbol 910 MovieClip Frame 1Symbol 908 MovieClip
"cannonWheel"Symbol 910 MovieClip Frame 1Symbol 501 MovieClip
"nText"Symbol 924 MovieClip {LevelButton} Frame 1Symbol 920 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata not present, AS3.

Labels

"mainMenu"Frame 3
"creditsMenu"Frame 4
"preGameComics"Frame 5
"afterGameComics"Frame 6
"afterBonusLevelsComics"Frame 7
"selectLevelMenu"Frame 8
"game"Frame 9
"fwgSplash"Frame 10
"off"Symbol 26 MovieClip {ferryRed} Frame 1
"on"Symbol 26 MovieClip {ferryRed} Frame 2
"off"Symbol 29 MovieClip {ferryGreen} Frame 1
"on"Symbol 29 MovieClip {ferryGreen} Frame 2
"off"Symbol 32 MovieClip {ferryBlue} Frame 1
"on"Symbol 32 MovieClip {ferryBlue} Frame 2
"wink"Symbol 98 MovieClip {movie_fla.PlayerSmile_40} Frame 1
"eyesDance"Symbol 98 MovieClip {movie_fla.PlayerSmile_40} Frame 101
"winSmile"Symbol 98 MovieClip {movie_fla.PlayerSmile_40} Frame 201
"underWater"Symbol 98 MovieClip {movie_fla.PlayerSmile_40} Frame 215
"injure"Symbol 98 MovieClip {movie_fla.PlayerSmile_40} Frame 219
"creek"Symbol 98 MovieClip {movie_fla.PlayerSmile_40} Frame 223




http://swfchan.com/19/93000/info.shtml
Created: 27/3 -2019 04:18:36 Last modified: 27/3 -2019 04:18:36 Server time: 26/04 -2024 00:42:52