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

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

ragdollcannon2.swf

This is the info page for
Flash #209061

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


Text
YOUR NAME

<p align="center"><font face="CyrillicOld" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1">this game &nbsp;</font></p><p align="center"><font face="CyrillicOld" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1">is being tested and is currently only playable on BubbleBox.com, a free &nbsp;</font></p><p align="center"><font face="CyrillicOld" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1">version will be available soon!</font></p>

<p align="left"><font face="CyrillicOld" size="28" color="#fff79c" letterSpacing="0.000000" kerning="1"><b>loading...</b></font></p>

<p align="center"><font face="CyrillicOld" size="96" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><a href="http://www.bubblebox.com/" target = "_blank"><b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></font></p><p align="center"><font face="CyrillicOld" size="96" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><a href="http://www.bubblebox.com/" target = "_blank"><b>&nbsp;</b></a></font></p><p align="center"><font face="CyrillicOld" size="96" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><a href="http://www.bubblebox.com/" target = "_blank"><b>&nbsp;</b></a></font></p><p align="center"><font face="CyrillicOld" size="96" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><a href="http://www.bubblebox.com/" target = "_blank"><b>&nbsp;</b></a></font></p><p align="center"><font face="CyrillicOld" size="96" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><a href="http://www.bubblebox.com/" target = "_blank"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="13" color="#000000" letterSpacing="0.000000" kerning="1">initialisator</font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>score</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>levelkey</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 1</b></font></p>

<p align="center"><font face="CyrillicOld" size="15" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:menu"><b>menu</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="15" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:sound"><b>sound</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="15" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>reset</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="15" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:music"><b>music</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 2</b></font></p>

<p align="center"><font face="CyrillicOld" size="15" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:menu"><b>menu</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="15" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:sound"><b>sound</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="15" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>reset</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="15" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:music"><b>music</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1"><a href="event:gotobuble"><b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 3</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 4</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 5</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 6</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 7</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 8</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 9</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 10</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 11</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 12</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 13</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 14</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 15</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 16</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 17</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 18</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 19</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 20</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 21</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 22</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 23</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 24</b></font></p>

<p align="center"><font face="CyrillicOld" size="24" color="#ffffff" letterSpacing="0.000000" kerning="1"><a href="event:gotobuble"><b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 25</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 26</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 27</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 28</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 29</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 30</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 31</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 32</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 33</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 34</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 35</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 36</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 37</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 38</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 39</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffff99" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 40</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 41</b></font></p>

<p align="center"><font face="CyrillicOld" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1"><a href="event:gotobuble"><b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 42</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 43</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 44</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 45</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 46</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 47</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 48</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 49</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 50</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 51</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 52</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 53</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 54</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 55</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 56</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 57</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 58</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 59</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 60</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 61</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 62</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 63</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 64</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 65</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 66</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 67</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 68</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 69</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>score</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><a href="event:reset"><b>levelkey</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>LEVEL 70 (last...)</b></font></p>

<p align="center"><font face="CyrillicOld" size="33" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><a href="mailto:johnny@johnny-k.ru" target = "_blank"><b>BY JOHNNY-K</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="24" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><a href="http://box2d.org" target = "_blank"><b>Physics engine: Box2D</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="17" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><a href="http://johnny-k-s.livejournal.com" target = "_blank"><b>blog (ru)</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="96" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><a href="http://www.flashgamelicense.com" target = "_blank"><b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="33" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><b>Instructions</b></font></p>

1. Shoot the ragdoll guy from the cannon.
Hit the target to go to the next level.

2. 70 levels with new style every 20 levels.

3. Try to make as little shoots as possible.
Like in the golf.

BAD:

GOOD:

<p align="center"><font face="CyrillicOld" size="26" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><a href="event:myes"><b>yes</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="26" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><a href="event:mno"><b>no</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="21" color="#f4e0b4" letterSpacing="0.000000" kerning="1"><b>Go to main menu? Progress will be saved</b></font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1">Play</font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Play</b></font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1">More Games</font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>More Games</b></font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1">Continue</font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Continue</b></font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1">Scores</font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Scores</b></font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1">Instructions</font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Instructions</b></font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1">Credits</font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Credits</b></font></p>

<p align="center"><font face="CyrillicOld" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Level key:</b></font></p>

<p align="left"></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1">OK</font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>OK</b></font></p>

<p align="center"><font face="CyrillicOld" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1"><a href="event:q_low"><b>low</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1"><a href="event:q_medium"><b>medium</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1"><a href="event:q_high"><b>high</b></a></font></p>

<p align="center"><font face="CyrillicOld" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Quality:</b></font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1">Video Walkthrough</font></p>

<p align="center"><font face="CyrillicOld" size="23" color="#ffffff" letterSpacing="0.000000" kerning="1">Video Walkthrough</font></p>

<p align="left"></p>

<p align="center"><font face="CyrillicOld" size="48" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>YOU WIN!</b></font></p>

<p align="center"><font face="CyrillicOld" size="48" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>CONGRATULATIONS!</b></font></p>

<p align="center"><font face="CyrillicOld" size="34" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>Scores:</b></font></p>

<p align="center"><font face="CyrillicOld" size="26" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>go to menu</b></font></p>

<p align="center"><font face="CyrillicOld" size="26" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>go to menu</b></font></p>

ActionScript [AS3]

Section 1
//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 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_radius:Number; public var m_localPosition:b2Vec2; public function b2CircleShape(_arg1:b2ShapeDef){ var _local2:b2CircleDef; m_localPosition = new b2Vec2(); super(_arg1); _local2 = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:b2Mat22; 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; _local6 = _arg1.R; _local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); _local8 = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); _local9 = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); _local11 = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; _local12 = (_arg4.p2.x - _arg4.p1.x); _local13 = (_arg4.p2.y - _arg4.p1.y); _local14 = ((_local9 * _local12) + (_local10 * _local13)); _local15 = ((_local12 * _local12) + (_local13 * _local13)); _local16 = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; _local17 = -((_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 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; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = _arg2.R; _local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; _local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((Math.min(_local5, _local7) - m_radius), (Math.min(_local6, _local8) - m_radius)); _arg1.upperBound.Set((Math.max(_local5, _local7) + m_radius), (Math.max(_local6, _local8) + m_radius)); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number; var _local3:Number; _local2 = (m_localPosition.x - _arg1.x); _local3 = (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; var _local4:Number; var _local5:Number; _local3 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_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; var _local4:Number; var _local5:Number; _local3 = _arg1.R; _local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_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 3
//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(){ mass = 0; center = new b2Vec2(0, 0); I = 0; super(); } } }//package Box2D.Collision.Shapes
Section 4
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertexCount:int; public var vertices:Array; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ var _local1:int; vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; _local1 = 0; 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 5
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_coreVertices:Array; public var m_centroid:b2Vec2; 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 _local2:b2PolygonDef; var _local3:int; var _local4:int; var _local5: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; _local2 = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; _local4 = _local3; _local5 = _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++; }; } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ 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 _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:Number; var _local21:Number; _local6 = 0; _local7 = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; _local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local13 = ((_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; _local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local18 = -1; _local19 = 0; while (_local19 < m_vertexCount) { _local8 = (m_vertices[_local19].x - _local12); _local9 = (m_vertices[_local19].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 _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; 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; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (1 / 3); _local9 = 0; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[(_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 Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:int; var _local8:Number; var _local9:int; var _local10:b2Vec2; var _local11:Number; _local4 = _arg1.R; _local5 = ((_arg2 * _local4.col1.x) + (_arg3 * _local4.col1.y)); _local6 = ((_arg2 * _local4.col2.x) + (_arg3 * _local4.col2.y)); _local7 = 0; _local8 = ((m_coreVertices[0].x * _local5) + (m_coreVertices[0].y * _local6)); _local9 = 1; while (_local9 < m_vertexCount) { _local11 = ((m_coreVertices[_local9].x * _local5) + (m_coreVertices[_local9].y * _local6)); if (_local11 > _local8){ _local7 = _local9; _local8 = _local11; }; _local9++; }; _local4 = _arg1.R; _local10 = m_coreVertices[_local7]; s_supportVec.x = (_arg1.position.x + ((_local4.col1.x * _local10.x) + (_local4.col2.x * _local10.y))); s_supportVec.y = (_arg1.position.y + ((_local4.col1.y * _local10.x) + (_local4.col2.y * _local10.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB; var _local5:b2AABB; _local4 = s_sweptAABB1; _local5 = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(Math.min(_local4.lowerBound.x, _local5.lowerBound.x), Math.min(_local4.lowerBound.y, _local5.lowerBound.y)); _arg1.upperBound.Set(Math.max(_local4.upperBound.x, _local5.upperBound.x), Math.max(_local4.upperBound.y, _local5.upperBound.y)); } public function GetVertices():Array{ return (m_vertices); } 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 UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:int; var _local3:Number; var _local4:Number; m_sweepRadius = 0; _local2 = 0; while (_local2 < m_vertexCount) { _local3 = (m_coreVertices[_local2].x - _arg1.x); _local4 = (m_coreVertices[_local2].y - _arg1.y); _local3 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); m_sweepRadius = Math.max(m_sweepRadius, _local3); _local2++; }; } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = 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(); _local6 = _local5; _local4 = m_obb.extents; _local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); _local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; _local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local10 = (_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 TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Number; _local3 = _arg1.R; _local4 = (_arg2.x - _arg1.position.x); _local5 = (_arg2.y - _arg1.position.y); _local6 = ((_local4 * _local3.col1.x) + (_local5 * _local3.col1.y)); _local7 = ((_local4 * _local3.col2.x) + (_local5 * _local3.col2.y)); _local8 = 0; while (_local8 < m_vertexCount) { _local4 = (_local6 - m_vertices[_local8].x); _local5 = (_local7 - m_vertices[_local8].y); _local9 = ((m_normals[_local8].x * _local4) + (m_normals[_local8].y * _local5)); if (_local9 > 0){ return (false); }; _local8++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; 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(); _local4 = 0; _local5 = 0; _local6 = 0; _local7 = (1 / 3); _local8 = 0; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[(_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 _local5:Array; var _local6:Number; 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; _local5 = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; _local6 = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[(_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)); _local13 = Math.min(_local13, _local21); _local14 = Math.min(_local14, _local22); _local15 = Math.max(_local15, _local21); _local16 = Math.max(_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 6
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_userData; public var m_density:Number; public var m_proxyId:uint; public var m_friction:Number; public var m_isSensor:Boolean; public var m_groupIndex:int; public var m_categoryBits:uint; public var m_restitution:Number; public var m_body:b2Body; public var m_maskBits:uint; 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_categoryBits = _arg1.categoryBits; m_maskBits = _arg1.maskBits; m_groupIndex = _arg1.groupIndex; m_isSensor = _arg1.isSensor; } 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 TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function IsSensor():Boolean{ return (m_isSensor); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ var _local4:b2AABB; if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; _local4 = 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 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; var _local4:Boolean; _local3 = s_proxyAABB; ComputeAABB(_local3, _arg2); _local4 = _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 function ResetProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); }; _local3 = s_resetAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } 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 7
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var groupIndex:int; public var categoryBits:int; public var density:Number; public var type:int; public var restitution:Number; public var maskBits:int; public var userData;// = null public var friction:Number; public var isSensor:Boolean; public function b2ShapeDef(){ userData = null; super(); type = b2Shape.e_unknownShape; userData = null; friction = 0.2; restitution = 0; density = 0; categoryBits = 1; maskBits = 0xFFFF; groupIndex = 0; isSensor = false; } } }//package Box2D.Collision.Shapes
Section 8
//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; var _local2:Number; var _local3:Boolean; _local1 = (upperBound.x - lowerBound.x); _local2 = (upperBound.y - lowerBound.y); _local3 = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 9
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var proxyId:uint; public var stabbingCount:uint; public var value:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint; var _local3:uint; var _local4:uint; _local2 = value; _local3 = proxyId; _local4 = 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 10
//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 11
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_bounds:Array; 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 _local4:Number; 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++; }; _local4 = (_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[(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 _local4:Array; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:int; var _local12:b2Proxy; _local4 = new Array(); _local5 = new Array(); ComputeBounds(_local4, _local5, _arg1); _local8 = [_local6]; _local9 = [_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); _local10 = 0; _local11 = 0; 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{ if ((((_arg1 == b2Pair.b2_nullProxy)) || ((m_proxyPool[_arg1].IsValid() == false)))){ return (null); }; return (m_proxyPool[_arg1]); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { m_proxyPool[_local1].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 _local8:uint; var _local9:uint; var _local10:uint; var _local11:int; var _local12:int; var _local13:b2Proxy; _local8 = BinarySearch(_arg5, _arg6, _arg3); _local9 = BinarySearch(_arg5, _arg6, _arg4); _local10 = _local8; while (_local10 < _local9) { if (_arg5[_local10].IsLower()){ IncrementOverlapCount(_arg5[_local10].proxyId); }; _local10++; }; if (_local8 > 0){ _local11 = (_local8 - 1); _local12 = _arg5[_local11].stabbingCount; while (_local12) { if (_arg5[_local11].IsLower()){ _local13 = m_proxyPool[_arg5[_local11].proxyId]; if (_local8 <= _local13.upperBounds[_arg7]){ IncrementOverlapCount(_arg5[_local11].proxyId); _local12--; }; }; _local11--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; if (_local4[_arg1.lowerBounds[_local3]].value > _local4[_arg2.upperBounds[_local3]].value){ return (false); }; if (_local4[_arg1.upperBounds[_local3]].value < _local4[_arg2.lowerBounds[_local3]].value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = _arg3.lowerBound.x; _local5 = _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); _local6 = _arg3.upperBound.x; _local7 = _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 _local5:uint; var _local6:uint; var _local7:Array; var _local8:Array; var _local9:int; var _local10:int; 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:int; var _local22:b2Proxy; _local5 = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; _local6 = (2 * m_proxyCount); _local7 = new Array(); _local8 = new Array(); ComputeBounds(_local7, _local8, _arg1); _local9 = 0; 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[(_local13 + _local17)]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local21 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[(_local21 + _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[(_local12 + _local17)]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local21 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[(_local21 + _local17)]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local11[_local12].value = _local7[_local9]; _local11[_local12].proxyId = _local5; _local11[_local13].value = _local8[_local9]; _local11[_local13].proxyId = _local5; _local11[_local12].stabbingCount = ((_local12 == 0)) ? 0 : _local11[(_local12 - 1)].stabbingCount; _local11[_local13].stabbingCount = _local11[(_local13 - 1)].stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local11[_local3].stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local22 = m_proxyPool[_local11[_local3].proxyId]; if (_local11[_local3].IsLower()){ _local22.lowerBounds[_local9] = _local3; } else { _local22.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; _local10 = 0; 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:b2Proxy; var _local3:int; var _local4:int; var _local5:int; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:Array; var _local12:int; var _local13:int; var _local14:b2Bound; var _local15:b2Bound; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; _local2 = m_proxyPool[_arg1]; _local3 = (2 * m_proxyCount); _local4 = 0; while (_local4 < 2) { _local6 = m_bounds[_local4]; _local7 = _local2.lowerBounds[_local4]; _local8 = _local2.upperBounds[_local4]; _local9 = _local6[_local7].value; _local10 = _local6[_local8].value; _local11 = new Array(); _local13 = ((_local8 - _local7) - 1); _local12 = 0; while (_local12 < _local13) { _local11[_local12] = new b2Bound(); _local14 = _local11[_local12]; _local15 = _local6[((_local7 + 1) + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local13 = _local11.length; _local16 = _local7; _local12 = 0; while (_local12 < _local13) { _local15 = _local11[_local12]; _local14 = _local6[(_local16 + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local11 = new Array(); _local13 = ((_local3 - _local8) - 1); _local12 = 0; while (_local12 < _local13) { _local11[_local12] = new b2Bound(); _local14 = _local11[_local12]; _local15 = _local6[((_local8 + 1) + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local13 = _local11.length; _local16 = (_local8 - 1); _local12 = 0; while (_local12 < _local13) { _local15 = _local11[_local12]; _local14 = _local6[(_local16 + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local13 = (_local3 - 2); _local17 = _local7; while (_local17 < _local13) { _local19 = m_proxyPool[_local6[_local17].proxyId]; if (_local6[_local17].IsLower()){ _local19.lowerBounds[_local4] = _local17; } else { _local19.upperBounds[_local4] = _local17; }; _local17++; }; _local13 = (_local8 - 1); _local18 = _local7; while (_local18 < _local13) { _local6[_local18].stabbingCount--; _local18++; }; Query([0], [0], _local9, _local10, _local6, (_local3 - 2), _local4); _local4++; }; _local5 = 0; while (_local5 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local5]); _local5++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local2.userData = null; _local2.overlapCount = b2_invalid; _local2.lowerBounds[0] = b2_invalid; _local2.lowerBounds[1] = b2_invalid; _local2.upperBounds[0] = b2_invalid; _local2.upperBounds[1] = b2_invalid; _local2.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; if (_arg1.lowerValues[_local3] > _local4[_arg2.upperBounds[_local3]].value){ return (false); }; if (_arg1.upperValues[_local3] < _local4[_arg2.lowerBounds[_local3]].value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local5:int; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; _local5 = 0; 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; _local2 = 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:uint; var _local4:uint; var _local5:b2Bound; var _local6:b2Bound; var _local7:b2Bound; var _local8:uint; var _local9:b2Proxy; var _local10:uint; var _local11:b2Proxy; var _local12:b2BoundValues; var _local13:b2BoundValues; var _local14:Array; var _local15:uint; var _local16:uint; var _local17:uint; var _local18:uint; var _local19:int; var _local20:int; var _local21:uint; var _local22:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; _local10 = (2 * m_proxyCount); _local11 = m_proxyPool[_arg1]; _local12 = new b2BoundValues(); ComputeBounds(_local12.lowerValues, _local12.upperValues, _arg2); _local13 = new b2BoundValues(); _local3 = 0; while (_local3 < 2) { _local13.lowerValues[_local3] = m_bounds[_local3][_local11.lowerBounds[_local3]].value; _local13.upperValues[_local3] = m_bounds[_local3][_local11.upperBounds[_local3]].value; _local3++; }; _local3 = 0; while (_local3 < 2) { _local14 = m_bounds[_local3]; _local15 = _local11.lowerBounds[_local3]; _local16 = _local11.upperBounds[_local3]; _local17 = _local12.lowerValues[_local3]; _local18 = _local12.upperValues[_local3]; _local19 = (_local17 - _local14[_local15].value); _local20 = (_local18 - _local14[_local16].value); _local14[_local15].value = _local17; _local14[_local16].value = _local18; if (_local19 < 0){ _local4 = _local15; while ((((_local4 > 0)) && ((_local17 < _local14[(_local4 - 1)].value)))) { _local5 = _local14[_local4]; _local6 = _local14[(_local4 - 1)]; _local21 = _local6.proxyId; _local22 = m_proxyPool[_local6.proxyId]; _local6.stabbingCount++; if (_local6.IsUpper() == true){ if (TestOverlap(_local12, _local22)){ m_pairManager.AddBufferedPair(_arg1, _local21); }; var _local23 = _local22.upperBounds; var _local24 = _local3; var _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount++; } else { _local23 = _local22.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount--; }; _local23 = _local11.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.Swap(_local6); _local4--; }; }; if (_local20 > 0){ _local4 = _local16; while ((((_local4 < (_local10 - 1))) && ((_local14[(_local4 + 1)].value <= _local18)))) { _local5 = _local14[_local4]; _local7 = _local14[(_local4 + 1)]; _local8 = _local7.proxyId; _local9 = m_proxyPool[_local8]; _local7.stabbingCount++; if (_local7.IsLower() == true){ if (TestOverlap(_local12, _local9)){ m_pairManager.AddBufferedPair(_arg1, _local8); }; _local23 = _local9.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount++; } else { _local23 = _local9.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount--; }; _local23 = _local11.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.Swap(_local7); _local4++; }; }; if (_local19 > 0){ _local4 = _local15; while ((((_local4 < (_local10 - 1))) && ((_local14[(_local4 + 1)].value <= _local17)))) { _local5 = _local14[_local4]; _local7 = _local14[(_local4 + 1)]; _local8 = _local7.proxyId; _local9 = m_proxyPool[_local8]; _local7.stabbingCount--; if (_local7.IsUpper()){ if (TestOverlap(_local13, _local9)){ m_pairManager.RemoveBufferedPair(_arg1, _local8); }; _local23 = _local9.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount--; } else { _local23 = _local9.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount++; }; _local23 = _local11.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.Swap(_local7); _local4++; }; }; if (_local20 < 0){ _local4 = _local16; while ((((_local4 > 0)) && ((_local18 < _local14[(_local4 - 1)].value)))) { _local5 = _local14[_local4]; _local6 = _local14[(_local4 - 1)]; _local21 = _local6.proxyId; _local22 = m_proxyPool[_local21]; _local6.stabbingCount--; if (_local6.IsLower() == true){ if (TestOverlap(_local13, _local22)){ m_pairManager.RemoveBufferedPair(_arg1, _local21); }; _local23 = _local22.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount--; } else { _local23 = _local22.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount++; }; _local23 = _local11.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.Swap(_local6); _local4--; }; }; _local3++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local4:int; var _local5:int; var _local6:int; _local4 = 0; _local5 = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); if (_arg1[_local6].value > _arg3){ _local5 = (_local6 - 1); } else { if (_arg1[_local6].value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 12
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 13
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; public static const b2_oldPoint:uint = 4; public static const b2_newPoint:uint = 2; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:int; var _local13:Number; var _local14:int; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local6 = _arg2.R; _local7 = _arg1.m_normals[_arg3]; _local8 = ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)); _local9 = ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)); _local6 = _arg5.R; _local10 = ((_local6.col1.x * _local8) + (_local6.col1.y * _local9)); _local11 = ((_local6.col2.x * _local8) + (_local6.col2.y * _local9)); _local12 = 0; _local13 = Number.MAX_VALUE; _local14 = 0; while (_local14 < _arg4.m_vertexCount) { _local7 = _arg4.m_vertices[_local14]; _local20 = ((_local7.x * _local10) + (_local7.y * _local11)); if (_local20 < _local13){ _local13 = _local20; _local12 = _local14; }; _local14++; }; _local7 = _arg1.m_vertices[_arg3]; _local6 = _arg2.R; _local15 = (_arg2.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local16 = (_arg2.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local7 = _arg4.m_vertices[_local12]; _local6 = _arg5.R; _local17 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local18 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local17 = (_local17 - _local15); _local18 = (_local18 - _local16); _local19 = ((_local17 * _local8) + (_local18 * _local9)); return (_local19); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = _arg2.lowerBound; _local4 = _arg1.upperBound; _local5 = (_local3.x - _local4.x); _local6 = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; _local7 = (_local3.x - _local4.x); _local8 = (_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 _local7:b2Mat22; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:int; var _local13:Number; var _local14:int; var _local15:ClipVertex; var _local16:int; var _local17:int; var _local18:Number; _local7 = _arg3.R; _local8 = _arg2.m_normals[_arg4]; _local9 = ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)); _local10 = ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)); _local7 = _arg6.R; _local11 = ((_local7.col1.x * _local9) + (_local7.col1.y * _local10)); _local10 = ((_local7.col2.x * _local9) + (_local7.col2.y * _local10)); _local9 = _local11; _local12 = 0; _local13 = Number.MAX_VALUE; _local14 = 0; while (_local14 < _arg5.m_vertexCount) { _local8 = _arg5.m_normals[_local14]; _local18 = ((_local9 * _local8.x) + (_local10 * _local8.y)); if (_local18 < _local13){ _local13 = _local18; _local12 = _local14; }; _local14++; }; _local16 = _local12; _local17 = (((_local16 + 1) < _arg5.m_vertexCount)) ? (_local16 + 1) : 0; _local15 = _arg1[0]; _local8 = _arg5.m_vertices[_local16]; _local7 = _arg6.R; _local15.v.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local15.v.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local15.id.features.referenceFace = _arg4; _local15.id.features.incidentEdge = _local16; _local15.id.features.incidentVertex = 0; _local15 = _arg1[1]; _local8 = _arg5.m_vertices[_local17]; _local7 = _arg6.R; _local15.v.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local15.v.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local15.id.features.referenceFace = _arg4; _local15.id.features.incidentEdge = _local17; _local15.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:int; var _local7:Array; var _local8:Number; var _local9:int; var _local10:Array; var _local11:Number; var _local12:b2PolygonShape; var _local13:b2PolygonShape; var _local14:b2XForm; var _local15:b2XForm; var _local16:int; var _local17:uint; var _local18:Number; var _local19:Number; var _local20:Array; var _local21:int; var _local22:Array; var _local23:b2Vec2; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:b2Vec2; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Array; var _local32:Array; var _local33:int; var _local34:int; var _local35:int; var _local36:Number; var _local37:b2ManifoldPoint; _arg1.pointCount = 0; _local6 = 0; _local7 = [_local6]; _local8 = FindMaxSeparation(_local7, _arg2, _arg3, _arg4, _arg5); _local6 = _local7[0]; if (_local8 > 0){ return; }; _local9 = 0; _local10 = [_local9]; _local11 = FindMaxSeparation(_local10, _arg4, _arg5, _arg2, _arg3); _local9 = _local10[0]; if (_local11 > 0){ return; }; _local14 = new b2XForm(); _local15 = new b2XForm(); _local18 = 0.98; _local19 = 0.001; if (_local11 > ((_local18 * _local8) + _local19)){ _local12 = _arg4; _local13 = _arg2; _local14.Set(_arg5); _local15.Set(_arg3); _local16 = _local9; _local17 = 1; } else { _local12 = _arg2; _local13 = _arg4; _local14.Set(_arg3); _local15.Set(_arg5); _local16 = _local6; _local17 = 0; }; _local20 = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local20, _local12, _local14, _local16, _local13, _local15); _local21 = _local12.m_vertexCount; _local22 = _local12.m_vertices; _local23 = _local22[_local16].Copy(); _local24 = (((_local16 + 1) < _local21)) ? _local22[(_local16 + 1)].Copy() : _local22[0].Copy(); _local25 = b2Math.SubtractVV(_local24, _local23); _local26 = b2Math.b2MulMV(_local14.R, b2Math.SubtractVV(_local24, _local23)); _local26.Normalize(); _local27 = b2Math.b2CrossVF(_local26, 1); _local23 = b2Math.b2MulX(_local14, _local23); _local24 = b2Math.b2MulX(_local14, _local24); _local28 = b2Math.b2Dot(_local27, _local23); _local29 = -(b2Math.b2Dot(_local26, _local23)); _local30 = b2Math.b2Dot(_local26, _local24); _local31 = [new ClipVertex(), new ClipVertex()]; _local32 = [new ClipVertex(), new ClipVertex()]; _local33 = ClipSegmentToLine(_local31, _local20, _local26.Negative(), _local29); if (_local33 < 2){ return; }; _local33 = ClipSegmentToLine(_local32, _local31, _local26, _local30); if (_local33 < 2){ return; }; _arg1.normal = (_local17) ? _local27.Negative() : _local27.Copy(); _local34 = 0; _local35 = 0; while (_local35 < b2Settings.b2_maxManifoldPoints) { _local36 = (b2Math.b2Dot(_local27, _local32[_local35].v) - _local28); if (_local36 <= 0){ _local37 = _arg1.points[_local34]; _local37.separation = _local36; _local37.localPoint1 = b2Math.b2MulXT(_arg3, _local32[_local35].v); _local37.localPoint2 = b2Math.b2MulXT(_arg5, _local32[_local35].v); _local37.id.key = _local32[_local35].id.key; _local37.id.features.flip = _local17; _local34++; }; _local35++; }; _arg1.pointCount = _local34; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:int; var _local14:Number; var _local15:int; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:Number; var _local21:int; var _local22:Number; var _local23:int; var _local24:Number; _local6 = _arg2.m_vertexCount; _local8 = _arg5.R; _local7 = _arg4.m_centroid; _local9 = (_arg5.position.x + ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y))); _local10 = (_arg5.position.y + ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y))); _local8 = _arg3.R; _local7 = _arg2.m_centroid; _local9 = (_local9 - (_arg3.position.x + ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y)))); _local10 = (_local10 - (_arg3.position.y + ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y)))); _local11 = ((_local9 * _arg3.R.col1.x) + (_local10 * _arg3.R.col1.y)); _local12 = ((_local9 * _arg3.R.col2.x) + (_local10 * _arg3.R.col2.y)); _local13 = 0; _local14 = -(Number.MAX_VALUE); _local15 = 0; while (_local15 < _local6) { _local24 = ((_arg2.m_normals[_local15].x * _local11) + (_arg2.m_normals[_local15].y * _local12)); if (_local24 > _local14){ _local14 = _local24; _local13 = _local15; }; _local15++; }; _local16 = EdgeSeparation(_arg2, _arg3, _local13, _arg4, _arg5); if (_local16 > 0){ return (_local16); }; _local17 = (((_local13 - 1) >= 0)) ? (_local13 - 1) : (_local6 - 1); _local18 = EdgeSeparation(_arg2, _arg3, _local17, _arg4, _arg5); if (_local18 > 0){ return (_local18); }; _local19 = (((_local13 + 1) < _local6)) ? (_local13 + 1) : 0; _local20 = EdgeSeparation(_arg2, _arg3, _local19, _arg4, _arg5); if (_local20 > 0){ return (_local20); }; if ((((_local18 > _local16)) && ((_local18 > _local20)))){ _local23 = -1; _local21 = _local17; _local22 = _local18; } else { if (_local20 > _local16){ _local23 = 1; _local21 = _local19; _local22 = _local20; } else { _arg1[0] = _local13; return (_local16); }; }; while (true) { if (_local23 == -1){ _local13 = (((_local21 - 1) >= 0)) ? (_local21 - 1) : (_local6 - 1); } else { _local13 = (((_local21 + 1) < _local6)) ? (_local21 + 1) : 0; }; _local16 = EdgeSeparation(_arg2, _arg3, _local13, _arg4, _arg5); if (_local16 > 0){ return (_local16); }; if (_local16 > _local22){ _local21 = _local13; _local22 = _local16; } else { break; }; }; _arg1[0] = _local21; return (_local22); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:int; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; _local5 = 0; _local6 = _arg2[0].v; _local7 = _arg2[1].v; _local8 = (b2Math.b2Dot(_arg3, _local6) - _arg4); _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); if (_local8 <= 0){ var _temp1 = _local5; _local5 = (_local5 + 1); var _local12 = _temp1; _arg1[_local12] = _arg2[0]; }; if (_local9 <= 0){ var _temp2 = _local5; _local5 = (_local5 + 1); _local12 = _temp2; _arg1[_local12] = _arg2[1]; }; if ((_local8 * _local9) < 0){ _local10 = (_local8 / (_local8 - _local9)); _local11 = _arg1[_local5].v; _local11.x = (_local6.x + (_local10 * (_local7.x - _local6.x))); _local11.y = (_local6.y + (_local10 * (_local7.y - _local6.y))); if (_local8 > 0){ _arg1[_local5].id = _arg2[0].id; } else { _arg1[_local5].id = _arg2[1].id; }; _local5++; }; return (_local5); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; 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:b2ManifoldPoint; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; _local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local14 = ((_local12 * _local12) + (_local13 * _local13)); _local15 = (_arg2.m_radius + _arg4.m_radius); if (_local14 > (_local15 * _local15)){ return; }; if (_local14 < Number.MIN_VALUE){ _local16 = -(_local15); _arg1.normal.Set(0, 1); } else { _local22 = Math.sqrt(_local14); _local16 = (_local22 - _local15); _local23 = (1 / _local22); _arg1.normal.x = (_local23 * _local12); _arg1.normal.y = (_local23 * _local13); }; _arg1.pointCount = 1; _local17 = _arg1.points[0]; _local17.id.key = 0; _local17.separation = _local16; _local8 = (_local8 + (_arg2.m_radius * _arg1.normal.x)); _local9 = (_local9 + (_arg2.m_radius * _arg1.normal.y)); _local10 = (_local10 - (_arg4.m_radius * _arg1.normal.x)); _local11 = (_local11 - (_arg4.m_radius * _arg1.normal.y)); _local18 = (0.5 * (_local8 + _local10)); _local19 = (0.5 * (_local9 + _local11)); _local20 = (_local18 - _arg3.position.x); _local21 = (_local19 - _arg3.position.y); _local17.localPoint1.x = ((_local20 * _arg3.R.col1.x) + (_local21 * _arg3.R.col1.y)); _local17.localPoint1.y = ((_local20 * _arg3.R.col2.x) + (_local21 * _arg3.R.col2.y)); _local20 = (_local18 - _arg5.position.x); _local21 = (_local19 - _arg5.position.y); _local17.localPoint2.x = ((_local20 * _arg5.R.col1.x) + (_local21 * _arg5.R.col1.y)); _local17.localPoint2.y = ((_local20 * _arg5.R.col2.x) + (_local21 * _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 _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; var _local21:int; var _local22:int; var _local23:int; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; _local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); _local14 = (_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; _local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local18 = 0; _local19 = -(Number.MAX_VALUE); _local20 = _arg4.m_radius; _local21 = 0; while (_local21 < _arg2.m_vertexCount) { _local7 = (_local15 - _arg2.m_vertices[_local21].x); _local8 = (_local16 - _arg2.m_vertices[_local21].y); _local30 = ((_arg2.m_normals[_local21].x * _local7) + (_arg2.m_normals[_local21].y * _local8)); if (_local30 > _local20){ return; }; if (_local30 > _local19){ _local19 = _local30; _local18 = _local21; }; _local21++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _arg2.m_normals[_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.referenceFace = b2_nullFeature; _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; }; _local22 = _local18; _local23 = (((_local22 + 1) < _arg2.m_vertexCount)) ? (_local22 + 1) : 0; _local24 = (_arg2.m_vertices[_local23].x - _arg2.m_vertices[_local22].x); _local25 = (_arg2.m_vertices[_local23].y - _arg2.m_vertices[_local22].y); _local26 = Math.sqrt(((_local24 * _local24) + (_local25 * _local25))); _local24 = (_local24 / _local26); _local25 = (_local25 / _local26); if (_local26 < Number.MIN_VALUE){ _local7 = (_local15 - _arg2.m_vertices[_local22].x); _local8 = (_local16 - _arg2.m_vertices[_local22].y); _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)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local22; _local6.id.features.referenceFace = b2_nullFeature; _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 = (_local17 - _local20); return; }; _local7 = (_local15 - _arg2.m_vertices[_local22].x); _local8 = (_local16 - _arg2.m_vertices[_local22].y); _local27 = ((_local7 * _local24) + (_local8 * _local25)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceFace = b2_nullFeature; _local6.id.features.flip = 0; if (_local27 <= 0){ _local28 = _arg2.m_vertices[_local22].x; _local29 = _arg2.m_vertices[_local22].y; _local6.id.features.incidentVertex = _local22; } else { if (_local27 >= _local26){ _local28 = _arg2.m_vertices[_local23].x; _local29 = _arg2.m_vertices[_local23].y; _local6.id.features.incidentVertex = _local23; } else { _local28 = ((_local24 * _local27) + _arg2.m_vertices[_local22].x); _local29 = ((_local25 * _local27) + _arg2.m_vertices[_local22].y); _local6.id.features.incidentEdge = _local22; }; }; _local7 = (_local15 - _local28); _local8 = (_local16 - _local29); _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); } } }//package Box2D.Collision
Section 14
//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; _local1 = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceFace = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 15
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var normalForce:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var tangentForce:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public function b2ContactPoint(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 16
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local4:Number; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local4 = (100 * Number.MIN_VALUE); _local5 = 0; while (_local5 < _arg3) { _local6 = Math.abs((_arg1.x - _arg2[_local5].x)); _local7 = Math.abs((_arg1.y - _arg2[_local5].y)); _local8 = Math.max(Math.abs(_arg1.x), Math.abs(_arg2[_local5].x)); _local9 = Math.max(Math.abs(_arg1.y), Math.abs(_arg2[_local5].y)); if ((((_local6 < (_local4 * (_local8 + 1)))) && ((_local7 < (_local4 * (_local9 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:Array; var _local8:Array; var _local9:Array; var _local10:int; var _local11:Number; var _local12:int; var _local13:int; var _local14:Number; var _local15:Number; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; _local7 = s_p1s; _local8 = s_p2s; _local9 = s_points; _local10 = 0; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); _local11 = 0; _local12 = 20; _local13 = 0; while (_local13 < _local12) { _local14 = (_arg2.x - _arg1.x); _local15 = (_arg2.y - _arg1.y); _local16 = _arg3.Support(_arg4, _local14, _local15); _local17 = _arg5.Support(_arg6, -(_local14), -(_local15)); _local11 = ((_local14 * _local14) + (_local15 * _local15)); _local18 = (_local17.x - _local16.x); _local19 = (_local17.y - _local16.y); _local20 = ((_local14 * _local18) + (_local15 * _local19)); if ((_local11 - ((_local14 * _local18) + (_local15 * _local19))) <= (0.01 * _local11)){ if (_local10 == 0){ _arg1.SetV(_local16); _arg2.SetV(_local17); }; g_GJK_Iterations = _local13; return (Math.sqrt(_local11)); }; switch (_local10){ case 0: _local7[0].SetV(_local16); _local8[0].SetV(_local17); _local9[0].Set(_local18, _local19); _arg1.SetV(_local7[0]); _arg2.SetV(_local8[0]); _local10++; break; case 1: _local7[1].SetV(_local16); _local8[1].SetV(_local17); _local9[1].x = _local18; _local9[1].y = _local19; _local10 = ProcessTwo(_arg1, _arg2, _local7, _local8, _local9); break; case 2: _local7[2].SetV(_local16); _local8[2].SetV(_local17); _local9[2].x = _local18; _local9[2].y = _local19; _local10 = ProcessThree(_arg1, _arg2, _local7, _local8, _local9); break; }; if (_local10 == 3){ g_GJK_Iterations = _local13; return (0); }; _local21 = -(Number.MAX_VALUE); _local22 = 0; while (_local22 < _local10) { _local21 = b2Math.b2Max(_local21, ((_local9[_local22].x * _local9[_local22].x) + (_local9[_local22].y * _local9[_local22].y))); _local22++; }; if ((((_local10 == 3)) || ((_local11 <= ((100 * Number.MIN_VALUE) * _local21))))){ g_GJK_Iterations = _local13; _local14 = (_arg2.x - _arg1.x); _local15 = (_arg2.y - _arg1.y); _local11 = ((_local14 * _local14) + (_local15 * _local15)); return (Math.sqrt(_local11)); }; _local13++; }; g_GJK_Iterations = _local12; return (Math.sqrt(_local11)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; 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; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; _local9 = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local10 = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; _local11 = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local12 = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); _local16 = (_arg3.m_radius - b2Settings.b2_toiSlop); _local17 = (_arg5.m_radius - b2Settings.b2_toiSlop); _local18 = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; _local6 = _arg5[0].x; _local7 = _arg5[0].y; _local8 = _arg5[1].x; _local9 = _arg5[1].y; _local10 = _arg5[2].x; _local11 = _arg5[2].y; _local12 = (_local8 - _local6); _local13 = (_local9 - _local7); _local14 = (_local10 - _local6); _local15 = (_local11 - _local7); _local16 = (_local10 - _local8); _local17 = (_local11 - _local9); _local18 = -(((_local6 * _local12) + (_local7 * _local13))); _local19 = ((_local8 * _local12) + (_local9 * _local13)); _local20 = -(((_local6 * _local14) + (_local7 * _local15))); _local21 = ((_local10 * _local14) + (_local11 * _local15)); _local22 = -(((_local8 * _local16) + (_local9 * _local17))); _local23 = ((_local10 * _local16) + (_local11 * _local17)); if ((((_local21 <= 0)) && ((_local23 <= 0)))){ _arg1.SetV(_arg3[2]); _arg2.SetV(_arg4[2]); _arg3[0].SetV(_arg3[2]); _arg4[0].SetV(_arg4[2]); _arg5[0].SetV(_arg5[2]); return (1); }; _local24 = ((_local12 * _local15) - (_local13 * _local14)); _local25 = (_local24 * ((_local6 * _local9) - (_local7 * _local8))); _local27 = (_local24 * ((_local8 * _local11) - (_local9 * _local10))); if ((((((_local27 <= 0)) && ((_local22 >= 0)))) && ((_local23 >= 0)))){ _local26 = (_local22 / (_local22 + _local23)); _arg1.x = (_arg3[1].x + (_local26 * (_arg3[2].x - _arg3[1].x))); _arg1.y = (_arg3[1].y + (_local26 * (_arg3[2].y - _arg3[1].y))); _arg2.x = (_arg4[1].x + (_local26 * (_arg4[2].x - _arg4[1].x))); _arg2.y = (_arg4[1].y + (_local26 * (_arg4[2].y - _arg4[1].y))); _arg3[0].SetV(_arg3[2]); _arg4[0].SetV(_arg4[2]); _arg5[0].SetV(_arg5[2]); return (2); }; _local28 = (_local24 * ((_local10 * _local7) - (_local11 * _local6))); if ((((((_local28 <= 0)) && ((_local20 >= 0)))) && ((_local21 >= 0)))){ _local26 = (_local20 / (_local20 + _local21)); _arg1.x = (_arg3[0].x + (_local26 * (_arg3[2].x - _arg3[0].x))); _arg1.y = (_arg3[0].y + (_local26 * (_arg3[2].y - _arg3[0].y))); _arg2.x = (_arg4[0].x + (_local26 * (_arg4[2].x - _arg4[0].x))); _arg2.y = (_arg4[0].y + (_local26 * (_arg4[2].y - _arg4[0].y))); _arg3[1].SetV(_arg3[2]); _arg4[1].SetV(_arg4[2]); _arg5[1].SetV(_arg5[2]); return (2); }; _local29 = ((_local27 + _local28) + _local25); _local29 = (1 / _local29); _local30 = (_local27 * _local29); _local31 = (_local28 * _local29); _local32 = ((1 - _local30) - _local31); _arg1.x = (((_local30 * _arg3[0].x) + (_local31 * _arg3[1].x)) + (_local32 * _arg3[2].x)); _arg1.y = (((_local30 * _arg3[0].y) + (_local31 * _arg3[1].y)) + (_local32 * _arg3[2].y)); _arg2.x = (((_local30 * _arg4[0].x) + (_local31 * _arg4[1].x)) + (_local32 * _arg4[2].x)); _arg2.y = (((_local30 * _arg4[0].y) + (_local31 * _arg4[1].y)) + (_local32 * _arg4[2].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 _local9:b2Point; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local9 = 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))); _local10 = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); _local11 = (_arg5.GetRadius() - 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; var _local8:int; _local7 = _arg3.GetType(); _local8 = _arg5.GetType(); 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 _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _local6 = -(_arg5[1].x); _local7 = -(_arg5[1].y); _local8 = (_arg5[0].x - _arg5[1].x); _local9 = (_arg5[0].y - _arg5[1].y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = ((_local6 * _local8) + (_local7 * _local9)); if ((((_local11 <= 0)) || ((_local10 < Number.MIN_VALUE)))){ _arg1.SetV(_arg3[1]); _arg2.SetV(_arg4[1]); _arg3[0].SetV(_arg3[1]); _arg4[0].SetV(_arg4[1]); _arg5[0].SetV(_arg5[1]); return (1); }; _local11 = (_local11 / _local10); _arg1.x = (_arg3[1].x + (_local11 * (_arg3[0].x - _arg3[1].x))); _arg1.y = (_arg3[1].y + (_local11 * (_arg3[0].y - _arg3[1].y))); _arg2.x = (_arg4[1].x + (_local11 * (_arg4[0].x - _arg4[1].x))); _arg2.y = (_arg4[1].y + (_local11 * (_arg4[0].y - _arg4[1].y))); return (2); } } }//package Box2D.Collision
Section 17
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var pointCount:int;// = 0 public var normal:b2Vec2; public function b2Manifold(){ var _local1:int; pointCount = 0; super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ var _local2:int; pointCount = _arg1.pointCount; _local2 = 0; 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; _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 18
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var normalForce:Number; public var separation:Number; public var id:b2ContactID; public var localPoint2:b2Vec2; public var localPoint1:b2Vec2; public var tangentForce:Number; 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; normalForce = _arg1.normalForce; tangentForce = _arg1.tangentForce; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalForce = 0; tangentForce = 0; id.key = 0; } } }//package Box2D.Collision
Section 19
//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 20
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; 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 b2Pair(){ userData = null; super(); } 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 21
//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 22
//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_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; 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[(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:uint; _local4 = m_hashTable[_arg3]; while (((!((_local4 == b2Pair.b2_nullPair))) && ((Equals(m_pairs[_local4], _arg1, _arg2) == false)))) { _local4 = m_pairs[_local4].next; }; if (_local4 == b2Pair.b2_nullPair){ return (null); }; return (m_pairs[_local4]); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:int; var _local2:int; var _local3:Array; var _local4:b2Pair; var _local5:b2Proxy; var _local6:b2Proxy; _local2 = 0; _local3 = m_broadPhase.m_proxyPool; _local1 = 0; while (_local1 < m_pairBufferCount) { _local4 = Find(m_pairBuffer[_local1].proxyId1, m_pairBuffer[_local1].proxyId2); _local4.ClearBuffered(); _local5 = _local3[_local4.proxyId1]; _local6 = _local3[_local4.proxyId2]; if (_local4.IsRemoved()){ if (_local4.IsFinal() == true){ m_callback.PairRemoved(_local5.userData, _local6.userData, _local4.userData); }; m_pairBuffer[_local2].proxyId1 = _local4.proxyId1; m_pairBuffer[_local2].proxyId2 = _local4.proxyId2; _local2++; } else { if (_local4.IsFinal() == false){ _local4.userData = m_callback.PairAdded(_local5.userData, _local6.userData); _local4.SetFinal(); }; }; _local1++; }; _local1 = 0; while (_local1 < _local2) { RemovePair(m_pairBuffer[_local1].proxyId1, m_pairBuffer[_local1].proxyId2); _local1++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2Pair; _local3 = Find(_arg1, _arg2); if (_local3 == null){ return; }; if (_local3.IsBuffered() == false){ _local3.SetBuffered(); m_pairBuffer[m_pairBufferCount].proxyId1 = _local3.proxyId1; m_pairBuffer[m_pairBufferCount].proxyId2 = _local3.proxyId2; m_pairBufferCount++; }; _local3.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:uint; var _local4:uint; var _local5:b2Pair; var _local6:uint; var _local7:uint; var _local8:b2Pair; var _local9:*; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = m_hashTable[_local3]; _local5 = null; while (_local4 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local4], _arg1, _arg2)){ _local7 = _local4; if (_local5){ _local5.next = m_pairs[_local4].next; } else { m_hashTable[_local3] = m_pairs[_local4].next; }; _local8 = m_pairs[_local7]; _local9 = _local8.userData; _local8.next = m_freePair; _local8.proxyId1 = b2Pair.b2_nullProxy; _local8.proxyId2 = b2Pair.b2_nullProxy; _local8.userData = null; _local8.status = 0; m_freePair = _local7; m_pairCount--; return (_local9); } else { _local5 = m_pairs[_local4]; _local4 = _local5.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:b2Pair; _local3 = AddPair(_arg1, _arg2); if (_local3.IsBuffered() == false){ _local3.SetBuffered(); m_pairBuffer[m_pairBufferCount].proxyId1 = _local3.proxyId1; m_pairBuffer[m_pairBufferCount].proxyId2 = _local3.proxyId2; m_pairBufferCount++; }; _local3.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:b2Pair; var _local5:uint; var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; _local5 = 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; _local3 = (((_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 23
//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 24
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var lowerBounds:Array; public var upperBounds:Array; public var userData;// = null public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; userData = null; 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 25
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; 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 _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local5 = _arg3.p1; _local6 = (_arg3.p2.x - _local5.x); _local7 = (_arg3.p2.y - _local5.y); _local8 = (p2.x - p1.x); _local9 = (p2.y - p1.y); _local10 = _local9; _local11 = -(_local8); _local12 = (100 * Number.MIN_VALUE); _local13 = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 26
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _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:b2Vec2; var _local16:b2Vec2; var _local17:int; var _local18:int; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:b2XForm; var _local25:b2XForm; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; _local5 = _arg1.GetSweepRadius(); _local6 = _arg3.GetSweepRadius(); _local7 = _arg2.t0; _local8 = (_arg2.c.x - _arg2.c0.x); _local9 = (_arg2.c.y - _arg2.c0.y); _local10 = (_arg4.c.x - _arg4.c0.x); _local11 = (_arg4.c.y - _arg4.c0.y); _local12 = (_arg2.a - _arg2.a0); _local13 = (_arg4.a - _arg4.a0); _local14 = 0; _local15 = s_p1; _local16 = s_p2; _local17 = 20; _local18 = 0; _local19 = 0; _local20 = 0; _local21 = 0; _local22 = 0; while (true) { _local23 = (((1 - _local14) * _local7) + _local14); _local24 = s_xf1; _local25 = s_xf2; _arg2.GetXForm(_local24, _local23); _arg4.GetXForm(_local25, _local23); _local21 = b2Distance.Distance(_local15, _local16, _arg1, _local24, _arg3, _local25); if (_local18 == 0){ if (_local21 > (2 * b2Settings.b2_toiSlop)){ _local22 = (1.5 * b2Settings.b2_toiSlop); } else { _local22 = Math.max((0.05 * b2Settings.b2_toiSlop), (_local21 - (0.5 * b2Settings.b2_toiSlop))); }; }; if (((((_local21 - _local22) < (0.05 * b2Settings.b2_toiSlop))) || ((_local18 == _local17)))){ break; }; _local19 = (_local16.x - _local15.x); _local20 = (_local16.y - _local15.y); _local26 = Math.sqrt(((_local19 * _local19) + (_local20 * _local20))); _local19 = (_local19 / _local26); _local20 = (_local20 / _local26); _local27 = ((((_local19 * (_local8 - _local10)) + (_local20 * (_local9 - _local11))) + (Math.abs(_local12) * _local5)) + (Math.abs(_local13) * _local6)); if (Math.abs(_local27) < Number.MIN_VALUE){ _local14 = 1; break; }; _local28 = ((_local21 - _local22) / _local27); _local29 = (_local14 + _local28); if ((((_local29 < 0)) || ((1 < _local29)))){ _local14 = 1; break; }; if (_local29 < ((1 + (100 * Number.MIN_VALUE)) * _local14)){ break; }; _local14 = _local29; _local18++; }; return (_local14); } } }//package Box2D.Collision
Section 27
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 28
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceFace:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceFace():int{ return (_referenceFace); } 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 referenceFace(_arg1:int):void{ _referenceFace = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceFace & 0xFF)); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 29
//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 Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } 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 _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = 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; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_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 30
//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; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = 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; _local3 = 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; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = 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; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = 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; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = 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; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_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; _local3 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = 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; _local3 = 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; _local3 = 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 31
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c:b2Vec2; public var a:Number; public var c0:b2Vec2; public var a0:Number; 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 _local3:b2Mat22; 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); }; _local3 = _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 32
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } 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 SetZero():void{ x = 0; y = 0; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } 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 CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ x = Math.abs(x); y = Math.abs(y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = 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 function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 33
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var R:b2Mat22; public var position:b2Vec2; 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 34
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _g:uint;// = 0 private var _b:uint;// = 0 private var _r:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = 0; _g = 0; _b = 0; super(); _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 get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = 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 35
//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 = 8; 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 36
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static var 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; m_manifold.points[0].normalForce = 0; m_manifold.points[0].tangentForce = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactPoint; var _local5:b2Mat22; var _local6:b2Vec2; _local2 = m_shape1.m_body; _local3 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local2.m_xf, (m_shape2 as b2CircleShape), _local3.m_xf); if (m_manifold.pointCount > 0){ m_manifoldCount = 1; if (m0.pointCount == 0){ m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip | b2Collision.b2_newPoint); } else { m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip & ~(b2Collision.b2_newPoint)); }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = s_evalCP; _local4.shape1 = m_shape1; _local4.shape2 = m_shape2; _local4.normal.SetV(m0.normal); _local5 = _local2.m_xf.R; _local6 = m0.points[0].localPoint1; _local4.position.x = (_local2.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local4.position.y = (_local2.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local4.separation = m0.points[0].separation; _local4.normalForce = m0.points[0].normalForce; _local4.tangentForce = m0.points[0].tangentForce; _local4.id.key = m0.points[0].id.key; _arg1.Remove(_local4); }; }; } 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 37
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; 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 GetShape1():b2Shape{ return (m_shape1); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetManifolds():Array{ return (null); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function Update(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; Evaluate(_arg1); _local2 = m_shape1.GetBody(); _local3 = m_shape2.GetBody(); if (((((((_local2.IsStatic()) || (_local2.IsBullet()))) || (_local3.IsStatic()))) || (_local3.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 _local1:int; var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); _local1 = 0; 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{ var _local3:int; var _local4:int; var _local5:*; if (_arg1.GetManifoldCount() > 0){ _arg1.GetShape1().GetBody().WakeUp(); _arg1.GetShape2().GetBody().WakeUp(); }; _local3 = _arg1.GetShape1().GetType(); _local4 = _arg1.GetShape2().GetType(); _local5 = s_registers[_local3][_local4].destroyFcn; _local5(_arg1, _arg2); } public static function AddType(_arg1, _arg2, _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 _local4:int; var _local5:int; var _local6:*; var _local7:b2Contact; var _local8:int; var _local9:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; _local4 = _arg1.m_type; _local5 = _arg2.m_type; _local6 = s_registers[_local4][_local5].createFcn; if (_local6){ if (s_registers[_local4][_local5].primary){ return (_local6(_arg1, _arg2, _arg3)); }; _local7 = _local6(_arg2, _arg1, _arg3); _local8 = 0; while (_local8 < _local7.GetManifoldCount()) { _local9 = _local7.GetManifolds()[_local8]; _local7.GetManifolds()[_local8].normal = _local9.normal.Negative(); _local8++; }; return (_local7); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var normal:b2Vec2; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var tangentForce:Number; public var normalForce:Number; public var positionImpulse:Number; public var separation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var tangentMass:Number; public var normalMass:Number; public var velocityBias:Number; public var equalizedMass:Number; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var next:b2ContactEdge; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn; public var destroyFcn; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; 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:int; var _local6:b2Vec2; var _local7:b2Mat22; var _local8:int; var _local9:b2Contact; 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; _local5 = 0; while (_local5 < _arg3) { m_constraintCount = (m_constraintCount + _arg2[_local5].GetManifoldCount()); _local5++; }; _local5 = 0; while (_local5 < m_constraintCount) { m_constraints[_local5] = new b2ContactConstraint(); _local5++; }; _local8 = 0; _local5 = 0; while (_local5 < _arg3) { _local9 = _arg2[_local5]; _local10 = _local9.m_shape1.m_body; _local11 = _local9.m_shape2.m_body; _local12 = _local9.GetManifoldCount(); _local13 = _local9.GetManifolds(); _local14 = _local9.m_friction; _local15 = _local9.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[_local8]; _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.normalForce = _local28.normalForce; _local29.tangentForce = _local28.tangentForce; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local7 = _local10.m_xf.R; _local32 = (_local29.localAnchor1.x - _local10.GetLocalCenter().x); _local33 = (_local29.localAnchor1.y - _local10.GetLocalCenter().y); _local30 = ((_local7.col1.x * _local32) + (_local7.col2.x * _local33)); _local33 = ((_local7.col1.y * _local32) + (_local7.col2.y * _local33)); _local32 = _local30; _local7 = _local11.m_xf.R; _local34 = (_local29.localAnchor2.x - _local11.GetLocalCenter().x); _local35 = (_local29.localAnchor2.y - _local11.GetLocalCenter().y); _local30 = ((_local7.col1.x * _local34) + (_local7.col2.x * _local35)); _local35 = ((_local7.col1.y * _local34) + (_local7.col2.y * _local35)); _local34 = _local30; _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++; }; _local8++; _local22++; }; _local5++; }; } public function InitVelocityConstraints():void{ var _local1:b2Vec2; var _local2:b2Vec2; var _local3:b2Mat22; var _local4:int; var _local5:b2ContactConstraint; var _local6:b2Body; var _local7:b2Body; 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:int; var _local19:b2ContactConstraintPoint; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraintPoint; _local4 = 0; while (_local4 < m_constraintCount) { _local5 = m_constraints[_local4]; _local6 = _local5.body1; _local7 = _local5.body2; _local8 = _local6.m_invMass; _local9 = _local6.m_invI; _local10 = _local7.m_invMass; _local11 = _local7.m_invI; _local12 = _local5.normal.x; _local13 = _local5.normal.y; _local14 = _local13; _local15 = -(_local12); if (b2World.s_enableWarmStarting){ _local18 = _local5.pointCount; _local17 = 0; while (_local17 < _local18) { _local19 = _local5.points[_local17]; _local20 = (m_step.dt * ((_local19.normalForce * _local12) + (_local19.tangentForce * _local14))); _local21 = (m_step.dt * ((_local19.normalForce * _local13) + (_local19.tangentForce * _local15))); _local3 = _local6.m_xf.R; _local1 = _local6.GetLocalCenter(); _local22 = (_local19.localAnchor1.x - _local1.x); _local23 = (_local19.localAnchor1.y - _local1.y); _local16 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local16; _local3 = _local7.m_xf.R; _local1 = _local7.GetLocalCenter(); _local24 = (_local19.localAnchor2.x - _local1.x); _local25 = (_local19.localAnchor2.y - _local1.y); _local16 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local16; _local6.m_angularVelocity = (_local6.m_angularVelocity - (_local9 * ((_local22 * _local21) - (_local23 * _local20)))); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x - (_local8 * _local20)); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y - (_local8 * _local21)); _local7.m_angularVelocity = (_local7.m_angularVelocity + (_local11 * ((_local24 * _local21) - (_local25 * _local20)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x + (_local10 * _local20)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y + (_local10 * _local21)); _local17++; }; } else { _local18 = _local5.pointCount; _local17 = 0; while (_local17 < _local18) { _local26 = _local5.points[_local17]; _local26.normalForce = 0; _local26.tangentForce = 0; _local17++; }; }; _local4++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; 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; _local2 = 0; _local5 = 0; 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.GetLocalCenter(); _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.GetLocalCenter(); _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:b2Mat22; var _local14:b2Vec2; var _local15:int; var _local16:b2ContactConstraint; var _local17:b2Body; var _local18:b2Body; var _local19:Number; var _local20:b2Vec2; var _local21:Number; var _local22:b2Vec2; 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:int; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; _local15 = 0; while (_local15 < m_constraintCount) { _local16 = m_constraints[_local15]; _local17 = _local16.body1; _local18 = _local16.body2; _local19 = _local17.m_angularVelocity; _local20 = _local17.m_linearVelocity; _local21 = _local18.m_angularVelocity; _local22 = _local18.m_linearVelocity; _local23 = _local17.m_invMass; _local24 = _local17.m_invI; _local25 = _local18.m_invMass; _local26 = _local18.m_invI; _local27 = _local16.normal.x; _local28 = _local16.normal.y; _local29 = _local28; _local30 = -(_local27); _local32 = _local16.pointCount; _local1 = 0; while (_local1 < _local32) { _local2 = _local16.points[_local1]; _local13 = _local17.m_xf.R; _local14 = _local17.GetLocalCenter(); _local3 = (_local2.localAnchor1.x - _local14.x); _local4 = (_local2.localAnchor1.y - _local14.y); _local31 = ((_local13.col1.x * _local3) + (_local13.col2.x * _local4)); _local4 = ((_local13.col1.y * _local3) + (_local13.col2.y * _local4)); _local3 = _local31; _local13 = _local18.m_xf.R; _local14 = _local18.GetLocalCenter(); _local5 = (_local2.localAnchor2.x - _local14.x); _local6 = (_local2.localAnchor2.y - _local14.y); _local31 = ((_local13.col1.x * _local5) + (_local13.col2.x * _local6)); _local6 = ((_local13.col1.y * _local5) + (_local13.col2.y * _local6)); _local5 = _local31; _local7 = (((_local22.x + (-(_local21) * _local6)) - _local20.x) - (-(_local19) * _local4)); _local8 = (((_local22.y + (_local21 * _local5)) - _local20.y) - (_local19 * _local3)); _local33 = ((_local7 * _local27) + (_local8 * _local28)); _local9 = ((-(m_step.inv_dt) * _local2.normalMass) * (_local33 - _local2.velocityBias)); _local34 = b2Math.b2Max((_local2.normalForce + _local9), 0); _local9 = (_local34 - _local2.normalForce); _local11 = ((m_step.dt * _local9) * _local27); _local12 = ((m_step.dt * _local9) * _local28); _local20.x = (_local20.x - (_local23 * _local11)); _local20.y = (_local20.y - (_local23 * _local12)); _local19 = (_local19 - (_local24 * ((_local3 * _local12) - (_local4 * _local11)))); _local22.x = (_local22.x + (_local25 * _local11)); _local22.y = (_local22.y + (_local25 * _local12)); _local21 = (_local21 + (_local26 * ((_local5 * _local12) - (_local6 * _local11)))); _local2.normalForce = _local34; _local7 = (((_local22.x + (-(_local21) * _local6)) - _local20.x) - (-(_local19) * _local4)); _local8 = (((_local22.y + (_local21 * _local5)) - _local20.y) - (_local19 * _local3)); _local35 = ((_local7 * _local29) + (_local8 * _local30)); _local9 = ((m_step.inv_dt * _local2.tangentMass) * -(_local35)); _local36 = (_local16.friction * _local2.normalForce); _local34 = b2Math.b2Clamp((_local2.tangentForce + _local9), -(_local36), _local36); _local9 = (_local34 - _local2.tangentForce); _local11 = ((m_step.dt * _local9) * _local29); _local12 = ((m_step.dt * _local9) * _local30); _local20.x = (_local20.x - (_local23 * _local11)); _local20.y = (_local20.y - (_local23 * _local12)); _local19 = (_local19 - (_local24 * ((_local3 * _local12) - (_local4 * _local11)))); _local22.x = (_local22.x + (_local25 * _local11)); _local22.y = (_local22.y + (_local25 * _local12)); _local21 = (_local21 + (_local26 * ((_local5 * _local12) - (_local6 * _local11)))); _local2.tangentForce = _local34; _local1++; }; _local17.m_angularVelocity = _local19; _local18.m_angularVelocity = _local21; _local15++; }; } public function FinalizeVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local3.points[_local4].normalForce = _local2.points[_local4].normalForce; _local3.points[_local4].tangentForce = _local2.points[_local4].tangentForce; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 43
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function GetManifolds():Array{ return (null); } override public function Evaluate(_arg1:b2ContactListener):void{ } } }//package Box2D.Dynamics.Contacts
Section 44
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static var 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; m_manifold.points[0].normalForce = 0; m_manifold.points[0].tangentForce = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactPoint; var _local5:b2Mat22; var _local6:b2Vec2; _local2 = m_shape1.GetBody(); _local3 = m_shape2.GetBody(); m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local2.m_xf, (m_shape2 as b2CircleShape), _local3.m_xf); if (m_manifold.pointCount > 0){ m_manifoldCount = 1; if (m0.pointCount == 0){ m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip | b2Collision.b2_newPoint); } else { m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip & ~(b2Collision.b2_newPoint)); }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = s_evalCP; _local4.shape1 = m_shape1; _local4.shape2 = m_shape2; _local4.normal.SetV(m0.normal); _local5 = _local2.m_xf.R; _local6 = m0.points[0].localPoint1; _local4.position.x = (_local2.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local4.position.y = (_local2.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local4.separation = m0.points[0].separation; _local4.normalForce = m0.points[0].normalForce; _local4.tangentForce = m0.points[0].tangentForce; _local4.id = m0.points[0].id; _arg1.Remove(_local4); }; }; } 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 45
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static var 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 GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactPoint; var _local5:int; var _local6:Array; var _local7:b2ManifoldPoint; var _local8:Boolean; var _local9:uint; var _local10:int; var _local11:b2ManifoldPoint; var _local12:b2ContactID; var _local13:b2ManifoldPoint; var _local14:b2Mat22; var _local15:b2Vec2; _local2 = m_shape1.GetBody(); _local3 = m_shape2.GetBody(); m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local2.m_xf, (m_shape2 as b2PolygonShape), _local3.m_xf); _local6 = [false, false]; if (m_manifold.pointCount > 0){ _local5 = 0; while (_local5 < m_manifold.pointCount) { _local7 = m_manifold.points[_local5]; _local7.normalForce = 0; _local7.tangentForce = 0; _local8 = false; _local9 = _local7.id.key; _local10 = 0; while (_local10 < m0.pointCount) { if (_local6[_local10] == true){ } else { _local11 = m0.points[_local10]; _local12 = _local11.id; _local12.features.flip = (_local12.features.flip & ~(b2Collision.b2_newPoint)); if (_local12.key == _local9){ _local6[_local10] = true; _local7.normalForce = _local11.normalForce; _local7.tangentForce = _local11.tangentForce; _local8 = true; break; }; }; _local10++; }; if (_local8 == false){ _local7.id.features.flip = (_local7.id.features.flip | b2Collision.b2_newPoint); }; _local5++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (((_arg1) && ((m0.pointCount > 0)))){ _local4 = s_evalCP; _local4.shape1 = m_shape1; _local4.shape2 = m_shape2; _local4.normal.SetV(m0.normal); _local5 = 0; while (_local5 < m0.pointCount) { if (_local6[_local5]){ } else { _local13 = m0.points[_local5]; _local14 = _local2.m_xf.R; _local15 = _local13.localPoint1; _local4.position.x = (_local2.m_xf.position.x + ((_local14.col1.x * _local15.x) + (_local14.col2.x * _local15.y))); _local4.position.y = (_local2.m_xf.position.y + ((_local14.col1.y * _local15.x) + (_local14.col2.y * _local15.y))); _local4.separation = _local13.separation; _local4.normalForce = _local13.normalForce; _local4.tangentForce = _local13.tangentForce; _local4.id.key = _local13.id.key; _arg1.Remove(_local4); }; _local5++; }; }; } 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 46
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor2:b2Vec2; public var m_force:Number; public var m_localAnchor1:b2Vec2; public var m_u:b2Vec2; public var m_length:Number; public var m_mass: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_force = 0; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local3 = m_body1; _local4 = m_body2; _local2 = _local3.m_xf.R; _local5 = (m_localAnchor1.x - _local3.GetLocalCenter().x); _local6 = (m_localAnchor1.y - _local3.GetLocalCenter().y); _local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; _local8 = (m_localAnchor2.x - _local4.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local4.GetLocalCenter().y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; _local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); _local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); _local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); _local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); _local14 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); _local15 = ((-(_arg1.inv_dt) * m_mass) * _local14); m_force = (m_force + _local15); _local16 = ((_arg1.dt * _local15) * m_u.x); _local17 = ((_arg1.dt * _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)))); } 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 _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.GetLocalCenter().x); _local7 = (m_localAnchor1.y - _local4.GetLocalCenter().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.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local5.GetLocalCenter().y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = ((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x); m_u.y = ((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y); _local10 = 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(); }; _local11 = ((_local6 * m_u.y) - (_local7 * m_u.x)); _local12 = ((_local8 * m_u.y) - (_local9 * m_u.x)); m_mass = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / m_mass); if (b2World.s_enableWarmStarting){ _local13 = ((_arg1.dt * m_force) * m_u.x); _local14 = ((_arg1.dt * m_force) * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local13)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local14)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local14) - (_local7 * _local13)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local13)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local14)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local14) - (_local9 * _local13)))); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; var _local2:b2Body; var _local3:b2Body; 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; _local2 = m_body1; _local3 = m_body2; _local1 = _local2.m_xf.R; _local4 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local5 = (m_localAnchor1.y - _local2.GetLocalCenter().y); _local6 = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; _local7 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local8 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; _local9 = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); _local10 = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); _local11 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); _local12 = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local13 = (-(m_mass) * _local12); m_u.Set(_local9, _local10); _local14 = (_local13 * m_u.x); _local15 = (_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)); } } }//package Box2D.Dynamics.Joints
Section 47
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2DistanceJointDef extends b2JointDef { public var length:Number; public var localAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ var _local5:Number; var _local6:Number; body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); _local5 = (_arg4.x - _arg3.x); _local6 = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); } } }//package Box2D.Dynamics.Joints
Section 48
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_force:Number; public var m_mass:Number; public var m_prismatic1:b2PrismaticJoint; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_constant:Number; public var m_revolute1:b2RevoluteJoint; public var m_revolute2:b2RevoluteJoint; 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_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local2:Number; var _local3:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); 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 (_arg1.joint1.m_type == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local2 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local2 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_arg1.joint2.m_type == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local3 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local3 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local2 + (m_ratio * _local3)); 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 GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local1 = 0; _local2 = m_body1; _local3 = 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(); }; _local6 = (m_constant - (_local4 + (m_ratio * _local5))); _local7 = (-(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)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; 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 _local14:Number; var _local15:Number; _local2 = m_ground1; _local3 = m_ground2; _local4 = m_body1; _local5 = m_body2; _local14 = 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.GetLocalCenter().x); _local9 = (m_localAnchor1.y - _local4.GetLocalCenter().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.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local5.GetLocalCenter().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 (b2World.s_enableWarmStarting){ _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; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = m_body2.m_xf.R; _local2 = (m_localAnchor1.x - m_body2.GetLocalCenter().x); _local3 = (m_localAnchor1.y - m_body2.GetLocalCenter().y); _local4 = ((_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); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = m_body1; _local3 = m_body2; _local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local5 = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); _local6 = (_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 49
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint2:b2Joint; public var joint1:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 50
//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 angular2:Number; public var angular1: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 51
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_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 GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetType():int{ return (m_type); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } 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 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; _local3 = null; 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 52
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var collideConnected:Boolean; public var body1:b2Body; public var body2:b2Body; public var userData; public var type:int; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 53
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var joint:b2Joint; public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 54
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { public var m_beta:Number; public var m_mass:b2Mat22; public var m_force:b2Vec2; public var m_target:b2Vec2; public var m_localAnchor:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K:b2Mat22; public var m_gamma:Number; public var m_C:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_force = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); _local2 = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); _local4 = 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_force.SetZero(); _local5 = m_body2.m_mass; _local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); _local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6); _local8 = ((_local5 * _local6) * _local6); m_gamma = (1 / (_local7 + (_arg1.timeStep * _local8))); m_beta = ((_arg1.timeStep * _local8) / (_local7 + (_arg1.timeStep * _local8))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function GetReactionForce():b2Vec2{ return (m_force); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.GetLocalCenter().x); _local5 = (m_localAnchor.y - _local2.GetLocalCenter().y); _local6 = ((_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); _local9 = (_arg1.dt * m_force.x); _local10 = (_arg1.dt * m_force.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 GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; 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; _local2 = m_body2; _local3 = _local2.m_xf.R; _local6 = (m_localAnchor.x - _local2.GetLocalCenter().x); _local7 = (m_localAnchor.y - _local2.GetLocalCenter().y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; _local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); _local9 = (_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_force.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_force.y)); _local10 = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); _local11 = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); _local12 = m_force.x; _local13 = m_force.y; m_force.x = (m_force.x + _local10); m_force.y = (m_force.y + _local11); _local14 = m_force.Length(); if (_local14 > m_maxForce){ m_force.Multiply((m_maxForce / _local14)); }; _local10 = (m_force.x - _local12); _local11 = (m_force.y - _local13); _local15 = (_arg1.dt * _local10); _local16 = (_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 55
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var frequencyHz:Number; public var dampingRatio:Number; public var maxForce:Number; public var target:b2Vec2; public var timeStep: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 56
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_refAngle:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_torque:Number; public var m_enableLimit:Boolean; public var m_motorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_maxMotorForce:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_angularMass:Number; public var m_limitState:int; public var m_linearMass:Number; public var m_upperTranslation: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 GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; _local1 = m_body1; _local2 = m_body2; _local4 = _local1.GetWorldPoint(m_localAnchor1); _local5 = _local2.GetWorldPoint(m_localAnchor2); _local6 = (_local5.x - _local4.x); _local7 = (_local5.y - _local4.y); _local8 = _local1.GetWorldVector(m_localXAxis1); _local9 = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.m_xf.R; _local2 = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); _local3 = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); _local4 = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); _local5 = (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 _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9: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 _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; _local3 = m_body1; _local4 = m_body2; _local5 = _local3.m_invMass; _local6 = _local4.m_invMass; _local7 = _local3.m_invI; _local8 = _local4.m_invI; _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.GetLocalCenter().x); _local12 = (m_localAnchor1.y - _local3.GetLocalCenter().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.GetLocalCenter().x); _local14 = (m_localAnchor2.y - _local4.GetLocalCenter().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; _local21 = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); _local22 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); _local23 = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local24 = (-(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)); _local25 = b2Math.b2Abs(_local23); _local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local27 = (-(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(); _local28 = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.GetLocalCenter().x); _local12 = (m_localAnchor1.y - _local3.GetLocalCenter().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.GetLocalCenter().x); _local14 = (m_localAnchor2.y - _local4.GetLocalCenter().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 GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; 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:b2Vec2; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_xf.R; _local4 = (m_localAnchor1.x - _local1.GetLocalCenter().x); _local5 = (m_localAnchor1.y - _local1.GetLocalCenter().y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; _local7 = (m_localAnchor2.x - _local2.GetLocalCenter().x); _local8 = (m_localAnchor2.y - _local2.GetLocalCenter().y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; _local9 = (_local1.m_sweep.c.x + _local4); _local10 = (_local1.m_sweep.c.y + _local5); _local11 = (_local2.m_sweep.c.x + _local7); _local12 = (_local2.m_sweep.c.y + _local8); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = _local1.GetWorldVector(m_localXAxis1); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_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); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local7 = (m_localAnchor1.y - _local2.GetLocalCenter().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; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; _local4 = _local2.m_xf.R; _local14 = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); _local15 = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); _local16 = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); _local17 = ((_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 (b2World.s_enableWarmStarting){ _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 SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_invMass; _local5 = _local3.m_invMass; _local6 = _local2.m_invI; _local7 = _local3.m_invI; _local9 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local10 = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); _local11 = (_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)); _local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local13 = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); _local14 = (_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)); }; } } }//package Box2D.Dynamics.Joints
Section 57
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PrismaticJointDef extends b2JointDef { public var localAxis1:b2Vec2; public var referenceAngle:Number; public var maxMotorForce:Number; public var motorSpeed:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; 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 58
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_ground:b2Body; public var m_maxLength2:Number; public var m_limitForce1:Number; public var m_maxLength1:Number; public var m_limitState1:int; public var m_limitState2:int; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_limitPositionImpulse1:Number; public var m_constant: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_positionImpulse:Number; public var m_limitMass2:Number; public var m_limitMass1:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_limitForce2:Number; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2; _local1 = 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; _local1 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _local1 = m_body1; _local2 = m_body2; _local4 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local5 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local6 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local7 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local23 = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.GetLocalCenter().x); _local9 = (m_localAnchor1.y - _local1.GetLocalCenter().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.GetLocalCenter().x); _local11 = (m_localAnchor2.y - _local2.GetLocalCenter().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.GetLocalCenter().x); _local9 = (m_localAnchor1.y - _local1.GetLocalCenter().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.GetLocalCenter().x); _local11 = (m_localAnchor2.y - _local2.GetLocalCenter().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 _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local6 = (m_localAnchor1.y - _local2.GetLocalCenter().y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; _local10 = (_local2.m_sweep.c.x + _local5); _local11 = (_local2.m_sweep.c.y + _local6); _local12 = (_local3.m_sweep.c.x + _local8); _local13 = (_local3.m_sweep.c.y + _local9); _local14 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); _local18 = m_u1.Length(); _local19 = 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(); }; _local20 = ((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; }; _local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); _local22 = ((_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 (b2World.s_enableWarmStarting){ _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); } public function GetLength2():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body2.GetWorldPoint(m_localAnchor2); _local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local6 = (m_localAnchor1.y - _local2.GetLocalCenter().y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.GetWorldPoint(m_localAnchor1); _local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 59
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength2:Number; public var length1:Number; public var length2:Number; public var maxLength1:Number; public var ratio:Number; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; 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{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); _local8 = (_arg5.x - _arg3.x); _local9 = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local10 = (_arg6.x - _arg4.x); _local11 = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; _local12 = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 60
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_motorForce:Number; public var m_pivotMass:b2Mat22; 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_motorSpeed:Number; public var m_limitPositionImpulse:Number; public var m_maxMotorTorque:Number; public var m_upperAngle:Number; public var m_lowerAngle: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 GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } 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 _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = m_body1; _local4 = m_body2; _local5 = 0; _local6 = _local3.m_xf.R; _local7 = (m_localAnchor1.x - _local3.GetLocalCenter().x); _local8 = (m_localAnchor1.y - _local3.GetLocalCenter().y); _local9 = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; _local10 = (m_localAnchor2.x - _local4.GetLocalCenter().x); _local11 = (m_localAnchor2.y - _local4.GetLocalCenter().y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; _local12 = (_local3.m_sweep.c.x + _local7); _local13 = (_local3.m_sweep.c.y + _local8); _local14 = (_local4.m_sweep.c.x + _local10); _local15 = (_local4.m_sweep.c.y + _local11); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); _local18 = _local3.m_invMass; _local19 = _local4.m_invMass; _local20 = _local3.m_invI; _local21 = _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)); _local22 = tImpulse.x; _local23 = 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(); _local24 = 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 GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } 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)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; 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; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local7 = (m_localAnchor1.y - _local2.GetLocalCenter().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; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _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 (b2World.s_enableWarmStarting){ _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 GetMotorTorque():Number{ return (m_motorForce); } 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); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local7 = (m_localAnchor1.y - _local2.GetLocalCenter().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; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local11 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); _local12 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); _local13 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); _local14 = (-(_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); _local15 = (_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)); }; } } }//package Box2D.Dynamics.Joints
Section 61
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2RevoluteJointDef extends b2JointDef { public var referenceAngle:Number; public var upperAngle:Number; public var lowerAngle:Number; public var motorSpeed:Number; public var maxMotorTorque:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; 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 62
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_xf:b2XForm; public var m_next:b2Body; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_sweep:b2Sweep; public var m_mass:Number; public var m_torque:Number; public var NameID:String; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_linearVelocity:b2Vec2; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:uint; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var moveF; public var m_invI:Number; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public var scor; public var NameB:String; 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:uint, _arg3:b2World){ var _local4:b2Mat22; var _local5:b2Vec2; 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_type = _arg2; m_world = _arg3; 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); _local4 = m_xf.R; _local5 = 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_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_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; if (m_type == e_dynamicType){ m_mass = _arg1.massData.mass; }; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if (((((m_flags & b2Body.e_fixedRotationFlag) == 0)) && ((m_type == e_dynamicType)))){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } 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 SynchronizeTransform():void{ var _local1:b2Mat22; var _local2:b2Vec2; m_xf.R.Set(m_sweep.a); _local1 = m_xf.R; _local2 = 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 GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; var _local2:Number; var _local3:Number; var _local4:b2MassData; var _local5:b2Mat22; var _local6:b2Vec2; if (m_world.m_lock == true){ return; }; if (m_type == e_staticType){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; _local2 = 0; _local3 = 0; _local4 = 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); } else { m_invMass = 0; m_invI = 0; }; 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); _local5 = m_xf.R; _local6 = 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; }; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local4:b2Mat22; var _local5:b2Vec2; var _local6:Boolean; 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); _local4 = m_xf.R; _local5 = 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); _local6 = false; _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 _local1:b2XForm; var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; var _local5:Boolean; _local1 = s_xf1; _local1.R.Set(m_sweep.a0); _local2 = _local1.R; _local3 = 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))); _local5 = true; _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 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 GetContactList():b2ContactEdge{ return (m_contactList); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; if (m_world.m_lock == true){ return; }; if (m_type == e_staticType){ return; }; m_mass = 0; 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); _local2 = m_xf.R; _local3 = m_sweep.localCenter; m_sweep.c.x = ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y)); m_sweep.c.y = ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.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); _local4 = m_shapeList; while (_local4) { _local4.UpdateSweepRadius(m_sweep.localCenter); _local4 = _local4.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; _local2 = 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{ var _local2:b2Shape; var _local3:Boolean; if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); _local2 = m_shapeList; _local3 = false; while (_local2 != null) { if (_local2 == _arg1){ _local2 = _arg1.m_next; _local3 = true; break; }; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulX(m_xf, _arg1)); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 63
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var angularDamping:Number; public var fixedRotation:Boolean; public var angle:Number; 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 64
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 65
//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:Boolean; if ((((_arg1.m_groupIndex == _arg2.m_groupIndex)) && (!((_arg1.m_groupIndex == 0))))){ return ((_arg1.m_groupIndex > 0)); }; _local3 = ((!(((_arg1.m_maskBits & _arg2.m_categoryBits) == 0))) && (!(((_arg1.m_categoryBits & _arg2.m_maskBits) == 0)))); return (_local3); } } }//package Box2D.Dynamics
Section 66
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.GetBody(); _local6 = _local4.GetBody(); 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); }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.GetShape1(); _local4 = _local7.GetShape2(); _local5 = _local3.GetBody(); _local6 = _local4.GetBody(); _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); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:int; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2Body; var _local9:Array; var _local10:int; var _local11:b2Manifold; var _local12:int; var _local13:b2ManifoldPoint; var _local14:b2Mat22; var _local15:b2Vec2; var _local16:b2Vec2; _local2 = _arg1.GetShape1(); _local3 = _arg1.GetShape2(); _local4 = _arg1.GetManifoldCount(); if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = new b2ContactPoint(); _local7.shape1 = _arg1.GetShape1(); _local7.shape2 = _arg1.GetShape2(); _local8 = _local7.shape1.GetBody(); _local9 = _arg1.GetManifolds(); _local10 = 0; while (_local10 < _local4) { _local11 = _local9[_local10]; _local7.normal.SetV(_local11.normal); _local12 = 0; while (_local12 < _local11.pointCount) { _local13 = _local11.points[_local12]; _local14 = _local8.GetXForm().R; _local15 = _local8.GetXForm().position; _local16 = _local13.localPoint1; _local7.position.x = (_local15.x + ((_local14.col1.x * _local16.x) + (_local14.col2.x * _local16.y))); _local7.position.y = (_local15.y + ((_local14.col1.y * _local16.x) + (_local14.col2.y * _local16.y))); _local7.separation = _local13.separation; _local7.normalForce = _local13.normalForce; _local7.tangentForce = _local13.tangentForce; _local7.id = _local13.id; m_world.m_contactListener.Remove(_local7); _local12++; }; _local10++; }; }; 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; }; _local5 = _local2.GetBody(); _local6 = _local3.GetBody(); 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--; } public function Collide():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactPoint; var _local5:b2Body; var _local6:int; var _local7:Array; var _local8:int; var _local9:b2Manifold; var _local10:int; var _local11:b2ManifoldPoint; var _local12:b2Mat22; var _local13:b2Vec2; var _local14:b2Vec2; _local1 = m_world.m_contactList; while (_local1) { _local2 = _local1.GetShape1().GetBody(); _local3 = _local1.GetShape2().GetBody(); if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); if ((((_local1.IsSolid() == false)) && (m_world.m_contactListener))){ _local4 = new b2ContactPoint(); _local4.shape1 = _local1.GetShape1(); _local4.shape2 = _local1.GetShape2(); _local4.normalForce = 0; _local4.tangentForce = 0; _local5 = _local4.shape1.GetBody(); _local6 = _local1.GetManifoldCount(); _local7 = _local1.GetManifolds(); _local8 = 0; while (_local8 < _local6) { _local9 = _local7[_local8]; _local4.normal.SetV(_local9.normal); _local10 = 0; while (_local10 < _local9.pointCount) { _local11 = _local9.points[_local10]; _local12 = _local5.GetXForm().R; _local13 = _local5.GetXForm().position; _local14 = _local11.localPoint1; _local4.position.x = (_local13.x + ((_local12.col1.x * _local14.x) + (_local12.col2.x * _local14.y))); _local4.position.y = (_local13.y + ((_local12.col1.y * _local14.x) + (_local12.col2.y * _local14.y))); _local4.separation = _local11.separation; if ((_local11.id.features.flip & b2Collision.b2_newPoint)){ _local11.id.features.flip = (_local11.id.features.flip & ~(b2Collision.b2_newPoint)); _local4.id = _local11.id; m_world.m_contactListener.Add(_local4); } else { _local4.id = _local11.id; m_world.m_contactListener.Persist(_local4); }; _local10++; }; _local8++; }; }; }; _local1 = _local1.GetNext(); }; } } }//package Box2D.Dynamics
Section 68
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; 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_lineThickness:Number;// = 1 public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 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_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; 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); _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 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)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } 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 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 GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _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)); } } }//package Box2D.Dynamics
Section 69
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } }//package Box2D.Dynamics
Section 70
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_joints:Array; public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies: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_reportCP:b2ContactPoint = new b2ContactPoint(); 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 _local4:int; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactPoint; 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; }; _local4 = 0; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCP; _local7.shape1 = _local5.GetShape1(); _local7.shape2 = _local5.GetShape2(); _local8 = _local7.shape1.GetBody(); _local9 = _local5.GetManifoldCount(); _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]; _local2 = _local8.GetXForm().R; _local3 = _local14.localPoint1; _local7.position.x = (_local8.GetXForm().position.x + ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local7.position.y = (_local8.GetXForm().position.y + ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); _local7.separation = _local14.separation; _local7.normalForce = _local15.normalForce; _local7.tangentForce = _local15.tangentForce; if ((_local14.id.features.flip & b2Collision.b2_newPoint)){ _local14.id.features.flip = (_local14.id.features.flip & ~(b2Collision.b2_newPoint)); _local7.id.key = _local14.id.key; m_listener.Add(_local7); } else { _local7.id.key = _local14.id.key; m_listener.Persist(_local7); }; _local13++; }; _local11++; }; _local4++; }; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2ContactSolver; var _local8:int; var _local9:Boolean; var _local10:Boolean; var _local11:Boolean; var _local12:Number; var _local13:Number; var _local14: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++; }; _local7 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local7.InitVelocityConstraints(); _local5 = 0; while (_local5 < m_jointCount) { m_joints[_local5].InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local7.SolveVelocityConstraints(); _local8 = 0; while (_local8 < m_jointCount) { m_joints[_local8].SolveVelocityConstraints(_arg1); _local8++; }; _local5++; }; _local7.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) { m_joints[_local5].InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local9 = _local7.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local10 = true; _local5 = 0; while (_local5 < m_jointCount) { _local11 = m_joints[_local5].SolvePositionConstraints(); _local10 = ((_local10) && (_local11)); _local5++; }; if (((_local9) && (_local10))){ break; }; m_positionIterationCount++; }; }; Report(_local7.m_constraints); if (_arg4){ _local12 = Number.MAX_VALUE; _local13 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local14 = (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; _local12 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local14)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local13)))){ _local6.m_sleepTime = 0; _local12 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local12 = b2Math.b2Min(_local12, _local6.m_sleepTime); }; }; _local5++; }; if (_local12 >= 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 AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:b2ContactSolver; var _local4:Number; var _local5:b2Body; var _local6:Boolean; _local3 = 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++; }; _local4 = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 71
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var dt:Number; public var maxIterations:int; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 72
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_contactList:b2Contact; public var m_blockAllocator; public var m_boundaryListener:b2BoundaryListener; public var m_allowSleep:Boolean; public var m_contactListener:b2ContactListener; 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 s_enablePositionCorrection:int = 1; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); private static var s_xf:b2XForm = new b2XForm(); public static var s_enableWarmStarting:int = 1; public static var s_enableTOI:int = 1; public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ var _local4:b2BodyDef; 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_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); _local4 = new b2BodyDef(); m_groundBody = CreateStaticBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2XForm; var _local5:b2XForm; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; _local2 = _arg1.GetBody1(); _local3 = _arg1.GetBody2(); _local4 = _local2.GetXForm(); _local5 = _local3.GetXForm(); _local6 = _local4.position; _local7 = _local5.position; _local8 = _arg1.GetAnchor1(); _local9 = _arg1.GetAnchor2(); _local10 = s_jointColor; switch (_arg1.GetType()){ 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 SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function DrawDebugData():void{ var _local1:uint; var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2XForm; var _local12:b2AABB; var _local13:b2AABB; var _local14:Array; 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(); _local1 = m_debugDraw.GetFlags(); _local7 = new b2Vec2(); _local8 = new b2Vec2(); _local9 = new b2Vec2(); _local10 = new b2Color(0, 0, 0); _local12 = new b2AABB(); _local13 = new b2AABB(); _local14 = [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.GetXForm(); _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.GetNext(); }; _local3 = _local3.GetNext(); }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.GetNext(); }; }; 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.GetXForm(); _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.GetType() != 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.GetNext(); }; _local3 = _local3.GetNext(); }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.GetXForm().R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.GetNext(); }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local2:b2JointEdge; var _local3:b2Shape; var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; _local2 = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; _local3 = _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 DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local5:b2Color; 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; _local5 = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.GetLocalPosition()); _local8 = _local6.GetRadius(); _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 Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Island; var _local4:b2Contact; var _local5:b2Joint; var _local6:int; var _local7:Array; var _local8:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; _local3 = 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; }; _local4 = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; _local5 = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; _local6 = m_bodyCount; _local7 = new Array(_local6); _local8 = 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.GetManifoldCount() == 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, (s_enablePositionCorrection > 0), m_allowSleep); m_positionIterationCount = Math.max(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.GetNext(); }; m_broadPhase.Commit(); } public function GetGroundBody():b2Body{ return (m_groundBody); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array; var _local5:int; var _local6:int; _local4 = new Array(_arg3); _local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); _local6 = 0; while (_local6 < _local5) { _arg2[_local6] = (_local4[_local6] as b2Shape); _local6++; }; return (_local5); } 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 _local8:b2Island; var _local9:int; var _local10:Array; 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; _local8 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); _local9 = m_bodyCount; _local10 = 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.GetShape1(); _local4 = _local11.GetShape2(); _local5 = _local3.GetBody(); _local6 = _local4.GetBody(); 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 = Math.min((((1 - _local18) * _local19) + _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.GetShape1(); _local4 = _local12.GetShape2(); _local5 = _local3.GetBody(); _local6 = _local4.GetBody(); _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.GetManifoldCount() == 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.GetManifoldCount() == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function CreateDynamicBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, b2Body.e_dynamicType, 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 CreateJoint(_arg1:b2JointDef):b2Joint{ var _local2:b2Joint; var _local3:b2Body; var _local4:b2Shape; _local2 = 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.ResetProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local2:Boolean; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Shape; _local2 = _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; }; _local3 = _arg1.m_body1; _local4 = _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.ResetProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function CreateStaticBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, b2Body.e_staticType, 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 Step(_arg1:Number, _arg2:int):void{ var _local3:b2TimeStep; m_lock = true; _local3 = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((s_enableTOI) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_lock = false; } } }//package Box2D.Dynamics
Section 73
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public static function concatObjects(... _args):Object{ var _local2:Object; var _local3:Object; var _local4:int; var _local5:String; _local2 = {}; _local4 = 0; 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); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } public static function isInArray(_arg1:String, _arg2:Array):Boolean{ var _local3:uint; var _local4:uint; _local3 = _arg2.length; _local4 = 0; while (_local4 < _local3) { if (_arg2[_local4] == _arg1){ return (true); }; _local4++; }; return (false); } public static function getObjectLength(_arg1:Object):uint{ var _local2:uint; var _local3:String; _local2 = 0; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } } }//package caurina.transitions
Section 74
//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 _local6:Number; var _local7:Number; var _local8:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period; _local8 = (((!(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; _local6 = (((!(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; _local6 = (((!(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; _local6 = (((!(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 _local6:Number; var _local7:Number; var _local8:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; _local8 = (((!(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 _local6:Number; var _local7:Number; var _local8:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; _local8 = (((!(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 75
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var originalValueComplete:Object; public var modifierParameters:Array; public var isSpecialProperty:Boolean; public var hasModifier:Boolean; public var valueComplete:Number; public var extra:Object; public var valueStart:Number; public var modifierFunction:Function; public var arrayIndex:Number; 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:String; _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; _local1 = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters); return (_local1); } } }//package caurina.transitions
Section 76
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var parameters:Array; public var preProcess:Function; public var setValue:Function; public var getValue: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:String; _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 77
//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:String; _local1 = ""; _local1 = (_local1 + "[SpecialPropertyModifier "); _local1 = (_local1 + ("modifyValues:" + String(modifyValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 78
//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:String; _local1 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 79
//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{ var _local4:SpecialPropertyModifier; if (!_inited){ init(); }; _local4 = new SpecialPropertyModifier(_arg2, _arg3); _specialPropertyModifierList[_arg1] = _local4; } public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{ var _local6:SpecialProperty; if (!_inited){ init(); }; _local6 = 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 _local5:Object; var _local6:Number; var _local7:Number; 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]; }; _local5 = _arg2; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; _local6 = (isNaN(_local5.time)) ? 0 : _local5.time; _local7 = (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 _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { pauseTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function removeTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(removeTweenByIndex, _arg1, _local3)); } public static function splitTweens(_arg1:Number, _arg2:Array):uint{ var _local3:TweenListObj; var _local4:TweenListObj; var _local5:uint; var _local6:String; var _local7:Boolean; _local3 = _tweenList[_arg1]; _local4 = _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; var _local3:Number; _local2 = _tweenList[_arg1]; if ((((_local2 == null)) || (!(_local2.isPaused)))){ return (false); }; _local3 = 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.71"); } public static function onEnterFrame(_arg1:Event):void{ var _local2:Boolean; updateTime(); updateFrame(); _local2 = false; _local2 = updateTweens(); if (!_local2){ stopEngine(); }; } public static function updateTime():void{ _currentTime = getTimer(); } private static function updateTweenByIndex(_arg1:Number):Boolean{ var tTweening:TweenListObj; var isOver:Boolean; 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 cTime:Number; var tProperty:Object; var pv:Number; var i = _arg1; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; isOver = false; cTime = 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(e:Error) { handleError(tTweening, e, "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(e:Error) { handleError(tTweening, e, "onUpdate"); }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope; try { tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams); } catch(e:Error) { handleError(tTweening, e, "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 _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _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 _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _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 _local7:Object; var _local8:Number; var _local9:Number; var _local10:Array; var _local11:Object; var _local12:Object; 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]; }; _local7 = TweenListObj.makePropertiesChain(_arg2); if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; _local8 = (isNaN(_local7.time)) ? 0 : _local7.time; _local9 = (isNaN(_local7.delay)) ? 0 : _local7.delay; _local10 = new Array(); _local11 = {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}; _local12 = 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 _local4:Boolean; var _local5:uint; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; _local4 = false; 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; var _local4:Array; if (!Boolean(_tweenList)){ return ([]); }; _local4 = 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; _local2 = _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; var _local3:Number; if (!Boolean(_tweenList)){ return (0); }; _local3 = 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 removed:Boolean; var removedLocally:Boolean; var i:uint; var tl:uint; var pName:String; var eventScope:Object; var p_scope = _arg1; var p_properties = _arg2; var p_timeStart = _arg3; var p_timeComplete = _arg4; removed = false; tl = _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{ var _local4:SpecialPropertySplitter; if (!_inited){ init(); }; _local4 = 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 _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(resumeTweenByIndex, _arg1, _local3)); } public static function pauseTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(pauseTweenByIndex, _arg1, _local3)); } } }//package caurina.transitions
Section 80
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var onUpdate:Function; public var useFrames:Boolean; public var hasStarted:Boolean; public var onOverwriteParams:Array; public var timeStart:Number; public var count: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 transition:Function; public var timePaused:Number; public var onCompleteParams:Array; public var timesCalled:Number; public var isCaller:Boolean; public var onError:Function; 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 _local2:TweenListObj; var _local3:String; _local2 = 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 _local1:String; var _local2:Boolean; var _local3:String; _local1 = "\n[TweenListObj "; _local1 = (_local1 + ("scope:" + String(scope))); _local1 = (_local1 + ", properties:"); _local2 = true; 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 _local2:Object; var _local3:Object; var _local4:Object; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; _local2 = _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 81
//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 82
//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 83
//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 84
//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 85
//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 86
//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 87
//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 88
//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 89
//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 90
//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 91
//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 92
//KongregateAPI (com.kongregate.as3.client.KongregateAPI) package com.kongregate.as3.client { import flash.events.*; import flash.display.*; import com.kongregate.as3.client.services.*; import com.kongregate.as3.client.events.*; import flash.system.*; import flash.net.*; import flash.utils.*; 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 93
//level1 (levels_g.level1) package levels_g { public dynamic class level1 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 94
//level10 (levels_g.level10) package levels_g { public dynamic class level10 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 95
//level11 (levels_g.level11) package levels_g { public dynamic class level11 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 96
//level12 (levels_g.level12) package levels_g { public dynamic class level12 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 97
//level13 (levels_g.level13) package levels_g { public dynamic class level13 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 98
//level14 (levels_g.level14) package levels_g { public dynamic class level14 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 99
//level15 (levels_g.level15) package levels_g { public dynamic class level15 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 100
//level16 (levels_g.level16) package levels_g { public dynamic class level16 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 101
//level17 (levels_g.level17) package levels_g { public dynamic class level17 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 102
//level18 (levels_g.level18) package levels_g { public dynamic class level18 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 103
//level19 (levels_g.level19) package levels_g { public dynamic class level19 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 104
//level2 (levels_g.level2) package levels_g { public dynamic class level2 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 105
//level20 (levels_g.level20) package levels_g { public dynamic class level20 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 106
//level21 (levels_g.level21) package levels_g { public dynamic class level21 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 107
//level22 (levels_g.level22) package levels_g { public dynamic class level22 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 108
//level23 (levels_g.level23) package levels_g { public dynamic class level23 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 109
//level24 (levels_g.level24) package levels_g { public dynamic class level24 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 110
//level25 (levels_g.level25) package levels_g { public dynamic class level25 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 111
//level26 (levels_g.level26) package levels_g { public dynamic class level26 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 112
//level27 (levels_g.level27) package levels_g { public dynamic class level27 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 113
//level28 (levels_g.level28) package levels_g { public dynamic class level28 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 114
//level29 (levels_g.level29) package levels_g { public dynamic class level29 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 115
//level3 (levels_g.level3) package levels_g { public dynamic class level3 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 116
//level30 (levels_g.level30) package levels_g { public dynamic class level30 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 117
//level31 (levels_g.level31) package levels_g { public dynamic class level31 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 118
//level32 (levels_g.level32) package levels_g { public dynamic class level32 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 119
//level33 (levels_g.level33) package levels_g { public dynamic class level33 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 120
//level34 (levels_g.level34) package levels_g { public dynamic class level34 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 121
//level35 (levels_g.level35) package levels_g { public dynamic class level35 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 122
//level36 (levels_g.level36) package levels_g { public dynamic class level36 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 123
//level37 (levels_g.level37) package levels_g { public dynamic class level37 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 124
//level38 (levels_g.level38) package levels_g { public dynamic class level38 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 125
//level39 (levels_g.level39) package levels_g { public dynamic class level39 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 126
//level4 (levels_g.level4) package levels_g { public dynamic class level4 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 127
//level40 (levels_g.level40) package levels_g { public dynamic class level40 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 128
//level41 (levels_g.level41) package levels_g { public dynamic class level41 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 129
//level42 (levels_g.level42) package levels_g { public dynamic class level42 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 130
//level43 (levels_g.level43) package levels_g { public dynamic class level43 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 131
//level44 (levels_g.level44) package levels_g { public dynamic class level44 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 132
//level45 (levels_g.level45) package levels_g { public dynamic class level45 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 133
//level46 (levels_g.level46) package levels_g { public dynamic class level46 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 134
//level47 (levels_g.level47) package levels_g { public dynamic class level47 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 135
//level48 (levels_g.level48) package levels_g { public dynamic class level48 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 136
//level49 (levels_g.level49) package levels_g { public dynamic class level49 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 137
//level5 (levels_g.level5) package levels_g { public dynamic class level5 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 138
//level50 (levels_g.level50) package levels_g { public dynamic class level50 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 139
//level51 (levels_g.level51) package levels_g { public dynamic class level51 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 140
//level52 (levels_g.level52) package levels_g { public dynamic class level52 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 141
//level53 (levels_g.level53) package levels_g { public dynamic class level53 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 142
//level54 (levels_g.level54) package levels_g { public dynamic class level54 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 143
//level55 (levels_g.level55) package levels_g { public dynamic class level55 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 144
//level56 (levels_g.level56) package levels_g { public dynamic class level56 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 145
//level57 (levels_g.level57) package levels_g { public dynamic class level57 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 146
//level58 (levels_g.level58) package levels_g { public dynamic class level58 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 147
//level59 (levels_g.level59) package levels_g { public dynamic class level59 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 148
//level6 (levels_g.level6) package levels_g { public dynamic class level6 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 149
//level60 (levels_g.level60) package levels_g { public dynamic class level60 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 150
//level61 (levels_g.level61) package levels_g { public dynamic class level61 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 151
//level62 (levels_g.level62) package levels_g { public dynamic class level62 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 152
//level63 (levels_g.level63) package levels_g { public dynamic class level63 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 153
//level64 (levels_g.level64) package levels_g { public dynamic class level64 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 154
//level65 (levels_g.level65) package levels_g { public dynamic class level65 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 155
//level66 (levels_g.level66) package levels_g { public dynamic class level66 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 156
//level67 (levels_g.level67) package levels_g { public dynamic class level67 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 157
//level68 (levels_g.level68) package levels_g { public dynamic class level68 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 158
//level69 (levels_g.level69) package levels_g { public dynamic class level69 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 159
//level7 (levels_g.level7) package levels_g { public dynamic class level7 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 160
//level70 (levels_g.level70) package levels_g { public dynamic class level70 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 161
//level8 (levels_g.level8) package levels_g { public dynamic class level8 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 162
//level9 (levels_g.level9) package levels_g { public dynamic class level9 extends levels { public var mcDulo:p_dulo; } }//package levels_g
Section 163
//bubble_logo3_2 (rc2_fla.bubble_logo3_2) package rc2_fla { import flash.display.*; public dynamic class bubble_logo3_2 extends MovieClip { public function bubble_logo3_2(){ addFrameScript(0, frame1, 9, frame10); } function frame10(){ stop(); } function frame1(){ stop(); } } }//package rc2_fla
Section 164
//bubleintro_1 (rc2_fla.bubleintro_1) package rc2_fla { import flash.display.*; public dynamic class bubleintro_1 extends MovieClip { public var play_latest_text:MovieClip; public function bubleintro_1(){ addFrameScript(146, frame147); } function frame147(){ (parent as MovieClip).gotoAndPlay("intro2"); } } }//package rc2_fla
Section 165
//MainTimeline (rc2_fla.MainTimeline) package rc2_fla { import flash.display.*; import flash.text.*; public dynamic class MainTimeline extends MovieClip { public var ok:bOK; public var btnVid:bVid; public var mcMenu:menu; public var mqua:qualit; public var mcPr:preloader; public var scores:TextField; public var mcGmenu:Символ1; public var key:TextField; public var mcWin:win; public var bbscore:bubblebox_score; public var btnLoad:bLoad; public var mcMain:Main; public var btnHiSc:bHiscore; public var btnPlay:bPlay; public var rt:TextField; public var btnHelp:bHelp; public var no:TextField; public var mcInit:init; public var btnMore:bMore; public var btnCredits:bCredits; public var bbmm:SimpleButton; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 4, frame5, 5, frame6, 6, frame7); } function frame1(){ stop(); MochiBot.track(this, "b3aa93cd"); mcInit = new init(); addChild(mcInit); } function frame3(){ stop(); } function frame5(){ stop(); mcMenu = new menu(); addChild(mcMenu); } function frame2(){ stop(); mcPr = new preloader(); addChild(mcPr); } function frame7(){ stop(); mcWin = new win(); addChild(mcWin); } function frame6(){ stop(); mcMain = new Main(); addChild(mcMain); } } }//package rc2_fla
Section 166
//ball1_1 (ball1_1) package { import flash.display.*; public dynamic class ball1_1 extends MovieClip { } }//package
Section 167
//ball1_2 (ball1_2) package { import flash.display.*; public dynamic class ball1_2 extends MovieClip { } }//package
Section 168
//ball2_1 (ball2_1) package { import flash.display.*; public dynamic class ball2_1 extends MovieClip { } }//package
Section 169
//ball2_2 (ball2_2) package { import flash.display.*; public dynamic class ball2_2 extends MovieClip { } }//package
Section 170
//ball3_1 (ball3_1) package { import flash.display.*; public dynamic class ball3_1 extends MovieClip { } }//package
Section 171
//ball3_2 (ball3_2) package { import flash.display.*; public dynamic class ball3_2 extends MovieClip { } }//package
Section 172
//bCredits (bCredits) package { import flash.display.*; public dynamic class bCredits extends SimpleButton { } }//package
Section 173
//bHelp (bHelp) package { import flash.display.*; public dynamic class bHelp extends SimpleButton { } }//package
Section 174
//bHiscore (bHiscore) package { import flash.display.*; public dynamic class bHiscore extends SimpleButton { } }//package
Section 175
//bLoad (bLoad) package { import flash.display.*; public dynamic class bLoad extends SimpleButton { } }//package
Section 176
//bMore (bMore) package { import flash.display.*; public dynamic class bMore extends SimpleButton { } }//package
Section 177
//bOK (bOK) package { import flash.display.*; public dynamic class bOK extends SimpleButton { } }//package
Section 178
//box1_1 (box1_1) package { import flash.display.*; public dynamic class box1_1 extends MovieClip { } }//package
Section 179
//box2_1 (box2_1) package { import flash.display.*; public dynamic class box2_1 extends MovieClip { } }//package
Section 180
//box3_1 (box3_1) package { import flash.display.*; public dynamic class box3_1 extends MovieClip { } }//package
Section 181
//bPlay (bPlay) package { import flash.display.*; public dynamic class bPlay extends SimpleButton { } }//package
Section 182
//bubblebox_score (bubblebox_score) package { import flash.events.*; import flash.display.*; import flash.filters.*; import flash.media.*; import flash.system.*; import flash.net.*; import flash.text.*; import flash.utils.*; import flash.errors.*; import flash.accessibility.*; import flash.external.*; import flash.geom.*; import flash.ui.*; public dynamic class bubblebox_score extends MovieClip { public var loader:URLLoader; public var loadingStatus:String; public var but:Sprite; public var score:Number; public var gameID:Number; public var insertname:TextField; public function bubblebox_score(){ addFrameScript(0, frame1); } public function removeListeners():void{ loader.removeEventListener(Event.COMPLETE, completeHandler); loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); loader.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } public function clicked(_arg1:MouseEvent):void{ var _local2:String; var _local3:URLVariables; var _local4:URLRequest; if (loadingStatus == "insertName"){ if (((!((this.insertname.text == "YOUR NAME"))) && ((this.insertname.text.length > 0)))){ _local2 = ((((("name=" + escape(this.insertname.text)) + "&score=") + score) + "&game=") + gameID); _local3 = new URLVariables(_local2); _local4 = new URLRequest("http://www.bubblebox.com/scripts/insertscore.php"); _local4.data = _local3; _local4.method = URLRequestMethod.POST; loader.dataFormat = URLLoaderDataFormat.TEXT; loader.addEventListener(Event.COMPLETE, completeHandler, false, 0, true); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler, false, 0, true); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler, false, 0, true); loader.load(_local4); this.gotoAndStop(2); loadingStatus = "sending"; }; } else { if (loadingStatus == "sending"){ } else { if (loadingStatus == "completed"){ navigateToURL(new URLRequest((("http://www.bubblebox.com/highscores/" + gameID) + ".htm")), "_blank"); } else { if (loadingStatus == "failed"){ loadingStatus = "insertName"; this.gotoAndStop(1); }; }; }; }; } public function failed():void{ loadingStatus = "failed"; removeListeners(); this.gotoAndStop(4); } public function setScore(_arg1:Number, _arg2:Number):void{ score = _arg1; gameID = _arg2; } function frame1(){ this.stage.focus = this.insertname; this.insertname.setSelection(0, this.insertname.text.length); loader = new URLLoader(); loadingStatus = "insertName"; but = new Sprite(); this.addChildAt(but, 0); but.graphics.beginFill(0, 0); but.graphics.drawRect(0, 0, 320, 47); but.graphics.endFill(); but.mouseEnabled = true; but.buttonMode = true; but.useHandCursor = true; but.addEventListener(MouseEvent.CLICK, clicked, false, 0, true); stop(); } public function ioErrorHandler(_arg1:IOErrorEvent):void{ trace("ioError"); failed(); } public function securityErrorHandler(_arg1:SecurityErrorEvent):void{ trace("securityError"); failed(); } public function completeHandler(_arg1:Event):void{ loadingStatus = "completed"; removeListeners(); this.gotoAndStop(3); } } }//package
Section 183
//bVid (bVid) package { import flash.display.*; public dynamic class bVid extends SimpleButton { } }//package
Section 184
//clack (clack) package { import flash.media.*; public dynamic class clack extends Sound { } }//package
Section 185
//e1 (e1) package { import flash.display.*; public dynamic class e1 extends MovieClip { public function e1(){ addFrameScript(32, frame33); } function frame33(){ stop(); this.parent.removeChild(this); } } }//package
Section 186
//e2 (e2) package { import flash.display.*; public dynamic class e2 extends MovieClip { public function e2(){ addFrameScript(37, frame38); } function frame38(){ stop(); this.parent.removeChild(this); } } }//package
Section 187
//FGLbtn (FGLbtn) package { import flash.display.*; public dynamic class FGLbtn extends SimpleButton { } }//package
Section 188
//FGLfull (FGLfull) package { import flash.display.*; public dynamic class FGLfull extends MovieClip { } }//package
Section 189
//fire1 (fire1) package { import flash.media.*; public dynamic class fire1 extends Sound { } }//package
Section 190
//fire2 (fire2) package { import flash.media.*; public dynamic class fire2 extends Sound { } }//package
Section 191
//head_1 (head_1) package { import flash.display.*; public dynamic class head_1 extends MovieClip { } }//package
Section 192
//head_2 (head_2) package { import flash.display.*; public dynamic class head_2 extends MovieClip { } }//package
Section 193
//head_3 (head_3) package { import flash.display.*; public dynamic class head_3 extends MovieClip { } }//package
Section 194
//init (init) package { import flash.events.*; import flash.display.*; public dynamic class init extends MovieClip { var slSites:Array; var sl; public var Parent; public static var tru = false; public function init(){ this.sl = true; this.slSites = ["www.andkon.com", "andkon.com", "bubblebox.com", "johnny-k.ru"]; super(); addEventListener(Event.ENTER_FRAME, this.ini); } private function checkDomain(_arg1:String):Boolean{ var _loc2_:String; var _loc3_:Number; var _loc4_:Number; var _loc5_:String; var _loc6_:Number; var _loc7_:Number; _loc2_ = stage.loaderInfo.url; _loc3_ = (_loc2_.indexOf("://") + 3); _loc4_ = _loc2_.indexOf("/", _loc3_); _loc5_ = _loc2_.substring(_loc3_, _loc4_); _loc6_ = (_loc5_.lastIndexOf(".") - 1); _loc7_ = (_loc5_.lastIndexOf(".", _loc6_) + 1); _loc5_ = _loc5_.substring(_loc7_, _loc5_.length); if (_loc5_ == _arg1){ return (true); }; return (true); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, this.ini); this.go(); }; } function search(_arg1:String):Boolean{ var _loc2_:*; var _loc3_:*; _loc2_ = false; _loc3_ = 0; while (_loc3_ < this.slSites.length) { if (this.checkDomain(this.slSites[_loc3_])){ _loc2_ = true; break; }; _loc3_++; }; return (_loc2_); } function go(){ var _loc1_:String; this.Parent = this.parent; this.Parent.no.visible = false; if (this.sl){ _loc1_ = stage.loaderInfo.url; if (this.search(_loc1_)){ Main.levelC = 70; Main.lvl = 1; preloader.gameID = "1098"; this.Parent.gotoAndPlay("preloader"); } else { stage.frameRate = 0; gotoAndStop(0); }; } else { Main.levelC = 70; Main.lvl = 1; preloader.gameID = "1098"; this.Parent.gotoAndPlay("preloader"); }; } } }//package
Section 195
//initAll (initAll) package { import flash.display.*; public dynamic class initAll extends MovieClip { public function initAll(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6); } function frame3(){ stop(); } function frame6(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame2(){ stop(); } } }//package
Section 196
//keycodes (keycodes) package { public class keycodes { public static var key:Array = ["adam", "eva", "power", "gps", "agata", "kristi", "batman", "shift", "gemcraft", "beeline", "yandex", "wow", "sprite", "walle", "ragdoll", "russia", "pivo", "spok", "kirk", "ilove", "jolie", "mdhaus", "scully", "zzxx", "sinch", "portal", "nice", "game", "message", "for", "you", "hahaha", "hahahaha", "ubik", "bounty", "clones", "blizz", "craft", "bubble", "box", "zzzzzz", "rc2", "grow", "iddqd", "repa", "yah", "dharma", "wetwet", "acreed", "callduty", "alflive", "ikrasoft", "night", "timemach", "rome", "desperad", "oper", "goblin", "votka", "pacm", "dwar", "cube", "scream", "visto", "limbo", "riple", "and", "this", "full", "endend"]; } }//package
Section 197
//kill1 (kill1) package { import flash.display.*; public dynamic class kill1 extends MovieClip { public var r:Number; public function kill1(){ addFrameScript(0, frame1); } function frame1(){ r = Math.ceil((Math.random() * 140)); gotoAndPlay(r); } } }//package
Section 198
//kill2 (kill2) package { import flash.display.*; public dynamic class kill2 extends MovieClip { } }//package
Section 199
//kill3 (kill3) package { import flash.display.*; public dynamic class kill3 extends MovieClip { } }//package
Section 200
//la_1 (la_1) package { import flash.display.*; public dynamic class la_1 extends MovieClip { } }//package
Section 201
//la_2 (la_2) package { import flash.display.*; public dynamic class la_2 extends MovieClip { } }//package
Section 202
//la_3 (la_3) package { import flash.display.*; public dynamic class la_3 extends MovieClip { } }//package
Section 203
//levels (levels) package { import flash.events.*; import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import caurina.transitions.*; import flash.filters.*; import flash.media.*; import flash.net.*; import flash.text.*; import flash.utils.*; import flash.ui.*; public dynamic class levels extends MovieClip { public var m_physScale:Number;// = 30 var s_winlev:winlev; var osnova; var s_fire2:fire2; var scc:TextField; var winl:TextField;// = null var qm;// = null var g_menu:MovieClip; public var m_iterations:int;// = 10 var sc:SoundChannel; var stat:SharedObject; var st:SoundTransform; var tcol;// = 0.1 var pric:MovieClip; var s_clack:clack; var Parent; public var m_timeStep:Number;// = 0.0333333333333333 var gameFlug;// = true var s_theme:theme; var rArray:Array; var gun:MovieClip; var iii;// = 0 public var m_world:b2World; var slogoG; var head:b2Body;// = null var mArray:Array; var here:b2Body;// = null var s_fire1:fire1; public var m_mouseJoint:b2MouseJoint; var depthC;// = 0 public static var mouseYWorldPhys:Number; public static var mouseXWorldPhys:Number; public static var mouseYWorld:Number; public static var m_sprite:Sprite; public static var mouseXWorld:Number; public function levels():void{ st = new SoundTransform(); s_fire1 = new fire1(); s_fire2 = new fire2(); s_clack = new clack(); s_theme = new theme(); s_winlev = new winlev(); m_iterations = 10; m_timeStep = (1 / 30); m_physScale = 30; head = null; rArray = []; mArray = []; here = null; gameFlug = true; winl = null; stat = SharedObject.getLocal("ragdoll_cannon_2"); qm = null; iii = 0; depthC = 0; tcol = 0.1; super(); addEventListener(Event.ENTER_FRAME, init); } public function addArr(_arg1:Array){ var _local2:*; var _local3:Array; var _local4:*; var _local5:*; _local2 = 0; if (Main.q == 1){ _local2 = 3; }; if (Main.q == 2){ _local2 = 4; }; if (Main.q == 3){ _local2 = 5; }; if (rArray.length == _local2){ _local3 = rArray[0]; _local4 = 0; while (_local4 < _local3.length) { _local5 = _local3[_local4]; if ((((_local5 is MovieClip)) && (contains(_local5)))){ removeChild((_local5 as Sprite)); }; if ((_local5 is b2Body)){ m_world.DestroyBody(_local5); }; _local4++; }; rArray.shift(); rArray.push(_arg1); } else { rArray.push(_arg1); }; } function objToPhys(){ var _local1:b2Body; var _local2:b2BodyDef; var _local3:b2PolygonDef; var _local4:b2CircleDef; var _local5:*; var _local6:Array; var _local7:*; var _local8:*; var _local9:int; var _local10:*; var _local11:*; var _local12:b2Body; var _local13:Array; var _local14:*; _local5 = numChildren; _local6 = []; _local7 = 0; while (_local7 < _local5) { _local10 = getChildAt(_local7); if ((((((((((((((((((((((((((((((((((((((((((((_local10 is kill1)) || ((_local10 is mhere)))) || ((_local10 is sk1_1)))) || ((_local10 is sk1_2)))) || ((_local10 is ball1_1)))) || ((_local10 is ball1_2)))) || ((_local10 is box1_1)))) || ((_local10 is plank1_1)))) || ((_local10 is plank1_2)))) || ((_local10 is plank1_3)))) || ((_local10 is plank1_4)))) || ((_local10 is plank1_5)))) || ((_local10 is plank1_6)))) || ((_local10 is plank1_7)))) || ((_local10 is plank1_8)))) || ((_local10 is plank1_9)))) || ((_local10 is plankM1_1)))) || ((_local10 is plankM1_2)))) || ((_local10 is plankM1_3)))) || ((_local10 is plankM1_4)))) || ((_local10 is plankD1_1)))) || ((_local10 is plankD1_2)))){ _local6.push(_local10); addShadow(_local10); }; if ((((((((((((((((((((((((((((((((((((((((((_local10 is kill2)) || ((_local10 is sk2_1)))) || ((_local10 is sk2_2)))) || ((_local10 is ball2_1)))) || ((_local10 is ball2_2)))) || ((_local10 is box2_1)))) || ((_local10 is plank2_1)))) || ((_local10 is plank2_2)))) || ((_local10 is plank2_3)))) || ((_local10 is plank2_4)))) || ((_local10 is plank2_5)))) || ((_local10 is plank2_6)))) || ((_local10 is plank2_7)))) || ((_local10 is plank2_8)))) || ((_local10 is plank2_9)))) || ((_local10 is plankM2_1)))) || ((_local10 is plankM2_2)))) || ((_local10 is plankM2_3)))) || ((_local10 is plankM2_4)))) || ((_local10 is plankD2_1)))) || ((_local10 is plankD2_2)))){ _local6.push(_local10); addShadow(_local10); }; if ((((((((((((((((((((((((((((((((((((((((((_local10 is kill3)) || ((_local10 is sk3_1)))) || ((_local10 is sk3_2)))) || ((_local10 is ball3_1)))) || ((_local10 is ball3_2)))) || ((_local10 is box3_1)))) || ((_local10 is plank3_1)))) || ((_local10 is plank3_2)))) || ((_local10 is plank3_3)))) || ((_local10 is plank3_4)))) || ((_local10 is plank3_5)))) || ((_local10 is plank3_6)))) || ((_local10 is plank3_7)))) || ((_local10 is plank3_8)))) || ((_local10 is plank3_9)))) || ((_local10 is plankM3_1)))) || ((_local10 is plankM3_2)))) || ((_local10 is plankM3_3)))) || ((_local10 is plankM3_4)))) || ((_local10 is plankD3_1)))) || ((_local10 is plankD3_2)))){ _local6.push(_local10); addShadow(_local10); }; if ((_local10 is p_osnova)){ osnova = _local10; }; _local7++; }; _local8 = (m_physScale * 2); _local9 = 0; while (_local9 < _local6.length) { _local11 = _local6[_local9]; _local2 = new b2BodyDef(); _local2.position.x = (_local11.x / m_physScale); _local2.position.y = (_local11.y / m_physScale); if ((((((_local11 is ball1_1)) || ((_local11 is ball2_1)))) || ((_local11 is ball3_1)))){ _local4 = new b2CircleDef(); _local4.radius = ((_local11.width / m_physScale) / 2); _local4.density = 0.2; _local4.friction = 0.5; _local4.restitution = 0.2; _local2.userData = _local11; _local2.userData.width = ((_local4.radius * 2) * 30); _local2.userData.height = ((_local4.radius * 2) * 30); _local1 = m_world.CreateDynamicBody(_local2); _local1.CreateShape(_local4); _local1.moveF = true; _local1.SetMassFromShapes(); addChild(_local2.userData); }; if ((((((_local11 is ball1_2)) || ((_local11 is ball2_2)))) || ((_local11 is ball3_2)))){ _local4 = new b2CircleDef(); _local4.radius = ((_local11.width / m_physScale) / 2); _local4.density = 2.1; _local4.friction = 0.5; _local4.restitution = 0.2; _local2.userData = _local11; _local2.userData.width = ((_local4.radius * 2) * 30); _local2.userData.height = ((_local4.radius * 2) * 30); _local1 = m_world.CreateDynamicBody(_local2); _local1.CreateShape(_local4); _local1.moveF = true; _local1.SetMassFromShapes(); addChild(_local2.userData); }; if ((_local11 is mhere)){ _local4 = new b2CircleDef(); _local4.radius = ((_local11.width / m_physScale) / 2); _local4.density = 0.4; _local4.friction = 0.1; _local4.restitution = 0.2; _local2.userData = _local11; _local2.userData.width = ((_local4.radius * 2) * 30); _local2.userData.height = ((_local4.radius * 2) * 30); here = m_world.CreateDynamicBody(_local2); here.NameB = "here"; here.CreateShape(_local4); here.SetMassFromShapes(); addChild(_local2.userData); }; if ((((((((((((((((((((((((_local11 is plankM1_1)) || ((_local11 is plankM1_2)))) || ((_local11 is plankM1_3)))) || ((_local11 is plankM1_4)))) || ((_local11 is plankM2_1)))) || ((_local11 is plankM2_2)))) || ((_local11 is plankM2_3)))) || ((_local11 is plankM2_4)))) || ((_local11 is plankM3_1)))) || ((_local11 is plankM3_2)))) || ((_local11 is plankM3_3)))) || ((_local11 is plankM3_4)))){ _local3 = new b2PolygonDef(); _local3.SetAsBox((_local11.width / _local8), (_local11.height / _local8)); _local3.density = 0.8; _local3.friction = 0.1; _local3.restitution = 0.1; _local2.userData = _local11; _local1 = m_world.CreateDynamicBody(_local2); _local1.CreateShape(_local3); _local1.moveF = true; _local1.SetMassFromShapes(); addChild(_local2.userData); }; if ((((((((((((_local11 is plankD1_1)) || ((_local11 is plankD1_2)))) || ((_local11 is plankD2_1)))) || ((_local11 is plankD2_2)))) || ((_local11 is plankD3_1)))) || ((_local11 is plankD3_2)))){ _local3 = new b2PolygonDef(); _local3.SetAsBox((_local11.width / _local8), (_local11.height / _local8)); _local3.density = 0.1; _local3.friction = 1; _local3.restitution = 0.1; _local2.userData = _local11; _local12 = m_world.CreateStaticBody(_local2); _local12.CreateShape(_local3); _local12.SetMassFromShapes(); addChild(_local2.userData); _local13 = [_local12, 4, null]; mArray.push(_local13); }; if ((((((_local11 is kill1)) || ((_local11 is kill2)))) || ((_local11 is kill3)))){ _local3 = new b2PolygonDef(); _local3.SetAsBox((_local11.width / _local8), (_local11.height / _local8)); _local3.density = 0.1; _local3.friction = 0.9; _local3.restitution = 0; _local2.userData = _local11; here = m_world.CreateStaticBody(_local2); here.NameB = "kill"; here.CreateShape(_local3); here.SetMassFromShapes(); addChild(_local2.userData); }; if ((((((_local11 is box1_1)) || ((_local11 is box2_1)))) || ((_local11 is box3_1)))){ _local3 = new b2PolygonDef(); _local3.SetAsBox((_local11.width / _local8), (_local11.height / _local8)); _local3.density = 0.2; _local3.friction = 0.1; _local3.restitution = 0.1; _local2.userData = _local11; _local1 = m_world.CreateDynamicBody(_local2); _local1.CreateShape(_local3); _local1.moveF = true; _local1.SetMassFromShapes(); addChild(_local2.userData); }; if ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((_local11 is plank1_1)) || ((_local11 is plank1_2)))) || ((_local11 is plank1_3)))) || ((_local11 is plank1_4)))) || ((_local11 is plank1_5)))) || ((_local11 is plank1_6)))) || ((_local11 is plank1_7)))) || ((_local11 is plank1_8)))) || ((_local11 is plank1_9)))) || ((_local11 is sk1_1)))) || ((_local11 is sk1_2)))) || ((_local11 is plank2_1)))) || ((_local11 is plank2_2)))) || ((_local11 is plank2_3)))) || ((_local11 is plank2_4)))) || ((_local11 is plank2_5)))) || ((_local11 is plank2_6)))) || ((_local11 is plank2_7)))) || ((_local11 is plank2_8)))) || ((_local11 is plank2_9)))) || ((_local11 is sk2_1)))) || ((_local11 is sk2_2)))) || ((_local11 is plank3_1)))) || ((_local11 is plank3_2)))) || ((_local11 is plank3_3)))) || ((_local11 is plank3_4)))) || ((_local11 is plank3_5)))) || ((_local11 is plank3_6)))) || ((_local11 is plank3_7)))) || ((_local11 is plank3_8)))) || ((_local11 is plank3_9)))) || ((_local11 is sk3_1)))) || ((_local11 is sk3_2)))){ _local3 = new b2PolygonDef(); _local14 = _local11.rotation; _local3.SetAsBox((_local11.width / (m_physScale * 2)), (_local11.height / (m_physScale * 2))); _local3.density = 0.1; _local3.friction = 0.3; _local3.restitution = 0.4; _local2.userData = _local11; _local1 = m_world.CreateStaticBody(_local2); _local1.NameB = "n"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); addChild(_local2.userData); }; _local9++; }; } public function veryf():Boolean{ var _local1:*; var _local2:b2Body; var _local3:b2ContactEdge; var _local4:*; var _local5:s_win; _local1 = false; _local2 = m_world.m_bodyList; while (_local2) { if (_local2.NameB == "here"){ _local3 = _local2.GetContactList(); while (_local3) { _local4 = false; if (((!((_local3.other.NameB == null))) && ((_local3.other.NameB == "r")))){ _local4 = true; _local1 = true; st.volume = 0.8; if (Main.snd){ sc = s_winlev.play(0, 0, st); }; }; if (((_local4) && ((Main.lvl == Main.levelC)))){ stat.data.lvl = 1; stat.data.scores = 0; Main.tempScore = 0; _local5 = new s_win(); menu.stT.volume = 1; menu.scT.stop(); menu.scT = _local5.play(0, 0, menu.stT); Main.wonn = true; Mouse.show(); Parent.removeChild(this); Parent.parent.gotoAndStop("win"); }; if (_local4){ break; }; _local3 = _local3.next; }; }; _local2 = _local2.m_next; }; return (_local1); } function defScoresField(){ var _local1:*; var _local2:*; var _local3:*; _local1 = numChildren; _local2 = 0; while (_local2 < _local1) { _local3 = getChildAt(_local2); if ((_local3 is TextField)){ if (_local3.text.indexOf("score") > -1){ _local3.htmlText = ""; scc = _local3; }; }; if ((((_local3 is menu_g)) || ((_local3 is menu_g2)))){ g_menu = _local3; }; if ((((((_local3 is sl1)) || ((_local3 is sl2)))) || ((_local3 is sl3)))){ slogoG = _local3; }; _local2++; }; } private function getBitmapFilter():BitmapFilter{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Boolean; var _local9:Boolean; var _local10:Number; _local2 = 6; _local3 = 6; if ((((Main.lvl > 0)) && ((Main.lvl < 21)))){ _local1 = 7344144; }; if ((((Main.lvl > 20)) && ((Main.lvl < 41)))){ _local1 = 3149840; _local2 = 7; _local3 = 7; }; if ((((Main.lvl > 40)) && ((Main.lvl < 61)))){ _local1 = 2101264; _local2 = 5; _local3 = 5; }; if ((((Main.lvl > 60)) && ((Main.lvl < 71)))){ _local1 = 2101264; _local2 = 3; _local3 = 3; }; _local4 = 45; _local5 = 0.8; _local6 = 0; _local7 = 1; _local8 = false; _local9 = false; _local10 = 0; if (Main.q == 2){ _local10 = BitmapFilterQuality.LOW; }; if (Main.q == 3){ _local10 = BitmapFilterQuality.HIGH; }; return (new DropShadowFilter(_local6, _local4, _local1, _local5, _local2, _local3, _local7, _local10, _local8, _local9)); } function pricel(){ if ((((Main.lvl > 0)) && ((Main.lvl < 21)))){ pric = new pricel1(); }; if ((((Main.lvl > 20)) && ((Main.lvl < 42)))){ pric = new pricel2(); }; if ((((Main.lvl > 40)) && ((Main.lvl < 61)))){ pric = new pricel3(); }; if ((((Main.lvl > 60)) && ((Main.lvl < 71)))){ pric = new pricel1(); }; addChild(pric); } function addShadowGun(){ var _local1:BitmapFilter; var _local2:Array; if (Main.q > 1){ _local1 = getBitmapFilterG(); _local2 = new Array(); _local2.push(_local1); gun.filters = _local2; osnova.filters = _local2; }; } function scor(){ scc.text = ("shots: " + Main.scores); } public function veryfK(){ var _local1:b2Body; var _local2:b2ContactEdge; var _local3:b2JointEdge; _local1 = m_world.m_bodyList; while (_local1) { if (_local1.NameB == "kill"){ _local2 = _local1.GetContactList(); while (_local2) { if (((!((_local2.other.NameB == null))) && ((_local2.other.NameB == "r")))){ _local2.other.NameB = ""; _local2.other.m_userData.blendMode = BlendMode.DIFFERENCE; _local2.other.m_userData.alpha = 0.7; _local3 = _local2.other.GetJointList(); while (_local3) { m_world.DestroyJoint(_local3.joint); st.volume = 0.25; if (Main.snd){ sc = s_clack.play(0, 0, st); }; _local3 = _local3.next; }; break; }; _local2 = _local2.next; }; }; _local1 = _local1.m_next; }; } function pricMove(_arg1:Event){ if (((!((pric == null))) && (!((g_menu == null))))){ pric.x = mouseX; pric.y = mouseY; if (((((((!((slogoG == null))) && (slogoG.hitTestPoint(stage.mouseX, stage.mouseY)))) || (g_menu.hitTestPoint(stage.mouseX, stage.mouseY)))) || (((!((qm == null))) && (qm.hitTestPoint(stage.mouseX, stage.mouseY)))))){ Mouse.show(); pric.visible = false; } else { Mouse.hide(); pric.visible = true; }; }; } function toMenu(){ saveStat(); removeEventListener(Event.ENTER_FRAME, Update); removeEventListener(TextEvent.LINK, linkHandler); removeEventListener(MouseEvent.MOUSE_DOWN, fireGun); removeEventListener(MouseEvent.MOUSE_MOVE, rotateGun); removeEventListener(MouseEvent.MOUSE_MOVE, pricMove); gameFlug = false; Main.scores = 0; Main.tempScore = 0; if (Main.sndChannel != null){ Main.sndChannel.stop(); }; Main(parent).toMenu(); } public function kickR(){ var _local1:*; var _local2:*; _local1 = ((mouseX + 0xFF) / 24); _local2 = ((140 - mouseY) / 24); head.ApplyImpulse(new b2Vec2(_local1, -(_local2)), head.GetLocalCenter()); } function setKeyLevel(){ var _local1:*; var _local2:*; var _local3:*; _local1 = numChildren; _local2 = 0; while (_local2 < _local1) { _local3 = getChildAt(_local2); if ((_local3 is TextField)){ if (_local3.text.indexOf("levelkey") > -1){ _local3.htmlText = ""; _local3.text = ("key: " + keycodes.key[(Main.lvl - 1)]); }; }; _local2++; }; } function go(){ var _local1:b2AABB; var _local2:b2Vec2; var _local3:Boolean; var _local4:*; var _local5:*; var _local6:*; Parent = this.parent; gun = (this.getChildByName("mcDulo") as MovieClip); defScoresField(); addEventListener(MouseEvent.MOUSE_MOVE, rotateGun); addEventListener(MouseEvent.MOUSE_MOVE, pricMove); addEventListener(MouseEvent.MOUSE_DOWN, fireGun); addEventListener(TextEvent.LINK, linkHandler); m_sprite = new Sprite(); addChild(m_sprite); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); _local1 = new b2AABB(); _local1.lowerBound.Set(-1000, -1000); _local1.upperBound.Set(1000, 1000); _local2 = new b2Vec2(0, 7); _local3 = true; m_world = new b2World(_local1, _local2, _local3); objToPhys(); pricel(); addShadow(pric); Mouse.hide(); scor(); setKeyLevel(); saveStat(); rotateGun(null); pricMove(null); addShadowGun(); _local4 = g_menu.numChildren; _local5 = 0; while (_local5 < _local4) { _local6 = g_menu.getChildAt(_local5); if ((_local6 is TextField)){ if (_local6.htmlText.indexOf("event:music") > -1){ if (menu.stT.volume == 0){ _local6.alpha = 0.4; } else { _local6.alpha = 1; }; }; if (_local6.htmlText.indexOf("event:sound") > -1){ if (Main.snd){ _local6.alpha = 1; } else { _local6.alpha = 0.4; }; }; }; _local5++; }; if (Main.q == 1){ stage.quality = StageQuality.LOW; }; if (Main.q == 2){ stage.quality = StageQuality.MEDIUM; }; if (Main.q == 3){ stage.quality = StageQuality.HIGH; }; if (slogoG != null){ slogoG.addEventListener(MouseEvent.CLICK, slogoK); }; } function Update(_arg1:Event){ var _local2:uint; var _local3:*; var _local4:b2Body; var _local5:*; var _local6:Array; var _local7:b2Body; var _local8:Number; var _local9:*; var _local10:*; var _local11:*; var _local12:b2ContactEdge; var _local13:*; var _local14:*; var _local15:b2ContactEdge; iii++; _local2 = getTimer(); if (iii < 10){ m_world.Step(m_timeStep, m_iterations); } else { m_world.Step(0.03, 10); }; depthC++; if (depthC > 10){ _local5 = numChildren; setChildIndex(gun, (_local5 - 3)); setChildIndex(osnova, (_local5 - 2)); setChildIndex(pric, (_local5 - 1)); depthC = 0; }; _local3 = 0; while (_local3 < mArray.length) { _local6 = mArray[_local3]; _local7 = (_local6[0] as b2Body); _local7.m_type = 2; _local8 = _local6[1]; if (_local6[2] == null){ _local6[2] = _local7.GetPosition(); }; if (((!((_local6[2] == null))) && ((((((_local7.m_userData is plankD1_1)) || ((_local7.m_userData is plankD2_1)))) || ((_local7.m_userData is plankD3_1)))))){ _local9 = (_local6[2].x + (_local8 / m_physScale)); _local6[2].x = _local9; _local10 = _local6[2].y; _local13 = new b2Vec2(_local9, _local10); _local7.SetXForm(_local13, 0); }; if (((!((_local6[2] == null))) && ((((((_local7.m_userData is plankD1_2)) || ((_local7.m_userData is plankD2_2)))) || ((_local7.m_userData is plankD3_2)))))){ _local9 = _local7.GetPosition().x; _local10 = (_local7.GetPosition().y + (_local8 / m_physScale)); _local6[2].x = _local9; _local14 = new b2Vec2(_local9, _local10); _local7.SetXForm(_local14, 0); }; _local11 = 0; _local12 = _local7.GetContactList(); while (_local12) { if (_local12.other.IsStatic()){ _local11++; } else { if ((((((_local7.m_userData is plankD1_1)) || ((_local7.m_userData is plankD2_1)))) || ((_local7.m_userData is plankD3_1)))){ _local12.other.m_linearVelocity = new b2Vec2((_local8 * 1.1), 0); _local12.other.m_angularVelocity = 0; }; }; _local12 = _local12.next; }; if (_local11 > 0){ mArray[_local3] = [_local7, -(_local8), new b2Vec2(_local9, _local10)]; }; _local7.m_type = 1; _local3++; }; veryfK(); if (winl){ winl.alpha = (winl.alpha + tcol); if ((((winl.alpha < 0)) || ((winl.alpha > 1.2)))){ tcol = (tcol * -1); }; }; if (gameFlug){ if (veryf()){ this.alpha = 0.4; Tweener.addTween(this, {alpha:1, time:1.5}); gameFlug = false; Main.lvl++; Main.tempScore = Main.scores; saveStat(); nextLevelMC(); }; }; _local4 = m_world.m_bodyList; while (_local4) { if ((_local4.m_userData is Sprite)){ _local4.m_userData.x = (_local4.GetPosition().x * m_physScale); _local4.m_userData.y = (_local4.GetPosition().y * m_physScale); _local4.m_userData.rotation = (_local4.GetAngle() * (180 / Math.PI)); if (_local4.m_userData.toString().indexOf("kill") > -1){ _local15 = _local4.GetContactList(); while (_local15) { _local15.other.ApplyImpulse(new b2Vec2(0.001, 0.0002), _local15.other.GetLocalCenter()); _local15 = _local15.next; }; }; }; if (((((((!((_local4.NameB == "r"))) && ((_local4.GetPosition().y > 11)))) && ((_local4.m_userData is Sprite)))) && (contains(_local4.m_userData)))){ }; _local4 = _local4.m_next; }; } function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2ContactFilter; _local3 = new b2ContactFilter(); return (_local3.ShouldCollide(_arg1, _arg2)); } function rotateWorld(_arg1:Number){ var _local2:b2Body; _local2 = m_world.m_bodyList; while (_local2) { _local2.SetXForm(_local2.GetPosition(), _arg1); _local2 = _local2.m_next; }; } function init(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, init); go(); }; } public function fireGun(_arg1:Event){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; _local2 = ((!((qm == null))) && (qm.hitTestPoint(stage.mouseX, stage.mouseY))); if (((((!(_local2)) && (!(g_menu.hitTestPoint(stage.mouseX, stage.mouseY))))) && (!(((!((slogoG == null))) && (slogoG.hitTestPoint(stage.mouseX, stage.mouseY))))))){ if (qm != null){ removeChild(qm); }; qm = null; if (gameFlug){ Main.scores++; }; scor(); _local3 = Math.ceil((Math.random() * 2)); st.volume = 0.25; if (_local3 == 1){ _local4 = new e1(); if (Main.snd){ sc = s_fire1.play(0, 1, st); }; }; if (_local3 == 2){ _local4 = new e2(); if (Main.snd){ sc = s_fire2.play(0, 1, st); }; }; _local4.scaleX = (_local4.scaleX + 0.05); _local4.scaleY = (_local4.scaleY + 0.05); _local5 = ((gun.rotation * Math.PI) / 180); _local4.x = (((gun.x - 22) + (80 * Math.cos(_local5))) - 77); _local6 = (-110 + (_local4.x * 2)); _local4.y = (((gun.y + 17) + (80 * Math.sin(_local5))) - 92); _local7 = (300 + (_local4.y * 2)); if ((((Main.lvl > 0)) && ((Main.lvl < 21)))){ addRagdoll(_local6, _local7, 1); }; if ((((Main.lvl > 20)) && ((Main.lvl < 41)))){ addRagdoll(_local6, _local7, 2); }; if ((((Main.lvl > 40)) && ((Main.lvl < 61)))){ addRagdoll(_local6, _local7, 3); }; if ((((Main.lvl > 60)) && ((Main.lvl < 71)))){ addRagdoll(_local6, _local7, Math.ceil((Math.random() * 3))); }; kickR(); addChild(_local4); _local4.gotoAndPlay(1); saveStat(); }; } function addShadow(_arg1:Sprite){ var _local2:BitmapFilter; var _local3:Array; if (Main.q > 1){ _local2 = getBitmapFilter(); _local3 = new Array(); _local3.push(_local2); _arg1.filters = _local3; }; } function mouseShow(_arg1:Event){ Mouse.show(); } function slogoK(_arg1:Event){ var _local2:*; var _local3:URLRequest; _local2 = "http://www.bubblebox.com/clickreg.php?type=gamestats&id=1098&subid=logo_inlevel"; _local3 = new URLRequest(_local2); navigateToURL(_local3, "_blank"); } function saveStat(){ stat.data.lvl = Main.lvl; stat.data.scores = Main.scores; } function resetLevel(){ Main.scores = Main.tempScore; removeEventListener(Event.ENTER_FRAME, Update); removeEventListener(TextEvent.LINK, linkHandler); removeEventListener(MouseEvent.MOUSE_DOWN, fireGun); removeEventListener(MouseEvent.MOUSE_MOVE, rotateGun); removeEventListener(MouseEvent.MOUSE_MOVE, pricMove); Main(parent).newLevel(); } public function addRagdoll(_arg1:Number, _arg2:Number, _arg3:Number){ var _local4:*; var _local5:b2BodyDef; var _local6:b2CircleDef; var _local7:b2PolygonDef; var _local8:*; var _local9:b2Body; var _local10:b2Body; var _local11:b2Body; var _local12:b2Body; var _local13:b2Body; var _local14:b2Body; var _local15:b2Body; var _local16:b2Body; var _local17:b2Body; var _local18:b2RevoluteJointDef; var _local19:*; _local4 = []; _local6 = new b2CircleDef(); _local7 = new b2PolygonDef(); _local8 = 100; _local6.radius = (20 / _local8); _local6.density = 3; _local6.friction = 0.1; _local6.restitution = 0.1; _local5 = new b2BodyDef(); if (_arg3 == 1){ _local5.userData = new head_1(); }; if (_arg3 == 2){ _local5.userData = new head_2(); }; if (_arg3 == 3){ _local5.userData = new head_3(); }; addShadow(_local5.userData); _local5.position.Set((_arg1 / _local8), ((_arg2 - 26) / _local8)); head = m_world.CreateDynamicBody(_local5); head.moveF = true; head.CreateShape(_local6); head.SetMassFromShapes(); head.NameB = "r"; _local4.push(head); _local4.push(_local5.userData); addChild(_local5.userData); _local5 = new b2BodyDef(); if (_arg3 == 1){ _local5.userData = new tors_1(); }; if (_arg3 == 2){ _local5.userData = new tors_2(); }; if (_arg3 == 3){ _local5.userData = new tors_3(); }; addShadow(_local5.userData); _local7.SetAsBox((_local5.userData.width / _local8), (_local5.userData.height / _local8)); _local7.density = 1; _local7.friction = 0.1; _local7.restitution = 0.1; _local5.position.Set((_arg1 / _local8), ((_arg2 + 28) / _local8)); _local9 = m_world.CreateDynamicBody(_local5); _local9.moveF = true; _local9.CreateShape(_local7); _local9.SetMassFromShapes(); _local9.NameB = "r"; _local4.push(_local9); _local4.push(_local5.userData); addChild(_local5.userData); _local5 = new b2BodyDef(); if (_arg3 == 1){ _local5.userData = new ua_1(); }; if (_arg3 == 2){ _local5.userData = new ua_2(); }; if (_arg3 == 3){ _local5.userData = new ua_3(); }; addShadow(_local5.userData); _local7.SetAsBox((_local5.userData.width / _local8), (_local5.userData.height / _local8)); _local7.density = 1; _local7.friction = 0.1; _local7.restitution = 0.1; _local5.position.Set(((_arg1 - 28) / _local8), ((_arg2 + 10) / _local8)); _local10 = m_world.CreateDynamicBody(_local5); _local10.moveF = true; _local10.CreateShape(_local7); _local10.SetMassFromShapes(); _local10.NameB = "r"; _local4.push(_local10); _local4.push(_local5.userData); addChild(_local5.userData); if (_arg3 == 1){ _local5.userData = new ua_1(); }; if (_arg3 == 2){ _local5.userData = new ua_2(); }; if (_arg3 == 3){ _local5.userData = new ua_3(); }; addShadow(_local5.userData); _local5.position.Set(((_arg1 + 28) / _local8), ((_arg2 + 10) / _local8)); _local11 = m_world.CreateDynamicBody(_local5); _local11.CreateShape(_local7); _local11.SetMassFromShapes(); _local11.NameB = "r"; _local4.push(_local11); _local4.push(_local5.userData); addChild(_local5.userData); _local5 = new b2BodyDef(); if (_arg3 == 1){ _local5.userData = new la_1(); }; if (_arg3 == 2){ _local5.userData = new la_2(); }; if (_arg3 == 3){ _local5.userData = new la_3(); }; addShadow(_local5.userData); _local7.SetAsBox((_local5.userData.width / _local8), (_local5.userData.height / _local8)); _local7.density = 1; _local7.friction = 0.1; _local7.restitution = 0.1; _local5.position.Set(((_arg1 - 60) / _local8), ((_arg2 + 10) / _local8)); _local12 = m_world.CreateDynamicBody(_local5); _local12.moveF = true; _local12.CreateShape(_local7); _local12.SetMassFromShapes(); _local12.NameB = "r"; _local4.push(_local12); _local4.push(_local5.userData); addChild(_local5.userData); if (_arg3 == 1){ _local5.userData = new la_1(); }; if (_arg3 == 2){ _local5.userData = new la_2(); }; if (_arg3 == 3){ _local5.userData = new la_3(); }; addShadow(_local5.userData); _local5.position.Set(((_arg1 + 60) / _local8), ((_arg2 + 10) / _local8)); _local13 = m_world.CreateDynamicBody(_local5); _local13.moveF = true; _local13.CreateShape(_local7); _local13.SetMassFromShapes(); _local13.NameB = "r"; _local4.push(_local13); _local4.push(_local5.userData); addChild(_local5.userData); _local5 = new b2BodyDef(); if (_arg3 == 1){ _local5.userData = new ul_1(); }; if (_arg3 == 2){ _local5.userData = new ul_2(); }; if (_arg3 == 3){ _local5.userData = new ul_3(); }; addShadow(_local5.userData); _local7.SetAsBox((_local5.userData.width / _local8), (_local5.userData.height / _local8)); _local7.density = 1; _local7.friction = 0.1; _local7.restitution = 0.1; _local5.position.Set(((_arg1 - 8) / _local8), ((_arg2 + 85) / _local8)); _local14 = m_world.CreateDynamicBody(_local5); _local14.moveF = true; _local14.CreateShape(_local7); _local14.SetMassFromShapes(); _local14.NameB = "r"; _local4.push(_local14); _local4.push(_local5.userData); addChild(_local5.userData); if (_arg3 == 1){ _local5.userData = new ul_1(); }; if (_arg3 == 2){ _local5.userData = new ul_2(); }; if (_arg3 == 3){ _local5.userData = new ul_3(); }; addShadow(_local5.userData); _local5.position.Set(((_arg1 + 8) / _local8), ((_arg2 + 85) / _local8)); _local15 = m_world.CreateDynamicBody(_local5); _local15.moveF = true; _local15.CreateShape(_local7); _local15.SetMassFromShapes(); _local15.NameB = "r"; _local4.push(_local15); _local4.push(_local5.userData); addChild(_local5.userData); _local5 = new b2BodyDef(); if (_arg3 == 1){ _local5.userData = new ll_1(); }; if (_arg3 == 2){ _local5.userData = new ll_2(); }; if (_arg3 == 3){ _local5.userData = new ll_3(); }; addShadow(_local5.userData); _local7.SetAsBox((_local5.userData.width / _local8), (_local5.userData.height / _local8)); _local7.density = 1; _local7.friction = 0.1; _local7.restitution = 0.1; _local5.position.Set(((_arg1 - 8) / _local8), ((_arg2 + 120) / _local8)); _local16 = m_world.CreateDynamicBody(_local5); _local16.moveF = true; _local16.CreateShape(_local7); _local16.SetMassFromShapes(); _local16.NameB = "r"; _local4.push(_local16); _local4.push(_local5.userData); addChild(_local5.userData); if (_arg3 == 1){ _local5.userData = new ll_1(); }; if (_arg3 == 2){ _local5.userData = new ll_2(); }; if (_arg3 == 3){ _local5.userData = new ll_3(); }; addShadow(_local5.userData); _local5.position.Set(((_arg1 + 8) / _local8), ((_arg2 + 120) / _local8)); _local17 = m_world.CreateDynamicBody(_local5); _local17.moveF = true; _local17.CreateShape(_local7); _local17.SetMassFromShapes(); _local17.NameB = "r"; _local4.push(_local17); _local4.push(_local5.userData); addChild(_local5.userData); addArr(_local4); _local18 = new b2RevoluteJointDef(); _local18.enableLimit = true; _local18.lowerAngle = (0 / (180 / Math.PI)); _local18.upperAngle = (0 / (180 / Math.PI)); _local18.Initialize(_local9, head, new b2Vec2((_arg1 / _local8), (_arg2 / _local8))); _local19 = (m_world.CreateJoint(_local18) as b2RevoluteJoint); _local19.m_collideConnected = true; _local18.lowerAngle = (-85 / (180 / Math.PI)); _local18.upperAngle = (30 / (180 / Math.PI)); _local18.Initialize(_local9, _local10, new b2Vec2(((_arg1 - 16) / _local8), ((_arg2 + 20) / _local8))); _local19 = (m_world.CreateJoint(_local18) as b2RevoluteJoint); _local19.m_collideConnected = true; _local18.lowerAngle = (-30 / (180 / Math.PI)); _local18.upperAngle = (85 / (180 / Math.PI)); _local18.Initialize(_local9, _local11, new b2Vec2(((_arg1 + 16) / _local8), ((_arg2 + 20) / _local8))); _local19 = (m_world.CreateJoint(_local18) as b2RevoluteJoint); _local19.m_collideConnected = true; _local18.lowerAngle = (-130 / (180 / Math.PI)); _local18.upperAngle = (10 / (180 / Math.PI)); _local18.Initialize(_local10, _local12, new b2Vec2(((_arg1 - 45) / _local8), ((_arg2 + 20) / _local8))); _local19 = (m_world.CreateJoint(_local18) as b2RevoluteJoint); _local19.m_collideConnected = true; _local18.lowerAngle = (-10 / (180 / Math.PI)); _local18.upperAngle = (130 / (180 / Math.PI)); _local18.Initialize(_local11, _local13, new b2Vec2(((_arg1 + 45) / _local8), ((_arg2 + 20) / _local8))); _local19 = (m_world.CreateJoint(_local18) as b2RevoluteJoint); _local19.m_collideConnected = true; _local18.lowerAngle = (-25 / (180 / Math.PI)); _local18.upperAngle = (45 / (180 / Math.PI)); _local18.Initialize(_local9, _local14, new b2Vec2(((_arg1 - 8) / _local8), ((_arg2 + 72) / _local8))); _local19 = (m_world.CreateJoint(_local18) as b2RevoluteJoint); _local19.m_collideConnected = true; _local18.lowerAngle = (-45 / (180 / Math.PI)); _local18.upperAngle = (25 / (180 / Math.PI)); _local18.Initialize(_local9, _local15, new b2Vec2(((_arg1 + 8) / _local8), ((_arg2 + 72) / _local8))); _local19 = (m_world.CreateJoint(_local18) as b2RevoluteJoint); _local19.m_collideConnected = true; _local18.lowerAngle = (-25 / (180 / Math.PI)); _local18.upperAngle = (115 / (180 / Math.PI)); _local18.Initialize(_local14, _local16, new b2Vec2(((_arg1 - 8) / _local8), ((_arg2 + 105) / _local8))); _local19 = (m_world.CreateJoint(_local18) as b2RevoluteJoint); _local19.m_collideConnected = true; _local18.lowerAngle = (-115 / (180 / Math.PI)); _local18.upperAngle = (25 / (180 / Math.PI)); _local18.Initialize(_local15, _local17, new b2Vec2(((_arg1 + 8) / _local8), ((_arg2 + 105) / _local8))); _local19 = (m_world.CreateJoint(_local18) as b2RevoluteJoint); _local19.m_collideConnected = true; } function mouseHide(_arg1:Event){ Mouse.hide(); } function nextLevelMC(){ var _local1:*; var _local2:*; var _local3:*; _local1 = g_menu.numChildren; _local2 = 0; while (_local2 < _local1) { _local3 = g_menu.getChildAt(_local2); if ((_local3 is TextField)){ if (_local3.text.indexOf("reset") == 0){ winl = _local3; _local3.htmlText = "<a href=\"event:nlevel\">next level</a>"; }; }; _local2++; }; } public function rotateGun(_arg1:Event){ var _local2:*; var _local3:*; if (((((!((gun == null))) && ((gun.x < mouseX)))) && ((gun.y > mouseY)))){ _local2 = Math.atan2((mouseY - gun.y), (mouseX - gun.x)); _local3 = Math.round(((_local2 * 180) / 3.14159)); gun.rotation = _local3; if (gun.rotation < -102){ gun.rotation = -102; }; if (gun.rotation > 22){ gun.rotation = 22; }; }; } private function getBitmapFilterG():BitmapFilter{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Boolean; var _local9:Boolean; var _local10:Number; _local2 = 0; _local3 = 0.8; _local4 = 17; _local5 = 17; _local6 = 5; _local7 = 1; _local8 = false; _local9 = false; _local10 = 0; if (Main.q == 2){ _local10 = BitmapFilterQuality.LOW; }; if (Main.q == 3){ _local10 = BitmapFilterQuality.HIGH; }; return (new DropShadowFilter(_local6, _local2, _local1, _local3, _local4, _local5, _local7, _local10, _local8, _local9)); } private function linkHandler(_arg1:TextEvent):void{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; _local2 = _arg1.text; if (_local2 == "reset"){ resetLevel(); }; if ((((_local2 == "menu")) && ((qm == null)))){ qm = new mcMenu(); qm.y = -(this.height); qm.x = 0; this.addChild(qm); Tweener.addTween(qm, {y:0, time:0.3, transition:"easeInOutElastic"}); }; if (_local2 == "myes"){ this.removeChild(qm); qm = null; toMenu(); }; if (_local2 == "mno"){ this.removeChild(qm); qm = null; }; if (_local2 == "sound"){ Main.snd = !(Main.snd); _local3 = g_menu.numChildren; _local4 = 0; while (_local4 < _local3) { _local5 = g_menu.getChildAt(_local4); if ((_local5 is TextField)){ if (_local5.htmlText.indexOf("event:sound") > -1){ if (Main.snd){ _local5.alpha = 1; } else { _local5.alpha = 0.4; }; }; }; _local4++; }; }; if (_local2 == "music"){ if (menu.stT.volume == 0){ menu.stT.volume = 0.7; } else { menu.stT.volume = 0; }; _local6 = g_menu.numChildren; _local7 = 0; while (_local7 < _local6) { _local8 = g_menu.getChildAt(_local7); if ((_local8 is TextField)){ if (_local8.htmlText.indexOf("event:music") > -1){ if (menu.stT.volume == 0){ _local8.alpha = 0.4; } else { _local8.alpha = 1; }; }; }; _local7++; }; menu.scT.stop(); menu.scT = menu.s_theme.play(0, 10000, menu.stT); }; if (_local2 == "nlevel"){ removeEventListener(Event.ENTER_FRAME, Update); removeEventListener(TextEvent.LINK, linkHandler); removeEventListener(MouseEvent.MOUSE_DOWN, fireGun); removeEventListener(MouseEvent.MOUSE_MOVE, rotateGun); removeEventListener(MouseEvent.MOUSE_MOVE, pricMove); Main.ad = false; Main(parent).newLevel(); }; } } }//package
Section 204
//ll_1 (ll_1) package { import flash.display.*; public dynamic class ll_1 extends MovieClip { } }//package
Section 205
//ll_2 (ll_2) package { import flash.display.*; public dynamic class ll_2 extends MovieClip { } }//package
Section 206
//ll_3 (ll_3) package { import flash.display.*; public dynamic class ll_3 extends MovieClip { } }//package
Section 207
//Main (Main) package { import flash.events.*; import flash.display.*; import flash.media.*; import levels_g.*; import flash.utils.*; import flash.ui.*; public dynamic class Main extends MovieClip { var lev:levels;// = null var st:SoundTransform; public var Parent; public static var q:Number = 3; public static var scores; public static var lvl; public static var ad = false; public static var snd:Boolean = true; public static var wonn = false; public static var sndChannel:SoundChannel; public static var mochiID = "19db303d9f17ccb2"; public static var tempScore; public static var levelC = 70; public function Main():void{ st = new SoundTransform(); lev = null; super(); addEventListener(Event.ENTER_FRAME, ini); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } public function toMenu(){ var _local1:*; if (lev != null){ lev.m_world = null; removeChild(lev); lev = null; }; _local1 = (this.parent as MovieClip); _local1.gotoAndPlay("intro2"); } function nl(){ var _local1:*; var _local2:*; var _local3:Class; _local1 = numChildren; _local2 = 0; while (_local2 < numChildren) { removeChildAt((numChildren - 1)); _local2++; }; Parent.getChildByName("rt").text = ""; _local3 = (getDefinitionByName(("levels_g.level" + lvl)) as Class); lev = new (_local3); if (lev != null){ lev.x = 275; lev.y = 200; addChild(lev); }; } public function newLevel(){ var t:*; if (lev != null){ lev.m_world = null; removeChild(lev); lev = null; }; lev = null; if (lvl == (levelC + 1)){ if (sndChannel != null){ sndChannel.stop(); }; if (lev != null){ lev.m_world = null; removeChild(lev); lev = null; }; wonn = true; t = (this.parent as MovieClip); t.gotoAndStop("win"); } else { if (((((!(ad)) && (preloader.ads))) && ((lvl == 35)))){ Parent.getChildByName("rt").text = "ADSTIME"; ad = true; MochiAd.showInterLevelAd({clip:this, ad_started:function ():void{ }, ad_timeout:1500, ad_skipped:function ():void{ nl(); }, ad_failed:function ():void{ nl(); }, ad_finished:function ():void{ nl(); }, id:"2669b6b8511880dc", res:"550x400", no_bg:true}); } else { nl(); }; }; } function go(){ Parent = this.parent; Parent.addEventListener(TextEvent.LINK, linkHandler); Parent.getChildByName("rt").text = ""; newLevel(); } function linkHandler(_arg1:TextEvent):void{ var _local2:*; _local2 = _arg1.text; if (_local2 == "skip"){ nl(); }; } } }//package
Section 208
//mcCredits (mcCredits) package { import flash.events.*; import flash.display.*; public dynamic class mcCredits extends MovieClip { public var btnClose:SimpleButton; public var btnF:FGLbtn; public var bbcr:SimpleButton; public function mcCredits(){ addFrameScript(0, frame1); } public function cl(_arg1:Event){ btnClose.removeEventListener(MouseEvent.CLICK, cl); parent.removeChild(this); } function frame1(){ btnClose.addEventListener(MouseEvent.CLICK, cl); } } }//package
Section 209
//mcMenu (mcMenu) package { import flash.display.*; public dynamic class mcMenu extends MovieClip { } }//package
Section 210
//menu (menu) package { import flash.events.*; import flash.display.*; import caurina.transitions.*; import flash.media.*; import flash.net.*; import flash.text.*; import mochi.*; public dynamic class menu extends MovieClip { var stat:SharedObject; var lo;// = false public var Parent; public static var stT:SoundTransform = new SoundTransform(); public static var scT:SoundChannel; public static var s_theme:theme = new theme(); public function menu():void{ stat = SharedObject.getLocal("ragdoll_cannon_2"); lo = false; super(); addEventListener(Event.ENTER_FRAME, ini); } function c_Credits(_arg1:Event){ var _local2:*; var _local3:*; _local2 = new mcCredits(); addChild(_local2); _local2.y = -(_local2.height); _local2.x = 275; Tweener.addTween(_local2, {y:200, time:0.5, transition:"easeInOutElastic"}); _local3 = _local2.getChildByName("bbcr"); if (_local3 != null){ _local3.addEventListener(MouseEvent.CLICK, crbbcr); }; } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, init); go(); }; } function goGame(){ Main.scores = 0; Main.lvl = 1; Main.tempScore = 0; Parent.removeChild(this); Parent.gotoAndStop("game"); } function c_Vid(_arg1:Event){ var _local2:URLRequest; var _local3:*; _local3 = (("http://www.bubblebox.com/clickreg.php?type=gamestats&id=" + preloader.gameID) + "&subid=walkthrough&action=rc2walkthrough"); _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } function perekl(){ var _local1:*; var _local2:*; var _local3:*; if (Main.q == 1){ _local1 = Parent.getChildByName("mqua"); _local1.getChildByName("qlow").alpha = 1; _local1.getChildByName("qmedium").alpha = 0.6; _local1.getChildByName("qhigh").alpha = 0.6; }; if (Main.q == 2){ _local2 = Parent.getChildByName("mqua"); _local2.getChildByName("qlow").alpha = 0.6; _local2.getChildByName("qmedium").alpha = 1; _local2.getChildByName("qhigh").alpha = 0.6; }; if (Main.q == 3){ _local3 = Parent.getChildByName("mqua"); _local3.getChildByName("qlow").alpha = 0.6; _local3.getChildByName("qmedium").alpha = 0.6; _local3.getChildByName("qhigh").alpha = 1; }; } function c_Load(_arg1:Event){ if (stat.data.lvl != undefined){ Main.scores = stat.data.scores; Main.lvl = stat.data.lvl; Main.tempScore = Main.scores; Parent.removeChild(this); Parent.gotoAndStop("game"); }; } function delListeners(){ Parent.btnPlay.removeEventListener(MouseEvent.CLICK, c_Play); if (lo){ Parent.btnLoad.removeEventListener(MouseEvent.CLICK, c_Load); }; Parent.btnHelp.removeEventListener(MouseEvent.CLICK, c_Help); Parent.btnHiSc.removeEventListener(MouseEvent.CLICK, c_HiSc); Parent.btnCredits.removeEventListener(MouseEvent.CLICK, c_Credits); Parent.btnMore.removeEventListener(MouseEvent.CLICK, c_More); Parent.ok.removeEventListener(MouseEvent.CLICK, enterkey); Parent.btnVid.removeEventListener(MouseEvent.CLICK, c_Vid); Parent.key.removeEventListener(KeyboardEvent.KEY_DOWN, enterkeyE); removeEventListener(TextEvent.LINK, linkHandler); } public function enterkey(_arg1:Event){ var _local2:*; var _local3:*; _local2 = Parent.key.text.toLowerCase(); _local3 = (keycodes.key.indexOf(_local2) + 1); if ((((_local3 > 0)) && ((_local3 < (Main.levelC + 1))))){ Main.scores = (_local3 * 20); Main.tempScore = (_local3 * 20); Main.lvl = _local3; Parent.removeChild(this); Parent.gotoAndStop("game"); } else { Parent.key.text = ""; }; } public function enterkeyE(_arg1:KeyboardEvent){ if (_arg1.keyCode == 13){ enterkey(null); }; } function c_Play(_arg1:Event){ delListeners(); goGame(); } function c_Help(_arg1:Event){ var _local2:*; _local2 = new mHelp(); addChild(_local2); _local2.y = -(_local2.height); _local2.x = 275; Tweener.addTween(_local2, {y:200, time:0.5, transition:"easeInOutElastic"}); } function c_HiSc(_arg1:Event){ var _local2:URLRequest; var _local3:*; _local3 = (("http://www.bubblebox.com/clickreg.php?type=gamestats&id=" + preloader.gameID) + "&subid=viewscores&action=viewscores"); _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } function crbbmm(_arg1:Event){ var _local2:*; var _local3:*; var _local4:URLRequest; _local2 = ""; if (preloader.gameID.indexOf("rc2") > -1){ _local2 = "_extra"; }; _local3 = ("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1098&subid=menu" + _local2); _local4 = new URLRequest(_local3); navigateToURL(_local4, "_blank"); } function c_More(_arg1:Event){ var _local2:*; var _local3:*; var _local4:URLRequest; _local2 = ""; if (preloader.gameID.indexOf("rc2") > -1){ _local2 = "_extra"; }; _local3 = ("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1098&subid=moregames" + _local2); _local4 = new URLRequest(_local3); navigateToURL(_local4, "_blank"); } function crbbcr(_arg1:Event){ var _local2:*; var _local3:*; var _local4:URLRequest; _local2 = ""; if (preloader.gameID.indexOf("rc2") > -1){ _local2 = "_extra"; }; _local3 = ("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1098&subid=credits" + _local2); _local4 = new URLRequest(_local3); navigateToURL(_local4, "_blank"); } function go(){ var _local1:*; Parent = this.parent; Parent.btnPlay.addEventListener(MouseEvent.CLICK, c_Play); Parent.btnHelp.addEventListener(MouseEvent.CLICK, c_Help); Parent.btnHiSc.addEventListener(MouseEvent.CLICK, c_HiSc); Parent.btnCredits.addEventListener(MouseEvent.CLICK, c_Credits); Parent.ok.addEventListener(MouseEvent.CLICK, enterkey); Parent.btnMore.addEventListener(MouseEvent.CLICK, c_More); Parent.btnVid.addEventListener(MouseEvent.CLICK, c_Vid); Parent.key.addEventListener(KeyboardEvent.KEY_DOWN, enterkeyE); if ((((stat.data.lvl == undefined)) || ((stat.data.lvl == 1)))){ Parent.btnLoad.enabled = false; Parent.btnLoad.upState.alpha = 0.4; } else { Parent.btnLoad.enabled = true; Parent.btnLoad.addEventListener(MouseEvent.CLICK, c_Load); lo = true; }; Parent.addEventListener(TextEvent.LINK, linkHandler); if (((Main.snd) && ((stT.volume == 1)))){ stT.volume = 0.7; scT = s_theme.play(0, 10000, stT); }; perekl(); _local1 = Parent.getChildByName("bbmm"); if (_local1 != null){ _local1.addEventListener(MouseEvent.CLICK, crbbmm); }; } function linkHandler(_arg1:TextEvent):void{ var _local2:*; _local2 = _arg1.text; if (_local2 == "q_low"){ Main.q = 1; perekl(); }; if (_local2 == "q_medium"){ Main.q = 2; perekl(); }; if (_local2 == "q_high"){ Main.q = 3; perekl(); }; } } }//package
Section 211
//menu_g (menu_g) package { import flash.display.*; public dynamic class menu_g extends MovieClip { } }//package
Section 212
//menu_g2 (menu_g2) package { import flash.display.*; public dynamic class menu_g2 extends MovieClip { } }//package
Section 213
//mHelp (mHelp) package { import flash.events.*; import flash.display.*; public dynamic class mHelp extends MovieClip { public var btnClose:SimpleButton; public function mHelp(){ addFrameScript(0, frame1); } public function cl(_arg1:Event){ btnClose.removeEventListener(MouseEvent.CLICK, cl); parent.removeChild(this); } function frame1(){ btnClose.addEventListener(MouseEvent.CLICK, cl); } } }//package
Section 214
//mhere (mhere) package { import flash.display.*; public dynamic class mhere extends MovieClip { } }//package
Section 215
//MochiAd (MochiAd) package { import flash.events.*; import flash.display.*; import flash.system.*; import flash.net.*; import flash.utils.*; public class MochiAd { public static function getVersion():String{ return ("2.5"); } public static function showClickAwayAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_timeout:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var sendHostProgress:Boolean; var options = _arg1; DEFAULTS = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_timeout = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; sendHostProgress = false; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Number; var _local3:Boolean; var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; _local1 = this.parent._mochiad_ctr; _local2 = (getTimer() - this.started); _local3 = false; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(_arg1:String):String{ var _local2:String; _local2 = _arg1.split("/")[2].split(":")[0]; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; _local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object; _local2 = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Number; var _local3:Boolean; var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; _local1 = this.parent._mochiad_ctr; _local2 = (getTimer() - this.started); _local3 = false; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local3:Object; var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; _local3 = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; if (_local3.id == "test"){ trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!"); }; return (_local3); } public static function _cleanup(_arg1:Object):void{ var idx:Number; var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; idx = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(_arg1:Object):MovieClip{ var DEFAULTS:Object; var clip:Object; var depth:Number; var mc:MovieClip; var wh:Array; var lv:URLVariables; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!MochiAd._isNetworkAvailable()){ return (null); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; depth = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, "_mochiad", depth); wh = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; }; lv = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest((server + ".swf")); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array; var _local5:Number; _local4 = _arg2.split("."); _local5 = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip; _local4 = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local3:Object; var _local4:Number; var _local5:Number; var _local6:Array; _local3 = _arg2.getBounds(_arg2.root); _local4 = 0; _local5 = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.xMax - _local3.xMin); _local5 = (_local3.yMax - _local3.yMin); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array; var _local4:Number; _local3 = _arg2.split("."); _local4 = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = MochiAd.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; default: trace(("[mochiads rpc] unknown rpc id: " + _arg3.id)); }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array; var _local5:Number; _local4 = _arg2.split("."); _local5 = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function showPreGameAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var bar:MovieClip; var bar_color:Number; var bar_background:Number; var bar_outline:Number; var backing_mc:MovieClip; var backing:Object; var inside_mc:MovieClip; var inside:Object; var outline_mc:MovieClip; var outline:Object; var complete:Boolean; var unloaded:Boolean; var f:Function; var sendHostProgress:Boolean; var r:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); setTimeout(options.ad_finished, 100); return; }; clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ var fn:Function; MochiAd._cleanup(mc); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); bar = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = 10; bar.y = (h - 20); }; bar_color = options.color; delete options.color; bar_background = options.background; delete options.background; bar_outline = options.outline; delete options.outline; backing_mc = createEmptyMovieClip(bar, "_outline", 1); backing = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); inside_mc = createEmptyMovieClip(bar, "_inside", 2); inside = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; outline_mc = createEmptyMovieClip(bar, "_outline", 3); outline = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number; _local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; f = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object; _local2 = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ trace(("[MOCHIAD rpcTestFn] " + _arg1)); return (_arg1); }; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Object; var _local3:Number; var _local4:Boolean; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Object; var _local10:Number; var _local11:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; _local1 = this.parent.parent.root; _local2 = this.parent._mochiad_ctr; _local3 = (getTimer() - this.started); _local4 = false; _local5 = _local1.loaderInfo.bytesTotal; _local6 = _local1.loaderInfo.bytesLoaded; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; _local7 = ((100 * _local6) / _local5); _local8 = ((100 * _local3) / chk.ad_msec); _local9 = this._mochiad_bar._inside; _local10 = Math.min(100, Math.min(((_local7) || (0)), _local8)); _local10 = Math.max(this.last_pcnt, _local10); this.last_pcnt = _local10; _local9.scaleX = (_local10 * 0.01); options.ad_progress(_local10); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7}); if (_local7 == 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local11 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0"); MochiAd.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0"); MochiAd.showInterLevelAd(_arg1); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var f:Function; var mc = _arg1; f = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package
Section 216
//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{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 217
//p_dulo (p_dulo) package { import flash.display.*; public dynamic class p_dulo extends MovieClip { } }//package
Section 218
//p_osnova (p_osnova) package { import flash.display.*; public dynamic class p_osnova extends MovieClip { } }//package
Section 219
//plank1_1 (plank1_1) package { import flash.display.*; public dynamic class plank1_1 extends MovieClip { } }//package
Section 220
//plank1_2 (plank1_2) package { import flash.display.*; public dynamic class plank1_2 extends MovieClip { } }//package
Section 221
//plank1_3 (plank1_3) package { import flash.display.*; public dynamic class plank1_3 extends MovieClip { } }//package
Section 222
//plank1_4 (plank1_4) package { import flash.display.*; public dynamic class plank1_4 extends MovieClip { } }//package
Section 223
//plank1_5 (plank1_5) package { import flash.display.*; public dynamic class plank1_5 extends MovieClip { } }//package
Section 224
//plank1_6 (plank1_6) package { import flash.display.*; public dynamic class plank1_6 extends MovieClip { } }//package
Section 225
//plank1_7 (plank1_7) package { import flash.display.*; public dynamic class plank1_7 extends MovieClip { } }//package
Section 226
//plank1_8 (plank1_8) package { import flash.display.*; public dynamic class plank1_8 extends MovieClip { } }//package
Section 227
//plank1_9 (plank1_9) package { import flash.display.*; public dynamic class plank1_9 extends MovieClip { } }//package
Section 228
//plank2_1 (plank2_1) package { import flash.display.*; public dynamic class plank2_1 extends MovieClip { } }//package
Section 229
//plank2_2 (plank2_2) package { import flash.display.*; public dynamic class plank2_2 extends MovieClip { } }//package
Section 230
//plank2_3 (plank2_3) package { import flash.display.*; public dynamic class plank2_3 extends MovieClip { } }//package
Section 231
//plank2_4 (plank2_4) package { import flash.display.*; public dynamic class plank2_4 extends MovieClip { } }//package
Section 232
//plank2_5 (plank2_5) package { import flash.display.*; public dynamic class plank2_5 extends MovieClip { } }//package
Section 233
//plank2_6 (plank2_6) package { import flash.display.*; public dynamic class plank2_6 extends MovieClip { } }//package
Section 234
//plank2_7 (plank2_7) package { import flash.display.*; public dynamic class plank2_7 extends MovieClip { } }//package
Section 235
//plank2_8 (plank2_8) package { import flash.display.*; public dynamic class plank2_8 extends MovieClip { } }//package
Section 236
//plank2_9 (plank2_9) package { import flash.display.*; public dynamic class plank2_9 extends MovieClip { } }//package
Section 237
//plank3_1 (plank3_1) package { import flash.display.*; public dynamic class plank3_1 extends MovieClip { } }//package
Section 238
//plank3_2 (plank3_2) package { import flash.display.*; public dynamic class plank3_2 extends MovieClip { } }//package
Section 239
//plank3_3 (plank3_3) package { import flash.display.*; public dynamic class plank3_3 extends MovieClip { } }//package
Section 240
//plank3_4 (plank3_4) package { import flash.display.*; public dynamic class plank3_4 extends MovieClip { } }//package
Section 241
//plank3_5 (plank3_5) package { import flash.display.*; public dynamic class plank3_5 extends MovieClip { } }//package
Section 242
//plank3_6 (plank3_6) package { import flash.display.*; public dynamic class plank3_6 extends MovieClip { } }//package
Section 243
//plank3_7 (plank3_7) package { import flash.display.*; public dynamic class plank3_7 extends MovieClip { } }//package
Section 244
//plank3_8 (plank3_8) package { import flash.display.*; public dynamic class plank3_8 extends MovieClip { } }//package
Section 245
//plank3_9 (plank3_9) package { import flash.display.*; public dynamic class plank3_9 extends MovieClip { } }//package
Section 246
//plankD1_1 (plankD1_1) package { import flash.display.*; public dynamic class plankD1_1 extends MovieClip { } }//package
Section 247
//plankD1_2 (plankD1_2) package { import flash.display.*; public dynamic class plankD1_2 extends MovieClip { } }//package
Section 248
//plankD2_1 (plankD2_1) package { import flash.display.*; public dynamic class plankD2_1 extends MovieClip { } }//package
Section 249
//plankD2_2 (plankD2_2) package { import flash.display.*; public dynamic class plankD2_2 extends MovieClip { } }//package
Section 250
//plankD3_1 (plankD3_1) package { import flash.display.*; public dynamic class plankD3_1 extends MovieClip { } }//package
Section 251
//plankD3_2 (plankD3_2) package { import flash.display.*; public dynamic class plankD3_2 extends MovieClip { } }//package
Section 252
//plankM1_1 (plankM1_1) package { import flash.display.*; public dynamic class plankM1_1 extends MovieClip { } }//package
Section 253
//plankM1_2 (plankM1_2) package { import flash.display.*; public dynamic class plankM1_2 extends MovieClip { } }//package
Section 254
//plankM1_3 (plankM1_3) package { import flash.display.*; public dynamic class plankM1_3 extends MovieClip { } }//package
Section 255
//plankM1_4 (plankM1_4) package { import flash.display.*; public dynamic class plankM1_4 extends MovieClip { } }//package
Section 256
//plankM2_1 (plankM2_1) package { import flash.display.*; public dynamic class plankM2_1 extends MovieClip { } }//package
Section 257
//plankM2_2 (plankM2_2) package { import flash.display.*; public dynamic class plankM2_2 extends MovieClip { } }//package
Section 258
//plankM2_3 (plankM2_3) package { import flash.display.*; public dynamic class plankM2_3 extends MovieClip { } }//package
Section 259
//plankM2_4 (plankM2_4) package { import flash.display.*; public dynamic class plankM2_4 extends MovieClip { } }//package
Section 260
//plankM3_1 (plankM3_1) package { import flash.display.*; public dynamic class plankM3_1 extends MovieClip { } }//package
Section 261
//plankM3_2 (plankM3_2) package { import flash.display.*; public dynamic class plankM3_2 extends MovieClip { } }//package
Section 262
//plankM3_3 (plankM3_3) package { import flash.display.*; public dynamic class plankM3_3 extends MovieClip { } }//package
Section 263
//plankM3_4 (plankM3_4) package { import flash.display.*; public dynamic class plankM3_4 extends MovieClip { } }//package
Section 264
//ploader (ploader) package { import flash.display.*; public dynamic class ploader extends MovieClip { public function ploader(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 265
//preloader (preloader) package { import flash.events.*; import flash.display.*; import flash.media.*; import flash.net.*; import mochi.*; public dynamic class preloader extends MovieClip { var pl:ploader; var scaleparent;// = 71 public var Parent; public static var ads = false; public static var gameID:String = "1098"; public function preloader():void{ scaleparent = 71; pl = new ploader(); super(); addEventListener(Event.ENTER_FRAME, ini); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } function go_to_intro(){ removeEventListener(Event.ENTER_FRAME, Update); removeChild(pl); Parent.gotoAndPlay("intro"); } function Update(_arg1:Event){ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = stage.loaderInfo.bytesLoaded; _local3 = stage.loaderInfo.bytesTotal; _local4 = 0; if (_local3 > 0){ _local4 = Math.floor(((_local2 / _local3) * scaleparent)); }; (getChildByName(pl.name) as MovieClip).gotoAndStop(_local4); if ((((_local2 == _local3)) || ((_local3 == 0)))){ go_to_intro(); }; } function go(){ Parent = this.parent; pl.x = 274; pl.y = 200; addChild(pl); if (ads){ MochiAd.showPreGameAd({clip:Parent, id:"2669b6b8511880dc", ad_progress:function (_arg1:Number):void{ (getChildByName(pl.name) as MovieClip).gotoAndStop(Math.round(((_arg1 / 100) * 70))); }, ad_finished:function ():void{ go_to_intro(); }, res:"550x400", background:0x999999, color:16775068, outline:13994812, no_bg:true}); } else { addEventListener(Event.ENTER_FRAME, Update); }; } } }//package
Section 266
//pricel1 (pricel1) package { import flash.display.*; public dynamic class pricel1 extends MovieClip { } }//package
Section 267
//pricel2 (pricel2) package { import flash.display.*; public dynamic class pricel2 extends MovieClip { } }//package
Section 268
//pricel3 (pricel3) package { import flash.display.*; public dynamic class pricel3 extends MovieClip { } }//package
Section 269
//qualit (qualit) package { import flash.display.*; import flash.text.*; public dynamic class qualit extends MovieClip { public var qmedium:TextField; public var qlow:TextField; public var qhigh:TextField; } }//package
Section 270
//s_win (s_win) package { import flash.media.*; public dynamic class s_win extends Sound { } }//package
Section 271
//sk1_1 (sk1_1) package { import flash.display.*; public dynamic class sk1_1 extends MovieClip { } }//package
Section 272
//sk1_2 (sk1_2) package { import flash.display.*; public dynamic class sk1_2 extends MovieClip { } }//package
Section 273
//sk2_1 (sk2_1) package { import flash.display.*; public dynamic class sk2_1 extends MovieClip { } }//package
Section 274
//sk2_2 (sk2_2) package { import flash.display.*; public dynamic class sk2_2 extends MovieClip { } }//package
Section 275
//sk3_1 (sk3_1) package { import flash.display.*; public dynamic class sk3_1 extends MovieClip { } }//package
Section 276
//sk3_2 (sk3_2) package { import flash.display.*; public dynamic class sk3_2 extends MovieClip { } }//package
Section 277
//sl1 (sl1) package { import flash.display.*; public dynamic class sl1 extends MovieClip { } }//package
Section 278
//sl2 (sl2) package { import flash.display.*; public dynamic class sl2 extends MovieClip { } }//package
Section 279
//sl3 (sl3) package { import flash.display.*; public dynamic class sl3 extends MovieClip { } }//package
Section 280
//theme (theme) package { import flash.media.*; public dynamic class theme extends Sound { } }//package
Section 281
//tors_1 (tors_1) package { import flash.display.*; public dynamic class tors_1 extends MovieClip { } }//package
Section 282
//tors_2 (tors_2) package { import flash.display.*; public dynamic class tors_2 extends MovieClip { } }//package
Section 283
//tors_3 (tors_3) package { import flash.display.*; public dynamic class tors_3 extends MovieClip { } }//package
Section 284
//ua_1 (ua_1) package { import flash.display.*; public dynamic class ua_1 extends MovieClip { } }//package
Section 285
//ua_2 (ua_2) package { import flash.display.*; public dynamic class ua_2 extends MovieClip { } }//package
Section 286
//ua_3 (ua_3) package { import flash.display.*; public dynamic class ua_3 extends MovieClip { } }//package
Section 287
//ul_1 (ul_1) package { import flash.display.*; public dynamic class ul_1 extends MovieClip { } }//package
Section 288
//ul_2 (ul_2) package { import flash.display.*; public dynamic class ul_2 extends MovieClip { } }//package
Section 289
//ul_3 (ul_3) package { import flash.display.*; public dynamic class ul_3 extends MovieClip { } }//package
Section 290
//win (win) package { import flash.events.*; import flash.display.*; import com.kongregate.as3.client.*; import flash.media.*; import flash.net.*; import mochi.*; public dynamic class win extends MovieClip { var stat:SharedObject; public var f;// = false public var Parent; public function win():void{ f = false; stat = SharedObject.getLocal("ragdoll_cannon_2"); super(); addEventListener(Event.ENTER_FRAME, init); } function init(_arg1:Event){ if (((!((this.parent == null))) && (Main.wonn))){ removeEventListener(Event.ENTER_FRAME, init); go(); }; } function goMenu(_arg1:Event){ delListeners(); Main.wonn = false; stat.data.lvl = 1; stat.data.scores = 0; Main.tempScore = 0; menu.scT.stop(); if (((Main.snd) && ((menu.stT.volume == 1)))){ menu.stT.volume = 0.7; menu.scT = menu.s_theme.play(0, 10000, menu.stT); }; Parent.gotoAndPlay("intro"); } function delListeners(){ } public function enterkeyE(_arg1:KeyboardEvent){ if (_arg1.keyCode == 13){ c_Submit(null); }; } function c_Submit(_arg1:Event){ if (Main.wonn){ f = true; sendScores(Parent.namePlayer.text, Main.scores); }; } function sendScores(_arg1:String, _arg2:Number){ if (f){ f = false; }; } function go(){ var _local1:KongregateAPI; Parent = this.parent; Parent.scores.text = ("Scores: " + Main.scores); Parent.bbscore.setScore(Main.scores, preloader.gameID); Parent.mcGmenu.addEventListener(MouseEvent.CLICK, goMenu); _local1 = KongregateAPI.getInstance(); _local1.scores.submit(Main.scores); } } }//package
Section 291
//winlev (winlev) package { import flash.media.*; public dynamic class winlev extends Sound { } }//package
Section 292
//Символ1 (Символ1) package { import flash.display.*; public dynamic class Символ1 extends SimpleButton { } }//package

Library Items

Symbol 1 BitmapUsed by:2 272
Symbol 2 GraphicUses:1Used by:3
Symbol 3 MovieClipUses:2Used by:4
Symbol 4 MovieClip {ploader}Uses:3
Symbol 5 MovieClip {com.kongregate.as3.client.KongregateAPI}Used by:Timeline
Symbol 6 GraphicUsed by:13
Symbol 7 GraphicUsed by:13
Symbol 8 FontUsed by:9
Symbol 9 EditableTextUses:8Used by:13
Symbol 10 GraphicUsed by:13
Symbol 11 GraphicUsed by:13
Symbol 12 GraphicUsed by:13
Symbol 13 MovieClip {bubblebox_score}Uses:6 7 9 10 11 12Used by:Timeline
Symbol 14 FontUsed by:15 19 55 85 86 87 88 89 90 91 292 293 294 295 296 297 298 305 306 307 309 310 311 313 314 315 317 318 319 321 322 323 325 326 327 329 330 331 333 334 335 339 340 341 343 344 345 347 348 349 353 354 355 357 358 359 361 362 363 365 366 367 369 370 371 373 374 375 377 378 379 386 387 415 419 420 424 426 427 428 434 435 436 446 447 448 452 453 454 458 459 460 462 463 464 466 467 468 474 475 476 479 480 481 486 487 488 490 491 492 495 496 497 499 500 501 503 504 505 507 508 509 511 512 513 515 516 517 519 520 521 527 528 560 566 567 568 574 575 576 578 579 580 583 584 585 589 590 591 593 594 595 599 600 601 607 608 609 612 613 614 617 618 619 623 624 625 627 628 629 632 633 634 636 637 638 640 641 642 644 645 646 648 649 650 653 654 655 657 658 659 661 662 663 666 667 668 671 672 673 677 678 679 683 684 685 690 691 692 694 695 696 699 700 701 706 707 708 711 712 713 763 764 769 784 792 793 794 798 799 801 802 804 805 807 808 810 811 813 814 816 818 819 824 825 826 827 832 833 843 844 845 846 847
Symbol 15 EditableTextUses:14 18Used by:Timeline
Symbol 16 BitmapUsed by:17 20 689
Symbol 17 GraphicUses:16Used by:332 376 620  Timeline
Symbol 18 FontUsed by:15 19 54 85 86 87 88 89 90 91 292 293 294 295 296 297 298 302 305 306 307 309 310 311 313 314 315 317 318 319 321 322 323 325 326 327 329 330 331 333 334 335 339 340 341 343 344 345 347 348 349 353 354 355 357 358 359 361 362 363 365 366 367 369 370 371 373 374 375 377 378 379 386 387 415 419 420 424 426 427 428 434 435 436 443 446 447 448 452 453 454 458 459 460 462 463 464 466 467 468 474 475 476 479 480 481 486 487 488 490 491 492 495 496 497 499 500 501 503 504 505 507 508 509 511 512 513 515 516 517 519 520 521 527 528 560 563 566 567 568 574 575 576 578 579 580 583 584 585 589 590 591 593 594 595 599 600 601 607 608 609 612 613 614 617 618 619 623 624 625 627 628 629 632 633 634 636 637 638 640 641 642 644 645 646 648 649 650 653 654 655 657 658 659 661 662 663 666 667 668 671 672 673 677 678 679 683 684 685 690 691 692 694 695 696 699 700 701 706 707 708 711 712 713 763 764 769 775 784 785 786 787 788 789 792 793 794 798 799 801 802 804 805 807 808 810 811 813 814 816 817 818 819 824 825 826 827 832 833 842 843 844 845 846 847
Symbol 19 EditableTextUses:14 18Used by:Timeline
Symbol 20 GraphicUses:16Used by:53
Symbol 21 GraphicUsed by:53
Symbol 22 GraphicUsed by:53
Symbol 23 BitmapUsed by:24 37
Symbol 24 GraphicUses:23Used by:53
Symbol 25 GraphicUsed by:53
Symbol 26 GraphicUsed by:53
Symbol 27 GraphicUsed by:53
Symbol 28 GraphicUsed by:53
Symbol 29 GraphicUsed by:53
Symbol 30 GraphicUsed by:53
Symbol 31 GraphicUsed by:53
Symbol 32 GraphicUsed by:53
Symbol 33 GraphicUsed by:53
Symbol 34 GraphicUsed by:53
Symbol 35 GraphicUsed by:53
Symbol 36 GraphicUsed by:53
Symbol 37 GraphicUses:23Used by:53
Symbol 38 GraphicUsed by:51
Symbol 39 GraphicUsed by:51 836 841
Symbol 40 GraphicUsed by:51 836 841
Symbol 41 GraphicUsed by:51 836 841
Symbol 42 GraphicUsed by:51 836 841
Symbol 43 GraphicUsed by:51 836 841
Symbol 44 GraphicUsed by:51 836 841
Symbol 45 GraphicUsed by:51 836 841
Symbol 46 GraphicUsed by:51 836 841
Symbol 47 GraphicUsed by:51 836 841
Symbol 48 GraphicUsed by:51 836 841
Symbol 49 GraphicUsed by:51 836 841
Symbol 50 GraphicUsed by:51 836 841
Symbol 51 MovieClipUses:38 39 40 41 42 43 44 45 46 47 48 49 50Used by:52
Symbol 52 MovieClip {rc2_fla.bubble_logo3_2}Uses:51Used by:53
Symbol 53 MovieClip {rc2_fla.bubleintro_1}Uses:20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 52Used by:Timeline
Symbol 54 EditableTextUses:18Used by:Timeline
Symbol 55 EditableTextUses:14Used by:797
Symbol 56 BitmapUsed by:57 665 670 689 704 710
Symbol 57 GraphicUses:56Used by:93 304 308 312 316 320 324 328 336 364 383 647 664 697  Timeline
Symbol 58 BitmapUsed by:59
Symbol 59 GraphicUses:58Used by:60
Symbol 60 MovieClip {p_dulo}Uses:59Used by:93 304 308 312 316 320 324 328 332 336 342 346 350 356 360 364 368 372 376 383 418 425 433 445 451 457 461 465 471 477 485 489 493 498 502 506 510 514 518 526 565 572 577 581 586 592 596 605 611 616 620 626 631 635 639 643 647 651 656 660 664 669 675 680 686 693 697 702 709 714
Symbol 61 BitmapUsed by:62
Symbol 62 GraphicUses:61Used by:63
Symbol 63 MovieClip {p_osnova}Uses:62Used by:93 304 308 312 316 320 324 328 332 336 342 346 350 356 360 364 368 372 376 383 418 425 433 445 451 457 461 465 471 477 485 489 493 498 502 506 510 514 518 526 565 572 577 581 586 592 596 605 611 616 620 626 631 635 639 643 647 651 656 660 664 669 675 680 686 693 697 702 709 714
Symbol 64 BitmapUsed by:65 67 277 283 285 287
Symbol 65 GraphicUses:64Used by:66
Symbol 66 MovieClip {plank1_1}Uses:65Used by:93 304 308 312 316 320 324 328 332 336 342 346 350 356 360 364 376 383 664 669 675 680 686 693 697 702 709 714 783 790 795 797  Timeline
Symbol 67 GraphicUses:64Used by:68
Symbol 68 MovieClip {plank1_2}Uses:67Used by:93 304 308 312 316 320 328 332 336 342 346 350 356 360 364 376 383 664 669 675 680 686 693 697 702 709 714 783 790 795 797  Timeline
Symbol 69 BitmapUsed by:70 72 80 275
Symbol 70 GraphicUses:69Used by:71
Symbol 71 MovieClip {plank1_4}Uses:70Used by:93 264 304 308 312 316 320 324 328 332 336 342 346 350 356 360 364 372 376 383 664 669 675 680 686 693 697 702 709  Timeline
Symbol 72 GraphicUses:69Used by:73
Symbol 73 MovieClip {plank1_5}Uses:72Used by:93 304 308 312 316 320 324 328 332 336 342 346 350 356 360 364 368 372 376 383 664 669 675 680 686 693 697 702 709 714 783 790 795 797
Symbol 74 BitmapUsed by:75
Symbol 75 GraphicUses:74Used by:76 274
Symbol 76 MovieClip {plank1_7}Uses:75Used by:93 304 308 312 316 320 324 328 332 336 342 346 350 356 360 364 376 383 664 669 675 680 686 693 697 702 709 797  Timeline
Symbol 77 BitmapUsed by:78
Symbol 78 GraphicUses:77Used by:79
Symbol 79 MovieClip {plank1_3}Uses:78Used by:93 304 308 312 316 320 324 328 332 336 342 346 350 356 360 364 368 372 376 383 664 669 675 680 686 693 697 702 709 714 797
Symbol 80 GraphicUses:69Used by:81
Symbol 81 MovieClip {plank1_6}Uses:80Used by:93 304 308 312 316 320 324 328 332 336 342 346 350 356 360 364 368 372 376 383 664 669 675 680 686 693 697 702 709 714 783 790 795 797  Timeline
Symbol 82 BitmapUsed by:83 525
Symbol 83 GraphicUses:82Used by:84
Symbol 84 MovieClip {mhere}Uses:83Used by:93 304 308 312 316 320 324 328 332 336 342 346 350 356 360 364 368 372 376 383 418 425 433 445 451 457 461 465 471 477 485 489 493 498 502 506 510 514 518 526 565 572 577 581 586 592 596 605 611 616 620 626 631 635 639 643 647 651 656 660 664 669 675 680 686 693 697 702 709 714 790
Symbol 85 EditableTextUses:14 18Used by:93
Symbol 86 EditableTextUses:14 18Used by:93
Symbol 87 EditableTextUses:14 18Used by:93
Symbol 88 EditableTextUses:14 18Used by:92
Symbol 89 EditableTextUses:14 18Used by:92
Symbol 90 EditableTextUses:14 18Used by:92
Symbol 91 EditableTextUses:14 18Used by:92
Symbol 92 MovieClip {menu_g}Uses:88 89 90 91Used by:93 308 312 316 320 336 360 364 372 376 425 433 445 451 471 565 572 577 581 586 611 616 626 631 635 651 669 680 797
Symbol 93 MovieClip {levels_g.level1}Uses:57 60 63 66 68 71 73 76 79 81 84 85 86 87 92Used by:797
Symbol 94 BitmapUsed by:95
Symbol 95 GraphicUses:94Used by:160
Symbol 96 BitmapUsed by:97
Symbol 97 GraphicUses:96Used by:160
Symbol 98 BitmapUsed by:99
Symbol 99 GraphicUses:98Used by:160
Symbol 100 BitmapUsed by:101
Symbol 101 GraphicUses:100Used by:160
Symbol 102 BitmapUsed by:103
Symbol 103 GraphicUses:102Used by:160
Symbol 104 BitmapUsed by:105
Symbol 105 GraphicUses:104Used by:160
Symbol 106 BitmapUsed by:107
Symbol 107 GraphicUses:106Used by:160
Symbol 108 BitmapUsed by:109
Symbol 109 GraphicUses:108Used by:160
Symbol 110 BitmapUsed by:111
Symbol 111 GraphicUses:110Used by:160
Symbol 112 BitmapUsed by:113
Symbol 113 GraphicUses:112Used by:160
Symbol 114 BitmapUsed by:115
Symbol 115 GraphicUses:114Used by:160
Symbol 116 BitmapUsed by:117
Symbol 117 GraphicUses:116Used by:160
Symbol 118 BitmapUsed by:119
Symbol 119 GraphicUses:118Used by:160
Symbol 120 BitmapUsed by:121
Symbol 121 GraphicUses:120Used by:160
Symbol 122 BitmapUsed by:123
Symbol 123 GraphicUses:122Used by:160
Symbol 124 BitmapUsed by:125
Symbol 125 GraphicUses:124Used by:160
Symbol 126 BitmapUsed by:127
Symbol 127 GraphicUses:126Used by:160
Symbol 128 BitmapUsed by:129
Symbol 129 GraphicUses:128Used by:160
Symbol 130 BitmapUsed by:131
Symbol 131 GraphicUses:130Used by:160
Symbol 132 BitmapUsed by:133
Symbol 133 GraphicUses:132Used by:160
Symbol 134 BitmapUsed by:135
Symbol 135 GraphicUses:134Used by:160
Symbol 136 BitmapUsed by:137
Symbol 137 GraphicUses:136Used by:160
Symbol 138 BitmapUsed by:139
Symbol 139 GraphicUses:138Used by:160
Symbol 140 BitmapUsed by:141
Symbol 141 GraphicUses:140Used by:160
Symbol 142 BitmapUsed by:143
Symbol 143 GraphicUses:142Used by:160
Symbol 144 BitmapUsed by:145
Symbol 145 GraphicUses:144Used by:160
Symbol 146 BitmapUsed by:147
Symbol 147 GraphicUses:146Used by:160
Symbol 148 BitmapUsed by:149
Symbol 149 GraphicUses:148Used by:160
Symbol 150 BitmapUsed by:151
Symbol 151 GraphicUses:150Used by:160
Symbol 152 BitmapUsed by:153
Symbol 153 GraphicUses:152Used by:160
Symbol 154 BitmapUsed by:155
Symbol 155 GraphicUses:154Used by:160
Symbol 156 BitmapUsed by:157
Symbol 157 GraphicUses:156Used by:160
Symbol 158 BitmapUsed by:159
Symbol 159 GraphicUses:158Used by:160
Symbol 160 MovieClip {e1}Uses:95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159Used by:797
Symbol 161 BitmapUsed by:162
Symbol 162 GraphicUses:161Used by:237
Symbol 163 BitmapUsed by:164
Symbol 164 GraphicUses:163Used by:237
Symbol 165 BitmapUsed by:166
Symbol 166 GraphicUses:165Used by:237
Symbol 167 BitmapUsed by:168
Symbol 168 GraphicUses:167Used by:237
Symbol 169 BitmapUsed by:170
Symbol 170 GraphicUses:169Used by:237
Symbol 171 BitmapUsed by:172
Symbol 172 GraphicUses:171Used by:237
Symbol 173 BitmapUsed by:174
Symbol 174 GraphicUses:173Used by:237
Symbol 175 BitmapUsed by:176
Symbol 176 GraphicUses:175Used by:237
Symbol 177 BitmapUsed by:178
Symbol 178 GraphicUses:177Used by:237
Symbol 179 BitmapUsed by:180
Symbol 180 GraphicUses:179Used by:237
Symbol 181 BitmapUsed by:182
Symbol 182 GraphicUses:181Used by:237
Symbol 183 BitmapUsed by:184
Symbol 184 GraphicUses:183Used by:237
Symbol 185 BitmapUsed by:186
Symbol 186 GraphicUses:185Used by:237
Symbol 187 BitmapUsed by:188
Symbol 188 GraphicUses:187Used by:237
Symbol 189 BitmapUsed by:190
Symbol 190 GraphicUses:189Used by:237
Symbol 191 BitmapUsed by:192
Symbol 192 GraphicUses:191Used by:237
Symbol 193 BitmapUsed by:194
Symbol 194 GraphicUses:193Used by:237
Symbol 195 BitmapUsed by:196
Symbol 196 GraphicUses:195Used by:237
Symbol 197 BitmapUsed by:198
Symbol 198 GraphicUses:197Used by:237
Symbol 199 BitmapUsed by:200
Symbol 200 GraphicUses:199Used by:237
Symbol 201 BitmapUsed by:202
Symbol 202 GraphicUses:201Used by:237
Symbol 203 BitmapUsed by:204
Symbol 204 GraphicUses:203Used by:237
Symbol 205 BitmapUsed by:206
Symbol 206 GraphicUses:205Used by:237
Symbol 207 BitmapUsed by:208
Symbol 208 GraphicUses:207Used by:237
Symbol 209 BitmapUsed by:210
Symbol 210 GraphicUses:209Used by:237
Symbol 211 BitmapUsed by:212
Symbol 212 GraphicUses:211Used by:237
Symbol 213 BitmapUsed by:214
Symbol 214 GraphicUses:213Used by:237
Symbol 215 BitmapUsed by:216
Symbol 216 GraphicUses:215Used by:237
Symbol 217 BitmapUsed by:218
Symbol 218 GraphicUses:217Used by:237
Symbol 219 BitmapUsed by:220
Symbol 220 GraphicUses:219Used by:237
Symbol 221 BitmapUsed by:222
Symbol 222 GraphicUses:221Used by:237
Symbol 223 BitmapUsed by:224
Symbol 224 GraphicUses:223Used by:237
Symbol 225 BitmapUsed by:226
Symbol 226 GraphicUses:225Used by:237
Symbol 227 BitmapUsed by:228
Symbol 228 GraphicUses:227Used by:237
Symbol 229 BitmapUsed by:230
Symbol 230 GraphicUses:229Used by:237
Symbol 231 BitmapUsed by:232
Symbol 232 GraphicUses:231Used by:237
Symbol 233 BitmapUsed by:234
Symbol 234 GraphicUses:233Used by:237
Symbol 235 BitmapUsed by:236
Symbol 236 GraphicUses:235Used by:237
Symbol 237 MovieClip {e2}Uses:162 164 166 168 170 172 174 176 178 180 182 184 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 216 218 220 222 224 226 228 230 232 234 236Used by:797
Symbol 238 BitmapUsed by:239
Symbol 239 GraphicUses:238Used by:240
Symbol 240 MovieClip {head_1}Uses:239Used by:797
Symbol 241 BitmapUsed by:242
Symbol 242 GraphicUses:241Used by:243
Symbol 243 MovieClip {la_1}Uses:242Used by:797
Symbol 244 BitmapUsed by:245
Symbol 245 GraphicUses:244Used by:246
Symbol 246 MovieClip {ll_1}Uses:245Used by:797
Symbol 247 BitmapUsed by:248
Symbol 248 GraphicUses:247Used by:249
Symbol 249 MovieClip {tors_1}Uses:248Used by:797
Symbol 250 BitmapUsed by:251
Symbol 251 GraphicUses:250Used by:252
Symbol 252 MovieClip {ua_1}Uses:251Used by:797
Symbol 253 BitmapUsed by:254
Symbol 254 GraphicUses:253Used by:255
Symbol 255 MovieClip {ul_1}Uses:254Used by:797
Symbol 256 BitmapUsed by:257
Symbol 257 GraphicUses:256Used by:258
Symbol 258 MovieClip {ball1_1}Uses:257Used by:320 336 350 383 664 669 797
Symbol 259 BitmapUsed by:260
Symbol 260 GraphicUses:259Used by:261
Symbol 261 MovieClip {ball1_2}Uses:260Used by:316 324 350 356 364 664 797
Symbol 262 BitmapUsed by:263 265 266 267
Symbol 263 GraphicUses:262Used by:264 268
Symbol 264 MovieClip {box1_1}Uses:263 71Used by:316 356 372 680 714 797
Symbol 265 GraphicUses:262Used by:268
Symbol 266 GraphicUses:262Used by:268
Symbol 267 GraphicUses:262Used by:268
Symbol 268 MovieClip {kill1}Uses:265 263 266 267Used by:312 316 320 324 328 332 336 342 346 350 360 364 376 680 702 709 790 797
Symbol 269 BitmapUsed by:270 279 281
Symbol 270 GraphicUses:269Used by:271
Symbol 271 MovieClip {plank1_8}Uses:270Used by:332 350 797  Timeline
Symbol 272 GraphicUses:1Used by:273
Symbol 273 MovieClip {plank1_9}Uses:272Used by:312 316 324 328 332 336 342 346 350 356 360 364 376 383 664 669 675 680 686 693 697 702 709 783 790 797  Timeline
Symbol 274 MovieClip {plankD1_1}Uses:75Used by:342 350 360 709 797
Symbol 275 GraphicUses:69Used by:276
Symbol 276 MovieClip {plankD1_2}Uses:275Used by:308 372 376 675 797
Symbol 277 GraphicUses:64Used by:278
Symbol 278 MovieClip {plankM1_1}Uses:277Used by:316 356 364 680 697 797
Symbol 279 GraphicUses:269Used by:280
Symbol 280 MovieClip {plankM1_2}Uses:279Used by:324 368 697 714 797
Symbol 281 GraphicUses:269Used by:282
Symbol 282 MovieClip {plankM1_3}Uses:281Used by:320 356 383 797
Symbol 283 GraphicUses:64Used by:284
Symbol 284 MovieClip {plankM1_4}Uses:283Used by:332 372 686 797
Symbol 285 GraphicUses:64Used by:286
Symbol 286 MovieClip {sk1_1}Uses:285Used by:312 316 320 324 328 332 336 342 346 350 356 360 364 376 383 664 669 697 797
Symbol 287 GraphicUses:64Used by:288
Symbol 288 MovieClip {sk1_2}Uses:287Used by:312 316 342 364 368 372 376 675 697 797
Symbol 289 BitmapUsed by:290
Symbol 290 GraphicUses:289Used by:291
Symbol 291 MovieClip {pricel1}Uses:290Used by:797
Symbol 292 EditableTextUses:14 18Used by:304
Symbol 293 EditableTextUses:14 18Used by:304
Symbol 294 EditableTextUses:14 18Used by:304
Symbol 295 EditableTextUses:14 18Used by:299
Symbol 296 EditableTextUses:14 18Used by:299
Symbol 297 EditableTextUses:14 18Used by:299
Symbol 298 EditableTextUses:14 18Used by:299
Symbol 299 MovieClip {menu_g2}Uses:295 296 297 298Used by:304 324 328 332 342 346 350 356 368 383 418 457 461 465 477 485 489 493 498 502 506 510 514 518 526 592 596 605 620 639 643 647 656 660 664 675 686 693 697 702 709 714 797
Symbol 300 BitmapUsed by:301
Symbol 301 GraphicUses:300Used by:303
Symbol 302 EditableTextUses:18Used by:303
Symbol 303 MovieClip {sl2}Uses:301 302Used by:304 324 350 368 372 616 714 797
Symbol 304 MovieClip {levels_g.level2}Uses:57 60 63 66 68 71 73 76 79 81 84 292 293 294 299 303Used by:797
Symbol 305 EditableTextUses:14 18Used by:308
Symbol 306 EditableTextUses:14 18Used by:308
Symbol 307 EditableTextUses:14 18Used by:308
Symbol 308 MovieClip {levels_g.level3}Uses:57 60 63 66 68 71 73 76 79 81 84 305 306 276 307 92Used by:797
Symbol 309 EditableTextUses:14 18Used by:312
Symbol 310 EditableTextUses:14 18Used by:312
Symbol 311 EditableTextUses:14 18Used by:312
Symbol 312 MovieClip {levels_g.level4}Uses:57 60 63 66 68 71 73 76 273 79 81 84 309 310 268 286 311 288 92Used by:797
Symbol 313 EditableTextUses:14 18Used by:316
Symbol 314 EditableTextUses:14 18Used by:316
Symbol 315 EditableTextUses:14 18Used by:316
Symbol 316 MovieClip {levels_g.level5}Uses:57 60 63 66 68 71 73 76 273 79 81 84 313 314 278 288 286 315 261 264 268 92Used by:797
Symbol 317 EditableTextUses:14 18Used by:320
Symbol 318 EditableTextUses:14 18Used by:320
Symbol 319 EditableTextUses:14 18Used by:320
Symbol 320 MovieClip {levels_g.level6}Uses:57 60 63 66 68 71 73 76 79 81 286 84 317 318 258 282 319 268 92Used by:797
Symbol 321 EditableTextUses:14 18Used by:324
Symbol 322 EditableTextUses:14 18Used by:324
Symbol 323 EditableTextUses:14 18Used by:324
Symbol 324 MovieClip {levels_g.level7}Uses:57 60 63 66 71 73 79 81 286 76 84 321 322 273 280 261 268 323 299 303Used by:797
Symbol 325 EditableTextUses:14 18Used by:328
Symbol 326 EditableTextUses:14 18Used by:328
Symbol 327 EditableTextUses:14 18Used by:328
Symbol 328 MovieClip {levels_g.level8}Uses:57 60 63 66 68 71 73 76 273 79 81 286 84 325 326 268 327 299Used by:797
Symbol 329 EditableTextUses:14 18Used by:332
Symbol 330 EditableTextUses:14 18Used by:332
Symbol 331 EditableTextUses:14 18Used by:332
Symbol 332 MovieClip {levels_g.level9}Uses:17 60 63 66 68 71 73 76 273 79 81 286 84 329 330 271 284 268 331 299Used by:797
Symbol 333 EditableTextUses:14 18Used by:336
Symbol 334 EditableTextUses:14 18Used by:336
Symbol 335 EditableTextUses:14 18Used by:336
Symbol 336 MovieClip {levels_g.level10}Uses:57 60 63 66 68 71 73 76 273 79 81 286 84 333 334 268 258 335 92Used by:797
Symbol 337 BitmapUsed by:338 582 652 682 698 704 710 762 791
Symbol 338 GraphicUses:337Used by:342 346 350 360 368 372 581 643 651
Symbol 339 EditableTextUses:14 18Used by:342
Symbol 340 EditableTextUses:14 18Used by:342
Symbol 341 EditableTextUses:14 18Used by:342
Symbol 342 MovieClip {levels_g.level11}Uses:338 60 63 66 68 71 73 76 273 79 81 286 84 339 340 288 274 341 268 299Used by:797
Symbol 343 EditableTextUses:14 18Used by:346
Symbol 344 EditableTextUses:14 18Used by:346
Symbol 345 EditableTextUses:14 18Used by:346
Symbol 346 MovieClip {levels_g.level12}Uses:338 60 63 66 68 71 73 76 273 79 81 268 286 84 343 344 345 299Used by:797
Symbol 347 EditableTextUses:14 18Used by:350
Symbol 348 EditableTextUses:14 18Used by:350
Symbol 349 EditableTextUses:14 18Used by:350
Symbol 350 MovieClip {levels_g.level13}Uses:338 60 63 66 68 71 73 76 273 79 81 286 84 347 348 349 274 268 258 261 271 299 303Used by:797
Symbol 351 BitmapUsed by:352 573 670 682 698 704 710
Symbol 352 GraphicUses:351Used by:356 565 572 639  Timeline
Symbol 353 EditableTextUses:14 18Used by:356
Symbol 354 EditableTextUses:14 18Used by:356
Symbol 355 EditableTextUses:14 18Used by:356
Symbol 356 MovieClip {levels_g.level14}Uses:352 60 63 66 68 71 73 76 273 79 81 261 286 84 353 354 355 264 278 282 299Used by:797
Symbol 357 EditableTextUses:14 18Used by:360
Symbol 358 EditableTextUses:14 18Used by:360
Symbol 359 EditableTextUses:14 18Used by:360
Symbol 360 MovieClip {levels_g.level15}Uses:338 60 63 66 68 71 73 76 273 79 81 286 357 358 359 274 84 268 92Used by:797
Symbol 361 EditableTextUses:14 18Used by:364
Symbol 362 EditableTextUses:14 18Used by:364
Symbol 363 EditableTextUses:14 18Used by:364
Symbol 364 MovieClip {levels_g.level16}Uses:57 60 63 66 68 71 73 76 273 79 81 268 84 361 362 363 288 278 261 286 92Used by:797
Symbol 365 EditableTextUses:14 18Used by:368
Symbol 366 EditableTextUses:14 18Used by:368
Symbol 367 EditableTextUses:14 18Used by:368
Symbol 368 MovieClip {levels_g.level17}Uses:338 60 63 73 79 81 84 365 366 367 288 280 299 303Used by:797
Symbol 369 EditableTextUses:14 18Used by:372
Symbol 370 EditableTextUses:14 18Used by:372
Symbol 371 EditableTextUses:14 18Used by:372
Symbol 372 MovieClip {levels_g.level18}Uses:338 60 63 71 73 79 81 84 369 370 371 276 284 288 264 92 303Used by:797
Symbol 373 EditableTextUses:14 18Used by:376
Symbol 374 EditableTextUses:14 18Used by:376
Symbol 375 EditableTextUses:14 18Used by:376
Symbol 376 MovieClip {levels_g.level19}Uses:17 60 63 66 68 71 73 76 79 81 286 268 84 373 374 375 273 276 288 92Used by:797
Symbol 377 EditableTextUses:14 18Used by:383
Symbol 378 EditableTextUses:14 18Used by:383
Symbol 379 EditableTextUses:14 18Used by:383
Symbol 380 BitmapUsed by:381
Symbol 381 GraphicUses:380Used by:382
Symbol 382 MovieClip {ball2_2}Uses:381Used by:383 418 425 433 485 498 502 506 664 714 797
Symbol 383 MovieClip {levels_g.level20}Uses:57 60 63 258 66 68 71 73 76 273 79 81 84 377 378 379 282 382 299 286Used by:797
Symbol 384 BitmapUsed by:385 676 698 705 710
Symbol 385 GraphicUses:384Used by:418 425 433 445 451 457 461 465 471
Symbol 386 EditableTextUses:14 18Used by:418
Symbol 387 EditableTextUses:14 18Used by:418
Symbol 388 BitmapUsed by:389 469
Symbol 389 GraphicUses:388Used by:390
Symbol 390 MovieClip {plank2_4}Uses:389Used by:393 418 425 433 445 451 457 461 465 471 477 485 489 493 498 502 506 510 514 518 526 693 714
Symbol 391 BitmapUsed by:392
Symbol 392 GraphicUses:391Used by:393
Symbol 393 MovieClip {box2_1}Uses:390 392Used by:418 425 433 451 457 461 510 514 680 693 697 714 797
Symbol 394 BitmapUsed by:395 397 449
Symbol 395 GraphicUses:394Used by:396
Symbol 396 MovieClip {plank2_1}Uses:395Used by:418 425 433 445 451 457 461 465 471 477 485 489 493 498 502 506 510 514 518 526 664 669 675 680 686 693 697 702 709 797
Symbol 397 GraphicUses:394Used by:398
Symbol 398 MovieClip {plank2_2}Uses:397Used by:418 425 433 445 451 457 461 465 471 477 485 489 493 498 502 506 510 514 518 526 797
Symbol 399 BitmapUsed by:400 413 439 455
Symbol 400 GraphicUses:399Used by:401
Symbol 401 MovieClip {plank2_3}Uses:400Used by:418 425 433 445 451 457 461 465 471 477 485 489 493 498 502 506 510 514 518 526 664 669 675 680 686 693 697 702 709 714 797
Symbol 402 BitmapUsed by:403 429
Symbol 403 GraphicUses:402Used by:404
Symbol 404 MovieClip {plank2_6}Uses:403Used by:418 425 433 445 451 457 461 465 471 477 485 489 493 498 502 506 510 514 518 526 669 697 797
Symbol 405 BitmapUsed by:406 411
Symbol 406 GraphicUses:405Used by:407
Symbol 407 MovieClip {plank2_9}Uses:406Used by:418 425 433 445 451 457 461 465 471 477 485 489 493 498 502 506 510 514 518 526 664 669 675 680 686 693 697 702 709 797
Symbol 408 BitmapUsed by:409 416 431 437
Symbol 409 GraphicUses:408Used by:410
Symbol 410 MovieClip {plank2_5}Uses:409Used by:418 425 433 445 451 457 461 465 471 477 485 489 493 498 502 506 510 514 518 526 664 669 675 680 686 693 697 702 709 797
Symbol 411 GraphicUses:405Used by:412
Symbol 412 MovieClip {plank2_8}Uses:411Used by:418 425 433 445 451 461 465 471 477 485 489 493 498 502 506 510 514 518 526 664 797
Symbol 413 GraphicUses:399Used by:414
Symbol 414 MovieClip {plankD2_1}Uses:413Used by:418 425 465 471 489 709 797
Symbol 415 EditableTextUses:14 18Used by:418
Symbol 416 GraphicUses:408Used by:417
Symbol 417 MovieClip {sk2_2}Uses:416Used by:418 425 433 445 451 461 465 485 489 493 502 510 514 518 526 714 797
Symbol 418 MovieClip {levels_g.level21}Uses:385 60 63 84 386 387 382 393 396 398 401 404 407 390 410 412 414 415 299 417Used by:797
Symbol 419 EditableTextUses:14 18Used by:425
Symbol 420 EditableTextUses:14 18Used by:425
Symbol 421 BitmapUsed by:422
Symbol 422 GraphicUses:421Used by:423
Symbol 423 MovieClip {kill2}Uses:422Used by:425 433 451 471 485 489 493 502 506 510 514 518 526 680 702 709 790 797
Symbol 424 EditableTextUses:14 18Used by:425
Symbol 425 MovieClip {levels_g.level22}Uses:385 60 63 84 419 420 382 423 393 396 398 401 404 407 390 410 412 414 424 417 92Used by:797
Symbol 426 EditableTextUses:14 18Used by:433
Symbol 427 EditableTextUses:14 18Used by:433
Symbol 428 EditableTextUses:14 18Used by:433
Symbol 429 GraphicUses:402Used by:430
Symbol 430 MovieClip {plankM2_1}Uses:429Used by:433 445 457 498 502 518 526 680 693 797
Symbol 431 GraphicUses:408Used by:432
Symbol 432 MovieClip {plankM2_3}Uses:431Used by:433 451 477 485 797
Symbol 433 MovieClip {levels_g.level23}Uses:385 60 63 84 426 427 382 423 393 396 398 401 404 407 390 410 412 428 417 430 432 92Used by:797
Symbol 434 EditableTextUses:14 18Used by:445
Symbol 435 EditableTextUses:14 18Used by:445
Symbol 436 EditableTextUses:14 18Used by:445
Symbol 437 GraphicUses:408Used by:438
Symbol 438 MovieClip {plank2_7}Uses:437Used by:445 477 493 498 502 506 526 664 669 675 680 686 693 697 702 709 714 797
Symbol 439 GraphicUses:399Used by:440
Symbol 440 MovieClip {sk2_1}Uses:439Used by:445 451 465 471 477 489 493 502 510 702 797
Symbol 441 BitmapUsed by:442
Symbol 442 GraphicUses:441Used by:444
Symbol 443 EditableTextUses:18Used by:444
Symbol 444 MovieClip {sl1}Uses:442 443Used by:445 457 477 514 797
Symbol 445 MovieClip {levels_g.level24}Uses:385 60 63 84 434 435 396 398 401 404 407 390 410 412 436 417 92 438 440 430 444Used by:797
Symbol 446 EditableTextUses:14 18Used by:451
Symbol 447 EditableTextUses:14 18Used by:451
Symbol 448 EditableTextUses:14 18Used by:451
Symbol 449 GraphicUses:394Used by:450
Symbol 450 MovieClip {plankM2_4}Uses:449Used by:451 477 485 686 797
Symbol 451 MovieClip {levels_g.level25}Uses:385 60 63 84 446 447 396 398 401 404 407 390 410 412 448 92 440 417 432 450 393 423Used by:797
Symbol 452 EditableTextUses:14 18Used by:457
Symbol 453 EditableTextUses:14 18Used by:457
Symbol 454 EditableTextUses:14 18Used by:457
Symbol 455 GraphicUses:399Used by:456
Symbol 456 MovieClip {plankM2_2}Uses:455Used by:457 485 680 686 693 797
Symbol 457 MovieClip {levels_g.level26}Uses:385 60 63 84 452 453 396 398 401 404 407 390 410 454 430 456 393 299 444Used by:797
Symbol 458 EditableTextUses:14 18Used by:461
Symbol 459 EditableTextUses:14 18Used by:461
Symbol 460 EditableTextUses:14 18Used by:461
Symbol 461 MovieClip {levels_g.level27}Uses:385 60 63 84 458 459 396 398 401 404 407 390 410 460 299 412 417 393Used by:797
Symbol 462 EditableTextUses:14 18Used by:465
Symbol 463 EditableTextUses:14 18Used by:465
Symbol 464 EditableTextUses:14 18Used by:465
Symbol 465 MovieClip {levels_g.level28}Uses:385 60 63 84 462 463 396 398 401 404 407 390 410 412 464 299 417 440 414Used by:797
Symbol 466 EditableTextUses:14 18Used by:471
Symbol 467 EditableTextUses:14 18Used by:471
Symbol 468 EditableTextUses:14 18Used by:471
Symbol 469 GraphicUses:388Used by:470
Symbol 470 MovieClip {plankD2_2}Uses:469Used by:471 485 675 797
Symbol 471 MovieClip {levels_g.level29}Uses:385 60 63 84 466 467 396 398 401 404 407 390 410 412 468 414 470 423 440 92Used by:797
Symbol 472 BitmapUsed by:473 478 494 670 676
Symbol 473 GraphicUses:472Used by:477
Symbol 474 EditableTextUses:14 18Used by:477
Symbol 475 EditableTextUses:14 18Used by:477
Symbol 476 EditableTextUses:14 18Used by:477
Symbol 477 MovieClip {levels_g.level30}Uses:473 60 63 84 474 475 396 398 401 404 407 390 410 412 476 299 440 438 432 450 444Used by:797
Symbol 478 GraphicUses:472Used by:485 489 493 506 510 514
Symbol 479 EditableTextUses:14 18Used by:485
Symbol 480 EditableTextUses:14 18Used by:485
Symbol 481 EditableTextUses:14 18Used by:485
Symbol 482 BitmapUsed by:483
Symbol 483 GraphicUses:482Used by:484
Symbol 484 MovieClip {ball2_1}Uses:483Used by:485 498 664 797
Symbol 485 MovieClip {levels_g.level31}Uses:478 60 63 84 479 480 396 398 401 404 407 390 410 412 481 299 484 432 417 450 456 470 382 423Used by:797
Symbol 486 EditableTextUses:14 18Used by:489
Symbol 487 EditableTextUses:14 18Used by:489
Symbol 488 EditableTextUses:14 18Used by:489
Symbol 489 MovieClip {levels_g.level32}Uses:478 60 63 84 486 487 396 401 404 407 390 410 398 412 488 299 417 440 423 414Used by:797
Symbol 490 EditableTextUses:14 18Used by:493
Symbol 491 EditableTextUses:14 18Used by:493
Symbol 492 EditableTextUses:14 18Used by:493
Symbol 493 MovieClip {levels_g.level33}Uses:478 60 63 84 490 491 396 401 404 407 390 410 398 412 492 299 423 438 417 440Used by:797
Symbol 494 GraphicUses:472Used by:498 502 518 526
Symbol 495 EditableTextUses:14 18Used by:498
Symbol 496 EditableTextUses:14 18Used by:498
Symbol 497 EditableTextUses:14 18Used by:498
Symbol 498 MovieClip {levels_g.level34}Uses:494 60 63 84 495 496 396 401 404 407 390 410 398 412 497 299 438 430 484 382Used by:797
Symbol 499 EditableTextUses:14 18Used by:502
Symbol 500 EditableTextUses:14 18Used by:502
Symbol 501 EditableTextUses:14 18Used by:502
Symbol 502 MovieClip {levels_g.level35}Uses:494 60 63 84 499 500 401 404 407 390 410 398 396 412 501 299 438 440 382 417 430 423Used by:797
Symbol 503 EditableTextUses:14 18Used by:506
Symbol 504 EditableTextUses:14 18Used by:506
Symbol 505 EditableTextUses:14 18Used by:506
Symbol 506 MovieClip {levels_g.level36}Uses:478 60 63 84 503 504 401 404 407 390 410 398 396 412 505 299 438 382 423Used by:797
Symbol 507 EditableTextUses:14 18Used by:510
Symbol 508 EditableTextUses:14 18Used by:510
Symbol 509 EditableTextUses:14 18Used by:510
Symbol 510 MovieClip {levels_g.level37}Uses:478 60 63 84 507 508 396 398 401 404 407 390 410 509 299 412 393 423 417 440Used by:797
Symbol 511 EditableTextUses:14 18Used by:514
Symbol 512 EditableTextUses:14 18Used by:514
Symbol 513 EditableTextUses:14 18Used by:514
Symbol 514 MovieClip {levels_g.level38}Uses:478 60 63 84 511 512 396 398 401 404 407 390 410 513 299 412 393 423 417 444Used by:797
Symbol 515 EditableTextUses:14 18Used by:518
Symbol 516 EditableTextUses:14 18Used by:518
Symbol 517 EditableTextUses:14 18Used by:518
Symbol 518 MovieClip {levels_g.level39}Uses:494 60 63 84 515 516 396 398 401 404 407 390 410 517 299 412 423 417 430Used by:797
Symbol 519 EditableTextUses:14 18Used by:526
Symbol 520 EditableTextUses:14 18Used by:526
Symbol 521 EditableTextUses:14 18Used by:526
Symbol 522 BitmapUsed by:523
Symbol 523 GraphicUses:522Used by:524
Symbol 524 MovieClip {box3_1}Uses:523Used by:526 572 577 635 647 651 656 680 714 797
Symbol 525 GraphicUses:82Used by:526
Symbol 526 MovieClip {levels_g.level40}Uses:494 60 63 84 519 520 396 398 401 404 407 390 410 521 299 412 430 524 417 525 438 423Used by:797
Symbol 527 EditableTextUses:14 18Used by:565
Symbol 528 EditableTextUses:14 18Used by:565
Symbol 529 BitmapUsed by:530 532 555
Symbol 530 GraphicUses:529Used by:531 610
Symbol 531 MovieClip {plank3_1}Uses:530Used by:565 572 577 581 586 592 596 605 611 616 620 626 631 635 639 643 647 651 656 660 714 797
Symbol 532 GraphicUses:529Used by:533 630
Symbol 533 MovieClip {plank3_2}Uses:532Used by:565 572 577 581 586 592 596 605 611 616 620 626 631 635 639 643 647 651 656 660 797
Symbol 534 BitmapUsed by:535
Symbol 535 GraphicUses:534Used by:536 559
Symbol 536 MovieClip {plank3_3}Uses:535Used by:565 572 577 581 586 592 596 605 611 616 620 626 631 635 639 643 647 651 656 660 714 797
Symbol 537 BitmapUsed by:538 549 557
Symbol 538 GraphicUses:537Used by:539 674
Symbol 539 MovieClip {plank3_9}Uses:538Used by:565 572 577 581 586 592 596 605 611 616 620 626 631 635 639 643 647 651 656 660 669 797
Symbol 540 BitmapUsed by:541 543 545 547
Symbol 541 GraphicUses:540Used by:542
Symbol 542 MovieClip {plank3_5}Uses:541Used by:565 572 577 581 586 592 596 605 611 616 620 626 631 635 639 643 647 651 656 660 669 697 714 797
Symbol 543 GraphicUses:540Used by:544
Symbol 544 MovieClip {plank3_4}Uses:543Used by:565 581 586 592 596 605 611 616 620 626 631 639 643 647 651 656 660 664 697 797
Symbol 545 GraphicUses:540Used by:546
Symbol 546 MovieClip {plank3_6}Uses:545Used by:565 572 577 581 586 592 596 605 611 616 620 626 631 635 639 643 647 651 656 660 664 669 675 680 686 693 697 702 709 714 797
Symbol 547 GraphicUses:540Used by:548 554
Symbol 548 MovieClip {plank3_7}Uses:547Used by:565 572 577 581 586 592 596 605 611 616 620 626 631 635 639 643 647 651 656 660 664 669 697 714 797
Symbol 549 GraphicUses:537Used by:550 615
Symbol 550 MovieClip {plank3_8}Uses:549Used by:565 581 586 592 596 605 616 660 664 669 675 680 686 693 697 702 709 797
Symbol 551 BitmapUsed by:552
Symbol 552 GraphicUses:551Used by:553
Symbol 553 MovieClip {ball3_1}Uses:552Used by:565 664 797
Symbol 554 MovieClip {plankM3_3}Uses:547Used by:565 586 616 647 797
Symbol 555 GraphicUses:529Used by:556
Symbol 556 MovieClip {sk3_1}Uses:555Used by:565 581 586 592 611 616 620 626 631 643 656 709 797
Symbol 557 GraphicUses:537Used by:558
Symbol 558 MovieClip {sk3_2}Uses:557Used by:565 592 626 631 635 639 643 651 660 664 686 693 697 797
Symbol 559 MovieClip {plankM3_4}Uses:535Used by:565 586 647 797
Symbol 560 EditableTextUses:14 18Used by:565
Symbol 561 BitmapUsed by:562
Symbol 562 GraphicUses:561Used by:564
Symbol 563 EditableTextUses:18Used by:564
Symbol 564 MovieClip {sl3}Uses:562 563Used by:565 581 643 651 660 697 797
Symbol 565 MovieClip {levels_g.level41}Uses:352 60 63 84 527 528 531 533 536 539 542 544 546 548 550 553 92 554 556 558 559 560 564Used by:797
Symbol 566 EditableTextUses:14 18Used by:572
Symbol 567 EditableTextUses:14 18Used by:572
Symbol 568 EditableTextUses:14 18Used by:572
Symbol 569 BitmapUsed by:570
Symbol 570 GraphicUses:569Used by:571
Symbol 571 MovieClip {kill3}Uses:570Used by:572 577 581 586 592 596 605 611 620 626 631 660 680 702 709 790 797
Symbol 572 MovieClip {levels_g.level42}Uses:352 60 63 84 566 567 531 533 536 539 542 546 548 92 568 524 571Used by:797
Symbol 573 GraphicUses:351Used by:577
Symbol 574 EditableTextUses:14 18Used by:577
Symbol 575 EditableTextUses:14 18Used by:577
Symbol 576 EditableTextUses:14 18Used by:577
Symbol 577 MovieClip {levels_g.level43}Uses:573 60 63 84 574 575 531 533 536 539 542 546 548 92 576 524 571Used by:797
Symbol 578 EditableTextUses:14 18Used by:581
Symbol 579 EditableTextUses:14 18Used by:581
Symbol 580 EditableTextUses:14 18Used by:581
Symbol 581 MovieClip {levels_g.level44}Uses:338 60 63 84 578 579 533 536 539 542 546 548 92 580 531 571 550 544 556 564Used by:797
Symbol 582 GraphicUses:337Used by:586
Symbol 583 EditableTextUses:14 18Used by:586
Symbol 584 EditableTextUses:14 18Used by:586
Symbol 585 EditableTextUses:14 18Used by:586
Symbol 586 MovieClip {levels_g.level45}Uses:582 60 63 84 583 584 533 536 539 542 546 548 92 585 531 571 550 544 556 554 559Used by:797
Symbol 587 BitmapUsed by:588 670 704
Symbol 588 GraphicUses:587Used by:592 596
Symbol 589 EditableTextUses:14 18Used by:592
Symbol 590 EditableTextUses:14 18Used by:592
Symbol 591 EditableTextUses:14 18Used by:592
Symbol 592 MovieClip {levels_g.level46}Uses:588 60 63 589 590 533 536 539 542 546 548 591 531 544 84 556 558 299 550 571Used by:797
Symbol 593 EditableTextUses:14 18Used by:596
Symbol 594 EditableTextUses:14 18Used by:596
Symbol 595 EditableTextUses:14 18Used by:596
Symbol 596 MovieClip {levels_g.level47}Uses:588 60 63 593 594 533 536 539 542 546 548 595 531 544 84 299 550 571Used by:797
Symbol 597 BitmapUsed by:598 606 670 682 698
Symbol 598 GraphicUses:597Used by:605
Symbol 599 EditableTextUses:14 18Used by:605
Symbol 600 EditableTextUses:14 18Used by:605
Symbol 601 EditableTextUses:14 18Used by:605
Symbol 602 BitmapUsed by:603
Symbol 603 GraphicUses:602Used by:604
Symbol 604 MovieClip {ball3_2}Uses:603Used by:605 635 664 686 797
Symbol 605 MovieClip {levels_g.level48}Uses:598 60 63 599 600 533 536 539 542 546 548 601 531 544 84 299 550 604 571Used by:797
Symbol 606 GraphicUses:597Used by:611 616 635
Symbol 607 EditableTextUses:14 18Used by:611
Symbol 608 EditableTextUses:14 18Used by:611
Symbol 609 EditableTextUses:14 18Used by:611
Symbol 610 MovieClip {plankD3_1}Uses:530Used by:611 709 797
Symbol 611 MovieClip {levels_g.level49}Uses:606 60 63 607 608 533 536 539 542 546 548 609 531 544 84 610 571 92 556Used by:797
Symbol 612 EditableTextUses:14 18Used by:616
Symbol 613 EditableTextUses:14 18Used by:616
Symbol 614 EditableTextUses:14 18Used by:616
Symbol 615 MovieClip {plankM3_2}Uses:549Used by:616 631 635 647 714 797
Symbol 616 MovieClip {levels_g.level50}Uses:606 60 63 612 613 533 536 539 542 546 548 614 531 544 84 92 554 615 556 550 303Used by:797
Symbol 617 EditableTextUses:14 18Used by:620
Symbol 618 EditableTextUses:14 18Used by:620
Symbol 619 EditableTextUses:14 18Used by:620
Symbol 620 MovieClip {levels_g.level51}Uses:17 60 63 617 618 533 536 539 542 546 548 619 531 544 84 571 556 299Used by:797
Symbol 621 BitmapUsed by:622 670
Symbol 622 GraphicUses:621Used by:626 631
Symbol 623 EditableTextUses:14 18Used by:626
Symbol 624 EditableTextUses:14 18Used by:626
Symbol 625 EditableTextUses:14 18Used by:626
Symbol 626 MovieClip {levels_g.level52}Uses:622 60 63 623 624 533 536 539 542 546 548 625 531 544 84 571 92 556 558Used by:797
Symbol 627 EditableTextUses:14 18Used by:631
Symbol 628 EditableTextUses:14 18Used by:631
Symbol 629 EditableTextUses:14 18Used by:631
Symbol 630 MovieClip {plankM3_1}Uses:532Used by:631 647 797
Symbol 631 MovieClip {levels_g.level53}Uses:622 60 63 627 628 533 536 539 542 546 548 629 531 544 84 571 92 556 558 615 630Used by:797
Symbol 632 EditableTextUses:14 18Used by:635
Symbol 633 EditableTextUses:14 18Used by:635
Symbol 634 EditableTextUses:14 18Used by:635
Symbol 635 MovieClip {levels_g.level54}Uses:606 60 63 632 633 533 536 539 542 546 548 634 531 84 92 604 615 558 524Used by:797
Symbol 636 EditableTextUses:14 18Used by:639
Symbol 637 EditableTextUses:14 18Used by:639
Symbol 638 EditableTextUses:14 18Used by:639
Symbol 639 MovieClip {levels_g.level55}Uses:352 60 63 636 637 533 536 539 542 546 548 638 531 544 84 299 558Used by:797
Symbol 640 EditableTextUses:14 18Used by:643
Symbol 641 EditableTextUses:14 18Used by:643
Symbol 642 EditableTextUses:14 18Used by:643
Symbol 643 MovieClip {levels_g.level56}Uses:338 60 63 640 641 533 536 539 542 546 548 642 531 544 84 556 558 299 564Used by:797
Symbol 644 EditableTextUses:14 18Used by:647
Symbol 645 EditableTextUses:14 18Used by:647
Symbol 646 EditableTextUses:14 18Used by:647
Symbol 647 MovieClip {levels_g.level57}Uses:57 60 63 644 645 533 536 539 542 546 548 646 531 544 84 299 615 630 554 559 524Used by:797
Symbol 648 EditableTextUses:14 18Used by:651
Symbol 649 EditableTextUses:14 18Used by:651
Symbol 650 EditableTextUses:14 18Used by:651
Symbol 651 MovieClip {levels_g.level58}Uses:338 60 63 648 649 533 536 539 542 546 548 650 531 544 84 92 558 524 564Used by:797
Symbol 652 GraphicUses:337Used by:656 660
Symbol 653 EditableTextUses:14 18Used by:656
Symbol 654 EditableTextUses:14 18Used by:656
Symbol 655 EditableTextUses:14 18Used by:656
Symbol 656 MovieClip {levels_g.level59}Uses:652 60 63 653 654 533 536 539 542 546 548 655 531 544 524 556 84 299Used by:797
Symbol 657 EditableTextUses:14 18Used by:660
Symbol 658 EditableTextUses:14 18Used by:660
Symbol 659 EditableTextUses:14 18Used by:660
Symbol 660 MovieClip {levels_g.level60}Uses:652 60 63 657 658 533 536 539 542 546 548 659 531 544 84 558 550 571 299 564Used by:797
Symbol 661 EditableTextUses:14 18Used by:664
Symbol 662 EditableTextUses:14 18Used by:664
Symbol 663 EditableTextUses:14 18Used by:664
Symbol 664 MovieClip {levels_g.level61}Uses:57 60 63 66 68 71 73 76 273 79 81 84 661 662 663 438 407 396 401 410 558 546 550 412 258 484 553 544 261 382 604 286 299 548Used by:797
Symbol 665 GraphicUses:56Used by:669
Symbol 666 EditableTextUses:14 18Used by:669
Symbol 667 EditableTextUses:14 18Used by:669
Symbol 668 EditableTextUses:14 18Used by:669
Symbol 669 MovieClip {levels_g.level62}Uses:665 60 63 66 68 71 73 76 273 79 81 666 667 668 438 407 396 401 410 546 550 286 404 548 539 84 542 92 258Used by:797
Symbol 670 GraphicUses:56 472 587 351 621 597Used by:675
Symbol 671 EditableTextUses:14 18Used by:675
Symbol 672 EditableTextUses:14 18Used by:675
Symbol 673 EditableTextUses:14 18Used by:675
Symbol 674 MovieClip {plankD3_2}Uses:538Used by:675 797
Symbol 675 MovieClip {levels_g.level63}Uses:670 60 63 66 68 71 73 76 273 79 81 671 672 673 438 407 396 401 410 546 550 84 674 470 276 288 299Used by:797
Symbol 676 GraphicUses:384 472Used by:680
Symbol 677 EditableTextUses:14 18Used by:680
Symbol 678 EditableTextUses:14 18Used by:680
Symbol 679 EditableTextUses:14 18Used by:680
Symbol 680 MovieClip {levels_g.level64}Uses:676 60 63 66 68 71 73 76 273 79 81 677 678 679 438 407 396 401 410 546 550 84 92 264 393 524 278 430 456 571 423 268Used by:797
Symbol 681 BitmapUsed by:682
Symbol 682 GraphicUses:337 597 681 351Used by:686
Symbol 683 EditableTextUses:14 18Used by:686
Symbol 684 EditableTextUses:14 18Used by:686
Symbol 685 EditableTextUses:14 18Used by:686
Symbol 686 MovieClip {levels_g.level65}Uses:682 60 63 66 68 71 73 76 273 79 81 84 683 684 685 438 407 396 401 410 558 546 550 299 284 450 456 604Used by:797
Symbol 687 BitmapUsed by:689 704
Symbol 688 BitmapUsed by:689 704
Symbol 689 GraphicUses:56 687 688 16Used by:693
Symbol 690 EditableTextUses:14 18Used by:693
Symbol 691 EditableTextUses:14 18Used by:693
Symbol 692 EditableTextUses:14 18Used by:693
Symbol 693 MovieClip {levels_g.level66}Uses:689 60 63 66 68 71 73 76 273 79 81 84 690 691 692 438 407 396 401 410 558 546 550 390 456 393 430 299Used by:797
Symbol 694 EditableTextUses:14 18Used by:697
Symbol 695 EditableTextUses:14 18Used by:697
Symbol 696 EditableTextUses:14 18Used by:697
Symbol 697 MovieClip {levels_g.level67}Uses:57 60 63 66 68 71 73 76 273 79 81 84 694 695 696 438 407 396 401 410 558 546 550 299 278 280 286 288 393 548 542 544 404 564Used by:797
Symbol 698 GraphicUses:384 351 337 597Used by:702
Symbol 699 EditableTextUses:14 18Used by:702
Symbol 700 EditableTextUses:14 18Used by:702
Symbol 701 EditableTextUses:14 18Used by:702
Symbol 702 MovieClip {levels_g.level68}Uses:698 60 63 66 68 71 73 76 273 79 81 84 699 700 701 438 407 396 401 410 546 550 299 268 423 571 440Used by:797
Symbol 703 BitmapUsed by:704
Symbol 704 GraphicUses:351 337 56 703 687 688 587Used by:709
Symbol 705 GraphicUses:384Used by:709
Symbol 706 EditableTextUses:14 18Used by:709
Symbol 707 EditableTextUses:14 18Used by:709
Symbol 708 EditableTextUses:14 18Used by:709
Symbol 709 MovieClip {levels_g.level69}Uses:704 60 63 66 68 71 73 273 79 81 705 76 84 706 707 708 438 407 396 401 410 546 550 299 556 414 610 274 268 423 571Used by:797
Symbol 710 GraphicUses:56 337 351 384Used by:714
Symbol 711 EditableTextUses:14 18Used by:714
Symbol 712 EditableTextUses:14 18Used by:714
Symbol 713 EditableTextUses:14 18Used by:714
Symbol 714 MovieClip {levels_g.level70}Uses:710 60 63 66 68 73 79 81 84 711 712 713 542 536 401 390 438 546 548 531 382 417 280 615 524 393 264 299 303Used by:797
Symbol 715 Sound {fire1}Used by:797
Symbol 716 Sound {fire2}Used by:797
Symbol 717 Sound {clack}Used by:797
Symbol 718 BitmapUsed by:719
Symbol 719 GraphicUses:718Used by:720
Symbol 720 MovieClip {pricel2}Uses:719Used by:797
Symbol 721 BitmapUsed by:722
Symbol 722 GraphicUses:721Used by:723
Symbol 723 MovieClip {head_2}Uses:722Used by:797
Symbol 724 BitmapUsed by:725
Symbol 725 GraphicUses:724Used by:726
Symbol 726 MovieClip {la_2}Uses:725Used by:797
Symbol 727 BitmapUsed by:728
Symbol 728 GraphicUses:727Used by:729
Symbol 729 MovieClip {ll_2}Uses:728Used by:797
Symbol 730 BitmapUsed by:731
Symbol 731 GraphicUses:730Used by:732
Symbol 732 MovieClip {tors_2}Uses:731Used by:797
Symbol 733 BitmapUsed by:734
Symbol 734 GraphicUses:733Used by:735
Symbol 735 MovieClip {ua_2}Uses:734Used by:797
Symbol 736 BitmapUsed by:737
Symbol 737 GraphicUses:736Used by:738
Symbol 738 MovieClip {ul_2}Uses:737Used by:797
Symbol 739 Sound {winlev}Used by:797
Symbol 740 BitmapUsed by:741
Symbol 741 GraphicUses:740Used by:742
Symbol 742 MovieClip {head_3}Uses:741Used by:797
Symbol 743 BitmapUsed by:744
Symbol 744 GraphicUses:743Used by:745
Symbol 745 MovieClip {la_3}Uses:744Used by:797
Symbol 746 BitmapUsed by:747
Symbol 747 GraphicUses:746Used by:748
Symbol 748 MovieClip {ll_3}Uses:747Used by:797
Symbol 749 BitmapUsed by:750
Symbol 750 GraphicUses:749Used by:751
Symbol 751 MovieClip {tors_3}Uses:750Used by:797
Symbol 752 BitmapUsed by:753
Symbol 753 GraphicUses:752Used by:754
Symbol 754 MovieClip {ua_3}Uses:753Used by:797
Symbol 755 BitmapUsed by:756
Symbol 756 GraphicUses:755Used by:757
Symbol 757 MovieClip {ul_3}Uses:756Used by:797
Symbol 758 BitmapUsed by:759
Symbol 759 GraphicUses:758Used by:760
Symbol 760 MovieClip {pricel3}Uses:759Used by:797
Symbol 761 Sound {theme}Used by:797
Symbol 762 GraphicUses:337Used by:783 790
Symbol 763 EditableTextUses:14 18Used by:783
Symbol 764 EditableTextUses:14 18Used by:783
Symbol 765 BitmapUsed by:766
Symbol 766 GraphicUses:765Used by:767 768
Symbol 767 MovieClipUses:766Used by:768
Symbol 768 ButtonUses:767 766Used by:783 790
Symbol 769 EditableTextUses:14 18Used by:783
Symbol 770 GraphicUsed by:773 774
Symbol 771 GraphicUsed by:772 774
Symbol 772 MovieClipUses:771Used by:773
Symbol 773 MovieClip {FGLfull}Uses:770 772Used by:774
Symbol 774 Button {FGLbtn}Uses:773 770 771Used by:783
Symbol 775 EditableTextUses:18Used by:783
Symbol 776 GraphicUsed by:782 841
Symbol 777 BitmapUsed by:778 780 838 840
Symbol 778 GraphicUses:777Used by:779
Symbol 779 MovieClipUses:778Used by:782
Symbol 780 GraphicUses:777Used by:781 782
Symbol 781 MovieClipUses:780Used by:782
Symbol 782 ButtonUses:776 779 781 780Used by:783
Symbol 783 MovieClip {mcCredits}Uses:762 66 68 81 73 273 763 764 768 769 774 775 782Used by:797
Symbol 784 EditableTextUses:14 18Used by:790
Symbol 785 TextUses:18Used by:790
Symbol 786 TextUses:18Used by:790
Symbol 787 TextUses:18Used by:790
Symbol 788 TextUses:18Used by:790
Symbol 789 TextUses:18Used by:790
Symbol 790 MovieClip {mHelp}Uses:762 66 68 81 73 273 784 768 785 786 787 268 423 571 788 84 789Used by:797
Symbol 791 GraphicUses:337Used by:795
Symbol 792 EditableTextUses:14 18Used by:795
Symbol 793 EditableTextUses:14 18Used by:795
Symbol 794 EditableTextUses:14 18Used by:795
Symbol 795 MovieClip {mcMenu}Uses:791 66 73 68 81 792 793 794Used by:797
Symbol 796 Sound {s_win}Used by:797
Symbol 797 MovieClip {initAll}Uses:55 93 160 237 240 243 246 249 252 255 258 261 264 268 66 68 79 73 81 76 271 273 274 276 278 280 282 284 286 288 291 304 308 312 316 320 324 328 332 336 342 346 350 356 360 364 368 372 376 383 418 425 433 445 451 457 461 465 471 477 485 489 493 498 502 506 510 514 518 526 565 572 577 581 586 592 596 605 611 616 620 626 631 635 639 643 647 651 656 660 664 669 675 680 686 693 697 702 709 714 715 716 717 484 382 393 423 396 398 401 410 404 438 412 407 414 470 430 456 432 450 720 723 726 729 732 735 738 440 417 739 553 604 524 571 531 533 536 544 542 546 548 550 539 610 674 630 615 554 559 556 558 742 745 748 751 754 757 760 761 783 790 92 299 795 444 303 564 796Used by:Timeline
Symbol 798 EditableTextUses:14 18Used by:800
Symbol 799 EditableTextUses:14 18Used by:800
Symbol 800 Button {bPlay}Uses:798 799Used by:Timeline
Symbol 801 EditableTextUses:14 18Used by:803
Symbol 802 EditableTextUses:14 18Used by:803
Symbol 803 Button {bMore}Uses:801 802Used by:Timeline
Symbol 804 EditableTextUses:14 18Used by:806
Symbol 805 EditableTextUses:14 18Used by:806
Symbol 806 Button {bLoad}Uses:804 805Used by:Timeline
Symbol 807 EditableTextUses:14 18Used by:809
Symbol 808 EditableTextUses:14 18Used by:809
Symbol 809 Button {bHiscore}Uses:807 808Used by:Timeline
Symbol 810 EditableTextUses:14 18Used by:812
Symbol 811 EditableTextUses:14 18Used by:812
Symbol 812 Button {bHelp}Uses:810 811Used by:Timeline
Symbol 813 EditableTextUses:14 18Used by:815
Symbol 814 EditableTextUses:14 18Used by:815
Symbol 815 Button {bCredits}Uses:813 814Used by:Timeline
Symbol 816 EditableTextUses:14 18Used by:Timeline
Symbol 817 EditableTextUses:18Used by:Timeline
Symbol 818 EditableTextUses:14 18Used by:820
Symbol 819 EditableTextUses:14 18Used by:820
Symbol 820 Button {bOK}Uses:818 819Used by:Timeline
Symbol 821 BitmapUsed by:822
Symbol 822 GraphicUses:821Used by:823
Symbol 823 MovieClipUses:822Used by:Timeline
Symbol 824 EditableTextUses:14 18Used by:828
Symbol 825 EditableTextUses:14 18Used by:828
Symbol 826 EditableTextUses:14 18Used by:828
Symbol 827 EditableTextUses:14 18Used by:828
Symbol 828 MovieClip {qualit}Uses:824 825 826 827Used by:Timeline
Symbol 829 BitmapUsed by:830
Symbol 830 GraphicUses:829Used by:831
Symbol 831 MovieClipUses:830Used by:Timeline
Symbol 832 EditableTextUses:14 18Used by:834
Symbol 833 EditableTextUses:14 18Used by:834
Symbol 834 Button {bVid}Uses:832 833Used by:Timeline
Symbol 835 GraphicUsed by:836 841
Symbol 836 MovieClipUses:835 39 40 41 42 43 44 45 46 47 48 49 50Used by:837
Symbol 837 MovieClipUses:836Used by:841
Symbol 838 GraphicUses:777Used by:839 841
Symbol 839 MovieClipUses:838Used by:841
Symbol 840 GraphicUses:777Used by:841
Symbol 841 ButtonUses:776 837 839 840 835 39 40 41 42 43 44 45 46 47 48 49 50 838Used by:Timeline
Symbol 842 EditableTextUses:18Used by:Timeline
Symbol 843 EditableTextUses:14 18Used by:Timeline
Symbol 844 EditableTextUses:14 18Used by:Timeline
Symbol 845 EditableTextUses:14 18Used by:Timeline
Symbol 846 EditableTextUses:14 18Used by:848
Symbol 847 EditableTextUses:14 18Used by:848
Symbol 848 Button {Символ1}Uses:846 847Used by:Timeline

Instance Names

"no"Frame 1Symbol 15 EditableText
"btnPlay"Frame 5Symbol 800 Button {bPlay}
"btnMore"Frame 5Symbol 803 Button {bMore}
"btnLoad"Frame 5Symbol 806 Button {bLoad}
"btnHiSc"Frame 5Symbol 809 Button {bHiscore}
"btnHelp"Frame 5Symbol 812 Button {bHelp}
"btnCredits"Frame 5Symbol 815 Button {bCredits}
"key"Frame 5Symbol 817 EditableText
"ok"Frame 5Symbol 820 Button {bOK}
"mqua"Frame 5Symbol 828 MovieClip {qualit}
"btnVid"Frame 5Symbol 834 Button {bVid}
"bbmm"Frame 5Symbol 841 Button
"rt"Frame 6Symbol 842 EditableText
"scores"Frame 7Symbol 845 EditableText
"bbscore"Frame 7Symbol 13 MovieClip {bubblebox_score}
"mcGmenu"Frame 7Symbol 848 Button {Символ1}
"insertname"Symbol 13 MovieClip {bubblebox_score} Frame 1Symbol 9 EditableText
"play_latest_text"Symbol 53 MovieClip {rc2_fla.bubleintro_1} Frame 79Symbol 52 MovieClip {rc2_fla.bubble_logo3_2}
"play_latest_text"Symbol 53 MovieClip {rc2_fla.bubleintro_1} Frame 117Symbol 52 MovieClip {rc2_fla.bubble_logo3_2}
"mcDulo"Symbol 93 MovieClip {levels_g.level1} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 304 MovieClip {levels_g.level2} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 308 MovieClip {levels_g.level3} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 312 MovieClip {levels_g.level4} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 316 MovieClip {levels_g.level5} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 320 MovieClip {levels_g.level6} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 324 MovieClip {levels_g.level7} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 328 MovieClip {levels_g.level8} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 332 MovieClip {levels_g.level9} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 336 MovieClip {levels_g.level10} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 342 MovieClip {levels_g.level11} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 346 MovieClip {levels_g.level12} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 350 MovieClip {levels_g.level13} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 356 MovieClip {levels_g.level14} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 360 MovieClip {levels_g.level15} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 364 MovieClip {levels_g.level16} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 368 MovieClip {levels_g.level17} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 372 MovieClip {levels_g.level18} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 376 MovieClip {levels_g.level19} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 383 MovieClip {levels_g.level20} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 418 MovieClip {levels_g.level21} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 425 MovieClip {levels_g.level22} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 433 MovieClip {levels_g.level23} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 445 MovieClip {levels_g.level24} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 451 MovieClip {levels_g.level25} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 457 MovieClip {levels_g.level26} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 461 MovieClip {levels_g.level27} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 465 MovieClip {levels_g.level28} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 471 MovieClip {levels_g.level29} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 477 MovieClip {levels_g.level30} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 485 MovieClip {levels_g.level31} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 489 MovieClip {levels_g.level32} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 493 MovieClip {levels_g.level33} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 498 MovieClip {levels_g.level34} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 502 MovieClip {levels_g.level35} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 506 MovieClip {levels_g.level36} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 510 MovieClip {levels_g.level37} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 514 MovieClip {levels_g.level38} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 518 MovieClip {levels_g.level39} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 526 MovieClip {levels_g.level40} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 565 MovieClip {levels_g.level41} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 572 MovieClip {levels_g.level42} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 577 MovieClip {levels_g.level43} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 581 MovieClip {levels_g.level44} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 586 MovieClip {levels_g.level45} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 592 MovieClip {levels_g.level46} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 596 MovieClip {levels_g.level47} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 605 MovieClip {levels_g.level48} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 611 MovieClip {levels_g.level49} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 616 MovieClip {levels_g.level50} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 620 MovieClip {levels_g.level51} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 626 MovieClip {levels_g.level52} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 631 MovieClip {levels_g.level53} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 635 MovieClip {levels_g.level54} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 639 MovieClip {levels_g.level55} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 643 MovieClip {levels_g.level56} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 647 MovieClip {levels_g.level57} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 651 MovieClip {levels_g.level58} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 656 MovieClip {levels_g.level59} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 660 MovieClip {levels_g.level60} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 664 MovieClip {levels_g.level61} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 669 MovieClip {levels_g.level62} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 675 MovieClip {levels_g.level63} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 680 MovieClip {levels_g.level64} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 686 MovieClip {levels_g.level65} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 693 MovieClip {levels_g.level66} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 697 MovieClip {levels_g.level67} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 702 MovieClip {levels_g.level68} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 709 MovieClip {levels_g.level69} Frame 1Symbol 60 MovieClip {p_dulo}
"mcDulo"Symbol 714 MovieClip {levels_g.level70} Frame 1Symbol 60 MovieClip {p_dulo}
"btnClose"Symbol 783 MovieClip {mcCredits} Frame 1Symbol 768 Button
"btnF"Symbol 783 MovieClip {mcCredits} Frame 1Symbol 774 Button {FGLbtn}
"bbcr"Symbol 783 MovieClip {mcCredits} Frame 1Symbol 782 Button
"btnClose"Symbol 790 MovieClip {mHelp} Frame 1Symbol 768 Button
"qlow"Symbol 828 MovieClip {qualit} Frame 1Symbol 824 EditableText
"qmedium"Symbol 828 MovieClip {qualit} Frame 1Symbol 825 EditableText
"qhigh"Symbol 828 MovieClip {qualit} Frame 1Symbol 826 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Tag 0x0FF (255)Timeline Frame 11 bytes " "

Labels

"init"Frame 1
"preloader"Frame 2
"intro"Frame 3
"intro2"Frame 4
"menu"Frame 5
"game"Frame 6
"win"Frame 7




http://swfchan.com/42/209061/info.shtml
Created: 8/10 -2018 20:36:25 Last modified: 8/10 -2018 20:36:25 Server time: 29/04 -2024 13:09:45