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

swfchan turned sixteen years old today! (5may2024)

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

World Cup Breakout 2010 - play in the illustrious Soccer World Cup.swf

This is the info page for
Flash #93475

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


Text
smaller paddle

smaller ball

quicker ball

slower ball

extra life

extra points

bigger paddle

sticky paddle

shooting paddle

fire ball

BIGGER BALL

ball split

super defender is
tough up front but
weak behind

this Bruiser
needs 3 hits
to take down!

normal defender
can only take  1
hit. easy as pie!

get the ball to the goal to win the level!

fill your rage meter by destroying
3 bricks in 3 seconds

shows how many lives left

x

10

10

10

10

10

10

10

10

10

10

10

10

ActionScript [AS3]

Section 1
//2dplaybutton (assets.2dplaybutton) package assets { import flash.display.*; public dynamic class 2dplaybutton extends SimpleButton { } }//package assets
Section 2
//brick_wall_01 (assets.brick_wall_01) package assets { import flash.display.*; public dynamic class brick_wall_01 extends MovieClip { } }//package assets
Section 3
//bruiser_01_01 (assets.bruiser_01_01) package assets { import flash.display.*; public dynamic class bruiser_01_01 extends MovieClip { } }//package assets
Section 4
//bruiser_01_02 (assets.bruiser_01_02) package assets { import flash.display.*; public dynamic class bruiser_01_02 extends MovieClip { } }//package assets
Section 5
//bruiser_01_03 (assets.bruiser_01_03) package assets { import flash.display.*; public dynamic class bruiser_01_03 extends MovieClip { } }//package assets
Section 6
//bruiser_02_01 (assets.bruiser_02_01) package assets { import flash.display.*; public dynamic class bruiser_02_01 extends MovieClip { } }//package assets
Section 7
//bruiser_02_02 (assets.bruiser_02_02) package assets { import flash.display.*; public dynamic class bruiser_02_02 extends MovieClip { } }//package assets
Section 8
//bruiser_02_03 (assets.bruiser_02_03) package assets { import flash.display.*; public dynamic class bruiser_02_03 extends MovieClip { } }//package assets
Section 9
//bruiser_03_01 (assets.bruiser_03_01) package assets { import flash.display.*; public dynamic class bruiser_03_01 extends MovieClip { } }//package assets
Section 10
//bruiser_03_02 (assets.bruiser_03_02) package assets { import flash.display.*; public dynamic class bruiser_03_02 extends MovieClip { } }//package assets
Section 11
//bruiser_03_03 (assets.bruiser_03_03) package assets { import flash.display.*; public dynamic class bruiser_03_03 extends MovieClip { } }//package assets
Section 12
//bumpmeter_fill (assets.bumpmeter_fill) package assets { import flash.display.*; public dynamic class bumpmeter_fill extends MovieClip { } }//package assets
Section 13
//button_large_skin (assets.button_large_skin) package assets { import flash.display.*; public dynamic class button_large_skin extends MovieClip { } }//package assets
Section 14
//button_medium_skin (assets.button_medium_skin) package assets { import flash.display.*; public dynamic class button_medium_skin extends MovieClip { } }//package assets
Section 15
//button_small_skin (assets.button_small_skin) package assets { import flash.display.*; public dynamic class button_small_skin extends MovieClip { } }//package assets
Section 16
//camera (assets.camera) package assets { import flash.display.*; public dynamic class camera extends MovieClip { } }//package assets
Section 17
//death_01 (assets.death_01) package assets { import flash.display.*; public dynamic class death_01 extends MovieClip { } }//package assets
Section 18
//death_02 (assets.death_02) package assets { import flash.display.*; public dynamic class death_02 extends MovieClip { } }//package assets
Section 19
//death_03 (assets.death_03) package assets { import flash.display.*; public dynamic class death_03 extends MovieClip { } }//package assets
Section 20
//defender_01 (assets.defender_01) package assets { import flash.display.*; public dynamic class defender_01 extends MovieClip { } }//package assets
Section 21
//defender_scared (assets.defender_scared) package assets { import flash.display.*; public dynamic class defender_scared extends MovieClip { } }//package assets
Section 22
//fireball_anim (assets.fireball_anim) package assets { import flash.display.*; public dynamic class fireball_anim extends MovieClip { } }//package assets
Section 23
//fireball_anim_holder (assets.fireball_anim_holder) package assets { import flash.display.*; public dynamic class fireball_anim_holder extends MovieClip { } }//package assets
Section 24
//fireball_powerup (assets.fireball_powerup) package assets { import flash.display.*; public dynamic class fireball_powerup extends MovieClip { } }//package assets
Section 25
//Font_1 (assets.Font_1) package assets { import flash.text.*; public dynamic class Font_1 extends Font { } }//package assets
Section 26
//football (assets.football) package assets { import flash.display.*; public dynamic class football extends MovieClip { } }//package assets
Section 27
//football_rolling_holder (assets.football_rolling_holder) package assets { import flash.display.*; public dynamic class football_rolling_holder extends MovieClip { } }//package assets
Section 28
//footballer_hit_1 (assets.footballer_hit_1) package assets { import flash.display.*; public dynamic class footballer_hit_1 extends MovieClip { public function footballer_hit_1(){ addFrameScript(12, frame13, 20, frame21); } function frame13(){ } function frame21(){ stop(); } } }//package assets
Section 29
//footballer_hit_2 (assets.footballer_hit_2) package assets { import flash.display.*; public dynamic class footballer_hit_2 extends MovieClip { public function footballer_hit_2(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package assets
Section 30
//footballer_hit_3 (assets.footballer_hit_3) package assets { import flash.display.*; public dynamic class footballer_hit_3 extends MovieClip { public function footballer_hit_3(){ addFrameScript(20, frame21); } function frame21(){ stop(); } } }//package assets
Section 31
//full_team_award (assets.full_team_award) package assets { import flash.display.*; public dynamic class full_team_award extends MovieClip { } }//package assets
Section 32
//game_bench (assets.game_bench) package assets { import flash.display.*; public dynamic class game_bench extends MovieClip { } }//package assets
Section 33
//game_end_movie (assets.game_end_movie) package assets { import flash.display.*; public dynamic class game_end_movie extends MovieClip { public var game_won_players_last:MovieClip; public function game_end_movie(){ addFrameScript(459, frame460); } function frame460(){ stop(); } } }//package assets
Section 34
//game_paddle (assets.game_paddle) package assets { import flash.display.*; public dynamic class game_paddle extends MovieClip { } }//package assets
Section 35
//game_title (assets.game_title) package assets { import flash.display.*; public dynamic class game_title extends MovieClip { } }//package assets
Section 36
//gameWonBackground (assets.gameWonBackground) package assets { import flash.display.*; public dynamic class gameWonBackground extends MovieClip { } }//package assets
Section 37
//goal_effect (assets.goal_effect) package assets { import flash.display.*; public dynamic class goal_effect extends MovieClip { } }//package assets
Section 38
//goal_frame (assets.goal_frame) package assets { import flash.display.*; public dynamic class goal_frame extends MovieClip { } }//package assets
Section 39
//goal_perimeter (assets.goal_perimeter) package assets { import flash.display.*; public dynamic class goal_perimeter extends MovieClip { } }//package assets
Section 40
//goalkeeper (assets.goalkeeper) package assets { import flash.display.*; public dynamic class goalkeeper extends MovieClip { } }//package assets
Section 41
//goldencup (assets.goldencup) package assets { import flash.display.*; public dynamic class goldencup extends MovieClip { } }//package assets
Section 42
//grass_cover (assets.grass_cover) package assets { import flash.display.*; public dynamic class grass_cover extends MovieClip { } }//package assets
Section 43
//HUDBackground (assets.HUDBackground) package assets { import flash.display.*; public dynamic class HUDBackground extends MovieClip { } }//package assets
Section 44
//idle_hud_head (assets.idle_hud_head) package assets { import flash.display.*; public dynamic class idle_hud_head extends MovieClip { } }//package assets
Section 45
//InstructionScreen (assets.InstructionScreen) package assets { import flash.display.*; public dynamic class InstructionScreen extends MovieClip { } }//package assets
Section 46
//intro_anim_clip (assets.intro_anim_clip) package assets { import flash.display.*; public dynamic class intro_anim_clip extends MovieClip { public function intro_anim_clip(){ addFrameScript(616, frame617); } function frame617(){ stop(); } } }//package assets
Section 47
//last_screen_tween (assets.last_screen_tween) package assets { import flash.display.*; public dynamic class last_screen_tween extends MovieClip { public var game_won_players_last:MovieClip; } }//package assets
Section 48
//level_won_clock (assets.level_won_clock) package assets { import flash.display.*; public dynamic class level_won_clock extends MovieClip { } }//package assets
Section 49
//LevelBackground (assets.LevelBackground) package assets { import flash.display.*; public dynamic class LevelBackground extends MovieClip { public function LevelBackground(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets
Section 50
//LevelLostBackground (assets.LevelLostBackground) package assets { import flash.display.*; public dynamic class LevelLostBackground extends MovieClip { } }//package assets
Section 51
//levelselect_levellocked (assets.levelselect_levellocked) package assets { import flash.display.*; public dynamic class levelselect_levellocked extends MovieClip { } }//package assets
Section 52
//LevelSelectionBackground (assets.LevelSelectionBackground) package assets { import flash.display.*; public dynamic class LevelSelectionBackground extends MovieClip { } }//package assets
Section 53
//magnet (assets.magnet) package assets { import flash.display.*; public dynamic class magnet extends MovieClip { } }//package assets
Section 54
//main_menu_game_logo (assets.main_menu_game_logo) package assets { import flash.display.*; public dynamic class main_menu_game_logo extends MovieClip { } }//package assets
Section 55
//MainMenuBackground (assets.MainMenuBackground) package assets { import flash.display.*; public dynamic class MainMenuBackground extends MovieClip { } }//package assets
Section 56
//meat (assets.meat) package assets { import flash.display.*; public dynamic class meat extends MovieClip { } }//package assets
Section 57
//medal (assets.medal) package assets { import flash.display.*; public dynamic class medal extends MovieClip { } }//package assets
Section 58
//menu_button_over_skin (assets.menu_button_over_skin) package assets { import flash.display.*; public dynamic class menu_button_over_skin extends MovieClip { } }//package assets
Section 59
//menu_button_up_skin (assets.menu_button_up_skin) package assets { import flash.display.*; public dynamic class menu_button_up_skin extends MovieClip { } }//package assets
Section 60
//misbehaviour_award (assets.misbehaviour_award) package assets { import flash.display.*; public dynamic class misbehaviour_award extends MovieClip { } }//package assets
Section 61
//newspaper_outro (assets.newspaper_outro) package assets { import flash.display.*; public dynamic class newspaper_outro extends MovieClip { public var newspaper_text_holder_won:MovieClip; } }//package assets
Section 62
//ouch_effect (assets.ouch_effect) package assets { import flash.display.*; public dynamic class ouch_effect extends MovieClip { } }//package assets
Section 63
//paddle_01 (assets.paddle_01) package assets { import flash.display.*; public dynamic class paddle_01 extends MovieClip { } }//package assets
Section 64
//paddle_02 (assets.paddle_02) package assets { import flash.display.*; public dynamic class paddle_02 extends MovieClip { } }//package assets
Section 65
//paddle_03 (assets.paddle_03) package assets { import flash.display.*; public dynamic class paddle_03 extends MovieClip { } }//package assets
Section 66
//paddle_boots (assets.paddle_boots) package assets { import flash.display.*; public dynamic class paddle_boots extends MovieClip { } }//package assets
Section 67
//paddle_boots_01 (assets.paddle_boots_01) package assets { import flash.display.*; public dynamic class paddle_boots_01 extends MovieClip { } }//package assets
Section 68
//paddle_boots_02 (assets.paddle_boots_02) package assets { import flash.display.*; public dynamic class paddle_boots_02 extends MovieClip { } }//package assets
Section 69
//paddle_gun (assets.paddle_gun) package assets { import flash.display.*; public dynamic class paddle_gun extends MovieClip { } }//package assets
Section 70
//paddle_hair (assets.paddle_hair) package assets { import flash.display.*; public dynamic class paddle_hair extends MovieClip { } }//package assets
Section 71
//paddle_legs (assets.paddle_legs) package assets { import flash.display.*; public dynamic class paddle_legs extends MovieClip { } }//package assets
Section 72
//paddle_narrow (assets.paddle_narrow) package assets { import flash.display.*; public dynamic class paddle_narrow extends MovieClip { } }//package assets
Section 73
//paddle_narrow_boots (assets.paddle_narrow_boots) package assets { import flash.display.*; public dynamic class paddle_narrow_boots extends MovieClip { } }//package assets
Section 74
//paddle_narrow_legs (assets.paddle_narrow_legs) package assets { import flash.display.*; public dynamic class paddle_narrow_legs extends MovieClip { public function paddle_narrow_legs(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package assets
Section 75
//paddle_narrow_skin (assets.paddle_narrow_skin) package assets { import flash.display.*; public dynamic class paddle_narrow_skin extends MovieClip { public function paddle_narrow_skin(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package assets
Section 76
//paddle_normal (assets.paddle_normal) package assets { import flash.display.*; public dynamic class paddle_normal extends MovieClip { } }//package assets
Section 77
//paddle_shirt (assets.paddle_shirt) package assets { import flash.display.*; public dynamic class paddle_shirt extends MovieClip { } }//package assets
Section 78
//paddle_shorts (assets.paddle_shorts) package assets { import flash.display.*; public dynamic class paddle_shorts extends MovieClip { } }//package assets
Section 79
//paddle_skin (assets.paddle_skin) package assets { import flash.display.*; public dynamic class paddle_skin extends MovieClip { } }//package assets
Section 80
//paddle_socks (assets.paddle_socks) package assets { import flash.display.*; public dynamic class paddle_socks extends MovieClip { } }//package assets
Section 81
//paddle_wide (assets.paddle_wide) package assets { import flash.display.*; public dynamic class paddle_wide extends MovieClip { } }//package assets
Section 82
//paddle_wide_boots (assets.paddle_wide_boots) package assets { import flash.display.*; public dynamic class paddle_wide_boots extends MovieClip { } }//package assets
Section 83
//paddle_wide_legs (assets.paddle_wide_legs) package assets { import flash.display.*; public dynamic class paddle_wide_legs extends MovieClip { public function paddle_wide_legs(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package assets
Section 84
//paddle_wide_skin (assets.paddle_wide_skin) package assets { import flash.display.*; public dynamic class paddle_wide_skin extends MovieClip { } }//package assets
Section 85
//penaltykick (assets.penaltykick) package assets { import flash.display.*; public dynamic class penaltykick extends MovieClip { } }//package assets
Section 86
//positionmarker (assets.positionmarker) package assets { import flash.display.*; public dynamic class positionmarker extends MovieClip { } }//package assets
Section 87
//powerup_enabled (assets.powerup_enabled) package assets { import flash.display.*; public dynamic class powerup_enabled extends MovieClip { } }//package assets
Section 88
//PreloaderAnimation (assets.PreloaderAnimation) package assets { import flash.display.*; public dynamic class PreloaderAnimation extends MovieClip { public function PreloaderAnimation(){ addFrameScript(148, frame149, 214, frame215); } function frame215(){ stop(); } function frame149(){ } } }//package assets
Section 89
//PreloaderSprite (assets.PreloaderSprite) package assets { import flash.display.*; public dynamic class PreloaderSprite extends MovieClip { public var _animation:PreloaderAnimation; public var _logo_button:TwoDPlayLogoAnimation; public var _ad_holder:MovieClip; public var _progress_bar:MovieClip; } }//package assets
Section 90
//pulsating_head (assets.pulsating_head) package assets { import flash.display.*; public dynamic class pulsating_head extends MovieClip { } }//package assets
Section 91
//pump (assets.pump) package assets { import flash.display.*; public dynamic class pump extends MovieClip { } }//package assets
Section 92
//redcard (assets.redcard) package assets { import flash.display.*; public dynamic class redcard extends MovieClip { } }//package assets
Section 93
//referee (assets.referee) package assets { import flash.display.*; public dynamic class referee extends MovieClip { } }//package assets
Section 94
//spikedboot (assets.spikedboot) package assets { import flash.display.*; public dynamic class spikedboot extends MovieClip { } }//package assets
Section 95
//stage1_award (assets.stage1_award) package assets { import flash.display.*; public dynamic class stage1_award extends MovieClip { } }//package assets
Section 96
//stage2_award (assets.stage2_award) package assets { import flash.display.*; public dynamic class stage2_award extends MovieClip { } }//package assets
Section 97
//stage3_award (assets.stage3_award) package assets { import flash.display.*; public dynamic class stage3_award extends MovieClip { } }//package assets
Section 98
//stage4_award (assets.stage4_award) package assets { import flash.display.*; public dynamic class stage4_award extends MovieClip { } }//package assets
Section 99
//team_select_flags (assets.team_select_flags) package assets { import flash.display.*; public dynamic class team_select_flags extends MovieClip { public function team_select_flags(){ addFrameScript(0, frame1); } function frame1(){ } } }//package assets
Section 100
//teamSelect_ball (assets.teamSelect_ball) package assets { import flash.display.*; public dynamic class teamSelect_ball extends MovieClip { } }//package assets
Section 101
//teamSelect_keeper (assets.teamSelect_keeper) package assets { import flash.display.*; public dynamic class teamSelect_keeper extends MovieClip { } }//package assets
Section 102
//teamselect_pictureframe (assets.teamselect_pictureframe) package assets { import flash.display.*; public dynamic class teamselect_pictureframe extends MovieClip { } }//package assets
Section 103
//teamSelect_player_01 (assets.teamSelect_player_01) package assets { import flash.display.*; public dynamic class teamSelect_player_01 extends MovieClip { } }//package assets
Section 104
//teamSelect_player_02 (assets.teamSelect_player_02) package assets { import flash.display.*; public dynamic class teamSelect_player_02 extends MovieClip { } }//package assets
Section 105
//teamSelect_player_03 (assets.teamSelect_player_03) package assets { import flash.display.*; public dynamic class teamSelect_player_03 extends MovieClip { } }//package assets
Section 106
//teamSelect_player_04 (assets.teamSelect_player_04) package assets { import flash.display.*; public dynamic class teamSelect_player_04 extends MovieClip { } }//package assets
Section 107
//teamSelect_player_05 (assets.teamSelect_player_05) package assets { import flash.display.*; public dynamic class teamSelect_player_05 extends MovieClip { } }//package assets
Section 108
//teamSelect_player_06 (assets.teamSelect_player_06) package assets { import flash.display.*; public dynamic class teamSelect_player_06 extends MovieClip { } }//package assets
Section 109
//teamSelect_player_07 (assets.teamSelect_player_07) package assets { import flash.display.*; public dynamic class teamSelect_player_07 extends MovieClip { } }//package assets
Section 110
//teamSelect_player_08 (assets.teamSelect_player_08) package assets { import flash.display.*; public dynamic class teamSelect_player_08 extends MovieClip { } }//package assets
Section 111
//teamSelect_player_09 (assets.teamSelect_player_09) package assets { import flash.display.*; public dynamic class teamSelect_player_09 extends MovieClip { } }//package assets
Section 112
//teamSelect_player_10 (assets.teamSelect_player_10) package assets { import flash.display.*; public dynamic class teamSelect_player_10 extends MovieClip { } }//package assets
Section 113
//teamSelect_player_hair_01 (assets.teamSelect_player_hair_01) package assets { import flash.display.*; public dynamic class teamSelect_player_hair_01 extends MovieClip { } }//package assets
Section 114
//teamSelect_player_hair_02 (assets.teamSelect_player_hair_02) package assets { import flash.display.*; public dynamic class teamSelect_player_hair_02 extends MovieClip { } }//package assets
Section 115
//teamSelect_player_hair_03 (assets.teamSelect_player_hair_03) package assets { import flash.display.*; public dynamic class teamSelect_player_hair_03 extends MovieClip { } }//package assets
Section 116
//teamSelect_player_hair_04 (assets.teamSelect_player_hair_04) package assets { import flash.display.*; public dynamic class teamSelect_player_hair_04 extends MovieClip { } }//package assets
Section 117
//teamSelect_player_hair_05 (assets.teamSelect_player_hair_05) package assets { import flash.display.*; public dynamic class teamSelect_player_hair_05 extends MovieClip { } }//package assets
Section 118
//teamSelect_player_hair_07 (assets.teamSelect_player_hair_07) package assets { import flash.display.*; public dynamic class teamSelect_player_hair_07 extends MovieClip { } }//package assets
Section 119
//teamSelect_player_hair_08 (assets.teamSelect_player_hair_08) package assets { import flash.display.*; public dynamic class teamSelect_player_hair_08 extends MovieClip { } }//package assets
Section 120
//teamSelect_player_hair_09 (assets.teamSelect_player_hair_09) package assets { import flash.display.*; public dynamic class teamSelect_player_hair_09 extends MovieClip { } }//package assets
Section 121
//teamSelectBackground (assets.teamSelectBackground) package assets { import flash.display.*; public dynamic class teamSelectBackground extends MovieClip { } }//package assets
Section 122
//teamSelectBg (assets.teamSelectBg) package assets { import flash.display.*; public dynamic class teamSelectBg extends MovieClip { } }//package assets
Section 123
//teamSelectCoach (assets.teamSelectCoach) package assets { import flash.display.*; public dynamic class teamSelectCoach extends MovieClip { } }//package assets
Section 124
//TeamSelectionBackground (assets.TeamSelectionBackground) package assets { import flash.display.*; public dynamic class TeamSelectionBackground extends MovieClip { } }//package assets
Section 125
//time_award (assets.time_award) package assets { import flash.display.*; public dynamic class time_award extends MovieClip { } }//package assets
Section 126
//trophy_glass (assets.trophy_glass) package assets { import flash.display.*; public dynamic class trophy_glass extends MovieClip { } }//package assets
Section 127
//trophy_room_bg (assets.trophy_room_bg) package assets { import flash.display.*; public dynamic class trophy_room_bg extends MovieClip { } }//package assets
Section 128
//twodplayicon (assets.twodplayicon) package assets { import flash.display.*; public dynamic class twodplayicon extends MovieClip { } }//package assets
Section 129
//TwoDPlayLogoAnimation (assets.TwoDPlayLogoAnimation) package assets { import flash.display.*; public dynamic class TwoDPlayLogoAnimation extends MovieClip { public var _two_d_play_logo:SimpleButton; public var _play_game_button:SimpleButton; public function TwoDPlayLogoAnimation(){ addFrameScript(114, frame115); } function frame115(){ stop(); } } }//package assets
Section 130
//uniform_boots (assets.uniform_boots) package assets { import flash.display.*; public dynamic class uniform_boots extends MovieClip { } }//package assets
Section 131
//uniform_boots_01 (assets.uniform_boots_01) package assets { import flash.display.*; public dynamic class uniform_boots_01 extends MovieClip { } }//package assets
Section 132
//uniform_boots_02 (assets.uniform_boots_02) package assets { import flash.display.*; public dynamic class uniform_boots_02 extends MovieClip { } }//package assets
Section 133
//uniform_face (assets.uniform_face) package assets { import flash.display.*; public dynamic class uniform_face extends MovieClip { public var uniform_face_holder:MovieClip; } }//package assets
Section 134
//uniform_footballer (assets.uniform_footballer) package assets { import flash.display.*; public dynamic class uniform_footballer extends MovieClip { public var footballer:MovieClip; } }//package assets
Section 135
//uniform_hair (assets.uniform_hair) package assets { import flash.display.*; public dynamic class uniform_hair extends MovieClip { public var uniform_hair_holder:MovieClip; } }//package assets
Section 136
//uniform_leg_holder (assets.uniform_leg_holder) package assets { import flash.display.*; public dynamic class uniform_leg_holder extends MovieClip { } }//package assets
Section 137
//uniform_legs (assets.uniform_legs) package assets { import flash.display.*; public dynamic class uniform_legs extends MovieClip { } }//package assets
Section 138
//uniform_shorts (assets.uniform_shorts) package assets { import flash.display.*; public dynamic class uniform_shorts extends MovieClip { public var uniform_shorts_holder:MovieClip; } }//package assets
Section 139
//uniform_skin (assets.uniform_skin) package assets { import flash.display.*; public dynamic class uniform_skin extends MovieClip { public var uniform_skin_holder:MovieClip; } }//package assets
Section 140
//uniform_socks (assets.uniform_socks) package assets { import flash.display.*; public dynamic class uniform_socks extends MovieClip { public var uniform_socks_holder:MovieClip; } }//package assets
Section 141
//unsportmanlike_award (assets.unsportmanlike_award) package assets { import flash.display.*; public dynamic class unsportmanlike_award extends MovieClip { } }//package assets
Section 142
//wbo_award_bg (assets.wbo_award_bg) package assets { import flash.display.*; public dynamic class wbo_award_bg extends MovieClip { } }//package assets
Section 143
//yellowcard (assets.yellowcard) package assets { import flash.display.*; public dynamic class yellowcard extends MovieClip { } }//package assets
Section 144
//biggoal (audio.biggoal) package audio { import flash.media.*; public dynamic class biggoal extends Sound { } }//package audio
Section 145
//button_click (audio.button_click) package audio { import flash.media.*; public dynamic class button_click extends Sound { } }//package audio
Section 146
//cancel_sfx (audio.cancel_sfx) package audio { import flash.media.*; public dynamic class cancel_sfx extends Sound { } }//package audio
Section 147
//cheeringcrowd (audio.cheeringcrowd) package audio { import flash.media.*; public dynamic class cheeringcrowd extends Sound { } }//package audio
Section 148
//crowdboo (audio.crowdboo) package audio { import flash.media.*; public dynamic class crowdboo extends Sound { } }//package audio
Section 149
//earthquake (audio.earthquake) package audio { import flash.media.*; public dynamic class earthquake extends Sound { } }//package audio
Section 150
//fanfarelow (audio.fanfarelow) package audio { import flash.media.*; public dynamic class fanfarelow extends Sound { } }//package audio
Section 151
//football_bounce_2 (audio.football_bounce_2) package audio { import flash.media.*; public dynamic class football_bounce_2 extends Sound { } }//package audio
Section 152
//football_kick_1 (audio.football_kick_1) package audio { import flash.media.*; public dynamic class football_kick_1 extends Sound { } }//package audio
Section 153
//gameambience (audio.gameambience) package audio { import flash.media.*; public dynamic class gameambience extends Sound { } }//package audio
Section 154
//levelwon (audio.levelwon) package audio { import flash.media.*; public dynamic class levelwon extends Sound { } }//package audio
Section 155
//lifelost (audio.lifelost) package audio { import flash.media.*; public dynamic class lifelost extends Sound { } }//package audio
Section 156
//ouch1 (audio.ouch1) package audio { import flash.media.*; public dynamic class ouch1 extends Sound { } }//package audio
Section 157
//ouch2 (audio.ouch2) package audio { import flash.media.*; public dynamic class ouch2 extends Sound { } }//package audio
Section 158
//ouch3 (audio.ouch3) package audio { import flash.media.*; public dynamic class ouch3 extends Sound { } }//package audio
Section 159
//ouch4 (audio.ouch4) package audio { import flash.media.*; public dynamic class ouch4 extends Sound { } }//package audio
Section 160
//ouch5 (audio.ouch5) package audio { import flash.media.*; public dynamic class ouch5 extends Sound { } }//package audio
Section 161
//ouch6 (audio.ouch6) package audio { import flash.media.*; public dynamic class ouch6 extends Sound { } }//package audio
Section 162
//ouch7 (audio.ouch7) package audio { import flash.media.*; public dynamic class ouch7 extends Sound { } }//package audio
Section 163
//ouch8 (audio.ouch8) package audio { import flash.media.*; public dynamic class ouch8 extends Sound { } }//package audio
Section 164
//paddle_hit (audio.paddle_hit) package audio { import flash.media.*; public dynamic class paddle_hit extends Sound { } }//package audio
Section 165
//powerdown (audio.powerdown) package audio { import flash.media.*; public dynamic class powerdown extends Sound { } }//package audio
Section 166
//powerup11 (audio.powerup11) package audio { import flash.media.*; public dynamic class powerup11 extends Sound { } }//package audio
Section 167
//rage_sound (audio.rage_sound) package audio { import flash.media.*; public dynamic class rage_sound extends Sound { } }//package audio
Section 168
//splashambience_quiet (audio.splashambience_quiet) package audio { import flash.media.*; public dynamic class splashambience_quiet extends Sound { } }//package audio
Section 169
//whistle11 (audio.whistle11) package audio { import flash.media.*; public dynamic class whistle11 extends Sound { } }//package audio
Section 170
//whistlestartgame (audio.whistlestartgame) package audio { import flash.media.*; public dynamic class whistlestartgame extends Sound { } }//package audio
Section 171
//vo1 (audio.vo1) package audio { import flash.media.*; public dynamic class vo1 extends Sound { } }//package audio
Section 172
//vo2 (audio.vo2) package audio { import flash.media.*; public dynamic class vo2 extends Sound { } }//package audio
Section 173
//vo3 (audio.vo3) package audio { import flash.media.*; public dynamic class vo3 extends Sound { } }//package audio
Section 174
//vo4 (audio.vo4) package audio { import flash.media.*; public dynamic class vo4 extends Sound { } }//package audio
Section 175
//vo5 (audio.vo5) package audio { import flash.media.*; public dynamic class vo5 extends Sound { } }//package audio
Section 176
//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 177
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.y + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function 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 UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 178
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 179
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 180
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 181
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_coreVertices:Array; public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetNormals():Array{ return (m_normals); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 182
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_isSensor:Boolean; public var m_restitution:Number; public var m_userData; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 183
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int; public function b2ShapeDef(){ type = b2Shape.e_unknownShape; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 184
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 185
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 186
//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 187
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = 0xFFFF; public static const b2_invalid:uint = 0xFFFF; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 188
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 189
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 190
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } public function get key():uint{ return (_key); } } }//package Box2D.Collision
Section 191
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 192
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - _local21) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 193
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 194
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 195
//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 196
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var proxyId1:uint; public var userData;// = null public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 197
//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 198
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 199
//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 200
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 201
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local6) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 202
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 203
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 204
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 205
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 206
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 207
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 208
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function toString():String{ return ((((("[b2Vec2 x=\"" + x) + "\" y=\"") + y) + "\"]")); } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 209
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 210
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 211
//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 212
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 213
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetNext():b2Contact{ return (m_next); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((((((_local3 == 0)) && ((_local2 > 0)))) && (!(_local4.IsStatic())))) && (!(_local5.IsStatic())))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if ((((((_arg1.m_manifoldCount > 0)) && (!(_arg1.m_shape1.m_isSensor)))) && (!(_arg1.m_shape2.m_isSensor)))){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 214
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 215
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var tangentMass:Number; public var equalizedMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 216
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 217
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 218
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactResult { public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 219
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 220
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 221
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 222
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 223
//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_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 224
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 225
//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_ground2:b2Body; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 226
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 227
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular1:Number; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 228
//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_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 229
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 230
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.Joints
Section 231
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 232
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 233
//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_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.Joints
Section 234
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 235
//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_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; public static const b2_minPulleyLength:Number = 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 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 236
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 237
//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_pivotMass:b2Mat22; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); var _local16:Number = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.Joints
Section 238
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var motorSpeed:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var lowerAngle:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 239
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; public var bodyKindID:int;// = -1 public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_world.onBodyWakeUp(this); m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ if (m_world.m_lock == true){ return (null); }; var _local2:b2Shape = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 240
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2BodyDef { public var angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 241
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 242
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 243
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 244
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape2; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 245
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 246
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 247
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_joints:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 248
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 249
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var onBodyWakeUpCallback:Function; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; _local17 = null; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); onBodyWakeUp(_local2); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); onBodyWakeUp(_local2); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function Validate():void{ m_broadPhase.Validate(); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function GetBodyList():b2Body{ return (m_bodyList); } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } function onBodyWakeUp(_arg1:b2Body):void{ onBodyWakeUpCallback(_arg1); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 250
//MD5 (com.adobe.crypto.MD5) package com.adobe.crypto { import flash.utils.*; import com.adobe.utils.*; public class MD5 { public static var digest:ByteArray; private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function f(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg2) | (~(_arg1) & _arg3))); } private static function g(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg3) | (_arg2 & ~(_arg3)))); } private static function h(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 ^ _arg2) ^ _arg3)); } private static function i(_arg1:int, _arg2:int, _arg3:int):int{ return ((_arg2 ^ (_arg1 | ~(_arg3)))); } private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{ var _local9:int = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8); return ((IntUtil.rol(_local9, _arg7) + _arg3)); } private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hash(_arg1:String):String{ var _local2:ByteArray = new ByteArray(); _local2.writeUTFBytes(_arg1); return (hashBinary(_local2)); } private static function createBlocks(_arg1:ByteArray):Array{ var _local2:Array = new Array(); var _local3:int = (_arg1.length * 8); var _local4 = 0xFF; var _local5:int; while (_local5 < _local3) { _local2[int((_local5 >> 5))] = (_local2[int((_local5 >> 5))] | ((_arg1[(_local5 / 8)] & _local4) << (_local5 % 32))); _local5 = (_local5 + 8); }; _local2[int((_local3 >> 5))] = (_local2[int((_local3 >> 5))] | (128 << (_local3 % 32))); _local2[int(((((_local3 + 64) >>> 9) << 4) + 14))] = _local3; return (_local2); } public static function hashBinary(_arg1:ByteArray):String{ var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local2 = 1732584193; var _local3 = -271733879; var _local4 = -1732584194; var _local5 = 271733878; var _local10:Array = createBlocks(_arg1); var _local11:int = _local10.length; var _local12:int; while (_local12 < _local11) { _local6 = _local2; _local7 = _local3; _local8 = _local4; _local9 = _local5; _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 7, -680876936); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 1))], 12, -389564586); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 17, 606105819); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 3))], 22, -1044525330); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 7, -176418897); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 5))], 12, 1200080426); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 17, -1473231341); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 7))], 22, -45705983); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 7, 1770035416); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 9))], 12, -1958414417); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 17, -42063); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 11))], 22, -1990404162); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 7, 1804603682); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 13))], 12, -40341101); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 17, -1502002290); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 15))], 22, 1236535329); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 5, -165796510); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 6))], 9, -1069501632); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 14, 643717713); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 0))], 20, -373897302); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 5, -701558691); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 10))], 9, 38016083); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 14, -660478335); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 4))], 20, -405537848); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 5, 568446438); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 14))], 9, -1019803690); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 14, -187363961); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 8))], 20, 1163531501); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 5, -1444681467); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 2))], 9, -51403784); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 14, 1735328473); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 12))], 20, -1926607734); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 4, -378558); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 8))], 11, -2022574463); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 16, 1839030562); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 14))], 23, -35309556); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 4, -1530992060); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 4))], 11, 1272893353); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 16, -155497632); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 10))], 23, -1094730640); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 4, 681279174); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 0))], 11, -358537222); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 16, -722521979); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 6))], 23, 76029189); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 4, -640364487); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 12))], 11, -421815835); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 16, 530742520); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 2))], 23, -995338651); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 6, -198630844); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 7))], 10, 1126891415); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 15, -1416354905); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 5))], 21, -57434055); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 6, 1700485571); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 3))], 10, -1894986606); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 15, -1051523); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 1))], 21, -2054922799); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 6, 1873313359); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 15))], 10, -30611744); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 15, -1560198380); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 13))], 21, 1309151649); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 6, -145523070); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 11))], 10, -1120210379); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 15, 718787259); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 9))], 21, -343485551); _local2 = (_local2 + _local6); _local3 = (_local3 + _local7); _local4 = (_local4 + _local8); _local5 = (_local5 + _local9); _local12 = (_local12 + 16); }; digest = new ByteArray(); digest.writeInt(_local2); digest.writeInt(_local3); digest.writeInt(_local4); digest.writeInt(_local5); digest.position = 0; return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5))); } private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hashBytes(_arg1:ByteArray):String{ return (hashBinary(_arg1)); } } }//package com.adobe.crypto
Section 251
//IntUtil (com.adobe.utils.IntUtil) package com.adobe.utils { public class IntUtil { private static var hexChars:String = "0123456789abcdef"; public static function toHex(_arg1:int, _arg2:Boolean=false):String{ var _local4:int; var _local5:int; var _local3 = ""; if (_arg2){ _local4 = 0; while (_local4 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15)))); _local4++; }; } else { _local5 = 0; while (_local5 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15)))); _local5++; }; }; return (_local3); } public static function ror(_arg1:int, _arg2:int):uint{ var _local3:int = (32 - _arg2); return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3)))); } public static function rol(_arg1:int, _arg2:int):int{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } } }//package com.adobe.utils
Section 252
//AbstractApplication (com.bigwigmedia.application.AbstractApplication) package com.bigwigmedia.application { import flash.display.*; import com.bigwigmedia.transitions.*; import flash.events.*; import com.bigwigmedia.preloaders.*; import com.bigwigmedia.events.*; import com.bigwigmedia.core.*; import flash.system.*; public class AbstractApplication extends MovieClip implements IApplication { protected var _cursorHolder:Sprite; protected var _preloaderHolder:Sprite; protected var _info:ApplicationInfo; protected var _transitionHolder:Sprite; protected var _mask:Sprite; protected var _mainView:DisplayObject; protected var _toolTipHolder:Sprite; protected var _transition:AbstractTransition; protected var _preloader:AbstractPreloader; public function AbstractApplication(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String=null){ Globals.bigwigmedia_ns::application = this; _info = new ApplicationInfo(_arg1, _arg2, _arg3, _arg4, _arg5); stop(); createChildren(); if (((root) && (root.loaderInfo))){ root.loaderInfo.addEventListener(Event.INIT, onRootInitHandler); }; } public function get mainView():DisplayObject{ return (_mainView); } public function removeTransition():void{ if (_transition){ _transition.removeEventListener(Event.COMPLETE, onTransitionCompleteHandler); _transitionHolder.removeChild(_transition); _transition.dispose(); _transition = null; }; } protected function fillMask(_arg1:uint=0):void{ var _local2:Graphics = _mask.graphics; _local2.clear(); _local2.lineStyle(); _local2.beginFill(_arg1, 1); var _local3:int = nominalWidth; var _local4:int = nominalHeight; _local2.moveTo(0, 0); _local2.lineTo(_local3, 0); _local2.lineTo(_local3, _local4); _local2.lineTo(0, _local4); _local2.lineTo(0, 0); var _local5:int = ((maxScreenWidth - _local3) / 2); var _local6:int = ((maxScreenHeight - _local4) / 2); _local2.moveTo(-(_local5), -(_local6)); _local2.lineTo((_local3 + _local5), -(_local6)); _local2.lineTo((_local3 + _local5), (_local4 + _local6)); _local2.lineTo(-(_local5), (_local4 + _local6)); _local2.lineTo(-(_local5), -(_local6)); _local2.endFill(); addChild(_mask); } protected function fillBackground(_arg1:uint=0, _arg2:Number=1):void{ graphics.clear(); graphics.lineStyle(); graphics.beginFill(_arg1, _arg2); graphics.drawRect(0, 0, nominalWidth, nominalHeight); graphics.endFill(); } protected function createChildren():void{ _preloaderHolder = new Sprite(); addChild(_preloaderHolder); _toolTipHolder = new Sprite(); _toolTipHolder.mouseEnabled = false; _toolTipHolder.mouseChildren = false; addChild(_toolTipHolder); _transitionHolder = new Sprite(); addChild(_transitionHolder); _mask = new Sprite(); addChild(_mask); _cursorHolder = new Sprite(); _cursorHolder.mouseEnabled = false; _cursorHolder.mouseChildren = false; addChild(_cursorHolder); } private function onTransitionCompleteHandler(_arg1:Event):void{ removeTransition(); } public function get cursorHolder():Sprite{ return (_cursorHolder); } public function get nominalHeight():int{ return (loaderInfo.height); } private function onRootInitHandler(_arg1:Event):void{ root.loaderInfo.removeEventListener(Event.INIT, onRootInitHandler); if (stage){ Globals.bigwigmedia_ns::stage = stage; _initialize(); } else { addEventListener(Event.ADDED_TO_STAGE, onAddedToStageHandler); }; } public function get info():ApplicationInfo{ return (_info); } protected function _initialize():void{ stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = ""; onInitialize(); } protected function onLoadingComplete():void{ } protected function get maxScreenHeight():int{ return (Capabilities.screenResolutionY); } protected function startPreloading(_arg1:AbstractPreloader=null):void{ if (_preloader){ return; }; _preloader = ((_arg1) || (new EmptyPreloader())); _preloaderHolder.addChild(_preloader); _preloader.addEventListener(PreloaderEvent.COMPLETE, preloadingCompleteHandler); } protected function get maxScreenWidth():int{ return (Capabilities.screenResolutionX); } protected function addMainView(_arg1:DisplayObject):void{ if (_mainView){ return; }; _mainView = _arg1; addChildAt(_mainView, 0); } private function onAddedToStageHandler(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, onAddedToStageHandler); Globals.bigwigmedia_ns::stage = stage; _initialize(); } public function get nominalWidth():int{ return (loaderInfo.width); } protected function onInitialize():void{ } protected function removePreloader():void{ _preloader.removeEventListener(PreloaderEvent.COMPLETE, preloadingCompleteHandler); _preloader.dispose(); _preloaderHolder.removeChild(_preloader); _preloader = null; } public function getURLVariable(_arg1:String, _arg2:Boolean=false):String{ var _local4:String; var _local5:String; var _local3:Object = loaderInfo.parameters; if (_arg2){ return (_local3[_arg1]); }; _local4 = _arg1.toLowerCase(); for (_local5 in _local3) { if (_local5.toLowerCase() == _local4){ return (_local3[_local5]); }; }; return (null); } public function startTransition(_arg1:AbstractTransition):void{ if (_transition){ return; }; _transition = _arg1; _transition.addEventListener(Event.COMPLETE, onTransitionCompleteHandler); _transitionHolder.addChild(_transition); _transition.start(); } private function preloadingCompleteHandler(_arg1:PreloaderEvent):void{ while (this.currentFrame != this.totalFrames) { nextFrame(); }; onLoadingComplete(); } protected function clearMask():void{ _mask.graphics.clear(); } protected function clearBackground():void{ this.graphics.clear(); } public function getClassByName(_arg1:String):Class{ var _local2:ApplicationDomain = loaderInfo.applicationDomain; if (_local2.hasDefinition(_arg1)){ return ((_local2.getDefinition(_arg1) as Class)); }; return (null); } public function get nominalFrameRate():Number{ return (loaderInfo.frameRate); } public function get toolTipHolder():Sprite{ return (_toolTipHolder); } } }//package com.bigwigmedia.application
Section 253
//ApplicationInfo (com.bigwigmedia.application.ApplicationInfo) package com.bigwigmedia.application { public class ApplicationInfo { private var _sharedObjectPath:String; private var _name:String; private var _sharedObjectName:String; private var _version:String; private var _id:String; public function ApplicationInfo(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String){ _name = _arg1; _id = _arg2; _version = _arg3; _sharedObjectName = _arg4; _sharedObjectPath = _arg5; } public function get id():String{ return (_id); } public function get sharedObjectPath():String{ return (_sharedObjectPath); } public function get name():String{ return (_name); } public function get sharedObjectName():String{ return (_sharedObjectName); } public function get version():String{ return (_version); } } }//package com.bigwigmedia.application
Section 254
//BaseApplication_CPMStar (com.bigwigmedia.application.BaseApplication_CPMStar) package com.bigwigmedia.application { import flash.display.*; import flash.events.*; import flash.system.*; import flash.net.*; public class BaseApplication_CPMStar extends AbstractApplication { private var _adLoader:Loader; private var _adHolder:Sprite; private static const AD_WIDTH:Number = 400; private static const AD_HEIGHT:Number = 350; public function BaseApplication_CPMStar(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String=null){ super(_arg1, _arg2, _arg3, _arg4, _arg5); } private function onAdLoadErrorHandler(_arg1:IOErrorEvent):void{ completeAd(); } protected function get skipAd():Boolean{ return (false); } private function onAdCompleteHandler(_arg1:Event):void{ completeAd(); } private function loadAd():void{ Security.allowDomain("adserver.bigwigmedia.com"); _adHolder = new Sprite(); _adHolder.graphics.lineStyle(); _adHolder.graphics.beginFill(0xFFFFFF); _adHolder.graphics.drawRect(0, 0, AD_WIDTH, AD_HEIGHT); _adHolder.graphics.endFill(); _adHolder.x = ((this.nominalWidth - AD_WIDTH) / 2); _adHolder.y = ((this.nominalHeight - AD_HEIGHT) / 2); addChild(_adHolder); _adLoader = new Loader(); _adLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onAdLoadErrorHandler); _adLoader.contentLoaderInfo.sharedEvents.addEventListener("BigwigInGameAdComplete", onAdCompleteHandler); _adHolder.addChild(_adLoader); try { _adLoader.load(new URLRequest("http://adserver.bigwigmedia.com/ingamead3.swf")); } catch(error:Error) { trace("Resource http://adserver.bigwigmedia.com/ingamead3.swf is unavailable."); completeAd(); }; } private function completeAd():void{ _adLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onAdLoadErrorHandler); _adLoader.contentLoaderInfo.sharedEvents.removeEventListener("BigwigInGameAdComplete", onAdCompleteHandler); try { _adLoader.unload(); } catch(error:Error) { }; _adHolder.removeChild(_adLoader); _adLoader = null; removeChild(_adHolder); _adHolder = null; onInitialize(); } final public function getBigWigWrappedGameData():Object{ var _local1:Object = {url:loaderInfo.url, gameid:info.id, affid:loaderInfo.parameters.affid}; return (_local1); } override protected function _initialize():void{ stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = ""; if (Security.sandboxType == Security.LOCAL_WITH_FILE){ trace("Movie sandbox type is LOCAL WITH FILE. It can't participate in BigWig Media ads network."); onInitialize(); } else { if (skipAd){ onInitialize(); } else { loadAd(); }; }; } } }//package com.bigwigmedia.application
Section 255
//IApplication (com.bigwigmedia.application.IApplication) package com.bigwigmedia.application { import flash.display.*; import com.bigwigmedia.transitions.*; import flash.events.*; public interface IApplication extends IEventDispatcher { function get cursorHolder():Sprite; function get nominalHeight():int; function getClassByName(_arg1:String):Class; function get nominalWidth():int; function get info():ApplicationInfo; function get toolTipHolder():Sprite; function get nominalFrameRate():Number; function getURLVariable(_arg1:String, _arg2:Boolean=false):String; function startTransition(_arg1:AbstractTransition):void; function removeTransition():void; function get mainView():DisplayObject; } }//package com.bigwigmedia.application
Section 256
//bigwigmedia_ns (com.bigwigmedia.core.bigwigmedia_ns) package com.bigwigmedia.core { public namespace bigwigmedia_ns = "http://www.bigwigmedia.com/flash/as3/namespace"; }//package com.bigwigmedia.core
Section 257
//Globals (com.bigwigmedia.core.Globals) package com.bigwigmedia.core { import flash.display.*; import com.bigwigmedia.application.*; public class Globals { private static var _application:IApplication; private static var _stage:Stage; public static function get application():IApplication{ return (_application); } public static function get stage():Stage{ return (_stage); } bigwigmedia_ns static function set application(_arg1:IApplication):void{ if (!_application){ _application = _arg1; }; } bigwigmedia_ns static function set stage(_arg1:Stage):void{ if (!_stage){ _stage = _arg1; }; } } }//package com.bigwigmedia.core
Section 258
//IDisposable (com.bigwigmedia.core.IDisposable) package com.bigwigmedia.core { public interface IDisposable { function dispose():void; } }//package com.bigwigmedia.core
Section 259
//IUpdatable (com.bigwigmedia.core.IUpdatable) package com.bigwigmedia.core { public interface IUpdatable { function update(_arg1:Number):void; } }//package com.bigwigmedia.core
Section 260
//Singleton (com.bigwigmedia.core.Singleton) package com.bigwigmedia.core { import flash.utils.*; public class Singleton { private static var instantiatedClassesDict:Dictionary = new Dictionary(); private static var interfaceToClassHash:Object = {}; private static var interfaceToInstanceHash:Object = {}; public static function registerClass(_arg1:String, _arg2:Class):void{ var _local3:Class = interfaceToClassHash[_arg1]; if (!_local3){ interfaceToClassHash[_arg1] = _arg2; }; } public static function getInstanceByInterface(_arg1:Class):Object{ return (getInstance(getQualifiedClassName(_arg1))); } public static function getInstance(_arg1:String):Object{ var _local2:Object = interfaceToInstanceHash[_arg1]; if (_local2){ return (_local2); }; var _local3:Class = interfaceToClassHash[_arg1]; if (!_local3){ throw (new Error((("No class registered for interface \"" + _arg1) + "\"."))); }; _local2 = new (_local3); interfaceToInstanceHash[_arg1] = _local2; return (_local2); } public static function checkInstance(_arg1:Object):void{ var _local2:Object = Object(_arg1).constructor; if (instantiatedClassesDict[_local2]){ throw ((new Error(("Class " + _local2.toString())) + " has been instantiated already.")); }; instantiatedClassesDict[_local2] = true; } public static function registerClassByInterface(_arg1:Class, _arg2:Class):void{ registerClass(getQualifiedClassName(_arg1), _arg2); } } }//package com.bigwigmedia.core
Section 261
//ComponentEvent (com.bigwigmedia.events.ComponentEvent) package com.bigwigmedia.events { import flash.events.*; public class ComponentEvent extends Event { public static const CHANGE:String = "ComponentEvent.change"; public static const MOVE:String = "ComponentEvent.move"; public static const RESIZE:String = "ComponentEvent.resize"; public static const STYLE_NAME_CHANGE:String = "ComponentEvent.styleNameChange"; public static const BUTTON_DOWN:String = "ComponentEvent.buttonDown"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package com.bigwigmedia.events
Section 262
//EventPriority (com.bigwigmedia.events.EventPriority) package com.bigwigmedia.events { public class EventPriority { public static const DEFAULT:int = 0; public static const HIGH:int = 2000; public static const LOW:int = -2000; public static const LOWEST:int = -5000; public static const HIGHEST:int = 5000; } }//package com.bigwigmedia.events
Section 263
//KeyInputEvent (com.bigwigmedia.events.KeyInputEvent) package com.bigwigmedia.events { import flash.events.*; public class KeyInputEvent extends KeyboardEvent { private var _keyAction:String; public static const SEQUENCE:String = "KeyInputEvent.sequence"; public static const KEY_DOWN:String = "KeyInputEvent.keyDown"; public static const KEY_UP:String = "KeyInputEvent.keyUp"; public static const KEY_HOLD:String = "KeyInputEvent.keyHold"; public function KeyInputEvent(_arg1:String, _arg2:String, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:Boolean, _arg7:Boolean, _arg8:Boolean){ super(_arg1, false, false, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); _keyAction = _arg2; } override public function toString():String{ return (formatToString("KeyInputEvent", "type", "keyAction", "keyCode", "ctrlKey", "altKey", "shiftKey")); } public function get keyAction():String{ return (_keyAction); } override public function clone():Event{ return (new KeyInputEvent(type, keyAction, charCode, keyCode, keyLocation, ctrlKey, altKey, shiftKey)); } } }//package com.bigwigmedia.events
Section 264
//ListEvent (com.bigwigmedia.events.ListEvent) package com.bigwigmedia.events { import flash.events.*; public class ListEvent extends Event { private var _item:Object; private var _index:int; public static const SELECTION_CHANGE:String = "ListEvent.selectionChange"; public static const ITEM_CLICK:String = "ListEvent.itemClick"; public function ListEvent(_arg1:String, _arg2:int, _arg3:Object, _arg4:Boolean=false, _arg5:Boolean=false){ super(_arg1, _arg4, _arg5); _index = _arg2; _item = _arg3; } public function get index():int{ return (_index); } public function get item():Object{ return (_item); } override public function toString():String{ return (formatToString("ListEvent", "type", "index", "bubbles", "cancelable")); } override public function clone():Event{ return (new ListEvent(type, _index, _item, bubbles, cancelable)); } } }//package com.bigwigmedia.events
Section 265
//LoaderEvent (com.bigwigmedia.events.LoaderEvent) package com.bigwigmedia.events { import flash.events.*; import com.bigwigmedia.loaders.*; public class LoaderEvent extends Event { private var _loader:ILoader; private var _message:String; public static const BUNDLE_LOAD:String = "LoaderEvent.bundleLoad"; public static const ERROR:String = "LoaderEvent.error"; public static const READY:String = "LoaderEvent.ready"; public static const LOAD:String = "LoaderEvent.load"; public static const BUNDLE_READY:String = "LoaderEvent.bundleReady"; public function LoaderEvent(_arg1:String, _arg2:ILoader, _arg3:String=""){ super(_arg1); _loader = _arg2; _message = _arg3; } public function get message():String{ return (_message); } public function get loader():ILoader{ return (_loader); } override public function toString():String{ return (formatToString("LoaderEvent", "type", "loader", "message")); } override public function clone():Event{ return (new LoaderEvent(type, _loader, _message)); } } }//package com.bigwigmedia.events
Section 266
//PreloaderEvent (com.bigwigmedia.events.PreloaderEvent) package com.bigwigmedia.events { import flash.events.*; public class PreloaderEvent extends Event { private var _percentLoaded:Number; public static const COMPLETE:String = "PreloaderEvent.complete"; public static const PROGRESS:String = "PreloaderEvent.progress"; public function PreloaderEvent(_arg1:String, _arg2:Number){ super(_arg1, false, false); _percentLoaded = _arg2; } public function get percentLoaded():Number{ return (_percentLoaded); } override public function toString():String{ return (formatToString("PreloaderEvent", "type", "percentLoaded")); } override public function clone():Event{ return (new PreloaderEvent(type, _percentLoaded)); } } }//package com.bigwigmedia.events
Section 267
//ScrollEvent (com.bigwigmedia.events.ScrollEvent) package com.bigwigmedia.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; public static const THUMB_PRESS:String = "ScrollEvent.thumbPress"; public static const SCROLL:String = "ScrollEvent.change"; public static const THUMB_RELEASE:String = "ScrollEvent.thumbRelease"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); _position = _arg2; } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ScrollEvent(type, _position, bubbles, cancelable)); } } }//package com.bigwigmedia.events
Section 268
//SliderEvent (com.bigwigmedia.events.SliderEvent) package com.bigwigmedia.events { import flash.events.*; public class SliderEvent extends Event { private var _value:Number; public static const CHANGE:String = "SliderEvent.change"; public static const KNOB_PRESS:String = "SliderEvent.knobPress"; public static const KNOB_RELEASE:String = "SliderEvent.knobRelease"; public function SliderEvent(_arg1:String, _arg2:Number, _arg3:Boolean=true, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); _value = _arg2; } public function get value():Number{ return (_value); } override public function toString():String{ return (formatToString("SliderEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new SliderEvent(type, _value, bubbles, cancelable)); } } }//package com.bigwigmedia.events
Section 269
//TweenEvent (com.bigwigmedia.events.TweenEvent) package com.bigwigmedia.events { import flash.events.*; public class TweenEvent extends Event { public static const COMPLETE:String = "TweenEvent.complete"; public function TweenEvent(_arg1:String){ super(_arg1); } override public function toString():String{ return (formatToString("TweenEvent", "type")); } override public function clone():Event{ return (new TweenEvent(type)); } } }//package com.bigwigmedia.events
Section 270
//FontManager (com.bigwigmedia.font.FontManager) package com.bigwigmedia.font { import flash.system.*; import flash.text.*; import com.bigwigmedia.core.*; public class FontManager implements IFontManager { private var _domain:ApplicationDomain; private var _idToFontNameHash:Object; public function FontManager(){ _idToFontNameHash = {}; super(); Singleton.checkInstance(this); _domain = ApplicationDomain.currentDomain; } private function getFontClass(_arg1:String):Class{ if (_domain){ return ((_domain.getDefinition(_arg1) as Class)); }; return ((ApplicationDomain.currentDomain.getDefinition(_arg1) as Class)); } public function get domain():ApplicationDomain{ return (_domain); } public function set domain(_arg1:ApplicationDomain):void{ _domain = _arg1; } public function getFontName(_arg1:String):String{ var _local2:Class; var _local3:Font; if (!_idToFontNameHash[_arg1]){ _local2 = getFontClass(_arg1); Font.registerFont(_local2); _local3 = new (_local2); _idToFontNameHash[_arg1] = _local3.fontName; }; return (_idToFontNameHash[_arg1]); } } }//package com.bigwigmedia.font
Section 271
//IFontManager (com.bigwigmedia.font.IFontManager) package com.bigwigmedia.font { import flash.system.*; public interface IFontManager { function set domain(_arg1:ApplicationDomain):void; function get domain():ApplicationDomain; function getFontName(_arg1:String):String; } }//package com.bigwigmedia.font
Section 272
//Vector2D (com.bigwigmedia.geom.Vector2D) package com.bigwigmedia.geom { public class Vector2D { public var x:Number; public var y:Number; public function Vector2D(_arg1:Number=0, _arg2:Number=0){ this.x = _arg1; this.y = _arg2; } public function divide(_arg1:Number):void{ x = (x / _arg1); y = (y / _arg1); } public function negate():void{ x = -(x); y = -(y); } public function getProjection(_arg1:Vector2D):Vector2D{ var _local2:Number = _arg1.dotProduct(_arg1); if (_local2 == 0){ return (this.clone()); }; var _local3:Vector2D = _arg1.getMultiply((this.dotProduct(_arg1) / _local2)); return (_local3); } public function equals(_arg1:Vector2D):Boolean{ return ((((x == _arg1.x)) && ((y == _arg1.y)))); } public function getReflect(_arg1:Vector2D):Vector2D{ var _local2:Number = (2 * dotProduct(_arg1)); return (new Vector2D((x - (_arg1.x * _local2)), (y - (_arg1.y * _local2)))); } public function getRotateBy(_arg1:Number):Vector2D{ var _local2:Number = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); var _local4:Number = ((x * _local2) - (y * _local3)); return (new Vector2D(_local4, ((x * _local3) + (y * _local2)))); } public function getSubtract(_arg1:Vector2D):Vector2D{ return (new Vector2D((x - _arg1.x), (y - _arg1.y))); } public function set length(_arg1:Number):void{ var _local2:Number = (_arg1 / this.length); x = (x * _local2); y = (y * _local2); } public function getOrth():Vector2D{ return (new Vector2D(-(y), x)); } public function nearEquals(_arg1:Vector2D, _arg2:Number=1E-5):Boolean{ if (_arg2 < 0){ _arg2 = -(_arg2); }; var _local3:Number = (x - _arg1.x); if (_local3 < 0){ _local3 = -(_local3); }; var _local4:Number = (y - _arg1.y); if (_local4 < 0){ _local4 = -(_local4); }; return ((((_local3 < _arg2)) && ((_local4 < _arg2)))); } public function crossProduct(_arg1:Vector2D):Number{ return (((x * _arg1.y) - (y * _arg1.x))); } public function rotateBy(_arg1:Number):void{ var _local2:Number = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); var _local4:Number = ((x * _local2) - (y * _local3)); y = ((x * _local3) + (y * _local2)); x = _local4; } public function get angle():Number{ return (Math.atan2(y, x)); } public function normalize():void{ var _local1:Number = this.length; x = (x / _local1); y = (y / _local1); } public function clone():Vector2D{ return (new Vector2D(x, y)); } public function orth():void{ var _local1:Number = -(y); y = x; x = _local1; } public function getMultiply(_arg1:Number):Vector2D{ return (new Vector2D((x * _arg1), (y * _arg1))); } public function subtract(_arg1:Vector2D):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function getNormal():Vector2D{ var _local1:Number = this.length; return (new Vector2D((-(y) / _local1), (x / _local1))); } public function getNormalize():Vector2D{ var _local1:Number = this.length; return (new Vector2D((x / _local1), (y / _local1))); } public function get lengthSquared():Number{ return (((x * x) + (y * y))); } public function multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function get length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function normal():void{ var _local1:Number = this.length; var _local2:Number = (-(y) / _local1); y = (x / _local1); x = _local2; } public function add(_arg1:Vector2D):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function getAdd(_arg1:Vector2D):Vector2D{ return (new Vector2D((x + _arg1.x), (y + _arg1.y))); } public function getRotateTo(_arg1:Number):Vector2D{ var _local2:Number = this.length; return (new Vector2D((Math.cos(_arg1) * _local2), (Math.sin(_arg1) * _local2))); } public function dotProduct(_arg1:Vector2D):Number{ return (((x * _arg1.x) + (y * _arg1.y))); } public function getDivide(_arg1:Number):Vector2D{ return (new Vector2D((x / _arg1), (y / _arg1))); } public function angleBetween(_arg1:Vector2D):Number{ var _local2:Number = Math.acos((dotProduct(_arg1) / (this.length * _arg1.length))); return (_local2); } public function rotateTo(_arg1:Number):void{ var _local2:Number = this.length; x = (Math.cos(_arg1) * _local2); y = (Math.sin(_arg1) * _local2); } public function getNewLength(_arg1:Number):Vector2D{ var _local2:Number = (this.length / _arg1); return (new Vector2D((x / _local2), (y / _local2))); } public function toString():String{ return ((((("[Vector2D x=" + x) + " y=") + y) + "]")); } public function distance(_arg1:Vector2D):Number{ var _local2:Vector2D = this.getSubtract(_arg1); return (_local2.length); } public function reflect(_arg1:Vector2D):void{ var _local2:Number = (2 * dotProduct(_arg1)); x = (x - (_arg1.x * _local2)); y = (y - (_arg1.y * _local2)); } public function getNegate():Vector2D{ return (new Vector2D(-(x), -(y))); } public static function fromObject(_arg1:Object):Vector2D{ return (new Vector2D(_arg1.x, _arg1.y)); } public static function get Y_UNIT():Vector2D{ return (new Vector2D(0, 1)); } public static function get X_UNIT():Vector2D{ return (new Vector2D(1, 0)); } } }//package com.bigwigmedia.geom
Section 273
//KeyInputManager (com.bigwigmedia.input.KeyInputManager) package com.bigwigmedia.input { import flash.display.*; import flash.events.*; import com.bigwigmedia.events.*; import com.bigwigmedia.core.*; public class KeyInputManager extends EventDispatcher implements IDisposable { private var actionToMapperHash:Object; private var target:InteractiveObject; private var keySequences:Object; private var keycodeToMapperHash:Object; public function KeyInputManager(_arg1:InteractiveObject){ actionToMapperHash = {}; keycodeToMapperHash = {}; keySequences = {}; super(); this.target = _arg1; this.target.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler); this.target.addEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler); } public function mapKey(_arg1:String, _arg2:uint):void{ var _local3:KeyMapper; _local3 = keycodeToMapperHash[_arg2]; if (_local3){ unmapKey(_local3.keyAction); }; _local3 = actionToMapperHash[_arg1]; if (_local3){ unmapKey(_arg1); }; _local3 = new KeyMapper(_arg1, _arg2); actionToMapperHash[_arg1] = _local3; keycodeToMapperHash[_arg2] = _local3; } public function unmapSequence(_arg1:String):void{ delete keySequences[_arg1]; } private function onKeyDownHandler(_arg1:KeyboardEvent):void{ var _local4:KeySequence; var _local2:uint = _arg1.keyCode; var _local3:KeyMapper = keycodeToMapperHash[_local2]; if (_local3){ dispatchEvent(new KeyInputEvent((_local3.isDown) ? KeyInputEvent.KEY_HOLD : KeyInputEvent.KEY_DOWN, _local3.keyAction, _arg1.charCode, _local2, _arg1.keyLocation, _arg1.ctrlKey, _arg1.altKey, _arg1.shiftKey)); _local3.isDown = true; }; for each (_local4 in keySequences) { if (_local4.checkNext(_local2)){ dispatchEvent(new KeyInputEvent(KeyInputEvent.SEQUENCE, _local4.keyAction, _arg1.charCode, _local2, _arg1.keyLocation, _arg1.ctrlKey, _arg1.altKey, _arg1.shiftKey)); }; }; } public function dispose():void{ unmapAll(); target.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler); target.removeEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler); target = null; } private function onKeyUpHandler(_arg1:KeyboardEvent):void{ var _local2:KeyMapper = keycodeToMapperHash[_arg1.keyCode]; if (_local2){ if (_local2.isDown){ dispatchEvent(new KeyInputEvent(KeyInputEvent.KEY_UP, _local2.keyAction, _arg1.charCode, _arg1.keyCode, _arg1.keyLocation, _arg1.ctrlKey, _arg1.altKey, _arg1.shiftKey)); }; _local2.isDown = false; }; } public function isKeyMapped(_arg1:uint):Boolean{ return (keycodeToMapperHash[_arg1]); } public function isKeyDown(_arg1:String):Boolean{ var _local2:KeyMapper = actionToMapperHash[_arg1]; return (((_local2) && (_local2.isDown))); } public function unmapKey(_arg1:String):void{ var _local2:KeyMapper = actionToMapperHash[_arg1]; if (_local2){ delete actionToMapperHash[_arg1]; delete keycodeToMapperHash[_local2.keyCode]; }; } public function mapSequence(_arg1:String, _arg2:Array):void{ keySequences[_arg1] = new KeySequence(_arg1, _arg2.slice()); } public function unmapAll():void{ actionToMapperHash = {}; keycodeToMapperHash = {}; keySequences = {}; } public function depressAll():void{ var _local1:KeyMapper; for each (_local1 in actionToMapperHash) { _local1.isDown = false; }; } } }//package com.bigwigmedia.input
Section 274
//KeyMapper (com.bigwigmedia.input.KeyMapper) package com.bigwigmedia.input { class KeyMapper { public var keyCode:uint; public var keyAction:String; public var isDown:Boolean;// = false function KeyMapper(_arg1:String, _arg2:uint){ this.keyAction = _arg1; this.keyCode = _arg2; } } }//package com.bigwigmedia.input
Section 275
//KeySequence (com.bigwigmedia.input.KeySequence) package com.bigwigmedia.input { import com.bigwigmedia.input.*; class KeySequence { private var sequence:Array; public var keyAction:String; private var nextKeyIndex:int;// = 0 function KeySequence(_arg1:String, _arg2:Array){ this.keyAction = _arg1; this.sequence = _arg2; } public function checkNext(_arg1:uint):Boolean{ if (sequence[nextKeyIndex] != _arg1){ nextKeyIndex = 0; }; if (sequence[nextKeyIndex] == _arg1){ if (++nextKeyIndex == sequence.length){ nextKeyIndex = 0; return (true); }; }; return (false); } } }//package com.bigwigmedia.input
Section 276
//AbstractLoader (com.bigwigmedia.loaders.AbstractLoader) package com.bigwigmedia.loaders { import flash.events.*; import com.bigwigmedia.events.*; import flash.utils.*; import com.bigwigmedia.utils.*; import flash.net.*; import flash.errors.*; public class AbstractLoader extends EventDispatcher implements ILoader { protected var _encrypted:Boolean; protected var _status:String;// = "pending" protected var _urlLoader:URLLoader; protected var rc4:RC4; protected var _url:String; private static var _asyncDecryptionThreshold:uint = 4194304; public function AbstractLoader(_arg1:String, _arg2:Boolean){ _url = _arg1; _encrypted = _arg2; } public function get content(){ throw (new IllegalOperationError("Method is not supported in abstract class.")); } private function onSecurityErrorHandler(_arg1:SecurityErrorEvent):void{ onErrorEvent("Security error"); } public function get encrypted():Boolean{ return (_encrypted); } private function onIOErrorHandler(_arg1:IOErrorEvent):void{ onErrorEvent("Loading could not be completed"); } public function get bytesDecrypted():uint{ if (_status == LoaderStatus.READY){ return (_urlLoader.bytesTotal); }; if (_status == LoaderStatus.DECRYPTING){ return (rc4.bytesDecrypted); }; return (0); } public function get bytesLoaded():uint{ if (((!((_status == LoaderStatus.LOADING))) && (!((_status == LoaderStatus.READY))))){ return (0); }; return (contentBytesLoaded); } public function decrypt(_arg1:String):void{ if (((_encrypted) && ((_status == LoaderStatus.LOADED)))){ _status = LoaderStatus.DECRYPTING; rc4 = new RC4(_arg1); rc4.addEventListener(Event.COMPLETE, onDecryptionCompleteHandler); if (contentBytesTotal < AbstractLoader.asyncDecryptionThreshold){ rc4.decrypt((_urlLoader.data as ByteArray)); } else { rc4.decryptAsync((_urlLoader.data as ByteArray)); }; }; } protected function makeReady():void{ _status = LoaderStatus.READY; destroyRC4(); dispatchEvent(new LoaderEvent(LoaderEvent.READY, this)); } protected function get contentBytesLoaded():uint{ return (_urlLoader.bytesLoaded); } public function get bytesTotal():uint{ if ((((((_status == LoaderStatus.PENDING)) || ((_status == LoaderStatus.ERROR)))) || ((_status == LoaderStatus.DISPOSED)))){ return (0); }; var _local1:uint = contentBytesLoaded; var _local2:uint = contentBytesTotal; if ((((_local2 == 0)) && ((_local1 > 0)))){ _local2 = _local1; }; return (_local2); } protected function get contentDataFormat():String{ throw (new IllegalOperationError("Method is not supported in abstract class.")); } private function onURLLoadCompleteHandler(_arg1:Event):void{ _status = LoaderStatus.LOADED; dispatchEvent(new LoaderEvent(LoaderEvent.LOAD, this)); if (!_encrypted){ populateContent(); }; } private function onDecryptionCompleteHandler(_arg1:Event):void{ populateContent(); } public function load():void{ if (_status != LoaderStatus.PENDING){ return; }; _status = LoaderStatus.LOADING; _urlLoader = new URLLoader(); _urlLoader.dataFormat = contentDataFormat; _urlLoader.addEventListener(Event.COMPLETE, onURLLoadCompleteHandler); _urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorHandler); _urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityErrorHandler); try { _urlLoader.load(new URLRequest(_url)); } catch(error:Error) { onErrorEvent("Loading error"); }; } public function get percentDecrypted():Number{ if (_status == LoaderStatus.READY){ return (1); }; if (_status == LoaderStatus.DECRYPTING){ return ((rc4.bytesDecrypted / bytesTotal)); }; return (0); } protected function destroyRC4():void{ if (rc4){ rc4.removeEventListener(Event.COMPLETE, onDecryptionCompleteHandler); rc4.dispose(); rc4 = null; }; } public function get status():String{ return (_status); } protected function populateContent():void{ throw (new IllegalOperationError("Method is not supported in abstract class.")); } protected function onErrorEvent(_arg1:String=null):void{ _status = LoaderStatus.ERROR; dispatchEvent(new LoaderEvent(LoaderEvent.ERROR, this, ((_arg1 + " in loader: ") + _url))); } protected function get contentBytesTotal():uint{ return (_urlLoader.bytesTotal); } public function dispose():void{ if (_status == LoaderStatus.DISPOSED){ return; }; _status = LoaderStatus.DISPOSED; destroyRC4(); if (_urlLoader){ _urlLoader.removeEventListener(Event.COMPLETE, onURLLoadCompleteHandler); _urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, onIOErrorHandler); _urlLoader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityErrorHandler); try { _urlLoader.close(); } catch(error:Error) { }; _urlLoader = null; }; } public function get percentLoaded():Number{ if ((((((_status == LoaderStatus.PENDING)) || ((_status == LoaderStatus.ERROR)))) || ((_status == LoaderStatus.DISPOSED)))){ return (0); }; var _local1:uint = contentBytesLoaded; var _local2:uint = contentBytesTotal; if (_local2 == 0){ return (((_local1 > 0)) ? 1 : 0); }; return ((_local1 / _local2)); } public function get url():String{ return (_url); } public static function set asyncDecryptionThreshold(_arg1:uint):void{ _asyncDecryptionThreshold = _arg1; } public static function get asyncDecryptionThreshold():uint{ return (_asyncDecryptionThreshold); } } }//package com.bigwigmedia.loaders
Section 277
//ILoader (com.bigwigmedia.loaders.ILoader) package com.bigwigmedia.loaders { import flash.events.*; import com.bigwigmedia.core.*; public interface ILoader extends IEventDispatcher, IDisposable { function get bytesTotal():uint; function get bytesDecrypted():uint; function get encrypted():Boolean; function load():void; function get percentDecrypted():Number; function get percentLoaded():Number; function decrypt(_arg1:String):void; function get url():String; function get bytesLoaded():uint; function get status():String; function get content(); } }//package com.bigwigmedia.loaders
Section 278
//ISWFLoader (com.bigwigmedia.loaders.ISWFLoader) package com.bigwigmedia.loaders { import flash.system.*; public interface ISWFLoader extends ILoader { function getDefinitionByName(_arg1:String):Object; function getClassByName(_arg1:String):Class; function get applicationDomain():ApplicationDomain; } }//package com.bigwigmedia.loaders
Section 279
//LoaderStatus (com.bigwigmedia.loaders.LoaderStatus) package com.bigwigmedia.loaders { public class LoaderStatus { public static const READY:String = "ready"; public static const LOADED:String = "loaded"; public static const ERROR:String = "error"; public static const DISPOSED:String = "disposed"; public static const DECRYPTING:String = "decrypting"; public static const PENDING:String = "pending"; public static const LOADING:String = "loading"; } }//package com.bigwigmedia.loaders
Section 280
//SWFLoader (com.bigwigmedia.loaders.SWFLoader) package com.bigwigmedia.loaders { import flash.display.*; import flash.events.*; import flash.system.*; import flash.utils.*; import flash.net.*; public class SWFLoader extends AbstractLoader implements ISWFLoader { protected var _loader:Loader; protected var _applicationDomain:ApplicationDomain; public function SWFLoader(_arg1:String, _arg2:ApplicationDomain=null, _arg3:Boolean=false){ super(_arg1, _arg3); _applicationDomain = ((_arg2) || (new ApplicationDomain(ApplicationDomain.currentDomain))); } override public function get content(){ return (((_status == LoaderStatus.READY)) ? _loader.content : null); } override protected function get contentDataFormat():String{ return (URLLoaderDataFormat.BINARY); } public function getDefinitionByName(_arg1:String):Object{ if (_status != LoaderStatus.READY){ return (null); }; if (_applicationDomain.hasDefinition(_arg1)){ return (_applicationDomain.getDefinition(_arg1)); }; return (null); } override public function dispose():void{ super.dispose(); if (_loader){ _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onLoaderCompleteHandler); _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onLoaderIOErrorHandler); try { _loader.close(); } catch(error:Error) { }; try { _loader.unload(); } catch(error:Error) { }; _loader = null; }; _applicationDomain = null; } public function getClassByName(_arg1:String):Class{ return ((getDefinitionByName(_arg1) as Class)); } override protected function populateContent():void{ _loader = new Loader(); var context:LoaderContext = new LoaderContext(false, _applicationDomain, null); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderCompleteHandler); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoaderIOErrorHandler); try { _loader.loadBytes((_urlLoader.data as ByteArray), context); } catch(error:Error) { onErrorEvent("Content is corrupted"); }; } public function get applicationDomain():ApplicationDomain{ return (_applicationDomain); } private function onLoaderIOErrorHandler(_arg1:IOErrorEvent):void{ onErrorEvent("Content is corrupted"); } private function onLoaderCompleteHandler(_arg1:Event):void{ makeReady(); } } }//package com.bigwigmedia.loaders
Section 281
//ILocale (com.bigwigmedia.locale.ILocale) package com.bigwigmedia.locale { public interface ILocale { function getStringEx(_arg1:String, _arg2:String):String; function get systemLanguageCode():String; function get languageCode():String; function getString(_arg1:String):String; function set languageCode(_arg1:String):void; function get languages():Array; function addLanguageXML(_arg1:XML):void; } }//package com.bigwigmedia.locale
Section 282
//ControllerEvent (com.bigwigmedia.mvc.events.ControllerEvent) package com.bigwigmedia.mvc.events { import flash.events.*; public class ControllerEvent extends Event { private var _data:Object; public static const COMPLETE:String = "ControllerEvent.complete"; public static const MESSAGE:String = "ControllerEvent.message"; public function ControllerEvent(_arg1:String, _arg2:Object=null){ super(_arg1); _data = _arg2; } public function get data():Object{ return (_data); } override public function clone():Event{ return (new ControllerEvent(type, _data)); } } }//package com.bigwigmedia.mvc.events
Section 283
//EntityEvent (com.bigwigmedia.mvc.events.EntityEvent) package com.bigwigmedia.mvc.events { import flash.events.*; import com.bigwigmedia.mvc.*; public class EntityEvent extends EntityNativeEvent { private var _data:Object; public static const ADDED:String = "EntityEvent.added"; public static const UPDATE:String = "EntityEvent.update"; public static const REMOVED:String = "EntityEvent.removed"; public function EntityEvent(_arg1:String, _arg2:Object=null, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); _data = _arg2; } public function get data():Object{ return (_data); } override public function clone():Event{ return (new EntityEvent(type, _data, bubbles, cancelable)); } } }//package com.bigwigmedia.mvc.events
Section 284
//ComponentView (com.bigwigmedia.mvc.ComponentView) package com.bigwigmedia.mvc { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.core.*; public class ComponentView extends Sprite implements IDisposable { protected var _component:Component; public static var componentFactory:IComponentFactory; public function ComponentView(){ createComponent(); } protected function createComponent():void{ _component = componentFactory.create(this); addChild(_component); addEventListener(MouseEvent.CLICK, onMouseClickHandler); } protected function onMouseClick(_arg1:DisplayObject):void{ } public function dispose():void{ removeEventListener(MouseEvent.CLICK, onMouseClickHandler); removeChild(_component); _component.dispose(); _component = null; } private function onMouseClickHandler(_arg1:MouseEvent):void{ targetClicked(_arg1.target); } public function getComponentByName(_arg1:String):Component{ return (_component.getComponentByName(_arg1)); } protected function onComponentClick(_arg1:Component):void{ } protected function targetClicked(_arg1:Object):void{ var _local2:Component = (_arg1 as Component); if (((_local2) && (!((_local2 == _component))))){ onComponentClick(_local2); } else { onMouseClick(DisplayObject(_arg1)); }; } public function get component():Component{ return (_component); } } }//package com.bigwigmedia.mvc
Section 285
//DialogOption (com.bigwigmedia.mvc.DialogOption) package com.bigwigmedia.mvc { public class DialogOption { public static const NO:String = "no"; public static const RETRY:String = "retry"; public static const YES:String = "yes"; public static const IGNORE:String = "ignore"; public static const ABORT:String = "abort"; public static const NONE:String = "none"; public static const CANCEL:String = "cancel"; public static const OK:String = "ok"; } }//package com.bigwigmedia.mvc
Section 286
//DialogOwnerView (com.bigwigmedia.mvc.DialogOwnerView) package com.bigwigmedia.mvc { import flash.events.*; public class DialogOwnerView extends ComponentView { protected var _dialog:DialogView; protected function onDialogClose():void{ } protected function showDialog(_arg1:DialogView):void{ _dialog = _arg1; _dialog.addEventListener(Event.CLOSE, onDialogCloseHandler); addChild(_dialog); } override protected function targetClicked(_arg1:Object):void{ if (!_dialog){ super.targetClicked(_arg1); }; } private function onDialogCloseHandler(_arg1:Event):void{ if (_arg1.target == _dialog){ onDialogClose(); removeDialog(); }; } protected function removeDialog():void{ removeChild(_dialog); _dialog.dispose(); _dialog.removeEventListener(Event.CLOSE, onDialogCloseHandler); _dialog = null; } override public function dispose():void{ if (_dialog){ removeDialog(); }; super.dispose(); } } }//package com.bigwigmedia.mvc
Section 287
//DialogView (com.bigwigmedia.mvc.DialogView) package com.bigwigmedia.mvc { import flash.events.*; public class DialogView extends ComponentView { protected var _option:String; public function get option():String{ return (_option); } protected function dispatchCloseEvent(_arg1:String=null):void{ _option = _arg1; dispatchEvent(new Event(Event.CLOSE)); } } }//package com.bigwigmedia.mvc
Section 288
//Entity (com.bigwigmedia.mvc.Entity) package com.bigwigmedia.mvc { import com.bigwigmedia.mvc.events.*; import flash.events.*; import com.bigwigmedia.core.*; import com.bigwigmedia.utils.*; public class Entity extends EventDispatcher implements IUpdatable, IDisposable { protected var _parent:EntityContainer; public var name:String; private var _bubbleParent:EntityContainer; private static var idCount:int = 0; public function Entity(){ name = ((ClassUtil.getClassName(this) + "_") + idCount++); } override public function dispatchEvent(_arg1:Event):Boolean{ if (((_arg1.bubbles) && ((_arg1 is EntityNativeEvent)))){ return (dispatchEntityEvent(EntityNativeEvent(_arg1))); }; return (super.dispatchEvent(_arg1)); } public function get parent():EntityContainer{ return (_parent); } function setParent(_arg1:EntityContainer):void{ _parent = _arg1; if (_arg1){ _bubbleParent = _arg1; dispatchEntityEvent(new EntityEvent(EntityEvent.ADDED, null, true)); } else { dispatchEntityEvent(new EntityEvent(EntityEvent.REMOVED, null, true)); _bubbleParent = _arg1; }; } public function update(_arg1:Number):void{ } override public function toString():String{ return (name); } private function $dispatchEvent(_arg1:Event):Boolean{ return (super.dispatchEvent(_arg1)); } private function dispatchEntityEvent(_arg1:EntityNativeEvent):Boolean{ var _local3:EntityContainer; var _local4:EntityNativeEvent; var _local2:Boolean; if (hasEventListener(_arg1.type)){ _local2 = super.dispatchEvent(_arg1); }; if (_arg1.bubbles){ _local3 = _bubbleParent; while (((_local3) && (!(_arg1._stopped)))) { if (_local3.hasEventListener(_arg1.type)){ _local4 = (_arg1.clone() as EntityNativeEvent); _local4._target = this; _local4._canceled = _local2; _local4._eventPhase = EventPhase.BUBBLING_PHASE; _local3.$dispatchEvent(new EventContainer(_local4)); _local2 = _local4._canceled; }; _local3 = _local3._bubbleParent; }; }; return (_local2); } public function dispose():void{ } } }//package com.bigwigmedia.mvc import flash.events.*; class EventContainer extends Event { private var _event:Event; private static const TARGET:Object = new Object(); private function EventContainer(_arg1:EntityNativeEvent){ super(_arg1.type, _arg1.bubbles, _arg1.cancelable); _event = _arg1; } override public function get target():Object{ return (TARGET); } override public function clone():Event{ return (_event); } }
Section 289
//EntityContainer (com.bigwigmedia.mvc.EntityContainer) package com.bigwigmedia.mvc { public class EntityContainer extends Entity { protected var _children:Array; public function EntityContainer(){ _children = []; super(); } public function removeChildAt(_arg1:int):Entity{ if ((((_arg1 < 0)) || ((_arg1 >= _children.length)))){ throw (new RangeError("The supplied index is out of bounds.")); }; var _local2:Entity = _children.splice(_arg1, 1)[0]; _local2.setParent(null); return (_local2); } public function getChildIndex(_arg1:Entity):int{ if (_arg1.parent != this){ throw (new ArgumentError((("Supplied entity " + _arg1.toString()) + " is not a child."))); }; return (_children.indexOf(_arg1)); } public function get numChildren():int{ return (_children.length); } override public function dispose():void{ var _local1:Entity; while (_children.length > 0) { _local1 = _children.pop(); _local1.setParent(null); _local1.dispose(); }; } public function removeChild(_arg1:Entity):Entity{ return (removeChildAt(getChildIndex(_arg1))); } public function removeLastChild():Entity{ if (_children.length == 0){ throw (RangeError("No child to remove.")); }; var _local1:Entity = _children.pop(); _local1.setParent(null); return (_local1); } public function addChild(_arg1:Entity):Entity{ if (_arg1.parent == this){ return (_arg1); }; if (_arg1 == this){ throw (new ArgumentError((("Entity " + _arg1.toString()) + " can't be added as a child of itself."))); }; if (_arg1.parent){ throw (new ArgumentError((("Entity " + _arg1.toString()) + " can't be added as a child twice."))); }; _children.push(_arg1); _arg1.setParent(this); return (_arg1); } public function getChildByName(_arg1:String):Entity{ var _local2:Entity; for each (_local2 in _children) { if (_local2.name == _arg1){ return (_local2); }; }; return (null); } } }//package com.bigwigmedia.mvc
Section 290
//EntityNativeEvent (com.bigwigmedia.mvc.EntityNativeEvent) package com.bigwigmedia.mvc { import flash.events.*; public class EntityNativeEvent extends Event { var _eventPhase:uint; var _stopped:Boolean;// = false var _target:Object; var _canceled:Boolean;// = false public function EntityNativeEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function get eventPhase():uint{ return (((_eventPhase) || (super.eventPhase))); } override public function isDefaultPrevented():Boolean{ return (_canceled); } override public function clone():Event{ return (new EntityNativeEvent(type, bubbles, cancelable)); } override public function preventDefault():void{ if (cancelable){ _canceled = true; }; } override public function stopPropagation():void{ _stopped = true; } override public function get target():Object{ return (((_target) || (super.target))); } override public function stopImmediatePropagation():void{ super.stopImmediatePropagation(); _stopped = true; } } }//package com.bigwigmedia.mvc
Section 291
//IComponentFactory (com.bigwigmedia.mvc.IComponentFactory) package com.bigwigmedia.mvc { import com.bigwigmedia.ui.*; public interface IComponentFactory { function create(_arg1:ComponentView):Component; } }//package com.bigwigmedia.mvc
Section 292
//IController (com.bigwigmedia.mvc.IController) package com.bigwigmedia.mvc { import flash.display.*; import flash.events.*; import com.bigwigmedia.core.*; public interface IController extends IEventDispatcher, IDisposable { function get view():DisplayObject; } }//package com.bigwigmedia.mvc
Section 293
//ISOManager (com.bigwigmedia.net.ISOManager) package com.bigwigmedia.net { import flash.events.*; public interface ISOManager extends IEventDispatcher { function flush(_arg1:int=0):String; function get dataEmpty():Boolean; function getValue(_arg1:String); function clear():void; function setValue(_arg1:String, _arg2):void; } }//package com.bigwigmedia.net
Section 294
//IURLCaller (com.bigwigmedia.net.IURLCaller) package com.bigwigmedia.net { public interface IURLCaller { function submitScore(_arg1:Object):void; function mainLink():void; function viewScores():void; function playMoreGames():void; function getURL(_arg1:String, _arg2:String="_blank"):void; function downloadGame():void; function getGame():void; } }//package com.bigwigmedia.net
Section 295
//SOManager (com.bigwigmedia.net.SOManager) package com.bigwigmedia.net { import flash.events.*; import com.bigwigmedia.core.*; import com.bigwigmedia.utils.*; import flash.net.*; public class SOManager extends EventDispatcher implements ISOManager { private var dataObject:Object; private var so:SharedObject; public function SOManager(){ super(); Singleton.checkInstance(this); try { so = SharedObject.getLocal(Globals.application.info.sharedObjectName, Globals.application.info.sharedObjectPath); so.addEventListener(NetStatusEvent.NET_STATUS, onNetStatusEventHandler); dataObject = so.data; } catch(e:Error) { dataObject = {}; }; } private function onNetStatusEventHandler(_arg1:NetStatusEvent):void{ dispatchEvent(_arg1.clone()); } public function getValue(_arg1:String){ return (dataObject[_arg1]); } public function get dataEmpty():Boolean{ var _local1:Boolean = ObjectUtil.hasProperties(dataObject); return (!(_local1)); } public function flush(_arg1:int=0):String{ if (so){ return (so.flush(_arg1)); }; return (SharedObjectFlushStatus.FLUSHED); } public function clear():void{ var _local1:String; if (so){ for (_local1 in dataObject) { delete dataObject[_local1]; }; so.clear(); } else { dataObject = {}; }; } public function setValue(_arg1:String, _arg2):void{ if (_arg2 === undefined){ delete dataObject[_arg1]; } else { dataObject[_arg1] = _arg2; }; } } }//package com.bigwigmedia.net
Section 296
//URLCaller_2DPlay (com.bigwigmedia.net.URLCaller_2DPlay) package com.bigwigmedia.net { import com.bigwigmedia.core.*; import com.adobe.crypto.*; import flash.net.*; public class URLCaller_2DPlay implements IURLCaller { private var applicationID:String; public function URLCaller_2DPlay(){ Singleton.checkInstance(this); applicationID = Globals.application.info.id; } public function submitScore(_arg1:Object):void{ var _local2:String = MD5.hash((((("gameid=" + applicationID) + "&hiscore=") + _arg1.toString()) + "2DPlay.com/")); var _local3:String = ((((("http://www.2DPlay.com/highscores.php?gameid=" + applicationID) + "&hiscore=") + _arg1.toString()) + "&hash=") + _local2); getURL(_local3); } public function viewScores():void{ getURL(("http://www.2Dplay.com/showscores.php?gameid=" + applicationID)); } public function getGame():void{ getURL("http://www.2DPlay.com/freecontent.htm"); } public function mainLink():void{ getURL(("http://www.2DPlay.com/index.php?gameid=" + applicationID)); } public function playMoreGames():void{ getURL(("http://www.2DPlay.com/index.php?gameid=" + applicationID)); } public function getURL(_arg1:String, _arg2:String="_blank"):void{ navigateToURL(new URLRequest(_arg1), _arg2); } public function downloadGame():void{ getURL(("http://www.2DPlay.com/downloadgame.php?gameid=" + applicationID)); } } }//package com.bigwigmedia.net
Section 297
//AbstractPreloader (com.bigwigmedia.preloaders.AbstractPreloader) package com.bigwigmedia.preloaders { import flash.display.*; import com.bigwigmedia.core.*; public class AbstractPreloader extends Sprite implements IDisposable { public function get percentLoaded():Number{ if (!root){ return (0); }; var _local1:uint = root.loaderInfo.bytesLoaded; var _local2:uint = root.loaderInfo.bytesTotal; if (_local2 == 0){ return (((_local1 > 0)) ? 1 : 0); }; return ((_local1 / _local2)); } public function dispose():void{ } } }//package com.bigwigmedia.preloaders
Section 298
//EmptyPreloader (com.bigwigmedia.preloaders.EmptyPreloader) package com.bigwigmedia.preloaders { import flash.events.*; import com.bigwigmedia.events.*; import flash.utils.*; public class EmptyPreloader extends AbstractPreloader { private var timer:Timer; public function EmptyPreloader(){ timer = new Timer(100); timer.addEventListener(TimerEvent.TIMER, onTimerEventHandler); timer.start(); } private function onTimerEventHandler(_arg1:TimerEvent):void{ if (percentLoaded == 1){ timer.stop(); timer.removeEventListener(TimerEvent.TIMER, onTimerEventHandler); timer = null; dispatchEvent(new PreloaderEvent(PreloaderEvent.COMPLETE, 1)); }; } } }//package com.bigwigmedia.preloaders
Section 299
//Channel (com.bigwigmedia.sound.Channel) package com.bigwigmedia.sound { import com.bigwigmedia.events.*; import com.bigwigmedia.tweens.*; public class Channel { private var _tween:ITween; private var _transitionVolume:Number;// = 1 private var _recordsHash:Object; private var _volume:Number;// = 1 private var _pan:Number;// = 0 public function Channel(){ _recordsHash = new Object(); super(); } private function setTransitionVolume(_arg1:Number):void{ var _local2:Record; _transitionVolume = _arg1; for each (_local2 in _recordsHash) { _local2.volume = _arg1; }; } public function set pan(_arg1:Number):void{ var _local2:Record; _pan = _arg1; for each (_local2 in _recordsHash) { _local2.channelPan = _pan; }; } public function stop():void{ var _local1:Record; stopTween(); for each (_local1 in _recordsHash) { _local1.stop(); }; } private function onTweenCompleteHandler(_arg1:TweenEvent):void{ stopTween(); } public function playNextSound(_arg1:String, _arg2:int, _arg3:Number, _arg4:Number):void{ stopTween(); if (playing){ _tween = new SequenceTween([new SetterTween(this, setTransitionVolume, _transitionVolume, 0, _arg3), new Action(this, _playNextSound, [_arg1, _arg2]), new SetterTween(this, setTransitionVolume, 0, 1, _arg4)]); } else { setTransitionVolume(0); _tween = new SequenceTween([new Action(this, _playNextSound, [_arg1, _arg2]), new SetterTween(this, setTransitionVolume, 0, 1, _arg4)]); }; _tween.addEventListener(TweenEvent.COMPLETE, onTweenCompleteHandler); _tween.playAuto(); } private function stopTween():void{ if (_tween){ _tween.removeEventListener(TweenEvent.COMPLETE, onTweenCompleteHandler); _tween.dispose(); _tween = null; }; } private function _playNextSound(_arg1:String, _arg2:int):void{ var _local3:Record; for each (_local3 in _recordsHash) { _local3.stop(); }; if (_arg1){ _recordsHash[_arg1].play(_arg2); }; } public function set volume(_arg1:Number):void{ var _local2:Record; _volume = _arg1; for each (_local2 in _recordsHash) { _local2.channelVolume = _volume; }; } public function get playing():Boolean{ var _local1:Record; for each (_local1 in _recordsHash) { if (_local1.playing){ return (true); }; }; return (false); } public function unregisterSound(_arg1:String):void{ var _local2:Record = _recordsHash[_arg1]; if (_local2){ stopTween(); _local2.dispose(); delete _recordsHash[_arg1]; }; } public function registerSound(_arg1:String, _arg2:Record):void{ if (!_recordsHash[_arg1]){ _arg2.channelVolume = _volume; _arg2.channelPan = _pan; _recordsHash[_arg1] = _arg2; }; } } }//package com.bigwigmedia.sound
Section 300
//ISoundManager (com.bigwigmedia.sound.ISoundManager) package com.bigwigmedia.sound { public interface ISoundManager { function stopChannel(_arg1:String):void; function stop(_arg1:String):void; function registerRecord(_arg1:String, _arg2:Class, _arg3:String="default_channel"):void; function getChannel(_arg1:String):Channel; function playNext(_arg1:String, _arg2:String=null, _arg3:int=1, _arg4:Number=60, _arg5:Number=60):void; function setAllChannelsVolume(_arg1:Number):void; function setPan(_arg1:String, _arg2:Number):void; function playSingle(_arg1:String, _arg2:int=1):Boolean; function unregisterRecord(_arg1:String):void; function getRecord(_arg1:String):Record; function play(_arg1:String, _arg2:int=1):void; function setVolume(_arg1:String, _arg2:Number):void; function set masterVolume(_arg1:Number):void; function setChannelVolume(_arg1:String, _arg2:Number):void; function setChannelPan(_arg1:String, _arg2:Number):void; function get masterVolume():Number; function stopAll():void; } }//package com.bigwigmedia.sound
Section 301
//Record (com.bigwigmedia.sound.Record) package com.bigwigmedia.sound { import flash.events.*; import flash.utils.*; import flash.media.*; import com.bigwigmedia.core.*; public class Record implements IDisposable { private var _volume:Number;// = 1 private var _soundTransform:SoundTransform; private var _sound:Sound; private var _pan:Number;// = 0 private var _playing:Boolean;// = false private var _channels:Dictionary; private var _numChannelsPlaying:int;// = 0 private var _channelPan:Number;// = 0 private var _masterVolume:Number;// = 1 private var _channelVolume:Number;// = 1 public function Record(_arg1:Sound){ _soundTransform = new SoundTransform(); _channels = new Dictionary(); super(); _sound = _arg1; } private function onCompleteHandler(_arg1:Event):void{ var _local2:SoundChannel = SoundChannel(_arg1.target); _local2.removeEventListener(Event.SOUND_COMPLETE, onCompleteHandler); delete _channels[_local2]; if (--_numChannelsPlaying == 0){ _playing = false; }; } public function stop():void{ var _local1:SoundChannel; if (_playing){ for each (_local1 in _channels) { _local1.stop(); _local1.removeEventListener(Event.SOUND_COMPLETE, onCompleteHandler); delete _channels[_local1]; }; _numChannelsPlaying = 0; _playing = false; }; } public function set pan(_arg1:Number):void{ _pan = _arg1; setResultTransform(); } public function set volume(_arg1:Number):void{ _volume = _arg1; setResultTransform(); } private function setResultTransform():void{ var _local3:SoundChannel; var _local1:Number = (_pan + _channelPan); if (_local1 < -1){ _local1 = -1; } else { if (_local1 > 1){ _local1 = 1; }; }; _soundTransform.pan = _local1; var _local2:Number = (_volume * _channelVolume); _soundTransform.volume = ((_local2 > _masterVolume)) ? _masterVolume : _local2; if (_playing){ for each (_local3 in _channels) { _local3.soundTransform = _soundTransform; }; }; } function set channelPan(_arg1:Number):void{ _channelPan = _arg1; setResultTransform(); } public function get volume():Number{ return (_volume); } public function playSingle(_arg1:int):Boolean{ if (_playing){ return (false); }; play(_arg1); return (true); } public function get pan():Number{ return (_pan); } public function dispose():void{ stop(); _sound = null; _soundTransform = null; } public function play(_arg1:int):void{ var _local2:SoundChannel = _sound.play(0, _arg1, _soundTransform); _local2.addEventListener(Event.SOUND_COMPLETE, onCompleteHandler); _channels[_local2] = _local2; _numChannelsPlaying++; _playing = true; } public function get playing():Boolean{ return (_playing); } function set channelVolume(_arg1:Number):void{ _channelVolume = _arg1; setResultTransform(); } function set masterVolume(_arg1:Number):void{ _masterVolume = _arg1; if (_masterVolume < 0){ _masterVolume = 0; } else { if (_masterVolume > 1){ _masterVolume = 1; }; }; setResultTransform(); } } }//package com.bigwigmedia.sound
Section 302
//SoundManager (com.bigwigmedia.sound.SoundManager) package com.bigwigmedia.sound { import com.bigwigmedia.core.*; public class SoundManager implements ISoundManager { private var channelsHash:Object; private var _maxVolume:Number;// = 1 private var recordsHash:Object; public function SoundManager(){ channelsHash = {}; recordsHash = {}; super(); Singleton.checkInstance(this); } public function stop(_arg1:String):void{ var _local2:Record = recordsHash[_arg1]; _local2.stop(); } public function play(_arg1:String, _arg2:int=1):void{ var _local3:Record = recordsHash[_arg1]; _local3.play(_arg2); } public function playNext(_arg1:String, _arg2:String=null, _arg3:int=1, _arg4:Number=60, _arg5:Number=60):void{ var _local6:Channel = channelsHash[_arg1]; _local6.playNextSound(_arg2, _arg3, _arg4, _arg5); } public function getChannel(_arg1:String):Channel{ return (channelsHash[_arg1]); } public function setAllChannelsVolume(_arg1:Number):void{ var _local2:Channel; for each (_local2 in channelsHash) { _local2.volume = _arg1; }; } public function getRecord(_arg1:String):Record{ return (recordsHash[_arg1]); } public function registerRecord(_arg1:String, _arg2:Class, _arg3:String="default_channel"):void{ if (recordsHash[_arg1]){ throw (new Error((("Record with \"" + _arg1) + "\" identifier already exists."))); }; var _local4:Channel = channelsHash[_arg3]; if (!_local4){ _local4 = new Channel(); channelsHash[_arg3] = _local4; }; var _local5:Record = new Record(new (_arg2)); recordsHash[_arg1] = _local5; _local4.registerSound(_arg1, _local5); } public function stopChannel(_arg1:String):void{ var _local2:Channel = channelsHash[_arg1]; _local2.stop(); } public function setVolume(_arg1:String, _arg2:Number):void{ var _local3:Record = recordsHash[_arg1]; _local3.volume = _arg2; } public function playSingle(_arg1:String, _arg2:int=1):Boolean{ var _local3:Record = recordsHash[_arg1]; return (_local3.playSingle(_arg2)); } public function setPan(_arg1:String, _arg2:Number):void{ var _local3:Record = recordsHash[_arg1]; _local3.pan = _arg2; } public function setChannelPan(_arg1:String, _arg2:Number):void{ var _local3:Channel = channelsHash[_arg1]; _local3.pan = _arg2; } public function unregisterRecord(_arg1:String):void{ var _local2:Channel; if (!recordsHash[_arg1]){ throw (new Error((("Record with \"" + _arg1) + "\" identifier doesn't exist."))); }; for each (_local2 in channelsHash) { _local2.unregisterSound(_arg1); }; delete recordsHash[_arg1]; } public function get masterVolume():Number{ return (_maxVolume); } public function set masterVolume(_arg1:Number):void{ var _local2:Record; _maxVolume = _arg1; for each (_local2 in recordsHash) { _local2.masterVolume = _arg1; }; } public function setChannelVolume(_arg1:String, _arg2:Number):void{ var _local3:Channel = channelsHash[_arg1]; _local3.volume = _arg2; } public function stopAll():void{ var _local1:Record; for each (_local1 in recordsHash) { _local1.stop(); }; } } }//package com.bigwigmedia.sound
Section 303
//HSMError (com.bigwigmedia.stateMachine.errors.HSMError) package com.bigwigmedia.stateMachine.errors { public class HSMError extends Error { public function HSMError(_arg1:String=""){ super(_arg1); } } }//package com.bigwigmedia.stateMachine.errors
Section 304
//HSMEvent (com.bigwigmedia.stateMachine.events.HSMEvent) package com.bigwigmedia.stateMachine.events { import com.bigwigmedia.stateMachine.*; import flash.events.*; public class HSMEvent extends Event { private var _state:AbstractState; private var _event:AbstractEvent; public static const COMPLETE:String = "HSMEvent.complete"; public static const START:String = "HSMEvent.start"; public static const EVENT_RECIEVE:String = "HSMEvent.eventRecieve"; public static const STATE_CHANGE:String = "HSMEvent.stateChange"; public function HSMEvent(_arg1:String, _arg2:AbstractState=null, _arg3:AbstractEvent=null){ super(_arg1); _state = _arg2; _event = _arg3; } public function get state():AbstractState{ return (_state); } public function get event():AbstractEvent{ return (_event); } override public function toString():String{ return (formatToString("HSMEvent", "type", "state", "event")); } override public function clone():Event{ return (new HSMEvent(type, _state, _event)); } } }//package com.bigwigmedia.stateMachine.events
Section 305
//StateEvent (com.bigwigmedia.stateMachine.events.StateEvent) package com.bigwigmedia.stateMachine.events { import flash.events.*; public class StateEvent extends Event { private var _data:Object; public static const ADDED_TRIGGER:String = "StateEvent.addedTrigger"; public static const DEACTIVATE:String = "StateEvent.deactivate"; public function StateEvent(_arg1:String, _arg2:Object=null){ super(_arg1); _data = _arg2; } public function get data():Object{ return (_data); } override public function clone():Event{ return (new StateEvent(type, _data)); } } }//package com.bigwigmedia.stateMachine.events
Section 306
//TriggerEvent (com.bigwigmedia.stateMachine.events.TriggerEvent) package com.bigwigmedia.stateMachine.events { import com.bigwigmedia.stateMachine.*; import flash.events.*; public class TriggerEvent extends Event { private var _raisedEvent:AbstractEvent; public static const TRIGGER:String = "TriggerEvent.trigger"; public function TriggerEvent(_arg1:String, _arg2:AbstractEvent){ super(_arg1); _raisedEvent = _arg2; } public function get raisedEvent():AbstractEvent{ return (_raisedEvent); } override public function clone():Event{ return (new TriggerEvent(type, _raisedEvent)); } } }//package com.bigwigmedia.stateMachine.events
Section 307
//AbstractEvent (com.bigwigmedia.stateMachine.AbstractEvent) package com.bigwigmedia.stateMachine { import com.bigwigmedia.utils.*; public class AbstractEvent { var _triggerID:int; public function toString():String{ return (ObjectUtil.formatToString(this)); } } }//package com.bigwigmedia.stateMachine
Section 308
//AbstractState (com.bigwigmedia.stateMachine.AbstractState) package com.bigwigmedia.stateMachine { import flash.events.*; import com.bigwigmedia.stateMachine.events.*; import com.bigwigmedia.core.*; import com.bigwigmedia.utils.*; import com.bigwigmedia.stateMachine.errors.*; public class AbstractState extends EventDispatcher implements IUpdatable, IDisposable { private var _id:int; public var name:String; private var _parent:CompositeState; private var updatableTriggers:Array; private var _active:Boolean;// = false private var _owned:Boolean;// = false protected var transitionsList:Array; private static var idCount:int = 0; public function AbstractState(){ transitionsList = []; updatableTriggers = []; super(); _id = idCount++; name = ("State_" + _id); } function setParent(_arg1:CompositeState):void{ _parent = _arg1; } public function update(_arg1:Number):void{ var _local2:IUpdatable; for each (_local2 in updatableTriggers) { _local2.update(_arg1); }; } public function get id():int{ return (_id); } public function isAncestor(_arg1:AbstractState):Boolean{ var _local2:AbstractState = _parent; while (_local2) { if (_local2 == _arg1){ return (true); }; _local2 = _local2.parent; }; return (false); } function setOwned(_arg1:Boolean):void{ _owned = _arg1; } public function get parent():CompositeState{ return (_parent); } override public function toString():String{ return (ObjectUtil.formatToString(this, "name")); } public function addTransition(_arg1:AbstractState, _arg2:AbstractTrigger=null, _arg3:Function=null, _arg4:Function=null):void{ var _local6:Transition; _arg2 = ((_arg2) || (new EmptyTrigger())); var _local5:Transition = new Transition(this, _arg1, _arg2, _arg3, _arg4); for each (_local6 in transitionsList) { if (_local6.conflicts(_local5)){ throw (new HSMError((("State " + this.toString()) + " have conflicting outgoing transitions."))); }; }; transitionsList.push(_local5); if ((_arg2 is IUpdatable)){ updatableTriggers.push(_arg2); }; dispatchEvent(new StateEvent(StateEvent.ADDED_TRIGGER, _arg2)); } public function getActiveTransition(_arg1:AbstractEvent):Transition{ var _local4:Transition; var _local2:int = transitionsList.length; var _local3:int; while (_local3 < _local2) { _local4 = transitionsList[_local3]; if (_local4.willFire(_arg1)){ return (_local4); }; _local3++; }; return (null); } public function dispose():void{ var _local1:Transition; deactivate(null); for each (_local1 in transitionsList) { _local1.dispose(); }; transitionsList = []; updatableTriggers = []; _parent = null; } public function getTransitionLevel(_arg1:AbstractState):String{ if (this == _arg1){ return (TransitionLevel.TO_SELF); }; if (this.parent == _arg1.parent){ return (TransitionLevel.TO_SIBLING); }; if (this.isAncestor(_arg1)){ return (TransitionLevel.TO_ANCESTOR); }; if (_arg1.isAncestor(this)){ return (TransitionLevel.TO_DESCENDANT); }; return (TransitionLevel.TO_IRRELATIVE); } public function activate(_arg1:AbstractEvent):void{ var _local2:Transition; _active = true; for each (_local2 in transitionsList) { _local2.trigger.activate(); }; } public function deactivate(_arg1:AbstractEvent):void{ var _local2:Transition; _active = false; for each (_local2 in transitionsList) { _local2.trigger.deactivate(); }; dispatchEvent(new StateEvent(StateEvent.DEACTIVATE)); } public function get owned():Boolean{ return (_owned); } } }//package com.bigwigmedia.stateMachine
Section 309
//AbstractTrigger (com.bigwigmedia.stateMachine.AbstractTrigger) package com.bigwigmedia.stateMachine { import flash.events.*; import com.bigwigmedia.core.*; public class AbstractTrigger extends EventDispatcher implements IDisposable { protected var _id:int; private static var idCount:int = 0; public function AbstractTrigger(){ _id = idCount++; } function activate():void{ } public function dispose():void{ } public function willFire(_arg1:AbstractEvent):Boolean{ throw (new Error("Method must be overriden in subclass.")); } function deactivate():void{ } public function equals(_arg1:AbstractTrigger):Boolean{ throw (new Error("Method must be overriden in subclass.")); } } }//package com.bigwigmedia.stateMachine
Section 310
//ChoiceState (com.bigwigmedia.stateMachine.ChoiceState) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.errors.*; public class ChoiceState extends AbstractState { override public function addTransition(_arg1:AbstractState, _arg2:AbstractTrigger=null, _arg3:Function=null, _arg4:Function=null):void{ if (((_arg2) && (!((_arg2 is EmptyTrigger))))){ throw (new HSMError("Transition from ChoiceState may not have a trigger.")); }; super.addTransition(_arg1, _arg2, _arg3, _arg4); } } }//package com.bigwigmedia.stateMachine
Section 311
//CompositeState (com.bigwigmedia.stateMachine.CompositeState) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.events.*; import com.bigwigmedia.stateMachine.errors.*; public class CompositeState extends SimpleState { private var substatesList:Array; private var _initialState:InitialState; private var _lastActiveState:AbstractState; private var hasHistoryState:Boolean;// = false public function CompositeState(_arg1:Function=null, _arg2:Function=null, _arg3:Function=null){ substatesList = []; super(_arg1, _arg2, _arg3); } private function onStateDeactivateHandler(_arg1:StateEvent):void{ if (hasHistoryState){ _lastActiveState = (_arg1.target as AbstractState); }; } public function get initial():InitialState{ return (_initialState); } public function addState(_arg1:AbstractState):AbstractState{ if (_arg1.owned){ throw (new HSMError("State can't be added twice.")); }; if ((_arg1 is InitialState)){ if (_initialState){ throw (new HSMError("CompositeState can have at most one InitialState.")); }; _initialState = (_arg1 as InitialState); } else { if ((_arg1 is HistoryState)){ if (hasHistoryState){ throw (new HSMError("CompositeState can have at most one HistoryState.")); }; hasHistoryState = true; }; }; _arg1.addEventListener(StateEvent.ADDED_TRIGGER, onAddedTriggerHandler); _arg1.addEventListener(StateEvent.DEACTIVATE, onStateDeactivateHandler); substatesList.push(_arg1); _arg1.setParent(this); _arg1.setOwned(true); return (_arg1); } private function onAddedTriggerHandler(_arg1:StateEvent):void{ dispatchEvent(_arg1.clone()); } public function get history():AbstractState{ return (((_lastActiveState) || (_initialState))); } override public function dispose():void{ var _local1:AbstractState; for each (_local1 in substatesList) { _local1.removeEventListener(StateEvent.DEACTIVATE, onStateDeactivateHandler); _local1.removeEventListener(StateEvent.ADDED_TRIGGER, onAddedTriggerHandler); _local1.dispose(); }; substatesList = []; _initialState = null; _lastActiveState = null; super.dispose(); } } }//package com.bigwigmedia.stateMachine
Section 312
//EmptyEvent (com.bigwigmedia.stateMachine.EmptyEvent) package com.bigwigmedia.stateMachine { public class EmptyEvent extends AbstractEvent { } }//package com.bigwigmedia.stateMachine
Section 313
//EmptyTrigger (com.bigwigmedia.stateMachine.EmptyTrigger) package com.bigwigmedia.stateMachine { public class EmptyTrigger extends AbstractTrigger { override public function willFire(_arg1:AbstractEvent):Boolean{ return ((_arg1 is EmptyEvent)); } override public function equals(_arg1:AbstractTrigger):Boolean{ return ((_arg1 is EmptyTrigger)); } } }//package com.bigwigmedia.stateMachine
Section 314
//FinalState (com.bigwigmedia.stateMachine.FinalState) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.errors.*; public class FinalState extends SimpleState { override public function addTransition(_arg1:AbstractState, _arg2:AbstractTrigger=null, _arg3:Function=null, _arg4:Function=null):void{ throw (new HSMError("FinalState can't have any outgoing transitions.")); } } }//package com.bigwigmedia.stateMachine
Section 315
//FSM (com.bigwigmedia.stateMachine.FSM) package com.bigwigmedia.stateMachine { import flash.events.*; import com.bigwigmedia.stateMachine.events.*; import com.bigwigmedia.stateMachine.errors.*; public class FSM extends EventDispatcher implements IStateMachine { protected var statesList:Array; protected var started:Boolean;// = false protected var completed:Boolean;// = false protected var currentState:AbstractState; protected var inTransition:Boolean;// = false protected var eventsQueue:Array; public function FSM(){ statesList = []; eventsQueue = []; super(); } public function update(_arg1:Number):void{ currentState.update(_arg1); } protected function doTransition():void{ var _local1:AbstractEvent; var _local2:Transition; if (((inTransition) || ((eventsQueue.length == 0)))){ return; }; inTransition = true; while (eventsQueue.length > 0) { _local1 = eventsQueue.shift(); _local2 = currentState.getActiveTransition(_local1); if (_local2){ currentState = _local2.target; _local2.source.deactivate(_local1); _local2.invokeEffect(_local1); _local2.target.activate(_local1); dispatchEvent(new HSMEvent(HSMEvent.STATE_CHANGE, currentState, _local1)); if ((((currentState is FinalState)) && (!(currentState.parent)))){ completed = true; dispatchEvent(new HSMEvent(HSMEvent.COMPLETE, currentState, _local1)); break; }; sendEvent(new EmptyEvent()); }; }; inTransition = false; } public function sendSignal(_arg1:String, _arg2:Object=null):void{ sendEvent(new SignalEvent(_arg1, _arg2)); } public function dispose():void{ var _local1:AbstractState; for each (_local1 in statesList) { _local1.removeEventListener(StateEvent.ADDED_TRIGGER, onAddedTriggerHandler); _local1.dispose(); }; statesList = []; currentState = null; started = false; } public function start():void{ if (started){ return; }; if (!currentState){ throw (new HSMError("InitialState doesn't exist or is not immediate state of state machine.")); }; started = true; dispatchEvent(new HSMEvent(HSMEvent.START)); sendEvent(new EmptyEvent()); } protected function stateAdded(_arg1:AbstractState):void{ _arg1.addEventListener(StateEvent.ADDED_TRIGGER, onAddedTriggerHandler); statesList.push(_arg1); _arg1.setOwned(true); } public function addState(_arg1:AbstractState):AbstractState{ if (_arg1.owned){ throw (new HSMError("State can't be added twice.")); }; if ((_arg1 is CompositeState)){ throw (new HSMError("FSM cannot have composite states.")); }; if ((_arg1 is HistoryState)){ throw (new HSMError("State machine can't have any HistoryState.")); }; if ((_arg1 is InitialState)){ if (currentState){ throw (new HSMError("State machine can have at most one InitialState.")); }; currentState = (_arg1 as InitialState); }; stateAdded(_arg1); return (_arg1); } private function onTriggerHandler(_arg1:TriggerEvent):void{ sendEvent(_arg1.raisedEvent); } protected function sendEvent(_arg1:AbstractEvent):void{ if (!started){ throw (new HSMError("State machine is not started.")); }; dispatchEvent(new HSMEvent(HSMEvent.EVENT_RECIEVE, currentState, _arg1)); if (!completed){ eventsQueue.push(_arg1); doTransition(); }; } private function onAddedTriggerHandler(_arg1:StateEvent):void{ var _local2:AbstractTrigger = (_arg1.data as AbstractTrigger); _local2.addEventListener(TriggerEvent.TRIGGER, onTriggerHandler); } } }//package com.bigwigmedia.stateMachine
Section 316
//HistoryState (com.bigwigmedia.stateMachine.HistoryState) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.errors.*; public class HistoryState extends AbstractState { override public function addTransition(_arg1:AbstractState, _arg2:AbstractTrigger=null, _arg3:Function=null, _arg4:Function=null):void{ if (transitionsList.length == 1){ throw (new HSMError("HistoryState can have at most one outgoing transition.")); }; if (((_arg2) && (!((_arg2 is EmptyTrigger))))){ throw (new HSMError("Transition from HistoryState may not have a trigger.")); }; super.addTransition(_arg1, _arg2, _arg3, _arg4); } } }//package com.bigwigmedia.stateMachine
Section 317
//HSM (com.bigwigmedia.stateMachine.HSM) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.events.*; import com.bigwigmedia.stateMachine.errors.*; public class HSM extends FSM { private var stateChanged:Boolean;// = false private var routesHash:Object; private var activeStates:Array; public function HSM(){ activeStates = []; routesHash = {}; super(); } override protected function doTransition():void{ var _local1:AbstractEvent; var _local2:Transition; var _local3:int; var _local4:int; var _local5:AbstractState; var _local6:Array; var _local7:Array; var _local8:int; var _local9:int; var _local10:int; var _local11:int; if (((inTransition) || ((eventsQueue.length == 0)))){ return; }; inTransition = true; while (eventsQueue.length > 0) { _local1 = eventsQueue.shift(); _local3 = activeStates.length; _local4 = 0; while (_local4 < _local3) { _local2 = activeStates[_local4].getActiveTransition(_local1); if (_local2){ break; }; _local4++; }; if (_local2){ _local5 = _local2.target; if ((_local5 is CompositeState)){ _local5 = ((CompositeState(_local5).initial) || (_local5)); } else { if ((_local5 is HistoryState)){ _local5 = _local5.parent.history; }; }; _local6 = getExitRoute(currentState, _local5); _local7 = getEntryRoute(currentState, _local5); activeStates = getStack(_local7[(_local7.length - 1)]); currentState = activeStates[0]; _local8 = _local6.length; _local9 = 0; while (_local9 < _local8) { _local6[_local9].deactivate(_local1); _local9++; }; _local2.invokeEffect(_local1); _local10 = _local7.length; _local11 = 0; while (_local11 < _local10) { _local7[_local11].activate(_local1); _local11++; }; stateChanged = true; dispatchEvent(new HSMEvent(HSMEvent.STATE_CHANGE, currentState, _local1)); if ((((currentState is FinalState)) && (!(currentState.parent)))){ completed = true; dispatchEvent(new HSMEvent(HSMEvent.COMPLETE, currentState, _local1)); break; }; sendEvent(new EmptyEvent()); }; }; inTransition = false; } override public function update(_arg1:Number):void{ var _local2:int = activeStates.length; var _local3:int; while (_local3 < _local2) { AbstractState(activeStates[_local3]).update(_arg1); if (stateChanged){ stateChanged = false; return; }; _local3++; }; } private function getEntryRoute(_arg1:AbstractState, _arg2:AbstractState):Array{ var _local5:AbstractState; var _local3:String = ((_arg1.id + "->") + _arg2.id); var _local4:Array = routesHash[_local3]; if (_local4){ return (_local4); }; _local4 = []; var _local6:String = _arg1.getTransitionLevel(_arg2); switch (_local6){ case TransitionLevel.TO_SELF: case TransitionLevel.TO_SIBLING: _local4.push(_arg2); break; case TransitionLevel.TO_ANCESTOR: _local5 = _arg1.parent; while (true) { _local4.push(_local5); if (_local5 == _arg2){ break; }; _local5 = _local5.parent; }; break; case TransitionLevel.TO_IRRELATIVE: _local5 = _arg2; while (true) { _local4.push(_local5); if (((!(_local5.parent)) || ((_local5.parent == _arg1.parent)))){ break; }; _local5 = _local5.parent; }; _local4.reverse(); break; case TransitionLevel.TO_DESCENDANT: _local4 = getStack(_arg2).slice(); _local4 = _local4.splice(0, _local4.indexOf(_arg1)); _local4.reverse(); break; }; routesHash[_local3] = _local4; return (_local4); } override public function dispose():void{ routesHash = {}; activeStates = []; super.dispose(); } private function getExitRoute(_arg1:AbstractState, _arg2:AbstractState):Array{ var _local5:AbstractState; var _local3:String = ((_arg1.id + "<-") + _arg2.id); var _local4:Array = routesHash[_local3]; if (_local4){ return (_local4); }; _local4 = []; var _local6:String = _arg1.getTransitionLevel(_arg2); switch (_local6){ case TransitionLevel.TO_SELF: case TransitionLevel.TO_SIBLING: _local4.push(_arg1); break; case TransitionLevel.TO_ANCESTOR: _local5 = _arg1; while (_local5 != _arg2) { _local4.push(_local5); _local5 = _local5.parent; }; break; case TransitionLevel.TO_DESCENDANT: break; case TransitionLevel.TO_IRRELATIVE: _local5 = _arg1; while (true) { _local4.push(_local5); if (((!(_local5.parent)) || ((_local5.parent == _arg2.parent)))){ break; }; _local5 = _local5.parent; }; break; }; routesHash[_local3] = _local4; return (_local4); } override public function addState(_arg1:AbstractState):AbstractState{ if (_arg1.owned){ throw (new HSMError("State can't be added twice.")); }; if ((_arg1 is InitialState)){ if (currentState){ throw (new HSMError("State machine can have at most one InitialState.")); }; activeStates = [_arg1]; currentState = _arg1; } else { if ((_arg1 is HistoryState)){ throw (new HSMError("State machine can't have any HistoryState.")); }; }; stateAdded(_arg1); return (_arg1); } private function getStack(_arg1:AbstractState):Array{ var _local2:String = String(_arg1.id); var _local3:Array = routesHash[_local2]; if (_local3){ return (_local3); }; var _local4:AbstractState = _arg1; _local3 = [_local4]; while (_local4.parent) { _local3.push(_local4.parent); _local4 = _local4.parent; }; routesHash[_local2] = _local3; return (_local3); } } }//package com.bigwigmedia.stateMachine
Section 318
//InitialState (com.bigwigmedia.stateMachine.InitialState) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.errors.*; public class InitialState extends SimpleState { override public function addTransition(_arg1:AbstractState, _arg2:AbstractTrigger=null, _arg3:Function=null, _arg4:Function=null):void{ if (transitionsList.length == 1){ throw (new HSMError("InitialState can have at most one outgoing transition.")); }; if (((_arg2) && (!((_arg2 is EmptyTrigger))))){ throw (new HSMError("Transition from InitialState may not have a trigger.")); }; super.addTransition(_arg1, _arg2, _arg3, _arg4); } } }//package com.bigwigmedia.stateMachine
Section 319
//IStateMachine (com.bigwigmedia.stateMachine.IStateMachine) package com.bigwigmedia.stateMachine { import flash.events.*; import com.bigwigmedia.core.*; public interface IStateMachine extends IEventDispatcher, IUpdatable, IDisposable { function addState(_arg1:AbstractState):AbstractState; function start():void; function sendSignal(_arg1:String, _arg2:Object=null):void; } }//package com.bigwigmedia.stateMachine
Section 320
//SignalEvent (com.bigwigmedia.stateMachine.SignalEvent) package com.bigwigmedia.stateMachine { import com.bigwigmedia.utils.*; public class SignalEvent extends AbstractEvent { protected var _type:String; protected var _data:Object; public function SignalEvent(_arg1:String, _arg2:Object=null){ _type = _arg1; _data = _arg2; } public function get data():Object{ return (_data); } public function get type():String{ return (_type); } override public function toString():String{ return (ObjectUtil.formatToString(this, "type", "data")); } } }//package com.bigwigmedia.stateMachine
Section 321
//SignalTrigger (com.bigwigmedia.stateMachine.SignalTrigger) package com.bigwigmedia.stateMachine { public class SignalTrigger extends AbstractTrigger { private var _type:String; public function SignalTrigger(_arg1:String){ _type = _arg1; } override public function willFire(_arg1:AbstractEvent):Boolean{ var _local2:SignalEvent = (_arg1 as SignalEvent); return (((_local2) && ((_local2.type == _type)))); } override public function equals(_arg1:AbstractTrigger):Boolean{ var _local2:SignalTrigger = (_arg1 as SignalTrigger); return (((_local2) && ((_local2._type == _type)))); } } }//package com.bigwigmedia.stateMachine
Section 322
//SimpleState (com.bigwigmedia.stateMachine.SimpleState) package com.bigwigmedia.stateMachine { public class SimpleState extends AbstractState { protected var _entry:Function;// = null protected var _doActivity:Function;// = null protected var _exit:Function;// = null public function SimpleState(_arg1:Function=null, _arg2:Function=null, _arg3:Function=null){ _entry = _arg1; _doActivity = _arg2; _exit = _arg3; } override public function update(_arg1:Number):void{ super.update(_arg1); if (_doActivity != null){ _doActivity(_arg1); }; } override public function deactivate(_arg1:AbstractEvent):void{ if (_exit != null){ _exit(_arg1); }; super.deactivate(_arg1); } override public function activate(_arg1:AbstractEvent):void{ super.activate(_arg1); if (_entry != null){ _entry(_arg1); }; } override public function dispose():void{ _entry = null; _doActivity = null; _exit = null; super.dispose(); } } }//package com.bigwigmedia.stateMachine
Section 323
//Transition (com.bigwigmedia.stateMachine.Transition) package com.bigwigmedia.stateMachine { import com.bigwigmedia.core.*; import com.bigwigmedia.utils.*; public class Transition implements IDisposable { private var _guard:Function; private var _target:AbstractState; private var _effect:Function; private var _trigger:AbstractTrigger; private var _source:AbstractState; public function Transition(_arg1:AbstractState, _arg2:AbstractState, _arg3:AbstractTrigger, _arg4:Function, _arg5:Function){ _source = _arg1; _target = _arg2; _trigger = _arg3; _effect = _arg4; _guard = _arg5; } public function conflicts(_arg1:Transition):Boolean{ return ((((((_source == _arg1.source)) && (_trigger.equals(_arg1.trigger)))) && ((_guard == _arg1.guard)))); } public function get source():AbstractState{ return (_source); } public function get guard():Function{ return (_guard); } public function willFire(_arg1:AbstractEvent):Boolean{ if (_trigger.willFire(_arg1)){ return ((((guard == null)) || (_guard()))); }; return (false); } public function invokeEffect(_arg1:AbstractEvent):void{ if (_effect != null){ _effect(_arg1); }; } public function get target():AbstractState{ return (_target); } public function get trigger():AbstractTrigger{ return (_trigger); } public function toString():String{ return (ObjectUtil.formatToString(this, "source", "target", "trigger")); } public function dispose():void{ _source = null; _target = null; _trigger.dispose(); _trigger = null; _effect = null; _guard = null; } } }//package com.bigwigmedia.stateMachine
Section 324
//TransitionLevel (com.bigwigmedia.stateMachine.TransitionLevel) package com.bigwigmedia.stateMachine { public class TransitionLevel { public static const TO_SELF:String = "toSelf"; public static const TO_DESCENDANT:String = "toDescendant"; public static const TO_ANCESTOR:String = "toAncestor"; public static const TO_IRRELATIVE:String = "toIrrelative"; public static const TO_SIBLING:String = "toSibling"; } }//package com.bigwigmedia.stateMachine
Section 325
//AbstractTransition (com.bigwigmedia.transitions.AbstractTransition) package com.bigwigmedia.transitions { import flash.display.*; import com.bigwigmedia.core.*; public class AbstractTransition extends Sprite implements IDisposable { public function start():void{ } public function dispose():void{ } } }//package com.bigwigmedia.transitions
Section 326
//BlackoutTransition (com.bigwigmedia.transitions.BlackoutTransition) package com.bigwigmedia.transitions { import flash.events.*; import com.bigwigmedia.core.*; import com.bigwigmedia.tweens.*; public class BlackoutTransition extends AbstractTransition { private var _peakCallback:Function; private var _color:int; private var _halfDuration:Object; private var _tween:ITween; private var _completeCallback:Function; public function BlackoutTransition(_arg1:Object, _arg2:Function, _arg3:Function=null, _arg4:uint=0){ _halfDuration = _arg1; _peakCallback = _arg2; _completeCallback = _arg3; _color = _arg4; } override public function start():void{ alpha = 0; graphics.beginFill(_color, 1); graphics.drawRect(0, 0, Globals.application.nominalWidth, Globals.application.nominalHeight); graphics.endFill(); _tween = new SequenceTween([new PropertyTween(this, "alpha", 0, 1, _halfDuration), new Action(this, onPeak), new PropertyTween(this, "alpha", 1, 0, _halfDuration), new Action(this, onComplete)]); _tween.playAuto(); } override public function dispose():void{ graphics.clear(); _peakCallback = null; _completeCallback = null; _tween.dispose(); } private function onPeak():void{ _peakCallback(); } private function onComplete():void{ graphics.clear(); if (_completeCallback != null){ _completeCallback(); }; dispatchEvent(new Event(Event.COMPLETE)); } } }//package com.bigwigmedia.transitions
Section 327
//Back (com.bigwigmedia.tweens.easing.Back) package com.bigwigmedia.tweens.easing { public class Back { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2)); }; _arg1 = (_arg1 - 2); _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 328
//Bounce (com.bigwigmedia.tweens.easing.Bounce) package com.bigwigmedia.tweens.easing { public class Bounce { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 - easeOut((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeIn((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOut(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 329
//Circular (com.bigwigmedia.tweens.easing.Circular) package com.bigwigmedia.tweens.easing { public class Circular { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 330
//Cubic (com.bigwigmedia.tweens.easing.Cubic) package com.bigwigmedia.tweens.easing { public class Cubic { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 331
//Easing (com.bigwigmedia.tweens.easing.Easing) package com.bigwigmedia.tweens.easing { public class Easing { public static const QUADRATIC_IN_OUT:String = "quadraticInOut"; public static const CIRCULAR_IN:String = "circularIn"; public static const SINE_IN_OUT:String = "sineInOut"; public static const CUBIC_IN_OUT:String = "cubicInOut"; public static const SINE_OUT:String = "sineOut"; public static const QUADRATIC_IN:String = "quadraticIn"; public static const CIRCULAR_OUT:String = "circularOut"; public static const SINE_IN:String = "sineIn"; public static const CUBIC_OUT:String = "cubicOut"; public static const CUBIC_IN:String = "cubicIn"; public static const BACK_OUT:String = "backOut"; public static const ELASTIC_OUT:String = "elasticOut"; public static const LINEAR:String = "linear"; public static const QUADRATIC_OUT:String = "quadraticOut"; public static const BOUNCE_IN_OUT:String = "bounceInOut"; public static const BACK_IN_OUT:String = "backInOut"; public static const ELASTIC_IN_OUT:String = "elasticInOut"; public static const ELASTIC_IN:String = "elasticIn"; public static const BOUNCE_OUT:String = "bounceOut"; public static const CIRCULAR_IN_OUT:String = "circularInOut"; public static const BOUNCE_IN:String = "bounceIn"; public static const BACK_IN:String = "backIn"; public static function getEasingFunc(_arg1:String):Function{ switch (_arg1){ case null: case LINEAR: return (Linear.easeNone); case BACK_IN: return (Back.easeIn); case BACK_OUT: return (Back.easeOut); case BACK_IN_OUT: return (Back.easeInOut); case BOUNCE_IN: return (Bounce.easeIn); case BOUNCE_OUT: return (Bounce.easeOut); case BOUNCE_IN_OUT: return (Bounce.easeInOut); case CIRCULAR_IN: return (Circular.easeIn); case CIRCULAR_OUT: return (Circular.easeOut); case CIRCULAR_IN_OUT: return (Circular.easeInOut); case CUBIC_IN: return (Cubic.easeIn); case CUBIC_OUT: return (Cubic.easeOut); case CUBIC_IN_OUT: return (Cubic.easeInOut); case ELASTIC_IN: return (Elastic.easeIn); case ELASTIC_OUT: return (Elastic.easeOut); case ELASTIC_IN_OUT: return (Elastic.easeInOut); case QUADRATIC_IN: return (Quadratic.easeIn); case QUADRATIC_OUT: return (Quadratic.easeOut); case QUADRATIC_IN_OUT: return (Quadratic.easeInOut); case SINE_IN: return (Sine.easeIn); case SINE_OUT: return (Sine.easeOut); case SINE_IN_OUT: return (Sine.easeInOut); }; throw (new ArgumentError((("Easing \"" + _arg1) + "\" is not supported."))); } } }//package com.bigwigmedia.tweens.easing
Section 332
//Elastic (com.bigwigmedia.tweens.easing.Elastic) package com.bigwigmedia.tweens.easing { public class Elastic { private static const _2PI:Number = 6.28318530717959; public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5))); }; --_arg1; return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * (0.3 * 1.5)); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2)); }; --_arg1; return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) * 0.5) + _arg3) + _arg2)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5))); }; return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) + _arg3) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 333
//Linear (com.bigwigmedia.tweens.easing.Linear) package com.bigwigmedia.tweens.easing { public class Linear { public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 334
//Quadratic (com.bigwigmedia.tweens.easing.Quadratic) package com.bigwigmedia.tweens.easing { public class Quadratic { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 335
//Sine (com.bigwigmedia.tweens.easing.Sine) package com.bigwigmedia.tweens.easing { public class Sine { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 336
//AbstractNumberTween (com.bigwigmedia.tweens.AbstractNumberTween) package com.bigwigmedia.tweens { public class AbstractNumberTween extends AbstractTargetTween { protected var _changeValue:Number; protected var _startValue:Number; public function AbstractNumberTween(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Object, _arg5:String, _arg6:Boolean){ super(_arg1, _arg4, _arg5, _arg6); _startValue = _arg2; _changeValue = (_arg3 - _arg2); } protected function getNumber():Number{ return (_easingFunc(_time, _startValue, _changeValue, _duration)); } } }//package com.bigwigmedia.tweens
Section 337
//AbstractTargetTween (com.bigwigmedia.tweens.AbstractTargetTween) package com.bigwigmedia.tweens { import com.bigwigmedia.events.*; import com.bigwigmedia.tweens.easing.*; public class AbstractTargetTween extends AbstractTween implements ITargetTween { protected var _time:Number;// = 0 protected var _easingFunc:Function; protected var _target:Object; protected var _duration:Number; protected var _useFrames:Boolean; public function AbstractTargetTween(_arg1:Object, _arg2:Object, _arg3:String, _arg4:Boolean){ super(_arg4); if (((((_arg2 is Number) == false)) && (((_arg2 is String) == false)))){ throw (new ArgumentError("Supplied duration value must be Number or String")); }; _target = _arg1; _duration = Number(_arg2); _easingFunc = Easing.getEasingFunc(_arg3); _useFrames = (_arg2 is String); } override public function update(_arg1:Number):void{ if (_completed){ return; }; updateTarget(); if (_time < _duration){ if (_useFrames){ _time++; } else { _time = (_time + _arg1); if (_time > _duration){ _time = _duration; }; }; } else { if (_repeat){ reset(); } else { _completed = true; dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); }; }; } override public function reset():void{ _time = 0; _completed = false; } public function get target():Object{ return (_target); } protected function updateTarget():void{ } override public function dispose():void{ stopAuto(); _target = null; _easingFunc = null; } } }//package com.bigwigmedia.tweens
Section 338
//AbstractTween (com.bigwigmedia.tweens.AbstractTween) package com.bigwigmedia.tweens { import flash.display.*; import flash.events.*; public class AbstractTween extends EventDispatcher implements ITween { private var _autoPlaying:Boolean;// = false protected var _completed:Boolean;// = false protected var _repeat:Boolean; public static var autoFrameDuration:Number = 30; private static var _autoTweens:Array = []; private static var _autoTicker:Shape = new Shape(); public function AbstractTween(_arg1:Boolean){ _repeat = _arg1; } public function playAuto():void{ if (_autoPlaying){ return; }; if (!_autoTicker.hasEventListener(Event.ENTER_FRAME)){ _autoTicker.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); }; _autoTweens.push(this); _autoPlaying = true; } public function update(_arg1:Number):void{ } public function stopAuto():void{ if (!_autoPlaying){ return; }; _autoTweens.splice(_autoTweens.indexOf(this), 1); if (_autoTweens.length == 0){ _autoTicker.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); }; _autoPlaying = false; } public function reset():void{ _completed = false; } public function dispose():void{ stopAuto(); } private static function onEnterFrameHandler(_arg1:Event):void{ var _local2:ITween; for each (_local2 in _autoTweens) { _local2.update(autoFrameDuration); }; } } }//package com.bigwigmedia.tweens
Section 339
//Action (com.bigwigmedia.tweens.Action) package com.bigwigmedia.tweens { import com.bigwigmedia.events.*; public class Action extends AbstractTween { private var _func:Function; private var _scope:Object; private var _args:Array; public function Action(_arg1:Object, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false){ super(_arg4); _scope = _arg1; _func = _arg2; _args = _arg3; } override public function update(_arg1:Number):void{ if (_completed){ return; }; _func.apply(_scope, _args); if (_repeat){ reset(); } else { _completed = true; dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); }; } override public function dispose():void{ super.dispose(); _scope = null; _func = null; _args = null; } } }//package com.bigwigmedia.tweens
Section 340
//FilterTween (com.bigwigmedia.tweens.FilterTween) package com.bigwigmedia.tweens { import flash.filters.*; public class FilterTween extends AbstractTargetTween { private var _filterClass:Class; private var _startValues:Object; private var _endValues:Object; public function FilterTween(_arg1:Object, _arg2:Class, _arg3:Object, _arg4:Object, _arg5:Object, _arg6:String="linear", _arg7:Boolean=false){ super(_arg1, _arg5, _arg6, _arg7); _filterClass = _arg2; _startValues = _arg3; _endValues = _arg4; } override protected function updateTarget():void{ var _local1:BitmapFilter; var _local5:String; var _local6:Number; var _local7:Number; var _local2:Array = target.filters; var _local3:int = _local2.length; var _local4:int; while (_local4 < _local3) { _local1 = _local2[_local4]; if ((_local1 is _filterClass)){ break; }; _local4++; }; if (!_local1){ throw (new Error((("Target object must have " + _filterClass) + " filter applied."))); }; for (_local5 in _startValues) { _local6 = _startValues[_local5]; _local7 = (_endValues[_local5] - _local6); _local1[_local5] = _easingFunc(_time, _local6, _local7, _duration); }; target.filters = _local2; } override public function dispose():void{ super.dispose(); _filterClass = null; _startValues = null; _endValues = null; } } }//package com.bigwigmedia.tweens
Section 341
//ITargetTween (com.bigwigmedia.tweens.ITargetTween) package com.bigwigmedia.tweens { public interface ITargetTween extends ITween { function get target():Object; } }//package com.bigwigmedia.tweens
Section 342
//ITween (com.bigwigmedia.tweens.ITween) package com.bigwigmedia.tweens { import flash.events.*; import com.bigwigmedia.core.*; public interface ITween extends IEventDispatcher, IUpdatable, IDisposable { function stopAuto():void; function playAuto():void; function reset():void; } }//package com.bigwigmedia.tweens
Section 343
//ParallelTween (com.bigwigmedia.tweens.ParallelTween) package com.bigwigmedia.tweens { import com.bigwigmedia.events.*; public class ParallelTween extends AbstractTween { private var _tweens:Array; private var _numActiveTweens:int;// = 0 public function ParallelTween(_arg1:Array, _arg2:Boolean=false){ var _local5:ITween; _tweens = []; super(_arg2); var _local3:int = _arg1.length; var _local4:int; while (_local4 < _local3) { _local5 = _arg1[_local4]; _local5.addEventListener(TweenEvent.COMPLETE, onTweenCompleteHandler); _tweens.push(_local5); _local4++; }; _numActiveTweens = _local3; } override public function dispose():void{ var _local1:ITween; for each (_local1 in _tweens) { _local1.removeEventListener(TweenEvent.COMPLETE, onTweenCompleteHandler); _local1.dispose(); }; _tweens = []; super.dispose(); } private function onTweenCompleteHandler(_arg1:TweenEvent):void{ if (--_numActiveTweens == 0){ _completed = true; }; } override public function update(_arg1:Number):void{ var _local2:ITween; if (_completed){ return; }; for each (_local2 in _tweens) { _local2.update(_arg1); }; if (_completed){ if (_repeat){ reset(); } else { dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); }; }; } override public function reset():void{ var _local1:ITween; _completed = false; for each (_local1 in _tweens) { _local1.reset(); }; _numActiveTweens = _tweens.length; } } }//package com.bigwigmedia.tweens
Section 344
//PropertyTween (com.bigwigmedia.tweens.PropertyTween) package com.bigwigmedia.tweens { public class PropertyTween extends AbstractNumberTween { private var _property:String; public function PropertyTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Object, _arg6:String="linear", _arg7:Boolean=false){ super(_arg1, _arg3, _arg4, _arg5, _arg6, _arg7); _property = _arg2; if (((!((_arg2 in _arg1))) || ((_arg1[_arg2] is Function)))){ throw (new ArgumentError((("Supplied property \"" + _arg2) + "\" is not found in target object."))); }; } override protected function updateTarget():void{ _target[_property] = getNumber(); } } }//package com.bigwigmedia.tweens
Section 345
//SequenceTween (com.bigwigmedia.tweens.SequenceTween) package com.bigwigmedia.tweens { import com.bigwigmedia.events.*; public class SequenceTween extends AbstractTween { private var _currentTweenIndex:int;// = 0 private var _tweens:Array; private var _currentTween:ITween; public function SequenceTween(_arg1:Array, _arg2:Boolean=false){ var _local5:ITween; _tweens = []; super(_arg2); var _local3:int = _arg1.length; var _local4:int; while (_local4 < _local3) { _local5 = _arg1[_local4]; _local5.addEventListener(TweenEvent.COMPLETE, onTweenCompleteHandler); _tweens.push(_local5); _local4++; }; _currentTween = _tweens[0]; } private function onTweenCompleteHandler(_arg1:TweenEvent):void{ if (++_currentTweenIndex == _tweens.length){ if (_repeat){ reset(); } else { if (!_completed){ _completed = true; dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); }; }; } else { _currentTween = _tweens[_currentTweenIndex]; }; } override public function update(_arg1:Number):void{ if (!_completed){ _currentTween.update(_arg1); }; } override public function reset():void{ var _local1:ITween; _completed = false; for each (_local1 in _tweens) { _local1.reset(); }; _currentTweenIndex = 0; _currentTween = _tweens[0]; } override public function dispose():void{ var _local1:ITween; _currentTween = null; for each (_local1 in _tweens) { _local1.removeEventListener(TweenEvent.COMPLETE, onTweenCompleteHandler); _local1.dispose(); }; _tweens = []; super.dispose(); } } }//package com.bigwigmedia.tweens
Section 346
//SetterTween (com.bigwigmedia.tweens.SetterTween) package com.bigwigmedia.tweens { public class SetterTween extends AbstractNumberTween { private var _setterFunc:Function; public function SetterTween(_arg1:Object, _arg2:Function, _arg3:Number, _arg4:Number, _arg5:Object, _arg6:String="linear", _arg7:Boolean=false){ super(_arg1, _arg3, _arg4, _arg5, _arg6, _arg7); _setterFunc = _arg2; } override protected function updateTarget():void{ _setterFunc.call(_target, getNumber()); } override public function dispose():void{ _setterFunc = null; super.dispose(); } } }//package com.bigwigmedia.tweens
Section 347
//CanvasLayout (com.bigwigmedia.ui.containers.layouts.CanvasLayout) package com.bigwigmedia.ui.containers.layouts { import com.bigwigmedia.ui.*; import flash.geom.*; import com.bigwigmedia.ui.containers.*; public class CanvasLayout implements ILayout { protected var _container:LayoutContainer; public function CanvasLayout(_arg1:LayoutContainer){ _container = _arg1; } protected function scaleChildHorizontally(_arg1:Component):void{ if (!_arg1.inSizeLayout){ return; }; if (!isNaN(_arg1.percentWidth)){ _arg1.width = ((_container.width * _arg1.percentWidth) / 100); } else { if (((!(isNaN(_arg1.left))) && (!(isNaN(_arg1.right))))){ _arg1.width = ((_container.width - _arg1.left) - _arg1.right); }; }; } public function apply():void{ var _local4:Component; var _local1:Array = _container.layoutChildren; var _local2:int = _local1.length; var _local3:int; while (_local3 < _local2) { _local4 = _local1[_local3]; scaleChildHorizontally(_local4); scaleChildVertically(_local4); positionChildHorizontally(_local4); positionChildVertically(_local4); _local3++; }; } protected function positionChildVertically(_arg1:Component):void{ if (!_arg1.inPositionLayout){ return; }; var _local2:Rectangle = _arg1.getAABB(); if (!isNaN(_arg1.middle)){ _arg1.y = (_arg1.y + (((_container.height / 2) - (_local2.top + (_local2.height / 2))) + _arg1.middle)); } else { if (!isNaN(_arg1.top)){ _arg1.y = (_arg1.y + (_arg1.top - _local2.top)); } else { if (!isNaN(_arg1.bottom)){ _arg1.y = (_arg1.y + ((_container.height - _local2.bottom) - _arg1.bottom)); }; }; }; } protected function positionChildHorizontally(_arg1:Component):void{ if (!_arg1.inPositionLayout){ return; }; var _local2:Rectangle = _arg1.getAABB(); if (!isNaN(_arg1.center)){ _arg1.x = (_arg1.x + (((_container.width / 2) - (_local2.left + (_local2.width / 2))) + _arg1.center)); } else { if (!isNaN(_arg1.left)){ _arg1.x = (_arg1.x + (_arg1.left - _local2.left)); } else { if (!isNaN(_arg1.right)){ _arg1.x = (_arg1.x + ((_container.width - _local2.right) - _arg1.right)); }; }; }; } protected function scaleChildVertically(_arg1:Component):void{ if (!_arg1.inSizeLayout){ return; }; if (!isNaN(_arg1.percentHeight)){ _arg1.height = ((_container.height * _arg1.percentHeight) / 100); } else { if (((!(isNaN(_arg1.top))) && (!(isNaN(_arg1.bottom))))){ _arg1.height = ((_container.height - _arg1.top) - _arg1.bottom); }; }; } public function dispose():void{ _container = null; } } }//package com.bigwigmedia.ui.containers.layouts
Section 348
//HBoxLayout (com.bigwigmedia.ui.containers.layouts.HBoxLayout) package com.bigwigmedia.ui.containers.layouts { import com.bigwigmedia.ui.*; import flash.geom.*; import com.bigwigmedia.ui.containers.*; public class HBoxLayout extends CanvasLayout { private var _currentX:Number; public function HBoxLayout(_arg1:LayoutContainer){ super(_arg1); } override protected function scaleChildHorizontally(_arg1:Component):void{ var _local6:int; if (isNaN(_container.explicitWidth)){ return; }; var _local2:Array = _container.layoutChildren; var _local3:int = _local2.length; var _local4:Number = 0; var _local5:Number = 0; _local6 = 0; while (_local6 < _local3) { _arg1 = _local2[_local6]; if (isNaN(_arg1.percentWidth)){ _local5 = (_local5 + _arg1.width); } else { _local5 = (_local5 + _arg1.minWidth); _local4 = (_local4 + _arg1.percentWidth); }; _local6++; }; var _local7:Number = ((_container.explicitWidth)>=_local5) ? ((_container.explicitWidth - _local5) - ((_local3 - 1) * _container.getStyle("horizontalGap"))) : 0; var _local8:Number = ((_local4 < 100)) ? 1 : (100 / _local4); _local6 = 0; while (_local6 < _local3) { _arg1 = _local2[_local6]; if (!isNaN(_arg1.percentWidth)){ _arg1.width = (((_arg1.percentWidth / 100) * _local8) * _local7); }; _local6++; }; } override protected function positionChildHorizontally(_arg1:Component):void{ _arg1.x = _currentX; var _local2:Rectangle = _arg1.getAABB(); _currentX = (_currentX + (_local2.width + _container.getStyle("horizontalGap"))); } override public function apply():void{ _currentX = 0; super.apply(); if (isNaN(_container.explicitWidth)){ _container.setNotExplicitWidth(((_currentX == 0)) ? 0 : (_currentX - _container.getStyle("horizontalGap"))); }; } } }//package com.bigwigmedia.ui.containers.layouts
Section 349
//ILayout (com.bigwigmedia.ui.containers.layouts.ILayout) package com.bigwigmedia.ui.containers.layouts { import com.bigwigmedia.core.*; public interface ILayout extends IDisposable { function apply():void; } }//package com.bigwigmedia.ui.containers.layouts
Section 350
//VBoxLayout (com.bigwigmedia.ui.containers.layouts.VBoxLayout) package com.bigwigmedia.ui.containers.layouts { import com.bigwigmedia.ui.*; import flash.geom.*; import com.bigwigmedia.ui.containers.*; public class VBoxLayout extends CanvasLayout { private var _currentY:Number; public function VBoxLayout(_arg1:LayoutContainer){ super(_arg1); } override protected function scaleChildVertically(_arg1:Component):void{ var _local6:int; if (isNaN(_container.explicitHeight)){ return; }; var _local2:Array = _container.layoutChildren; var _local3:int = _local2.length; var _local4:Number = 0; var _local5:Number = 0; _local6 = 0; while (_local6 < _local3) { _arg1 = _local2[_local6]; if (isNaN(_arg1.percentHeight)){ _local5 = (_local5 + _arg1.height); } else { _local5 = (_local5 + _arg1.minHeight); _local4 = (_local4 + _arg1.percentHeight); }; _local6++; }; var _local7:Number = ((_container.explicitHeight)>=_local5) ? ((_container.explicitHeight - _local5) - ((_local3 - 1) * _container.getStyle("verticalGap"))) : 0; var _local8:Number = ((_local4 < 100)) ? 1 : (100 / _local4); _local6 = 0; while (_local6 < _local3) { _arg1 = _local2[_local6]; if (!isNaN(_arg1.percentHeight)){ _arg1.height = (((_arg1.percentHeight / 100) * _local8) * _local7); }; _local6++; }; } override protected function positionChildVertically(_arg1:Component):void{ _arg1.y = _currentY; var _local2:Rectangle = _arg1.getAABB(); _currentY = (_currentY + (_local2.height + _container.getStyle("verticalGap"))); } override public function apply():void{ _currentY = 0; super.apply(); if (isNaN(_container.explicitHeight)){ _container.setNotExplicitHeight(((_currentY == 0)) ? 0 : (_currentY - _container.getStyle("verticalGap"))); }; } } }//package com.bigwigmedia.ui.containers.layouts
Section 351
//Box (com.bigwigmedia.ui.containers.Box) package com.bigwigmedia.ui.containers { import com.bigwigmedia.ui.containers.layouts.*; public class Box extends LayoutContainer { public function Box(_arg1:ILayout){ super(_arg1); } public static function get defaultStyles():Object{ var _local1:Object = {horizontalGap:8, verticalGap:8}; return (_local1); } } }//package com.bigwigmedia.ui.containers
Section 352
//Canvas (com.bigwigmedia.ui.containers.Canvas) package com.bigwigmedia.ui.containers { import com.bigwigmedia.ui.containers.layouts.*; public class Canvas extends LayoutContainer { public function Canvas(){ super(new CanvasLayout(this)); } } }//package com.bigwigmedia.ui.containers
Section 353
//HBox (com.bigwigmedia.ui.containers.HBox) package com.bigwigmedia.ui.containers { import com.bigwigmedia.ui.containers.layouts.*; public class HBox extends Box { public function HBox(){ super(new HBoxLayout(this)); } } }//package com.bigwigmedia.ui.containers
Section 354
//LayoutContainer (com.bigwigmedia.ui.containers.LayoutContainer) package com.bigwigmedia.ui.containers { import flash.display.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.events.*; import com.bigwigmedia.ui.containers.layouts.*; public class LayoutContainer extends Container { protected var _layoutChildren:Array; protected var _layout:ILayout; protected var validatingChildren:Boolean;// = false public function LayoutContainer(_arg1:ILayout){ _layoutChildren = []; _layout = _arg1; super(); } override protected function componentAdded(_arg1:Component):void{ _arg1.addEventListener(ComponentEvent.RESIZE, onComponentEventHandler); _arg1.addEventListener(ComponentEvent.MOVE, onComponentEventHandler); _layoutChildren.push(_arg1); invalidateSize(); invalidateChildren(); } override public function dispose():void{ var _local1:DisplayObject; for each (_local1 in _layoutChildren) { _local1.removeEventListener(ComponentEvent.RESIZE, onComponentEventHandler); _local1.removeEventListener(ComponentEvent.MOVE, onComponentEventHandler); }; _layoutChildren = []; _layout.dispose(); _layout = null; super.dispose(); } override protected function componentRemoved(_arg1:Component):void{ var _local2:int = _layoutChildren.indexOf(_arg1); _layoutChildren.splice(_local2, 1); _arg1.removeEventListener(ComponentEvent.RESIZE, onComponentEventHandler); _arg1.removeEventListener(ComponentEvent.MOVE, onComponentEventHandler); invalidateSize(); invalidateChildren(); } private function onComponentEventHandler(_arg1:ComponentEvent):void{ if (validatingChildren){ return; }; invalidateSize(); invalidateChildren(); } override protected function validateChildren():void{ validatingChildren = true; _layout.apply(); validatingChildren = false; } override protected function validateSize():void{ if (isNaN(_explicitWidth)){ setNotExplicitWidth(maxChildWidth); }; if (isNaN(_explicitHeight)){ setNotExplicitHeight(maxChildHeight); }; invalidateChildren(); } public function get layoutChildren():Array{ return (_layoutChildren); } public function get maxChildWidth():Number{ var _local2:DisplayObject; var _local1:Number = 0; for each (_local2 in _layoutChildren) { if (_local2.width > _local1){ _local1 = _local2.width; }; }; return (_local1); } public function get maxChildHeight():Number{ var _local2:DisplayObject; var _local1:Number = 0; for each (_local2 in _layoutChildren) { if (_local2.height > _local1){ _local1 = _local2.height; }; }; return (_local1); } } }//package com.bigwigmedia.ui.containers
Section 355
//VBox (com.bigwigmedia.ui.containers.VBox) package com.bigwigmedia.ui.containers { import com.bigwigmedia.ui.containers.layouts.*; public class VBox extends Box { public function VBox(){ super(new VBoxLayout(this)); } } }//package com.bigwigmedia.ui.containers
Section 356
//ListItemRenderer (com.bigwigmedia.ui.controls.listClasses.ListItemRenderer) package com.bigwigmedia.ui.controls.listClasses { import com.bigwigmedia.ui.controls.*; public class ListItemRenderer extends LabelButton { private var _index:int; public function ListItemRenderer(_arg1:int){ _index = _arg1; _toggle = true; } public function get index():int{ return (_index); } override protected function drawBackground():void{ graphics.clear(); graphics.lineStyle(); if (_selected){ graphics.beginFill(getStyle("selectedFillColor"), getStyle("selectedFillAlpha")); } else { graphics.beginFill(getStyle("fillColor"), getStyle("fillAlpha")); }; graphics.drawRect(0, 0, (isNaN(width)) ? 0 : width, (isNaN(height)) ? 0 : height); graphics.endFill(); } override public function set toggle(_arg1:Boolean):void{ } override protected function mouseClicked():void{ if (mouseClickHandler != null){ mouseClickHandler(this); }; if (!_selected){ super.selected = true; drawBackground(); }; } public static function get defaultStyles():Object{ var _local1:Object = {selectedFillColor:0xFFFFFF, selectedFillAlpha:0.3, labelPlacement:"left", padding:0, icon:null, upIcon:null, overIcon:null, downIcon:null, selectedIcon:null, decoration:null, upDecoration:null, overDecoration:null, downDecoration:null, selectedDecoration:null}; return (_local1); } } }//package com.bigwigmedia.ui.controls.listClasses
Section 357
//ScrollBar (com.bigwigmedia.ui.controls.scrollClasses.ScrollBar) package com.bigwigmedia.ui.controls.scrollClasses { import flash.events.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.events.*; public class ScrollBar extends Container { private var _minScrollPosition:Number;// = 0 protected var _downArrow:SkinnedButton; private var _drag:Boolean;// = false private var _pageSize:Number;// = 10 private var _maxScrollPosition:Number;// = 100 private var _lineScrollSize:Number;// = 1 private var _scrollPosition:Number;// = 0 private var _thumbClickDisp:Number;// = 0 protected var _track:SkinnedButton; protected var _thumb:SkinnedButton; protected var _upArrow:SkinnedButton; private var _pageScrollSize:Number;// = 0 public static const MIN_SIZE:Number = 14; public function ScrollBar(){ this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStageHandler); this.addEventListener(Event.REMOVED_FROM_STAGE, onRemovedToStageHandler); } public function get lineScrollSize():Number{ return (((_lineScrollSize == 0)) ? _pageSize : _lineScrollSize); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } public function get minScrollPosition():Number{ return (_minScrollPosition); } private function mouseMoved():void{ positionThumb(); var _local1:Number = ((((thumbPosition - _upArrow.height) / (((convertedHeight - _upArrow.height) - _downArrow.height) - _thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); scrollPosition = _local1; } public function set minScrollPosition(_arg1:Number):void{ if (_minScrollPosition != _arg1){ _minScrollPosition = _arg1; invalidateProperties(); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } public function get scrollPosition():Number{ return (_scrollPosition); } protected function get thumbPosition():Number{ throw (new Error("Override required.")); } override protected function createChildren():void{ var _local1:Class = getStyle("track"); _track = new (_local1); _track.autoRepeat = true; addChild(_track); var _local2:Class = getStyle("upButton"); _upArrow = new (_local2); _upArrow.autoRepeat = true; addChild(_upArrow); var _local3:Class = getStyle("downButton"); _downArrow = new (_local3); _downArrow.autoRepeat = true; addChild(_downArrow); var _local4:Class = getStyle("thumb"); _thumb = new (_local4); addChild(_thumb); addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownHandler); addEventListener(ComponentEvent.BUTTON_DOWN, onButtonDownHandler); } override public function getComponentByName(_arg1:String):Component{ return (((_arg1 == this.name)) ? this : null); } public function set scrollPosition(_arg1:Number):void{ var _local2:Number = _scrollPosition; _scrollPosition = _arg1; if (_scrollPosition < _minScrollPosition){ _scrollPosition = _minScrollPosition; } else { if (_scrollPosition > _maxScrollPosition){ _scrollPosition = _maxScrollPosition; }; }; if (_local2 != _scrollPosition){ positionThumb(); dispatchEvent(new ScrollEvent(ScrollEvent.SCROLL, _scrollPosition, true)); }; } protected function positionThumb():void{ var _local3:Number; var _local1:Number = ((_maxScrollPosition - _minScrollPosition) + _pageSize); var _local2:Number = Math.round(((((convertedHeight - _upArrow.height) - _downArrow.height) * _pageSize) / _local1)); if (_local2 < MIN_SIZE){ _local2 = MIN_SIZE; }; if ((((_maxScrollPosition <= _minScrollPosition)) || ((_local1 == 0)))){ _thumb.visible = false; this.enabled = false; } else { _thumb.width = convertedWidth; _thumb.height = _local2; _thumb.visible = true; this.enabled = true; }; if (_drag){ _local3 = (this.mouseY - _thumbClickDisp); } else { _local3 = (_upArrow.height + ((((convertedHeight - _upArrow.height) - _downArrow.height) - _thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); }; if ((((_local3 < _upArrow.height)) || (isNaN(_local3)))){ _local3 = _upArrow.height; } else { if (_local3 > ((convertedHeight - _downArrow.height) - _thumb.height)){ _local3 = ((convertedHeight - _downArrow.height) - _thumb.height); }; }; thumbPosition = _local3; } private function onButtonDownHandler(_arg1:ComponentEvent):void{ var _local2:Number; switch (_arg1.target){ case _upArrow: scrollPosition = (scrollPosition - lineScrollSize); break; case _downArrow: scrollPosition = (scrollPosition + lineScrollSize); break; case _track: _local2 = ((((_track.mouseY - _upArrow.height) / ((convertedHeight - _upArrow.height) - _downArrow.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); if (_scrollPosition < _local2){ scrollPosition = Math.min(_local2, (_scrollPosition + _pageSize)); } else { if (_scrollPosition > _local2){ scrollPosition = Math.max(_local2, (_scrollPosition - _pageSize)); }; }; break; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ if (_maxScrollPosition != _arg1){ _maxScrollPosition = _arg1; invalidateProperties(); }; } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _pageScrollSize = _arg1; }; } protected function set thumbPosition(_arg1:Number):void{ throw (new Error("Override required.")); } private function onAddedToStageHandler(_arg1:Event):void{ stage.addEventListener(MouseEvent.MOUSE_UP, onMouseEventHandler); stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseEventHandler); } protected function get convertedWidth():Number{ throw (new Error("Override required.")); } protected function get convertedHeight():Number{ throw (new Error("Override required.")); } public function get pageScrollSize():Number{ return (((_pageScrollSize == 0)) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_pageSize != _arg1){ _pageSize = _arg1; invalidateProperties(); }; } private function onMouseDownHandler(_arg1:MouseEvent):void{ if ((((_arg1.target == _thumb)) && (!(_drag)))){ _thumbClickDisp = _thumb.mouseY; _drag = true; }; } private function onRemovedToStageHandler(_arg1:Event):void{ stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseEventHandler); stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseEventHandler); } override protected function validateProperties():void{ positionThumb(); } private function onMouseEventHandler(_arg1:MouseEvent):void{ switch (_arg1.type){ case MouseEvent.MOUSE_MOVE: if (_drag){ mouseMoved(); }; break; case MouseEvent.MOUSE_UP: if (_drag){ _drag = false; }; break; }; } public static function get defaultStyles():Object{ var _local1:Object = {track:ScrollBarTrack, thumb:ScrollBarThumb, upButton:ScrollBarUpButton, downButton:ScrollBarDownButton}; return (_local1); } } }//package com.bigwigmedia.ui.controls.scrollClasses
Section 358
//ScrollBarDownButton (com.bigwigmedia.ui.controls.scrollClasses.ScrollBarDownButton) package com.bigwigmedia.ui.controls.scrollClasses { import com.bigwigmedia.ui.controls.*; public class ScrollBarDownButton extends SkinnedButton { public function ScrollBarDownButton(){ this.height = 14; } public static function get defaultStyles():Object{ var _local1:Object = {upSkin:DefaultSkin, overSkin:DefaultSkin, downSkin:DefaultSkin, icon:ArrowDownIcon, upIcon:null, overIcon:null, downIcon:null, decoration:null}; return (_local1); } } }//package com.bigwigmedia.ui.controls.scrollClasses import flash.display.*; import flash.geom.*; class ArrowDownIcon extends Shape { private function ArrowDownIcon(){ graphics.beginFill(0x333333, 1); graphics.moveTo(4, 4); graphics.lineTo(0, 0); graphics.lineTo(8, 0); graphics.lineTo(4, 4); graphics.endFill(); } } class DefaultSkin extends Shape { private var WIDTH:Number;// = 14 private var HEIGHT:Number;// = 14 private function DefaultSkin(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((WIDTH - 2), (HEIGHT - 2), 0, 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); } }
Section 359
//ScrollBarThumb (com.bigwigmedia.ui.controls.scrollClasses.ScrollBarThumb) package com.bigwigmedia.ui.controls.scrollClasses { import com.bigwigmedia.ui.controls.*; public class ScrollBarThumb extends SkinnedButton { public static function get defaultStyles():Object{ var _local1:Object = {upSkin:DefaultSkin, overSkin:DefaultSkin, downSkin:DefaultSkin, icon:DefaultIcon, upIcon:null, overIcon:null, downIcon:null, decoration:null}; return (_local1); } } }//package com.bigwigmedia.ui.controls.scrollClasses import flash.display.*; import flash.geom.*; class DefaultIcon extends Shape { private function DefaultIcon(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, 6, 1); graphics.drawRect(0, 3, 6, 1); graphics.drawRect(0, 6, 6, 1); graphics.endFill(); } } class DefaultSkin extends Shape { private var WIDTH:Number;// = 14 private var HEIGHT:Number;// = 100 private function DefaultSkin(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((WIDTH - 2), (HEIGHT - 2), 0, 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); } }
Section 360
//ScrollBarTrack (com.bigwigmedia.ui.controls.scrollClasses.ScrollBarTrack) package com.bigwigmedia.ui.controls.scrollClasses { import com.bigwigmedia.ui.controls.*; public class ScrollBarTrack extends SkinnedButton { public static function get defaultStyles():Object{ var _local1:Object = {upSkin:DefaultSkin, overSkin:DefaultSkin, downSkin:DefaultSkin, icon:null, upIcon:null, overIcon:null, downIcon:null, decoration:null}; return (_local1); } } }//package com.bigwigmedia.ui.controls.scrollClasses import flash.display.*; import flash.geom.*; class DefaultSkin extends Shape { private var WIDTH:Number;// = 14 private var HEIGHT:Number;// = 100 private function DefaultSkin(){ graphics.beginFill(0xCCCCCC, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); graphics.beginFill(0xFFFFFF, 1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); } }
Section 361
//ScrollBarUpButton (com.bigwigmedia.ui.controls.scrollClasses.ScrollBarUpButton) package com.bigwigmedia.ui.controls.scrollClasses { import com.bigwigmedia.ui.controls.*; public class ScrollBarUpButton extends SkinnedButton { public function ScrollBarUpButton(){ this.height = 14; } public static function get defaultStyles():Object{ var _local1:Object = {upSkin:DefaultSkin, overSkin:DefaultSkin, downSkin:DefaultSkin, icon:ArrowUpIcon, upIcon:null, overIcon:null, downIcon:null, decoration:null}; return (_local1); } } }//package com.bigwigmedia.ui.controls.scrollClasses import flash.display.*; import flash.geom.*; class ArrowUpIcon extends Shape { private function ArrowUpIcon(){ graphics.beginFill(0x333333, 1); graphics.moveTo(4, 0); graphics.lineTo(8, 4); graphics.lineTo(0, 4); graphics.lineTo(4, 0); graphics.endFill(); } } class DefaultSkin extends Shape { private var WIDTH:Number;// = 14 private var HEIGHT:Number;// = 14 private function DefaultSkin(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((WIDTH - 2), (HEIGHT - 2), 0, 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); } }
Section 362
//Slider (com.bigwigmedia.ui.controls.sliderClasses.Slider) package com.bigwigmedia.ui.controls.sliderClasses { import flash.events.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.events.*; public class Slider extends Container { protected var _track:SkinnedButton; protected var _snapInterval:Number;// = 0 protected var _minimum:Number;// = 0 private var _drag:Boolean;// = false protected var _thumb:AbstractButton; protected var _maximum:Number;// = 100 protected var _value:Number;// = 0 protected var _thumbClickDisp:Number;// = 0 public function Slider(){ this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStageHandler); this.addEventListener(Event.REMOVED_FROM_STAGE, onRemovedToStageHandler); } public function set maximum(_arg1:Number):void{ if (_maximum == _arg1){ return; }; _maximum = _arg1; if (_value > _maximum){ _value = _maximum; }; invalidateProperties(); } public function set value(_arg1:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local2:Number = _value; if (((!((_snapInterval == 0))) && (!((_snapInterval == 1))))){ _local3 = Math.pow(10, getPrecision(_snapInterval)); _local4 = (_snapInterval * _local3); _local5 = Math.round((_arg1 * _local3)); _local6 = (Math.round((_local5 / _local4)) * _local4); _local7 = (_local6 / _local3); _value = _local7; } else { _value = Math.round(_arg1); }; if (_value < _minimum){ _value = _minimum; } else { if (_value > _maximum){ _value = _maximum; }; }; if (_local2 != _value){ positionThumb(); dispatchEvent(new SliderEvent(SliderEvent.CHANGE, _value, true)); }; } private function onAddedToStageHandler(_arg1:Event):void{ stage.addEventListener(MouseEvent.MOUSE_UP, onMouseEventHandler); stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseEventHandler); } protected function get convertedWidth():Number{ throw (new Error("Override required.")); } protected function mouseMoved():void{ var _local1:Number = (((this.mouseY - _thumbClickDisp) / convertedHeight) * (_maximum - _minimum)); value = correctedValue(_local1); } protected function get convertedHeight():Number{ throw (new Error("Override required.")); } override protected function createChildren():void{ var _local1:Class = getStyle("track"); _track = new (_local1); addChild(_track); var _local2:Class = getStyle("thumb"); _thumb = new (_local2); addChild(_thumb); addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownHandler); } public function get minimum():Number{ return (_minimum); } private function getPrecision(_arg1:Number):Number{ var _local2:String = _arg1.toString(); if (_local2.indexOf(".") == -1){ return (0); }; return (_local2.split(".").pop().length); } private function onMouseDownHandler(_arg1:MouseEvent):void{ var _local2:Number; switch (_arg1.target){ case _thumb: _thumbClickDisp = _thumb.mouseY; _drag = true; dispatchEvent(new SliderEvent(SliderEvent.KNOB_PRESS, _value, true)); break; case _track: _local2 = ((this.mouseY / convertedHeight) * (_maximum - _minimum)); value = correctedValue(_local2); break; }; } public function set minimum(_arg1:Number):void{ if (_minimum == _arg1){ return; }; _minimum = _arg1; if (_value < _minimum){ _value = _minimum; }; invalidateProperties(); } public function set snapInterval(_arg1:Number):void{ _snapInterval = _arg1; invalidateProperties(); } public function get maximum():Number{ return (_maximum); } private function onRemovedToStageHandler(_arg1:Event):void{ stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseEventHandler); stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseEventHandler); } override protected function validateProperties():void{ positionThumb(); } protected function correctedValue(_arg1:Number):Number{ throw (new Error("Override required.")); } override public function getComponentByName(_arg1:String):Component{ return (((_arg1 == this.name)) ? this : null); } public function get value():Number{ return (_value); } protected function positionThumb():void{ if (("label" in _thumb)){ _thumb["label"] = String(_value); }; } private function onMouseEventHandler(_arg1:MouseEvent):void{ switch (_arg1.type){ case MouseEvent.MOUSE_UP: if (_drag){ _drag = false; dispatchEvent(new SliderEvent(SliderEvent.KNOB_RELEASE, _value, true)); }; break; case MouseEvent.MOUSE_MOVE: if (_drag){ mouseMoved(); }; break; }; } public function get snapInterval():Number{ return (_snapInterval); } public static function get defaultStyles():Object{ var _local1:Object = {track:SliderTrack, thumb:SliderThumb}; return (_local1); } } }//package com.bigwigmedia.ui.controls.sliderClasses
Section 363
//SliderThumb (com.bigwigmedia.ui.controls.sliderClasses.SliderThumb) package com.bigwigmedia.ui.controls.sliderClasses { import com.bigwigmedia.ui.controls.*; public class SliderThumb extends SkinnedButton { override protected function drawBackground():void{ graphics.clear(); graphics.lineStyle(); graphics.beginFill(0, 0); graphics.drawRect(0, (-(this.height) / 2), this.width, this.height); graphics.endFill(); } public static function get defaultStyles():Object{ var _local1:Object = {upSkin:DefaultSkin, overSkin:DefaultSkin, downSkin:DefaultSkin, icon:null, upIcon:null, overIcon:null, downIcon:null}; return (_local1); } } }//package com.bigwigmedia.ui.controls.sliderClasses import flash.display.*; import flash.geom.*; class DefaultSkin extends Shape { private function DefaultSkin(){ graphics.lineStyle(1, 0x333333); var _local1:Matrix = new Matrix(); _local1.createGradientBox(16, 12, 0, 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.moveTo(0, 0); graphics.lineTo(6, -6); graphics.lineTo(16, -6); graphics.lineTo(16, 6); graphics.lineTo(6, 6); graphics.lineTo(0, 0); graphics.endFill(); } }
Section 364
//SliderTrack (com.bigwigmedia.ui.controls.sliderClasses.SliderTrack) package com.bigwigmedia.ui.controls.sliderClasses { import com.bigwigmedia.ui.controls.*; public class SliderTrack extends SkinnedButton { public static function get defaultStyles():Object{ var _local1:Object = {upSkin:DefaultSkin, overSkin:DefaultSkin, downSkin:DefaultSkin, icon:null, upIcon:null, overIcon:null, downIcon:null, decoration:null}; return (_local1); } } }//package com.bigwigmedia.ui.controls.sliderClasses import flash.display.*; import flash.geom.*; class DefaultSkin extends Shape { private var WIDTH:Number;// = 4 private var HEIGHT:Number;// = 100 private function DefaultSkin(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((WIDTH - 2), (HEIGHT - 2), 0, 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); } }
Section 365
//AbstractButton (com.bigwigmedia.ui.controls.AbstractButton) package com.bigwigmedia.ui.controls { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.events.*; import flash.utils.*; import com.bigwigmedia.ui.decorations.*; public class AbstractButton extends Component { private var pressTimer:Timer; protected var _autoRepeat:Boolean;// = false protected var rollOverHandler:Function;// = null protected var _selected:Boolean;// = false protected var mouseDownHandler:Function;// = null protected var mouseClickHandler:Function;// = null private var _beacon:IBeacon;// = null public var value; protected var rollOutHandler:Function;// = null protected var _toggle:Boolean;// = false protected var _phase:String;// = "phaseUp" public static const PHASE_DOWN:String = "phaseDown"; public static const PHASE_OVER:String = "phaseOver"; public static const PHASE_UP:String = "phaseUp"; public function AbstractButton(){ pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, onPressTimerHandler); buttonMode = true; mouseChildren = false; addEventListener(MouseEvent.MOUSE_UP, onMouseEventHandler, false, EventPriority.HIGH); addEventListener(MouseEvent.MOUSE_DOWN, onMouseEventHandler, false, EventPriority.HIGH); addEventListener(MouseEvent.ROLL_OVER, onMouseEventHandler, false, EventPriority.HIGH); addEventListener(MouseEvent.ROLL_OUT, onMouseEventHandler, false, EventPriority.HIGH); addEventListener(MouseEvent.CLICK, onMouseClickHandler, false, EventPriority.HIGH); } private function onMouseClickHandler(_arg1:MouseEvent):void{ mouseClicked(); } protected function updatePhase():void{ } public function get autoRepeat():Boolean{ return (_autoRepeat); } private function onPressTimerHandler(_arg1:TimerEvent):void{ if (!_autoRepeat){ pressTimer.reset(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = getStyle("repeatInterval"); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function mouseClicked():void{ if (mouseClickHandler != null){ mouseClickHandler(this); }; if (_toggle){ selected = !(selected); }; } public function get toggle():Boolean{ return (_toggle); } public function set useBeacon(_arg1:Boolean):void{ var _local2:IBeacon; if (_arg1){ _local2 = getStyle("beacon"); if (_local2){ _beacon = _local2.clone(); _beacon.apply(this.beaconTarget); }; } else { if (_beacon){ _beacon.dispose(); _beacon = null; }; }; } override protected function validateStyles():void{ super.validateStyles(); rollOverHandler = getStyle("rollOverHandler"); rollOutHandler = getStyle("rollOutHandler"); mouseDownHandler = getStyle("mouseDownHandler"); mouseClickHandler = getStyle("mouseClickHandler"); } override public function set enabled(_arg1:Boolean):void{ if (_enabled != _arg1){ _phase = PHASE_UP; invalidateProperties(); invalidateSize(); super.enabled = _arg1; }; } public function get selected():Boolean{ return (_selected); } override public function dispose():void{ removeEventListener(MouseEvent.MOUSE_UP, onMouseEventHandler); removeEventListener(MouseEvent.MOUSE_DOWN, onMouseEventHandler); removeEventListener(MouseEvent.ROLL_OVER, onMouseEventHandler); removeEventListener(MouseEvent.ROLL_OUT, onMouseEventHandler); removeEventListener(MouseEvent.CLICK, onMouseClickHandler); pressTimer.reset(); pressTimer.removeEventListener(TimerEvent.TIMER, onPressTimerHandler); if (_beacon){ _beacon.dispose(); _beacon = null; }; pressTimer = null; rollOverHandler = null; rollOutHandler = null; mouseDownHandler = null; mouseClickHandler = null; super.dispose(); } public function set toggle(_arg1:Boolean):void{ if (_toggle != _arg1){ _toggle = _arg1; invalidateProperties(); invalidateSize(); }; } override protected function validateProperties():void{ super.validateProperties(); updatePhase(); } public function get useBeacon():Boolean{ return (!((_beacon == null))); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } protected function get beaconTarget():DisplayObject{ throw (new Error("Method must be overriden in subclass.")); } private function onMouseEventHandler(_arg1:MouseEvent):void{ switch (_arg1.type){ case MouseEvent.ROLL_OVER: if (rollOverHandler != null){ rollOverHandler(this); }; _phase = PHASE_OVER; break; case MouseEvent.ROLL_OUT: if (rollOutHandler != null){ rollOutHandler(this); }; _phase = PHASE_UP; break; case MouseEvent.MOUSE_DOWN: if (mouseDownHandler != null){ mouseDownHandler(this); }; _phase = PHASE_DOWN; break; case MouseEvent.MOUSE_UP: _phase = PHASE_OVER; break; }; if (_phase == PHASE_DOWN){ if (_autoRepeat){ pressTimer.delay = getStyle("repeatDelay"); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } else { pressTimer.reset(); }; invalidateProperties(); invalidateSize(); } public function set selected(_arg1:Boolean):void{ if (_selected != _arg1){ _selected = _arg1; if (_toggle){ dispatchEvent(new ComponentEvent(ComponentEvent.CHANGE, true)); invalidateProperties(); invalidateSize(); }; }; } public static function get defaultStyles():Object{ var _local1:Object = {repeatDelay:500, repeatInterval:50, rollOverHandler:null, rollOutHandler:null, mouseDownHandler:null, mouseClickHandler:null, beacon:null}; return (_local1); } } }//package com.bigwigmedia.ui.controls
Section 366
//AbstractTextComponent (com.bigwigmedia.ui.controls.AbstractTextComponent) package com.bigwigmedia.ui.controls { import com.bigwigmedia.ui.*; import flash.text.*; public class AbstractTextComponent extends Component { protected var _editable:Boolean;// = false protected var _text:String;// = "" protected var _textField:TextField; protected var _htmlText:String;// = null protected var _selectable:Boolean;// = false public function get scrollV():int{ return (_textField.scrollV); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function set scrollV(_arg1:int):void{ _textField.scrollV = _arg1; } public function get selectable():Boolean{ return (_selectable); } public function set text(_arg1:String):void{ if (!_arg1){ _arg1 = ""; }; if (_text != _arg1){ _text = _arg1; invalidateProperties(); invalidateSize(); }; } public function get scrollH():int{ return (_textField.scrollH); } protected function updateTextFieldType():void{ _textField.type = (((_editable) && (_selectable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; _textField.selectable = _selectable; this.mouseChildren = _selectable; } override protected function validateStyles():void{ var _local2:TextFormat; super.validateStyles(); _textField.embedFonts = getStyle("embedFonts"); var _local1:StyleSheet = getStyle("styleSheet"); if (_local1){ _textField.styleSheet = _local1; } else { _textField.styleSheet = null; _local2 = getStyle("textFormat"); _textField.setTextFormat(_local2); _textField.defaultTextFormat = _local2; }; } public function get editable():Boolean{ return (_editable); } public function set wordWrap(_arg1:Boolean):void{ _textField.wordWrap = _arg1; } override protected function validateProperties():void{ if (_htmlText){ _textField.htmlText = _htmlText; } else { _textField.text = _text; }; } public function set selectable(_arg1:Boolean):void{ _selectable = _arg1; updateTextFieldType(); } public function get text():String{ return (_textField.text); } public function set htmlText(_arg1:String):void{ if (_htmlText != _arg1){ _htmlText = _arg1; invalidateProperties(); invalidateSize(); }; } public function get wordWrap():Boolean{ return (_textField.wordWrap); } public function set scrollH(_arg1:int):void{ _textField.scrollH = _arg1; } override protected function validateSize():void{ if (isNaN(_explicitWidth)){ setNotExplicitWidth(_textField.width); } else { _textField.width = this.width; }; if (isNaN(_explicitHeight)){ setNotExplicitHeight(_textField.height); } else { _textField.height = this.height; }; } public function get htmlText():String{ return (_textField.htmlText); } } }//package com.bigwigmedia.ui.controls
Section 367
//Button (com.bigwigmedia.ui.controls.Button) package com.bigwigmedia.ui.controls { import flash.display.*; import flash.text.*; public class Button extends SkinnedButton { protected var _labelColors:Object; protected var _labelField:TextField; protected var _label:String;// = "" public function Button(){ _labelColors = {}; super(); } public function set label(_arg1:String):void{ if (_label != _arg1){ _labelField.text = (_label = _arg1); invalidateSize(); }; } override protected function updatePhase():void{ super.updatePhase(); switch (_phase){ case PHASE_UP: _labelField.textColor = _labelColors[(_selected) ? "selectedLabelColor" : "upLabelColor"]; break; case PHASE_OVER: _labelField.textColor = _labelColors["overLabelColor"]; break; default: _labelField.textColor = _labelColors["downLabelColor"]; break; }; } public function get label():String{ return (_label); } override protected function validateSize():void{ var _local4:Number; var _local5:Number; var _local1:Number = getStyle("padding"); var _local2:Number = getStyle("iconGap"); var _local3:String = getStyle("labelPlacement"); if (isNaN(_explicitWidth)){ if (_currentSkin){ _local4 = _currentSkin.width; } else { if (_currentIcon){ if ((((_local3 == "left")) || ((_local3 == "right")))){ _local4 = (((_labelField.width + (_local1 * 2)) + _currentIcon.width) + _local2); } else { _local4 = (Math.max(_labelField.width, _currentIcon.width) + (_local1 * 2)); }; } else { _local4 = (_labelField.width + (_local1 * 2)); }; }; setNotExplicitWidth(_local4); } else { _local4 = _explicitWidth; }; if (_currentIcon){ if ((((_local3 == "left")) || ((_local3 == "right")))){ _labelField.x = ((_local3 == "left")) ? _local1 : ((_local4 - _labelField.width) - _local1); _currentIcon.x = ((_local3 == "right")) ? _local1 : ((_local4 - _currentIcon.width) - _local1); } else { _labelField.x = ((_local4 - _labelField.width) / 2); _currentIcon.x = ((_local4 - _currentIcon.width) / 2); }; } else { _labelField.x = ((_local4 - _labelField.width) / 2); }; if (_currentSkin){ _currentSkin.width = _local4; }; if (isNaN(_explicitHeight)){ if (_currentSkin){ _local5 = _currentSkin.height; } else { if (_currentIcon){ if ((((_local3 == "top")) || ((_local3 == "bottom")))){ _local5 = (((_labelField.height + (_local1 * 2)) + _currentIcon.height) + _local2); } else { _local5 = (Math.max(_labelField.height, _currentIcon.height) + (_local1 * 2)); }; } else { _local5 = (_labelField.height + (_local1 * 2)); }; }; setNotExplicitHeight(_local5); } else { _local5 = _explicitHeight; }; if (_currentIcon){ if ((((_local3 == "top")) || ((_local3 == "bottom")))){ _labelField.y = ((_local3 == "top")) ? _local1 : ((_local5 - _labelField.height) - _local1); _currentIcon.y = ((_local3 == "bottom")) ? _local1 : ((_local5 - _currentIcon.height) - _local1); } else { _labelField.y = ((_local5 - _labelField.height) / 2); _currentIcon.y = ((_local5 - _currentIcon.height) / 2); }; } else { _labelField.y = ((_local5 - _labelField.height) / 2); }; if (_currentSkin){ _currentSkin.height = _local5; }; drawBackground(); } override protected function validateStyles():void{ super.validateStyles(); _labelField.embedFonts = getStyle("embedFonts"); var _local1:TextFormat = getStyle("textFormat"); _labelField.setTextFormat(_local1); _labelField.defaultTextFormat = _local1; _labelColors["upLabelColor"] = getStyle("upLabelColor"); _labelColors["overLabelColor"] = getStyle("overLabelColor"); _labelColors["downLabelColor"] = getStyle("downLabelColor"); _labelColors["selectedLabelColor"] = getStyle("selectedLabelColor"); } override protected function createChildren():void{ _labelField = new TextField(); _labelField.type = TextFieldType.DYNAMIC; _labelField.selectable = false; _labelField.autoSize = TextFieldAutoSize.LEFT; addChild(_labelField); super.createChildren(); } override protected function get beaconTarget():DisplayObject{ return (_labelField); } public static function get defaultStyles():Object{ var _local1:Object = {upLabelColor:0, overLabelColor:0x808080, downLabelColor:0xFFFFFF, selectedLabelColor:0xFFFFFF, labelPlacement:"right", padding:2, iconGap:6}; return (_local1); } } }//package com.bigwigmedia.ui.controls
Section 368
//HScrollBar (com.bigwigmedia.ui.controls.HScrollBar) package com.bigwigmedia.ui.controls { import com.bigwigmedia.ui.controls.scrollClasses.*; public class HScrollBar extends ScrollBar { public function HScrollBar(){ this.width = 100; this.height = 14; } override protected function get convertedWidth():Number{ return (height); } override protected function validateSize():void{ _upArrow.width = (_downArrow.width = height); _downArrow.x = (width - _downArrow.width); _track.width = height; _track.height = width; minWidth = ((MIN_SIZE + _upArrow.width) + _downArrow.width); positionThumb(); } override protected function get convertedHeight():Number{ return (width); } override protected function createChildren():void{ super.createChildren(); _track.rotation = (_upArrow.rotation = (_downArrow.rotation = (_thumb.rotation = -90))); _track.scaleX = (_upArrow.scaleX = (_downArrow.scaleX = (_thumb.scaleX = -1))); } override public function get mouseY():Number{ return (super.mouseX); } override protected function set thumbPosition(_arg1:Number):void{ _thumb.x = _arg1; } override protected function get thumbPosition():Number{ return (_thumb.x); } } }//package com.bigwigmedia.ui.controls
Section 369
//HSlider (com.bigwigmedia.ui.controls.HSlider) package com.bigwigmedia.ui.controls { import com.bigwigmedia.ui.controls.sliderClasses.*; public class HSlider extends Slider { public function HSlider(){ this.width = 100; this.height = 14; } override protected function get convertedWidth():Number{ return (height); } override protected function validateSize():void{ _track.height = convertedHeight; _track.y = ((height - _track.width) / 2); _thumb.y = ((height - _thumb.width) / 2); positionThumb(); } override protected function correctedValue(_arg1:Number):Number{ return ((_minimum + _arg1)); } override protected function get convertedHeight():Number{ return (width); } override protected function createChildren():void{ super.createChildren(); _track.rotation = (_thumb.rotation = -90); _track.scaleX = (_thumb.scaleX = -1); } override public function get mouseY():Number{ return (super.mouseX); } override protected function positionThumb():void{ super.positionThumb(); var _local1:Number = (_value - _minimum); _thumb.x = ((_local1 / (_maximum - _minimum)) * convertedHeight); } } }//package com.bigwigmedia.ui.controls
Section 370
//Image (com.bigwigmedia.ui.controls.Image) package com.bigwigmedia.ui.controls { import flash.display.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.events.*; import flash.utils.*; import com.bigwigmedia.loaders.*; public class Image extends Component { private var _displayObject:DisplayObject;// = null private var _loader:ISWFLoader;// = null private var _source:Object;// = null public function Image(){ this.mouseChildren = false; } override protected function validateProperties():void{ clear(); if (_source == null){ return; }; if ((_source is DisplayObject)){ _displayObject = DisplayObject(_source); } else { if ((_source is BitmapData)){ _displayObject = new Bitmap(BitmapData(_source), getPixelSnapping(), getStyle("bitmapSmoothing")); } else { if ((_source is Class)){ if (getQualifiedSuperclassName(_source) == "flash.display::BitmapData"){ _displayObject = new Bitmap(new _source(0, 0), getPixelSnapping(), getStyle("bitmapSmoothing")); } else { _displayObject = new _source(); }; } else { if ((_source is String)){ _loader = new SWFLoader(String(_source)); _loader.addEventListener(LoaderEvent.READY, onLoaderReadyHandler); _loader.load(); }; }; }; }; if (_displayObject){ addChild(_displayObject); }; } private function getPixelSnapping():String{ var _local1:String = getStyle("bitmapPixelSnapping"); switch (_local1){ case "always": return (PixelSnapping.ALWAYS); case "never": return (PixelSnapping.NEVER); }; return (PixelSnapping.AUTO); } private function clear():void{ if (_loader){ _loader.removeEventListener(LoaderEvent.READY, onLoaderReadyHandler); _loader.dispose(); _loader = null; }; if (_displayObject){ removeChild(_displayObject); _displayObject = null; }; } public function set source(_arg1:Object):void{ if (_source == _arg1){ return; }; _source = _arg1; invalidateProperties(); invalidateSize(); } override protected function validateSize():void{ if (isNaN(_explicitWidth)){ setNotExplicitWidth((_displayObject) ? _displayObject.width : 0); } else { if (_displayObject){ _displayObject.width = this.width; }; }; if (isNaN(_explicitHeight)){ setNotExplicitHeight((_displayObject) ? _displayObject.height : 0); } else { if (_displayObject){ _displayObject.height = this.height; }; }; } private function onLoaderReadyHandler(_arg1:LoaderEvent):void{ _displayObject = _loader.content; if ((_displayObject is Bitmap)){ Bitmap(_displayObject).pixelSnapping = getPixelSnapping(); Bitmap(_displayObject).smoothing = getStyle("bitmapSmoothing"); }; addChild(_displayObject); invalidateSize(); } override public function dispose():void{ clear(); _source = null; super.dispose(); } public static function get defaultStyles():Object{ var _local1:Object = {bitmapPixelSnapping:"auto", bitmapSmoothing:false}; return (_local1); } } }//package com.bigwigmedia.ui.controls
Section 371
//Label (com.bigwigmedia.ui.controls.Label) package com.bigwigmedia.ui.controls { import flash.text.*; public class Label extends AbstractTextComponent { public function Label(){ this.selectable = false; this.editable = false; } override protected function createChildren():void{ _textField = new TextField(); _textField.wordWrap = false; _textField.multiline = false; _textField.autoSize = TextFieldAutoSize.LEFT; addChild(_textField); } } }//package com.bigwigmedia.ui.controls
Section 372
//LabelButton (com.bigwigmedia.ui.controls.LabelButton) package com.bigwigmedia.ui.controls { import flash.display.*; public class LabelButton extends Button { override protected function get decorationTarget():DisplayObject{ return (_labelField); } override protected function getSkin():DisplayObject{ return (null); } } }//package com.bigwigmedia.ui.controls
Section 373
//List (com.bigwigmedia.ui.controls.List) package com.bigwigmedia.ui.controls { import flash.events.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.events.*; import flash.geom.*; import com.bigwigmedia.ui.controls.listClasses.*; public class List extends ScrollPane { private var _allowMultipleSelection:Boolean;// = false private var _data:Array; private var _cellRendereres:Array; private var _redrawCellRenderers:Boolean;// = false private var _selectedItemsIndices:Array; private var _rowHeight:Number;// = 32 private var _minVisibleIndex:int;// = -1 private var _numItems:int;// = 0 private var _selectable:Boolean;// = true public function List(){ _data = []; _cellRendereres = []; _selectedItemsIndices = []; super(); addEventListener(MouseEvent.CLICK, onMouseClickHandler); } private function dispatchListEvent(_arg1:String, _arg2:int=-1):void{ dispatchEvent(new ListEvent(_arg1, _arg2, ((_arg2 < 0)) ? null : getItemAt(_arg2), true)); } public function removeAllItems():void{ removeCellRenderers(); _data = []; _numItems = 0; _redrawCellRenderers = true; invalidateProperties(); invalidateChildren(); } public function set selectedIndices(_arg1:Array):void{ if (!_allowMultipleSelection){ return; }; _selectedItemsIndices = _arg1; invalidateProperties(); } private function onMouseClickHandler(_arg1:MouseEvent):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local2:ListItemRenderer = (_arg1.target as ListItemRenderer); if (!_local2){ return; }; var _local3:int = _local2.index; var _local4:Boolean; if (_arg1.ctrlKey){ _local5 = _selectedItemsIndices.indexOf(_local3); if (_local5 == -1){ _selectedItemsIndices.push(_local3); } else { _selectedItemsIndices.splice(_local5, 1); }; _local4 = true; } else { if (_allowMultipleSelection){ if (((_arg1.shiftKey) && ((_selectedItemsIndices.length > 0)))){ _local6 = _selectedItemsIndices.length; _local7 = int.MAX_VALUE; _local8 = int.MIN_VALUE; _local9 = 0; while (_local9 < _local6) { _local10 = _selectedItemsIndices[_local9]; if (_local10 < _local7){ _local7 = _local10; }; if (_local10 > _local8){ _local8 = _local10; }; _local9++; }; if (_local3 <= _local7){ _local8 = _local7; _local7 = _local3; } else { if (_local3 >= _local8){ _local7 = _local8; _local8 = _local3; }; }; _selectedItemsIndices = []; _local9 = _local7; while (_local9 <= _local8) { _selectedItemsIndices.push(_local9); _local9++; }; _local4 = true; } else { _selectedItemsIndices = [_local3]; _local4 = true; }; } else { if (_selectedItemsIndices[0] != _local3){ _selectedItemsIndices = [_local3]; _local4 = true; }; }; }; dispatchListEvent(ListEvent.ITEM_CLICK, _local3); if (_local4){ invalidateProperties(); dispatchListEvent(ListEvent.SELECTION_CHANGE, _local3); }; } public function removeItemAt(_arg1:int):Object{ if ((((_arg1 < 0)) || ((_arg1 >= _numItems)))){ throw (new RangeError((((("Index (" + String(_arg1)) + ") is not in acceptable range (0 - ") + String((_numItems - 1))) + ")"))); }; _numItems = (_data.length - 1); _redrawCellRenderers = true; invalidateProperties(); invalidateChildren(); return (_data.splice(_arg1, 1)[0]); } public function get selectedIndices():Array{ if (!_allowMultipleSelection){ return ([]); }; return (_selectedItemsIndices); } public function get selectedItem():Object{ if (((_allowMultipleSelection) || ((_selectedItemsIndices[0] === undefined)))){ return (null); }; return (getItemAt(_selectedItemsIndices[0])); } public function getItemIndex(_arg1:Object):int{ return (_data.indexOf(_arg1)); } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } public function set data(_arg1:Array):void{ _data = _arg1; _numItems = _data.length; _redrawCellRenderers = true; invalidateProperties(); invalidateChildren(); } public function get selectable():Boolean{ return (_selectable); } public function addItem(_arg1:Object):void{ addItemAt(_arg1, _numItems); } public function getItemAt(_arg1:int):Object{ return (_data[_arg1]); } override public function dispose():void{ removeCellRenderers(); super.dispose(); } public function addItemAt(_arg1:Object, _arg2:int):void{ if ((((_arg2 < 0)) || ((_arg2 > _numItems)))){ throw (new RangeError((((("Index (" + String(_arg2)) + ") is not in acceptable range (0 - ") + String((_numItems - 1))) + ")"))); }; _data.splice(_arg2, 0, _arg1); _numItems = _data.length; _redrawCellRenderers = true; invalidateProperties(); invalidateChildren(); } override protected function validateProperties():void{ var _local1:ListItemRenderer; for each (_local1 in _cellRendereres) { _local1.selected = !((_selectedItemsIndices.indexOf(_local1.index) == -1)); }; _contentHeight = (_numItems * _rowHeight); calculateAvailableSize(); updateScrollBarsProperties(); } public function set selectable(_arg1:Boolean):void{ if (_selectable != _arg1){ _selectable = _arg1; if (!_selectable){ clearSelection(); }; _redrawCellRenderers = true; invalidateChildren(); }; } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_allowMultipleSelection != _arg1){ _allowMultipleSelection = _arg1; if (!_allowMultipleSelection){ clearSelection(); }; _redrawCellRenderers = true; invalidateChildren(); }; } private function removeCellRenderers():void{ var _local1:ListItemRenderer; while (_cellRendereres.length > 0) { _local1 = _cellRendereres.pop(); _contentHolder.removeChild(_local1); _local1.dispose(); }; } override protected function validateChildren():void{ var _local2:int; var _local3:int; var _local4:ListItemRenderer; _contentHolder.scrollRect = new Rectangle(0, _verticalScrollBar.scrollPosition, _availableWidth, _availableHeight); var _local1:int = (_verticalScrollBar.scrollPosition / _rowHeight); if (((_redrawCellRenderers) || (!((_local1 == _minVisibleIndex))))){ removeCellRenderers(); _minVisibleIndex = _local1; _local2 = Math.min((_numItems - 1), ((_minVisibleIndex + (_availableHeight / _rowHeight)) + 1)); _local3 = _minVisibleIndex; while (_local3 <= _local2) { _local4 = new ListItemRenderer(_local3); _local4.label = _data[_local3].label; _local4.y = (_local3 * _rowHeight); _local4.height = _rowHeight; _local4.width = _availableWidth; _local4.selected = !((_selectedItemsIndices.indexOf(_local3) == -1)); _local4.enabled = _selectable; _cellRendereres.push(_local4); _contentHolder.addChild(_local4); _local3++; }; }; _redrawCellRenderers = false; } public function removeItem(_arg1:Object):Object{ return (removeItemAt(getItemIndex(_arg1))); } public function set selectedIndex(_arg1:int):void{ if (((_allowMultipleSelection) || ((_selectedItemsIndices[0] === _arg1)))){ return; }; if ((((_arg1 < 0)) || ((_arg1 >= _numItems)))){ throw (new RangeError((((("Index (" + String(_arg1)) + ") is not in acceptable range (0 - ") + String((_numItems - 1))) + ")"))); }; _selectedItemsIndices[0] = _arg1; invalidateProperties(); dispatchListEvent(ListEvent.SELECTION_CHANGE, _arg1); } public function get selectedIndex():int{ if (((_allowMultipleSelection) || ((_selectedItemsIndices[0] === undefined)))){ return (-1); }; return (_selectedItemsIndices[0]); } public function clearSelection():void{ if (_selectedItemsIndices.length > 0){ _selectedItemsIndices = []; invalidateProperties(); dispatchListEvent(ListEvent.SELECTION_CHANGE, -1); }; } } }//package com.bigwigmedia.ui.controls
Section 374
//SkinnedButton (com.bigwigmedia.ui.controls.SkinnedButton) package com.bigwigmedia.ui.controls { import flash.display.*; import flash.utils.*; import com.bigwigmedia.ui.decorations.*; public class SkinnedButton extends AbstractButton { protected var _decorations:Object; protected var _currentDecoration:IDecoration;// = null protected var _currentIcon:DisplayObject;// = null protected var _currentSkin:DisplayObject;// = null protected var _icons:Object; protected var _skins:Object; public function SkinnedButton(){ _skins = {}; _icons = {}; _decorations = {}; super(); } override protected function createChildren():void{ updatePhase(); } protected function getIcon():DisplayObject{ var _local1:DisplayObject; switch (_phase){ case PHASE_UP: _local1 = _icons[(_selected) ? "selectedIcon" : "upIcon"]; break; case PHASE_OVER: _local1 = _icons["overIcon"]; break; default: _local1 = _icons["downIcon"]; break; }; return (((_local1) || (_icons["icon"]))); } protected function getSkin():DisplayObject{ var _local1:DisplayObject; switch (_phase){ case PHASE_UP: _local1 = _skins[(_selected) ? "selectedSkin" : "upSkin"]; break; case PHASE_OVER: _local1 = _skins["overSkin"]; break; default: _local1 = _skins["downSkin"]; break; }; return (((_local1) || (_skins["upSkin"]))); } override protected function validateSize():void{ if (isNaN(_explicitWidth)){ setNotExplicitWidth(_currentSkin.width); } else { _currentSkin.width = this.width; }; if (isNaN(_explicitHeight)){ setNotExplicitHeight(_currentSkin.height); } else { _currentSkin.height = this.height; }; if (_currentIcon){ _currentIcon.x = ((this.width - _currentIcon.width) / 2); _currentIcon.y = ((this.height - _currentIcon.height) / 2); }; drawBackground(); } protected function get decorationTarget():DisplayObject{ return (_currentSkin); } override protected function updatePhase():void{ var _local3:IDecoration; var _local1:DisplayObject = getSkin(); var _local2:DisplayObject = getIcon(); switch (_phase){ case PHASE_UP: _local3 = _decorations[(_selected) ? "selectedDecoration" : "upDecoration"]; break; case PHASE_OVER: _local3 = _decorations["overDecoration"]; break; case PHASE_DOWN: _local3 = _decorations["downDecoration"]; break; }; if (((((!((_currentDecoration == _local3))) && (_currentDecoration))) && (decorationTarget))){ _currentDecoration.remove(decorationTarget); }; if (_currentSkin != _local1){ if (_currentSkin){ removeChild(_currentSkin); }; _currentSkin = _local1; if (_currentSkin){ addChildAt(_currentSkin, 0); }; }; if (_currentIcon != _local2){ if (_currentIcon){ removeChild(_currentIcon); }; _currentIcon = _local2; if (_currentIcon){ addChildAt(_currentIcon, (_currentSkin) ? (getChildIndex(_currentSkin) + 1) : 0); }; }; if (((!((_currentDecoration == _local3))) && (decorationTarget))){ if (_local3){ _local3.apply(decorationTarget); }; _currentDecoration = _local3; }; } override protected function validateStyles():void{ super.validateStyles(); _skins["upSkin"] = getElementDisplayObject(getStyle("upSkin")); _skins["overSkin"] = getElementDisplayObject(getStyle("overSkin")); _skins["downSkin"] = getElementDisplayObject(getStyle("downSkin")); _skins["selectedSkin"] = getElementDisplayObject(getStyle("selectedSkin")); _icons["icon"] = getElementDisplayObject(getStyle("icon")); _icons["upIcon"] = getElementDisplayObject(getStyle("upIcon")); _icons["overIcon"] = getElementDisplayObject(getStyle("overIcon")); _icons["downIcon"] = getElementDisplayObject(getStyle("downIcon")); _icons["selectedIcon"] = getElementDisplayObject(getStyle("selectedIcon")); _decorations["upDecoration"] = getStyle("upDecoration"); _decorations["overDecoration"] = getStyle("overDecoration"); _decorations["downDecoration"] = getStyle("downDecoration"); _decorations["selectedDecoration"] = getStyle("selectedDecoration"); } override protected function get beaconTarget():DisplayObject{ return (_currentSkin); } protected function getElementDisplayObject(_arg1:Object):DisplayObject{ if ((_arg1 is Class) == false){ return (DisplayObject(_arg1)); }; if (getQualifiedSuperclassName(_arg1) == "flash.display::BitmapData"){ return (new Bitmap(new _arg1(0, 0), PixelSnapping.AUTO, true)); }; return (new (_arg1)); } override public function dispose():void{ super.dispose(); if (_currentSkin){ removeChild(_currentSkin); _currentSkin = null; }; if (_currentIcon){ removeChild(_currentIcon); _currentIcon = null; }; _skins = {}; _icons = {}; _decorations = {}; } public static function get defaultStyles():Object{ var _local1:Object = {upSkin:DefaultSkin, overSkin:null, downSkin:null, selectedSkin:null, icon:null, upIcon:null, overIcon:null, downIcon:null, selectedIcon:null, upDecoration:null, overDecoration:null, downDecoration:null, selectedDecoration:null}; return (_local1); } } }//package com.bigwigmedia.ui.controls import flash.display.*; import flash.geom.*; class DefaultSkin extends Shape { public static const WIDTH:Number = 48; public static const HEIGHT:Number = 24; private function DefaultSkin(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((WIDTH - 2), (HEIGHT - 2), (Math.PI / 2), 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); } }
Section 375
//Spacer (com.bigwigmedia.ui.controls.Spacer) package com.bigwigmedia.ui.controls { import com.bigwigmedia.ui.*; public class Spacer extends Component { override protected function validateSize():void{ graphics.clear(); graphics.beginFill(getStyle("fillColor"), getStyle("fillAlpha")); graphics.drawRect(0, 0, width, height); graphics.endFill(); } public static function get defaultStyles():Object{ var _local1:Object = {fillColor:0xFFFFFF, fillAlpha:0}; return (_local1); } } }//package com.bigwigmedia.ui.controls
Section 376
//Text (com.bigwigmedia.ui.controls.Text) package com.bigwigmedia.ui.controls { public class Text extends Label { override protected function createChildren():void{ super.createChildren(); _textField.wordWrap = true; _textField.multiline = true; } } }//package com.bigwigmedia.ui.controls
Section 377
//TextArea (com.bigwigmedia.ui.controls.TextArea) package com.bigwigmedia.ui.controls { import flash.events.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.events.*; public class TextArea extends TextInput { protected var _horizontalScrollPolicy:String;// = "auto" protected var _horizontalScrollBar:HScrollBar; protected var _verticalScrollPolicy:String;// = "auto" protected var _showVScrollBar:Boolean; protected var _verticalScrollBar:VScrollBar; protected var _showHScrollBar:Boolean; public function TextArea(){ this.width = 100; this.height = 100; updateScrollBarsProperties(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; calculateAvailableSize(); updateScrollBarsProperties(); } private function onMouseWheelHandler(_arg1:MouseEvent):void{ if (((_enabled) && (_verticalScrollBar.visible))){ _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * _verticalScrollBar.lineScrollSize)); }; } override protected function createChildren():void{ super.createChildren(); _textField.multiline = true; _textField.addEventListener(Event.CHANGE, onTextChangeHandler); _textField.addEventListener(Event.SCROLL, onTextChangeHandler); _horizontalScrollBar = new HScrollBar(); _horizontalScrollBar.visible = false; addChild(_horizontalScrollBar); _verticalScrollBar = new VScrollBar(); _verticalScrollBar.visible = false; addChild(_verticalScrollBar); addEventListener(ScrollEvent.SCROLL, onScrollHandler); addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheelHandler); } private function onScrollHandler(_arg1:ScrollEvent):void{ _arg1.stopPropagation(); if (_showHScrollBar){ _textField.scrollH = _horizontalScrollBar.scrollPosition; }; if (_showVScrollBar){ _textField.scrollV = _verticalScrollBar.scrollPosition; }; } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number = height; _showVScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((_textField.maxScrollV > 1))))); var _local2:Number = (width - (_showVScrollBar) ? _verticalScrollBar.width : 0); _showHScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((_textField.maxScrollH > 1))))); if (_showHScrollBar){ _local1 = (_local1 - _horizontalScrollBar.height); _textField.height = _local1; if (((((!(_showVScrollBar)) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((_textField.maxScrollV > 1)))){ _showVScrollBar = true; _local2 = (_local2 - _verticalScrollBar.width); }; } else { _textField.height = _local1; }; _textField.width = _local2; } protected function updateScrollBarsProperties():void{ _horizontalScrollBar.visible = _showHScrollBar; if (_showHScrollBar){ _horizontalScrollBar.pageSize = _textField.width; _horizontalScrollBar.minScrollPosition = 0; _horizontalScrollBar.maxScrollPosition = _textField.maxScrollH; _horizontalScrollBar.scrollPosition = _textField.scrollH; }; _verticalScrollBar.visible = _showVScrollBar; if (_showVScrollBar){ _verticalScrollBar.pageSize = ((_textField.bottomScrollV - _textField.scrollV) + 1); _verticalScrollBar.minScrollPosition = 1; _verticalScrollBar.maxScrollPosition = _textField.maxScrollV; _verticalScrollBar.scrollPosition = _textField.scrollV; }; } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; calculateAvailableSize(); updateScrollBarsProperties(); } private function onTextChangeHandler(_arg1:Event):void{ calculateAvailableSize(); updateScrollBarsProperties(); } override protected function validateProperties():void{ super.validateProperties(); calculateAvailableSize(); updateScrollBarsProperties(); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } override protected function validateSize():void{ super.validateSize(); calculateAvailableSize(); _horizontalScrollBar.x = 0; _horizontalScrollBar.y = (height - _horizontalScrollBar.height); _horizontalScrollBar.width = (width - (_showVScrollBar) ? _verticalScrollBar.width : 0); _verticalScrollBar.x = (width - _verticalScrollBar.width); _verticalScrollBar.y = 0; _verticalScrollBar.height = (height - (_showHScrollBar) ? _horizontalScrollBar.height : 0); drawBackground(); } } }//package com.bigwigmedia.ui.controls
Section 378
//TextInput (com.bigwigmedia.ui.controls.TextInput) package com.bigwigmedia.ui.controls { import flash.display.*; import flash.text.*; public class TextInput extends AbstractTextComponent { protected var _skin:DisplayObject; public function TextInput(){ this.editable = true; this.selectable = true; } override protected function validateStyles():void{ super.validateStyles(); if (_skin){ removeChild(_skin); _skin = null; }; var _local1:Class = getStyle("skin"); if (_local1){ _skin = new (_local1); addChildAt(_skin, 0); }; _textField.background = getStyle("background"); _textField.backgroundColor = getStyle("backgroundColor"); _textField.border = getStyle("border"); _textField.borderColor = getStyle("borderColor"); _textField.embedFonts = getStyle("embedFonts"); var _local2:TextFormat = getStyle("textFormat"); _textField.setTextFormat(_local2); _textField.defaultTextFormat = _local2; } public function get displayAsPassword():Boolean{ return (_textField.displayAsPassword); } public function set maxChars(_arg1:int):void{ _textField.maxChars = _arg1; } override protected function validateSize():void{ var _local1:Number = getStyle("textPadding"); if (isNaN(_explicitWidth)){ setNotExplicitWidth((_skin) ? _skin.width : (_textField.width + (_local1 * 2))); _textField.width = (_skin) ? _skin.width : 100; } else { if (_skin){ _skin.width = this.width; }; _textField.width = (this.width - (_local1 * 2)); }; _textField.x = _local1; if (isNaN(_explicitHeight)){ setNotExplicitHeight((_skin) ? _skin.height : (_textField.height + (_local1 * 2))); _textField.height = (_skin) ? _skin.height : 24; } else { if (_skin){ _skin.height = this.height; }; _textField.height = (this.height - (_local1 * 2)); }; _textField.y = _local1; } public function set restrict(_arg1:String):void{ _textField.restrict = _arg1; } public function get maxChars():int{ return (_textField.maxChars); } override protected function createChildren():void{ _textField = new TextField(); _textField.wordWrap = false; _textField.multiline = false; addChild(_textField); } public function get restrict():String{ return (_textField.restrict); } public function set displayAsPassword(_arg1:Boolean):void{ _textField.displayAsPassword = _arg1; } public static function get defaultStyles():Object{ var _local1:Object = {skin:DefaultSkin, textPadding:2, background:false, backgroundColor:0xFFFFFF, border:false, borderColor:0}; return (_local1); } } }//package com.bigwigmedia.ui.controls import flash.display.*; import flash.geom.*; class DefaultSkin extends Shape { public static const WIDTH:Number = 100; public static const HEIGHT:Number = 24; private function DefaultSkin(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((WIDTH - 2), (HEIGHT - 2), (Math.PI / 2), 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xDDDDDD], [1, 1], [0, 0xFF], _local1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); } }
Section 379
//ToolTip (com.bigwigmedia.ui.controls.ToolTip) package com.bigwigmedia.ui.controls { import flash.display.*; import com.bigwigmedia.ui.*; import flash.text.*; public class ToolTip extends Component { protected var _text:String;// = "" protected var _textField:TextField; protected var _skin:DisplayObject; public static const MAX_WIDTH:Number = 300; public function ToolTip(){ this.mouseEnabled = false; this.mouseChildren = false; } override protected function validateProperties():void{ var _local1:Number = getStyle("textPadding"); _textField.wordWrap = false; _textField.text = _text; if (_textField.textWidth > (MAX_WIDTH - (_local1 * 2))){ _textField.width = (MAX_WIDTH - (_local1 * 2)); _textField.wordWrap = true; }; } public function get text():String{ return (_text); } override protected function validateSize():void{ var _local1:Number = getStyle("textPadding"); _textField.x = (_textField.y = _local1); width = (_skin.width = (_textField.width + (_local1 * 2))); height = (_skin.height = (_textField.height + (_local1 * 2))); } override protected function validateStyles():void{ _textField.embedFonts = getStyle("embedFonts"); var _local1:TextFormat = getStyle("textFormat"); _textField.setTextFormat(_local1); _textField.defaultTextFormat = _local1; super.validateStyles(); } public function set text(_arg1:String):void{ if (_text != _arg1){ _text = _arg1; invalidateProperties(); invalidateSize(); }; } override protected function createChildren():void{ var _local1:Class = getStyle("skin"); _skin = new (_local1); addChild(_skin); _textField = new TextField(); _textField.autoSize = TextFieldAutoSize.LEFT; _textField.selectable = false; _textField.background = false; _textField.wordWrap = false; _textField.width = MAX_WIDTH; _textField.multiline = true; addChild(_textField); } public static function get defaultStyles():Object{ var _local1:Object = {skin:DefaultSkin, textPadding:4}; return (_local1); } } }//package com.bigwigmedia.ui.controls import flash.display.*; import flash.geom.*; class DefaultSkin extends Shape { public static const WIDTH:Number = 48; public static const HEIGHT:Number = 24; public static const CORNER_RADIUS:Number = 8; private function DefaultSkin(){ graphics.beginFill(16777184); graphics.drawRoundRect(0, 0, WIDTH, HEIGHT, CORNER_RADIUS, CORNER_RADIUS); graphics.endFill(); this.scale9Grid = new Rectangle(CORNER_RADIUS, CORNER_RADIUS, (WIDTH - (CORNER_RADIUS * 2)), (HEIGHT - (CORNER_RADIUS * 2))); } }
Section 380
//VScrollBar (com.bigwigmedia.ui.controls.VScrollBar) package com.bigwigmedia.ui.controls { import com.bigwigmedia.ui.controls.scrollClasses.*; public class VScrollBar extends ScrollBar { public function VScrollBar(){ this.width = 14; this.height = 100; } override protected function get convertedWidth():Number{ return (width); } override protected function validateSize():void{ _upArrow.width = (_downArrow.width = width); _downArrow.y = (height - _downArrow.height); _track.width = width; _track.height = height; minHeight = ((MIN_SIZE + _upArrow.height) + _downArrow.height); positionThumb(); } override protected function get convertedHeight():Number{ return (height); } override protected function set thumbPosition(_arg1:Number):void{ _thumb.y = _arg1; } override protected function get thumbPosition():Number{ return (_thumb.y); } } }//package com.bigwigmedia.ui.controls
Section 381
//ColorBeacon (com.bigwigmedia.ui.decorations.ColorBeacon) package com.bigwigmedia.ui.decorations { import flash.display.*; import flash.events.*; import flash.geom.*; import fl.motion.*; public class ColorBeacon implements IBeacon { private var _dFrameCounter:Number; private var _color:uint; private var _multiplier:Number; private var _frameCounter:Number;// = 0 private var _colorTransform:Color; private var _target:DisplayObject; private var _period:int; public function ColorBeacon(_arg1:uint=0xFFFFFF, _arg2:Number=1, _arg3:int=30){ _colorTransform = new Color(); super(); _color = _arg1; _multiplier = _arg2; _period = _arg3; _colorTransform.tintColor = _arg1; _dFrameCounter = ((2 * Math.PI) / _arg3); } public function set color(_arg1:uint):void{ _color = _arg1; } public function remove(_arg1:DisplayObject):void{ dispose(); } public function get color():uint{ return (_color); } public function dispose():void{ _target.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); _target.transform.colorTransform = new ColorTransform(); _target = null; } public function clone():IBeacon{ return (new ColorBeacon(_color, _multiplier, _period)); } public function apply(_arg1:DisplayObject):void{ _target = _arg1; _target.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); } private function onEnterFrameHandler(_arg1:Event):void{ _colorTransform.tintMultiplier = ((_multiplier / 2) * (1 + Math.sin(_frameCounter))); _target.transform.colorTransform = _colorTransform; _frameCounter = (_frameCounter + _dFrameCounter); if (_frameCounter >= (2 * Math.PI)){ _frameCounter = 0; }; } } }//package com.bigwigmedia.ui.decorations
Section 382
//ColorDecoration (com.bigwigmedia.ui.decorations.ColorDecoration) package com.bigwigmedia.ui.decorations { import flash.display.*; import flash.geom.*; public class ColorDecoration implements IDecoration { private var _colorTransform:ColorTransform; public function ColorDecoration(_arg1:ColorTransform=null){ _colorTransform = ((_arg1) || (new ColorTransform())); } public function set colorTransform(_arg1:ColorTransform):void{ _colorTransform = _arg1; } public function remove(_arg1:DisplayObject):void{ _arg1.transform.colorTransform = new ColorTransform(); } public function apply(_arg1:DisplayObject):void{ _arg1.transform.colorTransform = _colorTransform; } public function get colorTransform():ColorTransform{ return (_colorTransform); } } }//package com.bigwigmedia.ui.decorations
Section 383
//FilterDecoration (com.bigwigmedia.ui.decorations.FilterDecoration) package com.bigwigmedia.ui.decorations { import flash.display.*; import flash.filters.*; public class FilterDecoration implements IDecoration { private var _filters:Array; public function FilterDecoration(_arg1:Array=null){ _filters = []; super(); this.filters = ((_arg1) || ([])); } public function get filters():Array{ return (_filters); } public function remove(_arg1:DisplayObject):void{ _arg1.filters = []; } public function apply(_arg1:DisplayObject):void{ _arg1.filters = _filters; } public function set filters(_arg1:Array):void{ var _local4:BitmapFilter; var _local2:int = _arg1.length; var _local3:int; while (_local3 < _local2) { _local4 = _arg1[_local3]; _filters.push(_local4.clone()); _local3++; }; } } }//package com.bigwigmedia.ui.decorations
Section 384
//IBeacon (com.bigwigmedia.ui.decorations.IBeacon) package com.bigwigmedia.ui.decorations { import com.bigwigmedia.core.*; public interface IBeacon extends IDecoration, IDisposable { function clone():IBeacon; } }//package com.bigwigmedia.ui.decorations
Section 385
//IDecoration (com.bigwigmedia.ui.decorations.IDecoration) package com.bigwigmedia.ui.decorations { import flash.display.*; public interface IDecoration { function remove(_arg1:DisplayObject):void; function apply(_arg1:DisplayObject):void; } }//package com.bigwigmedia.ui.decorations
Section 386
//TintDecoration (com.bigwigmedia.ui.decorations.TintDecoration) package com.bigwigmedia.ui.decorations { import fl.motion.*; public class TintDecoration extends ColorDecoration implements IDecoration { private var _tintColor:uint; private var _tintMultiplier:Number; public function TintDecoration(_arg1:uint=0, _arg2:Number=1){ _tintColor = _arg1; _tintMultiplier = _arg2; updateColorTransform(); } public function set tintColor(_arg1:uint):void{ _tintColor = _arg1; updateColorTransform(); } private function updateColorTransform():void{ var _local1:Color = new Color(); _local1.setTint(_tintColor, _tintMultiplier); colorTransform = _local1; } public function get tintColor():uint{ return (_tintColor); } public function get tintMultiplier():Number{ return (_tintMultiplier); } public function set tintMultiplier(_arg1:Number):void{ _tintMultiplier = _arg1; updateColorTransform(); } } }//package com.bigwigmedia.ui.decorations
Section 387
//ComponentFactory (com.bigwigmedia.ui.utils.ComponentFactory) package com.bigwigmedia.ui.utils { import com.bigwigmedia.ui.*; import flash.utils.*; import com.bigwigmedia.locale.*; import com.bigwigmedia.utils.reflection.*; import com.bigwigmedia.core.*; public class ComponentFactory { private static var _locale:ILocale; public static function create(_arg1:XML):Component{ var prop:XML; var compContainer:Container; var compClass:Class; var propName:String; var propValue:String; var propInfo:PropertyInfo; var propType:String; var children:XMLList; var childXML:XML; var xml = _arg1; try { compClass = (getDefinitionByName(xml.name()) as Class); } catch(e:Error) { throw (new ReferenceError((("Class \"" + xml.name()) + "\" can't be referenced."))); }; var compClassInfo:ClassInfo = Reflection.getClassInfo(compClass); var component:Component = new (compClass); var props:XMLList = xml.attributes(); for each (prop in props) { propName = prop.name(); propValue = prop.toString(); if (propValue.indexOf("Locale(") == 0){ propValue = locale.getString(propValue.substr(7, (propValue.length - 8))); }; propInfo = compClassInfo.getPropertyInfo(propName, false); if (propInfo){ propType = propInfo.type; switch (propType){ case "Number": case "uint": case "int": if (propValue.indexOf("0x") == 0){ component[propName] = parseInt(propValue); } else { component[propName] = parseFloat(propValue); }; break; case "*": case "String": component[propName] = propValue; break; case "Boolean": component[propName] = (propValue == "true"); break; case "Object": if (propValue.indexOf("(") != -1){ component[propName] = StyleUtil.parseRef(propValue); } else { component[propName] = propValue; }; break; }; } else { if (StyleUtil.isValidStyleName(propName)){ component.setInstanceStyle(propName, StyleUtil.parseStyle(propName, propValue)); }; }; }; compContainer = (component as Container); if (compContainer){ children = xml.children(); for each (childXML in children) { compContainer.addChild(create(childXML)); }; }; return (component); } private static function get locale():ILocale{ if (!_locale){ _locale = ILocale(Singleton.getInstanceByInterface(ILocale)); }; return (_locale); } } }//package com.bigwigmedia.ui.utils
Section 388
//ParseUtil (com.bigwigmedia.ui.utils.ParseUtil) package com.bigwigmedia.ui.utils { import flash.utils.*; import com.bigwigmedia.utils.reflection.*; public class ParseUtil { private static function parseArray(_arg1:String):Array{ var _local3:int; var _local4:RegExp; var _local5:int; var _local6:Object; var _local7:String; var _local8:String; var _local9:RegExp; var _local10:Object; var _local11:int; var _local12:String; var _local2:Array = []; if (_arg1 == ""){ return (_local2); }; while (true) { _local3 = 0; _local4 = /^[\w\.]+(?=\()/gi; if (_local4.exec(_arg1)){ _local6 = getBracedExpression(_arg1, _local4.lastIndex, "("); _local7 = _local6.string; _local8 = _arg1.substring(0, _local4.lastIndex); _local2.push(parseType(_local8, _local7)); _local3 = _local6.lastIndex; } else { _local9 = /^\[(?=.)/ig; if (_local9.exec(_arg1)){ _local10 = getBracedExpression(_arg1, (_local9.lastIndex - 1), "["); _local2.push(parseArray(_local10.string)); _local3 = _local10.lastIndex; } else { _local11 = _arg1.indexOf(","); _local12 = ((_local11 == -1)) ? _arg1 : _arg1.substring(0, _local11); _local2.push(_local12); }; }; _local5 = _arg1.indexOf(",", _local3); if (_local5 == -1){ break; }; _arg1 = _arg1.substring((_local5 + 1)); }; return (_local2); } private static function parseProps(_arg1:String):Object{ var _local4:String; var _local5:String; var _local6:RegExp; var _local7:Object; var _local8:String; var _local9:String; var _local10:RegExp; var _local11:Object; var _local12:int; var _local13:String; var _local2:Object = {}; var _local3:RegExp = /^[\w]+(?==)/gi; while (_local3.exec(_arg1)) { _local4 = _arg1.substring(0, _local3.lastIndex); _local5 = _arg1.substring((_local3.lastIndex + 1)); _local6 = /^[\w\.]+(?=\()/gi; if (_local6.exec(_local5)){ _local7 = getBracedExpression(_local5, _local6.lastIndex, "("); _local8 = _local7.string; _local9 = _local5.substring(0, _local6.lastIndex); _local2[_local4] = parseType(_local9, _local8); _arg1 = _local5.substring((_local7.lastIndex + 1)); } else { _local10 = /^\[(?=.)/ig; if (_local10.exec(_local5)){ _local11 = getBracedExpression(_local5, (_local10.lastIndex - 1), "["); _local2[_local4] = parseArray(_local11.string); _arg1 = _local5.substring((_local11.lastIndex + 1)); } else { _local12 = _local5.indexOf(","); _local13 = ((_local12 == -1)) ? _local5 : _local5.substring(0, _local12); _local2[_local4] = _local13; _arg1 = _local5.substring((_local12 + 1)); }; }; _local3.lastIndex = 0; }; return (_local2); } private static function parseType(_arg1:String, _arg2:String):Object{ var _local7:String; var _local8:PropertyInfo; var _local9:String; var _local10:String; var _local3:Class = (getDefinitionByName(_arg1) as Class); var _local4:Object = new (_local3); var _local5:ClassInfo = Reflection.getClassInfo(_local3); var _local6:Object = parseProps(_arg2); for (_local7 in _local6) { _local8 = _local5.getPropertyInfo(_local7, false); if (!_local8){ throw (new ReferenceError(((("Cannot create property " + _local7) + " on ") + _local4))); }; _local9 = _local8.type; _local10 = _local6[_local7]; switch (_local9){ case "Number": case "uint": case "int": if (_local10.indexOf("0x") == 0){ _local4[_local7] = parseInt(_local10); } else { _local4[_local7] = parseFloat(_local10); }; break; case "String": _local4[_local7] = _local10; break; case "Boolean": _local4[_local7] = (_local10 == "true"); break; default: _local4[_local7] = _local6[_local7]; break; }; }; return (_local4); } public static function parseValue(_arg1:String):Object{ var _local3:String; var _local4:String; var _local5:RegExp; var _local6:String; var _local2:RegExp = /^[\w\.]+(?=\()/gi; if (_local2.exec(_arg1)){ _local3 = getBracedExpression(_arg1, _local2.lastIndex, "(").string; _local4 = _arg1.substring(0, _local2.lastIndex); return (parseType(_local4, _local3)); }; _local5 = /^\[(?=.)/ig; if (_local5.exec(_arg1)){ _local6 = getBracedExpression(_arg1, _local5.lastIndex, "[").string; return (parseArray(_local6)); }; return (_arg1); } private static function getBracedExpression(_arg1:String, _arg2:int, _arg3:String):Object{ var _local4:String; var _local8:String; switch (_arg3){ case "(": _local4 = ")"; break; case "[": _local4 = "]"; break; default: throw (ArgumentError("Wrong brace type.")); }; var _local5:int; var _local6:int = _arg2; var _local7:int = _arg1.length; while (_local6 < _local7) { _local8 = _arg1.charAt(_local6); if (_local8 == _arg3){ _local5++; } else { if (_local8 == _local4){ _local5--; }; }; if (_local5 <= 0){ break; }; _local6++; }; return ({string:_arg1.substring((_arg2 + 1), _local6), lastIndex:_local6}); } } }//package com.bigwigmedia.ui.utils
Section 389
//StyleUtil (com.bigwigmedia.ui.utils.StyleUtil) package com.bigwigmedia.ui.utils { import com.bigwigmedia.font.*; import flash.utils.*; import flash.text.*; import com.bigwigmedia.core.*; public class StyleUtil { private static const _styleTypes:Object = {fillColor:"Color", fillAlpha:"Number", textFormat:"TextFormat", styleSheet:"ObjectRef", embedFonts:"Boolean", decoration:"ObjectRef", disabledDecoration:"ObjectRef", repeatDelay:"Number", repeatDelay:"Number", repeatInterval:"Number", rollOverHandler:"MethodRef", rollOutHandler:"MethodRef", mouseDownHandler:"MethodRef", mouseClickHandler:"MethodRef", beacon:"ObjectRef", upLabelColor:"Color", overLabelColor:"Color", downLabelColor:"Color", selectedLabelColor:"Color", labelPlacement:"String", padding:"Number", iconGap:"Number", upSelectedIcon:"ObjectRef", overSelectedIcon:"ObjectRef", downSelectedIcon:"ObjectRef", bitmapPixelSnapping:"String", bitmapSmoothing:"Boolean", upSkin:"ObjectRef", overSkin:"ObjectRef", downSkin:"ObjectRef", selectedSkin:"ObjectRef", icon:"ObjectRef", upIcon:"ObjectRef", overIcon:"ObjectRef", downIcon:"ObjectRef", selectedIcon:"ObjectRef", upDecoration:"ObjectRef", overDecoration:"ObjectRef", downDecoration:"ObjectRef", selectedDecoration:"ObjectRef", skin:"ObjectRef", textPadding:"Number", background:"Boolean", backgroundColor:"Color", border:"Boolean", borderColor:"Color", track:"ObjectRef", thumb:"ObjectRef", upButton:"ObjectRef", downButton:"ObjectRef", horizontalGap:"Number", verticalGap:"Number", selectedFillColor:"Color", selectedFillAlpha:"Number"}; public static function parseRef(_arg1:String):Object{ var _local3:String; var _local4:Object; var _local5:QName; var _local6:Object; if (_arg1 == "null"){ return (null); }; var _local2:String = _arg1.substr(0, _arg1.indexOf("(")); switch (_local2){ case "Class": _local3 = _arg1.substring((_arg1.indexOf("(") + 1), _arg1.lastIndexOf(")")); return (Class(getDefinitionByName(_local3))); case "Static": case "Singleton": _local4 = parsePropsPairs(_arg1.substring((_arg1.indexOf("(") + 1), _arg1.lastIndexOf(")"))); _local5 = new QName(((_local4.ns === undefined)) ? "" : _local4.ns, _local4.attribute); _local6 = ((_local2 == "Static")) ? Class(getDefinitionByName(_local4["class"])) : Singleton.getInstance(_local4.interfaceName); return (_local6[_local5]); default: return (ParseUtil.parseValue(_arg1)); }; } public static function parseTextFormat(_arg1:String):TextFormat{ var _local6:IFontManager; var _local2:Object = parsePropsPairs(_arg1); var _local3:String; if (((!((_local2.font === undefined))) && ((_local2.font.indexOf("FontID(") == 0)))){ _local6 = IFontManager(Singleton.getInstanceByInterface(IFontManager)); _local3 = _local6.getFontName(_local2.font.substr(7, (_local2.font.length - 8))); } else { _local3 = _local2.font; }; var _local4:String; switch (_local2.align){ case "center": _local4 = TextFormatAlign.CENTER; break; case "justify": _local4 = TextFormatAlign.JUSTIFY; break; case "left": _local4 = TextFormatAlign.LEFT; break; case "right": _local4 = TextFormatAlign.RIGHT; break; }; var _local5:TextFormat = new TextFormat(_local3, _local2.size, _local2.color, (_local2.bold == "true"), (_local2.italic == "true"), (_local2.underline == "true"), _local2.url, _local2.target, _local4, _local2.leftMargin, _local2.rightMargin, _local2.indent, _local2.leading); return (_local5); } public static function isValidStyleName(_arg1:String):Boolean{ return ((_arg1 in _styleTypes)); } public static function parsePropsPairs(_arg1:String):Object{ var _local6:Array; var _local2:Array = _arg1.split(","); var _local3:Object = {}; var _local4:int = _local2.length; var _local5:int; while (_local5 < _local4) { _local6 = _local2[_local5].split("="); _local3[_local6[0]] = _local6[1]; _local5++; }; return (_local3); } public static function parseStyle(_arg1:String, _arg2:String):Object{ var _local3:String = _styleTypes[_arg1]; switch (_local3){ case "String": return (((_arg2 == "null")) ? null : _arg2); case "Number": return (parseFloat(_arg2)); case "Boolean": return ((_arg2 == "true")); case "Color": return (parseInt(_arg2)); case "TextFormat": return (parseTextFormat(_arg2)); case "MethodRef": case "ObjectRef": return (parseRef(_arg2)); }; throw (new ArgumentError((("Style \"" + _arg1) + "\" is not supported."))); } } }//package com.bigwigmedia.ui.utils
Section 390
//Component (com.bigwigmedia.ui.Component) package com.bigwigmedia.ui { import flash.display.*; import com.bigwigmedia.events.*; import flash.geom.*; import com.bigwigmedia.ui.decorations.*; import flash.text.*; import com.bigwigmedia.core.*; import com.bigwigmedia.utils.*; public class Component extends Sprite implements IDisposable { protected var _enabled:Boolean;// = true private var invalidateStylesFlag:Boolean;// = false protected var _explicitWidth:Number;// = NAN protected var _minWidth:Number;// = 0 private var _right:Number;// = NAN protected var _maxWidth:Number;// = 10000 private var _inheritingStyles:Object; protected var _visible:Boolean;// = true protected var _maxHeight:Number;// = 10000 protected var _height:Number;// = 0 private var _bottom:Number;// = NAN protected var _decoration:IDecoration;// = null private var invalidatePropertiesFlag:Boolean;// = false protected var _styleName:String;// = null private var _percentWidth:Number;// = NAN private var _inSizeLayout:Boolean;// = false private var _center:Number;// = NAN private var invalidateSizeFlag:Boolean;// = false private var _nestLevel:int;// = 0 private var _top:Number;// = NAN private var _inPositionLayout:Boolean;// = false protected var _minHeight:Number;// = 0 protected var _explicitHeight:Number;// = NAN private var _toolTip:String;// = null private var _middle:Number;// = NAN private var _namedStyles:Object; protected var _width:Number;// = 0 private var _id:String; private var _percentHeight:Number;// = NAN protected var _rotation:Number;// = 0 private var invalidateChildrenFlag:Boolean;// = false private var _instanceStyles:Object; private var _left:Number;// = NAN private static var idCount:int = 0; private static var _renderManager:RenderManager; private static var _styleManager:IStyleManager; public function Component(){ _namedStyles = {}; _instanceStyles = {}; _inheritingStyles = {}; super(); _id = ((ClassUtil.getClassName(this) + "_") + idCount++); name = _id; super.visible = false; tabEnabled = false; styleManager.registerComponent(this); createChildren(); invalidateAll(); } public function get left():Number{ return (_left); } public function get nestLevel():int{ return (_nestLevel); } public function set left(_arg1:Number):void{ if (_left != _arg1){ _left = _arg1; validateLayoutType(); }; } public function set percentWidth(_arg1:Number):void{ if (_arg1 < 0){ _arg1 = 0; }; if (_percentWidth != _arg1){ _percentWidth = _arg1; validateLayoutType(); }; } public function validate():void{ if (invalidateStylesFlag){ validateStyles(); }; if (invalidatePropertiesFlag){ validateProperties(); }; if (invalidateSizeFlag){ validateSize(); }; if (invalidateChildrenFlag){ validateChildren(); }; invalidateStylesFlag = false; invalidatePropertiesFlag = false; invalidateSizeFlag = false; invalidateChildrenFlag = false; if (((_visible) && (!(super.visible)))){ visible = true; }; } public function set nestLevel(_arg1:int):void{ if (_nestLevel == _arg1){ return; }; _nestLevel = _arg1; renderManager.remove(this); renderManager.add(this); var _local2:DisplayObjectContainer = this.parent; while ((_local2 is Component)) { renderManager.remove(Component(_local2)); renderManager.add(Component(_local2)); _local2 = _local2.parent; }; } public function get minHeight():Number{ return (_minHeight); } protected function createChildren():void{ } public function get right():Number{ return (_right); } public function dispose():void{ renderManager.remove(this); styleManager.unregisterComponent(this); toolTip = null; if (_decoration){ _decoration.remove(this); _decoration = null; }; _namedStyles = {}; _instanceStyles = {}; _inheritingStyles = {}; } public function get id():String{ return (_id); } override public function get height():Number{ return ((isNaN(_explicitHeight)) ? _height : _explicitHeight); } public function set middle(_arg1:Number):void{ if (_middle != _arg1){ _middle = _arg1; validateLayoutType(); }; } public function get bottom():Number{ return (_bottom); } public function setInheritingStyle(_arg1:String, _arg2:Object):void{ if (_inheritingStyles[_arg1] === _arg2){ return; }; _inheritingStyles[_arg1] = _arg2; invalidateAll(); } public function set minHeight(_arg1:Number):void{ if (_minHeight == _arg1){ return; }; _minHeight = _arg1; if (this.height < _minHeight){ this.height = _minHeight; }; } protected function validateChildren():void{ } protected function validateSize():void{ } public function set right(_arg1:Number):void{ if (_right != _arg1){ _right = _arg1; validateLayoutType(); }; } public function get inPositionLayout():Boolean{ return (_inPositionLayout); } public function set minWidth(_arg1:Number):void{ if (_minWidth == _arg1){ return; }; _minWidth = _arg1; if (this.width < _minWidth){ this.width = _minWidth; }; } public function get enabled():Boolean{ return (_enabled); } private function validateLayoutType():void{ if (((((((((((isNaN(_left)) && (isNaN(_right)))) && (isNaN(_top)))) && (isNaN(_bottom)))) && (isNaN(_center)))) && (isNaN(_middle)))){ _inPositionLayout = false; } else { _inPositionLayout = true; if (((((!(isNaN(_left))) && (!(isNaN(_right))))) || (((!(isNaN(_top))) && (!(isNaN(_bottom))))))){ _inSizeLayout = true; return; }; }; if (((isNaN(_percentWidth)) && (isNaN(_percentWidth)))){ _inSizeLayout = false; } else { _inSizeLayout = true; }; } override public function set height(_arg1:Number):void{ var _local2:Number = Math.round(_arg1); if (_local2 < _minHeight){ _local2 = _minHeight; } else { if (_local2 > _maxHeight){ _local2 = _maxHeight; }; }; if (this.height != _local2){ _height = (_explicitHeight = _local2); invalidateSize(); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE)); }; } public function set maxHeight(_arg1:Number):void{ if (_maxHeight == _arg1){ return; }; _maxHeight = _arg1; if (this.height > _maxHeight){ this.height = _maxHeight; }; } public function get top():Number{ return (_top); } public function setNotExplicitWidth(_arg1:Number):void{ var _local2:Number = Math.round(_arg1); if (_local2 < _minWidth){ _local2 = _minWidth; } else { if (_local2 > _maxWidth){ _local2 = _maxWidth; }; }; if (this.width != _local2){ _width = _local2; dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE)); }; } public function get center():Number{ return (_center); } public function set bottom(_arg1:Number):void{ if (_bottom != _arg1){ _bottom = _arg1; validateLayoutType(); }; } protected function invalidateAll():void{ invalidateStylesFlag = true; invalidatePropertiesFlag = true; invalidateSizeFlag = true; invalidateChildrenFlag = true; renderManager.add(this); } protected function invalidateChildren():void{ invalidateChildrenFlag = true; renderManager.add(this); } override public function toString():String{ return (name); } override public function get visible():Boolean{ return (_visible); } override public function get rotation():Number{ return (_rotation); } public function get percentWidth():Number{ return (_percentWidth); } public function set enabled(_arg1:Boolean):void{ if (_enabled != _arg1){ _enabled = _arg1; mouseEnabled = _arg1; invalidateAll(); }; } public function set maxWidth(_arg1:Number):void{ if (_maxWidth == _arg1){ return; }; _maxWidth = _arg1; if (this.width > _maxWidth){ this.width = _maxWidth; }; } public function get explicitHeight():Number{ return (_explicitHeight); } public function get inSizeLayout():Boolean{ return (_inSizeLayout); } protected function drawBackground():void{ graphics.clear(); graphics.lineStyle(); graphics.beginFill(getStyle("fillColor"), getStyle("fillAlpha")); graphics.drawRect(0, 0, (isNaN(width)) ? 0 : width, (isNaN(height)) ? 0 : height); graphics.endFill(); } override public function set width(_arg1:Number):void{ var _local2:Number = Math.round(_arg1); if (_local2 < _minWidth){ _local2 = _minWidth; } else { if (_local2 > _maxWidth){ _local2 = _maxWidth; }; }; if (this.width != _local2){ _width = (_explicitWidth = _local2); invalidateSize(); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE)); }; } public function get middle():Number{ return (_middle); } protected function validateStyles():void{ var _local1:IDecoration = getStyle((_enabled) ? "decoration" : "disabledDecoration"); if (_decoration != _local1){ if (_decoration){ _decoration.remove(this); }; if (_local1){ _local1.apply(this); }; _decoration = _local1; }; } public function get minWidth():Number{ return (_minWidth); } override public function set scaleX(_arg1:Number):void{ if (super.scaleX != _arg1){ super.scaleX = _arg1; dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE)); }; } public function set percentHeight(_arg1:Number):void{ if (_arg1 < 0){ _arg1 = 0; }; if (_percentHeight != _arg1){ _percentHeight = _arg1; validateLayoutType(); }; } override public function set scaleY(_arg1:Number):void{ if (super.scaleY != _arg1){ super.scaleY = _arg1; dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE)); }; } public function getComponentByName(_arg1:String):Component{ return (((_arg1 == this.name)) ? this : null); } public function set top(_arg1:Number):void{ if (_top != _arg1){ _top = _arg1; validateLayoutType(); }; } public function get maxHeight():Number{ return (_maxHeight); } public function set center(_arg1:Number):void{ if (_center != _arg1){ _center = _arg1; validateLayoutType(); }; } public function getAABB():Rectangle{ var _local1:Rectangle = new Rectangle(this.x, this.y, (this.width * scaleX), (this.height * scaleY)); if (_rotation == 0){ return (_local1); }; return (GeomUtil.getAABB(_local1, new Point(), ((_rotation / 180) * Math.PI))); } public function set styleName(_arg1:String):void{ if (_styleName != _arg1){ _styleName = _arg1; dispatchEvent(new ComponentEvent(ComponentEvent.STYLE_NAME_CHANGE)); }; } public function get maxWidth():Number{ return (_maxWidth); } override public function get width():Number{ return ((isNaN(_explicitWidth)) ? _width : _explicitWidth); } protected function invalidateProperties():void{ invalidatePropertiesFlag = true; renderManager.add(this); } public function set toolTip(_arg1:String):void{ if (_toolTip != _arg1){ _toolTip = _arg1; if (_toolTip){ IToolTipManager(Singleton.getInstanceByInterface(IToolTipManager)).registerComponent(this); } else { IToolTipManager(Singleton.getInstanceByInterface(IToolTipManager)).unregisterComponent(this); }; }; } public function setInstanceStyle(_arg1:String, _arg2:Object):void{ if (_instanceStyles[_arg1] === _arg2){ return; }; _instanceStyles[_arg1] = _arg2; invalidateAll(); } public function get percentHeight():Number{ return (_percentHeight); } protected function invalidateSize():void{ invalidateSizeFlag = true; renderManager.add(this); } public function get styleName():String{ return (_styleName); } override public function set visible(_arg1:Boolean):void{ _visible = _arg1; super.visible = _arg1; } protected function validateProperties():void{ } public function get toolTip():String{ return (_toolTip); } public function setNotExplicitHeight(_arg1:Number):void{ var _local2:Number = Math.round(_arg1); if (_local2 < _minHeight){ _local2 = _minHeight; } else { if (_local2 > _maxHeight){ _local2 = _maxHeight; }; }; if (this.height != _local2){ _height = _local2; dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE)); }; } override public function set x(_arg1:Number):void{ var _local2:Number = Math.round(_arg1); if (super.x != _local2){ super.x = _local2; dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); }; } override public function set y(_arg1:Number):void{ var _local2:Number = Math.round(_arg1); if (super.y != _local2){ super.y = _local2; dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); }; } public function get explicitWidth():Number{ return (_explicitWidth); } public function setNamedStyle(_arg1:String, _arg2:Object):void{ if (_namedStyles[_arg1] === _arg2){ return; }; _namedStyles[_arg1] = _arg2; invalidateAll(); } public function getStyle(_arg1:String){ if (_instanceStyles[_arg1] !== undefined){ return (_instanceStyles[_arg1]); }; if (((_styleName) && (!((_namedStyles[_arg1] === undefined))))){ return (_namedStyles[_arg1]); }; return (_inheritingStyles[_arg1]); } override public function set rotation(_arg1:Number):void{ var _local2:Number = Math.round(_arg1); if (_rotation != _local2){ var _local3 = _local2; super.rotation = _local3; _rotation = _local3; dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE)); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); }; } protected function invalidateStyles():void{ invalidateStylesFlag = true; renderManager.add(this); } public static function get defaultStyles():Object{ var _local1:Object = {fillColor:0xFFFFFF, fillAlpha:0, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), styleSheet:null, embedFonts:false, decoration:null, disabledDecoration:null}; return (_local1); } protected static function get renderManager():RenderManager{ if (!_renderManager){ Singleton.registerClassByInterface(RenderManager, RenderManager); _renderManager = RenderManager(Singleton.getInstanceByInterface(RenderManager)); }; return (_renderManager); } protected static function get styleManager():IStyleManager{ if (!_styleManager){ _styleManager = IStyleManager(Singleton.getInstanceByInterface(IStyleManager)); }; return (_styleManager); } } }//package com.bigwigmedia.ui
Section 391
//Console (com.bigwigmedia.ui.Console) package com.bigwigmedia.ui { import flash.display.*; import flash.events.*; import com.bigwigmedia.events.*; import com.bigwigmedia.core.*; import com.bigwigmedia.input.*; public class Console { private static var _view:ConsoleView; private static var _active:Boolean = false; private static var keyInputMan:KeyInputManager; private static var toggleKeyCode:uint; private static var _stage:Stage; private static function onKeyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == toggleKeyCode){ toggle(); }; } private static function onKeySequenceHandler(_arg1:KeyInputEvent):void{ if (_arg1.keyAction == "toggle_console"){ toggle(); }; } private static function toggle():void{ _active = !(_active); if (_active){ _stage.addChild(_view); _stage.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); } else { _stage.removeChild(_view); _stage.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); }; } private static function onEnterFrameHandler(_arg1:Event):void{ _view.update(); } public static function initialize(_arg1:Array=null):void{ if (_view){ return; }; _view = new ConsoleView(); _stage = Globals.stage; if (!_arg1){ toggleKeyCode = 67; _stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler); } else { keyInputMan = new KeyInputManager(_stage); keyInputMan.mapSequence("toggle_console", _arg1); keyInputMan.addEventListener(KeyInputEvent.SEQUENCE, onKeySequenceHandler); }; } } }//package com.bigwigmedia.ui import flash.display.*; import flash.events.*; import flash.system.*; import flash.utils.*; import flash.text.*; import com.bigwigmedia.core.*; import com.bigwigmedia.application.*; class ConsoleView extends Sprite { private var maxMemory:int; private var infoField:TextField; private var viewMode:int;// = 0 private var tfDelay:int;// = 0 private var minMemory:int; private var firstDraw:Boolean;// = true private var tfTimer:int; public static const PROFILER:int = 0; public static const UPDATE_DELAY:int = 10; public static const INFO:int = 1; private function ConsoleView(){ infoField = new TextField(); infoField.defaultTextFormat = new TextFormat("_sans", 10); infoField.selectable = false; infoField.x = 1; infoField.y = 0; infoField.multiline = true; addChild(infoField); this.mouseChildren = false; addEventListener(MouseEvent.CLICK, onMouseClickHandler); minMemory = (maxMemory = System.totalMemory); tfTimer = getTimer(); draw(); } private function draw():void{ var _local1:ApplicationInfo; graphics.clear(); graphics.lineStyle(0, 0, 1, true); graphics.beginFill(0x666666, 1); switch (viewMode){ case ConsoleView.PROFILER: infoField.autoSize = TextFieldAutoSize.LEFT; infoField.htmlText = ""; graphics.drawRect(0, 0, 80, 56); break; case ConsoleView.INFO: infoField.autoSize = TextFieldAutoSize.LEFT; _local1 = Globals.application.info; infoField.htmlText = (((((((((((((("<font color='#FFFFFF'>" + "APP: ") + _local1.name) + "\nID: ") + _local1.id) + "\nVER: ") + _local1.version) + "\nFP: ") + Capabilities.version) + " ") + Capabilities.playerType) + (Capabilities.isDebugger) ? " DEBUG" : " RELEASE") + "\nSANDBOX: ") + Security.sandboxType) + "</font>"); graphics.drawRect(0, 0, (infoField.width + 4), 68); break; }; graphics.endFill(); } public function update():void{ var _local1:int; var _local2:Number; if (++tfDelay >= UPDATE_DELAY){ tfDelay = 0; _local1 = System.totalMemory; if (_local1 > maxMemory){ maxMemory = _local1; }; if (_local1 < minMemory){ minMemory = _local1; }; _local2 = ((1000 * UPDATE_DELAY) / (getTimer() - tfTimer)); tfTimer = getTimer(); switch (viewMode){ case ConsoleView.PROFILER: infoField.htmlText = ((((((((((("<font color='#FFFFFF'>FPS: " + _local2.toFixed(2)) + "</font>\n") + "<font color='#9FCFFF'>MEM: ") + bytesToString(_local1)) + "</font>\n") + "<font color='#FFCC00'>MAX: ") + bytesToString(maxMemory)) + "</font>\n") + "<font color='#00FF00'>MIN: ") + bytesToString(minMemory)) + "</font>"); break; }; }; } private function onMouseClickHandler(_arg1:MouseEvent):void{ viewMode++; if (viewMode > ConsoleView.INFO){ viewMode = ConsoleView.PROFILER; }; draw(); } private function bytesToString(_arg1:uint):String{ var _local2:String; if (_arg1 < 0x0400){ _local2 = (String(_arg1) + "b"); } else { if (_arg1 < 0x2800){ _local2 = (Number((_arg1 / 0x0400)).toFixed(2) + "kb"); } else { if (_arg1 < 102400){ _local2 = (Number((_arg1 / 0x0400)).toFixed(1) + "kb"); } else { if (_arg1 < 0x100000){ _local2 = ((_arg1 >> 10) + "kb"); } else { if (_arg1 < 0xA00000){ _local2 = (Number((_arg1 / 0x100000)).toFixed(2) + "mb"); } else { if (_arg1 < 104857600){ _local2 = (Number((_arg1 / 0x100000)).toFixed(1) + "mb"); } else { _local2 = ((_arg1 >> 20) + "mb"); }; }; }; }; }; }; return (_local2); } }
Section 392
//Container (com.bigwigmedia.ui.Container) package com.bigwigmedia.ui { import flash.display.*; public class Container extends Component { private var _idToComponentHash:Object; public function Container(){ _idToComponentHash = {}; super(); } override public function set enabled(_arg1:Boolean):void{ var _local2:Component; for each (_local2 in _idToComponentHash) { _local2.enabled = _arg1; }; super.enabled = _arg1; } protected function componentRemoved(_arg1:Component):void{ } override public function dispose():void{ var _local1:Component; for each (_local1 in _idToComponentHash) { _local1.dispose(); }; _idToComponentHash = {}; super.dispose(); } override public function getComponentByName(_arg1:String):Component{ var _local2:Component; var _local3:Component; if (_arg1 == this.name){ return (this); }; for each (_local2 in _idToComponentHash) { _local3 = _local2.getComponentByName(_arg1); if (_local3){ return (_local3); }; }; return (null); } protected function componentAdded(_arg1:Component):void{ } override public function removeChildAt(_arg1:int):DisplayObject{ var _local2:Component = (getChildAt(_arg1) as Component); if (((_local2) && (_idToComponentHash[_local2.id]))){ delete _idToComponentHash[_local2.id]; componentRemoved(_local2); }; return (super.removeChildAt(_arg1)); } override public function addChildAt(_arg1:DisplayObject, _arg2:int):DisplayObject{ var _local3:Component = (_arg1 as Component); if (((_local3) && (!(_idToComponentHash[_local3.id])))){ _idToComponentHash[_local3.id] = _local3; if (_local3.nestLevel <= this.nestLevel){ _local3.nestLevel = (this.nestLevel + 1); }; componentAdded(_local3); }; return (super.addChildAt(_arg1, _arg2)); } override public function set nestLevel(_arg1:int):void{ var _local2:Component; super.nestLevel = _arg1; for each (_local2 in _idToComponentHash) { if (_local2.nestLevel <= this.nestLevel){ _local2.nestLevel = (this.nestLevel + 1); }; }; } override public function addChild(_arg1:DisplayObject):DisplayObject{ return (addChildAt(_arg1, numChildren)); } override public function removeChild(_arg1:DisplayObject):DisplayObject{ var _local2:int = this.getChildIndex(_arg1); return (removeChildAt(_local2)); } public static function get defaultStyles():Object{ var _local1:Object = {decoration:null, disabledDecoration:null}; return (_local1); } } }//package com.bigwigmedia.ui
Section 393
//ContextMenuFactory (com.bigwigmedia.ui.ContextMenuFactory) package com.bigwigmedia.ui { import flash.events.*; import flash.ui.*; public class ContextMenuFactory { protected var _menu:ContextMenu; public function ContextMenuFactory(){ _menu = new ContextMenu(); super(); } public function addItem(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=true, _arg4:Boolean=true):void{ var _local5:ContextMenuItem = new ContextMenuItem(_arg1, _arg2, _arg3, _arg4); _local5.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onItemSelectHandler); _menu.customItems.push(_local5); } protected function getItemAt(_arg1:int):ContextMenuItem{ return (_menu.customItems[_arg1]); } private function onItemSelectHandler(_arg1:ContextMenuEvent):void{ var _local2:int = _menu.customItems.indexOf(_arg1.target); onItemSelect(_local2); } protected function onItemSelect(_arg1:int):void{ } public function get menu():ContextMenu{ return (_menu); } } }//package com.bigwigmedia.ui
Section 394
//ContextMenuFactory_2DPlay (com.bigwigmedia.ui.ContextMenuFactory_2DPlay) package com.bigwigmedia.ui { import com.bigwigmedia.core.*; import com.bigwigmedia.net.*; public class ContextMenuFactory_2DPlay extends ContextMenuFactory { public function ContextMenuFactory_2DPlay(){ Singleton.registerClass("com.bigwigmedia.net::IURLCaller", URLCaller_2DPlay); _menu.hideBuiltInItems(); this.addItem("High scores"); this.addItem("Play more games"); this.addItem("Get game for your site"); this.addItem("Download this game"); } override protected function onItemSelect(_arg1:int):void{ var _local2:IURLCaller = IURLCaller(Singleton.getInstanceByInterface(IURLCaller)); switch (_arg1){ case 0: _local2.viewScores(); break; case 1: _local2.playMoreGames(); break; case 2: _local2.getGame(); break; case 3: _local2.downloadGame(); break; }; } } }//package com.bigwigmedia.ui
Section 395
//CursorManager (com.bigwigmedia.ui.CursorManager) package com.bigwigmedia.ui { import flash.display.*; import flash.events.*; import flash.text.*; import com.bigwigmedia.core.*; import flash.ui.*; public class CursorManager implements ICursorManager { private var cursorLeftStage:Boolean; private var nextCursorID:int;// = 1 private var _currentCursorID:int;// = 0 private var cursorQueue:Array; private var cursorHolder:Sprite; private var _currentCursor:DisplayObject; private var stage:Stage; public function CursorManager(){ cursorQueue = []; super(); Singleton.checkInstance(this); stage = Globals.stage; cursorHolder = Globals.application.cursorHolder; } public function get currentCursor():DisplayObject{ return (_currentCursor); } public function removeCursor(_arg1:int):void{ var _local2:int = cursorQueue.length; var _local3:int; while (_local3 < _local2) { if (cursorQueue[_local3].id == _arg1){ cursorQueue.splice(_local3, 1); showCurrentCursor(); break; }; _local3++; }; } public function get currentCursorID():int{ return (_currentCursorID); } private function removeCustomEventHandlers():void{ stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler, true); stage.removeEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler, true); var _local1:ContextMenu = InteractiveObject(Globals.application).contextMenu; if (_local1){ _local1.removeEventListener(ContextMenuEvent.MENU_SELECT, onContextMenuSelectHandler); }; } private function addCustomEventHandlers():void{ stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler, true); stage.addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler, true); var _local1:ContextMenu = InteractiveObject(Globals.application).contextMenu; if (_local1){ _local1.addEventListener(ContextMenuEvent.MENU_SELECT, onContextMenuSelectHandler); }; } private function onMouseMoveHandler(_arg1:MouseEvent):void{ _currentCursor.x = stage.mouseX; _currentCursor.y = stage.mouseY; var _local2:Object = _arg1.target; if ((((_local2 is TextField)) && ((_local2.type == TextFieldType.INPUT)))){ cursorVisible = false; Mouse.show(); } else { cursorVisible = true; }; if (cursorLeftStage){ cursorLeftStage = false; cursorVisible = true; }; if (cursorQueue.length > 0){ Mouse.hide(); }; } public function setCursor(_arg1:Class, _arg2:int=2):int{ var _local3:int = nextCursorID++; cursorQueue.push(new CursorInfo(_arg1, _local3, _arg2)); cursorQueue.sortOn("priority", (Array.NUMERIC | Array.DESCENDING)); showCurrentCursor(); return (_local3); } private function onMouseOutHandler(_arg1:MouseEvent):void{ if ((((_arg1.relatedObject == null)) && ((cursorQueue.length > 0)))){ stage.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); }; } private function onContextMenuSelectHandler(_arg1:ContextMenuEvent):void{ stage.addEventListener(MouseEvent.MOUSE_OVER, contextMenuMouseOverHandler, true); } public function removeAllCursors():void{ cursorQueue = []; showCurrentCursor(); } private function showCurrentCursor():void{ var _local1:CursorInfo; if (cursorQueue.length > 0){ _local1 = cursorQueue[0]; if (_local1.id != _currentCursorID){ if (_currentCursor){ cursorHolder.removeChild(_currentCursor); }; _currentCursor = new _local1.cursorClass(); if (_currentCursor){ if ((_currentCursor is InteractiveObject)){ InteractiveObject(_currentCursor).mouseEnabled = false; }; _currentCursor.x = stage.mouseX; _currentCursor.y = stage.mouseY; cursorHolder.addChild(_currentCursor); _currentCursorID = _local1.id; addCustomEventHandlers(); }; }; Mouse.hide(); } else { if (_currentCursorID != 0){ _currentCursorID = 0; cursorHolder.removeChild(_currentCursor); _currentCursor = null; removeCustomEventHandlers(); }; Mouse.show(); }; } public function set cursorVisible(_arg1:Boolean):void{ if (_currentCursor){ _currentCursor.visible = _arg1; }; } private function onEnterFrameHandler(_arg1:Event):void{ stage.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); cursorLeftStage = true; cursorVisible = false; Mouse.show(); } private function contextMenuMouseOverHandler(_arg1:MouseEvent):void{ stage.removeEventListener(MouseEvent.MOUSE_OVER, contextMenuMouseOverHandler, true); onMouseMoveHandler(_arg1); } } }//package com.bigwigmedia.ui class CursorInfo { public var cursorClass:Class; public var priority:int; public var id:int; private function CursorInfo(_arg1:Class, _arg2:int, _arg3:int){ this.cursorClass = _arg1; this.id = _arg2; this.priority = _arg3; } }
Section 396
//ICursorManager (com.bigwigmedia.ui.ICursorManager) package com.bigwigmedia.ui { import flash.display.*; public interface ICursorManager { function removeAllCursors():void; function removeCursor(_arg1:int):void; function get currentCursor():DisplayObject; function setCursor(_arg1:Class, _arg2:int=2):int; function get currentCursorID():int; function set cursorVisible(_arg1:Boolean):void; } }//package com.bigwigmedia.ui
Section 397
//IStyleManager (com.bigwigmedia.ui.IStyleManager) package com.bigwigmedia.ui { public interface IStyleManager { function parseCSS(_arg1:String):void; function unregisterComponent(_arg1:Component):void; function registerComponent(_arg1:Component):void; } }//package com.bigwigmedia.ui
Section 398
//IToolTipManager (com.bigwigmedia.ui.IToolTipManager) package com.bigwigmedia.ui { public interface IToolTipManager { function unregisterComponent(_arg1:Component):void; function registerComponent(_arg1:Component):void; function set showDelay(_arg1:Number):void; function get showDelay():Number; } }//package com.bigwigmedia.ui
Section 399
//RenderManager (com.bigwigmedia.ui.RenderManager) package com.bigwigmedia.ui { import flash.display.*; import flash.events.*; import com.bigwigmedia.events.*; import flash.utils.*; import com.bigwigmedia.core.*; public class RenderManager { private var _invalidComponentsQueue:Array; private var _invalidComponentsDict:Dictionary; private var _waitingForRender:Boolean;// = false private var _enterFrameBeacon:Shape; private var _stage:Stage; public function RenderManager(){ _invalidComponentsDict = new Dictionary(); _invalidComponentsQueue = []; _enterFrameBeacon = new Shape(); super(); Singleton.checkInstance(this); _stage = Globals.stage; } public function add(_arg1:Component):void{ var _local2:int; if (!_invalidComponentsDict[_arg1]){ _local2 = indexOfLastEqualNestLevel(_arg1); if (_local2 > -1){ _local2++; } else { _local2 = (-(_local2) - 1); }; _invalidComponentsQueue.splice(_local2, 0, _arg1); _invalidComponentsDict[_arg1] = true; }; if (!_waitingForRender){ _waitingForRender = true; _stage.addEventListener(Event.RENDER, onStageRenderHandler, false, EventPriority.HIGH); _stage.invalidate(); _enterFrameBeacon.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler, false, EventPriority.HIGH); }; } public function remove(_arg1:Component):void{ var _local2:int; if (_invalidComponentsDict[_arg1]){ delete _invalidComponentsDict[_arg1]; _local2 = _invalidComponentsQueue.indexOf(_arg1); _invalidComponentsQueue.splice(_local2, 1); }; } private function onStageRenderHandler(_arg1:Event):void{ validate(); } private function validate():void{ var _local1:Component; if (!_waitingForRender){ return; }; _stage.removeEventListener(Event.RENDER, onStageRenderHandler); _enterFrameBeacon.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); while (_invalidComponentsQueue.length > 0) { _local1 = _invalidComponentsQueue.pop(); delete _invalidComponentsDict[_local1]; _local1.validate(); }; _waitingForRender = false; } private function indexOfLastEqualNestLevel(_arg1:Component):int{ var _local4:uint; var _local6:int; var _local2:uint; var _local3:int = (_invalidComponentsQueue.length - 1); var _local5:Boolean; while (_local2 <= _local3) { _local4 = ((_local3 + _local2) / 2); _local6 = _invalidComponentsQueue[_local4].nestLevel; if (_arg1.nestLevel < _local6){ if (_local4 == _local2){ if (_local5){ return ((_local4 - 1)); }; return ((-1 - _local4)); }; _local3 = (_local4 - 1); } else { if (_arg1.nestLevel > _local6){ if (_local4 == _local3){ return ((-1 - (_local4 + 1))); }; _local2 = (_local4 + 1); } else { if (_local4 == _local3){ return (_local4); }; _local5 = true; _local2 = (_local4 + 1); }; }; }; return (-1); } private function onEnterFrameHandler(_arg1:Event):void{ validate(); } } }//package com.bigwigmedia.ui
Section 400
//ScrollPane (com.bigwigmedia.ui.ScrollPane) package com.bigwigmedia.ui { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.events.*; import flash.geom.*; public class ScrollPane extends Container { protected var _contentHeight:Number;// = 0 protected var _horizontalScrollPolicy:String;// = "auto" protected var _horizontalScrollBar:HScrollBar; protected var _contentHolder:Sprite; protected var _availableHeight:Number;// = 0 protected var _verticalScrollPolicy:String;// = "auto" protected var _availableWidth:Number;// = 0 protected var _contentScrollRect:Rectangle; protected var _showVScrollBar:Boolean; protected var _verticalScrollBar:VScrollBar; protected var _contentWidth:Number;// = 0 protected var _showHScrollBar:Boolean; public function ScrollPane(){ this.width = 100; this.height = 100; updateScrollBarsProperties(); } private function onMouseWheelHandler(_arg1:MouseEvent):void{ if (((_enabled) && (_verticalScrollBar.visible))){ _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * _verticalScrollBar.lineScrollSize)); }; } override protected function createChildren():void{ _contentScrollRect = new Rectangle(0, 0, 100, 100); _contentHolder = new Sprite(); addChild(_contentHolder); _horizontalScrollBar = new HScrollBar(); _horizontalScrollBar.visible = false; addChild(_horizontalScrollBar); _verticalScrollBar = new VScrollBar(); _verticalScrollBar.visible = false; addChild(_verticalScrollBar); addEventListener(ScrollEvent.SCROLL, onScrollHandler); addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheelHandler); } private function onScrollHandler(_arg1:ScrollEvent):void{ _arg1.stopPropagation(); invalidateChildren(); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number = height; _showVScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((_contentHeight > _local1))))); var _local2:Number = (width - (_showVScrollBar) ? _verticalScrollBar.width : 0); _showHScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((_contentWidth > _local2))))); if (_showHScrollBar){ _local1 = (_local1 - _horizontalScrollBar.height); if (((((!(_showVScrollBar)) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((_contentHeight > _local1)))){ _showVScrollBar = true; _local2 = (_local2 - _verticalScrollBar.width); }; }; _availableWidth = _local2; _availableHeight = _local1; } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; calculateAvailableSize(); updateScrollBarsProperties(); } protected function updateScrollBarsProperties():void{ if (_showHScrollBar){ _horizontalScrollBar.pageSize = _availableWidth; _horizontalScrollBar.minScrollPosition = 0; _horizontalScrollBar.maxScrollPosition = ((_contentWidth < _availableWidth)) ? 0 : (_contentWidth - _availableWidth); _horizontalScrollBar.pageScrollSize = _availableWidth; }; if (_showVScrollBar){ _verticalScrollBar.pageSize = _availableHeight; _verticalScrollBar.minScrollPosition = 0; _verticalScrollBar.maxScrollPosition = ((_contentHeight < _availableHeight)) ? 0 : (_contentHeight - _availableHeight); _verticalScrollBar.pageScrollSize = _availableHeight; }; } override public function getComponentByName(_arg1:String):Component{ return (((_arg1 == this.name)) ? this : null); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } override protected function validateSize():void{ calculateAvailableSize(); _horizontalScrollBar.x = 0; _horizontalScrollBar.y = (height - _horizontalScrollBar.height); _horizontalScrollBar.width = (width - (_showVScrollBar) ? _verticalScrollBar.width : 0); _horizontalScrollBar.visible = _showHScrollBar; _verticalScrollBar.x = (width - _verticalScrollBar.width); _verticalScrollBar.y = 0; _verticalScrollBar.height = (height - (_showHScrollBar) ? _horizontalScrollBar.height : 0); _verticalScrollBar.visible = _showVScrollBar; drawBackground(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; calculateAvailableSize(); updateScrollBarsProperties(); } } }//package com.bigwigmedia.ui
Section 401
//ScrollPolicy (com.bigwigmedia.ui.ScrollPolicy) package com.bigwigmedia.ui { public class ScrollPolicy { public static const AUTO:String = "auto"; public static const ON:String = "on"; public static const OFF:String = "off"; } }//package com.bigwigmedia.ui
Section 402
//StyleManager (com.bigwigmedia.ui.StyleManager) package com.bigwigmedia.ui { import com.bigwigmedia.events.*; import flash.utils.*; import flash.text.*; import com.bigwigmedia.core.*; import com.bigwigmedia.utils.*; import com.bigwigmedia.ui.utils.*; public class StyleManager implements IStyleManager { private var _classNameToMergedInheritingStylesHash:Dictionary; private var _styleNameToStylesHash:Object; private var _styleSheet:StyleSheet; private var _classToInheritingStylesDict:Dictionary; private var _components:Dictionary; public function StyleManager(){ _styleSheet = new StyleSheet(); _classToInheritingStylesDict = new Dictionary(); _classNameToMergedInheritingStylesHash = new Dictionary(); _styleNameToStylesHash = {}; _components = new Dictionary(); super(); Singleton.checkInstance(this); } private function getNamedStyles(_arg1:String):Object{ var _local4:String; if (_arg1 == null){ return ({}); }; if (_styleNameToStylesHash[_arg1] !== undefined){ return (_styleNameToStylesHash[_arg1]); }; var _local2:Object = {}; var _local3:Object = _styleSheet.getStyle(("." + _arg1.toLowerCase())); for (_local4 in _local3) { _local2[_local4] = StyleUtil.parseStyle(_local4, _local3[_local4]); }; _styleNameToStylesHash[_arg1] = _local2; return (_local2); } private function getMergedInheritingStyles(_arg1:Component):Object{ var _local6:Object; var _local7:String; var _local2:Class = (Object(_arg1).constructor as Class); var _local3:String = ClassUtil.getClassName(_local2); if (_classNameToMergedInheritingStylesHash[_local2] !== undefined){ return (_classNameToMergedInheritingStylesHash[_local2]); }; var _local4:Object = {}; var _local5:Class = _local2; while (true) { _local6 = getInheritingStyle(_local5); for (_local7 in _local6) { if (_local4[_local7] === undefined){ _local4[_local7] = _local6[_local7]; }; }; if (getQualifiedClassName(_local5) == "com.bigwigmedia.ui::Component"){ break; } else { _local5 = (getDefinitionByName(getQualifiedSuperclassName(_local5)) as Class); }; }; _classNameToMergedInheritingStylesHash[_local2] = _local4; return (_local4); } private function getInheritingStyle(_arg1:Class):Object{ var _local5:String; if (_classToInheritingStylesDict[_arg1] !== undefined){ return (_classToInheritingStylesDict[_arg1]); }; var _local2:Object = ((_arg1["defaultStyles"]) || ({})); var _local3:String = ClassUtil.getClassName(_arg1); var _local4:Object = _styleSheet.getStyle(_local3.toLowerCase()); for (_local5 in _local4) { _local2[_local5] = StyleUtil.parseStyle(_local5, _local4[_local5]); }; _classToInheritingStylesDict[_arg1] = _local2; return (_local2); } public function parseCSS(_arg1:String):void{ var _local2:Object; var _local3:Component; var _local4:Object; var _local5:String; var _local6:Object; var _local7:String; _styleSheet.parseCSS(_arg1); _styleNameToStylesHash = {}; _classNameToMergedInheritingStylesHash = new Dictionary(); _classToInheritingStylesDict = new Dictionary(); for (_local2 in _components) { _local3 = Component(_local2); _local4 = getMergedInheritingStyles(_local3); for (_local5 in _local4) { _local3.setInheritingStyle(_local5, _local4[_local5]); }; _local6 = getNamedStyles(_local3.styleName); for (_local7 in _local6) { _local3.setNamedStyle(_local7, _local6[_local7]); }; }; } public function unregisterComponent(_arg1:Component):void{ if (_components[_arg1]){ _arg1.removeEventListener(ComponentEvent.STYLE_NAME_CHANGE, onCompStyleNameChangedHandler); delete _components[_arg1]; }; } public function registerComponent(_arg1:Component):void{ var _local2:Object; var _local3:String; if (!_components[_arg1]){ _components[_arg1] = true; _arg1.addEventListener(ComponentEvent.STYLE_NAME_CHANGE, onCompStyleNameChangedHandler); _local2 = getMergedInheritingStyles(_arg1); for (_local3 in _local2) { _arg1.setInheritingStyle(_local3, _local2[_local3]); }; }; } private function onCompStyleNameChangedHandler(_arg1:ComponentEvent):void{ var _local4:String; var _local2:Component = Component(_arg1.target); var _local3:Object = getNamedStyles(_local2.styleName); for (_local4 in _local3) { _local2.setNamedStyle(_local4, _local3[_local4]); }; } } }//package com.bigwigmedia.ui
Section 403
//ToolTipManager (com.bigwigmedia.ui.ToolTipManager) package com.bigwigmedia.ui { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.events.*; import flash.utils.*; import com.bigwigmedia.core.*; import com.bigwigmedia.application.*; public class ToolTipManager implements IToolTipManager { private var _showDelay:Number;// = 500 private var _showTimer:Timer; private var _toolTipTarget:Component; private var _toolTip:ToolTip; private var _toolTipHolder:Sprite; private var _components:Dictionary; private var _toolTipText:String; public static const DISP_X:Number = 20; public static const DISP_Y:Number = 20; public function ToolTipManager(){ _components = new Dictionary(); super(); Singleton.checkInstance(this); _toolTipHolder = Globals.application.toolTipHolder; } public function get showDelay():Number{ return (_showDelay); } public function set showDelay(_arg1:Number):void{ _showDelay = _arg1; } private function onToolTipResizeHandler(_arg1:ComponentEvent):void{ var _local2:IApplication = Globals.application; if ((_toolTip.x + _toolTip.width) > _local2.nominalWidth){ _toolTip.x = (_local2.nominalWidth - _toolTip.width); }; if ((_toolTip.y + _toolTip.height) > _local2.nominalHeight){ _toolTip.y = (_local2.nominalHeight - _toolTip.height); }; } public function registerComponent(_arg1:Component):void{ if (!_components[_arg1]){ _components[_arg1] = true; _arg1.addEventListener(MouseEvent.MOUSE_OVER, onComponentMouseOverHandler); _arg1.addEventListener(MouseEvent.MOUSE_OUT, onComponentMouseOutHandler); }; } private function onShowTimerHandler(_arg1:TimerEvent):void{ _toolTip = new ToolTip(); _toolTip.addEventListener(ComponentEvent.RESIZE, onToolTipResizeHandler); _toolTip.text = _toolTipText; var _local2:Stage = Globals.stage; _toolTip.x = (_local2.mouseX + DISP_X); _toolTip.y = (_local2.mouseY + DISP_Y); _toolTipHolder.addChild(_toolTip); } private function onComponentMouseOutHandler(_arg1:MouseEvent):void{ if (_toolTipTarget == findTarget(DisplayObject(_arg1.target))){ removeToolTip(); }; } private function showToolTip():void{ removeToolTip(); _showTimer = new Timer(_showDelay, 1); _showTimer.addEventListener(TimerEvent.TIMER, onShowTimerHandler); _showTimer.start(); } public function unregisterComponent(_arg1:Component):void{ if (_components[_arg1]){ if (_toolTipTarget == _arg1){ removeToolTip(); }; _arg1.removeEventListener(MouseEvent.MOUSE_OVER, onComponentMouseOverHandler); _arg1.removeEventListener(MouseEvent.MOUSE_OUT, onComponentMouseOutHandler); delete _components[_arg1]; }; } private function onComponentMouseOverHandler(_arg1:MouseEvent):void{ var _local2:Component = findTarget(DisplayObject(_arg1.target)); if (!_local2){ return; }; var _local3:String = _local2.toolTip; if (_local3){ _toolTipText = _local3; _toolTipTarget = _local2; showToolTip(); }; } private function findTarget(_arg1:DisplayObject):Component{ while (_arg1) { if ((_arg1 is Component)){ return (Component(_arg1)); }; _arg1 = _arg1.parent; }; return (null); } private function removeToolTip():void{ if (_showTimer){ _showTimer.stop(); _showTimer.removeEventListener(TimerEvent.TIMER, onShowTimerHandler); _showTimer = null; }; if (_toolTip){ _toolTip.removeEventListener(ComponentEvent.RESIZE, onToolTipResizeHandler); _toolTip.dispose(); _toolTipHolder.removeChild(_toolTip); _toolTip = null; _toolTipTarget = null; }; } } }//package com.bigwigmedia.ui
Section 404
//ClassInfo (com.bigwigmedia.utils.reflection.ClassInfo) package com.bigwigmedia.utils.reflection { import flash.utils.*; public class ClassInfo { private var _propertiesHash:Object; private var _methodsHash:Object; private var _classMetadataHash:Object; private var _xml:XML; public function ClassInfo(_arg1:Class){ _propertiesHash = {}; _methodsHash = {}; super(); _xml = describeType(_arg1); } public function getMethodInfo(_arg1:String, _arg2:Boolean=false):MethodInfo{ var xmlList:XMLList; var name = _arg1; var isStatic = _arg2; var id:String = ((name + ",static=") + isStatic); if (_methodsHash[id] === undefined){ if (isStatic){ xmlList = _xml.method.(@name == name); } else { xmlList = _xml.factory.method.(@name == name); }; if (xmlList.length() == 0){ _methodsHash[id] = null; } else { _methodsHash[id] = new MethodInfo(xmlList[0], isStatic); }; }; return (_methodsHash[id]); } public function getClassMetadata(_arg1:String):Array{ if (!_classMetadataHash){ _classMetadataHash = collectClassMetadata(); }; return (((_classMetadataHash[_arg1]) || ([]))); } public function getPropertyInfo(_arg1:String, _arg2:Boolean=false):PropertyInfo{ var xmlList:XMLList; var name = _arg1; var isStatic = _arg2; var id:String = ((name + ",static=") + isStatic); if (_propertiesHash[id] === undefined){ if (isStatic){ xmlList = (_xml.accessor.(@name == name) + _xml.variable.(@name == name)); } else { xmlList = (_xml.factory.accessor.(@name == name) + _xml.factory.variable.(@name == name)); }; if (xmlList.length() == 0){ _propertiesHash[id] = null; } else { _propertiesHash[id] = new PropertyInfo(xmlList[0], isStatic); }; }; return (_propertiesHash[id]); } private function collectClassMetadata():Object{ var _local3:XML; var _local4:Metadata; var _local5:Array; var _local1:Object = {}; var _local2:XMLList = _xml.factory.metadata; for each (_local3 in _local2) { _local4 = new Metadata(_local3); _local5 = _local1[_local4.name]; if (!_local5){ _local5 = (_local1[_local4.name] = []); }; _local5.push(_local4); }; return (_local1); } } }//package com.bigwigmedia.utils.reflection
Section 405
//Metadata (com.bigwigmedia.utils.reflection.Metadata) package com.bigwigmedia.utils.reflection { public class Metadata { private var _arguments:Object; private var _name:String; public function Metadata(_arg1:XML){ var xml = _arg1; _arguments = {}; super(); _name = xml.@name; xml.arg.(_arguments[@key] = @value); //not popped } public function getArgument(_arg1:String):String{ return (_arguments[_arg1]); } public function get name():String{ return (_name); } public function toString():String{ return ((("[Metadata name=\"" + _name) + "\"]")); } } }//package com.bigwigmedia.utils.reflection
Section 406
//MethodInfo (com.bigwigmedia.utils.reflection.MethodInfo) package com.bigwigmedia.utils.reflection { import com.bigwigmedia.utils.*; public class MethodInfo { private var _returnType:String; private var _name:String; private var _parameters:Array; private var _isStatic:Boolean; public function MethodInfo(_arg1:XML, _arg2:Boolean){ var xml = _arg1; var isStatic = _arg2; _parameters = []; super(); _name = xml.@name; _returnType = xml.@returnType; _isStatic = isStatic; var parametersList:XMLList = xml.parameter; parametersList.(_parameters.push(new ParameterInfo(valueOf()))); //not popped } public function get parameters():Array{ return (_parameters); } public function get name():String{ return (_name); } public function toString():String{ return (ObjectUtil.formatToString(this, "name", "returnType", "isStatic")); } public function get returnType():String{ return (_returnType); } public function get isStatic():Boolean{ return (_isStatic); } } }//package com.bigwigmedia.utils.reflection
Section 407
//ParameterInfo (com.bigwigmedia.utils.reflection.ParameterInfo) package com.bigwigmedia.utils.reflection { import com.bigwigmedia.utils.*; public class ParameterInfo { private var _index:int; private var _type:String; private var _optional:Boolean; public function ParameterInfo(_arg1:XML){ _index = _arg1.@index; _type = _arg1.@type; _optional = (_arg1.@optional.toString() == "true"); } public function get optional():Boolean{ return (_optional); } public function get index():int{ return (_index); } public function get type():String{ return (_type); } public function toString():String{ return (ObjectUtil.formatToString(this, "index", "type", "optional")); } } }//package com.bigwigmedia.utils.reflection
Section 408
//PropertyInfo (com.bigwigmedia.utils.reflection.PropertyInfo) package com.bigwigmedia.utils.reflection { import com.bigwigmedia.utils.*; public class PropertyInfo { private var _access:String; private var _name:String; private var _isStatic:Boolean; private var _type:String; public static const READ_ONLY:String = "readonly"; public static const READ_WRITE:String = "readwrite"; public static const WRITE_ONLY:String = "writeonly"; public function PropertyInfo(_arg1:XML, _arg2:Boolean){ _name = _arg1.@name; _access = (_arg1.hasOwnProperty("@access")) ? _arg1.@access : PropertyInfo.READ_WRITE; _type = _arg1.@type; _isStatic = _arg2; } public function get access():String{ return (_access); } public function get name():String{ return (_name); } public function toString():String{ return (ObjectUtil.formatToString(this, "name", "access", "type", "isStatic")); } public function get isStatic():Boolean{ return (_isStatic); } public function get type():String{ return (_type); } } }//package com.bigwigmedia.utils.reflection
Section 409
//Reflection (com.bigwigmedia.utils.reflection.Reflection) package com.bigwigmedia.utils.reflection { import flash.utils.*; public class Reflection { private static var _classToInfoDict:Dictionary = new Dictionary(); public static function getClassInfo(_arg1:Object):ClassInfo{ var _local2:Class = ((_arg1 is Class)) ? Class(_arg1) : Object(_arg1).constructor; var _local3:ClassInfo = _classToInfoDict[_local2]; if (!_local3){ _local3 = (_classToInfoDict[_local2] = new ClassInfo(_local2)); }; return (_local3); } } }//package com.bigwigmedia.utils.reflection
Section 410
//ArrayUtil (com.bigwigmedia.utils.ArrayUtil) package com.bigwigmedia.utils { public class ArrayUtil { public static function shuffle(_arg1:Array):Array{ var _local5:int; var _local6:*; var _local2:Array = _arg1.slice(); var _local3:int = _local2.length; if (_local3 <= 1){ return (_local2); }; var _local4:int; while (_local4 < _local3) { _local5 = int((Math.random() * _local3)); _local6 = _local2[_local4]; _local2[_local4] = _local2[_local5]; _local2[_local5] = _local6; _local4++; }; return (_local2); } public static function shuffleTrim(_arg1:Array, _arg2:int):Array{ var _local3:int = _arg1.length; if (_arg2 > _local3){ throw (new ArgumentError("Supplied length is bigger than length of supplied array")); }; if (_local3 <= 1){ return (_arg1.slice()); }; var _local4:Array = ArrayUtil.shuffle(_arg1); var _local5:Array = []; var _local6:int; while (_local6 < _arg2) { _local5.push(_local4.pop()); _local6++; }; return (_local5); } public static function getRandomElement(_arg1:Array){ var _local3:int; var _local2:int = _arg1.length; if (_local2 > 0){ _local3 = (Math.random() * _local2); return (_arg1[_local3]); }; return (undefined); } } }//package com.bigwigmedia.utils
Section 411
//ClassUtil (com.bigwigmedia.utils.ClassUtil) package com.bigwigmedia.utils { import flash.utils.*; public class ClassUtil { public static function getClassName(_arg1):String{ var _local2:String = getQualifiedClassName(_arg1); return (_local2.split("::").pop()); } } }//package com.bigwigmedia.utils
Section 412
//GeomUtil (com.bigwigmedia.utils.GeomUtil) package com.bigwigmedia.utils { import flash.geom.*; public class GeomUtil { private static var _tempMatrix:Matrix = new Matrix(); private static var _tempPoint:Point = new Point(); public static function getAABB(_arg1:Rectangle, _arg2:Point, _arg3:Number=0):Rectangle{ var _local4:Number = (_arg1.x + _arg2.x); var _local5:Number = (_arg1.y + _arg2.y); var _local6:Number = _arg1.width; var _local7:Number = _arg1.height; _tempMatrix.a = 1; _tempMatrix.b = 0; _tempMatrix.c = 0; _tempMatrix.d = 1; _tempMatrix.tx = -(_local4); _tempMatrix.ty = -(_local5); _tempMatrix.rotate(_arg3); _tempMatrix.tx = (_tempMatrix.tx + _local4); _tempMatrix.ty = (_tempMatrix.ty + _local5); _tempPoint.x = (_arg1.x + (_local6 / 2)); _tempPoint.y = (_arg1.y + (_local7 / 2)); _tempPoint = _tempMatrix.transformPoint(_tempPoint); var _local8:Number = Math.sin(_arg3); if (_local8 < 0){ _local8 = -(_local8); }; var _local9:Number = Math.cos(_arg3); if (_local9 < 0){ _local9 = -(_local9); }; var _local10:Number = ((_local6 * _local9) + (_local7 * _local8)); var _local11:Number = ((_local6 * _local8) + (_local7 * _local9)); return (new Rectangle(((_tempPoint.x - _arg2.x) - (_local10 / 2)), ((_tempPoint.y - _arg2.y) - (_local11 / 2)), _local10, _local11)); } } }//package com.bigwigmedia.utils
Section 413
//NumberFormatter (com.bigwigmedia.utils.NumberFormatter) package com.bigwigmedia.utils { public class NumberFormatter { public static function addLeadingZeros(_arg1:Object, _arg2:int=2):String{ var _local3:String = String(_arg1); while (_local3.length < _arg2) { _local3 = ("0" + _local3); }; return (_local3); } public static function formatThousands(_arg1:Object, _arg2:String=","):String{ var _local3:String = String(_arg1); var _local4 = ""; var _local5:Number = _local3.length; var _local6:int; while (_local6 < _local5) { if (((((_local6 % 3) == 0)) && ((_local6 > 0)))){ _local4 = (_arg2 + _local4); }; _local4 = (_local3.substr((_local5 - (_local6 + 1)), 1) + _local4); _local6++; }; return (_local4); } public static function formatPrecision(_arg1:Object, _arg2:String=".", _arg3:int=3):String{ var _local6:String; var _local7:String; var _local4:String = String(_arg1); var _local5:Array = _local4.split("."); _local5[0] = ((_local5[0].length == 0)) ? "0" : _local5[0]; if (_arg3 > 0){ _local6 = (_local5[1]) ? String(_local5[1]) : ""; _local7 = (_local6 + "000000000000000000000000000000000"); _local4 = ((_local5[0] + _arg2) + _local7.substr(0, _arg3)); } else { _local4 = String(_local5[0]); }; return (_local4); } } }//package com.bigwigmedia.utils
Section 414
//ObjectUtil (com.bigwigmedia.utils.ObjectUtil) package com.bigwigmedia.utils { public class ObjectUtil { public static function getRandomValue(_arg1:Object){ var _local3:Object; var _local4:int; var _local2:Array = []; for each (_local3 in _arg1) { _local2.push(_local3); }; _local4 = (Math.random() * _local2.length); return (_local2[_local4]); } public static function formatToString(_arg1, ... _args):String{ var _local6:String; var _local7:Object; var _local3:String = ("[" + ClassUtil.getClassName(_arg1)); var _local4:int = _args.length; var _local5:int; while (_local5 < _local4) { _local6 = _args[_local5]; _local7 = _arg1[_local6]; if ((_local7 is String)){ _local3 = (_local3 + ((((" " + _local6) + "=\"") + _local7) + "\"")); } else { _local3 = (_local3 + (((" " + _local6) + "=") + _local7)); }; _local5++; }; return ((_local3 + "]")); } public static function hasProperties(_arg1:Object):Boolean{ var _local2:String; for (_local2 in _arg1) { return (true); }; return (false); } } }//package com.bigwigmedia.utils
Section 415
//RC4 (com.bigwigmedia.utils.RC4) package com.bigwigmedia.utils { import flash.events.*; import flash.utils.*; import com.bigwigmedia.core.*; public class RC4 extends EventDispatcher implements IDisposable { private var asyncPosition:uint;// = 0 private var keyBytes:ByteArray; private var asyncBytes:ByteArray; private var S:ByteArray; private var asyncBytesLength:uint; private var i:int;// = 0 private var asyncTimer:Timer; private var j:int;// = 0 public static const ASYNC_BLOCK_SIZE_KB:uint = 204800; public function RC4(_arg1:String){ S = new ByteArray(); keyBytes = new ByteArray(); super(); keyBytes.writeUTFBytes(_arg1); } public function get bytesDecrypted():uint{ return (asyncPosition); } private function onTimerHandler(_arg1:TimerEvent):void{ var _local2:int = ASYNC_BLOCK_SIZE_KB; while ((((asyncPosition < asyncBytesLength)) && ((_local2 > 0)))) { var _local3 = asyncPosition++; asyncBytes[_local3] = (asyncBytes[_local3] ^ next()); }; if (asyncPosition >= asyncBytesLength){ asyncTimer.removeEventListener(TimerEvent.TIMER, onTimerHandler); dispatchEvent(new Event(Event.COMPLETE)); }; } public function decrypt(_arg1:ByteArray):void{ encrypt(_arg1); dispatchEvent(new Event(Event.COMPLETE)); } private function initialize():void{ var _local1:int; var _local4:int; _local1 = 0; while (_local1 < 0x0100) { S[_local1] = _local1; _local1++; }; var _local2:int; var _local3:int = keyBytes.length; _local1 = 0; while (_local1 < 0x0100) { _local4 = S[_local1]; _local2 = (((_local2 + _local4) + keyBytes[(_local1 % _local3)]) & 0xFF); S[_local1] = S[_local2]; S[_local2] = _local4; _local1++; }; i = 0; j = 0; } public function dispose():void{ if (asyncTimer){ asyncTimer.stop(); asyncTimer.removeEventListener(TimerEvent.TIMER, onTimerHandler); asyncTimer = null; }; S = null; keyBytes = null; asyncBytes = null; } public function encrypt(_arg1:ByteArray):void{ initialize(); var _local2:uint; while (_local2 < _arg1.length) { var _temp1 = _local2; _local2 = (_local2 + 1); var _local3 = _temp1; _arg1[_local3] = (_arg1[_local3] ^ next()); }; } public function decryptAsync(_arg1:ByteArray):void{ asyncBytes = _arg1; asyncBytesLength = asyncBytes.length; initialize(); asyncTimer = new Timer(1, 0); asyncTimer.addEventListener(TimerEvent.TIMER, onTimerHandler); asyncTimer.start(); } private function next():uint{ var _local1:int = S[i]; i = ((i + 1) & 0xFF); j = ((j + _local1) & 0xFF); var _local2:int = (S[i] = S[j]); S[j] = _local1; return (S[((_local1 + _local2) & 0xFF)]); } } }//package com.bigwigmedia.utils
Section 416
//StringUtil (com.bigwigmedia.utils.StringUtil) package com.bigwigmedia.utils { public class StringUtil { public static function substitute(_arg1:String, ... _args):String{ var _local4:Array; if (_arg1 == null){ return (""); }; var _local3:uint = _args.length; if ((((_local3 == 1)) && ((_args[0] is Array)))){ _local4 = (_args[0] as Array); _local3 = _local4.length; } else { _local4 = _args; }; var _local5:int; while (_local5 < _local3) { _arg1 = _arg1.replace(new RegExp((("\\{" + _local5) + "\\}"), "g"), _local4[_local5]); _local5++; }; return (_arg1); } public static function secondsToTimerString(_arg1:int, _arg2:String=":"):String{ var _local3:String = String((_arg1 % 60)); _local3 = ((_local3.length == 1)) ? ("0" + _local3) : _local3; var _local4:String = String(Math.floor((_arg1 / 60))); _local4 = ((_local4.length == 1)) ? ("0" + _local4) : _local4; return (((_local4 + _arg2) + _local3)); } } }//package com.bigwigmedia.utils
Section 417
//TimeCount (com.bigwigmedia.utils.TimeCount) package com.bigwigmedia.utils { import flash.events.*; import flash.utils.*; import com.bigwigmedia.core.*; public class TimeCount extends EventDispatcher implements IUpdatable { private var _percent:Number;// = 1 private var _timeDisp:int; private var _completed:Boolean;// = false private var _timeStart:int; private var _timeOffset:int; public function TimeCount(_arg1:int){ _timeStart = _arg1; _timeOffset = getTimer(); } public function get percent():Number{ return (_percent); } public function update(_arg1:Number):void{ if (_completed){ return; }; _timeDisp = (getTimer() - _timeOffset); _percent = (((_timeStart + _timeOffset) - getTimer()) / _timeStart); if (_percent < 0){ _percent = 0; }; if (_percent == 0){ _completed = true; dispatchEvent(new Event(Event.COMPLETE)); }; } public function unpause():void{ _timeOffset = (getTimer() - _timeDisp); } } }//package com.bigwigmedia.utils
Section 418
//Base64 (com.dynamicflash.util.Base64) package com.dynamicflash.util { import flash.utils.*; public class Base64 { public static const version:String = "1.0.0"; private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; public function Base64(){ throw (new Error("Base64 class is static container only")); } public static function encode(_arg1:String):String{ var _local2:ByteArray = new ByteArray(); _local2.writeUTFBytes(_arg1); return (encodeByteArray(_local2)); } public static function encodeByteArray(_arg1:ByteArray):String{ var _local3:Array; var _local5:uint; var _local6:uint; var _local7:uint; var _local2 = ""; var _local4:Array = new Array(4); _arg1.position = 0; while (_arg1.bytesAvailable > 0) { _local3 = new Array(); _local5 = 0; while ((((_local5 < 3)) && ((_arg1.bytesAvailable > 0)))) { _local3[_local5] = _arg1.readUnsignedByte(); _local5++; }; _local4[0] = ((_local3[0] & 252) >> 2); _local4[1] = (((_local3[0] & 3) << 4) | (_local3[1] >> 4)); _local4[2] = (((_local3[1] & 15) << 2) | (_local3[2] >> 6)); _local4[3] = (_local3[2] & 63); _local6 = _local3.length; while (_local6 < 3) { _local4[(_local6 + 1)] = 64; _local6++; }; _local7 = 0; while (_local7 < _local4.length) { _local2 = (_local2 + BASE64_CHARS.charAt(_local4[_local7])); _local7++; }; }; return (_local2); } public static function decode(_arg1:String):String{ var _local2:ByteArray = decodeToByteArray(_arg1); return (_local2.readUTFBytes(_local2.length)); } public static function decodeToByteArray(_arg1:String):ByteArray{ var _local6:uint; var _local7:uint; var _local2:ByteArray = new ByteArray(); var _local3:Array = new Array(4); var _local4:Array = new Array(3); var _local5:uint; while (_local5 < _arg1.length) { _local6 = 0; while ((((_local6 < 4)) && (((_local5 + _local6) < _arg1.length)))) { _local3[_local6] = BASE64_CHARS.indexOf(_arg1.charAt((_local5 + _local6))); _local6++; }; _local4[0] = ((_local3[0] << 2) + ((_local3[1] & 48) >> 4)); _local4[1] = (((_local3[1] & 15) << 4) + ((_local3[2] & 60) >> 2)); _local4[2] = (((_local3[2] & 3) << 6) + _local3[3]); _local7 = 0; while (_local7 < _local4.length) { if (_local3[(_local7 + 1)] == 64){ break; }; _local2.writeByte(_local4[_local7]); _local7++; }; _local5 = (_local5 + 4); }; _local2.position = 0; return (_local2); } } }//package com.dynamicflash.util
Section 419
//Color (fl.motion.Color) package fl.motion { import flash.display.*; import flash.geom.*; public class Color extends ColorTransform { private var _tintColor:Number;// = 0 private var _tintMultiplier:Number;// = 0 public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } private function deriveTintColor():uint{ var _local1:Number = (1 / this.tintMultiplier); var _local2:uint = Math.round((this.redOffset * _local1)); var _local3:uint = Math.round((this.greenOffset * _local1)); var _local4:uint = Math.round((this.blueOffset * _local1)); var _local5:uint = (((_local2 << 16) | (_local3 << 8)) | _local4); return (_local5); } public function set brightness(_arg1:Number):void{ if (_arg1 > 1){ _arg1 = 1; } else { if (_arg1 < -1){ _arg1 = -1; }; }; var _local2:Number = (1 - Math.abs(_arg1)); var _local3:Number = 0; if (_arg1 > 0){ _local3 = (_arg1 * 0xFF); }; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2)); this.redOffset = (this.greenOffset = (this.blueOffset = _local3)); } private function parseXML(_arg1:XML=null):Color{ var _local3:XML; var _local4:String; var _local5:uint; if (!_arg1){ return (this); }; var _local2:XML = _arg1.elements()[0]; if (!_local2){ return (this); }; for each (_local3 in _local2.attributes()) { _local4 = _local3.localName(); if (_local4 == "tintColor"){ _local5 = (Number(_local3.toString()) as uint); this.tintColor = _local5; } else { this[_local4] = Number(_local3.toString()); }; }; return (this); } public function get tintColor():uint{ return (this._tintColor); } public function set tintColor(_arg1:uint):void{ this.setTint(_arg1, this.tintMultiplier); } public function get brightness():Number{ return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1)); } public function set tintMultiplier(_arg1:Number):void{ this.setTint(this.tintColor, _arg1); } public function get tintMultiplier():Number{ return (this._tintMultiplier); } public function setTint(_arg1:uint, _arg2:Number):void{ this._tintColor = _arg1; this._tintMultiplier = _arg2; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2))); var _local3:uint = ((_arg1 >> 16) & 0xFF); var _local4:uint = ((_arg1 >> 8) & 0xFF); var _local5:uint = (_arg1 & 0xFF); this.redOffset = Math.round((_local3 * _arg2)); this.greenOffset = Math.round((_local4 * _arg2)); this.blueOffset = Math.round((_local5 * _arg2)); } public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{ var _local4:Number = (1 - _arg3); var _local5:uint = ((_arg1 >> 24) & 0xFF); var _local6:uint = ((_arg1 >> 16) & 0xFF); var _local7:uint = ((_arg1 >> 8) & 0xFF); var _local8:uint = (_arg1 & 0xFF); var _local9:uint = ((_arg2 >> 24) & 0xFF); var _local10:uint = ((_arg2 >> 16) & 0xFF); var _local11:uint = ((_arg2 >> 8) & 0xFF); var _local12:uint = (_arg2 & 0xFF); var _local13:uint = ((_local5 * _local4) + (_local9 * _arg3)); var _local14:uint = ((_local6 * _local4) + (_local10 * _arg3)); var _local15:uint = ((_local7 * _local4) + (_local11 * _arg3)); var _local16:uint = ((_local8 * _local4) + (_local12 * _arg3)); var _local17:uint = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16); return (_local17); } public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:Number = (1 - _arg3); var _local5:ColorTransform = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3))); return (_local5); } public static function fromXML(_arg1:XML):Color{ return (Color(new (Color).parseXML(_arg1))); } } }//package fl.motion
Section 420
//effectcopy_13 (graphics_fla.effectcopy_13) package graphics_fla { import flash.display.*; public dynamic class effectcopy_13 extends MovieClip { public function effectcopy_13(){ addFrameScript(15, frame16); } function frame16(){ stop(); } } }//package graphics_fla
Section 421
//Face_63 (graphics_fla.Face_63) package graphics_fla { import flash.display.*; public dynamic class Face_63 extends MovieClip { public function Face_63(){ addFrameScript(0, frame1, 1, frame2, 2, frame3); } function frame3(){ stop(); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package graphics_fla
Section 422
//Footballer_109 (graphics_fla.Footballer_109) package graphics_fla { import flash.display.*; public dynamic class Footballer_109 extends MovieClip { public var shirt:uniform_shirt; } }//package graphics_fla
Section 423
//Footballerhit_78 (graphics_fla.Footballerhit_78) package graphics_fla { import flash.display.*; public dynamic class Footballerhit_78 extends MovieClip { public function Footballerhit_78(){ addFrameScript(20, frame21); } function frame21(){ stop(); } } }//package graphics_fla
Section 424
//Footballerhit5_76 (graphics_fla.Footballerhit5_76) package graphics_fla { import flash.display.*; public dynamic class Footballerhit5_76 extends MovieClip { public function Footballerhit5_76(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package graphics_fla
Section 425
//Footballerhit6_71 (graphics_fla.Footballerhit6_71) package graphics_fla { import flash.display.*; public dynamic class Footballerhit6_71 extends MovieClip { public function Footballerhit6_71(){ addFrameScript(20, frame21); } function frame21(){ stop(); } } }//package graphics_fla
Section 426
//ouch_11 (graphics_fla.ouch_11) package graphics_fla { import flash.display.*; public dynamic class ouch_11 extends MovieClip { public function ouch_11(){ addFrameScript(8, frame9); } function frame9(){ stop(); } } }//package graphics_fla
Section 427
//smoke_74 (graphics_fla.smoke_74) package graphics_fla { import flash.display.*; public dynamic class smoke_74 extends MovieClip { public function smoke_74(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//package graphics_fla
Section 428
//ByteArrayAsset (mx.core.ByteArrayAsset) package mx.core { import flash.utils.*; public class ByteArrayAsset extends ByteArray implements IFlexAsset { mx_internal static const VERSION:String = "3.5.0.12683"; } }//package mx.core
Section 429
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 430
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 431
//MainTimeline (preloader_fla.MainTimeline) package preloader_fla { import flash.display.*; public dynamic class MainTimeline extends MovieClip { public function MainTimeline(){ addFrameScript(179, frame180); } function frame180(){ stop(); } } }//package preloader_fla
Section 432
//preloader_progress_bar_39 (preloader_fla.preloader_progress_bar_39) package preloader_fla { import flash.display.*; public dynamic class preloader_progress_bar_39 extends MovieClip { public var _mask:MovieClip; } }//package preloader_fla
Section 433
//smoke_33 (preloader_fla.smoke_33) package preloader_fla { import flash.display.*; public dynamic class smoke_33 extends MovieClip { public function smoke_33(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//package preloader_fla
Section 434
//OVER_76 (ui_elements_fla.OVER_76) package ui_elements_fla { import flash.display.*; public dynamic class OVER_76 extends MovieClip { public function OVER_76(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//package ui_elements_fla
Section 435
//OVERcopy_74 (ui_elements_fla.OVERcopy_74) package ui_elements_fla { import flash.display.*; public dynamic class OVERcopy_74 extends MovieClip { public function OVERcopy_74(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui_elements_fla
Section 436
//AwardUnlocked (wbo.common.AwardUnlocked) package wbo.common { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.controls.*; import wbo.levelWon.*; import assets.*; public class AwardUnlocked extends Sprite { private var mAward:Sprite; private var mSprite:Sprite; private var mAwardLabel:Label; private var _controller:LevelWonController; private var mBackground:Sprite; public function AwardUnlocked(_arg1:int, _arg2:LevelWonController){ _controller = _arg2; mBackground = new wbo_award_bg(); var _local3:Array = [stage1_award, stage2_award, stage3_award, stage4_award, time_award, misbehaviour_award, unsportmanlike_award, full_team_award]; mAward = new (_local3[_arg1]); var _local4:Number = 120; var _local5:Number = Math.max(mAward.width, mAward.height); var _local6:Number = (_local4 / _local5); mAward.scaleX = (mAward.scaleY = _local6); mAward.x = (mAward.x - (mAward.width / 2)); mAward.y = (26 - (mAward.height / 2)); mAwardLabel = new Label(); mAwardLabel.text = "You've unlocked an award!"; mAwardLabel.styleName = "awardUnlockText"; mAwardLabel.x = (10 - (mBackground.width / 2)); mAwardLabel.y = -101; mSprite = new Sprite(); mSprite.addChild(mBackground); mSprite.addChild(mAward); mSprite.addChild(mAwardLabel); addChild(mSprite); mSprite.addEventListener(MouseEvent.CLICK, onAwardClicked); } public function onAwardClicked(_arg1:MouseEvent):void{ trace("click"); _controller.trophyRoom(); } } }//package wbo.common
Section 437
//BackgroundType (wbo.common.BackgroundType) package wbo.common { import com.bigwigmedia.utils.*; public class BackgroundType { public static const BACK_TURKEY:String = "BACK_TURKEY"; public static const BACK_NEW_YORK:String = "BACK_NEW_YORK"; public static const BACK_MOUNTAINS:String = "BACK_MOUNTAINS"; public static const BACK_RANDOM:String = "BACK_RANDOM"; private static const list:Array = [BACK_BEACH, BACK_CHINA, BACK_DESERT, BACK_EUROPE, BACK_MEDITERRANEAN, BACK_MOUNTAINS, BACK_NEW_YORK, BACK_RUSSIA, BACK_SNOW, BACK_TURKEY]; public static const BACK_CHINA:String = "BACK_CHINA"; public static const BACK_SNOW:String = "BACK_SNOW"; public static const BACK_BEACH:String = "BACK_BEACH"; public static const BACK_DESERT:String = "BACK_DESERT"; public static const BACK_RUSSIA:String = "BACK_RUSSIA"; public static const BACK_EUROPE:String = "BACK_EUROPE"; public static const BACK_MEDITERRANEAN:String = "BACK_MEDITERRANEAN"; public static function getRandom():String{ return (ArrayUtil.getRandomElement(list)); } } }//package wbo.common
Section 438
//GameItemDefinition (wbo.common.GameItemDefinition) package wbo.common { public class GameItemDefinition { protected var _id:String; protected var _superKind:String; protected var _kind:String; protected var _x:Number; protected var _y:Number; public function GameItemDefinition(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number){ _superKind = GameItemKind.getSuperKindFromKind(_arg1); _kind = _arg1; _id = _arg2; _x = _arg3; _y = _arg4; } public function get kind():String{ return (_kind); } public function get y():Number{ return (_y); } public function get id():String{ return (_id); } public function get superKind():String{ return (_superKind); } public function get x():Number{ return (_x); } public static function fromXML(_arg1:XML):GameItemDefinition{ var _local2:String = _arg1.@kind; var _local3:String = GameItemKind.getSuperKindFromKind(_local2); var _local4:XMLList = _arg1.params; switch (_local3){ case GameItemKind.HINT: return (new GameItemDefinition(_local2, _arg1.@id, _local4.@x, _local4.@y)); }; throw (new Error(("Error creating GameItemDefinition for xml:\n" + _arg1.toXMLString()))); } } }//package wbo.common
Section 439
//GameItemKind (wbo.common.GameItemKind) package wbo.common { public class GameItemKind { public static const BLOCK_STATIC:String = "block_static"; public static const CLEAN_ZONE:String = "helper_clean_zone"; public static const CHARACTER_MAN:String = "character_man"; public static const BLOCKS:String = "blocks"; public static const BLOCK_GLASS:String = "block_glass"; public static const HINT:String = "helper_hint"; public static const BLOCK_CONCRETE:String = "block_concrete"; public static const EXPL_C4:String = "c4"; public static const TOOL_WRECKING_BALL:String = "tool_wrecking_ball"; public static const EXPLOSION_EFFECT:String = "explosion_effect"; public static const LASER:String = "laser"; public static const CHARACTER_WOMAN:String = "character_woman"; public static const DESTROYED_BLOCK:String = "destroyed_block"; public static const TOOL_UFO:String = "tool_ufo"; public static const ACID:String = "acid"; public static const BLOCK_WOOD:String = "block_wood"; public static const EXPLOSIVE:String = "explosive"; public static const EXPL_TNT:String = "tnt"; public static const CHARACTER_OPPONENT:String = "character_opponent"; public static const AIR_STRIKE_BALL:String = "air_strike_ball"; public static const BLOCK_STEEL:String = "block_steel"; public static const TOOL_ACID_BALLOON:String = "tool_acid_balloon"; public static const EXPL_NITROGLYCERIN:String = "nitroglycerin"; public static const ANTIMATTER_ATTRACTOR:String = "antimatter_attractor"; public static const CHARACTERS:String = "characters"; public static const PADDLE:String = "paddle"; public static const EXPL_ANTIMATTER:String = "antimatter"; public static const TOOL_AIR_STRIKE:String = "tool_air_strike"; public static const BALL:String = "ball"; public static function getSuperKindFromKind(_arg1:String):String{ switch (_arg1){ case BLOCK_STATIC: case BLOCK_GLASS: case BLOCK_WOOD: case BLOCK_CONCRETE: case BLOCK_STEEL: return (BLOCKS); case CHARACTER_OPPONENT: case CHARACTER_MAN: case CHARACTER_WOMAN: return (CHARACTERS); case EXPL_TNT: case EXPL_NITROGLYCERIN: case EXPL_C4: case EXPL_ANTIMATTER: return (EXPLOSIVE); case ANTIMATTER_ATTRACTOR: case HINT: case CLEAN_ZONE: case ACID: case LASER: case TOOL_ACID_BALLOON: case TOOL_UFO: case TOOL_WRECKING_BALL: case TOOL_AIR_STRIKE: case AIR_STRIKE_BALL: case DESTROYED_BLOCK: case EXPLOSION_EFFECT: return (_arg1); case PADDLE: return (_arg1); case BALL: return (_arg1); }; throw (new ArgumentError((("Kind \"" + _arg1) + "\" is not supported."))); } } }//package wbo.common
Section 440
//IComponentIDSupplierView (wbo.common.IComponentIDSupplierView) package wbo.common { public interface IComponentIDSupplierView { function get componentID():String; } }//package wbo.common
Section 441
//LevelInfo (wbo.common.LevelInfo) package wbo.common { import flash.geom.*; public class LevelInfo { public var levelCompleted:Boolean;// = false private var _levelRect:Rectangle; private var _adjacentBlocksIDHash:Object; private var _xml:XML; private var _itemsDefinitions:Array; private static const UID_CHARS:Array = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]; public function LevelInfo(_arg1:XML){ if (!_arg1){ throw (new Error("XML config can't be null.")); }; _xml = _arg1; } public function get fullTitle():String{ var _local1:String = ((_xml.@title + ((String(_xml.@authorName))!="") ? (" By " + String(_xml.@authorName)) : "") + ((String(_xml.@authorEmail))!="") ? ((" (" + String(_xml.@authorEmail)) + ")") : ""); return (_local1); } public function get imported():Boolean{ return (((_xml.hasOwnProperty("@imported")) && ((_xml.@imported == "true")))); } public function getGoalKeeperData():Array{ return ([_xml.goalkeeper.speed]); } public function getBallData():Array{ return ([_xml.ball.speed, _xml.ball.size]); } public function get uid():String{ return (_xml.@id); } public function get levelRect():Rectangle{ return (_levelRect); } public function get xml():XML{ return (_xml); } public function getRefereeData():Array{ trace(((((((((_xml.referee.startX + ", ") + _xml.referee.startY) + ", ") + _xml.referee.endX) + ", ") + _xml.referee.endY) + ", ") + _xml.referee.frequency)); return ([_xml.referee.startX, _xml.referee.startY, _xml.referee.endX, _xml.referee.endY, _xml.referee.frequency]); } public function get background():String{ var _local1:String = _xml.@background; if (_local1 == BackgroundType.BACK_RANDOM){ return (BackgroundType.getRandom()); }; return (_local1); } public function getItemsDefinitions():Array{ var _local2:XML; if (_itemsDefinitions){ return (_itemsDefinitions); }; _itemsDefinitions = []; var _local1:XMLList = _xml.items.children(); for each (_local2 in _local1) { _itemsDefinitions.push(_local2); }; return (_itemsDefinitions); } public function get score():int{ return (_xml.@score); } public function get title():String{ return (_xml.@title); } public function invalidate():void{ _adjacentBlocksIDHash = null; _itemsDefinitions = null; levelCompleted = false; _levelRect = null; _xml.@score = "0"; } public static function createNew(_arg1:String, _arg2:String, _arg3:String):LevelInfo{ var _local4:XML = new XML((("<level id=\"" + ??esc_xattr ) + "\"/>")); return (new LevelInfo(_local4)); } private static function createUID():String{ var _local1 = ""; var _local2:int; while (_local2 < 32) { _local1 = (_local1 + UID_CHARS[int((Math.random() * 16))]); _local2++; }; var _local3:Number = new Date().getTime(); _local1 = (_local1 + ("-" + _local3.toString(16).toUpperCase().substr(-8))); return (_local1); } } }//package wbo.common
Section 442
//PowerUp (wbo.common.PowerUp) package wbo.common { import flash.display.*; import com.bigwigmedia.ui.controls.*; import wbo.managers.*; import com.bigwigmedia.geom.*; import assets.*; public class PowerUp extends Sprite { private var mDropVel:Vector2D; private var mID:int; private var mSprite:Sprite; private var mLastTime:Number; public static const REDCARD_POWERUP:int = 7; public static const YELLOWCARD_POWERUP:int = 9; public static const SPIKEDBOOT_POWERUP:int = 8; public static const MEAT_POWERUP:int = 4; public static const DUPLICATE_BALL_POWERUP:int = 1; public static const MEDAL_POWERUP:int = 5; public static const PENALTY_KICK:int = 11; public static const POWERUP_MAX:int = 12; public static const CAMERA_POWERUP:int = 0; public static const PUMP_POWERUP:int = 6; public static const MAGNET_POWERUP:int = 3; public static const FIREBALL_POWERUP:int = 10; public static const GOLDENCUP_POWERUP:int = 2; public function PowerUp(_arg1:int){ switch (_arg1){ case CAMERA_POWERUP: mSprite = new camera(); break; case DUPLICATE_BALL_POWERUP: mSprite = CreateMultipleBallPowerUp(); break; case GOLDENCUP_POWERUP: mSprite = new goldencup(); break; case MAGNET_POWERUP: mSprite = new magnet(); break; case MEAT_POWERUP: mSprite = new meat(); break; case MEDAL_POWERUP: mSprite = new medal(); break; case PUMP_POWERUP: mSprite = new pump(); break; case REDCARD_POWERUP: mSprite = new redcard(); break; case SPIKEDBOOT_POWERUP: mSprite = new spikedboot(); break; case YELLOWCARD_POWERUP: mSprite = new yellowcard(); break; case FIREBALL_POWERUP: mSprite = new fireball_powerup(); break; case PENALTY_KICK: mSprite = new penaltykick(); break; }; mID = _arg1; addChild(mSprite); mDropVel = new Vector2D(0, 0.1); mLastTime = -1; } public function get sprite():Sprite{ return (mSprite); } public function update(_arg1:Number):void{ if (mLastTime == -1){ mLastTime = _arg1; return; }; var _local2:Number = (_arg1 - mLastTime); mSprite.x = (mSprite.x + (mDropVel.x * _local2)); mSprite.y = (mSprite.y + (mDropVel.y * _local2)); mLastTime = _arg1; } public function CreateMultipleBallPowerUp():Sprite{ var _local1:Text = new Text(); var _local2:Text = new Text(); _local1.text = ("x" + Managers.configManager.getPowerUpValue(DUPLICATE_BALL_POWERUP)); _local2.text = _local1.text; _local2.x = 5; _local2.y = 5; var _local3:Sprite = new Sprite(); _local3.addChild(_local2); _local3.addChild(_local1); return (_local3); } public function get id():int{ return (mID); } } }//package wbo.common
Section 443
//AwardTypes (wbo.constants.AwardTypes) package wbo.constants { public class AwardTypes { public static const STAGE_01_AWARD:int = 0; public static const STAGE_02_AWARD:int = 1; public static const STAGE_04_AWARD:int = 3; public static const STAGE_03_AWARD:int = 2; public static const BLITZ_AWARD:int = 4; public static const MISBEHAVIOUR_AWARD:int = 5; public static const UNSPORTSMAN_AWARD:int = 6; public static const FULL_TEAM_AWARD:int = 7; } }//package wbo.constants
Section 444
//Teams (wbo.constants.Teams) package wbo.constants { public class Teams { public static const GHA:int = 13; public static const PAR:int = 24; public static const CHI:int = 7; public static const NZL:int = 22; public static const PRK:int = 19; public static const SPA:int = 30; public static const AUS:int = 4; public static const RSA:int = 29; public static const HON:int = 15; public static const SUI:int = 31; public static const CAM:int = 6; public static const CIV:int = 8; public static const POR:int = 25; public static const GER:int = 12; public static const ARG:int = 3; public static const GRE:int = 14; public static const ENG:int = 10; public static const MEX:int = 20; public static const SER:int = 26; public static const JPN:int = 17; public static const SVN:int = 28; public static const SVK:int = 27; public static const URU:int = 32; public static const USA:int = 33; public static const NIG:int = 23; public static const NED:int = 21; public static const KOR:int = 18; public static const BRA:int = 5; public static const DEN:int = 9; public static const FRA:int = 11; public static const ITA:int = 16; public static const ALG:int = 2; public static function GetTeamId(_arg1:String):int{ switch (_arg1){ case "ALG": return (Teams.ALG); case "ARG": return (Teams.ARG); case "AUS": return (Teams.AUS); case "BRA": return (Teams.BRA); case "CAM": return (Teams.CAM); case "CHI": return (Teams.CHI); case "CIV": return (Teams.CIV); case "DEN": return (Teams.DEN); case "ENG": return (Teams.ENG); case "FRA": return (Teams.FRA); case "GER": return (Teams.GER); case "GHA": return (Teams.GHA); case "GRE": return (Teams.GRE); case "HON": return (Teams.HON); case "ITA": return (Teams.ITA); case "JPN": return (Teams.JPN); case "KOR": return (Teams.KOR); case "PRK": return (Teams.PRK); case "MEX": return (Teams.MEX); case "NED": return (Teams.NED); case "NZL": return (Teams.NZL); case "NIG": return (Teams.NIG); case "PAR": return (Teams.PAR); case "POR": return (Teams.POR); case "SER": return (Teams.SER); case "SVK": return (Teams.SVK); case "SVN": return (Teams.SVN); case "RSA": return (Teams.RSA); case "SPA": return (Teams.SPA); case "SUI": return (Teams.SUI); case "URU": return (Teams.URU); case "USA": return (Teams.USA); }; throw (Error("Team not supported")); } public static function GetTeamName(_arg1:int):String{ var _local2:Array = ["blank", "blank", "Algeria", "Argentina", "Australia", "Brazil", "Cameroon", "Chile", "Côte d'Ivoire", "Denmark", "England", "France", "Germany", "Ghana", "Greece", "Honduras", "Italy", "Japan", "Korea Republic", "Korea DPR", "Mexico", "Netherlands", "New Zealand", "Nigeria", "Paraguay", "Portugal", "Serbia", "Slovakia", "Slovenia", "South Africa", "Spain", "Switzerland", "Uruguay", "USA"]; return (_local2[_arg1]); } } }//package wbo.constants
Section 445
//MainController (wbo.core.MainController) package wbo.core { import com.bigwigmedia.stateMachine.*; import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import wbo.game.*; import wbo.instructions.*; import com.bigwigmedia.mvc.*; import wbo.teamSelection.*; import wbo.introMovie.*; import wbo.mainMenu.*; import wbo.gameCompleteMovie.*; import wbo.levelLost.*; import wbo.levelWon.*; import wbo.levelSelection.*; import wbo.trophyroom.*; import wbo.editorLevelSelection.*; import wbo.editor.*; import audio.*; import com.bigwigmedia.core.*; import com.bigwigmedia.transitions.*; public class MainController extends EventDispatcher implements IController { private var _view:Sprite; private var _subController:IController; private var _stateMachine:IStateMachine; private var _subControllerClass:Class; public function MainController(){ Console.initialize([67, 79, 78, 83, 79, 76, 69]); _view = new Sprite(); Managers.initialize(onManagersInitCallback); } private function showInstructions(_arg1:AbstractEvent):void{ beginTransitionEffect(InstructionsController); } private function onControllerCompleteHandler(_arg1:ControllerEvent):void{ _stateMachine.sendSignal(String(_arg1.data)); } private function showEditor(_arg1:AbstractEvent):void{ beginTransitionEffect(EditorController); } private function gameWon(_arg1:AbstractEvent):void{ beginTransitionEffect(LevelWonController); } private function beginTransitionEffect(_arg1:Class):void{ _subControllerClass = _arg1; Globals.application.startTransition(new BlackoutTransition(250, createSubController)); } public function onMouseLeave(_arg1:Event):void{ if ((_subController is GameController)){ (_subController as GameController).onActivateHandler(); }; } private function showEditorLevelSelection(_arg1:AbstractEvent):void{ beginTransitionEffect(EditorLevelSelectionController); } private function RegisterAudio():void{ Managers.soundManager.registerRecord("goal", biggoal); Managers.soundManager.registerRecord("cheeringcrowd", cheeringcrowd); Managers.soundManager.registerRecord("football_bounce_2", football_bounce_2); Managers.soundManager.registerRecord("football_kick_1", football_kick_1); Managers.soundManager.registerRecord("gameambience", gameambience); Managers.soundManager.registerRecord("levelwon", levelwon); Managers.soundManager.registerRecord("lifelost", lifelost); Managers.soundManager.registerRecord("ouch1", ouch1); Managers.soundManager.registerRecord("ouch2", ouch2); Managers.soundManager.registerRecord("ouch3", ouch3); Managers.soundManager.registerRecord("ouch4", ouch4); Managers.soundManager.registerRecord("ouch5", ouch5); Managers.soundManager.registerRecord("ouch6", ouch6); Managers.soundManager.registerRecord("ouch7", ouch7); Managers.soundManager.registerRecord("ouch8", ouch8); Managers.soundManager.registerRecord("paddle_hit", paddle_hit); Managers.soundManager.registerRecord("powerdown", powerdown); Managers.soundManager.registerRecord("powerup11", powerup11); Managers.soundManager.registerRecord("whistle11", whistle11); Managers.soundManager.registerRecord("button_click", button_click); Managers.soundManager.registerRecord("earthquake", earthquake); Managers.soundManager.registerRecord("rage_sound", rage_sound); Managers.soundManager.registerRecord("cancel_sound", cancel_sfx); Managers.soundManager.registerRecord("splash_ambience", splashambience_quiet); Managers.soundManager.registerRecord("whistle_start", whistlestartgame); Managers.soundManager.registerRecord("crowdboo", crowdboo); Managers.soundManager.registerRecord("fanfarelow", fanfarelow); Managers.soundManager.registerRecord("vo1", vo1); Managers.soundManager.registerRecord("vo2", vo2); Managers.soundManager.registerRecord("vo3", vo3); Managers.soundManager.registerRecord("vo4", vo4); Managers.soundManager.registerRecord("vo5", vo5); } private function showGame(_arg1:AbstractEvent):void{ trace("show game"); beginTransitionEffect(GameController); } private function showMainMenu(_arg1:AbstractEvent):void{ beginTransitionEffect(MainMenuController); } private function endGameSelection(_arg1:AbstractEvent):void{ beginTransitionEffect(EndGameMovieController); } private function createSubController():void{ if (_subController){ _view.removeChild(_subController.view); _subController.removeEventListener(ControllerEvent.COMPLETE, onControllerCompleteHandler); _subController.dispose(); _subController = null; }; _subController = new _subControllerClass(); _subController.addEventListener(ControllerEvent.COMPLETE, onControllerCompleteHandler); _view.addChild(_subController.view); } private function introMovie(_arg1:AbstractEvent):void{ beginTransitionEffect(IntroMovieController); } public function get view():DisplayObject{ return (_view); } public function dispose():void{ throw (new Error("Can't dispose MainController")); } private function levelSelection(_arg1:AbstractEvent):void{ beginTransitionEffect(LevelSelectionController); } private function trophyRoom(_arg1:AbstractEvent):void{ trace("trophyRoom"); beginTransitionEffect(TrophyRoomController); } private function teamSelection(_arg1:AbstractEvent):void{ beginTransitionEffect(TeamSelectionController); } private function isPlayingUserLevel():Boolean{ return (Managers.levelProgressService.isPlayingUserLevel()); } private function gameLost(_arg1:AbstractEvent):void{ beginTransitionEffect(LevelLostController); } public function onMouseMove(_arg1:MouseEvent):void{ if ((_subController is GameController)){ (_subController as GameController).onDeactivateHandler(); }; } private function onManagersInitCallback():void{ _stateMachine = new FSM(); var _local1:AbstractState = _stateMachine.addState(new InitialState()); var _local2:AbstractState = _stateMachine.addState(new SimpleState(showMainMenu)); var _local3:AbstractState = _stateMachine.addState(new SimpleState(showInstructions)); var _local4:AbstractState = _stateMachine.addState(new SimpleState(showEditorLevelSelection)); var _local5:AbstractState = _stateMachine.addState(new SimpleState(showEditor)); var _local6:AbstractState = _stateMachine.addState(new SimpleState(levelSelection)); var _local7:AbstractState = _stateMachine.addState(new SimpleState(showGame)); var _local8:AbstractState = _stateMachine.addState(new ChoiceState()); var _local9:AbstractState = _stateMachine.addState(new SimpleState(teamSelection)); var _local10:AbstractState = _stateMachine.addState(new SimpleState(gameLost)); var _local11:AbstractState = _stateMachine.addState(new SimpleState(gameWon)); var _local12:AbstractState = _stateMachine.addState(new SimpleState(trophyRoom)); var _local13:AbstractState = _stateMachine.addState(new SimpleState(introMovie)); var _local14:AbstractState = _stateMachine.addState(new SimpleState(endGameSelection)); _local1.addTransition(_local2); _local2.addTransition(_local3, new SignalTrigger(MainSignal.SHOW_INSTRUCTIONS)); _local2.addTransition(_local4, new SignalTrigger(MainSignal.SHOW_EDITOR)); _local2.addTransition(_local6, new SignalTrigger(MainSignal.SHOW_LEVEL_SELECTION)); _local2.addTransition(_local12, new SignalTrigger(MainSignal.SHOW_TROPHY_ROOM)); _local2.addTransition(_local13, new SignalTrigger(MainSignal.SHOW_INTRO_MOVIE)); _local3.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local3.addTransition(_local7, new SignalTrigger(MainSignal.SHOW_GAME)); _local4.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local4.addTransition(_local5, new SignalTrigger(MainSignal.SHOW_EDITOR)); _local4.addTransition(_local7, new SignalTrigger(MainSignal.START)); _local5.addTransition(_local4, new SignalTrigger(MainSignal.SHOW_LEVEL_SELECTION)); _local7.addTransition(_local7, new SignalTrigger(MainSignal.REPLAY_LEVEL)); _local7.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local7.addTransition(_local11, new SignalTrigger(MainSignal.SHOW_WINNING_SCREEN)); _local7.addTransition(_local10, new SignalTrigger(MainSignal.SHOW_LOSING_SCREEN)); _local7.addTransition(_local5, new SignalTrigger(MainSignal.SHOW_EDITOR)); _local7.addTransition(_local6, new SignalTrigger(MainSignal.SHOW_LEVEL_SELECTION)); _local6.addTransition(_local7, new SignalTrigger(MainSignal.SHOW_GAME)); _local6.addTransition(_local9, new SignalTrigger(MainSignal.TEAM_SELECT)); _local6.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local6.addTransition(_local3, new SignalTrigger(MainSignal.SHOW_INSTRUCTIONS)); _local9.addTransition(_local6, new SignalTrigger(MainSignal.SHOW_LEVEL_SELECTION)); _local9.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local11.addTransition(_local6, new SignalTrigger(MainSignal.SHOW_LEVEL_SELECTION)); _local11.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local11.addTransition(_local12, new SignalTrigger(MainSignal.SHOW_TROPHY_ROOM)); _local11.addTransition(_local14, new SignalTrigger(MainSignal.SHOW_END_GAME_MOVIE)); _local10.addTransition(_local6, new SignalTrigger(MainSignal.REPLAY_STAGE)); _local10.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local12.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local12.addTransition(_local11, new SignalTrigger(MainSignal.SHOW_WINNING_SCREEN)); _local13.addTransition(_local9, new SignalTrigger(MainSignal.START)); _local14.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _stateMachine.start(); RegisterAudio(); } } }//package wbo.core
Section 446
//MainSignal (wbo.core.MainSignal) package wbo.core { public class MainSignal { public static const START:String = "START"; public static const SHOW_TROPHY_ROOM:String = "SHOW_TROPHY_ROOM"; public static const RESET_GAME:String = "RESET_GAME"; public static const REPLAY_LEVEL:String = "REPLAY_LEVEL"; public static const REPLAY_STAGE:String = "REPLAY_STAGE"; public static const SHOW_LEVEL_SELECTION:String = "SHOW_LEVEL_SELECTION"; public static const WIN_GAME:String = "WIN_GAME"; public static const QUIT:String = "QUIT"; public static const SHOW_INTRO_MOVIE:String = "SHOW_INTRO_MOVIE"; public static const SHOW_WINNING_SCREEN:String = "SHOW_WINNING_SCREEN"; public static const SHOW_END_GAME_MOVIE:String = "SHOW_END_GAME_MOVIE"; public static const SHOW_MAIN_MENU:String = "SHOW_MAIN_MENU"; public static const SHOW_INSTRUCTIONS:String = "SHOW_INSTRUCTIONS"; public static const TEAM_SELECT:String = "TEAM_SELECT"; public static const SHOW_EDITOR:String = "SHOW_EDITOR"; public static const NEXT_DAY:String = "NEXT_DAY"; public static const SHOW_GAME:String = "SHOW_GAME"; public static const SHOW_LOSING_SCREEN:String = "SHOW_LOSING_SCREEN"; } }//package wbo.core
Section 447
//EditorController (wbo.editor.EditorController) package wbo.editor { import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import wbo.game.events.*; import wbo.managers.*; import wbo.common.*; import com.bigwigmedia.mvc.*; import wbo.core.*; public class EditorController extends EventDispatcher implements IController { private var _view:EditorView; private var _levelInfo:LevelInfo; public function EditorController(){ _levelInfo = Managers.levelProgressService.getLevelInfo(); _view = new EditorView(this, _levelInfo); _view.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); } private function onResetHandler(_arg1:Event):void{ _view.reset(); } public function get view():DisplayObject{ return (_view); } public function viewMouseClick(_arg1:String, _arg2:Number, _arg3:Number):void{ } public function levelEditor():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_LEVEL_SELECTION)); } private function onEnterFrameHandler(_arg1:Event):void{ } private function onHUDEventHandler(_arg1:HUDEvent):void{ switch (_arg1.type){ case HUDEvent.REPLAY_LEVEL: break; case HUDEvent.EDIT_LEVEL: dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_EDITOR)); break; case HUDEvent.RESET: break; case HUDEvent.DETONATE: break; case HUDEvent.PAUSE: break; case HUDEvent.UNPAUSE: break; case HUDEvent.MAIN_MENU: dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); break; case HUDEvent.SELECT_LEVEL: dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_LEVEL_SELECTION)); break; case HUDEvent.NEXT_LEVEL: dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.REPLAY_LEVEL)); break; }; } public function mainMenu():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } public function dispose():void{ _view.dispose(); } } }//package wbo.editor
Section 448
//EditorView (wbo.editor.EditorView) package wbo.editor { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import wbo.common.*; import com.bigwigmedia.mvc.*; import flash.geom.*; import assets.*; public class EditorView extends ComponentView { private const REFEREE_MOVEMENT_STATE:int = 7; private const BRICK_POWERUP_STATE:int = 4; private const REFEREE_SPEED_STATE:int = 8; private const REFEREE_MENU_STATE:int = 6; private const BRICK_MOVE_ASSET_STATE:int = 10; private const BRICK_SPEED_STATE:int = 5; private const BRICK_MOVEMENT_STATE:int = 3; private const IDLE_STATE:int = 0; private const DRAGGING_BRICK_STATE:int = 1; private const REFEREE_FREQUENCY_STATE:int = 9; private const BRICK_MENU_STATE:int = 2; private var mPlayerButton:Array; private var mSelectedMarker:Sprite; private var mVResolution:int; private var mHResolution:int; private var mGoalKeeperSprite:Sprite; private var mState:int; private var mSelectedDefender:SelectableBrick; private var mBallUp:Button; private var mBallDown:Button; private var mBallLabel:Label; private var mItems:Array; private var mGoalKeeperLabel:Label; private var mDragSprite:SelectableBrick; private var mController:EditorController; private var mGrid:Sprite; private var mGoalKeeperUp:Button; private var mBallSprite:Sprite; private var mReferee:RefereeEditor; private var mGoalKeeperDown:Button; private var mSelectedBrick:SelectableBrick; private var mListClasses:Array; public function EditorView(_arg1:EditorController, _arg2:LevelInfo){ var _local3:int; super(); InitGrid(); mController = _arg1; mPlayerButton = new Array(); mItems = new Array(); _local3 = 0; while (_local3 < 3) { mPlayerButton[_local3] = new LabelButton(); mPlayerButton[_local3].label = ((_local3 + 1) + ""); mPlayerButton[_local3].name = ((_local3 + 1) + ""); mPlayerButton[_local3].x = (50 + (_local3 * 65)); mPlayerButton[_local3].y = 450; mPlayerButton[_local3].height = 24; mPlayerButton[_local3].width = 50; addChild(mPlayerButton[_local3]); _local3++; }; addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler); addEventListener(MouseEvent.MOUSE_UP, onMouseUpHandler); mState = IDLE_STATE; InitGoalKeeper(); InitBall(); mReferee = new RefereeEditor(); mReferee.sprite.x = 320; mReferee.sprite.y = 400; addChild(mReferee.sprite); if (_arg2){ LoadLevel(_arg2); }; } private function increaseBallSpeed():void{ var _local1:int = int(mBallLabel.text); if ((_local1 + 1) > 3){ _local1 = 3; } else { _local1++; }; mBallLabel.text = _local1.toString(); } private function InitDefenderMovement():void{ mSelectedDefender = mSelectedBrick; mState = BRICK_MOVE_ASSET_STATE; removeChild(mSelectedBrick.powerupButton); removeChild(mSelectedBrick.movementButton); removeChild(mSelectedBrick.speedButton); removeChild(mSelectedBrick.deleteButton); removeChild(mSelectedBrick.moveButton); } private function LoadDefenders(_arg1:Array):void{ var _local3:int; var _local4:int; var _local5:int; var _local8:int; var _local9:String; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:Array; var _local15:uint; var _local2:Array = _arg1; var _local6:Point = new Point(0, 0); var _local7:Point = new Point(0, 0); _local12 = 0; while (_local12 < _local2.length) { _local14 = String(_local2[_local12]).split("\n"); _local13 = 0; while (_local13 < _local14.length) { switch ((_local13 - 1)){ case 0: _local9 = _local14[_local13]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local3 = int(_local9.substring(_local10, _local11)); break; case 1: _local9 = _local14[_local13]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local4 = int(_local9.substring(_local10, _local11)); break; case 2: _local9 = _local14[_local13]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local5 = int(_local9.substring(_local10, _local11)); break; case 3: _local9 = _local14[_local13]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local6.x = int(_local9.substring(_local10, _local11)); break; case 4: _local9 = _local14[_local13]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local6.y = int(_local9.substring(_local10, _local11)); break; case 5: _local9 = _local14[_local13]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local7.x = int(_local9.substring(_local10, _local11)); break; case 6: _local9 = _local14[_local13]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local7.y = int(_local9.substring(_local10, _local11)); break; case 7: _local9 = _local14[_local13]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local8 = int(_local9.substring(_local10, _local11)); if (!mItems){ mItems = new Array(); }; _local15 = mItems.push(new SelectableBrick(_local3)); addChild(mItems[(_local15 - 1)].sprite); mItems[(_local15 - 1)].loadAttributes(_local4, _local5, _local6, _local7, _local8); break; }; _local13++; }; _local12++; }; } private function decreaseBallSpeed():void{ var _local1:int = int(mBallLabel.text); if ((_local1 - 1) < 1){ _local1 = 1; } else { _local1--; }; mBallLabel.text = _local1.toString(); } private function deleteSelectedBrick():void{ var _local1:int = mItems.indexOf(mSelectedBrick); removeChild(mSelectedBrick.speedButton); removeChild(mSelectedBrick.movementButton); removeChild(mSelectedBrick.deleteButton); removeChild(mSelectedBrick.moveButton); removeChild(mSelectedBrick.powerupButton); removeChild(mSelectedBrick.sprite); mState = IDLE_STATE; mSelectedBrick = null; delete mItems[_local1]; } public function onMouseMoveHandler(_arg1:MouseEvent):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; switch (mState){ case IDLE_STATE: break; case DRAGGING_BRICK_STATE: _local2 = (640 / mVResolution); _local3 = (480 / mHResolution); _local4 = (int(((_arg1.stageX + (_local2 / 2)) / _local2)) * _local2); _local5 = (int(((_arg1.stageY + (_local3 / 2)) / _local3)) * _local3); mDragSprite.sprite.x = _local4; mDragSprite.sprite.y = _local5; break; case BRICK_MENU_STATE: break; case BRICK_MOVEMENT_STATE: if (mSelectedMarker){ _local2 = (640 / mVResolution); _local3 = (480 / mHResolution); _local4 = (int(((_arg1.stageX + (_local2 / 2)) / _local2)) * _local2); _local5 = (int(((_arg1.stageY + (_local3 / 2)) / _local3)) * _local3); mSelectedMarker.x = _local4; mSelectedMarker.y = _local5; mSelectedBrick.updateMoveMarkers(); mSelectedBrick.updateMoveMarkers(); }; break; case BRICK_POWERUP_STATE: break; case REFEREE_MOVEMENT_STATE: if (mSelectedMarker){ _local2 = (640 / mVResolution); _local3 = (480 / mHResolution); _local4 = (int(((_arg1.stageX + (_local2 / 2)) / _local2)) * _local2); _local5 = (int(((_arg1.stageY + (_local3 / 2)) / _local3)) * _local3); mSelectedMarker.x = _local4; mSelectedMarker.y = _local5; mReferee.updateMoveMarkers(); mReferee.updateMoveMarkers(); }; break; case BRICK_MOVE_ASSET_STATE: if (mSelectedDefender){ _local2 = (640 / mVResolution); _local3 = (480 / mHResolution); _local4 = (int(((_arg1.stageX + (_local2 / 2)) / _local2)) * _local2); _local5 = (int(((_arg1.stageY + (_local3 / 2)) / _local3)) * _local3); mSelectedDefender.sprite.x = _local4; mSelectedDefender.sprite.y = _local5; }; break; }; } private function LoadLevel(_arg1:LevelInfo):void{ mBallLabel.text = (_arg1.getBallData()[0] + ""); if (_arg1.getItemsDefinitions()){ LoadDefenders(_arg1.getItemsDefinitions()); }; mGoalKeeperLabel.text = (_arg1.getGoalKeeperData()[0] + ""); mReferee.loadAttributes(_arg1.getRefereeData()); } override public function dispose():void{ } public function ShowBrickMenu(_arg1:SelectableBrick):void{ var _local2:int; mState = BRICK_MENU_STATE; mSelectedBrick = _arg1; mSelectedBrick.powerupButton.x = 40; mSelectedBrick.powerupButton.y = 40; mSelectedBrick.movementButton.x = 40; mSelectedBrick.movementButton.y = 70; mSelectedBrick.speedButton.x = 40; mSelectedBrick.speedButton.y = 100; mSelectedBrick.deleteButton.x = 40; mSelectedBrick.deleteButton.y = 130; mSelectedBrick.moveButton.x = 40; mSelectedBrick.moveButton.y = 160; addChild(mSelectedBrick.powerupButton); addChild(mSelectedBrick.movementButton); addChild(mSelectedBrick.speedButton); addChild(mSelectedBrick.deleteButton); addChild(mSelectedBrick.moveButton); } private function InitGrid():void{ var _local1:int; var _local2:int; var _local3:int; mGrid = new Sprite(); mGrid.graphics.beginFill(0); mGrid.graphics.lineStyle(1, 0); mHResolution = 25; mVResolution = 25; _local1 = 0; while (_local1 < mHResolution) { _local2 = 0; _local3 = (_local1 * (480 / mVResolution)); mGrid.graphics.moveTo(_local2, _local3); mGrid.graphics.lineTo(640, _local3); _local1++; }; _local1 = 0; while (_local1 < mVResolution) { _local2 = (_local1 * (640 / mHResolution)); _local3 = 0; mGrid.graphics.moveTo(_local2, _local3); mGrid.graphics.lineTo(_local2, 480); _local1++; }; mGrid.graphics.endFill(); var _local4:Sprite = getComponentByName("gridHolder"); _local4.addChild(mGrid); _local4.setChildIndex(mGrid, (_local4.numChildren - 1)); mGrid.visible = false; } private function increaseKeeperSpeed():void{ var _local1:int = int(mGoalKeeperLabel.text); if ((_local1 + 1) > 3){ _local1 = 3; } else { _local1++; }; mGoalKeeperLabel.text = _local1.toString(); } private function increaseSpeed():void{ mSelectedBrick.SetSpeed(1); } private function InitGoalKeeper():void{ mGoalKeeperSprite = new goalkeeper(); mGoalKeeperSprite.x = 320; mGoalKeeperSprite.y = 60; mGoalKeeperUp = new Button(); mGoalKeeperUp.name = "keeperupbutton"; mGoalKeeperUp.label = "+"; mGoalKeeperUp.width = 40; mGoalKeeperUp.height = 24; mGoalKeeperUp.x = (mGoalKeeperSprite.x + 25); mGoalKeeperUp.y = (mGoalKeeperSprite.y + 30); mGoalKeeperDown = new Button(); mGoalKeeperDown.name = "keeperdownbutton"; mGoalKeeperDown.label = "-"; mGoalKeeperDown.width = 40; mGoalKeeperDown.height = 24; mGoalKeeperDown.x = (mGoalKeeperSprite.x - 75); mGoalKeeperDown.y = (mGoalKeeperSprite.y + 30); mGoalKeeperLabel = new Label(); mGoalKeeperLabel.name = "keeperlabel"; mGoalKeeperLabel.text = "1"; mGoalKeeperLabel.x = mGoalKeeperSprite.x; mGoalKeeperLabel.y = (mGoalKeeperSprite.y + 30); addChild(mGoalKeeperSprite); addChild(mGoalKeeperDown); addChild(mGoalKeeperUp); addChild(mGoalKeeperLabel); } private function showRefereeMovement():void{ removeChild(mReferee.movementButton); removeChild(mReferee.speedButton); removeChild(mReferee.frequencyButton); mReferee.updateMarkers(); addChild(mReferee.startMarker); addChild(mReferee.endMarker); mState = REFEREE_MOVEMENT_STATE; } private function showPowerUps():void{ var _local1:int; var _local3:Sprite; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local2:int = mSelectedBrick.powerups.length; _local1 = 0; while (_local1 < mSelectedBrick.powerups.length) { _local3 = mSelectedBrick.powerups[_local1].sprite; _local4 = 50; _local5 = (_local1 * 40); _local6 = 24; _local7 = Math.max(_local3.width, _local3.height); _local8 = (_local6 / _local7); _local3.x = _local4; _local3.y = _local5; _local3.scaleX = (_local3.scaleY = _local8); _local1++; }; removeChild(mSelectedBrick.movementButton); removeChild(mSelectedBrick.powerupButton); removeChild(mSelectedBrick.speedButton); removeChild(mSelectedBrick.moveButton); _local1 = 0; while (_local1 < mSelectedBrick.powerups.length) { addChild(mSelectedBrick.powerups[_local1].sprite); _local1++; }; if (mSelectedBrick.currentPowerUp){ mSelectedBrick.currentPowerUp.sprite.x = mSelectedBrick.x; mSelectedBrick.currentPowerUp.sprite.y = mSelectedBrick.y; addChild(mSelectedBrick.currentPowerUp.sprite); }; mState = BRICK_POWERUP_STATE; } public function showRefereeFrequency():void{ removeChild(mReferee.movementButton); removeChild(mReferee.speedButton); removeChild(mReferee.frequencyButton); mReferee.frequencyUpButton.x = (mReferee.sprite.x + 35); mReferee.frequencyUpButton.y = (mReferee.sprite.y - 55); mReferee.frequencyDownButton.x = (mReferee.sprite.x - 65); mReferee.frequencyDownButton.y = (mReferee.sprite.y - 55); mReferee.frequencyLabel.x = mReferee.sprite.x; mReferee.frequencyLabel.y = (mReferee.sprite.y - 55); addChild(mReferee.frequencyUpButton); addChild(mReferee.frequencyDownButton); addChild(mReferee.frequencyLabel); mState = REFEREE_FREQUENCY_STATE; } public function ShowRefereeMenu():void{ var _local1:int; mState = REFEREE_MENU_STATE; mReferee.movementButton.x = 40; mReferee.movementButton.y = 70; mReferee.speedButton.x = 40; mReferee.speedButton.y = 100; mReferee.frequencyButton.x = 40; mReferee.frequencyButton.y = 130; addChild(mReferee.movementButton); addChild(mReferee.speedButton); addChild(mReferee.frequencyButton); } public function onMouseUpHandler(_arg1:MouseEvent):void{ var _local2:SelectableBrick; var _local3:PowerUp; var _local4:PowerUp; var _local5:Point; switch (mState){ case DRAGGING_BRICK_STATE: if (mDragSprite){ mItems.push(mDragSprite); mDragSprite = null; mState = IDLE_STATE; }; break; case IDLE_STATE: for each (_local2 in mItems) { if (_local2.sprite.hitTestPoint(_arg1.stageX, _arg1.stageY)){ ShowBrickMenu(_local2); return; }; }; if (mReferee.sprite.hitTestPoint(_arg1.stageX, _arg1.stageY)){ ShowRefereeMenu(); return; }; break; case BRICK_MENU_STATE: if (((((((((((!(mSelectedBrick.movementButton.hitTestPoint(_arg1.stageX, _arg1.stageY))) && (!(mSelectedBrick.powerupButton.hitTestPoint(_arg1.stageX, _arg1.stageY))))) && (!(mSelectedBrick.speedButton.hitTestPoint(_arg1.stageX, _arg1.stageY))))) && (!(mSelectedBrick.deleteButton.hitTestPoint(_arg1.stageX, _arg1.stageY))))) && (!(mSelectedBrick.moveButton.hitTestPoint(_arg1.stageX, _arg1.stageY))))) && (!(mSelectedBrick.hitTestPoint(_arg1.stageX, _arg1.stageY))))){ removeChild(mSelectedBrick.movementButton); removeChild(mSelectedBrick.powerupButton); removeChild(mSelectedBrick.speedButton); removeChild(mSelectedBrick.deleteButton); removeChild(mSelectedBrick.moveButton); mSelectedBrick = null; mState = IDLE_STATE; }; break; case BRICK_MOVEMENT_STATE: if (mSelectedBrick.startMarker.hitTestPoint(_arg1.stageX, _arg1.stageY)){ if (mSelectedMarker == mSelectedBrick.startMarker){ mSelectedMarker = null; } else { mSelectedMarker = mSelectedBrick.startMarker; }; } else { if (mSelectedBrick.endMarker.hitTestPoint(_arg1.stageX, _arg1.stageY)){ if (mSelectedMarker == mSelectedBrick.endMarker){ mSelectedMarker = null; } else { mSelectedMarker = mSelectedBrick.endMarker; }; } else { if (mSelectedBrick.sprite.hitTestPoint(_arg1.stageX, _arg1.stageY)){ removeChild(mSelectedBrick.startMarker); removeChild(mSelectedBrick.endMarker); addChild(mSelectedBrick.powerupButton); addChild(mSelectedBrick.movementButton); addChild(mSelectedBrick.speedButton); addChild(mSelectedBrick.deleteButton); addChild(mSelectedBrick.moveButton); mState = BRICK_MENU_STATE; }; }; }; break; case BRICK_POWERUP_STATE: if (mSelectedBrick.sprite.hitTestPoint(_arg1.stageX, _arg1.stageY)){ for each (_local3 in mSelectedBrick.powerups) { removeChild(_local3.sprite); }; addChild(mSelectedBrick.powerupButton); addChild(mSelectedBrick.movementButton); addChild(mSelectedBrick.speedButton); addChild(mSelectedBrick.deleteButton); addChild(mSelectedBrick.moveButton); mState = BRICK_MENU_STATE; } else { for each (_local4 in mSelectedBrick.powerups) { if (_local4.sprite.hitTestPoint(_arg1.stageX, _arg1.stageY)){ if (((mSelectedBrick.currentPowerUp) && (!((_local4 == mSelectedBrick.currentPowerUp))))){ _local5 = new Point(_local4.sprite.x, _local4.sprite.y); _local4.sprite.x = mSelectedBrick.sprite.x; _local4.sprite.y = mSelectedBrick.sprite.y; mSelectedBrick.currentPowerUp.sprite.x = _local5.x; mSelectedBrick.currentPowerUp.sprite.y = _local5.y; mSelectedBrick.currentPowerUp = _local4; mSelectedBrick.updatePowerUpID(); } else { mSelectedBrick.currentPowerUp = _local4; mSelectedBrick.currentPowerUp.sprite.x = mSelectedBrick.sprite.x; mSelectedBrick.currentPowerUp.sprite.y = mSelectedBrick.sprite.y; mSelectedBrick.updatePowerUpID(); }; break; }; }; }; break; case BRICK_SPEED_STATE: if (mSelectedBrick.sprite.hitTestPoint(_arg1.stageX, _arg1.stageY)){ removeChild(mSelectedBrick.speedUpButton); removeChild(mSelectedBrick.speedDownButton); removeChild(mSelectedBrick.speedLabel); addChild(mSelectedBrick.powerupButton); addChild(mSelectedBrick.movementButton); addChild(mSelectedBrick.speedButton); addChild(mSelectedBrick.deleteButton); addChild(mSelectedBrick.moveButton); mState = BRICK_MENU_STATE; }; break; case REFEREE_MENU_STATE: if (((((((!(mReferee.sprite.hitTestPoint(_arg1.stageX, _arg1.stageY))) && (!(mReferee.movementButton.hitTestPoint(_arg1.stageX, _arg1.stageY))))) && (!(mReferee.speedButton.hitTestPoint(_arg1.stageX, _arg1.stageY))))) && (!(mReferee.frequencyButton.hitTestPoint(_arg1.stageX, _arg1.stageY))))){ removeChild(mReferee.movementButton); removeChild(mReferee.speedButton); removeChild(mReferee.frequencyButton); mState = IDLE_STATE; }; break; case REFEREE_MOVEMENT_STATE: if (mReferee.startMarker.hitTestPoint(_arg1.stageX, _arg1.stageY)){ if (mSelectedMarker == mReferee.startMarker){ mSelectedMarker = null; } else { mSelectedMarker = mReferee.startMarker; }; } else { if (mReferee.endMarker.hitTestPoint(_arg1.stageX, _arg1.stageY)){ if (mSelectedMarker == mReferee.endMarker){ mSelectedMarker = null; } else { mSelectedMarker = mReferee.endMarker; }; } else { if (mReferee.sprite.hitTestPoint(_arg1.stageX, _arg1.stageY)){ removeChild(mReferee.startMarker); removeChild(mReferee.endMarker); addChild(mReferee.movementButton); addChild(mReferee.speedButton); addChild(mReferee.frequencyButton); mState = REFEREE_MENU_STATE; }; }; }; break; case REFEREE_FREQUENCY_STATE: if (mReferee.sprite.hitTestPoint(_arg1.stageX, _arg1.stageY)){ removeChild(mReferee.frequencyUpButton); removeChild(mReferee.frequencyDownButton); removeChild(mReferee.frequencyLabel); addChild(mReferee.movementButton); addChild(mReferee.speedButton); addChild(mReferee.frequencyButton); mState = REFEREE_MENU_STATE; }; break; case REFEREE_SPEED_STATE: if (mReferee.sprite.hitTestPoint(_arg1.stageX, _arg1.stageY)){ removeChild(mReferee.speedUpButton); removeChild(mReferee.speedDownButton); removeChild(mReferee.speedLabel); addChild(mReferee.movementButton); addChild(mReferee.speedButton); addChild(mReferee.frequencyButton); mState = REFEREE_MENU_STATE; }; break; case BRICK_MOVE_ASSET_STATE: if (mSelectedBrick.sprite.hitTestPoint(_arg1.stageX, _arg1.stageY)){ addChild(mSelectedBrick.powerupButton); addChild(mSelectedBrick.movementButton); addChild(mSelectedBrick.speedButton); addChild(mSelectedBrick.deleteButton); addChild(mSelectedBrick.moveButton); mState = BRICK_MENU_STATE; }; break; }; } override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "levelEditorButton": mController.levelEditor(); break; case "saveButton": SaveData(); break; case "1": mDragSprite = new SelectableBrick(SelectableBrick.DEFENDER_TYPE); addChild(mDragSprite.sprite); mState = DRAGGING_BRICK_STATE; break; case "2": mDragSprite = new SelectableBrick(SelectableBrick.BRUISER_TYPE); addChild(mDragSprite.sprite); mState = DRAGGING_BRICK_STATE; break; case "3": mDragSprite = new SelectableBrick(SelectableBrick.BRICK_TYPE); addChild(mDragSprite.sprite); mState = DRAGGING_BRICK_STATE; break; case "movementbutton": showMovement(); break; case "powerupbutton": showPowerUps(); break; case "speedbutton": showSpeeds(); break; case "speedupbutton": increaseSpeed(); break; case "speeddownbutton": decreaseSpeed(); break; case "keeperupbutton": increaseKeeperSpeed(); break; case "keeperdownbutton": decreaseKeeperSpeed(); break; case "refereemovementbutton": showRefereeMovement(); break; case "refereespeedbutton": showRefereeSpeeds(); break; case "refereefreqbutton": showRefereeFrequency(); break; case "refereespeedupbutton": mReferee.SetSpeed(1); break; case "refereespeeddownbutton": mReferee.SetSpeed(-1); break; case "refereefrequpbutton": mReferee.SetFrequency(10); break; case "refereefreqdownbutton": mReferee.SetFrequency(-10); break; case "ballupbutton": increaseBallSpeed(); break; case "balldownbutton": decreaseBallSpeed(); break; case "deletebutton": deleteSelectedBrick(); break; case "gridButton": mGrid.visible = !(mGrid.visible); break; case "movePlayerButton": InitDefenderMovement(); break; }; } private function decreaseSpeed():void{ mSelectedBrick.SetSpeed(-1); } private function showMovement():void{ removeChild(mSelectedBrick.movementButton); removeChild(mSelectedBrick.powerupButton); removeChild(mSelectedBrick.speedButton); removeChild(mSelectedBrick.moveButton); mSelectedBrick.updateMarkers(); addChild(mSelectedBrick.startMarker); addChild(mSelectedBrick.endMarker); mState = BRICK_MOVEMENT_STATE; } private function InitBall():void{ mBallSprite = new football(); mBallSprite.x = 550; mBallSprite.y = 60; mBallUp = new Button(); mBallUp.name = "ballupbutton"; mBallUp.label = "+"; mBallUp.width = 40; mBallUp.height = 24; mBallUp.x = (mBallSprite.x + 15); mBallUp.y = (mBallSprite.y + 15); mBallDown = new Button(); mBallDown.name = "balldownbutton"; mBallDown.label = "-"; mBallDown.width = 40; mBallDown.height = 24; mBallDown.x = (mBallSprite.x - 65); mBallDown.y = (mBallSprite.y + 15); mBallLabel = new Label(); mBallLabel.name = "balllabel"; mBallLabel.text = "1"; mBallLabel.x = (mBallSprite.x - 8); mBallLabel.y = (mBallSprite.y + 15); addChild(mBallSprite); addChild(mBallDown); addChild(mBallUp); addChild(mBallLabel); } private function SaveData():void{ var _local2:SelectableBrick; var _local3:XML; var _local4:String; var _local1 = ""; _local1 = (_local1 + (("<level id=\"" + Managers.levelProgressService.selectedUserLevelUID) + "\">\n")); _local1 = (_local1 + "\t<ball>\n"); _local1 = (_local1 + (("\t\t<speed>" + int(mBallLabel.text)) + "</speed>\n")); _local1 = (_local1 + (("\t\t<size>" + 2) + "</size>\n")); _local1 = (_local1 + "\t</ball>\n"); _local1 = (_local1 + "\t<items>\n"); for each (_local2 in mItems) { _local1 = (_local1 + _local2.GetExportStr()); }; _local1 = (_local1 + "\t</items>\n"); _local1 = (_local1 + "\t<goalkeeper>\n"); _local1 = (_local1 + (("\t\t<speed>" + int(mGoalKeeperLabel.text)) + "</speed>\n")); _local1 = (_local1 + "\t</goalkeeper>\n"); _local1 = (_local1 + "\t<referee>\n"); _local1 = (_local1 + mReferee.GetExportStr()); _local1 = (_local1 + "\t</referee>\n"); _local1 = (_local1 + "</level>\n"); _local3 = new XML(_local1); Managers.levelProgressService.saveSelectedLevel(_local3); _local4 = Managers.levelProgressService.getAllLevelsXML(); } private function showSpeeds():void{ removeChild(mSelectedBrick.movementButton); removeChild(mSelectedBrick.powerupButton); removeChild(mSelectedBrick.speedButton); removeChild(mSelectedBrick.moveButton); mSelectedBrick.speedUpButton.x = (mSelectedBrick.x + 35); mSelectedBrick.speedUpButton.y = (mSelectedBrick.y - 55); mSelectedBrick.speedDownButton.x = (mSelectedBrick.x - 65); mSelectedBrick.speedDownButton.y = (mSelectedBrick.y - 55); mSelectedBrick.speedLabel.x = mSelectedBrick.x; mSelectedBrick.speedLabel.y = (mSelectedBrick.y - 55); addChild(mSelectedBrick.speedUpButton); addChild(mSelectedBrick.speedDownButton); addChild(mSelectedBrick.speedLabel); mState = BRICK_SPEED_STATE; } private function decreaseKeeperSpeed():void{ var _local1:int = int(mGoalKeeperLabel.text); if ((_local1 - 1) < 1){ _local1 = 1; } else { _local1--; }; mGoalKeeperLabel.text = _local1.toString(); } private function showRefereeSpeeds():void{ removeChild(mReferee.movementButton); removeChild(mReferee.speedButton); removeChild(mReferee.frequencyButton); mReferee.speedUpButton.x = (mReferee.sprite.x + 35); mReferee.speedUpButton.y = (mReferee.sprite.y - 55); mReferee.speedDownButton.x = (mReferee.sprite.x - 65); mReferee.speedDownButton.y = (mReferee.sprite.y - 55); mReferee.speedLabel.x = mReferee.sprite.x; mReferee.speedLabel.y = (mReferee.sprite.y - 55); addChild(mReferee.speedUpButton); addChild(mReferee.speedDownButton); addChild(mReferee.speedLabel); mState = REFEREE_SPEED_STATE; } public function reset():void{ var _local1:LabelButton; for each (_local1 in mPlayerButton) { removeChild(_local1); }; mPlayerButton = null; } } }//package wbo.editor
Section 449
//RefereeEditor (wbo.editor.RefereeEditor) package wbo.editor { import flash.display.*; import com.bigwigmedia.ui.controls.*; import flash.geom.*; import assets.*; public class RefereeEditor extends Sprite { private var mFrequencyButton:Button; private var mEndMarker:Sprite; private var mMovementButton:Button; private var mStartMarker:Sprite; private var mSprite:Sprite; private var mSpeedUp:Button; private var mSpeedDown:Button; private var mEndMove:Point; private var mSpeedButton:Button; private var mEnd:int; private var mFrequencyDown:Button; private var mSpeedLabel:Label; private var mFrequencyLabel:Label; private var mSpeed:int; private var mStartMove:Point; private var mFrequency:int; private var mFrequencyUp:Button; private var mStart:int; public function RefereeEditor(){ var _local1:int; super(); mSprite = new referee(); addChild(mSprite); mMovementButton = new Button(); mMovementButton.name = "refereemovementbutton"; mMovementButton.label = "Movement"; mMovementButton.width = 140; mMovementButton.height = 24; mMovementButton.x = 75; mMovementButton.y = 30; InitSpeedItems(); InitFrequencyItems(); mStartMove = new Point(280, 240); mEndMove = new Point(340, 240); mStartMarker = new positionmarker(); mEndMarker = new positionmarker(); } private function InitSpeedItems():void{ mSpeedButton = new Button(); mSpeedButton.name = "refereespeedbutton"; mSpeedButton.label = "Speed"; mSpeedButton.width = 140; mSpeedButton.height = 24; mSpeedButton.x = 75; mSpeedButton.y = 30; mSpeedUp = new Button(); mSpeedUp.name = "refereespeedupbutton"; mSpeedUp.label = "+"; mSpeedUp.width = 40; mSpeedUp.height = 24; mSpeedUp.x = 75; mSpeedUp.y = 30; mSpeedDown = new Button(); mSpeedDown.name = "refereespeeddownbutton"; mSpeedDown.label = "-"; mSpeedDown.width = 40; mSpeedDown.height = 24; mSpeedDown.x = 75; mSpeedDown.y = 30; mSpeedLabel = new Label(); mSpeedLabel.name = "speedlabel"; mSpeedLabel.text = "1"; mSpeed = 1; } private function InitFrequencyItems():void{ mFrequencyButton = new Button(); mFrequencyButton.name = "refereefreqbutton"; mFrequencyButton.label = "Frequency"; mFrequencyButton.width = 140; mFrequencyButton.height = 24; mFrequencyButton.x = 75; mFrequencyButton.y = 30; mFrequencyUp = new Button(); mFrequencyUp.name = "refereefrequpbutton"; mFrequencyUp.label = "+"; mFrequencyUp.width = 40; mFrequencyUp.height = 24; mFrequencyUp.x = 75; mFrequencyUp.y = 30; mFrequencyDown = new Button(); mFrequencyDown.name = "refereefreqdownbutton"; mFrequencyDown.label = "-"; mFrequencyDown.width = 40; mFrequencyDown.height = 24; mFrequencyDown.x = 75; mFrequencyDown.y = 30; mFrequencyLabel = new Label(); mFrequencyLabel.name = "freqabel"; mFrequencyLabel.text = "10"; mFrequency = 10; } public function get speedDownButton():Button{ return (mSpeedDown); } public function SetSpeed(_arg1:Number):void{ if (((((mSpeed + _arg1) > 3)) || (((mSpeed + _arg1) <= 0)))){ return; }; mSpeed = (mSpeed + _arg1); mSpeedLabel.text = mSpeed.toString(); } public function get frequencyUpButton():Button{ return (mFrequencyUp); } public function get frequencyButton():Button{ return (mFrequencyButton); } public function get speedUpButton():Button{ return (mSpeedUp); } public function get startMarker():Sprite{ return (mStartMarker); } public function get movementButton():Button{ return (mMovementButton); } public function GetExportStr():String{ var _local1 = ""; _local1 = (_local1 + (("\t\t<startX>" + mStartMove.x) + "</startX>\n")); _local1 = (_local1 + (("\t\t<startY>" + mStartMove.y) + "</startY>\n")); _local1 = (_local1 + (("\t\t<endX>" + mEndMove.x) + "</endX>\n")); _local1 = (_local1 + (("\t\t<endY>" + mEndMove.y) + "</endY>\n")); _local1 = (_local1 + (("\t\t<frequency>" + mFrequency) + "</frequency>\n")); return (_local1); } public function SetFrequency(_arg1:Number):void{ if (((((mFrequency + _arg1) > 30)) || (((mFrequency + _arg1) <= 0)))){ return; }; mFrequency = (mFrequency + _arg1); mFrequencyLabel.text = mFrequency.toString(); } public function get speedButton():Button{ return (mSpeedButton); } public function get sprite():Sprite{ return (mSprite); } public function updateMoveMarkers():void{ mStartMove.x = mStartMarker.x; mStartMove.y = mStartMarker.y; mEndMove.x = mEndMarker.x; mEndMove.y = mEndMarker.y; } public function loadAttributes(_arg1:Array):void{ var _local6:String; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:Array; var _local2:Array = _arg1; var _local3:Point = new Point(_arg1[0], _arg1[1]); var _local4:Point = new Point(_arg1[2], _arg1[3]); var _local5:int = _arg1[4]; _local9 = 0; while (_local9 < _local2.length) { _local11 = String(_local2[_local9]).split("\n"); _local10 = 0; while (_local10 < _local11.length) { switch ((_local10 - 1)){ case 0: _local6 = _local11[_local10]; _local7 = (_local6.indexOf(">") + 1); _local8 = _local6.indexOf("<", _local7); _local3.x = int(_local6.substring(_local7, _local8)); break; case 1: _local6 = _local11[_local10]; _local7 = (_local6.indexOf(">") + 1); _local8 = _local6.indexOf("<", _local7); _local3.y = int(_local6.substring(_local7, _local8)); break; case 2: _local6 = _local11[_local10]; _local7 = (_local6.indexOf(">") + 1); _local8 = _local6.indexOf("<", _local7); _local4.x = int(_local6.substring(_local7, _local8)); break; case 3: _local6 = _local11[_local10]; _local7 = (_local6.indexOf(">") + 1); _local8 = _local6.indexOf("<", _local7); _local4.y = int(_local6.substring(_local7, _local8)); break; case 4: _local6 = _local11[_local10]; _local7 = (_local6.indexOf(">") + 1); _local8 = _local6.indexOf("<", _local7); _local5 = int(_local6.substring(_local7, _local8)); break; }; _local10++; }; _local9++; }; mStartMove = new Point(_local3.x, _local3.y); mEndMove = new Point(_local4.x, _local4.y); mFrequency = _local5; } public function get speedLabel():Label{ return (mSpeedLabel); } public function get frequencyDownButton():Button{ return (mFrequencyDown); } public function get endMarker():Sprite{ return (mEndMarker); } public function updateMarkers():void{ mStartMarker.x = mStartMove.x; mStartMarker.y = mStartMove.y; mEndMarker.x = mEndMove.x; mEndMarker.y = mEndMove.y; } public function get frequencyLabel():Label{ return (mFrequencyLabel); } } }//package wbo.editor
Section 450
//SelectableBrick (wbo.editor.SelectableBrick) package wbo.editor { import flash.display.*; import com.bigwigmedia.ui.controls.*; import wbo.common.*; import flash.geom.*; import assets.*; public class SelectableBrick extends Sprite { private var mEndMarker:Sprite; private var mStartMarker:Sprite; private var mPowerUpList:Array; private var mSprite:Sprite; private var mMovementButton:Button; private var mSpeedDown:Button; private var mEndMove:Point; private var mSpeedButton:Button; private var mSpeedUp:Button; private var mEnd:int; private var mMoveButton:Button; private var mSelectedPowerUp:PowerUp; private var mSpeedLabel:Label; private var mType:int; private var mPowerUpId:int; private var mDeleteButton:Button; private var mSpeed:int; private var mPowerUpButton:Button; private var mStartMove:Point; private var mStart:int; public static const DEFENDER_TYPE:int = 0; public static const BRICK_TYPE:int = 2; public static const BRUISER_TYPE:int = 1; public function SelectableBrick(_arg1:int){ var _local2:int; super(); switch (_arg1){ case DEFENDER_TYPE: mSprite = new defender_01(); break; case BRUISER_TYPE: mSprite = new bruiser_01_01(); break; case BRICK_TYPE: mSprite = new brick_wall_01(); break; }; addChild(mSprite); mType = _arg1; mPowerUpList = new Array(); _local2 = 0; while (_local2 < PowerUp.POWERUP_MAX) { mPowerUpList.push(new PowerUp(_local2)); _local2++; }; mPowerUpButton = new Button(); mPowerUpButton.name = "powerupbutton"; mPowerUpButton.label = "Power Ups"; mPowerUpButton.width = 140; mPowerUpButton.height = 24; mPowerUpButton.x = -75; mPowerUpButton.y = 30; mMovementButton = new Button(); mMovementButton.name = "movementbutton"; mMovementButton.label = "Movement"; mMovementButton.width = 140; mMovementButton.height = 24; mMovementButton.x = 75; mMovementButton.y = 30; mSpeedButton = new Button(); mSpeedButton.name = "speedbutton"; mSpeedButton.label = "Speed"; mSpeedButton.width = 140; mSpeedButton.height = 24; mSpeedButton.x = 75; mSpeedButton.y = 30; mDeleteButton = new Button(); mDeleteButton.name = "deletebutton"; mDeleteButton.label = "Delete"; mDeleteButton.width = 140; mDeleteButton.height = 24; mDeleteButton.x = 75; mDeleteButton.y = 30; mSpeedUp = new Button(); mSpeedUp.name = "speedupbutton"; mSpeedUp.label = "+"; mSpeedUp.width = 40; mSpeedUp.height = 24; mSpeedUp.x = 75; mSpeedUp.y = 30; mMoveButton = new Button(); mMoveButton.name = "movePlayerButton"; mMoveButton.label = "Move"; mMoveButton.width = 140; mMoveButton.height = 24; mMoveButton.x = 75; mMoveButton.y = 30; mSpeedDown = new Button(); mSpeedDown.name = "speeddownbutton"; mSpeedDown.label = "-"; mSpeedDown.width = 40; mSpeedDown.height = 24; mSpeedDown.x = 75; mSpeedDown.y = 30; mSpeedLabel = new Label(); mSpeedLabel.name = "speedlabel"; mSpeedLabel.text = "1"; mSpeed = 1; mStartMove = new Point(280, 240); mEndMove = new Point(340, 240); mStartMarker = new positionmarker(); mStartMarker.x = -1; mStartMarker.y = -1; mEndMarker = new positionmarker(); mEndMarker.x = -1; mEndMarker.y = -1; mPowerUpId = -1; mSprite.scaleX = (mSprite.scaleY = 0.75); } public function get powerups():Array{ return (mPowerUpList); } public function get speedUpButton():Button{ return (mSpeedUp); } public function set currentPowerUp(_arg1:PowerUp):void{ mSelectedPowerUp = _arg1; } public function SetSpeed(_arg1:Number):void{ if (((((mSpeed + _arg1) > 3)) || (((mSpeed + _arg1) <= 0)))){ return; }; mSpeed = (mSpeed + _arg1); mSpeedLabel.text = mSpeed.toString(); } public function get powerupButton():Button{ return (mPowerUpButton); } public function get startMarker():Sprite{ return (mStartMarker); } public function get speedDownButton():Button{ return (mSpeedDown); } public function get movementButton():Button{ return (mMovementButton); } public function get deleteButton():Button{ return (mDeleteButton); } public function get sprite():Sprite{ return (mSprite); } public function updatePowerUpID():void{ mPowerUpId = mSelectedPowerUp.id; } public function get currentPowerUp():PowerUp{ return (mSelectedPowerUp); } public function get speedButton():Button{ return (mSpeedButton); } public function loadAttributes(_arg1:Number, _arg2:Number, _arg3:Point, _arg4:Point, _arg5:int):void{ mSprite.x = _arg1; mSprite.y = _arg2; mStartMove = new Point(_arg3.x, _arg3.y); mEndMove = new Point(_arg4.x, _arg4.y); mPowerUpId = _arg5; mSelectedPowerUp = mPowerUpList[mPowerUpId]; mStartMarker.x = _arg3.x; mStartMarker.y = _arg3.y; mEndMarker.x = _arg4.x; mEndMarker.y = _arg4.y; mSprite.scaleX = (mSprite.scaleY = 0.75); } public function updateMoveMarkers():void{ mStartMove.x = mStartMarker.x; mStartMove.y = mStartMarker.y; mEndMove.x = mEndMarker.x; mEndMove.y = mEndMarker.y; } public function get moveButton():Button{ return (mMoveButton); } public function GetExportStr():String{ if ((((mStartMarker.x == -1)) && ((mStartMarker.y == -1)))){ mStartMove.x = mSprite.x; mStartMove.y = mSprite.y; mEndMove.x = mSprite.x; mEndMove.y = mSprite.y; }; var _local1 = ""; _local1 = (_local1 + "\t\t<item>\n"); _local1 = (_local1 + (("\t\t\t<type>" + mType) + "</type>\n")); _local1 = (_local1 + (("\t\t\t<x>" + mSprite.x) + "</x>\n")); _local1 = (_local1 + (("\t\t\t<y>" + mSprite.y) + "</y>\n")); _local1 = (_local1 + (("\t\t\t<startX>" + mStartMove.x) + "</startX>\n")); _local1 = (_local1 + (("\t\t\t<startY>" + mStartMove.y) + "</startY>\n")); _local1 = (_local1 + (("\t\t\t<endX>" + mEndMove.x) + "</endX>\n")); _local1 = (_local1 + (("\t\t\t<endY>" + mEndMove.y) + "</endY>\n")); _local1 = (_local1 + (("\t\t\t<powerup>" + mPowerUpId) + "</powerup>\n")); _local1 = (_local1 + "\t\t</item>\n"); return (_local1); } public function get speedLabel():Label{ return (mSpeedLabel); } public function get endMarker():Sprite{ return (mEndMarker); } public function updateMarkers():void{ if ((((mStartMarker.x == -1)) && ((mStartMarker.y == -1)))){ mStartMarker.x = mSprite.x; mStartMarker.y = mSprite.y; mEndMarker.x = mSprite.x; mEndMarker.y = mSprite.y; mStartMove.x = mSprite.x; mStartMove.y = mSprite.y; mEndMove.x = mSprite.x; mEndMove.y = mSprite.y; } else { mStartMarker.x = mStartMove.x; mStartMarker.y = mStartMove.y; mEndMarker.x = mEndMove.x; mEndMarker.y = mEndMove.y; }; } } }//package wbo.editor
Section 451
//ConfirmDeleteLevelDialog (wbo.editorLevelSelection.ConfirmDeleteLevelDialog) package wbo.editorLevelSelection { import com.bigwigmedia.ui.*; import com.bigwigmedia.mvc.*; public class ConfirmDeleteLevelDialog extends DialogView { override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "okButton": dispatchCloseEvent(DialogOption.OK); break; case "cancelButton": dispatchCloseEvent(DialogOption.CANCEL); break; }; } } }//package wbo.editorLevelSelection
Section 452
//EditorLevelSelectionController (wbo.editorLevelSelection.EditorLevelSelectionController) package wbo.editorLevelSelection { import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; import wbo.core.*; public class EditorLevelSelectionController extends EventDispatcher implements IController { private var _view:EditorLevelSelectionView; public function EditorLevelSelectionController(){ _view = new EditorLevelSelectionView(this); } public function createNewLevel(_arg1:String, _arg2:String, _arg3:String):void{ Managers.levelProgressService.addUserLevel(_arg1, _arg2, _arg3); } public function get view():DisplayObject{ return (_view); } public function getUserLevelInfoList():Array{ return (Managers.levelProgressService.getLevelInfoList()); } public function playLevel():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.START)); } public function sendToFriends():void{ } public function deleteLevel():void{ Managers.levelProgressService.deleteSelectedUserLevel(); } public function editLevel():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_EDITOR)); } public function gotoMainMenu():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } public function selectUserLevel():void{ Managers.levelProgressService.selectedUserLevelUID = _view.selectedLevelUID; } public function dispose():void{ _view.dispose(); } } }//package wbo.editorLevelSelection
Section 453
//EditorLevelSelectionView (wbo.editorLevelSelection.EditorLevelSelectionView) package wbo.editorLevelSelection { import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import com.bigwigmedia.events.*; import wbo.common.*; import com.bigwigmedia.mvc.*; public class EditorLevelSelectionView extends DialogOwnerView { private var _controller:EditorLevelSelectionController; private var _levelsList:List; public function EditorLevelSelectionView(_arg1:EditorLevelSelectionController){ _controller = _arg1; _levelsList = (getComponentByName("levelsList") as List); _levelsList.addEventListener(ListEvent.SELECTION_CHANGE, onSelectionChangeHandler); updateLevelsList(); } override protected function onDialogClose():void{ var _local1:NewLevelDialog; switch (_dialog.option){ case DialogOption.OK: if ((_dialog is NewLevelDialog)){ _local1 = NewLevelDialog(_dialog); _controller.createNewLevel(_local1.levelTitle, _local1.authorName, _local1.authorEmail); updateLevelsList(); _levelsList.clearSelection(); } else { if ((_dialog is LoadLevelDialog)){ updateLevelsList(); } else { if ((_dialog is ConfirmDeleteLevelDialog)){ _controller.deleteLevel(); updateLevelsList(); _levelsList.clearSelection(); }; }; }; break; }; } private function updateLevelsList():void{ var _local4:LevelInfo; _levelsList.removeAllItems(); var _local1:Array = _controller.getUserLevelInfoList(); var _local2:int = _local1.length; var _local3:int; while (_local3 < _local2) { if ((_local1[_local3] is LevelInfo)){ _local4 = _local1[_local3]; _levelsList.addItem({label:_local4.uid, uid:_local4.uid}); }; _local3++; }; } public function get selectedLevelUID():String{ var _local1:Object = _levelsList.selectedItem; return ((_local1) ? _local1.uid : null); } override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "mainMenuButton": _controller.gotoMainMenu(); break; case "playButton": if (selectedLevelUID){ Managers.levelProgressService.currentLevel = int(Managers.levelProgressService.selectedUserLevelUID); _controller.playLevel(); } else { showLevelNotSelectedDialog(); }; break; case "editButton": if (selectedLevelUID){ _controller.editLevel(); } else { showLevelNotSelectedDialog(); }; break; case "deleteButton": if (selectedLevelUID){ showDialog(new ConfirmDeleteLevelDialog()); } else { showLevelNotSelectedDialog(); }; break; case "loadButton": showDialog(new LoadLevelDialog()); break; case "createNewLevelButton": showDialog(new NewLevelDialog()); break; }; } private function onSelectionChangeHandler(_arg1:ListEvent):void{ _controller.selectUserLevel(); } public function showLevelNotSelectedDialog():void{ showDialog(new LevelNotSelectedDialog()); } } }//package wbo.editorLevelSelection
Section 454
//LevelNotSelectedDialog (wbo.editorLevelSelection.LevelNotSelectedDialog) package wbo.editorLevelSelection { import com.bigwigmedia.ui.*; import com.bigwigmedia.mvc.*; public class LevelNotSelectedDialog extends DialogView { override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "okButton": dispatchCloseEvent(DialogOption.OK); break; }; } } }//package wbo.editorLevelSelection
Section 455
//LoadLevelDialog (wbo.editorLevelSelection.LoadLevelDialog) package wbo.editorLevelSelection { import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import wbo.services.*; import com.bigwigmedia.mvc.*; public class LoadLevelDialog extends DialogView { override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "okButton": validateLevelCode(); break; case "cancelButton": dispatchCloseEvent(DialogOption.CANCEL); break; }; } private function validateLevelCode():void{ var _local1:String = TextArea(getComponentByName("textArea")).text; var _local2:String = Managers.levelProgressService.loadLevel(_local1); switch (_local2){ case LevelProgressService.LOAD_RESULT_SUCCESS: dispatchCloseEvent(DialogOption.OK); break; case LevelProgressService.LOAD_RESULT_INVALID: TextArea(getComponentByName("textArea")).text = "Code is invalid"; break; case LevelProgressService.LOAD_RESULT_DUPLICATE: TextArea(getComponentByName("textArea")).text = "Level exists already"; break; }; } } }//package wbo.editorLevelSelection
Section 456
//NewLevelDialog (wbo.editorLevelSelection.NewLevelDialog) package wbo.editorLevelSelection { import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.mvc.*; public class NewLevelDialog extends DialogView { public function get authorEmail():String{ return (TextInput(getComponentByName("authorEmailInput")).text); } override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "okButton": dispatchCloseEvent(DialogOption.OK); break; case "cancelButton": dispatchCloseEvent(DialogOption.CANCEL); break; }; } public function get levelTitle():String{ return (TextInput(getComponentByName("levelTitleInput")).text); } public function get authorName():String{ return (TextInput(getComponentByName("authorNameInput")).text); } } }//package wbo.editorLevelSelection
Section 457
//AbstractGameEntity (wbo.game.entities.AbstractGameEntity) package wbo.game.entities { import wbo.common.*; import com.bigwigmedia.mvc.*; public class AbstractGameEntity extends Entity { protected var _x:Number; protected var _id:String; protected var _kind:String; protected var _y:Number; public static const REMOVE_EVENT:String = "AbstractGameEntity.REMOVE_EVENT"; public function AbstractGameEntity(_arg1:GameItemDefinition){ _kind = _arg1.kind; _id = _arg1.id; _x = _arg1.x; _y = _arg1.y; } public function get kind():String{ return (_kind); } public function get id():String{ return (_id); } public function get x():Number{ return (_x); } public function get y():Number{ return (_y); } } }//package wbo.game.entities
Section 458
//HUDEvent (wbo.game.events.HUDEvent) package wbo.game.events { import flash.events.*; public class HUDEvent extends Event { public static const SHOW_LOSING_SCREEN:String = "SHOW_LOSING_SCREEN"; public static const BUMP_METER_COMPLETE:String = "BUMP_METER_COMPLETE"; public static const OUT_OF_LIVES:String = "OUT_OF_LIVES"; public static const REPLAY_LEVEL:String = "HUDEvent.replayLevel"; public static const EXIT_NO:String = "EXIT_NO"; public static const PAUSE:String = "HUDEvent.pause"; public static const BEGIN_GAMEPLAY:String = "HUDEvent.beginGameplay"; public static const UNPAUSE:String = "HUDEvent.unpause"; public static const NEXT_LEVEL:String = "HUDEvent.nextLevel"; public static const DETONATE:String = "HUDEvent.detonate"; public static const SELECT_LEVEL:String = "HUDEvent.selectLevel"; public static const KNOCKOUTLEVEL_TIMEUP:String = "KNOCKOUTLEVEL_TIMEUP"; public static const SHOW_WINNING_SCREEN:String = "SHOW_WINNING_SCREEN"; public static const MAIN_MENU:String = "HUDEvent.mainMenu"; public static const EXIT_YES:String = "EXIT_YES"; public static const BUMP_METER_FILLED:String = "BUMP_METER_FILLED"; public static const RESET:String = "HUDEvent.reset"; public static const EDIT_LEVEL:String = "HUDEvent.editLevel"; public static const TOOL_CHANGE:String = "HUDEvent.toolChange"; public static const SHOW_SHOP:String = "HUDEvent.showShop"; public function HUDEvent(_arg1:String, _arg2:Boolean=false){ super(_arg1, _arg2); } override public function clone():Event{ return (new HUDEvent(type, bubbles)); } } }//package wbo.game.events
Section 459
//Defender (wbo.game.gameobjects.Defender) package wbo.game.gameobjects { import flash.display.*; import flash.events.*; import wbo.managers.*; import wbo.common.*; import wbo.game.*; import flash.geom.*; import Box2D.Dynamics.*; import wbo.editor.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import assets.*; public class Defender extends Sprite { private const SCARED_DELAY:int = 0; private const DEFENDER_TIMEOUT:int = 10000; private var mTimeLeft:int; private var mLife:int; private var mBruiserList:Array; private var mDestroyBody:Boolean; private var mLastTime:int; private var mSprite:Sprite; private var mFilterData:b2FilterData; private var mDestroyPoints:int; private var mRunEnd:Point; private var mStartPos:Point; private var mRunStart:Point; private var mWorld:b2World; private var mState:int; private var mScared:Boolean; private var mPrevState:int; private var mDefenderBody:b2Body; private var mScaredFrames:Number; private var mHaltPos:Point; private var mHaltTime:Number; private var mBruiserIndex:int; private var mType:int; private var mPowerUp:PowerUp; private var mSortingFunction:Function; private var mStartTime:Number; private var mGameModel:GameModel; private var mTeam:int; private var mFaceIdx:int; private var mFace:Sprite; public static const DEFENDER_HIT_01:int = 1; public static const DEFENDER_HIT_02:int = 2; public static const DEFENDER_HIT_03:int = 3; public static const DEFENDER_HALTED:int = 5; public static const DEFENDER_BEAT:int = 4; public function Defender(_arg1:int, _arg2:int, _arg3:int, _arg4:Point, _arg5:Point, _arg6:int, _arg7:GameModel, _arg8:int, _arg9:b2World, _arg10:Number){ var _local11:b2BodyDef; var _local12:b2PolygonDef; var _local13:b2Body; super(); mType = _arg1; mTeam = _arg8; mWorld = _arg9; switch (mType){ case SelectableBrick.BRICK_TYPE: mLife = 0; mDestroyPoints = 7000; break; case SelectableBrick.BRUISER_TYPE: mLife = 3; mDestroyPoints = 3000; break; case SelectableBrick.DEFENDER_TYPE: mLife = 1; mDestroyPoints = 1000; break; }; mBruiserList = new Array(); mBruiserList.push([bruiser_01_01, bruiser_01_02, bruiser_01_03]); mBruiserList.push([bruiser_02_01, bruiser_02_02, bruiser_02_03]); mBruiserList.push([bruiser_03_01, bruiser_03_02, bruiser_03_03]); mBruiserIndex = -1; mStartPos = new Point(_arg4.x, _arg4.y); mRunStart = new Point(_arg4.x, _arg4.y); mRunEnd = new Point(_arg5.x, _arg5.y); this.x = _arg4.x; this.y = _arg4.y; SetState(DEFENDER_HIT_01); mStartTime = _arg10; if (_arg6 >= 0){ mPowerUp = new PowerUp(_arg6); }; mGameModel = _arg7; if (mWorld){ mFilterData = new b2FilterData(); mFilterData.groupIndex = 1; mFilterData.maskBits = 1; _local11 = new b2BodyDef(); _local11.position.x = (_arg2 / GameModel.WORLD_SCALE); _local11.position.y = (_arg3 / GameModel.WORLD_SCALE); _local11.isBullet = true; _local12 = new b2PolygonDef(); _local12.SetAsBox(((mSprite.width / 1.7) / GameModel.WORLD_SCALE), ((mSprite.height / 2) / GameModel.WORLD_SCALE)); _local12.density = 0.1; _local12.friction = 0.5; _local12.restitution = 0.5; _local12.isSensor = true; _local12.filter = mFilterData; _local13 = mWorld.CreateBody(_local11); _local13.bodyKindID = GameModel.BODY_KIND_DEFENDER; _local13.CreateShape(_local12); _local13.SetMassFromShapes(); mDefenderBody = _local13; mDefenderBody.WakeUp(); UpdatePosition(); mWorld.Refilter(_local13.GetShapeList()); _local11 = null; _local12 = null; _local13 = null; }; mHaltTime = -1; mDestroyBody = false; mScared = false; mScaredFrames = 0; mHaltPos = new Point(-1, -1); } public function debugDestoryBody():void{ mDestroyBody = true; } public function Lerp1D(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{ var _local7:Number; var _local6:Number = (_arg4 - _arg5); if (_local6 > _arg3){ _local7 = _arg2; return (_local7); }; var _local8:Number = (_arg2 - _arg1); var _local9:Number = (_arg1 + Number((_local8 * Number((_local6 / _arg3))))); _local7 = _local9; return (_local7); } public function get state():int{ return (mState); } public function hit(_arg1:Boolean, _arg2:Boolean):void{ var _local3 = "ouch"; _local3 = (_local3 + (1 + int((Math.random() * 6)))); mLife--; switch (mType){ case SelectableBrick.DEFENDER_TYPE: Managers.soundManager.playSingle(_local3); SetState(DEFENDER_BEAT); break; case SelectableBrick.BRICK_TYPE: if ((((mLife <= 0)) && (((_arg1) || (_arg2))))){ Managers.soundManager.playSingle(_local3); SetState(DEFENDER_BEAT); } else { Managers.soundManager.playSingle("football_bounce_2"); }; break; case SelectableBrick.BRUISER_TYPE: Managers.soundManager.playSingle(_local3); if (_arg2){ SetState(DEFENDER_BEAT); } else { if (mScared){ SetState(DEFENDER_BEAT); } else { if (mLife > 2){ SetState(DEFENDER_HIT_01); } else { if (mLife > 1){ SetState(DEFENDER_HIT_02); } else { if (mLife > 0){ SetState(DEFENDER_HIT_03); } else { if (mLife <= 0){ SetState(DEFENDER_BEAT); }; }; }; }; }; }; break; }; } public function get body():b2Body{ return (mDefenderBody); } public function dispose():void{ mBruiserList = null; if (((mWorld) && (mDefenderBody))){ mWorld.DestroyBody(mDefenderBody); mDefenderBody = null; }; mFilterData = null; mPowerUp = null; mSortingFunction = null; mFace = null; mGameModel = null; mSprite = null; mWorld = null; mStartPos = null; mRunStart = null; mRunEnd = null; mHaltPos = null; } private function UpdateMoving(_arg1:Number):void{ var _local2:int; var _local3:int; var _local4:Point; if ((((mRunStart.x == mRunEnd.x)) && ((mRunStart.y == mRunEnd.y)))){ if (((!((this.x == mRunStart.x))) || (!((this.y == mRunStart.y))))){ this.x = mRunStart.x; this.y = mRunStart.y; }; } else { _local2 = Lerp1D(mRunStart.x, mRunEnd.x, 1000, _arg1, mStartTime); _local3 = Lerp1D(mRunStart.y, mRunEnd.y, 1000, _arg1, mStartTime); if ((((_local2 == mRunEnd.x)) && ((_local3 == mRunEnd.y)))){ _local4 = new Point(mRunEnd.x, mRunEnd.y); mRunEnd.x = mRunStart.x; mRunEnd.y = mRunStart.y; mRunStart.x = _local4.x; mRunStart.y = _local4.y; mStartTime = _arg1; _local4 = null; }; this.x = _local2; this.y = _local3; if (mSortingFunction != null){ mSortingFunction(this); }; UpdatePosition(); }; if (mScared){ if (mScaredFrames > SCARED_DELAY){ this.x = (this.x + (1 - (Math.random() % 3))); this.y = (this.y + (1 - (Math.random() % 3))); mScaredFrames = 0; } else { mScaredFrames++; }; }; } public function SetBrickState(_arg1:int):void{ var _local2:int; var _local3:DisplayObjectContainer; var _local4:Sprite; var _local5:Sprite; var _local7:Point; var _local8:int; var _local9:Sprite; mPrevState = mState; mState = _arg1; if (((mSprite) && (!((_arg1 == DEFENDER_HALTED))))){ removeChild(mSprite); }; var _local6:MovieClip = new uniform_footballer(); switch (mState){ case DEFENDER_HIT_01: if (!mSprite){ _local9 = new brick_wall_01(); mSprite = GetUniform(_local6, 2); mSprite.addChild(_local9); }; break; case DEFENDER_BEAT: if (mScared){ mGameModel.AddScaredDeath(this); }; _local2 = 0; while (_local2 < mSprite.numChildren) { mSprite.removeChildAt(_local2); _local2++; }; _local7 = new Point(this.x, this.y); _local8 = (Math.random() * 3); switch (_local8){ case 0: mSprite = new death_01(); break; case 1: mSprite = new death_02(); break; case 2: mSprite = new death_03(); break; }; this.x = _local7.x; this.y = _local7.y; if (mPowerUp){ mPowerUp.sprite.x = this.x; mPowerUp.sprite.y = this.y; if (mGameModel){ mGameModel.addPowerUp(mPowerUp); }; }; mDestroyBody = true; mGameModel.notifyBrickDestroy(this); _local7 = null; break; case DEFENDER_HALTED: mHaltTime = -1; mTimeLeft = DEFENDER_TIMEOUT; break; }; if (_arg1 != DEFENDER_HALTED){ addChild(mSprite); }; if (((!((mState == DEFENDER_HALTED))) && (!((mState == DEFENDER_BEAT))))){ this.x = mStartPos.x; this.y = mStartPos.y; }; mSprite.scaleX = (mSprite.scaleY = 0.75); mSprite.cacheAsBitmap = true; _local7 = null; _local6 = null; } public function get type():int{ return (mType); } public function GetPos():Point{ return (new Point(this.x, this.y)); } public function update(_arg1:Number):void{ if (((mDestroyBody) && ((mState == DEFENDER_BEAT)))){ if (mDefenderBody){ mWorld.DestroyBody(mDefenderBody); mDefenderBody = null; mDestroyBody = false; }; }; switch (mState){ case DEFENDER_HIT_01: case DEFENDER_HIT_02: case DEFENDER_HIT_03: UpdateMoving(_arg1); break; case DEFENDER_HALTED: UpdateHalted(_arg1); case DEFENDER_BEAT: break; }; } private function onUniformAdded(_arg1:Event):void{ trace((_arg1.currentTarget.name + "===")); trace((_arg1.target.name + "***")); } public function SetBruiserState(_arg1:int):void{ var _local2:int; var _local3:DisplayObjectContainer; var _local4:Point; var _local5:Sprite; var _local6:Sprite; var _local9:int; if (((mSprite) && (!((_arg1 == DEFENDER_HALTED))))){ removeChild(mSprite); }; _local4 = new Point(this.x, this.y); var _local7:MovieClip = new uniform_footballer(); var _local8:int = _arg1; switch (_local8){ case DEFENDER_HIT_01: if ((((mBruiserIndex == -1)) && (!(mSprite)))){ mBruiserIndex = (Math.random() * mBruiserList.length); _local5 = GetUniform(_local7, 1); _local6 = new (mBruiserList[mBruiserIndex][0]); _local6.y = -5; _local6.x = -2; mSprite = new Sprite(); mSprite.addChild(_local5); mSprite.addChild(_local6); }; break; case DEFENDER_HIT_02: _local5 = GetUniform(_local7, 1); _local6 = new (mBruiserList[mBruiserIndex][1]); _local6.y = -5; _local6.x = -2; mSprite = new Sprite(); mSprite.addChild(_local5); mSprite.addChild(_local6); break; case DEFENDER_HIT_03: _local5 = GetUniform(_local7, 1); _local6 = new (mBruiserList[mBruiserIndex][2]); _local6.y = -5; _local6.x = -2; mSprite = new Sprite(); mSprite.addChild(_local5); mSprite.addChild(_local6); break; case DEFENDER_BEAT: if (mScared){ mGameModel.AddScaredDeath(this); }; _local2 = 0; while (_local2 < mSprite.numChildren) { mSprite.removeChildAt(_local2); _local2++; }; _local9 = (Math.random() * 3); switch (_local9){ case 0: mSprite = new death_01(); break; case 1: mSprite = new death_02(); break; case 2: mSprite = new death_03(); break; }; this.x = _local4.x; this.y = _local4.y; if (mPowerUp){ mPowerUp.sprite.x = this.x; mPowerUp.sprite.y = this.y; if (mGameModel){ mGameModel.addPowerUp(mPowerUp); }; }; mDestroyBody = true; mGameModel.notifyBrickDestroy(this); break; case DEFENDER_HALTED: mHaltTime = -1; mTimeLeft = DEFENDER_TIMEOUT; break; }; if (_local8 == DEFENDER_BEAT){ mPrevState = DEFENDER_BEAT; mState = DEFENDER_BEAT; } else { if (_local8 != DEFENDER_HALTED){ if ((((mTimeLeft < 0)) && ((mState == DEFENDER_HALTED)))){ mState = mPrevState; } else { if (mState != DEFENDER_HALTED){ mPrevState = mState; mState = _local8; }; }; } else { mPrevState = mState; mState = _local8; }; }; if (_arg1 != DEFENDER_HALTED){ addChild(mSprite); }; this.x = _local4.x; this.y = _local4.y; mSprite.scaleX = (mSprite.scaleY = 0.75); mSprite.cacheAsBitmap = true; _local7 = null; _local4 = null; } public function UpdatePosition():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; if (mDefenderBody){ _local1 = (mDefenderBody.GetPosition().x * GameModel.WORLD_SCALE); _local2 = (mDefenderBody.GetPosition().y * GameModel.WORLD_SCALE); _local3 = (this.x - _local1); _local4 = (this.y - _local2); mDefenderBody.SetLinearVelocity(new b2Vec2(_local3, _local4)); }; } public function SetSortingFunction(_arg1:Function):void{ mSortingFunction = _arg1; } public function SetDefenderState(_arg1:int):void{ var _local2:int; var _local3:Sprite; var _local4:Sprite; var _local6:Point; var _local7:int; mPrevState = mState; mState = _arg1; if (((mSprite) && (!((_arg1 == DEFENDER_HALTED))))){ removeChild(mSprite); }; var _local5:MovieClip = new uniform_footballer(); switch (mState){ case DEFENDER_HIT_01: if (!mSprite){ mSprite = GetUniform(_local5); }; addChild(mSprite); break; case DEFENDER_BEAT: if (mScared){ mGameModel.AddScaredDeath(this); }; _local2 = 0; while (_local2 < mSprite.numChildren) { mSprite.removeChildAt(_local2); _local2++; }; mSprite = null; _local6 = new Point(this.x, this.y); _local7 = (Math.random() * 3); switch (_local7){ case 0: mSprite = new death_01(); break; case 1: mSprite = new death_02(); break; case 2: mSprite = new death_03(); break; }; this.x = _local6.x; this.y = _local6.y; if (mPowerUp){ mPowerUp.sprite.x = this.x; mPowerUp.sprite.y = this.y; if (mGameModel){ mGameModel.addPowerUp(mPowerUp); }; }; mDestroyBody = true; mGameModel.notifyBrickDestroy(this); _local6 = null; break; case DEFENDER_HALTED: mHaltTime = -1; mTimeLeft = DEFENDER_TIMEOUT; break; }; if (_arg1 != DEFENDER_HALTED){ addChild(mSprite); }; if (((!((mState == DEFENDER_HALTED))) && (!((mState == DEFENDER_BEAT))))){ this.x = mStartPos.x; this.y = mStartPos.y; }; mSprite.scaleX = (mSprite.scaleY = 0.75); mSprite.cacheAsBitmap = true; _local6 = null; _local5 = null; } public function SetState(_arg1:int):void{ if (_arg1 == DEFENDER_HALTED){ mHaltPos.x = this.x; mHaltPos.y = this.y; }; switch (mType){ case SelectableBrick.BRICK_TYPE: SetBrickState(_arg1); break; case SelectableBrick.DEFENDER_TYPE: SetDefenderState(_arg1); break; case SelectableBrick.BRUISER_TYPE: SetBruiserState(_arg1); break; }; } private function UpdateHalted(_arg1:Number):void{ if (mHaltTime == -1){ mHaltTime = _arg1; mLastTime = _arg1; return; }; this.x = mHaltPos.x; this.y = mHaltPos.y; var _local2:Number = (_arg1 - mLastTime); mTimeLeft = (mTimeLeft - _local2); UpdatePosition(); if (mTimeLeft < 0){ SetState(mPrevState); mTimeLeft = DEFENDER_TIMEOUT; mStartTime = (mStartTime + DEFENDER_TIMEOUT); }; if (mScared){ if (mScaredFrames > SCARED_DELAY){ this.x = (this.x + (1 - (Math.random() % 3))); this.y = (this.y + (1 - (Math.random() % 3))); mScaredFrames = 0; } else { mScaredFrames++; }; }; mLastTime = _arg1; } public function GetUniform(_arg1:MovieClip, _arg2:int=0):Sprite{ var _local3:int; var _local4:MovieClip; var _local5:MovieClip; var _local6:MovieClip; var _local7:MovieClip; var _local8:MovieClip; var _local9:MovieClip; var _local10:MovieClip; var _local11:MovieClip; var _local16:BitmapData; var _local17:Bitmap; var _local18:MovieClip; var _local19:int; var _local12:int = (1 + (Math.random() * 4)); var _local13 = 1; var _local14:int = (1 + (Math.random() * 4)); if (_arg2){ _local12 = 1; }; var _local15:Sprite = new Sprite(); _local3 = 0; while (_local3 < _arg1.footballer.numChildren) { _local18 = (_arg1.footballer.getChildAt(_local3) as MovieClip); if ((_local18 is uniform_legs)){ _local10 = (_local18.getChildAt(0) as MovieClip); _local10.gotoAndStop(_local12); _local10.x = (1.8 - 32.25); _local10.y = -28; _local15.addChild(_local10); } else { if ((_local18 is uniform_socks)){ _local7 = (_local18.getChildAt(0) as MovieClip); _local7.gotoAndStop(mTeam); _local15.addChild(_local7); _local7.x = -30; _local7.y = -26; } else { if ((_local18 is uniform_boots)){ _local9 = (_local18.getChildAt(0) as MovieClip); _local9.gotoAndStop(1); _local15.addChild(_local9); _local9.x = -30; _local9.y = 24; _local9 = null; _local9 = (_local18.getChildAt(0) as MovieClip); _local9.gotoAndStop(1); _local15.addChild(_local9); _local9.x = 5.5; _local9.y = 24; } else { if ((_local18 is uniform_shirt)){ _local8 = (_local18.getChildAt(0) as MovieClip); _local8.gotoAndStop(mTeam); _local15.addChild(_local8); _local8.x = (0 - 32.25); _local8.y = (0 - 28.4); } else { if ((_local18 is uniform_shorts)){ _local6 = (_local18.getChildAt(0) as MovieClip); _local6.gotoAndStop(mTeam); _local15.addChild(_local6); _local6.x = (-0.2 - 32.25); _local6.y = (29.1 - 56.8); } else { if ((((_local18 is uniform_skin)) && ((((_arg2 == 0)) || ((_arg2 == 2)))))){ _local5 = (_local18.getChildAt(0) as MovieClip); _local5.gotoAndStop(_local12); _local15.addChild(_local5); _local5.x = -32; _local5.y = -27; } else { if ((((_local18 is uniform_face)) && (!(_arg2)))){ _local4 = (_local18.getChildAt(0) as MovieClip); _local4.gotoAndStop(_local13); _local15.addChild(_local4); _local4.x = -30; _local4.y = -28; mFaceIdx = _local13; mFace = _local4; } else { if ((((_local18 is uniform_hair)) && ((((_arg2 == 0)) || ((_arg2 == 2)))))){ _local11 = (_local18.getChildAt(0) as MovieClip); _local11.gotoAndStop(_local14); _local15.addChild(_local11); _local11.x = -32; _local11.y = -27; }; }; }; }; }; }; }; }; _local3++; }; if (!_arg2){ _local19 = _local15.getChildIndex(_local7); _local15.setChildIndex(_local10, (_local19 - 1)); }; return (_local15); } public function SetScareStatus(_arg1:Boolean):void{ var _local2:DisplayObjectContainer; var _local3:Point; var _local4:MovieClip; mScared = _arg1; if (((mScared) && ((mType == SelectableBrick.DEFENDER_TYPE)))){ if (((mFace) && (mFace.parent))){ _local2 = mFace.parent; _local2.removeChild(mFace); }; _local3 = new Point(mFace.x, mFace.y); mFace = new defender_scared(); mFace.x = 0; mFace.y = -15; if (_local2){ _local2.addChild(mFace); }; _local3 = null; } else { if (((!(mScared)) && ((mType == SelectableBrick.DEFENDER_TYPE)))){ if (((mFace) && (mFace.parent))){ _local2 = mFace.parent; _local2.removeChild(mFace); }; _local4 = new uniform_face(); _local4.gotoAndStop(mFaceIdx); mFace = new Sprite(); mFace.addChild(_local4); mFace.x = -20; mFace.y = -20; if (_local2){ _local2.addChild(mFace); }; }; }; } public function get destroyPoints():int{ if (mScared){ return ((mDestroyPoints * 1.5)); }; return (mDestroyPoints); } } }//package wbo.game.gameobjects
Section 460
//GoalKeeper (wbo.game.gameobjects.GoalKeeper) package wbo.game.gameobjects { import flash.display.*; import wbo.game.*; import Box2D.Dynamics.*; import wbo.game.views.*; import com.bigwigmedia.geom.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import assets.*; public class GoalKeeper extends Sprite { private const JITTER_RANGE:int = 2; private var mKeeperBody:b2Body; private var mLeftLimit:Vector2D; private var mRightLimit:Vector2D; private var mLastTime:Number; private var mSprite:Sprite; private var mSpeed:Number; private var mLeftHand:b2Body; private var mWorld:b2World; private var mRightHand:b2Body; private static const MOVEMENT_X:int = 75; public function GoalKeeper(_arg1:int, _arg2:int, _arg3:Number, _arg4:b2World){ mSprite = new goalkeeper(); mLeftLimit = new Vector2D((_arg1 - MOVEMENT_X), _arg2); mRightLimit = new Vector2D((_arg1 + MOVEMENT_X), _arg2); mSprite.x = _arg1; mSprite.y = _arg2; mWorld = _arg4; switch (_arg3){ case 1: mSpeed = 0.02; break; case 2: mSpeed = 0.03; break; case 3: mSpeed = 0.05; break; }; mLastTime = -1; } public function get sprite():Sprite{ return (mSprite); } public function update(_arg1:Number, _arg2:Number, _arg3:FootballView):void{ if (mLastTime == -1){ mLastTime = _arg1; return; }; var _local4:Number = (_arg1 - mLastTime); if (_arg3.state == FootballView.BALL_ATTACHED){ mSprite.x = _arg2; } else { if ((((_arg2 < mSprite.x)) && ((Math.abs((_arg2 - mSprite.x)) > JITTER_RANGE)))){ mSprite.x = (mSprite.x - (mSpeed * _local4)); } else { if ((((_arg2 > mSprite.x)) && ((Math.abs((_arg2 - mSprite.x)) > JITTER_RANGE)))){ mSprite.x = (mSprite.x + (mSpeed * _local4)); }; }; }; if (mSprite.x > mRightLimit.x){ mSprite.x = mRightLimit.x; } else { if (mSprite.x < mLeftLimit.x){ mSprite.x = mLeftLimit.x; }; }; UpdatePosition(); mLastTime = _arg1; } public function dispose():void{ if (((((((mWorld) && (mKeeperBody))) && (mLeftHand))) && (mRightHand))){ mWorld.DestroyBody(mKeeperBody); mWorld.DestroyBody(mLeftHand); mWorld.DestroyBody(mRightHand); }; mKeeperBody = null; mLeftHand = null; mRightHand = null; mSprite = null; mWorld = null; } public function InitBody():void{ var _local1:b2BodyDef; _local1 = new b2BodyDef(); _local1.position.x = (mSprite.x / GameModel.WORLD_SCALE); _local1.position.y = (mSprite.y / GameModel.WORLD_SCALE); _local1.isBullet = true; var _local2:b2PolygonDef = new b2PolygonDef(); _local2.SetAsBox(((64 / 2) / GameModel.WORLD_SCALE), ((53 / 2) / GameModel.WORLD_SCALE)); _local2.density = 1; _local2.friction = 0.5; _local2.restitution = 0.5; _local2.isSensor = true; var _local3:b2Body = mWorld.CreateBody(_local1); _local3.bodyKindID = GameModel.BODY_KIND_KEEPER; _local3.CreateShape(_local2); _local3.SetMassFromShapes(); mKeeperBody = _local3; mKeeperBody.WakeUp(); _local1 = null; _local1 = new b2BodyDef(); _local1.position.x = ((mSprite.x - 35) / GameModel.WORLD_SCALE); _local1.position.y = (mSprite.y / GameModel.WORLD_SCALE); _local1.isBullet = true; _local2 = null; _local2 = new b2PolygonDef(); _local2.SetAsBox(((39 / 2) / GameModel.WORLD_SCALE), ((34 / 2) / GameModel.WORLD_SCALE)); _local2.density = 1; _local2.friction = 0.5; _local2.restitution = 0.5; _local2.isSensor = true; _local3 = null; _local3 = mWorld.CreateBody(_local1); _local3.bodyKindID = GameModel.BODY_KIND_KEEPER; _local3.CreateShape(_local2); _local3.SetMassFromShapes(); mLeftHand = _local3; mLeftHand.WakeUp(); _local1 = null; _local1 = new b2BodyDef(); _local1.position.x = ((mSprite.x + 35) / GameModel.WORLD_SCALE); _local1.position.y = (mSprite.y / GameModel.WORLD_SCALE); _local1.isBullet = true; _local2 = null; _local2 = new b2PolygonDef(); _local2.SetAsBox(((39 / 2) / GameModel.WORLD_SCALE), ((34 / 2) / GameModel.WORLD_SCALE)); _local2.density = 1; _local2.friction = 0.5; _local2.restitution = 0.5; _local2.isSensor = true; _local3 = null; _local3 = mWorld.CreateBody(_local1); _local3.bodyKindID = GameModel.BODY_KIND_KEEPER; _local3.CreateShape(_local2); _local3.SetMassFromShapes(); mRightHand = _local3; mRightHand.WakeUp(); UpdatePosition(); } public function UpdatePosition():void{ if (!mKeeperBody){ return; }; var _local1:Number = (mKeeperBody.GetPosition().x * GameModel.WORLD_SCALE); var _local2:Number = (mKeeperBody.GetPosition().y * GameModel.WORLD_SCALE); var _local3:Number = (mSprite.x - _local1); var _local4:Number = (mSprite.y - _local2); mKeeperBody.SetLinearVelocity(new b2Vec2(_local3, _local4)); mLeftHand.SetLinearVelocity(new b2Vec2(_local3, _local4)); mRightHand.SetLinearVelocity(new b2Vec2(_local3, _local4)); } } }//package wbo.game.gameobjects
Section 461
//MovingAward (wbo.game.gameobjects.MovingAward) package wbo.game.gameobjects { import flash.display.*; import com.bigwigmedia.ui.controls.*; import assets.*; import wbo.constants.*; public class MovingAward extends Sprite { private const STATE_LEAVING:int = 2; private const STATE_TO_CENTER:int = 0; private const STATE_DONE:int = 3; private const PAUSE_LIFETIME:int = 750; private const STATE_AT_CENTER:int = 1; private const MOVING_LIFETIME:int = 500; private var mCenterPosX:int; private var mStartTime:int; private var mAwardLabel:Label; private var mAward:Sprite; private var mState:int; public function MovingAward(_arg1:int){ var _local2:Array = [stage1_award, stage2_award, stage3_award, stage4_award, time_award, misbehaviour_award, unsportmanlike_award, full_team_award]; mAward = new (_local2[_arg1]); var _local3:Number = 120; var _local4:Number = Math.max(mAward.width, mAward.height); var _local5:Number = (_local3 / _local4); mAward.scaleX = (mAward.scaleY = _local5); mAward.x = 700; mAward.y = (240 - mAward.height); if (_arg1 == AwardTypes.BLITZ_AWARD){ mAward.y = (100 - (mAward.height / 2)); }; mAwardLabel = new Label(); mAwardLabel.text = "You've unlocked an award!"; mAwardLabel.styleName = "awardUnlockText"; mAwardLabel.x = (10 - (100 / 2)); mAwardLabel.y = -101; addChild(mAward); mState = STATE_TO_CENTER; mStartTime = -1; mCenterPosX = (320 - (mAward.width / 2)); } private function Lerp1D(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{ var _local7:Number; var _local6:Number = (_arg4 - _arg5); if (_local6 > _arg3){ _local7 = _arg2; return (_local7); }; var _local8:Number = (_arg2 - _arg1); var _local9:Number = (_arg1 + Number((_local8 * Number((_local6 / _arg3))))); _local7 = _local9; return (_local7); } public function dispose():void{ if (this.contains(mAward)){ removeChild(mAward); }; mAward = null; if (this.contains(mAwardLabel)){ removeChild(mAwardLabel); }; mAwardLabel = null; } private function UpdateLeaving(_arg1:Number):void{ if (mStartTime == -1){ mStartTime = _arg1; return; }; var _local2:int = Lerp1D(mCenterPosX, -100, MOVING_LIFETIME, _arg1, mStartTime); if (_local2 == -100){ mState = STATE_DONE; mStartTime = -1; }; mAward.x = _local2; } public function Update(_arg1:Number):void{ switch (mState){ case STATE_TO_CENTER: UpdateToCenter(_arg1); break; case STATE_AT_CENTER: UpdateAtCenter(_arg1); break; case STATE_LEAVING: UpdateLeaving(_arg1); break; case STATE_DONE: UpdateDone(_arg1); break; }; } public function IsDone():Boolean{ return ((mState == STATE_DONE)); } private function UpdateDone(_arg1:Number):void{ } private function UpdateAtCenter(_arg1:Number):void{ if (mStartTime == -1){ mStartTime = _arg1; return; }; if ((_arg1 - mStartTime) > PAUSE_LIFETIME){ mState = STATE_LEAVING; mStartTime = -1; }; } private function UpdateToCenter(_arg1:Number):void{ if (mStartTime == -1){ mStartTime = _arg1; return; }; var _local2:int = Lerp1D(700, mCenterPosX, MOVING_LIFETIME, _arg1, mStartTime); if (_local2 == mCenterPosX){ mState = STATE_AT_CENTER; mStartTime = -1; }; mAward.x = _local2; } } }//package wbo.game.gameobjects
Section 462
//MovingText (wbo.game.gameobjects.MovingText) package wbo.game.gameobjects { import flash.display.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.geom.*; public class MovingText extends Sprite { private var mStartTime:Number; private var mState:int; private var mEndPos:Vector2D; private var mSprite:Sprite; private var mLifeTime:Number; private var mStartPos:Vector2D; public static const STATE_MOVING:int = 0; public static const STATE_COMPLETE:int = 1; public function MovingText(_arg1:Vector2D, _arg2:Vector2D, _arg3:Number, _arg4:String, _arg5:Number, _arg6:int=12){ mStartPos = new Vector2D(_arg1.x, _arg1.y); mEndPos = new Vector2D(_arg2.x, _arg2.y); mLifeTime = _arg3; var _local7:Text = new Text(); _local7.styleName = "movingText"; _local7.text = _arg4; mSprite = new Sprite(); mSprite.addChild(_local7); mStartTime = _arg5; mState = STATE_MOVING; } public function get sprite():Sprite{ return (mSprite); } public function Update(_arg1:Number):void{ var _local2:Number = Lerp1D(mStartPos.x, mEndPos.x, mLifeTime, _arg1, mStartTime); var _local3:Number = Lerp1D(mStartPos.y, mEndPos.y, mLifeTime, _arg1, mStartTime); if ((((_local2 == mEndPos.x)) && ((_local3 == mEndPos.y)))){ mState = STATE_COMPLETE; }; mSprite.x = _local2; mSprite.y = _local3; } public function Lerp1D(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{ var _local7:Number; var _local6:Number = (_arg4 - _arg5); if (_local6 > _arg3){ _local7 = _arg2; return (_local7); }; var _local8:Number = (_arg2 - _arg1); var _local9:Number = (_arg1 + Number((_local8 * Number((_local6 / _arg3))))); _local7 = _local9; return (_local7); } public function dispose():void{ var _local1:int; mStartPos = null; mEndPos = null; _local1 = 0; while (_local1 < mSprite.numChildren) { mSprite.removeChildAt(_local1); _local1++; }; if (((mSprite.parent) && (mSprite.parent.contains(mSprite)))){ mSprite.parent.removeChild(mSprite); }; mSprite = null; } public function get state():int{ return (mState); } } }//package wbo.game.gameobjects
Section 463
//Paddle (wbo.game.gameobjects.Paddle) package wbo.game.gameobjects { import flash.display.*; import wbo.common.*; import wbo.game.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import assets.*; public class Paddle extends Sprite { private const STICKY_BALL_TIME:int = 30000; private const PENALTY_TIME:int = 30000; private var mPaddleX:Number; private var mSkin:MovieClip; private var mLastTime:int; private var mSprite:Sprite; private var mWorld:b2World; private var mGunIdx:int; private var mLegs:MovieClip; private var mMouseJoint:b2MouseJoint; private var mPowerupEnabledAnim:MovieClip; private var mGuns:Array; private var mPenaltyTimer:int; private var mHairIdx:int; private var mSkinIdx:int; private var mBoots:MovieClip; private var mStickyBall:Boolean; private var mPaddleSize:int; private var mTeam:int; private var mHair:MovieClip; private var mStickyBallTimer:int; private var mPenaltyKicks:Boolean; private var mPaddleBody:b2Body; public static const PADDLE_SHRUNKEN:int = 2; public static const PADDLE_NORMAL:int = 1; public static const PADDLE_EXPANDED:int = 0; public function Paddle(_arg1:Number, _arg2:Number, _arg3:int, _arg4:b2World){ var _local5:MovieClip = new game_paddle(); mTeam = _arg3; mWorld = _arg4; InitNormalPaddle(); mSprite.x = _arg1; mSprite.y = _arg2; InitBody(); mPaddleX = 320; SetPosX(mPaddleX); mStickyBall = false; mPenaltyKicks = false; mSkinIdx = -1; mHairIdx = -1; mGunIdx = 0; mPowerupEnabledAnim = new powerup_enabled(); mLastTime = 0; } private function InitGuns():void{ if (!mGuns){ mGuns = new Array(); mGuns.push(new paddle_gun()); mGuns.push(new paddle_gun()); }; if (mPenaltyKicks){ EnablePenaltyKicks(); }; UpdateGuns(); } public function get penaltykicks():Boolean{ return (mPenaltyKicks); } private function InitNormalPaddle():void{ var _local1:DisplayObjectContainer; var _local2:Point; if (((mSprite) && (mSprite.parent))){ _local1 = mSprite.parent; _local1.removeChild(mSprite); _local2 = new Point(mSprite.x, mSprite.y); }; var _local3:MovieClip = new game_paddle(); mSprite = GetUniform(_local3, mTeam); if (_local2){ mSprite.x = _local2.x; mSprite.y = _local2.y; }; InitBody(); if (_local1){ _local1.addChild(mSprite); }; mPaddleSize = PADDLE_NORMAL; InitGuns(); if (mStickyBallTimer > 0){ EnablePowerUpAnim(); }; trace(("normal paddle height : " + mSprite.height)); } public function EnableStickyBall(_arg1:Number):void{ mStickyBall = true; trace("sticky ball enabled"); if (!mSprite.contains(mPowerupEnabledAnim)){ EnablePowerUpAnim(); }; if (mStickyBallTimer <= 0){ mStickyBallTimer = STICKY_BALL_TIME; }; } private function EnablePowerUpAnim():void{ trace("added to sticky ball"); mPowerupEnabledAnim.x = 0; mPowerupEnabledAnim.y = -50; mPowerupEnabledAnim.play(); mSprite.addChild(mPowerupEnabledAnim); mSprite.setChildIndex(mPowerupEnabledAnim, (mSprite.numChildren - 1)); } private function GetUniform(_arg1:MovieClip, _arg2:int):Sprite{ var _local3:int; var _local4:MovieClip; var _local5:MovieClip; var _local6:MovieClip; var _local7:MovieClip; var _local8:int; var _local9:int; var _local12:MovieClip; if (mSkinIdx == -1){ _local8 = (1 + (Math.random() * 4)); } else { _local8 = mSkinIdx; }; if (mHairIdx == -1){ _local9 = (1 + (Math.random() * 4)); } else { _local9 = mHairIdx; }; mSkinIdx = _local8; mHairIdx = _local9; var _local10:Sprite = new Sprite(); _local3 = 0; while (_local3 < _arg1.numChildren) { _local12 = (_arg1.getChildAt(_local3) as MovieClip); if ((_local12 is paddle_legs)){ _local6 = (_local12.getChildAt(0) as MovieClip); _local6.gotoAndStop(_local8); _local6.x = -35.45; _local6.y = -26; _local10.addChild(_local6); mLegs = _local6; } else { if ((_local12 is paddle_boots)){ _local5 = (_local12.getChildAt(0) as MovieClip); _local5.gotoAndStop(1); _local10.addChild(_local5); _local5.x = -20; _local5.y = 26; _local5 = (_local12.getChildAt(0) as MovieClip); _local5.gotoAndStop(1); _local10.addChild(_local5); _local5.x = 22; _local5.y = 26; mBoots = _local5; } else { if ((_local12 is paddle_skin)){ _local4 = (_local12.getChildAt(0) as MovieClip); _local4.gotoAndStop(_local8); _local10.addChild(_local4); _local4.x = -35; _local4.y = -30; mSkin = _local4; } else { if ((_local12 is paddle_hair)){ _local7 = (_local12.getChildAt(0) as MovieClip); _local7.gotoAndStop(_local9); _local10.addChild(_local7); _local7.x = -26; _local7.y = -33; mHair = _local7; }; }; }; }; _local3++; }; var _local11:MovieClip = new paddle_normal(); _local11.gotoAndStop(_arg2); _local11.x = -35; _local11.y = -28; _local10.addChild(_local11); _local10.setChildIndex(mHair, (_local10.numChildren - 1)); return (_local10); } public function InitBody():void{ var _local1:Number; if (mPaddleBody){ mWorld.DestroyJoint(mMouseJoint); mWorld.DestroyBody(mPaddleBody); mPaddleBody = null; }; _local1 = 86.4; var _local2:b2BodyDef = new b2BodyDef(); _local2.position.x = (mSprite.x / GameModel.WORLD_SCALE); _local2.position.y = (mSprite.y / GameModel.WORLD_SCALE); _local2.isBullet = true; var _local3:b2PolygonDef = new b2PolygonDef(); _local3.SetAsBox(((_local1 / 2) / GameModel.WORLD_SCALE), ((63 / 2) / GameModel.WORLD_SCALE)); _local3.density = 0.1; _local3.friction = 0.5; _local3.restitution = 0.5; _local3.isSensor = true; var _local4:b2Body = mWorld.CreateBody(_local2); _local4.bodyKindID = GameModel.BODY_KIND_PADDLE; _local4.CreateShape(_local3); _local4.SetMassFromShapes(); mPaddleBody = _local4; var _local5:Number = (mSprite.x / GameModel.WORLD_SCALE); var _local6:Number = (mSprite.y / GameModel.WORLD_SCALE); var _local7:b2MouseJointDef = new b2MouseJointDef(); _local7.body1 = mWorld.GetGroundBody(); _local7.body2 = mPaddleBody; _local7.target.Set(_local5, _local6); _local7.collideConnected = true; _local7.maxForce = int.MAX_VALUE; mMouseJoint = (mWorld.CreateJoint(_local7) as b2MouseJoint); mPaddleBody.WakeUp(); _local2 = null; _local3 = null; _local4 = null; _local7 = null; } public function get body():b2Body{ return (mPaddleBody); } public function get size():int{ return (mPaddleSize); } public function EnablePenaltyKicks():void{ mPenaltyKicks = true; if (!mSprite.contains(mGuns[0])){ mSprite.addChild(mGuns[0]); mSprite.setChildIndex(mGuns[0], 0); mSprite.addChild(mGuns[1]); mSprite.setChildIndex(mGuns[1], 0); }; if (mPenaltyTimer <= 0){ mPenaltyTimer = PENALTY_TIME; }; } public function addPowerUp(_arg1:PowerUp):void{ switch (_arg1.id){ case PowerUp.REDCARD_POWERUP: if (mPaddleSize == PADDLE_NORMAL){ ShrinkPaddle(); } else { if (mPaddleSize == PADDLE_EXPANDED){ InitNormalPaddle(); }; }; break; case PowerUp.MEAT_POWERUP: if (mPaddleSize == PADDLE_NORMAL){ ExpandPaddle(); } else { if (mPaddleSize == PADDLE_SHRUNKEN){ InitNormalPaddle(); }; }; break; }; } public function Reset():void{ mStickyBallTimer = 0; mPenaltyTimer = 0; DisableStickyBall(); DisablePenaltyKicks(); mSprite.x = mPaddleX; InitNormalPaddle(); } public function UpdateGuns():void{ var _local1:Point = new Point(); var _local2:Point = new Point(); switch (mPaddleSize){ case PADDLE_EXPANDED: _local1.x = -60; _local1.y = -40; _local2.x = 40; _local2.y = -40; break; case PADDLE_SHRUNKEN: _local1.x = -30; _local1.y = -40; _local2.x = 10; _local2.y = -40; break; case PADDLE_NORMAL: _local1.x = -35; _local1.y = -50; _local2.x = 30; _local2.y = -50; break; }; mGuns[0].x = _local1.x; mGuns[0].y = _local1.y; mGuns[1].x = _local2.x; mGuns[1].y = _local2.y; _local1 = null; _local2 = null; } public function dispose():void{ var _local1:int; if (mWorld){ mWorld.DestroyBody(mPaddleBody); mWorld.DestroyJoint(mMouseJoint); mMouseJoint = null; }; mPaddleBody = null; mBoots = null; _local1 = 0; while (_local1 < mGuns.length) { if (mGuns[_local1]){ mGuns[_local1] = null; }; _local1++; }; mGuns = null; mHair = null; mLegs = null; mSkin = null; mSprite = null; mWorld = null; } private function ExpandPaddle():void{ var _local1:DisplayObjectContainer; var _local2:Point = new Point(mSprite.x, mSprite.y); if (((mSprite) && (mSprite.parent))){ _local1 = mSprite.parent; _local1.removeChild(mSprite); }; var _local3:MovieClip = new paddle_wide(); _local3.x = -67; _local3.y = -20; _local3.gotoAndStop(mTeam); mSprite = null; mSprite = new Sprite(); var _local4:MovieClip = new paddle_wide_legs(); _local4.gotoAndStop(mSkinIdx); _local4.x = -5; _local4.y = 25; mSprite.addChild(_local4); var _local5:Sprite = new paddle_wide_boots(); _local5.x = -4; _local5.y = 32; mSprite.addChild(_local5); var _local6:MovieClip = new paddle_wide_skin(); _local6.gotoAndStop(mSkinIdx); _local6.x = -5; _local6.y = 0; mSprite.addChild(_local6); mSprite.addChild(_local3); mHair.x = -32; mHair.y = -24; mSprite.addChild(mHair); mSprite.x = _local2.x; mSprite.y = _local2.y; _local1.addChild(mSprite); InitScaledBody(mSprite.scaleX, 134, 45); mPaddleSize = PADDLE_EXPANDED; InitGuns(); if (mStickyBallTimer > 0){ EnablePowerUpAnim(); }; trace(("expanded paddle height : " + mSprite.height)); _local3 = null; _local4 = null; _local5 = null; _local6 = null; _local2 = null; } public function get sprite():Sprite{ return (mSprite); } public function DisablePenaltyKicks():void{ mPenaltyKicks = false; if (mSprite.contains(mGuns[0])){ mSprite.removeChild(mGuns[0]); mSprite.removeChild(mGuns[1]); }; mPenaltyTimer = 0; } private function DisablePowerUpAnim():void{ mSprite.removeChild(mPowerupEnabledAnim); } public function SetPosX(_arg1:Number):void{ mPaddleX = _arg1; } public function SetPosY(_arg1:Number):void{ } public function get stickyball():Boolean{ return (mStickyBall); } public function Update(_arg1:Number):void{ if (!mLastTime){ mLastTime = _arg1; }; var _local2:Number = (mPaddleX / GameModel.WORLD_SCALE); var _local3:Number = (400 / GameModel.WORLD_SCALE); var _local4:b2Vec2 = new b2Vec2(_local2, _local3); mMouseJoint.SetTarget(_local4); mSprite.x = (mPaddleBody.GetPosition().x * GameModel.WORLD_SCALE); mSprite.y = (mPaddleBody.GetPosition().y * GameModel.WORLD_SCALE); var _local5:Number = (_arg1 - mLastTime); if (mStickyBallTimer > 0){ mStickyBallTimer = (mStickyBallTimer - _local5); }; if (mPenaltyTimer > 0){ mPenaltyTimer = (mPenaltyTimer - _local5); }; if ((((mStickyBallTimer <= 0)) && (mStickyBall))){ DisableStickyBall(); }; if ((((mPenaltyTimer < 0)) && (mPenaltyKicks))){ DisablePenaltyKicks(); }; mLastTime = _arg1; } private function InitScaledBody(_arg1:Number, _arg2:Number, _arg3:Number):void{ if (mPaddleBody){ mWorld.DestroyJoint(mMouseJoint); mWorld.DestroyBody(mPaddleBody); mPaddleBody = null; }; var _local4:b2BodyDef = new b2BodyDef(); _local4.position.x = (mSprite.x / GameModel.WORLD_SCALE); _local4.position.y = (mSprite.y / GameModel.WORLD_SCALE); _local4.isBullet = true; var _local5:b2PolygonDef = new b2PolygonDef(); _local5.SetAsBox(((_arg2 / 2) / GameModel.WORLD_SCALE), ((_arg3 / 2) / GameModel.WORLD_SCALE)); _local5.density = 1; _local5.friction = 0.5; _local5.restitution = 0.5; _local5.isSensor = true; var _local6:b2Body = mWorld.CreateBody(_local4); _local6.bodyKindID = GameModel.BODY_KIND_PADDLE; _local6.CreateShape(_local5); _local6.SetMassFromShapes(); mPaddleBody = _local6; var _local7:Number = (mSprite.x / GameModel.WORLD_SCALE); var _local8:Number = (mSprite.y / GameModel.WORLD_SCALE); var _local9:b2MouseJointDef = new b2MouseJointDef(); _local9.body1 = mWorld.GetGroundBody(); _local9.body2 = mPaddleBody; _local9.target.Set(_local7, _local8); _local9.collideConnected = true; _local9.maxForce = int.MAX_VALUE; mMouseJoint = (mWorld.CreateJoint(_local9) as b2MouseJoint); mPaddleBody.WakeUp(); } private function ShrinkPaddle():void{ var _local1:DisplayObjectContainer; var _local2:Point = new Point(mSprite.x, mSprite.y); if (((mSprite) && (mSprite.parent))){ _local1 = mSprite.parent; _local1.removeChild(mSprite); }; var _local3:MovieClip = new paddle_narrow(); _local3.x = -35; _local3.y = -20; _local3.gotoAndStop(mTeam); mSprite = null; mSprite = new Sprite(); var _local4:MovieClip = new paddle_narrow_legs(); _local4.gotoAndStop(mSkinIdx); _local4.x = -5; _local4.y = 25; mSprite.addChild(_local4); var _local5:Sprite = new paddle_narrow_boots(); _local5.x = -5; _local5.y = 33; mSprite.addChild(_local5); var _local6:MovieClip = new paddle_narrow_skin(); _local6.gotoAndStop(mSkinIdx); _local6.x = -5; _local6.y = 0; mSprite.addChild(_local6); mSprite.addChild(_local3); mHair.x = -35; mHair.y = -24; mSprite.addChild(mHair); mSprite.x = _local2.x; mSprite.y = _local2.y; _local1.addChild(mSprite); InitScaledBody(mSprite.scaleX, 68, 45); mPaddleSize = PADDLE_SHRUNKEN; InitGuns(); if (mStickyBallTimer > 0){ EnablePowerUpAnim(); }; _local3 = null; _local4 = null; _local5 = null; _local6 = null; } public function get gunPos():Point{ var _local1:Point = new Point(mGuns[mGunIdx].x, mGuns[mGunIdx].y); mGunIdx = ((mGunIdx + 1) % mGuns.length); return (_local1); } public function DisableStickyBall():void{ mStickyBall = false; mStickyBallTimer = 0; if ((((mStickyBallTimer <= 0)) && (mSprite.contains(mPowerupEnabledAnim)))){ DisablePowerUpAnim(); }; } } }//package wbo.game.gameobjects
Section 464
//Referee (wbo.game.gameobjects.Referee) package wbo.game.gameobjects { import flash.display.*; import wbo.game.*; import flash.geom.*; import Box2D.Dynamics.*; import wbo.game.views.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import assets.*; import flash.filters.*; public class Referee extends Sprite { private const REFEREE_APPEARANCE_TIME:int = 3000; private const REFEREE_LIFETIME:int = 9000; private var mEndPos:Point; private var mLastTime:int; private var mSprite:Sprite; private var mDepthSort:DepthSort; private var mStartPos:Point; private var mTotalRunTime:Number; private var mAppearances:int; private var mWorld:b2World; private var mStartTime:Number; private var mState:int; private var mFrequency:int; private var mRefereeBody:b2Body; private var mWaitTime:Number; public static const REFEREE_OFF_PITCH:int = 1; public static const REFEREE_HIT:int = 3; public static const REFEREE_DISABLED:int = 2; public static const REFEREE_ON_PITCH:int = 0; public function Referee(_arg1:Array, _arg2:b2World){ mSprite = new referee(); var _local3:int = _arg1[1]; var _local4:int = _arg1[3]; mStartPos = new Point(_arg1[0], int(_local3)); mEndPos = new Point(_arg1[2], int(_local4)); mFrequency = _arg1[4]; mAppearances = 0; mLastTime = -1; mTotalRunTime = 0; mSprite.x = _arg1[0]; mSprite.y = _arg1[1]; mSprite.visible = false; mState = REFEREE_OFF_PITCH; mWaitTime = (mFrequency * 1000); mWorld = _arg2; var _local5:GlowFilter = new GlowFilter(); _local5.color = 0xFFFFFF; _local5.alpha = 1; _local5.blurX = 12; _local5.blurY = 12; mSprite.filters = [_local5]; } public function get sprite():Sprite{ return (mSprite); } public function SetState(_arg1:int):void{ mState = _arg1; switch (_arg1){ case REFEREE_OFF_PITCH: mSprite.x = 0x0400; mSprite.y = 0x0300; mSprite.visible = false; mTotalRunTime = 0; DestroyBody(); break; case REFEREE_ON_PITCH: mDepthSort.updateObject(mSprite); mSprite.visible = true; mWaitTime = (mFrequency * 1000); mStartTime = -1; mSprite.x = mStartPos.x; mSprite.y = mStartPos.y; InitBody(); break; case REFEREE_DISABLED: mSprite.x = 0x0400; mSprite.y = 0x0300; mSprite.visible = false; mTotalRunTime = 0; DestroyBody(); break; }; } public function Lerp1D(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{ var _local7:Number; var _local6:Number = (_arg4 - _arg5); if (_local6 > _arg3){ _local7 = _arg2; return (_local7); }; var _local8:Number = (_arg2 - _arg1); var _local9:Number = (_arg1 + Number((_local8 * Number((_local6 / _arg3))))); _local7 = _local9; return (_local7); } public function hit():void{ if (mState != REFEREE_HIT){ mState = REFEREE_HIT; }; } public function update(_arg1:Number):void{ if (mLastTime == -1){ mLastTime = _arg1; return; }; switch (mState){ case REFEREE_OFF_PITCH: UpdateOffPitch(_arg1); break; case REFEREE_ON_PITCH: UpdateOnPitch(_arg1); break; }; } private function UpdateOffPitch(_arg1:Number):void{ var _local2:Number = (_arg1 - mLastTime); mWaitTime = (mWaitTime - _local2); if (mWaitTime < 0){ SetState(REFEREE_ON_PITCH); }; mLastTime = _arg1; } public function DestroyBody():void{ if (mRefereeBody){ mWorld.DestroyBody(mRefereeBody); mRefereeBody = null; }; } public function dispose():void{ if (((mWorld) && (mRefereeBody))){ mWorld.DestroyBody(mRefereeBody); }; mRefereeBody = null; mSprite = null; mWorld = null; mDepthSort = null; mStartPos = null; mEndPos = null; } public function addDepthSort(_arg1:DepthSort):void{ mDepthSort = _arg1; mDepthSort.addObject(mSprite); } public function InitBody():void{ var _local1:b2FilterData = new b2FilterData(); _local1.groupIndex = 1; _local1.maskBits = 1; var _local2:b2BodyDef = new b2BodyDef(); _local2.position.x = (mSprite.x / GameModel.WORLD_SCALE); _local2.position.y = (mSprite.y / GameModel.WORLD_SCALE); _local2.isBullet = true; var _local3:b2PolygonDef = new b2PolygonDef(); _local3.SetAsBox(((mSprite.width / 1.7) / GameModel.WORLD_SCALE), ((mSprite.height / 2) / GameModel.WORLD_SCALE)); _local3.density = 1; _local3.friction = 0.5; _local3.restitution = 0.5; _local3.isSensor = true; _local3.filter = _local1; var _local4:b2Body = mWorld.CreateBody(_local2); _local4.bodyKindID = GameModel.BODY_KIND_REFEREE; _local4.CreateShape(_local3); _local4.SetMassFromShapes(); mRefereeBody = _local4; mRefereeBody.WakeUp(); UpdatePosition(); mWorld.Refilter(_local4.GetShapeList()); } public function get state():int{ return (mState); } private function UpdateOnPitch(_arg1:Number):void{ var _local5:Point; if (mStartTime == -1){ mStartTime = _arg1; return; }; var _local2:Number = (_arg1 - mLastTime); var _local3:int = Lerp1D(mStartPos.x, mEndPos.x, REFEREE_APPEARANCE_TIME, _arg1, mStartTime); var _local4:int = Lerp1D(mStartPos.y, mEndPos.y, REFEREE_APPEARANCE_TIME, _arg1, mStartTime); if ((((_local3 == mEndPos.x)) && ((_local4 == mEndPos.y)))){ _local5 = new Point(mEndPos.x, mEndPos.y); mEndPos.x = mStartPos.x; mEndPos.y = mStartPos.y; mStartPos.x = _local5.x; mStartPos.y = _local5.y; mStartTime = _arg1; }; mSprite.x = _local3; mSprite.y = _local4; mTotalRunTime = (mTotalRunTime + _local2); UpdatePosition(); if (mTotalRunTime > REFEREE_LIFETIME){ SetState(REFEREE_OFF_PITCH); }; mLastTime = _arg1; } public function UpdatePosition():void{ var _local6:Number; var _local7:Number; var _local1:Number = (mSprite.x / GameModel.WORLD_SCALE); var _local2:Number = (mSprite.y / GameModel.WORLD_SCALE); var _local3:Number = (mRefereeBody.GetPosition().x * GameModel.WORLD_SCALE); var _local4:Number = (mRefereeBody.GetPosition().y * GameModel.WORLD_SCALE); var _local5:Number = (1 / 30); _local6 = (mSprite.x - _local3); _local7 = (mSprite.y - _local4); mRefereeBody.SetLinearVelocity(new b2Vec2(_local6, _local7)); } } }//package wbo.game.gameobjects
Section 465
//BumpMeter (wbo.game.ui.BumpMeter) package wbo.game.ui { import flash.display.*; import wbo.managers.*; import assets.*; public class BumpMeter extends Sprite { private const BUMP_METER_LIFETIME:Number = 10000; private const MAX_FILL:Number = 100; private var mFillAmount:Number; private var mHUD:HUD; private var mFill:Sprite; private var mSprite:Sprite; private var mPulsatingFace:Sprite; private var mFillMask:Sprite; private var mStartTime:Number; private var mLastTime:Number; private var mBar:Sprite; private var mBackground:Sprite; public function BumpMeter(_arg1:HUD){ mSprite = new Sprite(); mBackground = new Sprite(); mBar = new HUDBackground(); mPulsatingFace = new idle_hud_head(); mPulsatingFace.x = mBar.width; mFill = new bumpmeter_fill(); mFillMask = new bumpmeter_fill(); mFillMask.scaleX = 0; mFill.mask = mFillMask; mBackground.graphics.beginFill(0xAAAAAA); mBackground.graphics.drawRect(0, 0, mBar.width, mBar.height); mBackground.graphics.endFill(); mSprite.addChild(mBackground); mSprite.addChild(mFillMask); mSprite.addChild(mFill); mSprite.addChild(mBar); mSprite.addChild(mPulsatingFace); mFillAmount = 0; mHUD = _arg1; mStartTime = 0; mLastTime = 0; } public function get sprite():Sprite{ return (mSprite); } public function update(_arg1:Number):void{ if ((mPulsatingFace is pulsating_head)){ if ((_arg1 - mStartTime) > BUMP_METER_LIFETIME){ mHUD.BumpMeterComplete(); mFillAmount = 0; mFillMask.scaleX = 0; mStartTime = 0; mSprite.removeChild(mPulsatingFace); mPulsatingFace = null; mPulsatingFace = new idle_hud_head(); mPulsatingFace.x = mBar.width; mSprite.addChild(mPulsatingFace); }; }; mLastTime = _arg1; } public function UpdateFill(_arg1:Number):void{ mFillAmount = (mFillAmount + _arg1); if (mFillAmount >= MAX_FILL){ mFillAmount = MAX_FILL; if (!(mPulsatingFace is pulsating_head)){ mSprite.removeChild(mPulsatingFace); mPulsatingFace = null; mPulsatingFace = new pulsating_head(); mSprite.addChild(mPulsatingFace); mHUD.BumpMeterFilled(); mStartTime = mLastTime; Managers.soundManager.playSingle("cheeringcrowd"); }; }; var _local2:Number = (mFillAmount / MAX_FILL); mFillMask.scaleX = _local2; } public function dispose():void{ var _local1:int; _local1 = 0; while (_local1 < mSprite.numChildren) { mSprite.removeChildAt(_local1); _local1++; }; mSprite = null; mBar = null; mBackground = null; if (this.contains(mFill)){ removeChild(mFill); }; if (this.contains(mFillMask)){ removeChild(mFillMask); }; if (this.contains(mPulsatingFace)){ removeChild(mPulsatingFace); }; mFill = null; mFillMask = null; mPulsatingFace = null; mHUD = null; } } }//package wbo.game.ui
Section 466
//HUD (wbo.game.ui.HUD) package wbo.game.ui { import flash.display.*; import wbo.game.events.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import wbo.common.*; import wbo.game.*; import com.bigwigmedia.mvc.*; import assets.*; import com.bigwigmedia.utils.*; import wbo.constants.*; public class HUD extends DialogOwnerView { private var mTimeCounter:int; private var mTotalTime:int; private var mHeadBumpMeter:BumpMeter; private var mContinueButton:Button; private var mLastTime:int; private var mTimer:Label; private var mKnockOutLevel:Boolean; private var mState:int; private var mKnockedOut:int; private var mLevelComplete:Label; private var mLivesLabel:Label; private var mCurLives:int; private var mLivesSprite:Sprite; public static const COUNTDOWN_STATE:int = 0; public static const GAMEPLAY_STATE:int = 1; public static const LEVELCOMPLETE_STATE:int = 2; public function HUD(){ var _local1:int = Managers.levelProgressService.currentLevel; if (!(_local1 % 7)){ mKnockOutLevel = true; } else { mKnockOutLevel = false; }; _component.y = 0; mTimer = new Label(); mTimer.text = "00:00"; mTimer.x = 580; mTimer.y = 20; addChild(mTimer); mLivesSprite = new game_bench(); var _local2:Number = 110; var _local3:Number = Math.max(mLivesSprite.width, mLivesSprite.height); var _local4:Number = (_local2 / _local3); mLivesSprite.x = 260; mLivesSprite.y = 435; mLivesSprite.scaleX = (mLivesSprite.scaleY = _local4); addChild(mLivesSprite); mLivesLabel = new Label(); mLivesLabel.x = 335; mLivesLabel.y = 432; addChild(mLivesLabel); mCurLives = Managers.levelProgressService.totalLives; mLivesLabel.text = ("x" + mCurLives); mLevelComplete = new Label(); if (!mKnockOutLevel){ mLevelComplete.text = (Teams.GetTeamName(Managers.levelProgressService.userTeam) + " Wins!"); } else { mLevelComplete.text = (("You knocked out " + "00") + " bricks!"); }; mLevelComplete.y = 200; mLevelComplete.styleName = "countryIntroText"; mContinueButton = new LabelButton(); mContinueButton.y = 440; mContinueButton.label = "Continue"; mContinueButton.name = "continuebutton"; mContinueButton.x = (320 - (mContinueButton.width / 2)); mLastTime = -1; mTotalTime = 0; mTimeCounter = 0; mState = GAMEPLAY_STATE; mHeadBumpMeter = new BumpMeter(this); mHeadBumpMeter.sprite.x = 463; mHeadBumpMeter.sprite.y = 453; addChild(mHeadBumpMeter.sprite); mHeadBumpMeter.sprite.scaleX = (mHeadBumpMeter.sprite.scaleY = 0.7); mKnockedOut = 0; } public function updatePlayerScore(_arg1:int):void{ } public function UpdateLevelComplete(_arg1:Number):void{ } public function set knockedOut(_arg1:int):void{ mKnockedOut = _arg1; } public function update(_arg1:Number):void{ switch (mState){ case COUNTDOWN_STATE: UpdateCountDownState(_arg1); break; case GAMEPLAY_STATE: UpdateGamePlayState(_arg1); break; case LEVELCOMPLETE_STATE: UpdateLevelComplete(_arg1); break; }; } override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "resetButton": dispatchEvent(new HUDEvent(HUDEvent.RESET, true)); break; case "detonateButton": dispatchEvent(new HUDEvent(HUDEvent.DETONATE, true)); break; case "pauseButton": showDialog(new PauseMenu(this)); dispatchEvent(new HUDEvent(HUDEvent.PAUSE, true)); break; case "continuebutton": trace("hud click"); dispatchEvent(new HUDEvent(HUDEvent.SHOW_WINNING_SCREEN, true)); break; case "twoDPlayButton": Managers.urlCaller.mainLink(); break; }; } public function UpdateGamePlayState(_arg1:Number):void{ if (mLastTime == -1){ mLastTime = _arg1; return; }; var _local2:Number = (_arg1 - mLastTime); mTotalTime = (mTotalTime + _local2); mTimeCounter = (mTimeCounter + _local2); if (mTimeCounter > 1000){ updateTimer(); mTimeCounter = 0; }; mLastTime = _arg1; mHeadBumpMeter.update(_arg1); } public function updateTimer():void{ var _local1:int; if (mKnockOutLevel){ _local1 = ((60000 - mTotalTime) / 1000); if (_local1 < 0){ _local1 = 0; dispatchEvent(new HUDEvent(HUDEvent.KNOCKOUTLEVEL_TIMEUP, true)); }; } else { _local1 = (mTotalTime / 1000); }; mTimer.text = StringUtil.secondsToTimerString(_local1); } public function notifyLoseState():void{ dispatchEvent(new HUDEvent(HUDEvent.SHOW_LOSING_SCREEN, true)); } public function updateLivesLabel(_arg1:int):void{ if ((mCurLives + _arg1) < 0){ dispatchEvent(new HUDEvent(HUDEvent.OUT_OF_LIVES, true)); return; }; mCurLives = (mCurLives + _arg1); mLivesLabel.text = ("x" + mCurLives); } public function updateCountDownLabel():void{ } public function BumpMeterFilled():void{ dispatchEvent(new HUDEvent(HUDEvent.BUMP_METER_FILLED, true)); } public function get totalTime():int{ return (mTotalTime); } override public function dispose():void{ if (this.contains(mHeadBumpMeter.sprite)){ removeChild(mHeadBumpMeter.sprite); }; mHeadBumpMeter.dispose(); mHeadBumpMeter = null; if (this.contains(mLivesLabel)){ removeChild(mLivesLabel); }; if (this.contains(mTimer)){ removeChild(mTimer); }; if (this.contains(mLivesSprite)){ removeChild(mLivesSprite); }; if (this.contains(mLevelComplete)){ removeChild(mLevelComplete); }; mLevelComplete = null; if (this.contains(mContinueButton)){ removeChild(mContinueButton); }; mLivesSprite = null; mLivesLabel = null; mTimer = null; mLevelComplete = null; mContinueButton = null; super.dispose(); } public function UpdateCountDownState(_arg1:Number):void{ } public function updateBumpMeter(_arg1:Number):void{ mHeadBumpMeter.UpdateFill(_arg1); } public function BumpMeterComplete():void{ dispatchEvent(new HUDEvent(HUDEvent.BUMP_METER_COMPLETE, true)); } public function get livesLeft():int{ return (mCurLives); } override protected function onDialogClose():void{ if (_dialog.option == "RESUME"){ dispatchEvent(new HUDEvent(HUDEvent.UNPAUSE, true)); }; } public function SetState(_arg1:int):void{ var _local2:Button; mState = _arg1; switch (mState){ case LEVELCOMPLETE_STATE: mLevelComplete.x = (320 - (mLevelComplete.width / 2)); if (mKnockOutLevel){ mLevelComplete.text = (("You knocked out " + mKnockedOut) + " bricks!"); }; addChild(mLevelComplete); mContinueButton.x = (320 - (mContinueButton.width / 2)); addChild(mContinueButton); mContinueButton.y = (mLevelComplete.y + mLevelComplete.height); _local2 = (getComponentByName("pauseButton") as Button); _local2.visible = false; break; }; } public function showTimeoutCounter():void{ } public function showLevelEndDialog(_arg1:LevelResult):void{ } public function PowerUpAddLife():void{ updateLivesLabel(Managers.configManager.getPowerUpValue(PowerUp.GOLDENCUP_POWERUP)); } } }//package wbo.game.ui
Section 467
//PauseMenu (wbo.game.ui.PauseMenu) package wbo.game.ui { import flash.display.*; import wbo.game.events.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; import assets.*; public class PauseMenu extends DialogView { private const MAIN_MENU:int = 1; private const LEVEL_SELECT:int = 0; private var mYesButton:Button; private var mNoticeLabel:Label; private var mHUD:HUD; private var mNoButton:Button; private var mInstructions:Sprite; private var mBackToGameButton:Button; private var mChoice:int; public function PauseMenu(_arg1:HUD){ var _local2:Button; super(); if (!Managers.soundManager.masterVolume){ _local2 = (getComponentByName("soundButton") as Button); _local2.label = "SOUND : OFF"; }; mInstructions = new InstructionScreen(); mBackToGameButton = new Button(); mBackToGameButton.label = "BACK TO GAME"; mBackToGameButton.name = "backtoGameButton"; mBackToGameButton.x = 10; mBackToGameButton.y = 10; mBackToGameButton.styleName = "mainMenuText"; mYesButton = new Button(); mYesButton.label = "YES"; mYesButton.name = "yesButton"; mYesButton.x = 220; mYesButton.y = 240; mYesButton.styleName = "shortButtonSkin"; addChild(mYesButton); mNoButton = new Button(); mNoButton.label = "NO"; mNoButton.name = "noButton"; mNoButton.x = 340; mNoButton.y = 240; mNoButton.styleName = "shortButtonSkin"; addChild(mNoButton); mNoticeLabel = new Label(); mNoticeLabel.text = "Are you sure? (You will lose a life if you quit the match)"; mNoticeLabel.x = 100; mNoticeLabel.y = 200; addChild(mNoticeLabel); mNoticeLabel.visible = false; mYesButton.visible = false; mNoButton.visible = false; mChoice = -1; mHUD = _arg1; } public function showPauseItems():void{ var _local1:Button = (getComponentByName("resumeButton") as Button); _local1.visible = true; _local1 = (getComponentByName("selectLevelButton") as Button); _local1.visible = true; _local1 = (getComponentByName("soundButton") as Button); _local1.visible = true; _local1 = (getComponentByName("viewScoresButton") as Button); _local1.visible = true; _local1 = (getComponentByName("mainMenuButton") as Button); _local1.visible = true; _local1 = (getComponentByName("helpButton") as Button); _local1.visible = true; } public function removePauseItems():void{ var _local1:Button = (getComponentByName("resumeButton") as Button); _local1.visible = false; _local1 = (getComponentByName("selectLevelButton") as Button); _local1.visible = false; _local1 = (getComponentByName("soundButton") as Button); _local1.visible = false; _local1 = (getComponentByName("viewScoresButton") as Button); _local1.visible = false; _local1 = (getComponentByName("mainMenuButton") as Button); _local1.visible = false; _local1 = (getComponentByName("helpButton") as Button); _local1.visible = false; } override protected function onComponentClick(_arg1:Component):void{ var _local2:Button; var _local3:int; switch (_arg1.name){ case "resumeButton": dispatchCloseEvent("RESUME"); mHUD = null; break; case "selectLevelButton": removePauseItems(); showExitDialog(); mChoice = LEVEL_SELECT; break; case "viewScoresButton": Managers.urlCaller.viewScores(); break; case "mainMenuButton": removePauseItems(); showExitDialog(); mChoice = MAIN_MENU; break; case "soundButton": _local2 = (_arg1 as Button); trace(("labelButton : " + _local2.label)); if (_local2.label == "SOUND : ON"){ _local2.label = "SOUND : OFF"; Managers.soundManager.masterVolume = 0; Managers.levelProgressService.soundState = false; Managers.levelProgressService.saveGame(); } else { if (_local2.label == "SOUND : OFF"){ _local2.label = "SOUND : ON"; Managers.soundManager.masterVolume = 1; Managers.levelProgressService.soundState = true; Managers.levelProgressService.saveGame(); }; }; break; case "helpButton": addChild(mInstructions); addChild(mBackToGameButton); break; case "backtoGameButton": removeChild(mInstructions); removeChild(mBackToGameButton); break; case "yesButton": _local3 = (mHUD.livesLeft - 1); trace(("game lives : " + _local3)); Managers.levelProgressService.SetTotalLives(_local3); if (Managers.levelProgressService.totalLives < 0){ Managers.levelProgressService.ResetStage(); }; if (!(Managers.levelProgressService.currentLevel % 7)){ Managers.levelProgressService.currentLevel = (Managers.levelProgressService.currentLevel - 1); }; Managers.levelProgressService.saveGame(); if (mChoice == MAIN_MENU){ dispatchEvent(new HUDEvent(HUDEvent.MAIN_MENU, true)); } else { if (mChoice == LEVEL_SELECT){ dispatchEvent(new HUDEvent(HUDEvent.SELECT_LEVEL, true)); }; }; mHUD = null; break; case "noButton": hideExitDialog(); showPauseItems(); break; }; } override public function dispose():void{ if (mInstructions){ if (this.contains(mInstructions)){ removeChild(mInstructions); }; mInstructions = null; }; if (this.contains(mBackToGameButton)){ removeChild(mBackToGameButton); }; mBackToGameButton = null; if (this.contains(mYesButton)){ removeChild(mYesButton); }; mYesButton = null; if (this.contains(mNoButton)){ removeChild(mNoButton); }; mNoButton = null; if (this.contains(mNoticeLabel)){ removeChild(mNoticeLabel); }; mNoticeLabel = null; trace("dispose pause"); super.dispose(); } public function showExitDialog():void{ mNoticeLabel.visible = true; mYesButton.visible = true; mNoButton.visible = true; } public function hideExitDialog():void{ mNoticeLabel.visible = false; mYesButton.visible = false; mNoButton.visible = false; } } }//package wbo.game.ui
Section 468
//DepthSort (wbo.game.views.DepthSort) package wbo.game.views { import flash.display.*; public class DepthSort { private var _container:DisplayObjectContainer; private var _array:Array; public function DepthSort(_arg1:DisplayObjectContainer){ _array = []; super(); _container = _arg1; } public function addObject(_arg1:DisplayObject):void{ var _local2:int = indexOfLastEqualY(_arg1.y); if (_local2 > -1){ _local2++; } else { _local2 = (-(_local2) - 1); }; _array.splice(_local2, 0, _arg1); _container.setChildIndex(_arg1, _local2); } public function removeObject(_arg1:DisplayObject):void{ var _local2:int = _array.indexOf(_arg1); _array.splice(_local2, 1); } public function updateObject(_arg1:DisplayObject):void{ var _local2:int = _array.indexOf(_arg1); _array.splice(_local2, 1); _local2 = indexOfLastEqualY(_arg1.y); if (_local2 > -1){ _local2++; } else { _local2 = (-(_local2) - 1); }; _array.splice(_local2, 0, _arg1); _container.setChildIndex(_arg1, _local2); } private function indexOfLastEqualY(_arg1:Number):int{ var _local4:uint; var _local6:int; var _local2:uint; var _local3:int = (_array.length - 1); var _local5:Boolean; while (_local2 <= _local3) { _local4 = ((_local3 + _local2) / 2); _local6 = _array[_local4].y; if (_arg1 < _local6){ if (_local4 == _local2){ if (_local5){ return ((_local4 - 1)); }; return ((-1 - _local4)); }; _local3 = (_local4 - 1); } else { if (_arg1 > _local6){ if (_local4 == _local3){ return ((-1 - (_local4 + 1))); }; _local2 = (_local4 + 1); } else { if (_local4 == _local3){ return (_local4); }; _local5 = true; _local2 = (_local4 + 1); }; }; }; return (-1); } public function dispose():void{ var _local1:int; _local1 = 0; while (_local1 < _array.length) { if (_array[_local1]){ _array[_local1] = null; }; _local1++; }; _array = null; _local1 = 0; while (_local1 < _container.numChildren) { if (_container.getChildAt(_local1)){ _container.removeChildAt(_local1); }; _local1++; }; } } }//package wbo.game.views
Section 469
//FootballView (wbo.game.views.FootballView) package wbo.game.views { import flash.display.*; import wbo.managers.*; import wbo.common.*; import wbo.game.*; import flash.geom.*; import Box2D.Collision.*; import Box2D.Dynamics.*; import wbo.game.gameobjects.*; import com.bigwigmedia.geom.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import assets.*; import com.bigwigmedia.core.*; public class FootballView extends Sprite implements IDisposable { private const FOOTBALL_SMALL_BALL:int = 1; private const FOOTBALL_NORMAL_BALL:int = 2; private const SIDE_TOP_OR_BOTTOM:int = 2; private const FOOTBALL_LARGE_BALL:int = 3; private const PADDLE_CURVE:Number = 0.004; private const BALL_VEL_X:Number = 0.2; private const BALL_VEL_Y:Number = -0.24; private const BALL_SPEED_2:int = 1; private const BALL_SPEED_3:int = 2; private const BALL_SPEED_1:int = 0; private const SIDE_LEFT_OR_RIGHT:int = 1; private var mDefenders:Array; private var mLastTime:Number; private var mStartPos:Vector2D; private var mWorld:b2World; private var mState:int; private var mBallSize:int; private var mGoalKeeper:GoalKeeper; private var mGoalRect:Rectangle; private var mPaddle:Paddle; private var mType:int; private var mPrevCollider:b2Body; private var mVelocity:Vector2D; private var mCollided:Boolean; private var mDiffX:int; private var mAdditionalVel:Number; private var mSprite:Sprite; private var mBallSpeed:int; private var mBallY:int;// = 358 private var mBallBody:b2Body; private var mTotalLifeTime:Number; private var mReferee:Referee; private var mPrevPos:Vector2D; public static const BALL_ATTACHED:int = 0; public static const BALL_MOVING:int = 1; public static const REGULAR_BALL:int = 0; public static const PENALTY_BALL:int = 1; public static const BALL_POPPED:int = 2; public function FootballView(_arg1:Number, _arg2:Number, _arg3:int, _arg4:b2World, _arg5:Paddle){ mSprite = new football(); addChild(mSprite); mSprite.x = _arg1; mSprite.y = _arg2; mStartPos = new Vector2D(_arg1, _arg2); mPrevPos = new Vector2D(_arg1, _arg2); mLastTime = 0; mTotalLifeTime = 0; mWorld = _arg4; mType = REGULAR_BALL; mVelocity = new Vector2D(BALL_VEL_X, BALL_VEL_Y); mAdditionalVel = 1; mDiffX = 0; InitBody(); mState = BALL_ATTACHED; mCollided = false; mPaddle = _arg5; if (((mPaddle) && (!(mDiffX)))){ trace("Initializing position"); mSprite.x = mPaddle.sprite.x; SetAttachedPosition(); }; mBallSize = FOOTBALL_NORMAL_BALL; mBallSpeed = BALL_SPEED_2; } public function RefereeCollision(_arg1:b2Vec2, _arg2:b2Body):void{ if (_arg1.x){ if ((((_arg1.x > 0)) && ((mVelocity.x < 0)))){ mVelocity.x = (mVelocity.x * -1); } else { if ((((_arg1.x < 0)) && ((mVelocity.x > 0)))){ mVelocity.x = (mVelocity.x * -1); }; }; mPrevCollider = _arg2; } else { if (_arg1.y){ if ((((_arg1.y > 0)) && ((mVelocity.y < 0)))){ mVelocity.y = (mVelocity.y * -1); } else { if ((((_arg1.y < 0)) && ((mVelocity.y > 0)))){ mVelocity.y = (mVelocity.y * -1); }; }; mPrevCollider = _arg2; }; }; mReferee.hit(); UpdatePosition(); } public function dispose():void{ mDefenders = null; mPaddle = null; if (mWorld){ mWorld.DestroyBody(mBallBody); mBallBody = null; }; mGoalKeeper = null; removeChild(mSprite); mSprite = null; mWorld = null; } public function SetTime(_arg1:Number):void{ mLastTime = _arg1; } public function set goalRect(_arg1:Rectangle):void{ mGoalRect = _arg1; } public function UpdatePosition():void{ var _local1:Number = (mSprite.x / GameModel.WORLD_SCALE); var _local2:Number = (mSprite.y / GameModel.WORLD_SCALE); var _local3:Number = (mBallBody.GetPosition().x * GameModel.WORLD_SCALE); var _local4:Number = (mBallBody.GetPosition().y * GameModel.WORLD_SCALE); var _local5:Number = (mSprite.x - _local3); var _local6:Number = (mSprite.y - _local4); mBallBody.SetLinearVelocity(new b2Vec2(_local5, _local6)); } public function KeeperCollision(_arg1:b2Vec2, _arg2:b2Body):void{ if (_arg1.x){ if ((((_arg1.x > 0)) && ((mVelocity.x < 0)))){ mVelocity.x = (mVelocity.x * -1); } else { if ((((_arg1.x < 0)) && ((mVelocity.x > 0)))){ mVelocity.x = (mVelocity.x * -1); }; }; mPrevCollider = _arg2; } else { if (_arg1.y){ if ((((_arg1.y > 0)) && ((mVelocity.y < 0)))){ mVelocity.y = (mVelocity.y * -1); } else { if ((((_arg1.y < 0)) && ((mVelocity.y > 0)))){ mVelocity.y = (mVelocity.y * -1); }; }; mPrevCollider = _arg2; }; }; UpdatePosition(); } public function SetPaddle(_arg1:Paddle):void{ mPaddle = _arg1; } private function InitNormalSpeed():void{ var _local1:Number; var _local2:Number; if (mVelocity.x == 0){ _local1 = 0; } else { _local1 = (BALL_VEL_X / mVelocity.x); }; if (mVelocity.y == 0){ _local2 = 0; } else { _local2 = (0.18 / mVelocity.y); }; mVelocity.x = (mVelocity.x * Math.abs(_local1)); mVelocity.y = (mVelocity.y * Math.abs(_local2)); mBallSpeed = BALL_SPEED_2; } public function Reset():void{ var _local1:DisplayObjectContainer; var _local2:DisplayObjectContainer; DestroyBody(); if ((mSprite is fireball_anim_holder)){ removeChild(mSprite); mSprite = new football(); addChild(mSprite); }; if (mType == REGULAR_BALL){ if (((mSprite) && (mSprite.parent))){ _local1 = mSprite.parent; _local1.removeChild(mSprite); mSprite = new football(); _local1.addChild(mSprite); }; mVelocity.x = 0; mVelocity.y = 0; mSprite.scaleX = (mSprite.scaleY = 1); mAdditionalVel = 1; mPrevCollider = mPaddle.body; SetState(BALL_ATTACHED); mTotalLifeTime = 0; InitBody(); mSprite.x = mPaddle.sprite.x; SetAttachedPosition(); InitNormalBall(); InitNormalSpeed(); } else { if (((mSprite) && (mSprite.parent))){ _local2 = mSprite.parent; _local2.removeChild(mSprite); mSprite = new football_rolling_holder(); addChild(mSprite); }; mSprite.x = mStartPos.x; mSprite.y = mStartPos.y; InitBody(); UpdatePosition(); mVelocity.x = BALL_VEL_X; mVelocity.y = BALL_VEL_Y; mSprite.scaleX = (mSprite.scaleY = 1); mAdditionalVel = 1; mPrevCollider = null; mState = BALL_MOVING; }; } private function UpdateBallAttached(_arg1:Number):void{ mSprite.x = (mPaddle.sprite.x + mDiffX); mSprite.y = mBallY; UpdatePosition(); } private function InitSmallBall():void{ mSprite.scaleX = (mSprite.scaleY = Managers.configManager.getPowerUpValue(PowerUp.SPIKEDBOOT_POWERUP)); InitScaledBody(mSprite.scaleX); mBallSize = FOOTBALL_SMALL_BALL; } private function SetAttachedPosition():void{ var _local1:b2Shape = mPaddle.body.GetShapeList(); var _local2:b2AABB = new b2AABB(); var _local3:b2Shape = mBallBody.GetShapeList(); var _local4:b2AABB = new b2AABB(); _local1.ComputeAABB(_local2, mPaddle.body.GetXForm()); _local3.ComputeAABB(_local4, mBallBody.GetXForm()); var _local5:Number = Math.abs(((_local4.lowerBound.y * GameModel.WORLD_SCALE) - (_local4.upperBound.y * GameModel.WORLD_SCALE))); mBallY = ((_local2.lowerBound.y * GameModel.WORLD_SCALE) - (_local5 / 2)); mBallY = (mBallY - 2); mSprite.y = mBallY; mDiffX = (mSprite.x - mPaddle.sprite.x); trace(((((((("mTotalLifeTime : " + mTotalLifeTime) + " diffX : ") + mDiffX) + " mSprite.x ") + mSprite.x) + " mPaddle.sprite.x : ") + mPaddle.sprite.x)); if (((!(mDiffX)) && (!(mTotalLifeTime)))){ SetRandomSpawnPos(); }; } public function TopWallCollision(_arg1:b2Body, _arg2:b2Vec2):void{ if (mVelocity.y < 0){ mVelocity.y = (mVelocity.y * -1); }; UpdatePosition(); } public function InitScaledBody(_arg1:Number):void{ var _local5:int; if (mBallBody){ mWorld.DestroyBody(mBallBody); mBallBody = null; }; var _local2:Sprite = new football(); var _local3:Number = (_local2.width * _arg1); var _local4:b2BodyDef = new b2BodyDef(); _local4.position.x = (mSprite.x / GameModel.WORLD_SCALE); _local4.position.y = (mSprite.y / GameModel.WORLD_SCALE); _local4.isBullet = true; switch (_arg1){ case 1: _local5 = 9; break; case Managers.configManager.getPowerUpValue(PowerUp.SPIKEDBOOT_POWERUP): _local5 = (9 * Managers.configManager.getPowerUpValue(PowerUp.SPIKEDBOOT_POWERUP)); break; case Managers.configManager.getPowerUpValue(PowerUp.YELLOWCARD_POWERUP): _local5 = (9 * Managers.configManager.getPowerUpValue(PowerUp.YELLOWCARD_POWERUP)); break; }; var _local6:b2CircleDef = new b2CircleDef(); _local6.radius = (_local5 / GameModel.WORLD_SCALE); _local6.density = 1; _local6.friction = 0.01; _local6.isSensor = true; var _local7:b2Body = mWorld.CreateBody(_local4); _local7.bodyKindID = GameModel.BODY_KIND_BALL; _local7.CreateShape(_local6); _local7.SetMassFromShapes(); mBallBody = _local7; mBallBody.WakeUp(); _local6 = null; _local7 = null; } public function DefenderCollision(_arg1:b2Vec2, _arg2:b2Body):void{ var _local6:Defender; var _local3:int; var _local4:Boolean; var _local5:Boolean; if ((mSprite is fireball_anim_holder)){ _local5 = true; } else { if (Math.abs(_arg1.x) > Math.abs(_arg1.y)){ _local3 = SIDE_LEFT_OR_RIGHT; } else { _local3 = SIDE_TOP_OR_BOTTOM; }; if (_local3 == SIDE_LEFT_OR_RIGHT){ if ((((_arg1.x < 0)) && ((mVelocity.x > 0)))){ mVelocity.x = (mVelocity.x * -1); } else { if ((((_arg1.x > 0)) && ((mVelocity.x < 0)))){ mVelocity.x = (mVelocity.x * -1); }; }; } else { if (_local3 == SIDE_TOP_OR_BOTTOM){ if ((((_arg1.y < 0)) && ((mVelocity.y > 0)))){ mVelocity.y = (mVelocity.y * -1); } else { if ((((_arg1.y > 0)) && ((mVelocity.y < 0)))){ mVelocity.y = (mVelocity.y * -1); }; }; }; }; }; for each (_local6 in mDefenders) { if (_local6.body == _arg2){ if ((((Math.abs(_arg1.y) > Math.abs(_arg1.x))) && ((_arg1.y < 0)))){ _local4 = true; }; _local6.hit(_local4, _local5); }; }; UpdatePosition(); if (mType == PENALTY_BALL){ mCollided = true; }; } private function InitHighSpeed():void{ mAdditionalVel = Managers.configManager.getPowerUpValue(PowerUp.YELLOWCARD_POWERUP); mVelocity.x = (mVelocity.x * mAdditionalVel); mVelocity.y = (mVelocity.y * mAdditionalVel); mBallSpeed = BALL_SPEED_3; } public function SetState(_arg1:int):void{ var _local2:Point; var _local3:DisplayObjectContainer; var _local4:Number; mState = _arg1; switch (mState){ case BALL_MOVING: if (((mSprite) && (mSprite.parent))){ _local3 = mSprite.parent; _local3.removeChild(mSprite); _local2 = new Point(mSprite.x, mSprite.y); if (!(mSprite is fireball_anim_holder)){ mSprite = new football_rolling_holder(); }; _local3.addChild(mSprite); mSprite.x = _local2.x; mSprite.y = _local2.y; switch (mBallSize){ case FOOTBALL_SMALL_BALL: InitSmallBall(); break; case FOOTBALL_NORMAL_BALL: InitNormalBall(); break; case FOOTBALL_LARGE_BALL: InitLargeBall(); break; }; _local2 = null; }; if (mPaddle){ _local4 = Math.abs((mSprite.x - mPaddle.sprite.x)); if (_local4 < (mPaddle.sprite.width / 1.7)){ mVelocity.x = (((mSprite.x - mPaddle.sprite.x) * PADDLE_CURVE) * mAdditionalVel); } else { trace("too far, so its placed at 0.5"); mVelocity.x = 0.05; }; } else { mVelocity.x = 0.05; }; if (mBallSpeed == BALL_SPEED_1){ mVelocity.y = (BALL_VEL_Y * Managers.configManager.getPowerUpValue(PowerUp.CAMERA_POWERUP)); } else { if (mBallSpeed == BALL_SPEED_2){ mVelocity.y = BALL_VEL_Y; } else { if (mBallSpeed == BALL_SPEED_3){ mVelocity.y = (BALL_VEL_Y * Managers.configManager.getPowerUpValue(PowerUp.YELLOWCARD_POWERUP)); }; }; }; break; case BALL_ATTACHED: if (((mBallBody) && (mPaddle.body))){ SetAttachedPosition(); }; break; }; } public function SetReferee(_arg1:Referee):void{ mReferee = _arg1; } public function get ballSpeed():int{ return (mBallSpeed); } private function InitLargeBall():void{ mSprite.scaleX = (mSprite.scaleY = Managers.configManager.getPowerUpValue(PowerUp.PUMP_POWERUP)); InitScaledBody(mSprite.scaleX); mBallSize = FOOTBALL_LARGE_BALL; } public function get state():int{ return (mState); } private function ShowFireBall():void{ var _local1:b2Vec2 = new b2Vec2(mSprite.x, mSprite.y); removeChild(mSprite); mSprite = new fireball_anim_holder(); mSprite.x = _local1.x; mSprite.y = _local1.y; addChild(mSprite); switch (mBallSize){ case FOOTBALL_LARGE_BALL: InitLargeBall(); break; case FOOTBALL_NORMAL_BALL: InitNormalBall(); break; case FOOTBALL_SMALL_BALL: InitSmallBall(); break; }; } private function SetRandomSpawnPos():void{ var _local1:Number = ((Math.random() * (mPaddle.sprite.width / 2)) - (mPaddle.sprite.width / 4)); mSprite.x = (mPaddle.sprite.x + _local1); mDiffX = (mSprite.x - mPaddle.sprite.x); } public function addPowerUp(_arg1:PowerUp):void{ switch (_arg1.id){ case PowerUp.YELLOWCARD_POWERUP: if (mBallSpeed == BALL_SPEED_1){ InitNormalSpeed(); } else { if (mBallSpeed == BALL_SPEED_2){ InitHighSpeed(); }; }; break; case PowerUp.CAMERA_POWERUP: if (mBallSpeed == BALL_SPEED_3){ InitNormalSpeed(); } else { if (mBallSpeed == BALL_SPEED_2){ InitLowSpeed(); }; }; break; case PowerUp.PUMP_POWERUP: if (mBallSize == FOOTBALL_SMALL_BALL){ InitNormalBall(); } else { if (mBallSize == FOOTBALL_NORMAL_BALL){ InitLargeBall(); }; }; break; case PowerUp.SPIKEDBOOT_POWERUP: if (mBallSize == FOOTBALL_LARGE_BALL){ InitNormalBall(); } else { if (mBallSize == FOOTBALL_NORMAL_BALL){ InitSmallBall(); }; }; break; case PowerUp.FIREBALL_POWERUP: ShowFireBall(); break; }; } public function get ballSize():int{ return (mBallSize); } public function LeftWallCollision(_arg1:b2Body, _arg2:b2Vec2):void{ var _local3:int; if ((((_arg2.x > 0)) && ((mVelocity.x < 0)))){ mVelocity.x = (mVelocity.x * -1); }; UpdatePosition(); } public function get body():b2Body{ return (mBallBody); } private function DestroyBody():void{ mWorld.DestroyBody(mBallBody); mBallBody = null; } private function InitLowSpeed():void{ mAdditionalVel = Managers.configManager.getPowerUpValue(PowerUp.CAMERA_POWERUP); mVelocity.x = (mVelocity.x * mAdditionalVel); mVelocity.y = (mVelocity.y * mAdditionalVel); mBallSpeed = BALL_SPEED_1; } public function SetType(_arg1:int):void{ mType = _arg1; switch (mType){ case PENALTY_BALL: Reset(); InitSmallBall(); mVelocity.x = 0; mVelocity.y = -0.18; mBallBody.bodyKindID = GameModel.BODY_KIND_PENALTY; break; }; } public function knockOutSpeedUpdate():void{ mAdditionalVel = 1.1; mVelocity.x = (mVelocity.x * mAdditionalVel); mVelocity.y = (mVelocity.y * mAdditionalVel); } public function get sprite():Sprite{ return (mSprite); } public function PaddleCollision(_arg1:b2Vec2, _arg2:b2Body):void{ var _local3:int; if ((((mState == BALL_ATTACHED)) || ((mType == PENALTY_BALL)))){ return; }; if (mPaddle.stickyball){ trace("hit sticky ball paddle"); SetState(BALL_ATTACHED); return; }; if (Math.abs(_arg1.x) > Math.abs(_arg1.y)){ _local3 = SIDE_LEFT_OR_RIGHT; } else { _local3 = SIDE_TOP_OR_BOTTOM; }; if (_local3 == SIDE_LEFT_OR_RIGHT){ if ((((_arg1.x < 0)) && ((mVelocity.x > 0)))){ mVelocity.x = (mVelocity.x * -1); } else { if ((((_arg1.x > 0)) && ((mVelocity.x < 0)))){ mVelocity.x = (mVelocity.x * -1); }; }; } else { if (_local3 == SIDE_TOP_OR_BOTTOM){ if ((((_arg1.y < 0)) && ((mVelocity.y > 0)))){ mVelocity.y = (mVelocity.y * -1); } else { if ((((_arg1.y > 0)) && ((mVelocity.y < 0)))){ mVelocity.y = (mVelocity.y * -1); }; }; }; }; mVelocity.x = (((mSprite.x - mPaddle.sprite.x) * PADDLE_CURVE) * mAdditionalVel); UpdatePosition(); } public function update(_arg1:Number):void{ switch (mState){ case BALL_ATTACHED: UpdateBallAttached(_arg1); break; case BALL_MOVING: UpdateBallMoving(_arg1); break; }; } public function set goalKeeper(_arg1:GoalKeeper):void{ mGoalKeeper = _arg1; } public function CopyAttributes(_arg1:FootballView):void{ if ((_arg1.sprite is fireball_anim_holder)){ ShowFireBall(); }; switch (_arg1.ballSize){ case FOOTBALL_LARGE_BALL: InitLargeBall(); break; case FOOTBALL_NORMAL_BALL: InitNormalBall(); break; case FOOTBALL_SMALL_BALL: InitSmallBall(); break; }; mVelocity.x = (_arg1.velocity.x * -1); mVelocity.y = _arg1.velocity.y; mBallSpeed = _arg1.ballSpeed; mSprite.x = _arg1.sprite.x; mSprite.y = _arg1.sprite.y; mState = _arg1.state; SetState(mState); } public function SetDefenders(_arg1:Array):void{ mDefenders = _arg1; } public function GetBallRect():Rectangle{ return (new Rectangle((mSprite.x - (mSprite.width / 2)), (mSprite.y - (mSprite.height / 2)), mSprite.width, mSprite.height)); } private function InitNormalBall():void{ mSprite.scaleX = (mSprite.scaleY = 1); InitScaledBody(mSprite.scaleX); mBallSize = FOOTBALL_NORMAL_BALL; } public function get velocity():Vector2D{ return (mVelocity); } public function RightWallCollision(_arg1:b2Body, _arg2:b2Vec2):void{ var _local3:int; if ((((_arg2.x < 0)) && ((mVelocity.x > 0)))){ mVelocity.x = (mVelocity.x * -1); }; UpdatePosition(); } public function InitBody():void{ var _local1:b2BodyDef; _local1 = new b2BodyDef(); _local1.position.x = (mSprite.x / GameModel.WORLD_SCALE); _local1.position.y = (mSprite.y / GameModel.WORLD_SCALE); _local1.isBullet = true; var _local2:b2CircleDef = new b2CircleDef(); _local2.radius = ((mSprite.width / 2) / GameModel.WORLD_SCALE); _local2.density = 1; _local2.friction = 0.01; _local2.isSensor = true; mBallBody = mWorld.CreateBody(_local1); mBallBody.bodyKindID = GameModel.BODY_KIND_BALL; mBallBody.CreateShape(_local2); mBallBody.SetMassFromShapes(); UpdatePosition(); } private function UpdateBallMoving(_arg1:Number):void{ var _local2:Number = (_arg1 - mLastTime); mTotalLifeTime = (mTotalLifeTime + _local2); mPrevPos.x = mSprite.x; mPrevPos.y = mSprite.y; mSprite.x = (mSprite.x + (mVelocity.x * _local2)); mSprite.y = (mSprite.y + (mVelocity.y * _local2)); if (mSprite.x < 0){ LeftWallCollision(null, new b2Vec2(1, 0)); } else { if (mSprite.x > 640){ RightWallCollision(null, new b2Vec2(-1, 0)); }; }; if (mSprite.y < 0){ TopWallCollision(null, new b2Vec2(0, -1)); Managers.soundManager.playSingle("football_bounce_2"); } else { if ((mSprite.y - (mSprite.height / 2)) < 12){ if (((((mGoalKeeper) && (mGoalKeeper.visible))) && ((((mSprite.x < mGoalRect.x)) || ((mSprite.x > (mGoalRect.x + mGoalRect.width))))))){ TopWallCollision(null, new b2Vec2(0, -1)); Managers.soundManager.playSingle("football_bounce_2"); }; }; }; UpdatePosition(); mLastTime = _arg1; if (((mCollided) || ((((mType == PENALTY_BALL)) && ((mSprite.y < 0)))))){ mState = BALL_POPPED; }; if (Math.abs(mVelocity.x) > 0.5){ }; } } }//package wbo.game.views
Section 470
//CustomContactListener (wbo.game.CustomContactListener) package wbo.game { import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Contacts.*; public class CustomContactListener extends b2ContactListener { private var _resultCallback:Function; private var _persistsCallback:Function; private var _addCallback:Function; private var _removeCallback:Function; public function CustomContactListener(_arg1:Function, _arg2:Function, _arg3:Function, _arg4:Function){ _addCallback = _arg1; _removeCallback = _arg2; _persistsCallback = _arg3; _resultCallback = _arg4; } override public function Remove(_arg1:b2ContactPoint):void{ if (_removeCallback != null){ _removeCallback(_arg1); }; } override public function Persist(_arg1:b2ContactPoint):void{ if (_persistsCallback != null){ _persistsCallback(_arg1); }; } override public function Add(_arg1:b2ContactPoint):void{ if (_addCallback != null){ _addCallback(_arg1); }; } override public function Result(_arg1:b2ContactResult):void{ trace("result"); if (_resultCallback != null){ _resultCallback(_arg1); }; } public function dispose():void{ _addCallback = null; _removeCallback = null; _persistsCallback = null; } } }//package wbo.game
Section 471
//GameController (wbo.game.GameController) package wbo.game { import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import wbo.game.events.*; import wbo.managers.*; import wbo.services.*; import wbo.common.*; import com.bigwigmedia.mvc.*; import wbo.game.entities.*; import flash.utils.*; import wbo.core.*; import com.bigwigmedia.utils.*; public class GameController extends EventDispatcher implements IController { private const FRAME_DROP_TOLERANCE:Number = 50; private var _view:GameView; private var mTimeOffset:Number; private var mLastTime:Number; private var mTimeCount:TimeCount; private var _model:GameModel; public function GameController(){ _view = new GameView(this); var _local1:LevelProgressService = Managers.levelProgressService; var _local2:int = Managers.levelProgressService.GetCurrentLevelTeam(Managers.levelProgressService.currentLevel); mTimeOffset = 0; _model = new GameModel(_local1.getLevelInfo(), _view, _local1.userTeam, _local2); _view.showBackground(_model.background); _model.addEventListener(EntityEvent.ADDED, onModelChildAddedHandler); _model.addEventListener(EntityEvent.REMOVED, onModelChildRemovedHandler); _model.addEventListener(GameModel.RESET_EVENT, onResetHandler); _model.addEventListener(GameModel.LEVEL_END_EVENT, onLevelEndHandler); _model.addEventListener(GameModel.HIT_REFEREE, onHitRefHandler); _model.addEventListener(GameModel.START_TIMEOUT_EVENT, onStartTimeoutEventHandler); _model.addEventListener(GameModel.UPDATE_TIMEOUT_EVENT, onUpdateTimeoutEventHandler); _view.addEventListener(HUDEvent.RESET, onHUDEventHandler); _view.addEventListener(HUDEvent.PAUSE, onHUDEventHandler); _view.addEventListener(HUDEvent.UNPAUSE, onHUDEventHandler); _view.addEventListener(HUDEvent.MAIN_MENU, onHUDEventHandler); _view.addEventListener(HUDEvent.BEGIN_GAMEPLAY, onHUDEventHandler); _view.addEventListener(HUDEvent.SELECT_LEVEL, onHUDEventHandler); _view.addEventListener(HUDEvent.SHOW_WINNING_SCREEN, onHUDEventHandler); _view.addEventListener(HUDEvent.SHOW_LOSING_SCREEN, onHUDEventHandler); _view.addEventListener(HUDEvent.OUT_OF_LIVES, onHUDEventHandler); _view.addEventListener(HUDEvent.BUMP_METER_FILLED, onHUDEventHandler); _view.addEventListener(HUDEvent.BUMP_METER_COMPLETE, onHUDEventHandler); _view.addEventListener(HUDEvent.KNOCKOUTLEVEL_TIMEUP, onHUDEventHandler); _view.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); _view.addEventListener(MouseEvent.MOUSE_UP, onMouseClickHandler); _model.start(); mTimeCount = new TimeCount(getTimer()); mLastTime = getTimer(); } private function onMouseClickHandler(_arg1:MouseEvent):void{ _model.handleClick(); } public function onHitRefHandler(_arg1:EntityEvent):void{ _model.hitRef(); } private function onStartTimeoutEventHandler(_arg1:Event):void{ } public function onDeactivateHandler():void{ _model.endFlashing(); } public function get time():Number{ return ((getTimer() - mTimeOffset)); } private function onBeginDetonationHandler(_arg1:Event):void{ } public function dispose():void{ _model.removeEventListener(EntityEvent.ADDED, onModelChildAddedHandler); _model.removeEventListener(EntityEvent.REMOVED, onModelChildRemovedHandler); _model.removeEventListener(GameModel.RESET_EVENT, onResetHandler); _model.removeEventListener(GameModel.LEVEL_END_EVENT, onLevelEndHandler); _model.removeEventListener(GameModel.HIT_REFEREE, onHitRefHandler); _model.removeEventListener(GameModel.START_TIMEOUT_EVENT, onStartTimeoutEventHandler); _model.removeEventListener(GameModel.UPDATE_TIMEOUT_EVENT, onUpdateTimeoutEventHandler); _view.removeEventListener(HUDEvent.RESET, onHUDEventHandler); _view.removeEventListener(HUDEvent.PAUSE, onHUDEventHandler); _view.removeEventListener(HUDEvent.UNPAUSE, onHUDEventHandler); _view.removeEventListener(HUDEvent.MAIN_MENU, onHUDEventHandler); _view.removeEventListener(HUDEvent.BEGIN_GAMEPLAY, onHUDEventHandler); _view.removeEventListener(HUDEvent.SELECT_LEVEL, onHUDEventHandler); _view.removeEventListener(HUDEvent.SHOW_WINNING_SCREEN, onHUDEventHandler); _view.removeEventListener(HUDEvent.SHOW_LOSING_SCREEN, onHUDEventHandler); _view.removeEventListener(HUDEvent.OUT_OF_LIVES, onHUDEventHandler); _view.removeEventListener(HUDEvent.BUMP_METER_FILLED, onHUDEventHandler); _view.removeEventListener(HUDEvent.BUMP_METER_COMPLETE, onHUDEventHandler); _view.removeEventListener(HUDEvent.KNOCKOUTLEVEL_TIMEUP, onHUDEventHandler); _view.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); _view.removeEventListener(MouseEvent.MOUSE_UP, onMouseClickHandler); _view.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); _model.dispose(); _view.dispose(); _view = null; _model = null; Managers.soundManager.stopAll(); } private function onModelChildRemovedHandler(_arg1:EntityEvent):void{ _view.removeEntityView(AbstractGameEntity(_arg1.target)); } public function get view():DisplayObject{ return (_view); } public function viewMouseClick(_arg1:String, _arg2:Number, _arg3:Number):void{ } private function onUpdateTimeoutEventHandler(_arg1:EntityEvent):void{ } public function set paddleX(_arg1:Number):void{ _model.paddleX = _arg1; } public function set paddleY(_arg1:Number):void{ _model.paddleY = _arg1; } public function paused():Boolean{ return (_model.paused); } private function onLevelEndHandler(_arg1:EntityEvent):void{ _view.hud.showLevelEndDialog(LevelResult(_arg1.data)); } private function onHUDEventHandler(_arg1:HUDEvent):void{ switch (_arg1.type){ case HUDEvent.REPLAY_LEVEL: break; case HUDEvent.EDIT_LEVEL: dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_EDITOR)); break; case HUDEvent.RESET: _model.resetEffect(); trace("reset"); break; case HUDEvent.DETONATE: _model.requestDetonate(); break; case HUDEvent.PAUSE: _model.pause(); break; case HUDEvent.UNPAUSE: _model.unpause(); break; case HUDEvent.MAIN_MENU: _model.state = GameModel.QUITTING_STATE; dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); break; case HUDEvent.SELECT_LEVEL: dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_LEVEL_SELECTION)); break; case HUDEvent.SHOW_WINNING_SCREEN: dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_WINNING_SCREEN)); break; case HUDEvent.SHOW_LOSING_SCREEN: dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_LOSING_SCREEN)); break; case HUDEvent.NEXT_LEVEL: dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.REPLAY_LEVEL)); break; case HUDEvent.BEGIN_GAMEPLAY: _model.beginGamePlay(); break; case HUDEvent.OUT_OF_LIVES: _model.state = GameModel.LOSING_STATE; break; case HUDEvent.BUMP_METER_FILLED: _model.BumpMeterFilled(); break; case HUDEvent.BUMP_METER_COMPLETE: _model.BumpMeterComplete(); break; case HUDEvent.KNOCKOUTLEVEL_TIMEUP: _model.CompleteGame(); break; }; } private function onEnterFrameHandler(_arg1:Event):void{ var _local2:Number; var _local3:int; if (((_model.paused) || ((_model.state == GameModel.COUNTRY_INTRO_STATE)))){ _local2 = (getTimer() - mLastTime); mTimeOffset = (mTimeOffset + _local2); _model.update(getTimer()); } else { _local2 = (getTimer() - mLastTime); if (_local2 > FRAME_DROP_TOLERANCE){ mTimeOffset = (mTimeOffset + _local2); }; _local3 = _model.state; _model.update((getTimer() - mTimeOffset)); }; mLastTime = getTimer(); } public function onActivateHandler():void{ _model.beginFlashing(); } private function onResetHandler(_arg1:Event):void{ _view.reset(); } private function onSpawnPowerUpEventHandler(_arg1:EntityEvent):void{ trace("event captured"); _model.addPowerUp(PowerUp(_arg1.data)); } private function onModelChildAddedHandler(_arg1:EntityEvent):void{ _view.createEntityView(AbstractGameEntity(_arg1.target)); } } }//package wbo.game
Section 472
//GameModel (wbo.game.GameModel) package wbo.game { import com.bigwigmedia.stateMachine.*; import com.bigwigmedia.mvc.events.*; import flash.display.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.sound.*; import wbo.managers.*; import wbo.common.*; import com.bigwigmedia.mvc.*; import flash.geom.*; import wbo.game.entities.*; import wbo.game.ui.*; import Box2D.Collision.*; import Box2D.Dynamics.*; import wbo.game.gameobjects.*; import wbo.game.views.*; import wbo.editor.*; import com.bigwigmedia.geom.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import assets.*; import wbo.constants.*; public class GameModel extends EntityContainer { private const EFFECT_GOAL:int = 1; private const BALL_SPEED_UP_DELAY:int = 5000; private const BRICK_COMBO_DURATION:int = 12000; private const COUNTRY_STATE_HALTED:int = 1; private const BRICK_COMBO_LIMIT:int = 3; private const COUNTRY_MOVE_LIFETIME:int = 1000; private const COUNTRY_STATE_TO_CENTER:int = 0; private const COUNTRY_STATE_EXIT:int = 2; private const EFFECT_OUCH:int = 0; private const COUNTRY_PAUSE_LIFETIME:int = 1000; private var mDefenders:Array; private var mBall:Array; private var mDefenderCountry:Label; private var mLoseTime:Number; private var mLastTime:int; private var mDepthSort:DepthSort; private var mVersusLabel:Label; private var mSpeedUp:Number; private var MAX_REDS:int;// = 10 private var mCountryStartTime:Number; private var mGoal:Rectangle; private var mState:int; private var mWorld:b2World; private var mAcquiredPowerUp:Array; private var mPrevState:int; private var mGoalKeeper:GoalKeeper; private var mPaddle:Paddle; private var mKnockoutLevel:Boolean; private var mTotalTime:int; private var _paused:Boolean;// = false private var _stateMachine:HSM; private var mUserTeam:int; private var MAX_YELLOWS:int;// = 10 private var mRedFlash:Sprite; private var mBrickComboStartTime:Number; private var mComboCount:Number; private var mPenaltyBall:Array; private var mFlashing:Boolean; private var mPowerUps:Array; private var mAwards:Array; private var _view:GameView; private var mScaredDeaths:Array; private var _timeStep:Number; private var mUserCountry:Label; private var mCountryState:int; private var mSoundManager:ISoundManager; private var mBricksDestroyed:Array; private var mGoalAssets:Sprite; private var _levelInfo:LevelInfo; private var mBallData:Array; private var mMovingText:Array; private var mDefenderTeam:int; private var mGrassCover:Sprite; private var mFlashTime:Number; private var mReferee:Referee; private var mGameContactListener:CustomContactListener; public static const BODY_KIND_TOP_WALL:int = 3; public static const GAMEPLAY_LEVEL_COMPLETE:int = 4; public static const UPDATE_TIMEOUT_EVENT:String = "UPDATE_TIMEOUT_EVENT"; public static const QUITTING_STATE:int = 5; public static const LOSING_STATE:int = 6; public static const SIGNAL_ALL_DETONATED:String = "SIGNAL_ALL_DETONATED"; public static const SOUND_IMPULSE_THRESHOLD:Number = 2; public static const MESSAGE_BUMP_CHARACTER:String = "MESSAGE_BUMP_CHARACTER"; public static const BODY_KIND_RIGHT_WALL:int = 5; public static const WORLD_SCALE:Number = 30; public static const BLAST_POINTS_CHANGE_EVENT:String = "BLAST_POINTS_CHANGE_EVENT"; public static const WORLD_ITERATIONS:int = 10; public static const MESSAGE_REMOVE_ENTITY:String = "MESSAGE_REMOVE_ENTITY"; public static const HIT_REFEREE:String = "HIT_REFEREE"; public static const MIN_VELOCITY_TOLERANCE:Number = 1; public static const BEGIN_DETONATION_EVENT:String = "BEGIN_DETONATION_EVENT"; public static const START_TIMEOUT_EVENT:String = "START_TIMEOUT_EVENT"; public static const GAMEPLAY_BRICK_STATE:int = 1; public static const BODY_KIND_PENALTY:int = 8; public static const MAX_TIME_STEP:Number = 0.05; public static const SOUND_IMPULSE_MULTIPLIER:Number = 0.1; public static const GAME_PAUSED_STATE:int = 8; public static const BODY_KIND_DEFENDER:int = 2; public static const BODY_KIND_REFEREE:int = 6; public static const BODY_KIND_LEFT_WALL:int = 4; public static const BODY_KIND_PADDLE:int = 0; public static const BRICK_DESTROYED:String = "BRICK_DESTROYED"; public static const GAMEPLAY_KEEPER_STATE:int = 2; public static const SIGNAL_RESET:String = "SIGNAL_RESET"; public static const LEVEL_END_EVENT:String = "LEVEL_END_EVENT"; public static const COUNTDOWN_STATE:int = 0; public static const BODY_KIND_KEEPER:int = 7; public static const RESET_EVENT:String = "RESET_EVENT"; public static const CHECK_VELOCITY_RATE:int = 25; public static const BODY_KIND_BALL:int = 1; public static const GOAL_STATE:int = 3; public static const COUNTRY_INTRO_STATE:int = 7; public static const MESSAGE_DESTROY_BLOCK:String = "MESSAGE_DESTROY_BLOCK"; public static const SIGNAL_DETONATION:String = "SIGNAL_DETONATION"; public static const SIGNAL_START_TIMEOUT:String = "SIGNAL_START_TIMEOUT"; public function GameModel(_arg1:LevelInfo, _arg2:GameView, _arg3:int, _arg4:int){ _levelInfo = _arg1; var _local5:int = Managers.levelProgressService.currentLevel; if ((_local5 % 7) == 0){ mKnockoutLevel = true; }; if (!_levelInfo){ _levelInfo = Managers.levelProgressService.getLevelInfoList()[1]; }; _view = _arg2; mUserTeam = _arg3; mDefenderTeam = _arg4; _stateMachine = new HSM(); var _local6:AbstractState = _stateMachine.addState(new InitialState()); var _local7:AbstractState = _stateMachine.addState(new SimpleState(enterBuildLevel)); var _local8:CompositeState = CompositeState(_stateMachine.addState(new CompositeState())); var _local9:AbstractState = _local8.addState(new InitialState()); var _local10:AbstractState = _local8.addState(new SimpleState(enterLevelEnd)); _local6.addTransition(_local7); _local8.addTransition(_local7, new SignalTrigger(SIGNAL_RESET), resetEffect); SetState(COUNTRY_INTRO_STATE); _paused = false; mLoseTime = -1; mGameContactListener = new CustomContactListener(onContactAddInGame, null, null, null); var _local11:b2AABB = new b2AABB(); _local11.lowerBound.Set((-600 / WORLD_SCALE), (-600 / WORLD_SCALE)); _local11.upperBound.Set(((600 + 640) / WORLD_SCALE), (520 / WORLD_SCALE)); var _local12:b2Vec2 = new b2Vec2(0, 0); mWorld = new b2World(_local11, _local12, false); mWorld.SetContactListener(mGameContactListener); mWorld.onBodyWakeUpCallback = GameWakeUpCallback; CreateWorldBoundaries(); mMovingText = new Array(); mPenaltyBall = new Array(); mBrickComboStartTime = 0; mComboCount = 1; mTotalTime = 0; mLastTime = -1; mAcquiredPowerUp = new Array(); mBricksDestroyed = new Array(); mCountryState = COUNTRY_STATE_TO_CENTER; mUserCountry = new Label(); mUserCountry.text = Teams.GetTeamName(mUserTeam); mUserCountry.x = -200; mUserCountry.y = 75; _view.addGamePlayChild(mUserCountry); mUserCountry.styleName = "countryIntroText"; mDefenderCountry = new Label(); mDefenderCountry.text = Teams.GetTeamName(mDefenderTeam); mDefenderCountry.x = 800; mDefenderCountry.y = 250; _view.addGamePlayChild(mDefenderCountry); mDefenderCountry.styleName = "countryIntroText"; mVersusLabel = new Label(); mVersusLabel.text = "vs."; _view.addGamePlayChild(mVersusLabel); mVersusLabel.alpha = 0; mVersusLabel.styleName = "countryIntroText"; mCountryStartTime = -1; mSoundManager = Managers.soundManager; mAwards = new Array(); _local11 = null; mScaredDeaths = new Array(); mSpeedUp = -1; } private function AddNewBall():void{ var _local1:int; var _local2:int; var _local3:FootballView; var _local4:int; var _local5:int; _local1 = 0; while (_local1 < mBall.length) { if (mBall[_local1]){ _local3 = mBall[_local1]; break; }; _local1++; }; _local1 = 0; while (_local1 < mBall.length) { if (!mBall[_local1]){ _local2 = _local1; break; }; _local1++; }; if (_local2 >= 0){ _local4 = _local3.sprite.x; _local5 = _local3.sprite.y; mBall[_local2] = new FootballView(_local4, _local5, mBallData[0], mWorld, null); mBall[_local2].SetState(FootballView.BALL_MOVING); mBall[_local2].SetDefenders(mDefenders); mBall[_local2].SetReferee(mReferee); _view.addGamePlayChild(mBall[_local2]); mBall[_local2].SetPaddle(mPaddle); mBall[_local2].SetTime(_view.controller.time); if (_local3){ mBall[_local2].CopyAttributes(_local3); }; }; } public function hitRef():void{ var _local1:Defender; var _local2:int; Managers.levelProgressService.AddRefereeHit(); if ((((Managers.levelProgressService.refereeHitCount > 10)) && (!(Managers.levelProgressService.awards[AwardTypes.UNSPORTSMAN_AWARD])))){ Managers.levelProgressService.UnlockAward(AwardTypes.UNSPORTSMAN_AWARD); _local2 = (mAwards.push(new MovingAward(AwardTypes.UNSPORTSMAN_AWARD)) - 1); _view.addGamePlayChild(mAwards[_local2]); }; for each (_local1 in mDefenders) { if (((!((_local1.state == Defender.DEFENDER_BEAT))) && (!((_local1.state == Defender.DEFENDER_HALTED))))){ _local1.SetState(Defender.DEFENDER_HALTED); }; }; } public function UpdateCountDownState(_arg1:Number):void{ _view.hud.update(_arg1); } public function Lerp1D(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{ var _local7:Number; var _local6:Number = (_arg4 - _arg5); if (_local6 > _arg3){ _local7 = _arg2; return (_local7); }; var _local8:Number = (_arg2 - _arg1); var _local9:Number = (_arg1 + Number((_local8 * Number((_local6 / _arg3))))); _local7 = _local9; return (_local7); } public function pause():void{ _paused = true; SetState(GAME_PAUSED_STATE); } public function beginGamePlay():void{ SetState(GAMEPLAY_BRICK_STATE); _paused = false; mBall[0].SetTime(_view.controller.time); } public function requestReset():void{ _stateMachine.sendSignal(SIGNAL_RESET); } override public function dispose():void{ var _local1:int; var _local2:b2Body; var _local3:b2Joint; _stateMachine.dispose(); _stateMachine = null; _local1 = 0; while (_local1 < mScaredDeaths.length) { mScaredDeaths[_local1] = null; _local1++; }; mScaredDeaths = null; if (mPowerUps){ _local1 = 0; while (_local1 < mPowerUps.length) { if (mPowerUps[_local1]){ mPowerUps[_local1] = null; }; _local1++; }; }; mPowerUps = null; _local1 = 0; while (_local1 < mDefenders.length) { if (mDefenders[_local1]){ if (_view.gameplayLayer.contains(mDefenders[_local1])){ _view.gameplayLayer.removeChild(mDefenders[_local1]); }; mDepthSort.removeObject(mDefenders[_local1]); mDefenders[_local1].dispose(); mDefenders[_local1] = null; }; _local1++; }; mDefenders = null; _local1 = 0; while (_local1 < mBall.length) { if (mBall[_local1]){ if (_view.gameplayLayer.contains(mBall[_local1])){ _view.gameplayLayer.removeChild(mBall[_local1]); }; mBall[_local1].dispose(); mBall[_local1] = null; }; _local1++; }; mBall = null; _local1 = 0; while (_local1 < mPenaltyBall.length) { if (mPenaltyBall[_local1]){ if (_view.gameplayLayer.contains(mPenaltyBall[_local1])){ _view.gameplayLayer.removeChild(mPenaltyBall[_local1]); }; mPenaltyBall[_local1].dispose(); mPenaltyBall[_local1] = null; }; _local1++; }; mPenaltyBall = null; if (_view.gameplayLayer.contains(mPaddle.sprite)){ _view.gameplayLayer.removeChild(mPaddle.sprite); }; mPaddle.dispose(); if (mReferee){ if (_view.gameplayLayer.contains(mReferee)){ _view.gameplayLayer.removeChild(mReferee); }; mReferee.dispose(); }; if (mGoalKeeper){ if (_view.gameplayLayer.contains(mGoalKeeper)){ _view.gameplayLayer.removeChild(mGoalKeeper); }; mGoalKeeper.dispose(); }; mBall = null; mPenaltyBall = null; mPaddle = null; mReferee = null; mGoalKeeper = null; for each (_local2 in mWorld.GetBodyList()) { if (!_local2){ break; }; mWorld.DestroyBody(_local2); }; for each (_local3 in mWorld.GetJointList()) { if (!_local3){ break; }; mWorld.DestroyJoint(_local3); }; mWorld.SetContactListener(null); mWorld.onBodyWakeUpCallback = null; mWorld = null; mGameContactListener.dispose(); mGameContactListener = null; mDepthSort.dispose(); mDepthSort = null; mBallData = null; if (mGoalAssets){ _local1 = 0; while (_local1 < mGoalAssets.numChildren) { mGoalAssets.removeChildAt(_local1); _local1++; }; _view.removeBGChild(mGoalAssets); mGoalAssets = null; }; mAcquiredPowerUp = null; mBricksDestroyed = null; mRedFlash = null; mGrassCover = null; if (_view.gameplayLayer.contains(mDefenderCountry)){ _view.gameplayLayer.removeChild(mDefenderCountry); }; if (_view.gameplayLayer.contains(mUserCountry)){ _view.gameplayLayer.removeChild(mUserCountry); }; if (_view.gameplayLayer.contains(mVersusLabel)){ _view.gameplayLayer.removeChild(mVersusLabel); }; _view = null; mBallData = null; _levelInfo = null; super.dispose(); } public function set state(_arg1:int):void{ SetState(_arg1); } public function BumpMeterFilled():void{ var _local1:Defender; mSoundManager.playSingle("rage_sound"); for each (_local1 in mDefenders) { if (_local1.state != Defender.DEFENDER_BEAT){ _local1.SetScareStatus(true); }; }; } private function UpdateFlashing(_arg1:Number):void{ if (mFlashTime == -1){ mFlashTime = _arg1; return; }; var _local2:Number = Lerp1D(0.5, 0, 1000, _arg1, mFlashTime); mRedFlash.alpha = _local2; } public function get background():String{ return ("BACK_RANDOM"); } public function unpause():void{ _paused = false; SetState(mPrevState); } private function UpdateKeeperState(_arg1:Number):void{ var _local2:FootballView; var _local3:MovingText; var _local4:FootballView; var _local5:b2Vec2; var _local6:int; var _local7:int; var _local8:int; mWorld.Step(0.0333, WORLD_ITERATIONS); mPaddle.Update(_arg1); for each (_local2 in mBall) { if (!_local2){ } else { _local5 = new b2Vec2(_local2.sprite.x, _local2.sprite.y); _local2.update(_arg1); _local6 = mBall.indexOf(_local2); if (_local2.sprite.y > 500){ trace("taking lives out"); _view.hud.updateLivesLabel(-1); mPaddle.Reset(); _local2.Reset(); mSoundManager.play("lifelost"); } else { if (_local2.GetBallRect().intersects(mGoal)){ SpawnEffect(EFFECT_GOAL, _local2.sprite.x, 60); mSoundManager.stopAll(); mSoundManager.playSingle("goal"); _view.hud.updatePlayerScore(1); if (_local6 == 0){ _local2.Reset(); } else { trace(((("keeper 2 curball pos : " + _local2.sprite.x) + " , ") + _local2.sprite.y)); trace("removed ball"); delete mBall[_local6]; }; CompleteGame(); }; }; _local5 = null; }; }; UpdatePowerUps(_arg1); mGoalKeeper.update(_arg1, mBall[0].sprite.x, mBall[0]); _view.hud.update(_arg1); for each (_local3 in mMovingText) { if (_local3.state == MovingText.STATE_COMPLETE){ _local7 = mMovingText.indexOf(_local3); _view.removeGamePlayChild(mMovingText[_local7].sprite); mMovingText[_local7].dispose(); delete mMovingText[_local7]; } else { _local3.Update(_arg1); }; }; for each (_local4 in mPenaltyBall) { _local4.update(_arg1); if (_local4.state == FootballView.BALL_POPPED){ _view.removeGamePlayChild(_local4); _local4.dispose(); _local8 = mPenaltyBall.indexOf(_local4); delete mPenaltyBall[_local8]; }; }; if (mLastTime == -1){ mLastTime = _arg1; } else { mTotalTime = (mTotalTime + (_arg1 - mLastTime)); mLastTime = _arg1; }; UpdateAwards(_arg1); if (mFlashing){ UpdateFlashing(_arg1); }; } public function BumpMeterComplete():void{ var _local1:Defender; for each (_local1 in mDefenders) { if (_local1.state != Defender.DEFENDER_BEAT){ _local1.SetScareStatus(false); }; }; } public function handleClick():void{ var _local1:int; var _local2:FootballView; var _local3:Point; var _local4:FootballView; var _local5:int; if (((!((mState == GAMEPLAY_BRICK_STATE))) && (!((mState == GAMEPLAY_KEEPER_STATE))))){ return; }; for each (_local2 in mBall) { if (((_local2) && ((_local2.state == FootballView.BALL_ATTACHED)))){ _local2.SetTime(_view.controller.time); _local2.SetState(FootballView.BALL_MOVING); }; }; if (mPaddle.penaltykicks){ _local1 = 0; while (_local1 < 2) { _local3 = mPaddle.gunPos; _local4 = new FootballView((mPaddle.sprite.x + _local3.x), (mPaddle.sprite.y + _local3.y), mBallData[0], mWorld, mPaddle); _local5 = (mPenaltyBall.push(_local4) - 1); _local4.SetTime(_view.controller.time); _local4.SetPaddle(mPaddle); _local4.SetType(FootballView.PENALTY_BALL); _local4.SetDefenders(mDefenders); _view.addGamePlayChild(_local4); _local3 = null; _local1++; }; }; } private function AddMedalMovingText():void{ var _local1:Vector2D = new Vector2D(mPaddle.sprite.x, mPaddle.sprite.y); var _local2:Vector2D = new Vector2D(mPaddle.sprite.x, (mPaddle.sprite.y - 50)); var _local3:int = Managers.configManager.getPowerUpValue(PowerUp.MEDAL_POWERUP); var _local4:MovingText = new MovingText(_local1, _local2, 1000, ("+" + _local3), _view.controller.time); mMovingText.push(_local4); _view.addGamePlayChild(_local4.sprite); _local1 = null; _local2 = null; _local4 = null; } public function AddScaredDeath(_arg1:Defender):void{ if (mScaredDeaths.indexOf(_arg1) == -1){ mScaredDeaths.push(_arg1); }; } private function InitBall():void{ mBallData = _levelInfo.getBallData(); mBall = new Array(5); mBall[0] = new FootballView(mPaddle.sprite.x, (mPaddle.sprite.y - (mPaddle.height / 2)), mBallData[0], mWorld, mPaddle); mBall[0].SetPaddle(mPaddle); _view.addGamePlayChild(mBall[0]); } private function InitKeeper():void{ var _local1:Array = _levelInfo.getGoalKeeperData(); mGoalKeeper = new GoalKeeper(320, 40, _local1[0], mWorld); _view.addGamePlayChild(mGoalKeeper.sprite); mGoalKeeper.sprite.visible = false; _local1 = null; } public function get paused():Boolean{ return (_paused); } private function RemoveUnnecesssaryPowerups():void{ var _local1:PowerUp; var _local2:int; for each (_local1 in mPowerUps) { if (((_local1) && ((((_local1.id == PowerUp.GOLDENCUP_POWERUP)) || ((_local1.id == PowerUp.MEDAL_POWERUP)))))){ } else { _view.removeGamePlayChild(_local1.sprite); _local2 = mPowerUps.indexOf(_local1); delete mPowerUps[_local2]; }; }; } private function InitGoal():void{ mGoal = new Rectangle(228, -20, 177, 30); var _local1:Sprite = new goal_frame(); _local1.x = -5; _local1.y = -20; var _local2:Sprite = new goal_perimeter(); _local2.y = 90; mGoalAssets = new Sprite(); mGoalAssets.addChild(_local1); mGoalAssets.addChild(_local2); _view.addBGChild(mGoalAssets); mGoalAssets.visible = false; mGoalAssets.x = 320; mGoalAssets.y = 15; } public function set paddleY(_arg1:Number):void{ if (((!((mState == GAMEPLAY_BRICK_STATE))) && (!((mState == GAMEPLAY_KEEPER_STATE))))){ return; }; mPaddle.SetPosY(_arg1); } private function enterTimeout(_arg1:AbstractEvent):void{ dispatchEvent(new EntityEvent(START_TIMEOUT_EVENT)); } private function SetState(_arg1:int):void{ mPrevState = mState; mState = _arg1; } public function start():void{ _stateMachine.start(); } public function GameWakeUpCallback(_arg1:b2Body):void{ } public function onContactAddInGame(_arg1:b2ContactPoint):void{ var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Body; var _local7:b2Body; var _local8:b2Body; var _local9:b2Body; var _local10:b2Body; var _local11:b2Body; var _local12:b2Body; var _local13:FootballView; var _local2:Array = [_arg1.shape1.m_body, _arg1.shape2.m_body]; for each (_local12 in _local2) { switch (_local12.bodyKindID){ case BODY_KIND_BALL: _local3 = _local12; break; case BODY_KIND_PADDLE: _local4 = _local12; break; case BODY_KIND_DEFENDER: _local5 = _local12; break; case BODY_KIND_TOP_WALL: _local6 = _local12; break; case BODY_KIND_RIGHT_WALL: _local7 = _local12; break; case BODY_KIND_LEFT_WALL: _local8 = _local12; break; case BODY_KIND_KEEPER: _local9 = _local12; break; case BODY_KIND_REFEREE: _local10 = _local12; break; case BODY_KIND_PENALTY: _local11 = _local12; break; }; }; if (_local3){ for each (_local13 in mBall) { if (((_local13) && ((_local13.body == _local3)))){ break; }; }; if (((!(_local13)) || ((_local13.state == FootballView.BALL_ATTACHED)))){ return; }; if (_local4){ _arg1.normal.x = int(_arg1.normal.x); _arg1.normal.y = int(_arg1.normal.y); _local13.PaddleCollision(_arg1.normal, _local4); mSoundManager.playSingle("paddle_hit"); } else { if (_local5){ _local13.DefenderCollision(_arg1.normal, _local5); } else { if (_local6){ _local13.TopWallCollision(_local6, _arg1.normal); mSoundManager.playSingle("football_bounce_2"); } else { if (_local8){ _local13.LeftWallCollision(_local8, _arg1.normal); mSoundManager.playSingle("football_bounce_2"); } else { if (_local7){ _local13.RightWallCollision(_local7, _arg1.normal); mSoundManager.playSingle("football_bounce_2"); } else { if (_local10){ _local13.RefereeCollision(_arg1.normal, _local10); mSoundManager.playSingle("whistle11"); SpawnEffect(EFFECT_OUCH, mReferee.sprite.x, mReferee.sprite.y); } else { if (_local9){ _local13.KeeperCollision(_arg1.normal, _local9); mSoundManager.playSingle("football_kick_1"); }; }; }; }; }; }; }; } else { if (_local11){ for each (_local13 in mPenaltyBall) { if (_local13.body == _local11){ break; }; }; if (!_local13){ return; }; if (_local5){ _local13.DefenderCollision(_arg1.normal, _local5); }; }; }; _local2 = null; } private function AddKeeperBall():void{ var _local1:int; var _local3:int; var _local4:int; var _local2:int; if (_local2 >= 0){ _local3 = mPaddle.sprite.x; _local4 = mPaddle.sprite.y; mBall[_local2] = new FootballView(_local3, _local4, mBallData[0], mWorld, mPaddle); mBall[_local2].SetState(FootballView.BALL_ATTACHED); mBall[_local2].SetDefenders(mDefenders); mBall[_local2].SetReferee(mReferee); _view.addGamePlayChild(mBall[_local2]); mBall[_local2].SetTime(_view.controller.time); mBall[_local2].goalKeeper = mGoalKeeper; mBall[_local2].goalRect = mGoal; }; } public function set paddleX(_arg1:Number):void{ if (((!((mState == GAMEPLAY_BRICK_STATE))) && (!((mState == GAMEPLAY_KEEPER_STATE))))){ return; }; mPaddle.SetPosX(_arg1); } public function UpdateLosingState(_arg1:Number):void{ if (mLoseTime == -1){ mLoseTime = _arg1; return; }; if ((_arg1 - mLoseTime) > 500){ _view.hud.notifyLoseState(); SetState(QUITTING_STATE); }; } public function notifyBrickDestroy(_arg1:Defender):void{ var _local3:Number; var _local2:Number = _view.controller.time; mBricksDestroyed.push(_arg1.type); AddBrickDestroyMovingText(_arg1); if (!mBrickComboStartTime){ mBrickComboStartTime = _local2; return; }; if ((_local2 - mBrickComboStartTime) < BRICK_COMBO_DURATION){ mComboCount++; if (mComboCount >= BRICK_COMBO_LIMIT){ _local3 = (1 - ((_local2 - mBrickComboStartTime) / BRICK_COMBO_DURATION)); _view.hud.updateBumpMeter((_local3 * 50)); mComboCount = 1; mBrickComboStartTime = 0; }; } else { mBrickComboStartTime = _local2; mComboCount = 1; }; } private function createGameEntity(_arg1:GameItemDefinition):AbstractGameEntity{ var _local2:AbstractGameEntity; switch (_arg1.superKind){ case GameItemKind.PADDLE: _local2 = new AbstractGameEntity(_arg1); break; case GameItemKind.BALL: break; default: throw (new Error((("Item kind \"" + _arg1.kind) + "\" is not supported."))); }; addChild(_local2); return (_local2); } private function UpdateLevelComplete(_arg1:Number):void{ UpdateAwards(_arg1); } public function get depthSort():DepthSort{ return (mDepthSort); } private function UpdateBrickState(_arg1:Number):void{ var _local2:int; var _local3:FootballView; var _local4:int; var _local5:Defender; var _local6:MovingText; var _local7:FootballView; var _local8:int; var _local9:int; var _local10:int; var _local11:Defender; var _local12:int; var _local13:int; mWorld.Step(0.0333, WORLD_ITERATIONS); mPaddle.Update(_arg1); for each (_local3 in mBall) { if (!_local3){ } else { _local3.update(_arg1); if (mKnockoutLevel){ if (mSpeedUp == -1){ mSpeedUp = _arg1; } else { if ((_arg1 - mSpeedUp) > BALL_SPEED_UP_DELAY){ _local3.knockOutSpeedUpdate(); mSpeedUp = _arg1; }; }; }; if (_local3.sprite.y > 500){ if (mKnockoutLevel){ CompleteGame(); return; }; _local8 = 0; _local2 = 0; while (_local2 < mBall.length) { if (mBall[_local2]){ _local8++; }; _local2++; }; if (_local8 == 1){ mPaddle.Reset(); _local3.Reset(); _view.hud.updateLivesLabel(-1); mSoundManager.play("lifelost"); } else { _local9 = mBall.indexOf(_local3); _view.removeGamePlayChild(mBall[_local9]); mBall[_local9].dispose(); delete mBall[_local9]; mBall[_local9] = null; }; }; }; }; _local4 = 0; for each (_local5 in mDefenders) { _local5.update(_arg1); if (_local5.state == Defender.DEFENDER_BEAT){ _local4++; }; }; if (_local4 == mDefenders.length){ if (mKnockoutLevel){ CompleteGame(); } else { _view.removeBGChild(mGrassCover); mGoalAssets.visible = true; SetState(GAMEPLAY_KEEPER_STATE); mPaddle.DisableStickyBall(); mPaddle.DisablePenaltyKicks(); mGoalKeeper.sprite.visible = true; mGoalKeeper.InitBody(); mReferee.SetState(Referee.REFEREE_DISABLED); mReferee.DestroyBody(); RemoveUnnecesssaryPowerups(); _local10 = 0; _local2 = 0; while (_local2 < mBall.length) { if (mBall[_local2]){ _view.removeGamePlayChild(mBall[_local2]); mBall[_local2].dispose(); delete mBall[_local2]; mBall[_local2] = null; }; _local2++; }; for each (_local11 in mDefenders) { if (_local11){ if (_local11.body){ mWorld.DestroyBody(_local11.body); }; }; }; AddKeeperBall(); }; }; UpdatePowerUps(_arg1); _view.hud.update(_arg1); if (mReferee){ mReferee.update(_arg1); if (mReferee.state == Referee.REFEREE_HIT){ hitRef(); mReferee.SetState(Referee.REFEREE_OFF_PITCH); }; }; for each (_local6 in mMovingText) { if (_local6.state == MovingText.STATE_COMPLETE){ _local12 = mMovingText.indexOf(_local6); _view.removeGamePlayChild(mMovingText[_local12].sprite); delete mMovingText[_local12]; } else { _local6.Update(_arg1); }; }; for each (_local7 in mPenaltyBall) { _local7.update(_arg1); if (_local7.state == FootballView.BALL_POPPED){ _view.removeGamePlayChild(_local7); _local7.dispose(); _local13 = mPenaltyBall.indexOf(_local7); delete mPenaltyBall[_local13]; }; }; if (mLastTime == -1){ mLastTime = _arg1; } else { mTotalTime = (mTotalTime + (_arg1 - mLastTime)); mLastTime = _arg1; }; UpdateAwards(_arg1); if (mFlashing){ UpdateFlashing(_arg1); }; } private function UpdateGoal(_arg1:Number):void{ } public function addPowerUp(_arg1:PowerUp):void{ if (!mPowerUps){ mPowerUps = new Array(); }; mPowerUps.push(_arg1); _view.addGamePlayChild(_arg1.sprite); } private function InitDefenders():void{ var _local1:int; var _local3:int; var _local4:int; var _local5:int; var _local8:int; var _local9:String; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local15:Array; mDefenders = new Array(); var _local2:Array = _levelInfo.getItemsDefinitions(); var _local6:Point = new Point(0, 0); var _local7:Point = new Point(0, 0); var _local14:Number = _view.controller.time; if (!mKnockoutLevel){ _local12 = 0; while (_local12 < _local2.length) { _local15 = String(_local2[_local12]).split("\n"); _local1 = 0; while (_local1 < _local15.length) { switch ((_local1 - 1)){ case 0: _local9 = _local15[_local1]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local3 = int(_local9.substring(_local10, _local11)); break; case 1: _local9 = _local15[_local1]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local4 = int(_local9.substring(_local10, _local11)); break; case 2: _local9 = _local15[_local1]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local5 = int(_local9.substring(_local10, _local11)); break; case 3: _local9 = _local15[_local1]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local6.x = int(_local9.substring(_local10, _local11)); break; case 4: _local9 = _local15[_local1]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local6.y = int(_local9.substring(_local10, _local11)); break; case 5: _local9 = _local15[_local1]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local7.x = int(_local9.substring(_local10, _local11)); break; case 6: _local9 = _local15[_local1]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local7.y = int(_local9.substring(_local10, _local11)); break; case 7: _local9 = _local15[_local1]; _local10 = (_local9.indexOf(">") + 1); _local11 = _local9.indexOf("<", _local10); _local8 = int(_local9.substring(_local10, _local11)); _local13 = mDefenders.push(new Defender(_local3, _local4, _local5, _local6, _local7, _local8, this, mDefenderTeam, mWorld, _local14)); _view.addGamePlayChild(mDefenders[(_local13 - 1)]); if (!mDepthSort){ mDepthSort = new DepthSort(_view.gameplayLayer); }; mDepthSort.addObject(mDefenders[(_local13 - 1)]); mDefenders[(_local13 - 1)].SetSortingFunction(mDepthSort.updateObject); break; }; _local1++; }; _local12++; }; } else { _local1 = 0; while (_local1 < 70) { _local4 = int((100 + ((_local1 % 10) * 50))); _local5 = (40 + (int((_local1 / 10)) * 45)); _local6 = new Point(_local4, _local5); _local7 = new Point(_local4, _local5); _local8 = -1; _local13 = mDefenders.push(new Defender(_local3, _local4, _local5, _local6, _local7, _local8, this, mDefenderTeam, mWorld, _local14)); _view.addGamePlayChild(mDefenders[(_local13 - 1)]); if (!mDepthSort){ mDepthSort = new DepthSort(_view.gameplayLayer); }; mDepthSort.addObject(mDefenders[(_local13 - 1)]); mDefenders[(_local13 - 1)].SetSortingFunction(mDepthSort.updateObject); _local1++; }; }; mBall[0].SetDefenders(mDefenders); _local6 = null; _local7 = null; } public function get state():int{ return (mState); } private function enterLevelEnd():void{ var _local1:LevelResult = new LevelResult((Managers.levelProgressService.currentLevel + ""), mTotalTime, mBricksDestroyed, mAcquiredPowerUp, _view.hud.livesLeft, mScaredDeaths); Managers.levelProgressService.completeLevel(_local1); Managers.levelProgressService.saveGame(); _local1 = null; } private function enterBuildLevel(_arg1:AbstractEvent):void{ var _local2:int; mGrassCover = new grass_cover(); mGrassCover.x = (mGrassCover.x + (mGrassCover.width / 2)); mGrassCover.y = 20; _view.addBGChild(mGrassCover); _timeStep = MAX_TIME_STEP; InitPaddle(); InitBall(); InitDefenders(); if (!mKnockoutLevel){ InitKeeper(); InitGoal(); InitReferee(); }; mSoundManager.play("gameambience", int.MAX_VALUE); } public function beginFlashing():void{ } private function CreateWorldBoundaries():void{ var _local1:b2BodyDef = new b2BodyDef(); _local1.position.x = (0 / GameModel.WORLD_SCALE); _local1.position.y = (-30 / GameModel.WORLD_SCALE); _local1.isBullet = true; var _local2:b2PolygonDef = new b2PolygonDef(); _local2.SetAsBox((640 / GameModel.WORLD_SCALE), (40 / GameModel.WORLD_SCALE)); _local2.density = 1; _local2.friction = 0.5; _local2.restitution = 0.5; _local2.isSensor = true; var _local3:b2Body = mWorld.CreateBody(_local1); _local3.bodyKindID = GameModel.BODY_KIND_TOP_WALL; _local3.CreateShape(_local2); _local3.SetMassFromShapes(); _local1 = null; _local1 = new b2BodyDef(); _local1.position.x = (-29 / GameModel.WORLD_SCALE); _local1.position.y = (0 / GameModel.WORLD_SCALE); _local1.isBullet = true; _local2 = null; _local2 = new b2PolygonDef(); _local2.SetAsBox((40 / GameModel.WORLD_SCALE), (480 / GameModel.WORLD_SCALE)); _local2.density = 1; _local2.friction = 0.5; _local2.restitution = 0.5; _local2.isSensor = true; _local3 = null; _local3 = mWorld.CreateBody(_local1); _local3.bodyKindID = GameModel.BODY_KIND_LEFT_WALL; _local3.CreateShape(_local2); _local3.SetMassFromShapes(); _local1 = null; _local1 = new b2BodyDef(); _local1.position.x = (670 / GameModel.WORLD_SCALE); _local1.position.y = (0 / GameModel.WORLD_SCALE); _local1.isBullet = true; _local2 = null; _local2 = new b2PolygonDef(); _local2.SetAsBox((40 / GameModel.WORLD_SCALE), (480 / GameModel.WORLD_SCALE)); _local2.density = 1; _local2.friction = 0.5; _local2.restitution = 0.5; _local2.isSensor = true; _local3 = null; _local3 = mWorld.CreateBody(_local1); _local3.bodyKindID = GameModel.BODY_KIND_RIGHT_WALL; _local3.CreateShape(_local2); _local3.SetMassFromShapes(); _local1 = null; _local2 = null; _local3 = null; } private function InitPaddle():void{ var _local1 = 3; mPaddle = new Paddle(320, 400, mUserTeam, mWorld); _view.addGamePlayChild(mPaddle.sprite); } public function resetEffect():void{ mBall[0].Reset(); dispatchEvent(new EntityEvent(RESET_EVENT)); } override public function update(_arg1:Number):void{ switch (mState){ case COUNTDOWN_STATE: UpdateCountDownState(_arg1); break; case GAMEPLAY_BRICK_STATE: UpdateBrickState(_arg1); break; case GAMEPLAY_KEEPER_STATE: UpdateKeeperState(_arg1); break; case GOAL_STATE: UpdateGoal(_arg1); break; case GAMEPLAY_LEVEL_COMPLETE: UpdateLevelComplete(_arg1); break; case LOSING_STATE: UpdateLosingState(_arg1); break; case COUNTRY_INTRO_STATE: UpdateCountryIntroState(_arg1); break; case GAME_PAUSED_STATE: break; }; } public function requestDetonate():void{ _stateMachine.sendSignal(SIGNAL_DETONATION); } public function UpdateCountryIntroState(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (mCountryStartTime == -1){ mCountryStartTime = _arg1; mVersusLabel.x = (320 - (mVersusLabel.width / 2)); mVersusLabel.y = ((((mDefenderCountry.y + (mDefenderCountry.height / 2)) + (mUserCountry.y + (mUserCountry.height / 2))) / 2) - (mVersusLabel.height / 2)); return; }; switch (mCountryState){ case COUNTRY_STATE_TO_CENTER: _local2 = Lerp1D(-200, (320 - (mUserCountry.width / 2)), COUNTRY_MOVE_LIFETIME, _arg1, mCountryStartTime); mUserCountry.x = _local2; _local2 = Lerp1D(800, (320 - (mDefenderCountry.width / 2)), COUNTRY_MOVE_LIFETIME, _arg1, mCountryStartTime); mDefenderCountry.x = _local2; if (_local2 == (320 - (mDefenderCountry.width / 2))){ mCountryState = COUNTRY_STATE_HALTED; mCountryStartTime = _arg1; }; break; case COUNTRY_STATE_HALTED: if ((_arg1 - mCountryStartTime) > (COUNTRY_PAUSE_LIFETIME * 1.5)){ mCountryState = COUNTRY_STATE_EXIT; mCountryStartTime = _arg1; } else { _local3 = Lerp1D(0, 1, COUNTRY_PAUSE_LIFETIME, _arg1, mCountryStartTime); mVersusLabel.alpha = _local3; }; break; case COUNTRY_STATE_EXIT: _local2 = Lerp1D((320 - (mUserCountry.width / 2)), 800, COUNTRY_MOVE_LIFETIME, _arg1, mCountryStartTime); mUserCountry.x = _local2; _local2 = Lerp1D((320 - (mDefenderCountry.width / 2)), -300, COUNTRY_MOVE_LIFETIME, _arg1, mCountryStartTime); mDefenderCountry.x = _local2; if (_local2 == -300){ SetState(GAMEPLAY_BRICK_STATE); mSoundManager.playSingle("whistle_start"); }; _local3 = Lerp1D(1, 0, COUNTRY_MOVE_LIFETIME, _arg1, mCountryStartTime); mVersusLabel.alpha = _local3; break; }; if (mFlashing){ UpdateFlashing(_arg1); }; } private function EnableDebugDraw():void{ var _local1:b2DebugDraw = new b2DebugDraw(); _local1.m_sprite = _view; _local1.m_drawScale = 30; _local1.m_alpha = 0.3; _local1.m_lineThickness = 1; _local1.SetFlags((b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit)); mWorld.SetDebugDraw(_local1); HideAll(); } private function AddBrickDestroyMovingText(_arg1:Defender):void{ var _local2:Vector2D = new Vector2D(_arg1.GetPos().x, _arg1.GetPos().y); var _local3:Vector2D = new Vector2D(_arg1.GetPos().x, (_arg1.GetPos().y - 50)); var _local4:int = _arg1.destroyPoints; var _local5:MovingText = new MovingText(_local2, _local3, 1000, ("+" + _local4), _view.controller.time, 12); mMovingText.push(_local5); _view.addGamePlayChild(_local5.sprite); _local2 = null; _local3 = null; _local5 = null; } private function InitReferee():void{ var _local1:Array = _levelInfo.getRefereeData(); mReferee = new Referee(_local1, mWorld); _view.addGamePlayChild(mReferee.sprite); mReferee.addDepthSort(mDepthSort); mBall[0].SetReferee(mReferee); _local1 = null; } private function SpawnEffect(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:Sprite; switch (_arg1){ case EFFECT_OUCH: _local4 = new ouch_effect(); break; case EFFECT_GOAL: _local4 = new goal_effect(); break; }; _local4.x = _arg2; _local4.y = _arg3; _view.addGamePlayChild(_local4); } public function cheat():void{ var _local1:Defender; for each (_local1 in mDefenders) { if (((_local1) && ((_local1.type == SelectableBrick.BRUISER_TYPE)))){ _local1.debugDestoryBody(); }; }; hitRef(); } private function onExplodeHandler(_arg1:EntityEvent):void{ var _local2:String = GameItemKind.getSuperKindFromKind(_arg1.target.kind); switch (_local2){ case GameItemKind.EXPLOSIVE: break; case GameItemKind.TOOL_ACID_BALLOON: break; case GameItemKind.TOOL_UFO: break; case GameItemKind.TOOL_AIR_STRIKE: break; case GameItemKind.TOOL_WRECKING_BALL: break; default: throw (new Error((("Superkind \"" + _local2) + "\" is not supported."))); }; } public function CompleteGame():void{ var _local2:Defender; var _local3:int; var _local1:int; for each (_local2 in mDefenders) { if (_local2.state == Defender.DEFENDER_BEAT){ _local1++; }; }; _view.hud.knockedOut = _local1; SetState(GAMEPLAY_LEVEL_COMPLETE); _view.hud.SetState(HUD.LEVELCOMPLETE_STATE); if (mGoalKeeper){ mGoalKeeper.sprite.visible = false; }; enterLevelEnd(); if (((((!(mKnockoutLevel)) && ((_view.hud.totalTime < (45 * 1000))))) && (!(Managers.levelProgressService.awards[AwardTypes.BLITZ_AWARD])))){ Managers.levelProgressService.UnlockAward(AwardTypes.BLITZ_AWARD); _local3 = (mAwards.push(new MovingAward(AwardTypes.BLITZ_AWARD)) - 1); _view.addGamePlayChild(mAwards[_local3]); }; } public function endFlashing():void{ } private function HideAll():void{ var _local1:int; var _local2:DisplayObject; var _local3:Sprite; var _local4:int; var _local5:DisplayObject; var _local6:Boolean; var _local7:Defender; _local1 = 0; while (_local1 < _view.numChildren) { _local2 = _view.getChildAt(_local1); if (_local2 == _view.debugGamePlay){ _local3 = _view.debugGamePlay; _local4 = 0; while (_local4 < _local3.numChildren) { _local5 = _local3.getChildAt(_local4); _local6 = false; for each (_local7 in mDefenders) { if (_local7 == _local5){ _local6 = true; break; }; }; if ((((((_local5 is FootballView)) || ((mPaddle.sprite == _local5)))) || (_local6))){ } else { _local5.visible = false; }; _local4++; }; } else { _local2.visible = false; }; _local1++; }; _local2.visible = false; } private function UpdatePowerUps(_arg1:Number):void{ var _local2:int; var _local3:FootballView; var _local4:PowerUp; var _local5:Boolean; var _local6:Boolean; var _local7:int; var _local8:FootballView; if (mPowerUps){ for each (_local4 in mPowerUps) { if (((!(_local4)) && (!(_local4.sprite)))){ } else { _local4.update(_arg1); if (((_local4.sprite.hitTestObject(mPaddle.sprite)) && (_local4.sprite.parent))){ _view.removeGamePlayChild(_local4.sprite); if ((((((mState == GAMEPLAY_KEEPER_STATE)) && (!((_local4.id == PowerUp.MEDAL_POWERUP))))) && (!((_local4.id == PowerUp.GOLDENCUP_POWERUP))))){ } else { _local5 = false; switch (_local4.id){ case PowerUp.GOLDENCUP_POWERUP: _view.hud.PowerUpAddLife(); _local6 = true; if ((((_view.hud.livesLeft >= 10)) && (!(Managers.levelProgressService.awards[AwardTypes.FULL_TEAM_AWARD])))){ Managers.levelProgressService.UnlockAward(AwardTypes.FULL_TEAM_AWARD); _local2 = (mAwards.push(new MovingAward(AwardTypes.FULL_TEAM_AWARD)) - 1); _view.addGamePlayChild(mAwards[_local2]); }; break; case PowerUp.MEAT_POWERUP: mPaddle.addPowerUp(_local4); _local6 = true; for each (_local3 in mBall) { if (((_local3) && ((_local3.state == FootballView.BALL_ATTACHED)))){ _local3.SetState(FootballView.BALL_ATTACHED); }; }; break; case PowerUp.REDCARD_POWERUP: mPaddle.addPowerUp(_local4); _local6 = false; Managers.levelProgressService.AddRedCard(); if ((((((Managers.levelProgressService.redCardCount > MAX_REDS)) && ((Managers.levelProgressService.yellowCardCount > MAX_YELLOWS)))) && (!(Managers.levelProgressService.awards[AwardTypes.MISBEHAVIOUR_AWARD])))){ Managers.levelProgressService.UnlockAward(AwardTypes.MISBEHAVIOUR_AWARD); _local2 = (mAwards.push(new MovingAward(AwardTypes.MISBEHAVIOUR_AWARD)) - 1); _view.addGamePlayChild(mAwards[_local2]); }; for each (_local3 in mBall) { if (((_local3) && ((_local3.state == FootballView.BALL_ATTACHED)))){ _local3.SetState(FootballView.BALL_ATTACHED); }; }; break; case PowerUp.FIREBALL_POWERUP: trace("fireball"); _local5 = true; _local6 = true; break; case PowerUp.SPIKEDBOOT_POWERUP: _local5 = true; _local6 = false; break; case PowerUp.PUMP_POWERUP: _local5 = true; _local6 = true; break; case PowerUp.CAMERA_POWERUP: _local5 = true; _local6 = true; break; case PowerUp.YELLOWCARD_POWERUP: _local5 = true; _local6 = false; Managers.levelProgressService.AddYellowCard(); if ((((((Managers.levelProgressService.redCardCount > MAX_REDS)) && ((Managers.levelProgressService.yellowCardCount > MAX_YELLOWS)))) && (!(Managers.levelProgressService.awards[AwardTypes.MISBEHAVIOUR_AWARD])))){ Managers.levelProgressService.UnlockAward(AwardTypes.MISBEHAVIOUR_AWARD); _local2 = (mAwards.push(new MovingAward(AwardTypes.MISBEHAVIOUR_AWARD)) - 1); _view.addGamePlayChild(mAwards[_local2]); }; break; case PowerUp.DUPLICATE_BALL_POWERUP: if (mState != GAMEPLAY_KEEPER_STATE){ AddNewBall(); _local6 = true; }; break; case PowerUp.MEDAL_POWERUP: AddMedalMovingText(); _local6 = true; break; case PowerUp.MAGNET_POWERUP: mPaddle.EnableStickyBall(_view.controller.time); _local6 = true; break; case PowerUp.PENALTY_KICK: mPaddle.EnablePenaltyKicks(); _local6 = true; break; }; if (_local5){ for each (_local8 in mBall) { if (_local8){ _local8.addPowerUp(_local4); }; }; }; if (_local6){ mSoundManager.playSingle("powerup11"); } else { mSoundManager.playSingle("powerdown"); }; mAcquiredPowerUp.push(_local4.id); _local7 = mPowerUps.indexOf(_local4); delete mPowerUps[_local7]; }; }; }; }; }; } private function UpdateAwards(_arg1:Number):void{ var _local2:MovingAward; var _local3:int; for each (_local2 in mAwards) { if (_local2){ _local2.Update(_arg1); if (_local2.IsDone()){ _local3 = mAwards.indexOf(_local2); if (_local3 > -1){ _view.removeGamePlayChild(mAwards[_local3]); mAwards[_local3].dispose(); mAwards[_local3] = null; }; }; }; }; } } }//package wbo.game
Section 473
//GameView (wbo.game.GameView) package wbo.game { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.*; import flash.geom.*; import wbo.game.entities.*; import wbo.game.ui.*; import flash.utils.*; import assets.*; import com.bigwigmedia.core.*; public class GameView extends Sprite implements IDisposable { private var _startDragX:Number; private var _ballContainer:Sprite; private var _hud:HUD; private var _startDragY:Number; private var _holder:Sprite; private var _gameplayLayer:Sprite; private var _background:MovieClip; private var _entityToViewDict:Dictionary; private var mRedFlash:Sprite; private var _paddleContainer:Sprite; private var _controller:GameController; private var mFlashing:Boolean; public function GameView(_arg1:GameController){ _entityToViewDict = new Dictionary(); super(); _controller = _arg1; _background = new LevelBackground(); addChild(_background); _holder = new Sprite(); addChild(_holder); _gameplayLayer = new Sprite(); addChild(_gameplayLayer); _hud = new HUD(); addChild(_hud); addEventListener(MouseEvent.CLICK, onMouseClickHandler); addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler); } public function reset():void{ } public function showBackground(_arg1:String):void{ _background.gotoAndStop(_arg1); } private function onMouseMoveHandler(_arg1:MouseEvent):void{ if (_controller.paused()){ return; }; if (_arg1.stageX < 40){ _controller.paddleX = 40; } else { if (_arg1.stageX > 600){ _controller.paddleX = 600; } else { _controller.paddleX = _arg1.stageX; }; }; _controller.paddleY = 400; } private function getSpaceMouseCoordinates(_arg1:DisplayObject):Point{ var _local2:Stage = Globals.stage; var _local3:Point = new Point(_local2.mouseX, _local2.mouseY); if (_local3.x < 0){ _local3.x = 0; } else { if (_local3.x > 640){ _local3.x = 640; }; }; if (_local3.y < 0){ _local3.y = 0; } else { if (_local3.y > 404){ _local3.y = 404; }; }; _local3 = _arg1.globalToLocal(_local3); return (_local3); } private function onMouseClickHandler(_arg1:MouseEvent):void{ if ((((this.mouseY > 404)) || ((_arg1.target is Component)))){ return; }; var _local2:Point = getSpaceMouseCoordinates(_holder); } public function get hud():HUD{ return (_hud); } public function removeEntityView(_arg1:AbstractGameEntity):void{ var _local2:Sprite = _entityToViewDict[_arg1]; if (_local2){ delete _entityToViewDict[_arg1]; _local2.parent.removeChild(_local2); IDisposable(_local2).dispose(); }; } public function createEntityView(_arg1:AbstractGameEntity):void{ } public function addBGChild(_arg1:Sprite):void{ _background.addChild(_arg1); } private function onStageMouseUpHandler(_arg1:MouseEvent):void{ } public function removeBGChild(_arg1:Sprite):void{ _background.removeChild(_arg1); } public function get controller():GameController{ return (_controller); } public function addGamePlayChild(_arg1:Sprite):void{ _gameplayLayer.addChild(_arg1); } public function dispose():void{ _controller = null; removeEventListener(MouseEvent.CLICK, onMouseClickHandler); removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler); removeChild(_hud); _hud.dispose(); _hud = null; } public function removeGamePlayChild(_arg1:Sprite):void{ if (_gameplayLayer.contains(_arg1)){ _gameplayLayer.removeChild(_arg1); }; } public function get gameplayLayer():Sprite{ return (_gameplayLayer); } public function get debugGamePlay():Sprite{ return (_gameplayLayer); } } }//package wbo.game
Section 474
//LevelResult (wbo.game.LevelResult) package wbo.game { import wbo.game.gameobjects.*; public class LevelResult { private var _scaredDeaths:Array; private var _bricksDestroyed:Array; private var _levelUID:String; private var _livesLeft:int; private var _totalTime:Number; private var _powerupsReceived:Array; private var _levelPassed:Boolean; public function LevelResult(_arg1:String, _arg2:Number, _arg3:Array, _arg4:Array, _arg5:int, _arg6:Array){ var _local7:int; super(); _levelUID = _arg1; _totalTime = _arg2; _bricksDestroyed = new Array(); if (_arg3){ _local7 = 0; while (_local7 < _arg3.length) { _bricksDestroyed[_local7] = (_arg3[_local7] as int); _local7++; }; }; _powerupsReceived = new Array(); if (_arg4){ _local7 = 0; while (_local7 < _arg4.length) { _powerupsReceived[_local7] = (_arg4[_local7] as int); _local7++; }; }; _livesLeft = _arg5; _scaredDeaths = new Array(); if (_arg6){ _local7 = 0; while (_local7 < _arg6.length) { if ((_arg6[_local7] is Defender)){ _scaredDeaths[_local7] = (_arg6[_local7] as Defender).type; }; _local7++; }; }; } public function set livesLeft(_arg1:int):void{ _livesLeft = _arg1; } public function get bricksDestroyed():Array{ return (_bricksDestroyed); } public function get levelUID():String{ return (_levelUID); } public function get livesLeft():int{ return (_livesLeft); } public function get totalTime():Number{ return (_totalTime); } public function get powerupsReceived():Array{ return (_powerupsReceived); } public function dispose():void{ _bricksDestroyed = null; _powerupsReceived = null; _scaredDeaths = null; } public function get scaredDeaths():Array{ return (_scaredDeaths); } } }//package wbo.game
Section 475
//EndGameMovieController (wbo.gameCompleteMovie.EndGameMovieController) package wbo.gameCompleteMovie { import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; import flash.utils.*; import wbo.core.*; public class EndGameMovieController extends EventDispatcher implements IController { private var _view:EndGameMovieView; public function EndGameMovieController(){ _view = new EndGameMovieView(this); _view.addEventListener(Event.ENTER_FRAME, onFrameEnterHandler); } public function onFrameEnterHandler(_arg1:Event):void{ _view.update(getTimer()); } public function get view():DisplayObject{ return (_view); } public function resetStage():void{ Managers.levelProgressService.ResetStage(); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.REPLAY_STAGE)); } public function submitScore():void{ Managers.urlCaller.submitScore(Managers.levelProgressService.GetTotalScore()); } public function dispose():void{ _view.removeEventListener(Event.ENTER_FRAME, onFrameEnterHandler); _view.dispose(); _view = null; } public function mainMenu():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } } }//package wbo.gameCompleteMovie
Section 476
//EndGameMovieView (wbo.gameCompleteMovie.EndGameMovieView) package wbo.gameCompleteMovie { import flash.display.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; import assets.*; import wbo.constants.*; public class EndGameMovieView extends ComponentView { private var _textArea:TextArea; private var mFinalScreenText:Label; private var mMovie:MovieClip; private var mMainMenu:Button; private var mNewspaperRef:Sprite; private var mLastScreenRef:Sprite; private var mSubmitScore:Button; private var mButtons:Boolean; private var mNewspaperText:Label; private var _controller:EndGameMovieController; public function EndGameMovieView(_arg1:EndGameMovieController){ var _local7:int; super(); _controller = _arg1; mMovie = new game_end_movie(); addChild(mMovie); mMovie.play(); mMovie.x = 320; mMovie.y = 240; mSubmitScore = new Button(); mSubmitScore.name = "submitScoreButton"; mSubmitScore.label = "SUBMIT SCORE"; mSubmitScore.x = 580; mSubmitScore.y = 20; mSubmitScore.styleName = "mainMenuText"; addChild(mSubmitScore); mSubmitScore.visible = false; mMainMenu = new Button(); mMainMenu.name = "mainmenuButton"; mMainMenu.label = "MAIN MENU"; mMainMenu.x = 580; mMainMenu.y = 20; mMainMenu.styleName = "mainMenuText"; addChild(mMainMenu); mMainMenu.visible = false; mNewspaperText = new Label(); mNewspaperText.htmlText = ((("<p align='center'>" + Teams.GetTeamName(Managers.levelProgressService.userTeam)) + " takes home the greatest prize!") + "</p>"); mNewspaperText.x = 0; mNewspaperText.y = 0; mNewspaperText.rotation = -1; mNewspaperText.x = -425; mNewspaperText.y = -100; mNewspaperText.styleName = "outroNewspaperText"; mNewspaperText.wordWrap = true; mNewspaperText.maxWidth = 900; mNewspaperText.width = 900; var _local2:Date = new Date(); var _local3:Array = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; var _local4:Array = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; var _local5:Array = ["st", "nd", "rd", "th"]; var _local6:int = (_local2.getDate() % 10); trace(((("cutDay : " + _local6) + " div : ") + (_local6 / 3))); if ((_local6 / 3) > 1){ _local7 = 3; } else { _local7 = (_local6 - 1); }; trace(("val : " + _local7)); var _local8:String = ((_local2.getDate() + "") + _local5[_local7]); var _local9:String = _local3[_local2.getDay()]; var _local10:String = _local4[_local2.getMonth()]; var _local11:String = ((_local10 + " ") + _local8); mFinalScreenText = new Label(); mFinalScreenText.htmlText = (((((("<p align='center'>" + "On ") + _local11) + ", in South Africa, ") + Teams.GetTeamName(Managers.levelProgressService.userTeam)) + " has won the World Cup!") + "</p>"); mFinalScreenText.x = -170; mFinalScreenText.y = -230; mFinalScreenText.styleName = "outroFinalText"; mFinalScreenText.wordWrap = true; mFinalScreenText.maxWidth = 600; mFinalScreenText.width = 600; Managers.soundManager.playSingle("fanfarelow"); mButtons = false; } public function update(_arg1:Number):void{ var _local2:int; var _local3:DisplayObject; var _local4:MovieClip; var _local5:MovieClip; if (!mNewspaperRef){ _local2 = 0; while (_local2 < mMovie.numChildren) { _local3 = mMovie.getChildAt(_local2); if ((_local3 is newspaper_outro)){ _local4 = (_local3 as newspaper_outro); mNewspaperRef = _local4.newspaper_text_holder_won; mNewspaperRef.addChild(mNewspaperText); mNewspaperRef = null; }; _local2++; }; }; if (!mLastScreenRef){ _local2 = 0; while (_local2 < mMovie.numChildren) { _local3 = mMovie.getChildAt(_local2); if ((_local3 is last_screen_tween)){ _local5 = (_local3 as last_screen_tween); mLastScreenRef = _local5.game_won_players_last; mLastScreenRef.addChild(mFinalScreenText); mLastScreenRef = null; }; _local2++; }; }; if ((((mMovie.currentFrame >= mMovie.totalFrames)) && (!(mSubmitScore.visible)))){ } else { if ((((mMovie.currentFrame > 245)) && (!(mButtons)))){ mSubmitScore.visible = true; mSubmitScore.x = 445; mSubmitScore.y = 420; mMainMenu.visible = true; mMainMenu.x = 10; mMainMenu.y = 420; mButtons = true; }; }; } override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "submitScoreButton": _controller.submitScore(); break; case "mainmenuButton": _controller.mainMenu(); break; }; } override public function dispose():void{ if (this.contains(mMovie)){ removeChild(mMovie); }; mMovie = null; if (mSubmitScore.parent.contains(mSubmitScore)){ mSubmitScore.parent.removeChild(mSubmitScore); }; mSubmitScore = null; if (mMainMenu.parent.contains(mMainMenu)){ mMainMenu.parent.removeChild(mMainMenu); }; mMainMenu = null; if (mNewspaperText.parent.contains(mNewspaperText)){ mNewspaperText.parent.removeChild(mNewspaperText); }; mNewspaperText = null; mNewspaperRef = null; mLastScreenRef = null; _controller = null; super.dispose(); if (_textArea){ removeChild(_textArea); _textArea.dispose(); _textArea = null; }; } } }//package wbo.gameCompleteMovie
Section 477
//InstructionsController (wbo.instructions.InstructionsController) package wbo.instructions { import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import wbo.managers.*; import wbo.services.*; import com.bigwigmedia.mvc.*; import wbo.core.*; public class InstructionsController extends EventDispatcher implements IController { private var _view:InstructionsView; public function InstructionsController(){ _view = new InstructionsView(this); } public function dispose():void{ _view.dispose(); } public function get view():DisplayObject{ return (_view); } public function mainMenu():void{ if (Managers.levelProgressService.backDirection == LevelProgressService.BACK_TO_GAMEPLAY){ Managers.levelProgressService.instructionsShown = true; Managers.levelProgressService.saveGame(); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_GAME)); } else { dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); }; } } }//package wbo.instructions
Section 478
//InstructionsView (wbo.instructions.InstructionsView) package wbo.instructions { import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import wbo.services.*; import com.bigwigmedia.mvc.*; public class InstructionsView extends ComponentView { private var _controller:InstructionsController; public function InstructionsView(_arg1:InstructionsController){ var _local2:Button; super(); _controller = _arg1; if (Managers.levelProgressService.backDirection == LevelProgressService.BACK_TO_GAMEPLAY){ _local2 = (getComponentByName("mainMenuButton") as Button); _local2.label = "CONTINUE"; }; } override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "mainMenuButton": _controller.mainMenu(); break; }; } override public function dispose():void{ super.dispose(); } } }//package wbo.instructions
Section 479
//IntroMovieController (wbo.introMovie.IntroMovieController) package wbo.introMovie { import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; import flash.utils.*; import wbo.core.*; public class IntroMovieController extends EventDispatcher implements IController { private var _view:IntroMovieView; public function IntroMovieController(){ _view = new IntroMovieView(this); _view.addEventListener(Event.ENTER_FRAME, onFrameEnterHandler); } public function onFrameEnterHandler(_arg1:Event):void{ _view.update(getTimer()); } public function get view():DisplayObject{ return (_view); } public function dispose():void{ _view.removeEventListener(Event.ENTER_FRAME, onFrameEnterHandler); _view.dispose(); _view = null; } public function teamSelect():void{ _view.removeEventListener(Event.ENTER_FRAME, onFrameEnterHandler); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.START)); } public function resetStage():void{ Managers.levelProgressService.ResetStage(); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.REPLAY_STAGE)); } } }//package wbo.introMovie
Section 480
//IntroMovieView (wbo.introMovie.IntroMovieView) package wbo.introMovie { import flash.display.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.sound.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; import assets.*; public class IntroMovieView extends ComponentView { private const STATE_VO_2:int = 1; private const STATE_VO_NONE:int = -1; private const STATE_VO_1:int = 0; private const STATE_VO_3:int = 2; private const STATE_VO_4:int = 3; private const STATE_VO_5:int = 4; private var _textArea:TextArea; private var _controller:IntroMovieController; private var mMovie:MovieClip; private var mSkip:LabelButton; private var mSoundState:int; private var mFrameTriggers:Array; private var mSoundManager:ISoundManager; public function IntroMovieView(_arg1:IntroMovieController){ _controller = _arg1; mMovie = new intro_anim_clip(); addChild(mMovie); mMovie.play(); mMovie.x = 320; mMovie.y = 240; mSkip = new LabelButton(); mSkip.name = "skipButton"; mSkip.label = "Skip"; mSkip.x = 580; mSkip.y = 20; addChild(mSkip); mSoundState = STATE_VO_NONE; mSoundManager = Managers.soundManager; mFrameTriggers = [19, 147, 222, 313, 476]; } override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "skipButton": mSoundManager.stopAll(); _controller.teamSelect(); break; }; } public function update(_arg1:Number):void{ CheckVoiceOver(); if (mMovie.currentFrame >= mMovie.totalFrames){ _controller.teamSelect(); }; } override public function dispose():void{ _controller = null; removeChild(mMovie); mMovie = null; removeChild(mSkip); mSkip = null; mSoundManager = null; mFrameTriggers = null; super.dispose(); if (_textArea){ removeChild(_textArea); _textArea.dispose(); _textArea = null; }; } private function CheckVoiceOver():void{ if ((((mMovie.currentFrame > mFrameTriggers[STATE_VO_5])) && ((mSoundState < STATE_VO_5)))){ mSoundManager.playSingle("vo5"); mSoundState = STATE_VO_5; } else { if ((((mMovie.currentFrame > mFrameTriggers[STATE_VO_4])) && ((mSoundState < STATE_VO_4)))){ mSoundManager.playSingle("vo4"); mSoundState = STATE_VO_4; } else { if ((((mMovie.currentFrame > mFrameTriggers[STATE_VO_3])) && ((mSoundState < STATE_VO_3)))){ mSoundManager.playSingle("vo3"); mSoundState = STATE_VO_3; } else { if ((((mMovie.currentFrame > mFrameTriggers[STATE_VO_2])) && ((mSoundState < STATE_VO_2)))){ mSoundManager.playSingle("vo2"); mSoundState = STATE_VO_2; } else { if ((((mMovie.currentFrame > mFrameTriggers[STATE_VO_1])) && ((mSoundState < STATE_VO_1)))){ mSoundManager.playSingle("vo1"); mSoundState = STATE_VO_1; }; }; }; }; }; } } }//package wbo.introMovie
Section 481
//LevelLostController (wbo.levelLost.LevelLostController) package wbo.levelLost { import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; import wbo.core.*; public class LevelLostController extends EventDispatcher implements IController { private var _view:LevelLostView; public function LevelLostController(){ _view = new LevelLostView(this); } public function get view():DisplayObject{ return (_view); } public function resetStage():void{ Managers.levelProgressService.ResetStage(); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.REPLAY_STAGE)); } public function submitHighScore():void{ Managers.urlCaller.submitScore(Managers.levelProgressService.GetTotalScore()); } public function dispose():void{ _view.dispose(); _view = null; } public function mainMenu():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } } }//package wbo.levelLost
Section 482
//LevelLostView (wbo.levelLost.LevelLostView) package wbo.levelLost { import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; public class LevelLostView extends ComponentView { private var _textArea:TextArea; private var _controller:LevelLostController; public function LevelLostView(_arg1:LevelLostController){ _controller = _arg1; Managers.soundManager.playSingle("crowdboo"); } override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "mainMenuButton": Managers.levelProgressService.ResetStage(); Managers.levelProgressService.ResetScore(); Managers.levelProgressService.ResetLives(); Managers.levelProgressService.saveGame(); _controller.mainMenu(); break; case "replayButton": Managers.levelProgressService.ResetStage(); Managers.levelProgressService.ResetScore(); Managers.levelProgressService.ResetLives(); Managers.levelProgressService.saveGame(); _controller.resetStage(); break; case "submitScoreButton": _controller.submitHighScore(); break; case "twoDPlayButton": Managers.urlCaller.mainLink(); break; }; } override public function dispose():void{ Managers.soundManager.stop("crowdboo"); _controller = null; super.dispose(); if (_textArea){ removeChild(_textArea); _textArea.dispose(); _textArea = null; }; } } }//package wbo.levelLost
Section 483
//LevelPreview (wbo.levelSelection.LevelPreview) package wbo.levelSelection { import flash.display.*; import wbo.managers.*; import wbo.common.*; import flash.geom.*; import wbo.game.gameobjects.*; import assets.*; public class LevelPreview extends Sprite { private var mBackground:Sprite; private var mDefenders:Array; private var mLevelContainer:Sprite; private var mLevelId:int; public function LevelPreview(_arg1:int){ mLevelId = _arg1; mLevelContainer = new Sprite(); mBackground = new LevelBackground(); mLevelContainer.addChild(mBackground); trace(("level id : " + _arg1)); var _local2:LevelInfo = Managers.levelProgressService.getLevelInfoList()[_arg1]; InitDefenders(_local2); mLevelContainer.scaleX = 0.2; mLevelContainer.scaleY = 0.2; var _local3:BitmapData = new BitmapData(mLevelContainer.width, mLevelContainer.height, true, 4294967295); _local3.draw(mLevelContainer, mLevelContainer.transform.matrix); var _local4:Bitmap = new Bitmap(_local3); addChild(_local4); } private function InitDefenders(_arg1:LevelInfo):void{ var _local2:int; var _local4:int; var _local5:int; var _local6:int; var _local7:Point; var _local8:Point; var _local9:int; var _local10:String; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:uint; var _local16:Array; var _local17:uint; var _local3:Array = _arg1.getItemsDefinitions(); _local7 = new Point(0, 0); _local8 = new Point(0, 0); mDefenders = new Array(); _local14 = Managers.levelProgressService.GetCurrentLevelTeam(mLevelId); if (!(mLevelId % 7)){ _local7.y = (_local7.y + 50); _local2 = 0; while (_local2 < 70) { _local5 = int((100 + ((_local2 % 10) * 50))); _local6 = (90 + (int((_local2 / 10)) * 45)); _local7 = new Point(_local5, _local6); _local8 = new Point(_local5, _local6); _local15 = mDefenders.push(new Defender(_local4, _local5, _local6, _local7, _local8, _local9, null, _local14, null, 0)); mLevelContainer.addChild(mDefenders[(_local15 - 1)]); _local2++; }; } else { _local13 = 0; while (_local13 < _local3.length) { _local16 = String(_local3[_local13]).split("\n"); _local2 = 0; while (_local2 < _local16.length) { switch ((_local2 - 1)){ case 0: _local10 = _local16[_local2]; _local11 = (_local10.indexOf(">") + 1); _local12 = _local10.indexOf("<", _local11); _local4 = int(_local10.substring(_local11, _local12)); break; case 1: _local10 = _local16[_local2]; _local11 = (_local10.indexOf(">") + 1); _local12 = _local10.indexOf("<", _local11); _local5 = int(_local10.substring(_local11, _local12)); break; case 2: _local10 = _local16[_local2]; _local11 = (_local10.indexOf(">") + 1); _local12 = _local10.indexOf("<", _local11); _local6 = int(_local10.substring(_local11, _local12)); break; case 3: _local10 = _local16[_local2]; _local11 = (_local10.indexOf(">") + 1); _local12 = _local10.indexOf("<", _local11); _local7.x = int(_local10.substring(_local11, _local12)); break; case 4: _local10 = _local16[_local2]; _local11 = (_local10.indexOf(">") + 1); _local12 = _local10.indexOf("<", _local11); _local7.y = int(_local10.substring(_local11, _local12)); break; case 5: _local10 = _local16[_local2]; _local11 = (_local10.indexOf(">") + 1); _local12 = _local10.indexOf("<", _local11); _local8.x = int(_local10.substring(_local11, _local12)); break; case 6: _local10 = _local16[_local2]; _local11 = (_local10.indexOf(">") + 1); _local12 = _local10.indexOf("<", _local11); _local8.y = int(_local10.substring(_local11, _local12)); break; case 7: _local10 = _local16[_local2]; _local11 = (_local10.indexOf(">") + 1); _local12 = _local10.indexOf("<", _local11); _local9 = int(_local10.substring(_local11, _local12)); _local7.y = (_local7.y + 50); _local17 = mDefenders.push(new Defender(_local4, _local5, _local6, _local7, _local8, _local9, null, _local14, null, 0)); mLevelContainer.addChild(mDefenders[(_local17 - 1)]); break; }; _local2++; }; _local13++; }; }; _local7 = null; _local8 = null; } public function get id():int{ return (mLevelId); } public function get levelContainer():Sprite{ return (mLevelContainer); } public function dispose():void{ var _local1:int; var _local2:Defender; _local1 = 0; while (_local1 < mDefenders.length) { _local2 = mDefenders[_local1]; if (_local2){ _local2.dispose(); }; mLevelContainer.removeChild(_local2); mDefenders[_local1] = null; _local1++; }; mLevelContainer.removeChild(mBackground); mBackground = null; mLevelContainer = null; } } }//package wbo.levelSelection
Section 484
//LevelSelectionController (wbo.levelSelection.LevelSelectionController) package wbo.levelSelection { import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import wbo.managers.*; import wbo.services.*; import com.bigwigmedia.mvc.*; import wbo.core.*; public class LevelSelectionController extends EventDispatcher implements IController { private var _view:LevelSelectionView; public function LevelSelectionController(){ _view = new LevelSelectionView(this); } public function resetGame():void{ Managers.levelProgressService.resetGameProgress(); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.RESET_GAME)); } public function get view():DisplayObject{ return (_view); } public function startGame():void{ if (Managers.levelProgressService.instructionsShown){ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_GAME)); } else { Managers.levelProgressService.backDirection = LevelProgressService.BACK_TO_GAMEPLAY; dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_INSTRUCTIONS)); }; } public function gotoMainMenu():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } public function gotoTeamSelect():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.TEAM_SELECT)); } public function dispose():void{ _view.dispose(); _view = null; } } }//package wbo.levelSelection
Section 485
//LevelSelectionView (wbo.levelSelection.LevelSelectionView) package wbo.levelSelection { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; import flash.geom.*; import assets.*; import com.bigwigmedia.utils.*; import flash.filters.*; public class LevelSelectionView extends DialogOwnerView { private var mStageLabel:Label; private var mLockedStage:Sprite; private var _controller:LevelSelectionController; private var mNoticeLabel:Label; private var mLevelPreview:Array; private var mBlackBg:Sprite; private var mLockedRect:Rectangle; public function LevelSelectionView(_arg1:LevelSelectionController){ var _local9:Sprite; var _local10:Boolean; var _local11:Button; var _local12:int; var _local13:int; var _local14:int; var _local15:int; var _local16:LevelPreview; var _local17:Boolean; var _local18:Number; var _local19:Number; var _local20:Number; super(); _controller = _arg1; Label(_component.getComponentByName("totalScoreLabel")).text = ("TOTAL SCORE : " + NumberFormatter.formatThousands(Managers.levelProgressService.GetTotalScore())); var _local2:Array = Managers.levelProgressService.getLevelInfoList(); var _local3:int = _local2.length; var _local4:int = Managers.levelProgressService.currentLevel; var _local5:int; while (_local5 < _local3) { _local10 = false; _local11 = new Button(); _local11.styleName = ""; _local11.label = (_local10) ? "" : String((_local5 + 1)); _local11.value = _local5; _local11.enabled = !(_local10); _local5++; }; mLevelPreview = new Array(); var _local6:int = ((Managers.levelProgressService.currentLevel / 7) + 1); if (_local6 > 4){ _local6 = 4; }; mStageLabel = new Label(); var _local7:Array = ["ROUND OF 16", "QUARTER FINALS", "SEMI FINALS", "FINAL"]; mStageLabel.htmlText = (("<p align='center'>" + _local7[(_local6 - 1)]) + "</p>"); mStageLabel.center = 0; mStageLabel.y = 10; addChild(mStageLabel); var _local8:int; _local5 = 0; while (_local5 < 7) { _local12 = (75 + ((_local5 % 3) * 200)); _local13 = (50 + (int((_local5 / 3)) * 120)); _local14 = (((_local6 - 1) * 7) + (_local5 + 1)); if (_local5 == 6){ trace(("level won count" + _local8)); if (_local8 == 6){ _local15 = (mLevelPreview.push(new LevelPreview(_local14)) - 1); _local16 = mLevelPreview[_local15]; _local16.x = (75 + 200); _local16.y = _local13; _local16.addEventListener(MouseEvent.CLICK, onPreviewMouseClick); addChild(_local16); } else { mLockedStage = new levelselect_levellocked(); mLockedStage.x = (75 + 200); mLockedStage.y = _local13; addChild(mLockedStage); }; } else { _local17 = false; _local15 = (mLevelPreview.push(new LevelPreview(_local14)) - 1); _local16 = mLevelPreview[_local15]; _local16.x = _local12; _local16.y = _local13; _local16.addEventListener(MouseEvent.CLICK, onPreviewMouseClick); addChild(_local16); if (Managers.levelProgressService.GetLevelStatus(_local14)){ switch (_local6){ case 1: _local9 = new stage1_award(); break; case 2: _local9 = new stage2_award(); break; case 3: _local9 = new stage3_award(); break; case 4: _local9 = new stage4_award(); break; }; _local18 = 70; _local19 = Math.max(_local9.width, _local9.height); _local20 = (_local18 / _local19); _local9.scaleX = (_local9.scaleY = _local20); _local9.x = ((_local16.x + (_local16.width / 2)) - (_local9.width / 2)); _local9.y = ((_local16.y + (_local16.height / 2)) - (_local9.height / 2)); _local16.alpha = 0.4; addChild(_local9); _local8++; }; }; _local5++; }; addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler); addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler); addEventListener(MouseEvent.CLICK, onMouseClickHandler); mBlackBg = new Sprite(); mBlackBg.graphics.beginFill(0); mBlackBg.graphics.drawRect(0, 0, 640, 480); mBlackBg.graphics.endFill(); mBlackBg.alpha = 0.4; mNoticeLabel = new Label(); mNoticeLabel.text = "Defeat all teams in this stage to unlock the Crazy Knockout!"; mNoticeLabel.wordWrap = true; mNoticeLabel.width = 450; mNoticeLabel.styleName = "previewUnlockText"; if (mLockedStage){ mLockedRect = new Rectangle(mLockedStage.x, mLockedStage.y, mLockedStage.width, mLockedStage.height); } else { mLockedRect = new Rectangle(-1, -1, 0, 0); }; mStageLabel.x = (275 - (mStageLabel.width / 2)); } public function onMouseClickHandler(_arg1:MouseEvent):void{ var _local2:Point = new Point(_arg1.stageX, _arg1.stageY); if (mLockedRect.containsPoint(_local2)){ Managers.soundManager.playSingle("cancel_sound"); }; } public function onPreviewMouseClick(_arg1:MouseEvent):void{ var _local2:int; if ((_arg1.currentTarget is LevelPreview)){ _local2 = (_arg1.currentTarget as LevelPreview).id; Managers.soundManager.playSingle("button_click"); Managers.levelProgressService.currentLevel = _local2; Managers.levelProgressService.selectedUserLevelUID = (_local2 + ""); _controller.startGame(); }; } private function onMouseOverHandler(_arg1:MouseEvent):void{ } override protected function onDialogClose():void{ if (_dialog.option == DialogOption.OK){ _controller.resetGame(); }; } override protected function onComponentClick(_arg1:Component):void{ var _local2:Button = (_arg1 as Button); switch (_arg1.name){ case "resetGameButton": showDialog(new ResetGameDialog()); break; case "mainMenuButton": _controller.gotoMainMenu(); break; case "backButton": _controller.gotoTeamSelect(); break; case "twoDPlayButton": Managers.urlCaller.mainLink(); break; default: if (((_local2) && ((_local2.value is Number)))){ Managers.soundManager.playSingle("button_click"); Managers.levelProgressService.currentLevel = _local2.value; Managers.levelProgressService.selectedUserLevelUID = null; _controller.startGame(); }; break; }; } public function onMouseMoveHandler(_arg1:MouseEvent):void{ var _local4:int; var _local5:int; var _local6:GlowFilter; var _local7:LevelPreview; var _local2:Point = new Point(_arg1.stageX, _arg1.stageY); if (mLockedRect.containsPoint(_local2)){ _local4 = _arg1.currentTarget.x; _local5 = _arg1.currentTarget.y; trace(("event.currentTarget : " + _arg1.currentTarget)); trace(("event.target : " + _arg1.target)); mNoticeLabel.x = (320 - (mNoticeLabel.width / 2)); mNoticeLabel.y = (240 - (mNoticeLabel.height / 2)); trace(((("mNotice label : " + mNoticeLabel.x) + " width : ") + mNoticeLabel.width)); if (!this.contains(mNoticeLabel)){ addChild(mBlackBg); addChild(mNoticeLabel); }; }; var _local3:LevelPreview = CheckGlow(_local2); if (_local3){ _local6 = new GlowFilter(); _local6.color = 0xFFFFFF; _local6.alpha = 1; _local6.blurX = 10; _local6.blurY = 10; _local6.strength = 2; _local3.filters = [_local6]; } else { for each (_local7 in mLevelPreview) { if (_local7){ _local7.filters = []; }; }; }; if (this.contains(mNoticeLabel)){ removeChild(mBlackBg); removeChild(mNoticeLabel); }; } public function CheckGlow(_arg1:Point):LevelPreview{ var _local2:LevelPreview; var _local3:Rectangle; for each (_local2 in mLevelPreview) { if (_local2){ _local3 = new Rectangle(_local2.x, _local2.y, _local2.width, _local2.height); if (_local3.containsPoint(_arg1)){ return (_local2); }; }; }; return (null); } override public function dispose():void{ var _local1:int; var _local2:DisplayObject; _controller = null; _local1 = 0; while (_local1 < mLevelPreview.length) { mLevelPreview[_local1].removeEventListener(MouseEvent.CLICK, onPreviewMouseClick); removeChild(mLevelPreview[_local1]); mLevelPreview[_local1].dispose(); mLevelPreview[_local1] = null; _local1++; }; mLevelPreview = null; removeChild(mStageLabel); mStageLabel = null; if (this.contains(mNoticeLabel)){ removeChild(mNoticeLabel); }; mNoticeLabel = null; if (this.contains(mBlackBg)){ removeChild(mBlackBg); }; mBlackBg = null; _local1 = 0; while (_local1 < numChildren) { _local2 = getChildAt(_local1); if ((((((((_local2 is stage1_award)) || ((_local2 is stage2_award)))) || ((_local2 is stage3_award)))) || ((_local2 is stage4_award)))){ removeChildAt(_local1); }; _local1++; }; if (((mLockedStage) && (this.contains(mLockedStage)))){ removeChild(mLockedStage); }; mLockedStage = null; removeEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler); removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler); removeEventListener(MouseEvent.CLICK, onMouseClickHandler); super.dispose(); } } }//package wbo.levelSelection
Section 486
//ResetGameDialog (wbo.levelSelection.ResetGameDialog) package wbo.levelSelection { import com.bigwigmedia.ui.*; import com.bigwigmedia.mvc.*; public class ResetGameDialog extends DialogView { override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "okButton": dispatchCloseEvent(DialogOption.OK); break; case "cancelButton": dispatchCloseEvent(DialogOption.CANCEL); break; }; } } }//package wbo.levelSelection
Section 487
//LevelWonController (wbo.levelWon.LevelWonController) package wbo.levelWon { import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import wbo.managers.*; import wbo.services.*; import com.bigwigmedia.mvc.*; import wbo.core.*; public class LevelWonController extends EventDispatcher implements IController { private var _view:LevelWonView; public function LevelWonController(){ _view = new LevelWonView(this); } public function get view():DisplayObject{ return (_view); } public function dispose():void{ _view.dispose(); _view = null; } public function selectLevel():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_LEVEL_SELECTION)); } public function submitScore():void{ Managers.urlCaller.submitScore(Managers.levelProgressService.GetTotalScore()); } public function trophyRoom():void{ Managers.levelProgressService.backDirection = LevelProgressService.BACK_TO_LEVEL_WON; dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_TROPHY_ROOM)); } public function endGame():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_END_GAME_MOVIE)); } public function mainMenu():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } } }//package wbo.levelWon
Section 488
//LevelWonView (wbo.levelWon.LevelWonView) package wbo.levelWon { import flash.display.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import wbo.common.*; import wbo.game.*; import com.bigwigmedia.mvc.*; import wbo.editor.*; import assets.*; import com.bigwigmedia.utils.*; import wbo.constants.*; public class LevelWonView extends ComponentView { private var mPowerUps:Array; private var mLivesLeft:int; private var mLivesTotal:int; private var mTotalTime:Number; private var mDefenderLabels:Array; private var mAwardType:int; private var _controller:LevelWonController; private var mTimerClock:Sprite; private var mTimeTotal:int; private var mDefenderCounts:Array; private var mKnockOutLevel:Boolean; private var mDefenderBricks:Array; private var mPowerUpTotal:int; private var mMedal:PowerUp; private var _textArea:TextArea; private var mTotalScore:int; private var mAwardPopUp:AwardUnlocked; private var mLivesSprite:Sprite; public function LevelWonView(_arg1:LevelWonController){ var _local3:Label; var _local5:int; super(); _controller = _arg1; InitValues(); InitBricks(); InitTimeBonus(); InitExtraPoints(); var _local2:int = (((mDefenderCounts[0] * 1000) + (mDefenderCounts[1] * 3000)) + (mDefenderCounts[2] * 7000)); mTotalScore = (((_local2 + mTimeTotal) + (mPowerUpTotal * Managers.configManager.getPowerUpValue(PowerUp.MEDAL_POWERUP))) + mLivesTotal); _local3 = (getComponentByName("totalScore") as Label); _local3.text = ("Level Score : " + NumberFormatter.formatThousands(mTotalScore)); Managers.levelProgressService.SetCurrentLevelScore(mTotalScore); Managers.soundManager.playSingle("levelwon"); var _local4:int = Managers.levelProgressService.currentLevel; if (!(_local4 % 7)){ mKnockOutLevel = true; _local5 = ((Managers.levelProgressService.currentLevel - 1) / 7); switch (_local5){ case 0: mAwardType = AwardTypes.STAGE_01_AWARD; break; case 1: mAwardType = AwardTypes.STAGE_02_AWARD; break; case 2: mAwardType = AwardTypes.STAGE_03_AWARD; break; case 3: mAwardType = AwardTypes.STAGE_04_AWARD; break; }; if (!Managers.levelProgressService.awards[mAwardType]){ Managers.levelProgressService.UnlockAward(mAwardType); } else { mKnockOutLevel = false; }; } else { mKnockOutLevel = false; }; Managers.levelProgressService.saveGame(); } public function InitExtraPoints():void{ var _local1:int; _local1 = 0; while (_local1 < mPowerUps.length) { if (mPowerUps[_local1] == PowerUp.MEDAL_POWERUP){ mPowerUpTotal++; }; _local1++; }; mMedal = new PowerUp(PowerUp.MEDAL_POWERUP); var _local2 = 250; var _local3 = 200; mMedal.sprite.scaleX = (mMedal.sprite.scaleY = 0.6); mMedal.sprite.x = _local2; mMedal.sprite.y = _local3; addChild(mMedal.sprite); mLivesSprite = new game_bench(); var _local4:Number = 70; var _local5:Number = Math.max(mLivesSprite.width, mLivesSprite.height); var _local6:Number = (_local4 / _local5); mLivesSprite.x = 385; mLivesSprite.y = 195; mLivesSprite.scaleX = (mLivesSprite.scaleY = _local6); addChild(mLivesSprite); mLivesTotal = (mLivesLeft * 5000); var _local7:Label = (getComponentByName("medalsValue") as Label); _local7.text = NumberFormatter.formatThousands((mPowerUpTotal * Managers.configManager.getPowerUpValue(PowerUp.MEDAL_POWERUP))); _local7 = (getComponentByName("livesValue") as Label); _local7.text = NumberFormatter.formatThousands(mLivesTotal); } public function InitBricks():void{ var _local1:int; var _local2:int; var _local3:MovieClip; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:Sprite; var _local9:Sprite; var _local10:Sprite; var _local11:Sprite; _local1 = Managers.levelProgressService.GetCurrentLevelTeam(Managers.levelProgressService.currentLevel); mDefenderBricks = new Array(3); mDefenderLabels = new Array(); _local2 = 0; while (_local2 < mDefenderBricks.length) { _local4 = (140 + ((_local2 % 3) * 150)); _local5 = (110 + (int((_local2 / 3)) * 40)); _local6 = 0; _local7 = _local2; mDefenderBricks[_local7] = new Sprite(); _local3 = new uniform_footballer(); switch (_local2){ case 0: _local8 = GetUniform(_local3, _local1, 0); _local6 = (mDefenderCounts[_local2] * 1000); break; case 1: _local8 = new Sprite(); _local9 = new bruiser_01_01(); _local10 = GetUniform(_local3, _local1, 1); _local8.addChild(_local10); _local8.addChild(_local9); _local6 = (mDefenderCounts[_local2] * 3000); break; case 2: _local11 = new brick_wall_01(); _local8 = GetUniform(_local3, _local1, 2); _local8.addChild(_local11); _local6 = (mDefenderCounts[_local2] * 7000); break; }; mDefenderBricks[_local7] = _local8; mDefenderBricks[_local7].scaleX = 0.5; mDefenderBricks[_local7].scaleY = 0.5; mDefenderBricks[_local7].x = _local4; mDefenderBricks[_local7].y = _local5; addChild(mDefenderBricks[_local7]); mDefenderLabels[_local2] = new Label(); if (_local6 > 0){ mDefenderLabels[_local2].text = NumberFormatter.formatThousands(_local6); } else { mDefenderLabels[_local2].text = mDefenderCounts[_local2]; }; mDefenderLabels[_local2].x = (_local4 + 25); mDefenderLabels[_local2].y = (_local5 - 20); addChild(mDefenderLabels[_local2]); _local3 = null; _local2++; }; } public function InitTimeBonus():void{ var _local1:String = StringUtil.secondsToTimerString((mTotalTime / 1000)); var _local2:Label = (getComponentByName("totalTime") as Label); _local2.text = ("Total Time : " + _local1); mTimerClock = new level_won_clock(); mTimerClock.x = 300; mTimerClock.y = 155; mTimerClock.scaleX = (mTimerClock.scaleY = 1.8); addChild(mTimerClock); _local2 = (getComponentByName("totalTimeValue") as Label); mTimeTotal = 0; if (mTotalTime < (60 * 1000)){ _local2.text = "10,000"; mTimeTotal = 10000; }; } override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "mainMenuButton": _controller.mainMenu(); break; case "continueButton": if (mKnockOutLevel){ SpawnAwardPopUp(); } else { if (Managers.levelProgressService.currentLevel == 28){ _controller.endGame(); } else { _controller.selectLevel(); }; }; break; case "trophyButton": _controller.trophyRoom(); break; case "submitScoreButton": _controller.submitScore(); break; case "twoDPlayButton": Managers.urlCaller.mainLink(); break; }; } public function InitValues():void{ var _local1:int; var _local2:LevelResult = Managers.levelProgressService.currentResult; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; _local1 = 0; while (_local1 < _local2.bricksDestroyed.length) { switch (_local2.bricksDestroyed[_local1]){ case SelectableBrick.BRICK_TYPE: _local3++; break; case SelectableBrick.BRUISER_TYPE: _local4++; break; case SelectableBrick.DEFENDER_TYPE: _local5++; break; }; _local1++; }; trace(((((("**** counts1 : " + _local5) + " ") + _local4) + " ") + _local3)); _local1 = 0; while (_local1 < _local2.scaredDeaths.length) { switch (_local2.scaredDeaths[_local1]){ case SelectableBrick.BRICK_TYPE: _local3 = (_local3 + 0.5); break; case SelectableBrick.BRUISER_TYPE: _local4 = (_local4 + 0.5); break; case SelectableBrick.DEFENDER_TYPE: _local5 = (_local5 + 0.5); break; }; _local1++; }; trace(((((("**** counts2 : " + _local5) + " ") + _local4) + " ") + _local3)); mDefenderCounts = new Array(); mDefenderCounts.push(_local5); mDefenderCounts.push(_local4); mDefenderCounts.push(_local3); mTotalTime = _local2.totalTime; mPowerUps = _local2.powerupsReceived; mLivesLeft = _local2.livesLeft; } private function GetUniform(_arg1:MovieClip, _arg2:int, _arg3:int):Sprite{ var _local4:int; var _local5:MovieClip; var _local6:MovieClip; var _local7:MovieClip; var _local8:MovieClip; var _local9:MovieClip; var _local10:MovieClip; var _local11:MovieClip; var _local12:MovieClip; var _local17:BitmapData; var _local18:Bitmap; var _local19:MovieClip; var _local13 = 1; var _local14 = 1; var _local15:int = (1 + (Math.random() * 4)); var _local16:Sprite = new Sprite(); _local4 = 0; while (_local4 < _arg1.footballer.numChildren) { _local19 = (_arg1.footballer.getChildAt(_local4) as MovieClip); if ((_local19 is uniform_legs)){ _local11 = (_local19.getChildAt(0) as MovieClip); _local11.gotoAndStop(_local13); _local11.x = (1.8 - 32.25); _local11.y = -25; _local16.addChild(_local11); } else { if ((_local19 is uniform_socks)){ _local8 = (_local19.getChildAt(0) as MovieClip); _local8.gotoAndStop(_arg2); _local16.addChild(_local8); _local8.x = -30; _local8.y = -23; } else { if ((_local19 is uniform_boots)){ _local10 = (_local19.getChildAt(0) as MovieClip); _local10.gotoAndStop(1); _local16.addChild(_local10); _local10.x = -30; _local10.y = 27; _local10 = null; _local10 = (_local19.getChildAt(0) as MovieClip); _local10.gotoAndStop(1); _local16.addChild(_local10); _local10.x = 5.5; _local10.y = 27; } else { if ((_local19 is uniform_shirt)){ _local9 = (_local19.getChildAt(0) as MovieClip); _local9.gotoAndStop(_arg2); _local16.addChild(_local9); _local9.x = (0 - 32.25); _local9.y = (0 - 28.4); } else { if ((_local19 is uniform_shorts)){ _local7 = (_local19.getChildAt(0) as MovieClip); _local7.gotoAndStop(_arg2); _local16.addChild(_local7); _local7.x = (-0.2 - 32.25); _local7.y = (29.1 - 56.8); } else { if ((((_local19 is uniform_skin)) && ((((_arg3 == 0)) || ((_arg3 == 2)))))){ _local6 = (_local19.getChildAt(0) as MovieClip); _local6.gotoAndStop(_local13); _local16.addChild(_local6); _local6.x = -32; _local6.y = -27; } else { if ((((_local19 is uniform_face)) && ((_arg3 == 0)))){ _local5 = (_local19.getChildAt(0) as MovieClip); _local5.gotoAndStop(_local14); _local16.addChild(_local5); _local5.x = -30; _local5.y = -28; } else { if ((((_local19 is uniform_hair)) && ((((_arg3 == 0)) || ((_arg3 == 2)))))){ _local12 = (_local19.getChildAt(0) as MovieClip); _local12.gotoAndStop(_local15); _local16.addChild(_local12); _local12.x = -32; _local12.y = -27; }; }; }; }; }; }; }; }; _local4++; }; return (_local16); } override public function dispose():void{ var _local1:int; _local1 = 0; while (_local1 < mDefenderBricks.length) { if (this.contains(mDefenderBricks[_local1])){ removeChild(mDefenderBricks[_local1]); }; mDefenderBricks[_local1] = null; _local1++; }; mDefenderBricks = null; _local1 = 0; while (_local1 < mDefenderLabels.length) { if (this.contains(mDefenderLabels[_local1])){ }; removeChild(mDefenderLabels[_local1]); mDefenderLabels[_local1] = null; _local1++; }; mDefenderLabels = null; mLivesSprite = null; mPowerUps = null; if (mAwardPopUp){ if (this.contains(mAwardPopUp)){ removeChild(mAwardPopUp); }; mAwardPopUp = null; }; mDefenderCounts = null; if (mLivesSprite){ if (this.contains(mLivesSprite)){ removeChild(mLivesSprite); }; mLivesSprite = null; }; if (mTimerClock){ if (this.contains(mTimerClock)){ removeChild(mTimerClock); }; mTimerClock = null; }; if (_textArea){ removeChild(_textArea); _textArea.dispose(); _textArea = null; }; super.dispose(); } private function SpawnAwardPopUp():void{ mAwardPopUp = new AwardUnlocked(mAwardType, _controller); addChild(mAwardPopUp); mAwardPopUp.x = 320; mAwardPopUp.y = 240; var _local1:Button = (getComponentByName("continueButton") as Button); _local1.x = 320; (mAwardPopUp.x - (mAwardPopUp.width / 2)); _local1.y = 240; (mAwardPopUp.y + (mAwardPopUp.height / 1.7)); mKnockOutLevel = false; } } }//package wbo.levelWon
Section 489
//MainMenuController (wbo.mainMenu.MainMenuController) package wbo.mainMenu { import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import wbo.managers.*; import wbo.services.*; import com.bigwigmedia.mvc.*; import wbo.core.*; public class MainMenuController extends EventDispatcher implements IController { private var _view:MainMenuView; public function MainMenuController(){ _view = new MainMenuView(this); } public function viewTrophies():void{ Managers.levelProgressService.backDirection = LevelProgressService.BACK_TO_MAIN_MENU; dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_TROPHY_ROOM)); } public function get view():DisplayObject{ return (_view); } public function playGame():void{ if (!Managers.levelProgressService.userTeam){ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_INTRO_MOVIE)); } else { dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_LEVEL_SELECTION)); }; } public function editLevels():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_EDITOR)); } public function viewInstructions():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_INSTRUCTIONS)); } public function dispose():void{ _view.dispose(); _view = null; } } }//package wbo.mainMenu
Section 490
//MainMenuView (wbo.mainMenu.MainMenuView) package wbo.mainMenu { import flash.display.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; public class MainMenuView extends ComponentView { private var mContinueButton:LabelButton; private var mContinueNotice:Label; private var mResetButton:LabelButton; private var mBlackBg:Sprite; private var _textArea:TextArea; private var _controller:MainMenuController; public function MainMenuView(_arg1:MainMenuController){ _controller = _arg1; Managers.soundManager.play("splash_ambience", int.MAX_VALUE); mBlackBg = new Sprite(); mBlackBg.graphics.beginFill(0); mBlackBg.graphics.drawRect(0, 0, 640, 480); mBlackBg.graphics.endFill(); mBlackBg.alpha = 0.4; mContinueNotice = new Label(); mContinueNotice.text = "A previously saved game has been found. Do you wish to continue?"; mContinueNotice.name = "continueNotice"; mContinueButton = new LabelButton(); mContinueButton.label = "Continue"; mContinueButton.name = "continueButton"; mResetButton = new LabelButton(); mResetButton.label = "Reset"; mResetButton.name = "resetButton"; if (!Managers.levelProgressService.soundState){ Managers.soundManager.masterVolume = 0; }; } public function DismissPopUp():void{ removeChild(mBlackBg); removeChild(mContinueNotice); removeChild(mContinueButton); removeChild(mResetButton); } override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "continueButton": _controller.playGame(); break; case "resetButton": Managers.levelProgressService.resetFullGame(); DismissPopUp(); break; case "playButton": if (Managers.levelProgressService.userTeam > 0){ SpawnContinuePopUp(); } else { _controller.playGame(); }; break; case "levelEditorButton": _controller.editLevels(); break; case "viewScoresButton": Managers.urlCaller.viewScores(); break; case "instructionsButton": _controller.viewInstructions(); break; case "twoDPlayButton": Managers.urlCaller.mainLink(); break; case "awardsButton": _controller.viewTrophies(); break; }; } public function SpawnContinuePopUp():void{ mContinueNotice.x = (320 - (mContinueNotice.width / 2)); mContinueNotice.y = 200; mContinueButton.x = 260; mContinueButton.y = 250; mResetButton.x = 380; mResetButton.y = 250; addChild(mBlackBg); addChild(mContinueNotice); addChild(mContinueButton); addChild(mResetButton); } override public function dispose():void{ Managers.soundManager.stop("splash_ambience"); if (this.contains(mBlackBg)){ removeChild(mBlackBg); }; mBlackBg = null; if (this.contains(mContinueNotice)){ removeChild(mContinueNotice); }; mContinueNotice = null; if (this.contains(mContinueButton)){ removeChild(mContinueButton); }; mContinueButton = null; if (this.contains(mResetButton)){ removeChild(mResetButton); }; mResetButton = null; super.dispose(); if (_textArea){ removeChild(_textArea); _textArea.dispose(); _textArea = null; }; } } }//package wbo.mainMenu
Section 491
//ConfigManager (wbo.managers.ConfigManager) package wbo.managers { import wbo.common.*; import com.bigwigmedia.core.*; public class ConfigManager { private var teamsXML:XML; private var configXMLClass:Class; private var powerupsXML:XML; private var _soundEnabled:Boolean;// = true private var _onInitCallback:Function; private var interfacesXMLClass:Class; private var interfacesXML:XML; private var teamsClass:Class; private var powerupsClass:Class; private var levelsXML:XML; private var styles:String; private var levelsXMLClass:Class; private var configXML:XML; private var stylesClass:Class; public function ConfigManager(_arg1:Function){ levelsXMLClass = ConfigManager_levelsXMLClass; configXMLClass = ConfigManager_configXMLClass; interfacesXMLClass = ConfigManager_interfacesXMLClass; stylesClass = ConfigManager_stylesClass; teamsClass = ConfigManager_teamsClass; powerupsClass = ConfigManager_powerupsClass; super(); Singleton.checkInstance(this); _onInitCallback = _arg1; if (!false){ setConfigs(new levelsXMLClass(), new configXMLClass(), new interfacesXMLClass(), new stylesClass(), new teamsClass(), new powerupsClass()); }; } public function getLevelsConfig():XMLList{ return (levelsXML.level); } public function getPowerUpValue(_arg1:int):Number{ switch (_arg1){ case PowerUp.CAMERA_POWERUP: return (powerupsXML.poweruplist[0].slowmotion); case PowerUp.DUPLICATE_BALL_POWERUP: return (powerupsXML.poweruplist[0].ballsplit); case PowerUp.GOLDENCUP_POWERUP: return (powerupsXML.poweruplist[0].goldencup); case PowerUp.MAGNET_POWERUP: return (powerupsXML.poweruplist[0].stickyball); case PowerUp.MEAT_POWERUP: return (powerupsXML.poweruplist[0].protein); case PowerUp.MEDAL_POWERUP: return (powerupsXML.poweruplist[0].medal); case PowerUp.PUMP_POWERUP: return (powerupsXML.poweruplist[0].pump); case PowerUp.REDCARD_POWERUP: return (powerupsXML.poweruplist[0].redcard); case PowerUp.SPIKEDBOOT_POWERUP: return (powerupsXML.poweruplist[0].spikedboot); case PowerUp.YELLOWCARD_POWERUP: return (powerupsXML.poweruplist[0].yellowcard); case PowerUp.POWERUP_MAX: break; }; throw (Error("Powerup not supported")); } public function getStyles():String{ return (styles); } public function getDemolitionToolConfig(_arg1:String):XML{ var kind = _arg1; return (configXML.demolitionTools.tool.(@kind == kind)[0]); } private function setConfigs(_arg1:Object, _arg2:Object, _arg3:Object, _arg4:Object, _arg5:Object, _arg6:Object):void{ levelsXML = XML(_arg1); configXML = XML(_arg2); interfacesXML = XML(_arg3); styles = String(_arg4); teamsXML = XML(_arg5); powerupsXML = XML(_arg6); _onInitCallback(); } public function getComponentConfig(_arg1:String):XML{ var infos:XMLList; var factoryID = _arg1; infos = interfacesXML.children().(@factoryID == factoryID); if (infos.length() != 1){ throw (new Error((("Can't retrieve component configuration with factoryID=\"" + factoryID) + "\""))); }; return (infos[0]); } public function getBlockConfig(_arg1:String):XML{ var kind = _arg1; return (configXML.blocks.block.(@kind == kind)[0]); } public function getTeamConfig(_arg1:String):XML{ var _local2:XML; for each (_local2 in teamsXML.teams) { if (_local2.id == _arg1){ return (_local2); }; }; throw (Error((("team " + _arg1) + " does not exist"))); } } }//package wbo.managers
Section 492
//ConfigManager_configXMLClass (wbo.managers.ConfigManager_configXMLClass) package wbo.managers { import mx.core.*; public class ConfigManager_configXMLClass extends ByteArrayAsset { } }//package wbo.managers
Section 493
//ConfigManager_interfacesXMLClass (wbo.managers.ConfigManager_interfacesXMLClass) package wbo.managers { import mx.core.*; public class ConfigManager_interfacesXMLClass extends ByteArrayAsset { } }//package wbo.managers
Section 494
//ConfigManager_levelsXMLClass (wbo.managers.ConfigManager_levelsXMLClass) package wbo.managers { import mx.core.*; public class ConfigManager_levelsXMLClass extends ByteArrayAsset { } }//package wbo.managers
Section 495
//ConfigManager_powerupsClass (wbo.managers.ConfigManager_powerupsClass) package wbo.managers { import mx.core.*; public class ConfigManager_powerupsClass extends ByteArrayAsset { } }//package wbo.managers
Section 496
//ConfigManager_stylesClass (wbo.managers.ConfigManager_stylesClass) package wbo.managers { import mx.core.*; public class ConfigManager_stylesClass extends ByteArrayAsset { } }//package wbo.managers
Section 497
//ConfigManager_teamsClass (wbo.managers.ConfigManager_teamsClass) package wbo.managers { import mx.core.*; public class ConfigManager_teamsClass extends ByteArrayAsset { } }//package wbo.managers
Section 498
//Managers (wbo.managers.Managers) package wbo.managers { import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.font.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.sound.*; import com.bigwigmedia.net.*; import wbo.services.*; import com.bigwigmedia.mvc.*; import com.bigwigmedia.core.*; public class Managers { private static var _levelProgressService:LevelProgressService; private static var _soundManager:ISoundManager; private static var _configManager:ConfigManager; private static var initialized:Boolean = false; private static var _urlCaller:IURLCaller; private static var _fontManager:IFontManager; private static var _styleManager:IStyleManager; private static var _soManager:ISOManager; private static var onInitCallback:Function; private static var _cursorManager:ICursorManager; public static function onButtonRollOver(_arg1:AbstractButton):void{ } public static function get configManager():ConfigManager{ return (_configManager); } public static function initialize(_arg1:Function):void{ if (initialized){ throw (new Error("Managers initialized already")); }; initialized = true; Managers.onInitCallback = _arg1; Singleton.registerClassByInterface(IFontManager, FontManager); _fontManager = IFontManager(Singleton.getInstanceByInterface(IFontManager)); Singleton.registerClassByInterface(ICursorManager, CursorManager); _cursorManager = ICursorManager(Singleton.getInstanceByInterface(ICursorManager)); Singleton.registerClassByInterface(ISoundManager, SoundManager); _soundManager = ISoundManager(Singleton.getInstanceByInterface(ISoundManager)); Singleton.registerClassByInterface(IStyleManager, StyleManager); _styleManager = IStyleManager(Singleton.getInstanceByInterface(IStyleManager)); Singleton.registerClassByInterface(ISOManager, SOManager); _soManager = ISOManager(Singleton.getInstanceByInterface(ISOManager)); Singleton.registerClassByInterface(IURLCaller, URLCaller_2DPlay); _urlCaller = IURLCaller(Singleton.getInstanceByInterface(IURLCaller)); Singleton.registerClassByInterface(IToolTipManager, ToolTipManager); var _local2:IToolTipManager = IToolTipManager(Singleton.getInstanceByInterface(IToolTipManager)); _local2.showDelay = 250; ComponentView.componentFactory = new ViewComponentFactory(); _configManager = new ConfigManager(onConfigManagerInit); _styleManager.parseCSS(_configManager.getStyles()); } public static function onButtonClick(_arg1:AbstractButton):void{ _soundManager.playSingle("button_click"); } public static function get urlCaller():IURLCaller{ return (_urlCaller); } private static function onConfigManagerInit():void{ trace(("style manager : " + _styleManager)); trace(("config manager: " + _configManager)); _levelProgressService = new LevelProgressService(); Managers.onInitCallback(); Managers.onInitCallback = null; } public static function get fontManager():IFontManager{ return (_fontManager); } public static function get soundManager():ISoundManager{ return (_soundManager); } public static function get levelProgressService():LevelProgressService{ return (_levelProgressService); } public static function get soManager():ISOManager{ return (_soManager); } public static function get cursorManager():ICursorManager{ return (_cursorManager); } public static function get styleManager():IStyleManager{ return (_styleManager); } } }//package wbo.managers
Section 499
//ViewComponentFactory (wbo.managers.ViewComponentFactory) package wbo.managers { import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.common.*; import com.bigwigmedia.mvc.*; import flash.utils.*; import com.bigwigmedia.ui.decorations.*; import com.bigwigmedia.ui.containers.*; import com.bigwigmedia.ui.utils.*; public class ViewComponentFactory implements IComponentFactory { private var linkClasses:Array; public function ViewComponentFactory(){ linkClasses = [Canvas, VBox, HBox, Label, LabelButton, Button, SkinnedButton, Spacer, TextInput, List, Image, Text, HSlider, VScrollBar, HScrollBar, FilterDecoration, TintDecoration, ColorBeacon]; super(); } public function create(_arg1:ComponentView):Component{ var _local2:String; var _local3:IComponentIDSupplierView = (_arg1 as IComponentIDSupplierView); if (_local3){ _local2 = _local3.componentID; } else { _local2 = getQualifiedClassName(_arg1); }; var _local4:XML = Managers.configManager.getComponentConfig(_local2); return (ComponentFactory.create(_local4)); } } }//package wbo.managers
Section 500
//WBOPreloader (wbo.preloader.WBOPreloader) package wbo.preloader { import flash.display.*; import flash.events.*; import com.bigwigmedia.preloaders.*; import com.bigwigmedia.events.*; import com.bigwigmedia.core.*; import com.bigwigmedia.tweens.*; import assets.*; import flash.system.*; import flash.net.*; import flash.filters.*; public class WBOPreloader extends AbstractPreloader { private var _progressBarMask:MovieClip; private var _animation:MovieClip; private var _adHolder:Sprite; private var _hideBarTween:ITween; private var _logoButton:MovieClip; private var _sprite:PreloaderSprite; private var _progressBar:MovieClip; private var _tween:ITween; private var _adLoader:Loader; private var _appID:String; public static const AD_LOADER_URL:String = "http://adserver.bigwigmedia.com/ingamead4.swf"; public function WBOPreloader(){ _appID = Globals.application.info.id; _sprite = new PreloaderSprite(); _sprite.x = 305; _sprite.y = 260; _animation = _sprite._animation; _progressBar = _sprite._progress_bar; _adHolder = _sprite._ad_holder; _logoButton = _sprite._logo_button; _progressBarMask = _progressBar._mask; _progressBar.alpha = 0; _logoButton.alpha = 0; _adHolder.alpha = 0; _adHolder.x = -135; _logoButton.x = -141; _progressBar.x = -85; _logoButton.stop(); addEventListener(Event.ENTER_FRAME, onFrameEnterAnimation); this.addEventListener(MouseEvent.CLICK, onClickHandler); addChild(_sprite); loadAd(); } private function playGame():void{ this.removeEventListener(MouseEvent.CLICK, onClickHandler); _tween.dispose(); if (_hideBarTween){ _hideBarTween.dispose(); _hideBarTween = null; }; _adLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onAdLoadErrorHandler); try { _adLoader.close(); _adLoader.unload(); } catch(error:Error) { }; dispatchEvent(new PreloaderEvent(PreloaderEvent.COMPLETE, 1)); } private function onLogoButtonEnterFrame(_arg1:Event):void{ var _local2:uint; var _local3:Number; if (_logoButton.currentFrame >= _logoButton.totalFrames){ _local2 = 14955570; _local3 = 16; _logoButton.filters = [new GlowFilter()]; _tween = new SequenceTween([new FilterTween(_logoButton, GlowFilter, {color:_local2, blurX:0, blurY:0}, {color:_local2, blurX:_local3, blurY:_local3}, 700), new FilterTween(_logoButton, GlowFilter, {color:_local2, blurX:_local3, blurY:_local3}, {color:_local2, blurX:0, blurY:0}, 700)], true); _tween.playAuto(); _logoButton.stop(); removeEventListener(Event.ENTER_FRAME, onLogoButtonEnterFrame); }; } private function navigateTwoDPlay():void{ try { navigateToURL(new URLRequest(("http://www.2DPlay.com/index.php?gameid=" + _appID)), "_blank"); } catch(error:Error) { trace("Can't navigate to http://www.2DPlay.com."); }; } private function onClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target.name){ case "_two_d_play_logo": navigateTwoDPlay(); break; case "_play_game_button": playGame(); break; }; } private function onTweenCompleteHandler(_arg1:TweenEvent):void{ _tween.removeEventListener(TweenEvent.COMPLETE, onTweenCompleteHandler); _tween.dispose(); this.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); } private function loadAd():void{ if (Security.sandboxType == Security.LOCAL_WITH_FILE){ trace("Movie sandbox type is LOCAL WITH FILE. It can't participate in BigWig Media ads network."); } else { Security.allowDomain("pagead2.googlesyndication.com", "server.cpmstar.com", "adserver.bigwigmedia.com"); _adLoader = new Loader(); _adLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onAdLoadErrorHandler); _adHolder.addChild(_adLoader); try { _adLoader.load(new URLRequest(AD_LOADER_URL)); } catch(error:Error) { trace((("Resource " + AD_LOADER_URL) + " is unavailable.")); }; }; } private function onAdLoadErrorHandler(_arg1:IOErrorEvent):void{ trace((("Resource " + AD_LOADER_URL) + " is unavailable.")); } private function onAnimationEndHandler(_arg1:Event):void{ switch (_arg1.type){ case "logoButtonAnimationEnd": break; case "animationEnd": break; }; } private function onEnterFrameHandler(_arg1:Event):void{ var _local2:Number = percentLoaded; _progressBarMask.scaleX = _local2; if (_local2 == 1){ this.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); _logoButton.play(); _hideBarTween = new PropertyTween(_progressBar, "alpha", 1, 0, 700); _hideBarTween.playAuto(); addEventListener(Event.ENTER_FRAME, onLogoButtonEnterFrame); }; } private function onFrameEnterAnimation(_arg1:Event):void{ if (_sprite._animation.currentFrame >= _sprite._animation.totalFrames){ removeEventListener(Event.ENTER_FRAME, onFrameEnterAnimation); _progressBarMask.scaleX = percentLoaded; _tween = new ParallelTween([new PropertyTween(_progressBar, "alpha", 0, 1, 1000), new PropertyTween(_logoButton, "alpha", 0, 1, 1000), new PropertyTween(_adHolder, "alpha", 0, 1, 1000)]); _tween.addEventListener(TweenEvent.COMPLETE, onTweenCompleteHandler); _tween.playAuto(); }; } } }//package wbo.preloader
Section 501
//LevelProgressService (wbo.services.LevelProgressService) package wbo.services { import wbo.managers.*; import wbo.common.*; import wbo.game.*; import flash.utils.*; import com.bigwigmedia.core.*; import wbo.constants.*; import com.dynamicflash.util.*; public class LevelProgressService { private var mGameScores:Array; private var mAwards:Array; private var mSoundState:Boolean; private var _levelInfoList:Array; private var mYellowCardCount:int; private var _userTeam:int; private var _selectedUserLevelUID:String; private var _userLevelUIDList:Array; private var mCurLevelResult:LevelResult; private var _defenderTeam:int; private var mTeamLevel:Array; private var mShownInitialInstructions:Boolean; private var mRefereeHitCount:int; private var mRedCardCount:int; private var _uidToUserLevelInfoHash:Object; private var _currentLevel:int; private var mBackDirection:int; private var mLevelStatus:Array; private var mTotalLives:int; public static const BACK_TO_GAMEPLAY:int = 2; public static const LOAD_RESULT_DUPLICATE:String = "LOAD_RESULT_DUPLICATE"; public static const LOAD_RESULT_INVALID:String = "LOAD_RESULT_INVALID"; public static const BACK_TO_LEVEL_WON:int = 1; public static const BACK_TO_MAIN_MENU:int = 0; public static const LOAD_RESULT_SUCCESS:String = "LOAD_RESULT_SUCCESS"; public function LevelProgressService(){ _uidToUserLevelInfoHash = {}; super(); Singleton.checkInstance(this); resetGameProgress(); if (Managers.soManager.getValue("previousGame")){ trace("saved game found!"); loadGame(); } else { trace("no game"); }; } public function GetTotalScore():int{ var _local1:int; var _local2:int; _local1 = 0; while (_local1 < mGameScores.length) { _local2 = (_local2 + mGameScores[_local1]); _local1++; }; return (_local2); } public function SetTotalLives(_arg1:int):void{ mTotalLives = _arg1; if (mCurLevelResult){ mCurLevelResult.livesLeft = _arg1; }; } public function get currentLevel():int{ return (_currentLevel); } public function AddYellowCard():void{ mYellowCardCount++; } public function deleteUserLevel(_arg1:String):void{ if (!_uidToUserLevelInfoHash[_arg1]){ throw (new Error((("Level with uid=\"" + _arg1) + "\" doesn't exist"))); }; var _local2:int = _userLevelUIDList.indexOf(_arg1); _userLevelUIDList.splice(_local2, 1); delete _uidToUserLevelInfoHash[_arg1]; Managers.soManager.setValue(_arg1, undefined); } public function resetFullGame():void{ resetGameProgress(); Managers.soManager.flush(); saveGame(); } public function set soundState(_arg1:Boolean):void{ mSoundState = _arg1; } public function GetScore(_arg1:LevelResult):int{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local2:int; var _local3:int; var _local4:int = (_arg1.livesLeft * 5000); if (_arg1.bricksDestroyed){ for each (_local9 in _arg1.bricksDestroyed) { switch (_local9){ case 0: _local6++; break; case 1: _local7++; break; case 2: _local8++; break; }; }; _local2 = (((_local6 * 1000) + (_local7 * 3000)) + (_local8 * 7000)); }; if (_arg1.powerupsReceived){ _local10 = 0; for each (_local11 in _arg1.powerupsReceived) { if (_local11 == PowerUp.MEDAL_POWERUP){ _local10++; }; }; _local3 = (_local10 * Managers.configManager.getPowerUpValue(PowerUp.MEDAL_POWERUP)); }; _local5 = ((_local2 + _local3) + _local4); return (_local5); } public function set currentLevel(_arg1:int):void{ if (_arg1 > 28){ _arg1 = 28; }; _currentLevel = _arg1; } public function set userTeam(_arg1:int):void{ _userTeam = _arg1; } public function getUserLevelInfo(_arg1:String):LevelInfo{ if (!_uidToUserLevelInfoHash[_arg1]){ throw (new Error((("Level with uid=\"" + _arg1) + "\" doesn't exist"))); }; return (_uidToUserLevelInfoHash[_arg1]); } public function getLevelInfo():LevelInfo{ return (getLevelInfoList()[_selectedUserLevelUID]); } public function ResetLives():void{ mTotalLives = 3; } public function saveSelectedUserLevel():void{ saveUserLevel(_selectedUserLevelUID); } public function ResetScore():void{ var _local1:int; mGameScores = new Array(); _local1 = 0; while (_local1 < mTeamLevel.length) { mGameScores[_local1] = 0; _local1++; }; } public function set selectedUserLevelUID(_arg1:String):void{ _selectedUserLevelUID = _arg1; } public function saveGame():void{ var _local1:int; Managers.soManager.setValue("previousGame", true); Managers.soManager.setValue("currentLevel", _currentLevel); _local1 = 0; while (_local1 < mGameScores.length) { Managers.soManager.setValue(("level" + _local1), mGameScores[_local1]); _local1++; }; _local1 = 0; while (_local1 < mTeamLevel.length) { Managers.soManager.setValue(("team" + _local1), mTeamLevel[_local1]); _local1++; }; _local1 = 0; while (_local1 < mAwards.length) { Managers.soManager.setValue(("award" + _local1), mAwards[_local1]); _local1++; }; Managers.soManager.setValue("userTeam", userTeam); _local1 = 0; while (_local1 < mLevelStatus.length) { Managers.soManager.setValue(("levelStatus" + _local1), mLevelStatus[_local1]); _local1++; }; Managers.soManager.setValue("soundState", mSoundState); Managers.soManager.setValue("totalLives", mTotalLives); Managers.soManager.setValue("instructionsShown", mShownInitialInstructions); Managers.soManager.setValue("refereeHit", mRefereeHitCount); Managers.soManager.setValue("redCardCount", mRedCardCount); Managers.soManager.setValue("yellowCardCount", mYellowCardCount); Managers.soManager.flush(); } public function get refereeHitCount():int{ return (mRefereeHitCount); } public function get totalLives():int{ return (mTotalLives); } public function RandomizeTeams(_arg1:int):void{ var _local2:int; var _local3:int; var _local5:int; var _local6:int; var _local7:int; var _local4:Array = new Array(); _local2 = 0; while (_local2 < mTeamLevel.length) { if (mTeamLevel[_local2] != _arg1){ _local4[_local3] = int(mTeamLevel[_local2]); _local3++; }; _local2++; }; mTeamLevel = _local4; _local2 = 0; while (_local2 < 16) { _local5 = (Math.random() * mTeamLevel.length); _local6 = ((_local5 + 6) % mTeamLevel.length); _local7 = mTeamLevel[_local5]; mTeamLevel[_local5] = mTeamLevel[_local6]; mTeamLevel[_local6] = _local7; _local2++; }; _local2 = 0; while (_local2 < mTeamLevel.length) { trace(("teams : " + Teams.GetTeamName(mTeamLevel[_local2]))); _local2++; }; } public function set backDirection(_arg1:int):void{ mBackDirection = _arg1; } public function deleteSelectedUserLevel():void{ deleteUserLevel(_selectedUserLevelUID); } public function GetLevelStatus(_arg1:int):Boolean{ if (_arg1 > mLevelStatus.length){ return (false); }; return (mLevelStatus[_arg1]); } public function saveSelectedLevel(_arg1:XML):void{ _levelInfoList[_selectedUserLevelUID] = new LevelInfo(_arg1); } public function resetGameProgress():void{ var _local1:int; mLevelStatus = new Array(); _local1 = 0; while (_local1 <= 32) { mLevelStatus[_local1] = false; _local1++; }; mTeamLevel = new Array(); _local1 = 0; while (_local1 < 32) { mTeamLevel[_local1] = (_local1 + 2); _local1++; }; mLevelStatus[0] = true; ResetScore(); mTotalLives = 3; mAwards = new Array(); _local1 = 0; while (_local1 < 8) { mAwards[_local1] = false; _local1++; }; mRedCardCount = 0; mYellowCardCount = 0; mRefereeHitCount = 0; _userTeam = 0; mBackDirection = -1; mSoundState = true; _currentLevel = 0; mShownInitialInstructions = false; } public function loadLevel(_arg1:String):String{ var bytes:ByteArray; var str:String; var xml:XML; var info:LevelInfo; var levelString = _arg1; try { bytes = Base64.decodeToByteArray(levelString); bytes.uncompress(); str = bytes.readUTFBytes(bytes.length); xml = new XML(str); xml.@imported = "true"; info = new LevelInfo(xml); if (_uidToUserLevelInfoHash[info.uid]){ return (LOAD_RESULT_DUPLICATE); }; _uidToUserLevelInfoHash[info.uid] = info; _userLevelUIDList.push(info.uid); saveUserLevel(info.uid); return (LOAD_RESULT_SUCCESS); } catch(e:Error) { trace(e.message); }; return (LOAD_RESULT_INVALID); } public function set defenderTeam(_arg1:int):void{ _defenderTeam = _arg1; } public function get soundState():Boolean{ return (mSoundState); } public function AddRefereeHit():void{ mRefereeHitCount++; } public function isPlayingUserLevel():Boolean{ return (!((_selectedUserLevelUID == null))); } public function AddRedCard():void{ mRedCardCount++; } public function SetCurrentLevelScore(_arg1:int):void{ if (mGameScores[_currentLevel] < _arg1){ mGameScores[_currentLevel] = _arg1; }; } public function get userTeam():int{ return (_userTeam); } public function completeLevel(_arg1:LevelResult):void{ var _local2:String = _arg1.levelUID; var _local3:int = GetScore(_arg1); if (_local3 > mGameScores[int(_arg1.levelUID)]){ mGameScores[int(_arg1.levelUID)] = _local3; }; if (mCurLevelResult){ mCurLevelResult.dispose(); }; mCurLevelResult = new LevelResult(_arg1.levelUID, _arg1.totalTime, _arg1.bricksDestroyed, _arg1.powerupsReceived, _arg1.livesLeft, _arg1.scaredDeaths); mTotalLives = mCurLevelResult.livesLeft; trace("set current result"); if (!mLevelStatus[currentLevel]){ mLevelStatus[currentLevel] = true; }; } public function ResetStage():void{ var _local3:int; var _local1:int = (int((_currentLevel / 7)) * 7); var _local2:int = (int(((_currentLevel + 7) / 7)) * 7); _local3 = _local1; while (_local3 < _local2) { mGameScores[_local3] = 0; mLevelStatus[_local3] = false; _local3++; }; mTotalLives = 3; } public function getUserLevelInfoList():Array{ var _local1:Array = []; var _local2:int = _userLevelUIDList.length; var _local3:int; while (_local3 < _local2) { _local1.push(getUserLevelInfo(_userLevelUIDList[_local3])); _local3++; }; return (_local1); } public function addUserLevel(_arg1:String, _arg2:String, _arg3:String):void{ var _local4:LevelInfo = LevelInfo.createNew(_arg1, _arg2, _arg3); _levelInfoList.push(_local4); _uidToUserLevelInfoHash[_local4.uid] = _local4; _userLevelUIDList.push(_local4.uid); saveUserLevel(_local4.uid); } public function getLevelInfoList():Array{ var _local1:XMLList; var _local2:XML; if (!_levelInfoList){ _levelInfoList = []; _local1 = Managers.configManager.getLevelsConfig(); for each (_local2 in _local1) { _levelInfoList[int(_local2.@id)] = new LevelInfo(_local2); }; }; return (_levelInfoList); } public function GetCurrentLevelTeam(_arg1:int):int{ return (mTeamLevel[(_arg1 - 1)]); } public function get backDirection():int{ return (mBackDirection); } public function get selectedUserLevelUID():String{ return (_selectedUserLevelUID); } public function get awards():Array{ return (mAwards); } public function get redCardCount():int{ return (mRedCardCount); } public function get defenderTeam():int{ return (_defenderTeam); } public function get instructionsShown():Boolean{ return (mShownInitialInstructions); } public function get yellowCardCount():int{ return (mYellowCardCount); } public function updateForNextLevel():void{ if (!isPlayingUserLevel()){ if (_currentLevel < 28){ _currentLevel++; trace(("current level : " + _currentLevel)); }; }; } public function getAllUserLevelsXML():XML{ var _local4:String; var _local5:XML; var _local1:XML = <levels/> ; var _local2:int = _userLevelUIDList.length; var _local3:int; while (_local3 < _local2) { _local4 = _userLevelUIDList[_local3]; _local5 = new XML(Managers.soManager.getValue(_local4)); _local1.appendChild(_local5); _local3++; }; return (_local1); } public function get currentResult():LevelResult{ return (mCurLevelResult); } public function loadGame():void{ var _local1:int; _currentLevel = (Managers.soManager.getValue("currentLevel") as int); _local1 = 0; while (_local1 < mGameScores.length) { mGameScores[_local1] = (Managers.soManager.getValue(("level" + _local1)) as int); _local1++; }; _local1 = 0; while (_local1 < mTeamLevel.length) { mTeamLevel[_local1] = (Managers.soManager.getValue(("team" + _local1)) as int); _local1++; }; _local1 = 0; while (_local1 < mAwards.length) { mAwards[_local1] = (Managers.soManager.getValue(("award" + _local1)) as Boolean); _local1++; }; userTeam = (Managers.soManager.getValue("userTeam") as int); _local1 = 0; while (_local1 < mLevelStatus.length) { mLevelStatus[_local1] = (Managers.soManager.getValue(("levelStatus" + _local1)) as Boolean); _local1++; }; mSoundState = (Managers.soManager.getValue("soundState") as Boolean); if (!mSoundState){ Managers.soundManager.masterVolume = 0; } else { Managers.soundManager.masterVolume = 1; }; mTotalLives = Managers.soManager.getValue("totalLives"); if (mTotalLives == 0){ mTotalLives = 3; }; mShownInitialInstructions = Managers.soManager.getValue("instructionsShown"); mRefereeHitCount = Managers.soManager.getValue("refereeHit"); mRedCardCount = Managers.soManager.getValue("redCardCount"); mYellowCardCount = Managers.soManager.getValue("yellowCardCount"); } public function set instructionsShown(_arg1:Boolean):void{ mShownInitialInstructions = _arg1; } public function UnlockAward(_arg1:int):void{ mAwards[_arg1] = true; } public function saveUserLevel(_arg1:String):void{ Managers.soManager.setValue(_arg1, getUserLevelInfo(_arg1).xml.toXMLString()); } public function getAllLevelsXML():String{ var _local2:int; var _local3:Object; var _local1 = ""; _local1 = (_local1 + "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n"); _local1 = (_local1 + "<levels>\n"); for each (_local3 in _levelInfoList) { if (((_local3) && ((_local3 is LevelInfo)))){ _local1 = (_local1 + (_local3 as LevelInfo).xml); }; }; _local1 = (_local1 + "\n</levels>"); return (_local1); } } }//package wbo.services
Section 502
//TeamSelectionController (wbo.teamSelection.TeamSelectionController) package wbo.teamSelection { import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; import wbo.core.*; public class TeamSelectionController extends EventDispatcher implements IController { private var _view:TeamSelectionView; public function TeamSelectionController(){ _view = new TeamSelectionView(this); } public function resetGame():void{ Managers.levelProgressService.resetGameProgress(); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.RESET_GAME)); } public function get view():DisplayObject{ return (_view); } public function gotoMainMenu():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } public function startGame():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.START)); } public function gotoLevelSelect(_arg1:int):void{ Managers.levelProgressService.userTeam = _arg1; dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_LEVEL_SELECTION)); } public function dispose():void{ _view.dispose(); } } }//package wbo.teamSelection
Section 503
//TeamSelectionView (wbo.teamSelection.TeamSelectionView) package wbo.teamSelection { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; import flash.geom.*; import assets.*; import wbo.constants.*; import flash.filters.*; public class TeamSelectionView extends DialogOwnerView { private const TEAM_BASE_Y:int = 260; private var mUniform:MovieClip; private var TEAM_SCALE:Number;// = 0.6 private var mUpdateNamePosition:Boolean; private var mTeamName:Label; private var mMouseOverName:Label; private var mFlags:Array; private var mPictureFrame:Sprite; private var mSelectedTeam:int; private var mPrevWidth:int; private var mTeam:Array; private var mCoach:Sprite; private var mSelectedFlag:Sprite; private var _controller:TeamSelectionController; private var mKeeper:Sprite; public function TeamSelectionView(_arg1:TeamSelectionController){ var _local2:int; super(); _controller = _arg1; var _local3:Sprite = new teamSelectBackground(); _local3.x = (15 - (_local3.width / 2)); _local3.y = (14 - (_local3.height / 2)); _local3.scaleX = (_local3.scaleY = 0.95); mPictureFrame = new Sprite(); mPictureFrame.addChild(_local3); mPictureFrame.addChild(new teamselect_pictureframe()); mPictureFrame.scaleX = 0.55; mPictureFrame.scaleY = 0.55; mPictureFrame.x = 450; mPictureFrame.y = 220; addChild(mPictureFrame); mMouseOverName = new Label(); mMouseOverName.center = 0; InitFlags(); InitTeam(); addEventListener(Event.ENTER_FRAME, onEnterFrame); } override protected function onDialogClose():void{ if (_dialog.option == DialogOption.OK){ _controller.resetGame(); }; } private function onMouseClickHandler(_arg1:MouseEvent):void{ var _local2:int; var _local3:int; var _local5:Array; var _local6:Sprite; var _local7:int; var _local8:int; var _local9:int; var _local4 = -1; _local2 = 0; while (_local2 < mFlags.length) { _local5 = mFlags[_local2]; if (_local5.indexOf(_arg1.currentTarget) != -1){ _local4 = _local2; for each (_local6 in mTeam) { removeChild(_local6); }; _local3 = 0; while (_local3 < mTeam.length) { _local7 = (370 + ((_local3 % 5) * 42)); _local8 = (TEAM_BASE_Y + (int((_local3 / 5)) * 30)); _local9 = _local3; mTeam[_local9] = new Sprite(); mUniform = new uniform_footballer(); mTeam[_local9] = GetUniform(mUniform, _local5[1]); mTeam[_local9].scaleX = TEAM_SCALE; mTeam[_local9].scaleY = TEAM_SCALE; mTeam[_local9].x = _local7; mTeam[_local9].y = _local8; addChild(mTeam[_local9]); mUniform = null; _local3++; }; mTeamName.text = Teams.GetTeamName(_local5[1]); mSelectedTeam = _local5[1]; mUpdateNamePosition = true; break; }; _local2++; }; Managers.soundManager.playSingle("button_click"); if (_local4 >= 0){ UpdateSelectedFlag(_local4); }; } private function onMouseMoveHandler(_arg1:MouseEvent):void{ var _local2:int; var _local3:int; var _local6:Array; var _local7:Sprite; var _local8:GlowFilter; var _local4:Point = new Point(_arg1.stageX, _arg1.stageY); var _local5:Boolean; _local2 = 0; while (_local2 < mFlags.length) { _local6 = mFlags[_local2]; _local7 = _local6[0]; if (_local7.hitTestPoint(_arg1.stageX, _arg1.stageY)){ mMouseOverName.text = Teams.GetTeamName(_local6[1]); mMouseOverName.x = (mFlags[_local2][0].x + _local7.width); mMouseOverName.y = ((mFlags[_local2][0].y + (_local7.height / 2)) - (mMouseOverName.height / 2)); addChild(mMouseOverName); _local5 = true; if (((_local7.filters) && ((_local7.filters.length == 0)))){ trace("glowing"); _local8 = new GlowFilter(); _local8.color = 0xFFFFFF; _local8.alpha = 1; _local8.blurX = 10; _local8.blurY = 10; _local8.strength = 2; _local7.filters = [_local8]; }; } else { if (_local7.filters){ _local7.filters = null; }; }; _local2++; }; if (!_local5){ if (this.contains(mMouseOverName)){ removeChild(mMouseOverName); }; }; } public function onEnterFrame(_arg1:Event):void{ if (((mUpdateNamePosition) && (!((mTeamName.width == mPrevWidth))))){ mUpdateNamePosition = false; mTeamName.x = (mPictureFrame.x - (mTeamName.width / 2)); mPrevWidth = mTeamName.width; }; } override protected function onComponentClick(_arg1:Component):void{ var _local2:Button = (_arg1 as Button); if (!_local2){ return; }; switch (_local2.name){ case "mainMenuButton": _controller.gotoMainMenu(); break; case "continueButton": Managers.levelProgressService.RandomizeTeams(mSelectedTeam); _controller.gotoLevelSelect(mSelectedTeam); break; default: if ((_local2.value is Number)){ Managers.levelProgressService.currentLevel = _local2.value; Managers.levelProgressService.selectedUserLevelUID = null; _controller.startGame(); }; break; }; } private function GetUniform(_arg1:MovieClip, _arg2:int):Sprite{ var _local3:int; var _local4:MovieClip; var _local5:MovieClip; var _local6:MovieClip; var _local7:MovieClip; var _local8:MovieClip; var _local9:MovieClip; var _local10:MovieClip; var _local11:MovieClip; var _local16:MovieClip; var _local12:int = (1 + (Math.random() * 4)); var _local13 = 1; var _local14:int = (1 + (Math.random() * 4)); var _local15:Sprite = new Sprite(); _local3 = 0; while (_local3 < _arg1.footballer.numChildren) { _local16 = (_arg1.footballer.getChildAt(_local3) as MovieClip); if ((_local16 is uniform_legs)){ _local10 = (_local16.getChildAt(0) as MovieClip); _local10.gotoAndStop(_local12); _local10.x = (1.8 - 32.25); _local10.y = -25; _local15.addChild(_local10); } else { if ((_local16 is uniform_socks)){ _local7 = (_local16.getChildAt(0) as MovieClip); _local7.gotoAndStop(_arg2); _local15.addChild(_local7); _local7.x = -30; _local7.y = -23; } else { if ((_local16 is uniform_boots)){ _local9 = (_local16.getChildAt(0) as MovieClip); _local9.gotoAndStop(1); _local15.addChild(_local9); _local9.x = -30; _local9.y = 27; _local9 = (_local16.getChildAt(0) as MovieClip); _local9.gotoAndStop(1); _local15.addChild(_local9); _local9.x = 5.5; _local9.y = 27; } else { if ((_local16 is uniform_shirt)){ _local8 = (_local16.getChildAt(0) as MovieClip); _local8.gotoAndStop(_arg2); _local15.addChild(_local8); _local8.x = (0 - 32.25); _local8.y = (0 - 28.4); } else { if ((_local16 is uniform_shorts)){ _local6 = (_local16.getChildAt(0) as MovieClip); _local6.gotoAndStop(_arg2); _local15.addChild(_local6); _local6.x = (-0.2 - 32.25); _local6.y = (29.1 - 56.8); } else { if ((_local16 is uniform_skin)){ _local5 = (_local16.getChildAt(0) as MovieClip); _local5.gotoAndStop(_local12); _local15.addChild(_local5); _local5.x = -32; _local5.y = -27; } else { if ((_local16 is uniform_face)){ _local4 = (_local16.getChildAt(0) as MovieClip); _local4.gotoAndStop(_local13); _local15.addChild(_local4); _local4.x = -30; _local4.y = -28; } else { if ((_local16 is uniform_hair)){ _local11 = (_local16.getChildAt(0) as MovieClip); _local11.gotoAndStop(_local14); _local15.addChild(_local11); _local11.x = -32; _local11.y = -27; }; }; }; }; }; }; }; }; _local3++; }; return (_local15); } override public function dispose():void{ var _local1:int; removeEventListener(Event.ENTER_FRAME, onEnterFrame); _controller = null; _local1 = 0; while (_local1 < mFlags.length) { mFlags[_local1][0].removeEventListener(MouseEvent.CLICK, onMouseClickHandler); removeChild(mFlags[_local1][0]); mFlags[_local1][0] = null; mFlags[_local1] = null; _local1++; }; mFlags = null; _local1 = 0; while (_local1 < mTeam.length) { removeChild(mTeam[_local1]); mTeam[_local1] = null; _local1++; }; mTeam = null; removeChild(mKeeper); mKeeper = null; removeChild(mCoach); mCoach = null; mUniform = null; removeChild(mTeamName); mTeamName = null; _local1 = 0; while (_local1 < mPictureFrame.numChildren) { mPictureFrame.removeChildAt(_local1); _local1++; }; removeChild(mPictureFrame); mPictureFrame = null; if (this.contains(mMouseOverName)){ removeChild(mMouseOverName); }; mMouseOverName = null; super.dispose(); } private function UpdateSelectedFlag(_arg1:int):void{ if (((mSelectedFlag) && (this.contains(mSelectedFlag)))){ removeChild(mSelectedFlag); }; mSelectedFlag = null; var _local2:Sprite = mFlags[_arg1][0]; var _local3:BitmapData = new BitmapData(_local2.width, _local2.height, true, 4294967295); _local3.draw(_local2); var _local4:Bitmap = new Bitmap(_local3); mSelectedFlag = new Sprite(); mSelectedFlag.addChild(_local4); mSelectedFlag.x = (mPictureFrame.x - (mSelectedFlag.width / 2)); mSelectedFlag.y = (TEAM_BASE_Y - 90); addChild(mSelectedFlag); _local3 = null; _local4 = null; } private function InitFlags():void{ var _local1:int; var _local3:int; var _local4:int; var _local5:BitmapData; var _local6:Bitmap; var _local7:int; var _local8:Sprite; var _local2:MovieClip = new team_select_flags(); mFlags = new Array(); _local1 = 2; while (_local1 <= _local2.totalFrames) { _local3 = (20 + (((_local1 - 2) % 4) * 60)); _local4 = (10 + (int(((_local1 - 2) / 4)) * 57)); _local2.gotoAndStop(_local1); _local5 = new BitmapData(_local2.width, _local2.height, true, 4278190080); _local5.draw(_local2); _local6 = new Bitmap(_local5); _local7 = (mFlags.push(new Array()) - 1); _local8 = new Sprite(); _local8.addChild(_local6); _local8.x = _local3; _local8.y = _local4; _local8.addEventListener(MouseEvent.CLICK, onMouseClickHandler); mFlags[_local7][1] = _local1; mFlags[_local7][0] = _local8; addChild(mFlags[_local7][0]); _local1++; }; addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler); } private function InitTeam():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; if (mKeeper){ removeChild(mKeeper); }; mKeeper = null; mKeeper = new teamSelect_keeper(); mKeeper.scaleX = (mKeeper.scaleY = TEAM_SCALE); mKeeper.x = 585; mKeeper.y = TEAM_BASE_Y; addChild(mKeeper); if (mCoach){ removeChild(mCoach); }; mCoach = new teamSelectCoach(); mCoach.scaleX = (mCoach.scaleY = TEAM_SCALE); mCoach.x = 320; mCoach.y = TEAM_BASE_Y; addChild(mCoach); mTeam = new Array(10); mSelectedTeam = 2; _local1 = 0; while (_local1 < mTeam.length) { _local2 = (370 + ((_local1 % 5) * 42)); _local3 = (TEAM_BASE_Y + (int((_local1 / 5)) * 30)); _local4 = _local1; mTeam[_local4] = new Sprite(); mUniform = new uniform_footballer(); mTeam[_local4] = GetUniform(mUniform, mSelectedTeam); mTeam[_local4].scaleX = TEAM_SCALE; mTeam[_local4].scaleY = TEAM_SCALE; mTeam[_local4].x = _local2; mTeam[_local4].y = _local3; addChild(mTeam[_local4]); mUniform = null; _local1++; }; mTeamName = new Label(); mTeamName.x = 400; mTeamName.y = (TEAM_BASE_Y - 150); mTeamName.text = "Algeria"; mTeamName.center = 0; addChild(mTeamName); UpdateSelectedFlag(0); mUpdateNamePosition = true; mPrevWidth = -1; } } }//package wbo.teamSelection
Section 504
//TrophyRoomController (wbo.trophyroom.TrophyRoomController) package wbo.trophyroom { import com.bigwigmedia.mvc.events.*; import flash.display.*; import flash.events.*; import wbo.managers.*; import wbo.services.*; import com.bigwigmedia.mvc.*; import wbo.core.*; public class TrophyRoomController extends EventDispatcher implements IController { private var _view:TrophyRoomView; public function TrophyRoomController(){ _view = new TrophyRoomView(this); } public function back():void{ if (Managers.levelProgressService.backDirection == LevelProgressService.BACK_TO_LEVEL_WON){ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_WINNING_SCREEN)); } else { if (Managers.levelProgressService.backDirection == LevelProgressService.BACK_TO_MAIN_MENU){ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } else { throw (Error("Invalid back direction")); }; }; } public function get view():DisplayObject{ return (_view); } public function dispose():void{ trace("dispose trophy room"); _view.dispose(); _view = null; } } }//package wbo.trophyroom
Section 505
//TrophyRoomView (wbo.trophyroom.TrophyRoomView) package wbo.trophyroom { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.controls.*; import com.bigwigmedia.ui.*; import wbo.managers.*; import com.bigwigmedia.mvc.*; import flash.geom.*; import assets.*; public class TrophyRoomView extends ComponentView { private var mAwards:Array; private var mDescriptions:Array; private var mDescLabel:Label; private var mBackButton:Button; private var mGlass:Sprite; private var mAwardPositions:Array; private var mAlternateDescriptions:Array; private var mTrophies:Array; private var mAwardEnabled:Array; private var _textArea:TextArea; private var _controller:TrophyRoomController; public function TrophyRoomView(_arg1:TrophyRoomController){ _controller = _arg1; mTrophies = [stage1_award, stage2_award, stage3_award, stage4_award, time_award, misbehaviour_award, unsportmanlike_award, full_team_award]; mDescriptions = ["Round 1 Winner", "Round 2 Hero", "Round 3 Superstar", "World Cup Breakout Champion 2010!", "Blitz Match Shield", "Serious Card Collector", "Ref Basher", "Full team award!"]; mAlternateDescriptions = ["Win the first round of games to get this award!", "Complete the Quarter finals to get this award!", "Pass the Semi-Finals to get this award!", "Win the Finals and this award is yours!", "Complete a level in 45 seconds or less to get this award!", "Collect 10 reds and 10 yellows to get this award!", "Hit the referee 10 times to get this award!", "Collect 10 lives to get this award!"]; InitAwards(); mGlass = new trophy_glass(); mGlass.x = 70; mGlass.y = 38; addChild(mGlass); mDescLabel = new Label(); mDescLabel.text = "0"; mDescLabel.wordWrap = true; mDescLabel.width = 200; mDescLabel.maxWidth = 600; mDescLabel.maxHeight = 300; mBackButton = new Button(); mBackButton.name = "backButton"; mBackButton.label = "BACK"; mBackButton.x = 10; mBackButton.y = 10; mBackButton.styleName = "mainMenuText"; addChild(mBackButton); } override protected function onComponentClick(_arg1:Component):void{ switch (_arg1.name){ case "backButton": _controller.back(); break; }; } private function InitAwards():void{ var _local1:int; var _local3:int; var _local4:int; var _local5:Sprite; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:BitmapData; var _local10:Bitmap; mAwardEnabled = Managers.levelProgressService.awards; mAwards = new Array(); var _local2:Array = new Array(); _local2.push(new Point(179, 155)); _local2.push(new Point(339, 155)); _local2.push(new Point(495, 155)); _local2.push(new Point(335, 343)); _local2.push(new Point(177, 270)); _local2.push(new Point(485, 270)); _local2.push(new Point(179, 395)); _local2.push(new Point(492, 388)); _local1 = 0; while (_local1 < mAwardEnabled.length) { _local3 = _local2[_local1].x; _local4 = _local2[_local1].y; _local5 = new (mTrophies[_local1]); _local6 = 73; if ((_local5 is stage4_award)){ _local6 = 177; }; _local7 = Math.max(_local5.width, _local5.height); _local8 = (_local6 / _local7); _local5.scaleX = (_local5.scaleY = _local8); _local9 = new BitmapData(_local5.width, _local5.height, true, 0); _local9.draw(_local5, _local5.transform.matrix); _local10 = new Bitmap(_local9); mAwards[_local1] = new Sprite(); mAwards[_local1].addChild(_local10); if (mAwardEnabled[_local1]){ addChild(mAwards[_local1]); }; mAwards[_local1].x = (_local3 - (_local10.width / 2)); mAwards[_local1].y = (_local4 - (_local10.height / 2)); _local1++; }; mAwardPositions = new Array(); mAwardPositions.push(new Point(134, 116)); mAwardPositions.push(new Point(303, 112)); mAwardPositions.push(new Point(460, 111)); mAwardPositions.push(new Point(293, 246)); mAwardPositions.push(new Point(135, 235)); mAwardPositions.push(new Point(446, 239)); mAwardPositions.push(new Point(138, 365)); mAwardPositions.push(new Point(453, 354)); addEventListener(MouseEvent.MOUSE_MOVE, onAwardMoveHandler); } public function onAwardMoveHandler(_arg1:MouseEvent):void{ var _local5:Sprite; var _local6:Rectangle; var _local2:Boolean; var _local3:Point = new Point(_arg1.stageX, _arg1.stageY); var _local4:int; while (_local4 < mAwards.length) { _local5 = mAwards[_local4]; if (_local5){ _local6 = new Rectangle(_local5.x, _local5.y, _local5.width, _local5.height); if (_local6.containsPoint(_local3)){ if (!this.contains(mDescLabel)){ if (mAwardEnabled[_local4]){ mDescLabel.htmlText = (("<p align='center'>" + mDescriptions[_local4]) + "</p>"); } else { mDescLabel.htmlText = (("<p align='center'>" + mAlternateDescriptions[_local4]) + "</p>"); }; addChild(mDescLabel); }; mDescLabel.x = (mAwardPositions[_local4].x - (mDescLabel.width / 4)); mDescLabel.y = mAwardPositions[_local4].y; _local2 = true; break; }; }; _local4++; }; if (((!(_local2)) && (this.contains(mDescLabel)))){ this.removeChild(mDescLabel); }; } override public function dispose():void{ var _local1:int; var _local2:int; removeEventListener(MouseEvent.MOUSE_MOVE, onAwardMoveHandler); _controller = null; _local1 = 0; while (_local1 < mAwards.length) { _local2 = 0; while (_local2 < mAwards[_local1].numChildren) { mAwards[_local1].removeChildAt(_local2); _local2++; }; mAwards[_local1] = null; _local1++; }; mAwards = null; if (this.contains(mDescLabel)){ removeChild(mDescLabel); }; mDescLabel = null; mDescriptions = null; mAwardPositions = null; mAwardEnabled = null; mAlternateDescriptions = null; if (this.contains(mBackButton)){ removeChild(mBackButton); }; mBackButton = null; removeChild(mGlass); mGlass = null; mTrophies = null; super.dispose(); if (_textArea){ removeChild(_textArea); _textArea.dispose(); _textArea = null; }; } } }//package wbo.trophyroom
Section 506
//Main (wbo.Main) package wbo { import com.bigwigmedia.application.*; import wbo.preloader.*; import com.bigwigmedia.mvc.*; import com.bigwigmedia.ui.*; public class Main extends BaseApplication_CPMStar { public static const VERSION:String = "0.1.0.3227"; public function Main(){ super("World Break Out", "1751", VERSION, "com.bigwigmedia.world_breakout", "/"); } override protected function get skipAd():Boolean{ return (true); } override protected function onLoadingComplete():void{ trace("going to game"); removePreloader(); var _local1:Class = getClassByName("wbo.core.MainController"); var _local2:IController = new (_local1); addMainView(_local2.view); } override protected function onInitialize():void{ super.onInitialize(); this.contextMenu = new ContextMenuFactory_2DPlay().menu; fillBackground(0xC0C0C0); fillMask(0); startPreloading(new WBOPreloader()); } } }//package wbo
Section 507
//levelselect_flags (levelselect_flags) package { import flash.display.*; public dynamic class levelselect_flags extends MovieClip { } }//package
Section 508
//uniform_shirt (uniform_shirt) package { import flash.display.*; public dynamic class uniform_shirt extends MovieClip { public var uniform_shirt_holder:MovieClip; } }//package

Library Items

Symbol 1 GraphicUsed by:117
Symbol 2 GraphicUsed by:117
Symbol 3 GraphicUsed by:4
Symbol 4 MovieClipUses:3Used by:19
Symbol 5 GraphicUsed by:6 117
Symbol 6 MovieClipUses:5Used by:19 42
Symbol 7 GraphicUsed by:19 32 42 49 117
Symbol 8 GraphicUsed by:9
Symbol 9 MovieClipUses:8Used by:19
Symbol 10 GraphicUsed by:11
Symbol 11 MovieClipUses:10Used by:19
Symbol 12 GraphicUsed by:13 117
Symbol 13 MovieClipUses:12Used by:19
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClipUses:14Used by:16 117
Symbol 16 MovieClipUses:15Used by:19 32 42 49
Symbol 17 GraphicUsed by:18
Symbol 18 MovieClipUses:17Used by:19
Symbol 19 MovieClipUses:4 6 7 9 11 13 16 18Used by:117
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClipUses:20Used by:32 42 49
Symbol 22 GraphicUsed by:23
Symbol 23 MovieClipUses:22Used by:32
Symbol 24 GraphicUsed by:25
Symbol 25 MovieClipUses:24Used by:32
Symbol 26 GraphicUsed by:27
Symbol 27 MovieClipUses:26Used by:32
Symbol 28 GraphicUsed by:29
Symbol 29 MovieClipUses:28Used by:32 42 49
Symbol 30 GraphicUsed by:31 117
Symbol 31 MovieClipUses:30Used by:32 42
Symbol 32 MovieClipUses:21 23 7 25 27 29 16 31Used by:33
Symbol 33 MovieClipUses:32Used by:117
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClipUses:34Used by:117
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClipUses:36Used by:117
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClipUses:38Used by:42
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:42 49
Symbol 42 MovieClipUses:21 6 7 39 41 29 16 31Used by:117
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:43Used by:49
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:49
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClipUses:47Used by:49
Symbol 49 MovieClipUses:21 44 7 46 41 29 16 48Used by:50
Symbol 50 MovieClipUses:49Used by:117
Symbol 51 GraphicUsed by:53
Symbol 52 GraphicUsed by:53
Symbol 53 MovieClipUses:51 52Used by:117
Symbol 54 SoundUsed by:117
Symbol 55 GraphicUsed by:58
Symbol 56 GraphicUsed by:58
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClipUses:55 56 57Used by:117
Symbol 59 GraphicUsed by:117
Symbol 60 GraphicUsed by:117
Symbol 61 GraphicUsed by:117
Symbol 62 GraphicUsed by:117
Symbol 63 GraphicUsed by:117
Symbol 64 GraphicUsed by:117
Symbol 65 GraphicUsed by:117
Symbol 66 GraphicUsed by:117
Symbol 67 GraphicUsed by:117
Symbol 68 GraphicUsed by:117
Symbol 69 SoundUsed by:117
Symbol 70 GraphicUsed by:117
Symbol 71 GraphicUsed by:117
Symbol 72 GraphicUsed by:117
Symbol 73 GraphicUsed by:117
Symbol 74 GraphicUsed by:117
Symbol 75 SoundUsed by:117
Symbol 76 GraphicUsed by:117
Symbol 77 GraphicUsed by:117
Symbol 78 GraphicUsed by:117
Symbol 79 GraphicUsed by:117
Symbol 80 GraphicUsed by:117
Symbol 81 GraphicUsed by:117
Symbol 82 GraphicUsed by:117
Symbol 83 GraphicUsed by:117
Symbol 84 GraphicUsed by:117
Symbol 85 SoundUsed by:117
Symbol 86 GraphicUsed by:117
Symbol 87 GraphicUsed by:117
Symbol 88 GraphicUsed by:117
Symbol 89 SoundUsed by:117
Symbol 90 GraphicUsed by:117
Symbol 91 GraphicUsed by:117
Symbol 92 GraphicUsed by:117
Symbol 93 GraphicUsed by:117
Symbol 94 GraphicUsed by:117
Symbol 95 GraphicUsed by:117
Symbol 96 GraphicUsed by:117
Symbol 97 GraphicUsed by:117
Symbol 98 SoundUsed by:117
Symbol 99 GraphicUsed by:117
Symbol 100 GraphicUsed by:117
Symbol 101 GraphicUsed by:117
Symbol 102 GraphicUsed by:117
Symbol 103 GraphicUsed by:106
Symbol 104 GraphicUsed by:106
Symbol 105 GraphicUsed by:106
Symbol 106 MovieClip {preloader_fla.smoke_33} [preloader_fla.smoke_33]Uses:103 104 105Used by:117
Symbol 107 SoundUsed by:117
Symbol 108 GraphicUsed by:117
Symbol 109 GraphicUsed by:117
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClipUses:110Used by:117
Symbol 112 GraphicUsed by:113
Symbol 113 MovieClipUses:112Used by:117
Symbol 114 SoundUsed by:117
Symbol 115 GraphicUsed by:116
Symbol 116 MovieClipUses:115Used by:117
Symbol 117 MovieClip {assets.PreloaderAnimation} [assets.PreloaderAnimation]Uses:1 2 19 33 35 37 42 50 53 54 58 5 7 59 60 12 15 30 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 106 107 108 109 111 113 114 116Used by:136
Symbol 118 GraphicUsed by:123
Symbol 119 GraphicUsed by:120
Symbol 120 MovieClipUses:119Used by:123
Symbol 121 GraphicUsed by:123
Symbol 122 GraphicUsed by:123
Symbol 123 MovieClip {preloader_fla.preloader_progress_bar_39} [preloader_fla.preloader_progress_bar_39]Uses:118 120 121 122Used by:136
Symbol 124 GraphicUsed by:125
Symbol 125 MovieClipUses:124Used by:136
Symbol 126 GraphicUsed by:127 128
Symbol 127 ButtonUses:126Used by:135
Symbol 128 MovieClipUses:126Used by:135
Symbol 129 GraphicUsed by:130
Symbol 130 MovieClipUses:129Used by:135
Symbol 131 GraphicUsed by:134
Symbol 132 GraphicUsed by:134
Symbol 133 GraphicUsed by:134
Symbol 134 ButtonUses:131 132 133Used by:135
Symbol 135 MovieClip {assets.TwoDPlayLogoAnimation} [assets.TwoDPlayLogoAnimation]Uses:127 128 130 134Used by:136
Symbol 136 MovieClip {assets.PreloaderSprite} [assets.PreloaderSprite]Uses:117 123 125 135
Symbol 137 GraphicUsed by:139
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClip {assets.goldencup} [assets.goldencup]Uses:137 138
Symbol 140 GraphicUsed by:141
Symbol 141 MovieClipUses:140Used by:150 202 217 298 794 811 824
Symbol 142 GraphicUsed by:146
Symbol 143 GraphicUsed by:146
Symbol 144 GraphicUsed by:146 400 401 424 425 858
Symbol 145 GraphicUsed by:146
Symbol 146 MovieClipUses:142 143 144 145Used by:150
Symbol 147 GraphicUsed by:149
Symbol 148 GraphicUsed by:149
Symbol 149 MovieClipUses:147 148Used by:150
Symbol 150 MovieClip {graphics_fla.Face_63} [graphics_fla.Face_63]Uses:141 146 149Used by:813
Symbol 151 GraphicUsed by:153
Symbol 152 GraphicUsed by:153
Symbol 153 MovieClip {assets.LevelBackground} [assets.LevelBackground]Uses:151 152
Symbol 154 GraphicUsed by:172
Symbol 155 GraphicUsed by:172
Symbol 156 GraphicUsed by:172
Symbol 157 GraphicUsed by:158
Symbol 158 MovieClipUses:157Used by:172
Symbol 159 GraphicUsed by:172
Symbol 160 GraphicUsed by:172
Symbol 161 GraphicUsed by:162 163 164 165 166 167 168 169
Symbol 162 MovieClipUses:161Used by:172 384
Symbol 163 MovieClipUses:161Used by:172 384
Symbol 164 MovieClipUses:161Used by:172 384
Symbol 165 MovieClipUses:161Used by:172 384
Symbol 166 MovieClipUses:161Used by:172 384
Symbol 167 MovieClipUses:161Used by:172 384
Symbol 168 MovieClipUses:161Used by:172 384
Symbol 169 MovieClipUses:161Used by:172 384
Symbol 170 GraphicUsed by:172
Symbol 171 GraphicUsed by:172
Symbol 172 MovieClip {assets.MainMenuBackground} [assets.MainMenuBackground]Uses:154 155 156 158 159 160 162 163 164 165 166 167 168 169 170 171
Symbol 173 GraphicUsed by:174 554 959
Symbol 174 MovieClip {ui_elements_fla.OVERcopy_74} [ui_elements_fla.OVERcopy_74]Uses:173Used by:959
Symbol 175 GraphicUsed by:177 423
Symbol 176 GraphicUsed by:177 423
Symbol 177 MovieClipUses:175 176Used by:178
Symbol 178 MovieClip {assets.football_rolling_holder} [assets.football_rolling_holder]Uses:177
Symbol 179 GraphicUsed by:180
Symbol 180 MovieClip {assets.positionmarker} [assets.positionmarker]Uses:179
Symbol 181 GraphicUsed by:182
Symbol 182 MovieClip {assets.referee} [assets.referee]Uses:181
Symbol 183 GraphicUsed by:184
Symbol 184 MovieClip {assets.teamSelectCoach} [assets.teamSelectCoach]Uses:183
Symbol 185 GraphicUsed by:189 390
Symbol 186 GraphicUsed by:189
Symbol 187 GraphicUsed by:189
Symbol 188 GraphicUsed by:189
Symbol 189 MovieClip {graphics_fla.effectcopy_13} [graphics_fla.effectcopy_13]Uses:185 186 187 188Used by:944
Symbol 190 Sound {audio.vo5} [audio.vo5]
Symbol 191 GraphicUsed by:202 217 298 794 811 824
Symbol 192 GraphicUsed by:202
Symbol 193 GraphicUsed by:202 811
Symbol 194 GraphicUsed by:202 811
Symbol 195 GraphicUsed by:202
Symbol 196 GraphicUsed by:202
Symbol 197 GraphicUsed by:202 811
Symbol 198 GraphicUsed by:202 811
Symbol 199 GraphicUsed by:202
Symbol 200 GraphicUsed by:202
Symbol 201 GraphicUsed by:202
Symbol 202 MovieClip {assets.footballer_hit_2} [assets.footballer_hit_2]Uses:141 191 192 193 194 195 196 197 198 199 200 201
Symbol 203 GraphicUsed by:204
Symbol 204 MovieClip {assets.magnet} [assets.magnet]Uses:203
Symbol 205 GraphicUsed by:206
Symbol 206 MovieClip {assets.stage3_award} [assets.stage3_award]Uses:205
Symbol 207 GraphicUsed by:217
Symbol 208 GraphicUsed by:217
Symbol 209 GraphicUsed by:217 794
Symbol 210 GraphicUsed by:217 794
Symbol 211 GraphicUsed by:214
Symbol 212 GraphicUsed by:214
Symbol 213 GraphicUsed by:214
Symbol 214 MovieClip {graphics_fla.smoke_74} [graphics_fla.smoke_74]Uses:211 212 213Used by:217 794
Symbol 215 GraphicUsed by:217 794
Symbol 216 GraphicUsed by:217 794
Symbol 217 MovieClip {assets.footballer_hit_3} [assets.footballer_hit_3]Uses:141 191 207 208 209 210 214 215 216
Symbol 218 GraphicUsed by:223
Symbol 219 GraphicUsed by:223
Symbol 220 GraphicUsed by:223
Symbol 221 GraphicUsed by:223
Symbol 222 GraphicUsed by:223
Symbol 223 MovieClip {assets.powerup_enabled} [assets.powerup_enabled]Uses:218 219 220 221 222
Symbol 224 GraphicUsed by:225 985
Symbol 225 MovieClip {assets.football} [assets.football]Uses:224
Symbol 226 GraphicUsed by:286
Symbol 227 GraphicUsed by:285
Symbol 228 GraphicUsed by:229
Symbol 229 MovieClipUses:228Used by:285
Symbol 230 GraphicUsed by:231
Symbol 231 MovieClipUses:230Used by:285
Symbol 232 GraphicUsed by:235
Symbol 233 GraphicUsed by:234
Symbol 234 MovieClipUses:233Used by:235
Symbol 235 MovieClipUses:232 234Used by:285
Symbol 236 GraphicUsed by:237
Symbol 237 MovieClipUses:236Used by:285
Symbol 238 FontUsed by:239 242 245 248 252 255 258 261 267 269 272 273 275 277 279 280 281 282
Symbol 239 TextUses:238Used by:285
Symbol 240 GraphicUsed by:241
Symbol 241 MovieClipUses:240Used by:285
Symbol 242 TextUses:238Used by:285
Symbol 243 GraphicUsed by:244
Symbol 244 MovieClipUses:243Used by:285
Symbol 245 TextUses:238Used by:285
Symbol 246 GraphicUsed by:247
Symbol 247 MovieClipUses:246Used by:285
Symbol 248 TextUses:238Used by:285
Symbol 249 GraphicUsed by:251
Symbol 250 GraphicUsed by:251
Symbol 251 MovieClipUses:249 250Used by:285
Symbol 252 TextUses:238Used by:285
Symbol 253 GraphicUsed by:254
Symbol 254 MovieClipUses:253Used by:285
Symbol 255 TextUses:238Used by:285
Symbol 256 GraphicUsed by:257
Symbol 257 MovieClipUses:256Used by:285
Symbol 258 TextUses:238Used by:285
Symbol 259 GraphicUsed by:260
Symbol 260 MovieClipUses:259Used by:285
Symbol 261 TextUses:238Used by:285
Symbol 262 GraphicUsed by:266
Symbol 263 GraphicUsed by:264
Symbol 264 MovieClipUses:263Used by:266
Symbol 265 GraphicUsed by:266
Symbol 266 MovieClipUses:262 264 265Used by:285
Symbol 267 TextUses:238Used by:285
Symbol 268 GraphicUsed by:285
Symbol 269 TextUses:238Used by:285
Symbol 270 GraphicUsed by:271
Symbol 271 MovieClipUses:270Used by:285
Symbol 272 TextUses:238Used by:285
Symbol 273 TextUses:238Used by:285
Symbol 274 GraphicUsed by:285
Symbol 275 TextUses:238Used by:285
Symbol 276 GraphicUsed by:285
Symbol 277 TextUses:238Used by:285
Symbol 278 GraphicUsed by:285
Symbol 279 TextUses:238Used by:285
Symbol 280 TextUses:238Used by:285
Symbol 281 TextUses:238Used by:285
Symbol 282 TextUses:238Used by:285
Symbol 283 FontUsed by:284
Symbol 284 TextUses:283Used by:285
Symbol 285 MovieClipUses:227 229 231 235 237 239 241 242 244 245 247 248 251 252 254 255 257 258 260 261 266 267 268 269 271 272 273 274 275 276 277 278 279 280 281 282 284Used by:286
Symbol 286 MovieClip {assets.InstructionScreen} [assets.InstructionScreen]Uses:226 285
Symbol 287 Sound {audio.vo3} [audio.vo3]
Symbol 288 Sound {audio.vo4} [audio.vo4]
Symbol 289 GraphicUsed by:290
Symbol 290 MovieClip {assets.misbehaviour_award} [assets.misbehaviour_award]Uses:289
Symbol 291 GraphicUsed by:298
Symbol 292 GraphicUsed by:298 824
Symbol 293 GraphicUsed by:298
Symbol 294 GraphicUsed by:298 824
Symbol 295 GraphicUsed by:298 824
Symbol 296 GraphicUsed by:298 824
Symbol 297 GraphicUsed by:298 824
Symbol 298 MovieClip {assets.footballer_hit_1} [assets.footballer_hit_1]Uses:141 191 291 292 293 294 295 296 297
Symbol 299 Sound {audio.vo1} [audio.vo1]
Symbol 300 GraphicUsed by:301
Symbol 301 MovieClip {assets.goal_perimeter} [assets.goal_perimeter]Uses:300
Symbol 302 Sound {audio.vo2} [audio.vo2]
Symbol 303 GraphicUsed by:336 794 811 824
Symbol 304 GraphicUsed by:336
Symbol 305 GraphicUsed by:336
Symbol 306 GraphicUsed by:336
Symbol 307 GraphicUsed by:336
Symbol 308 GraphicUsed by:336
Symbol 309 GraphicUsed by:336
Symbol 310 GraphicUsed by:336
Symbol 311 GraphicUsed by:336
Symbol 312 GraphicUsed by:336
Symbol 313 GraphicUsed by:336
Symbol 314 GraphicUsed by:336
Symbol 315 GraphicUsed by:336
Symbol 316 GraphicUsed by:336
Symbol 317 GraphicUsed by:336
Symbol 318 GraphicUsed by:336
Symbol 319 GraphicUsed by:336
Symbol 320 GraphicUsed by:336
Symbol 321 GraphicUsed by:336
Symbol 322 GraphicUsed by:336
Symbol 323 GraphicUsed by:336
Symbol 324 GraphicUsed by:336
Symbol 325 GraphicUsed by:336
Symbol 326 GraphicUsed by:336
Symbol 327 GraphicUsed by:336
Symbol 328 GraphicUsed by:336
Symbol 329 GraphicUsed by:336
Symbol 330 GraphicUsed by:336
Symbol 331 GraphicUsed by:336
Symbol 332 GraphicUsed by:336
Symbol 333 GraphicUsed by:336
Symbol 334 GraphicUsed by:336
Symbol 335 GraphicUsed by:336
Symbol 336 MovieClipUses:303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335Used by:337
Symbol 337 MovieClip {uniform_shirt} [uniform_shirt]Uses:336Used by:884
Symbol 338 GraphicUsed by:384
Symbol 339 GraphicUsed by:340
Symbol 340 MovieClipUses:339Used by:369 384
Symbol 341 GraphicUsed by:384
Symbol 342 GraphicUsed by:369 382 384 898
Symbol 343 GraphicUsed by:344
Symbol 344 MovieClipUses:343Used by:369 384
Symbol 345 GraphicUsed by:346
Symbol 346 MovieClipUses:345Used by:369 384
Symbol 347 GraphicUsed by:369 384
Symbol 348 GraphicUsed by:369 384
Symbol 349 GraphicUsed by:350 369
Symbol 350 MovieClipUses:349Used by:384
Symbol 351 GraphicUsed by:352 369
Symbol 352 MovieClipUses:351Used by:384
Symbol 353 GraphicUsed by:354
Symbol 354 MovieClipUses:353Used by:355 356 357 358
Symbol 355 MovieClipUses:354Used by:384
Symbol 356 MovieClipUses:354Used by:384
Symbol 357 MovieClipUses:354Used by:384
Symbol 358 MovieClipUses:354Used by:384
Symbol 359 GraphicUsed by:360
Symbol 360 MovieClipUses:359Used by:384
Symbol 361 GraphicUsed by:362
Symbol 362 MovieClipUses:361Used by:384
Symbol 363 GraphicUsed by:364 369
Symbol 364 MovieClipUses:363Used by:384
Symbol 365 GraphicUsed by:369
Symbol 366 GraphicUsed by:369
Symbol 367 MovieClipUsed by:369
Symbol 368 GraphicUsed by:369
Symbol 369 MovieClip {assets.newspaper_outro} [assets.newspaper_outro]Uses:365 363 366 340 342 344 346 347 348 349 351 367 368Used by:384
Symbol 370 GraphicUsed by:382
Symbol 371 GraphicUsed by:382
Symbol 372 GraphicUsed by:373
Symbol 373 MovieClipUses:372Used by:382
Symbol 374 GraphicUsed by:375
Symbol 375 MovieClipUses:374Used by:382
Symbol 376 GraphicUsed by:377
Symbol 377 MovieClipUses:376Used by:382
Symbol 378 GraphicUsed by:382
Symbol 379 GraphicUsed by:380
Symbol 380 MovieClipUses:379Used by:381
Symbol 381 MovieClipUses:380Used by:382
Symbol 382 MovieClipUses:370 342 371 373 375 377 378 381Used by:383 384
Symbol 383 MovieClip {assets.last_screen_tween} [assets.last_screen_tween]Uses:382Used by:384
Symbol 384 MovieClip {assets.game_end_movie} [assets.game_end_movie]Uses:338 340 341 162 163 164 165 166 167 168 169 342 344 346 347 348 350 352 355 356 357 358 360 362 364 369 382 383
Symbol 385 GraphicUsed by:386
Symbol 386 MovieClip {levelselect_flags} [levelselect_flags]Uses:385Used by:858
Symbol 387 GraphicUsed by:390
Symbol 388 GraphicUsed by:390
Symbol 389 GraphicUsed by:390
Symbol 390 MovieClip {graphics_fla.ouch_11} [graphics_fla.ouch_11]Uses:185 387 388 389Used by:391
Symbol 391 MovieClip {assets.ouch_effect} [assets.ouch_effect]Uses:390
Symbol 392 GraphicUsed by:393
Symbol 393 MovieClip {assets.spikedboot} [assets.spikedboot]Uses:392
Symbol 394 GraphicUsed by:395
Symbol 395 MovieClip {assets.paddle_01} [assets.paddle_01]Uses:394
Symbol 396 Sound {audio.football_kick_1} [audio.football_kick_1]
Symbol 397 BitmapUsed by:398
Symbol 398 GraphicUses:397Used by:399
Symbol 399 MovieClip {assets.button_medium_skin} [assets.button_medium_skin]Uses:398
Symbol 400 MovieClip {assets.paddle_boots_01} [assets.paddle_boots_01]Uses:144Used by:402
Symbol 401 MovieClip {assets.paddle_boots_02} [assets.paddle_boots_02]Uses:144Used by:402
Symbol 402 MovieClip {assets.paddle_boots} [assets.paddle_boots]Uses:400 401Used by:549
Symbol 403 GraphicUsed by:404
Symbol 404 MovieClip {assets.teamSelect_player_10} [assets.teamSelect_player_10]Uses:403
Symbol 405 GraphicUsed by:409
Symbol 406 GraphicUsed by:409
Symbol 407 GraphicUsed by:409
Symbol 408 GraphicUsed by:409
Symbol 409 MovieClipUses:405 406 407 408Used by:410
Symbol 410 MovieClip {assets.paddle_skin} [assets.paddle_skin]Uses:409Used by:549
Symbol 411 Sound {audio.earthquake} [audio.earthquake]
Symbol 412 GraphicUsed by:413
Symbol 413 MovieClip {assets.stage1_award} [assets.stage1_award]Uses:412
Symbol 414 Sound {audio.football_bounce_2} [audio.football_bounce_2]
Symbol 415 GraphicUsed by:416
Symbol 416 MovieClip {assets.paddle_narrow_boots} [assets.paddle_narrow_boots]Uses:415
Symbol 417 GraphicUsed by:418
Symbol 418 MovieClip {assets.teamselect_pictureframe} [assets.teamselect_pictureframe]Uses:417
Symbol 419 GraphicUsed by:420
Symbol 420 MovieClipUses:419Used by:423
Symbol 421 GraphicUsed by:422
Symbol 422 MovieClipUses:421Used by:423
Symbol 423 MovieClip {assets.fireball_anim} [assets.fireball_anim]Uses:420 175 176 422Used by:876
Symbol 424 MovieClip {assets.uniform_boots_01} [assets.uniform_boots_01]Uses:144Used by:430
Symbol 425 MovieClip {assets.uniform_boots_02} [assets.uniform_boots_02]Uses:144Used by:430
Symbol 426 GraphicUsed by:427
Symbol 427 MovieClipUses:426Used by:428
Symbol 428 MovieClip {assets.goalkeeper} [assets.goalkeeper]Uses:427
Symbol 429 Sound {audio.biggoal} [audio.biggoal]
Symbol 430 MovieClip {assets.uniform_boots} [assets.uniform_boots]Uses:424 425Used by:884
Symbol 431 GraphicUsed by:435 794 811 824
Symbol 432 GraphicUsed by:435
Symbol 433 GraphicUsed by:435
Symbol 434 GraphicUsed by:435
Symbol 435 MovieClipUses:431 432 433 434Used by:436 883
Symbol 436 MovieClip {assets.paddle_hair} [assets.paddle_hair]Uses:435Used by:549
Symbol 437 GraphicUsed by:440
Symbol 438 GraphicUsed by:440
Symbol 439 GraphicUsed by:440
Symbol 440 MovieClipUses:437 438 439Used by:441
Symbol 441 MovieClip {assets.paddle_legs} [assets.paddle_legs]Uses:440Used by:549
Symbol 442 GraphicUsed by:466 794 811 824
Symbol 443 GraphicUsed by:466
Symbol 444 GraphicUsed by:466
Symbol 445 GraphicUsed by:466
Symbol 446 GraphicUsed by:466
Symbol 447 GraphicUsed by:466
Symbol 448 GraphicUsed by:466
Symbol 449 GraphicUsed by:466
Symbol 450 GraphicUsed by:466
Symbol 451 GraphicUsed by:466
Symbol 452 GraphicUsed by:466
Symbol 453 GraphicUsed by:466
Symbol 454 GraphicUsed by:466
Symbol 455 GraphicUsed by:466
Symbol 456 GraphicUsed by:466
Symbol 457 GraphicUsed by:466
Symbol 458 GraphicUsed by:466
Symbol 459 GraphicUsed by:466
Symbol 460 GraphicUsed by:466
Symbol 461 GraphicUsed by:466
Symbol 462 GraphicUsed by:466
Symbol 463 GraphicUsed by:466
Symbol 464 GraphicUsed by:466
Symbol 465 GraphicUsed by:466
Symbol 466 MovieClipUses:442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465Used by:467 870
Symbol 467 MovieClip {assets.paddle_socks} [assets.paddle_socks]Uses:466Used by:549
Symbol 468 GraphicUsed by:515
Symbol 469 GraphicUsed by:515
Symbol 470 FontUsed by:471
Symbol 471 TextUses:470Used by:515
Symbol 472 GraphicUsed by:515
Symbol 473 FontUsed by:474 476 478 480 482 484 491 493 507 509 511
Symbol 474 TextUses:473Used by:515
Symbol 475 GraphicUsed by:515
Symbol 476 TextUses:473Used by:515
Symbol 477 GraphicUsed by:515
Symbol 478 TextUses:473Used by:515
Symbol 479 GraphicUsed by:515
Symbol 480 TextUses:473Used by:515
Symbol 481 GraphicUsed by:515
Symbol 482 TextUses:473Used by:515
Symbol 483 GraphicUsed by:515
Symbol 484 TextUses:473Used by:515
Symbol 485 GraphicUsed by:515
Symbol 486 GraphicUsed by:515
Symbol 487 GraphicUsed by:515
Symbol 488 GraphicUsed by:515
Symbol 489 GraphicUsed by:515
Symbol 490 GraphicUsed by:515
Symbol 491 TextUses:473Used by:515 688
Symbol 492 GraphicUsed by:515
Symbol 493 TextUses:473Used by:515
Symbol 494 GraphicUsed by:515
Symbol 495 GraphicUsed by:515
Symbol 496 GraphicUsed by:515
Symbol 497 GraphicUsed by:515
Symbol 498 GraphicUsed by:515
Symbol 499 GraphicUsed by:515
Symbol 500 GraphicUsed by:515
Symbol 501 GraphicUsed by:515
Symbol 502 GraphicUsed by:515
Symbol 503 GraphicUsed by:515
Symbol 504 GraphicUsed by:515
Symbol 505 GraphicUsed by:515
Symbol 506 GraphicUsed by:515
Symbol 507 TextUses:473Used by:515
Symbol 508 GraphicUsed by:515
Symbol 509 TextUses:473Used by:515
Symbol 510 GraphicUsed by:515
Symbol 511 TextUses:473Used by:515
Symbol 512 GraphicUsed by:515
Symbol 513 GraphicUsed by:515
Symbol 514 GraphicUsed by:515
Symbol 515 MovieClipUses:468 469 471 472 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514Used by:516
Symbol 516 MovieClip {assets.paddle_shirt} [assets.paddle_shirt]Uses:515Used by:549
Symbol 517 GraphicUsed by:547
Symbol 518 GraphicUsed by:547
Symbol 519 GraphicUsed by:547
Symbol 520 GraphicUsed by:547
Symbol 521 GraphicUsed by:547
Symbol 522 GraphicUsed by:547
Symbol 523 GraphicUsed by:547
Symbol 524 GraphicUsed by:547
Symbol 525 GraphicUsed by:547
Symbol 526 GraphicUsed by:547
Symbol 527 GraphicUsed by:547
Symbol 528 GraphicUsed by:547
Symbol 529 GraphicUsed by:547
Symbol 530 GraphicUsed by:547
Symbol 531 GraphicUsed by:547
Symbol 532 GraphicUsed by:547
Symbol 533 GraphicUsed by:547
Symbol 534 GraphicUsed by:547
Symbol 535 GraphicUsed by:547
Symbol 536 GraphicUsed by:547
Symbol 537 GraphicUsed by:547
Symbol 538 GraphicUsed by:547
Symbol 539 GraphicUsed by:547
Symbol 540 GraphicUsed by:547
Symbol 541 GraphicUsed by:547
Symbol 542 GraphicUsed by:547
Symbol 543 GraphicUsed by:547
Symbol 544 GraphicUsed by:547
Symbol 545 GraphicUsed by:547
Symbol 546 GraphicUsed by:547
Symbol 547 MovieClipUses:517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546Used by:548 882
Symbol 548 MovieClip {assets.paddle_shorts} [assets.paddle_shorts]Uses:547Used by:549
Symbol 549 MovieClip {assets.game_paddle} [assets.game_paddle]Uses:410 436 441 467 402 516 548
Symbol 550 BitmapUsed by:551
Symbol 551 GraphicUses:550Used by:552
Symbol 552 MovieClip {assets.button_large_skin} [assets.button_large_skin]Uses:551
Symbol 553 Sound {audio.cheeringcrowd} [audio.cheeringcrowd]
Symbol 554 MovieClip {ui_elements_fla.OVER_76} [ui_elements_fla.OVER_76]Uses:173Used by:959
Symbol 555 GraphicUsed by:558
Symbol 556 GraphicUsed by:557
Symbol 557 MovieClipUses:556Used by:558
Symbol 558 MovieClip {assets.brick_wall_01} [assets.brick_wall_01]Uses:555 557
Symbol 559 GraphicUsed by:560
Symbol 560 MovieClip {assets.teamSelect_player_06} [assets.teamSelect_player_06]Uses:559
Symbol 561 GraphicUsed by:564
Symbol 562 GraphicUsed by:563
Symbol 563 MovieClip {assets.teamSelect_player_hair_05} [assets.teamSelect_player_hair_05]Uses:562Used by:564
Symbol 564 MovieClip {assets.teamSelect_player_05} [assets.teamSelect_player_05]Uses:561 563
Symbol 565 GraphicUsed by:569
Symbol 566 GraphicUsed by:567
Symbol 567 MovieClip {assets.teamSelect_player_hair_08} [assets.teamSelect_player_hair_08]Uses:566Used by:569
Symbol 568 GraphicUsed by:569
Symbol 569 MovieClip {assets.teamSelect_player_08} [assets.teamSelect_player_08]Uses:565 567 568
Symbol 570 GraphicUsed by:573
Symbol 571 GraphicUsed by:572
Symbol 572 MovieClip {assets.teamSelect_player_hair_07} [assets.teamSelect_player_hair_07]Uses:571Used by:573
Symbol 573 MovieClip {assets.teamSelect_player_07} [assets.teamSelect_player_07]Uses:570 572
Symbol 574 GraphicUsed by:575
Symbol 575 MovieClip {assets.teamSelect_player_hair_02} [assets.teamSelect_player_hair_02]Uses:574Used by:576
Symbol 576 MovieClip {assets.teamSelect_player_02} [assets.teamSelect_player_02]Uses:575
Symbol 577 GraphicUsed by:580
Symbol 578 GraphicUsed by:579
Symbol 579 MovieClip {assets.teamSelect_player_hair_01} [assets.teamSelect_player_hair_01]Uses:578Used by:580
Symbol 580 MovieClip {assets.teamSelect_player_01} [assets.teamSelect_player_01]Uses:577 579
Symbol 581 GraphicUsed by:584
Symbol 582 GraphicUsed by:583
Symbol 583 MovieClip {assets.teamSelect_player_hair_04} [assets.teamSelect_player_hair_04]Uses:582Used by:584
Symbol 584 MovieClip {assets.teamSelect_player_04} [assets.teamSelect_player_04]Uses:581 583
Symbol 585 GraphicUsed by:588
Symbol 586 GraphicUsed by:587
Symbol 587 MovieClip {assets.teamSelect_player_hair_03} [assets.teamSelect_player_hair_03]Uses:586Used by:588
Symbol 588 MovieClip {assets.teamSelect_player_03} [assets.teamSelect_player_03]Uses:585 587
Symbol 589 GraphicUsed by:590
Symbol 590 MovieClip {assets.paddle_03} [assets.paddle_03]Uses:589
Symbol 591 GraphicUsed by:624
Symbol 592 GraphicUsed by:624
Symbol 593 GraphicUsed by:624
Symbol 594 GraphicUsed by:624
Symbol 595 GraphicUsed by:624
Symbol 596 GraphicUsed by:624
Symbol 597 GraphicUsed by:624
Symbol 598 GraphicUsed by:624
Symbol 599 GraphicUsed by:624
Symbol 600 GraphicUsed by:624
Symbol 601 GraphicUsed by:624
Symbol 602 GraphicUsed by:624
Symbol 603 GraphicUsed by:624
Symbol 604 GraphicUsed by:624
Symbol 605 GraphicUsed by:624
Symbol 606 GraphicUsed by:624
Symbol 607 GraphicUsed by:624
Symbol 608 GraphicUsed by:624
Symbol 609 GraphicUsed by:624
Symbol 610 GraphicUsed by:624
Symbol 611 GraphicUsed by:624
Symbol 612 GraphicUsed by:624
Symbol 613 GraphicUsed by:624
Symbol 614 GraphicUsed by:624
Symbol 615 GraphicUsed by:624
Symbol 616 GraphicUsed by:624
Symbol 617 GraphicUsed by:624
Symbol 618 GraphicUsed by:624
Symbol 619 GraphicUsed by:624
Symbol 620 GraphicUsed by:624
Symbol 621 GraphicUsed by:624
Symbol 622 GraphicUsed by:624
Symbol 623 GraphicUsed by:624
Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow]Uses:591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623
Symbol 625 GraphicUsed by:628
Symbol 626 GraphicUsed by:627
Symbol 627 MovieClip {assets.teamSelect_player_hair_09} [assets.teamSelect_player_hair_09]Uses:626Used by:628
Symbol 628 MovieClip {assets.teamSelect_player_09} [assets.teamSelect_player_09]Uses:625 627
Symbol 629 GraphicUsed by:631 654
Symbol 630 GraphicUsed by:631 654
Symbol 631 MovieClip {assets.teamSelectBg} [assets.teamSelectBg]Uses:629 630
Symbol 632 GraphicUsed by:633
Symbol 633 MovieClip {assets.paddle_02} [assets.paddle_02]Uses:632
Symbol 634 GraphicUsed by:635
Symbol 635 MovieClip {assets.levelselect_levellocked} [assets.levelselect_levellocked]Uses:634
Symbol 636 GraphicUsed by:637 959
Symbol 637 MovieClip {assets.twodplayicon} [assets.twodplayicon]Uses:636Used by:959
Symbol 638 GraphicUsed by:642
Symbol 639 GraphicUsed by:642
Symbol 640 GraphicUsed by:642
Symbol 641 GraphicUsed by:642
Symbol 642 MovieClip {assets.paddle_wide_legs} [assets.paddle_wide_legs]Uses:638 639 640 641
Symbol 643 Sound {audio.whistlestartgame} [audio.whistlestartgame]
Symbol 644 BitmapUsed by:645
Symbol 645 GraphicUses:644Used by:646
Symbol 646 MovieClip {assets.button_small_skin} [assets.button_small_skin]Uses:645
Symbol 647 GraphicUsed by:648
Symbol 648 MovieClip {assets.game_bench} [assets.game_bench]Uses:647
Symbol 649 GraphicUsed by:650
Symbol 650 MovieClip {assets.bruiser_01_02} [assets.bruiser_01_02]Uses:649
Symbol 651 GraphicUsed by:652
Symbol 652 MovieClip {assets.bruiser_01_03} [assets.bruiser_01_03]Uses:651
Symbol 653 GraphicUsed by:654
Symbol 654 MovieClip {assets.teamSelectBackground} [assets.teamSelectBackground]Uses:629 630 653
Symbol 655 GraphicUsed by:688
Symbol 656 GraphicUsed by:688
Symbol 657 GraphicUsed by:688
Symbol 658 GraphicUsed by:688
Symbol 659 GraphicUsed by:688
Symbol 660 GraphicUsed by:688
Symbol 661 GraphicUsed by:688
Symbol 662 GraphicUsed by:688
Symbol 663 GraphicUsed by:688
Symbol 664 GraphicUsed by:688
Symbol 665 GraphicUsed by:688
Symbol 666 GraphicUsed by:688
Symbol 667 GraphicUsed by:688
Symbol 668 GraphicUsed by:688
Symbol 669 GraphicUsed by:688
Symbol 670 GraphicUsed by:688
Symbol 671 GraphicUsed by:688
Symbol 672 GraphicUsed by:688
Symbol 673 GraphicUsed by:688
Symbol 674 GraphicUsed by:688
Symbol 675 GraphicUsed by:688
Symbol 676 GraphicUsed by:688
Symbol 677 GraphicUsed by:688
Symbol 678 GraphicUsed by:688
Symbol 679 GraphicUsed by:688
Symbol 680 GraphicUsed by:688
Symbol 681 GraphicUsed by:688
Symbol 682 GraphicUsed by:688
Symbol 683 GraphicUsed by:688
Symbol 684 GraphicUsed by:688
Symbol 685 GraphicUsed by:688
Symbol 686 GraphicUsed by:688
Symbol 687 GraphicUsed by:688
Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide]Uses:655 656 657 658 659 660 661 662 663 664 665 666 667 668 491 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687
Symbol 689 GraphicUsed by:690
Symbol 690 MovieClip {assets.HUDBackground} [assets.HUDBackground]Uses:689
Symbol 691 GraphicUsed by:692
Symbol 692 MovieClip {assets.bruiser_01_01} [assets.bruiser_01_01]Uses:691
Symbol 693 GraphicUsed by:697 714
Symbol 694 GraphicUsed by:695
Symbol 695 MovieClipUses:694Used by:714
Symbol 696 GraphicUsed by:714
Symbol 697 MovieClipUses:693Used by:714
Symbol 698 GraphicUsed by:714
Symbol 699 GraphicUsed by:700
Symbol 700 MovieClipUses:699Used by:714
Symbol 701 GraphicUsed by:714
Symbol 702 GraphicUsed by:714
Symbol 703 GraphicUsed by:714
Symbol 704 GraphicUsed by:714
Symbol 705 GraphicUsed by:709
Symbol 706 GraphicUsed by:707
Symbol 707 MovieClipUses:706Used by:709
Symbol 708 GraphicUsed by:709
Symbol 709 MovieClipUses:705 707 708Used by:714
Symbol 710 GraphicUsed by:714
Symbol 711 GraphicUsed by:713
Symbol 712 GraphicUsed by:713
Symbol 713 MovieClipUses:711 712Used by:714
Symbol 714 MovieClip {assets.intro_anim_clip} [assets.intro_anim_clip]Uses:693 695 696 697 698 700 701 702 703 704 709 710 713
Symbol 715 Sound {audio.button_click} [audio.button_click]
Symbol 716 GraphicUsed by:717
Symbol 717 MovieClip {assets.pump} [assets.pump]Uses:716
Symbol 718 GraphicUsed by:722 794 811 824
Symbol 719 GraphicUsed by:722
Symbol 720 GraphicUsed by:722
Symbol 721 GraphicUsed by:722
Symbol 722 MovieClipUses:718 719 720 721Used by:723
Symbol 723 MovieClip {assets.uniform_skin} [assets.uniform_skin]Uses:722Used by:884
Symbol 724 Sound {audio.ouch7} [audio.ouch7]
Symbol 725 GraphicUsed by:726
Symbol 726 MovieClipUses:725Used by:727 900
Symbol 727 MovieClip {assets.pulsating_head} [assets.pulsating_head]Uses:726
Symbol 728 Sound {audio.ouch8} [audio.ouch8]
Symbol 729 Sound {audio.paddle_hit} [audio.paddle_hit]
Symbol 730 Sound {audio.lifelost} [audio.lifelost]
Symbol 731 GraphicUsed by:764
Symbol 732 GraphicUsed by:764
Symbol 733 GraphicUsed by:764
Symbol 734 GraphicUsed by:764
Symbol 735 GraphicUsed by:764
Symbol 736 GraphicUsed by:764
Symbol 737 GraphicUsed by:764
Symbol 738 GraphicUsed by:764
Symbol 739 GraphicUsed by:764
Symbol 740 GraphicUsed by:764
Symbol 741 GraphicUsed by:764
Symbol 742 GraphicUsed by:764
Symbol 743 GraphicUsed by:764
Symbol 744 GraphicUsed by:764
Symbol 745 GraphicUsed by:764
Symbol 746 GraphicUsed by:764
Symbol 747 GraphicUsed by:764
Symbol 748 GraphicUsed by:764
Symbol 749 GraphicUsed by:764
Symbol 750 GraphicUsed by:764
Symbol 751 GraphicUsed by:764
Symbol 752 GraphicUsed by:764
Symbol 753 GraphicUsed by:764
Symbol 754 GraphicUsed by:764
Symbol 755 GraphicUsed by:764
Symbol 756 GraphicUsed by:764
Symbol 757 GraphicUsed by:764
Symbol 758 GraphicUsed by:764
Symbol 759 GraphicUsed by:764
Symbol 760 GraphicUsed by:764
Symbol 761 GraphicUsed by:764
Symbol 762 GraphicUsed by:764
Symbol 763 GraphicUsed by:764
Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal]Uses:731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763
Symbol 765 GraphicUsed by:769
Symbol 766 GraphicUsed by:769
Symbol 767 GraphicUsed by:769
Symbol 768 GraphicUsed by:769
Symbol 769 MovieClipUses:765 766 767 768Used by:770
Symbol 770 MovieClip {assets.trophy_glass} [assets.trophy_glass]Uses:769
Symbol 771 Sound {audio.whistle11} [audio.whistle11]
Symbol 772 GraphicUsed by:782
Symbol 773 GraphicUsed by:781
Symbol 774 GraphicUsed by:781
Symbol 775 GraphicUsed by:781
Symbol 776 GraphicUsed by:777
Symbol 777 MovieClipUses:776Used by:781
Symbol 778 GraphicUsed by:781
Symbol 779 GraphicUsed by:781
Symbol 780 GraphicUsed by:781
Symbol 781 MovieClipUses:773 774 775 777 778 779 780Used by:782
Symbol 782 MovieClipUses:772 781Used by:783
Symbol 783 MovieClip {assets.main_menu_game_logo} [assets.main_menu_game_logo]Uses:782
Symbol 784 GraphicUsed by:785
Symbol 785 MovieClip {assets.stage2_award} [assets.stage2_award]Uses:784
Symbol 786 GraphicUsed by:789
Symbol 787 GraphicUsed by:789
Symbol 788 GraphicUsed by:789
Symbol 789 MovieClipUses:786 787 788Used by:794 811 824
Symbol 790 GraphicUsed by:794 811 824
Symbol 791 GraphicUsed by:794 811 824
Symbol 792 GraphicUsed by:794
Symbol 793 GraphicUsed by:794
Symbol 794 MovieClip {graphics_fla.Footballerhit6_71} [graphics_fla.Footballerhit6_71]Uses:789 442 790 303 791 718 141 431 191 792 793 209 210 214 215 216Used by:815
Symbol 795 Sound {audio.ouch1} [audio.ouch1]
Symbol 796 Sound {audio.ouch2} [audio.ouch2]
Symbol 797 Sound {audio.powerdown} [audio.powerdown]
Symbol 798 Sound {audio.ouch3} [audio.ouch3]
Symbol 799 GraphicUsed by:800
Symbol 800 MovieClip {assets.meat} [assets.meat]Uses:799
Symbol 801 Sound {audio.ouch4} [audio.ouch4]
Symbol 802 GraphicUsed by:803
Symbol 803 MovieClip {assets.paddle_wide_boots} [assets.paddle_wide_boots]Uses:802
Symbol 804 Sound {audio.ouch5} [audio.ouch5]
Symbol 805 Sound {audio.ouch6} [audio.ouch6]
Symbol 806 GraphicUsed by:811
Symbol 807 GraphicUsed by:811
Symbol 808 GraphicUsed by:811
Symbol 809 GraphicUsed by:811
Symbol 810 GraphicUsed by:811
Symbol 811 MovieClip {graphics_fla.Footballerhit5_76} [graphics_fla.Footballerhit5_76]Uses:789 442 790 303 791 718 141 431 191 806 193 194 807 197 198 808 809 810Used by:812
Symbol 812 MovieClip {assets.death_02} [assets.death_02]Uses:811
Symbol 813 MovieClip {assets.uniform_face} [assets.uniform_face]Uses:150Used by:884
Symbol 814 Sound {audio.rage_sound} [audio.rage_sound]
Symbol 815 MovieClip {assets.death_03} [assets.death_03]Uses:794
Symbol 816 Sound {audio.levelwon} [audio.levelwon]
Symbol 817 Sound {audio.gameambience} [audio.gameambience]
Symbol 818 GraphicUsed by:819
Symbol 819 MovieClip {assets.game_title} [assets.game_title]Uses:818
Symbol 820 GraphicUsed by:821
Symbol 821 MovieClip {assets.grass_cover} [assets.grass_cover]Uses:820
Symbol 822 GraphicUsed by:824
Symbol 823 GraphicUsed by:824
Symbol 824 MovieClip {graphics_fla.Footballerhit_78} [graphics_fla.Footballerhit_78]Uses:789 442 790 303 791 718 141 431 191 822 292 823 294 295 296 297Used by:825
Symbol 825 MovieClip {assets.death_01} [assets.death_01]Uses:824
Symbol 826 GraphicUsed by:858
Symbol 827 GraphicUsed by:858
Symbol 828 GraphicUsed by:858
Symbol 829 GraphicUsed by:858
Symbol 830 GraphicUsed by:858
Symbol 831 GraphicUsed by:858
Symbol 832 GraphicUsed by:858
Symbol 833 GraphicUsed by:858
Symbol 834 GraphicUsed by:858
Symbol 835 GraphicUsed by:858
Symbol 836 GraphicUsed by:858
Symbol 837 GraphicUsed by:858
Symbol 838 GraphicUsed by:858
Symbol 839 GraphicUsed by:858
Symbol 840 GraphicUsed by:858
Symbol 841 GraphicUsed by:858
Symbol 842 GraphicUsed by:858
Symbol 843 GraphicUsed by:858
Symbol 844 GraphicUsed by:858
Symbol 845 GraphicUsed by:858
Symbol 846 GraphicUsed by:858
Symbol 847 GraphicUsed by:858
Symbol 848 GraphicUsed by:858
Symbol 849 GraphicUsed by:858
Symbol 850 GraphicUsed by:858
Symbol 851 GraphicUsed by:858
Symbol 852 GraphicUsed by:858
Symbol 853 GraphicUsed by:858
Symbol 854 GraphicUsed by:858
Symbol 855 GraphicUsed by:858
Symbol 856 GraphicUsed by:858
Symbol 857 GraphicUsed by:858
Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags]Uses:386 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 144 857
Symbol 859 GraphicUsed by:863
Symbol 860 GraphicUsed by:863
Symbol 861 GraphicUsed by:863
Symbol 862 GraphicUsed by:863
Symbol 863 MovieClip {assets.paddle_wide_skin} [assets.paddle_wide_skin]Uses:859 860 861 862
Symbol 864 GraphicUsed by:867
Symbol 865 GraphicUsed by:867
Symbol 866 GraphicUsed by:867
Symbol 867 MovieClip {assets.uniform_leg_holder} [assets.uniform_leg_holder]Uses:864 865 866Used by:873
Symbol 868 GraphicUsed by:869
Symbol 869 MovieClip {assets.menu_button_over_skin} [assets.menu_button_over_skin]Uses:868
Symbol 870 MovieClip {assets.uniform_socks} [assets.uniform_socks]Uses:466Used by:884
Symbol 871 GraphicUsed by:872
Symbol 872 MovieClip {assets.teamSelect_keeper} [assets.teamSelect_keeper]Uses:871
Symbol 873 MovieClip {assets.uniform_legs} [assets.uniform_legs]Uses:867Used by:884
Symbol 874 GraphicUsed by:875
Symbol 875 MovieClip {assets.bumpmeter_fill} [assets.bumpmeter_fill]Uses:874
Symbol 876 MovieClip {assets.fireball_anim_holder} [assets.fireball_anim_holder]Uses:423
Symbol 877 Sound {audio.cancel_sfx} [audio.cancel_sfx]
Symbol 878 GraphicUsed by:879
Symbol 879 MovieClip {assets.camera} [assets.camera]Uses:878
Symbol 880 GraphicUsed by:881
Symbol 881 MovieClip {assets.goal_frame} [assets.goal_frame]Uses:880
Symbol 882 MovieClip {assets.uniform_shorts} [assets.uniform_shorts]Uses:547Used by:884
Symbol 883 MovieClip {assets.uniform_hair} [assets.uniform_hair]Uses:435Used by:884
Symbol 884 MovieClip {graphics_fla.Footballer_109} [graphics_fla.Footballer_109]Uses:873 870 430 337 882 723 813 883Used by:885
Symbol 885 MovieClip {assets.uniform_footballer} [assets.uniform_footballer]Uses:884
Symbol 886 GraphicUsed by:898
Symbol 887 GraphicUsed by:898
Symbol 888 GraphicUsed by:889
Symbol 889 MovieClipUses:888Used by:898
Symbol 890 GraphicUsed by:898
Symbol 891 GraphicUsed by:892
Symbol 892 MovieClipUses:891Used by:898
Symbol 893 GraphicUsed by:894 895
Symbol 894 MovieClipUses:893Used by:898
Symbol 895 MovieClipUses:893Used by:898
Symbol 896 GraphicUsed by:897
Symbol 897 MovieClipUses:896Used by:898
Symbol 898 MovieClip {assets.LevelLostBackground} [assets.LevelLostBackground]Uses:886 342 887 889 890 892 894 895 897
Symbol 899 MovieClip {assets.TeamSelectionBackground} [assets.TeamSelectionBackground]
Symbol 900 MovieClip {assets.idle_hud_head} [assets.idle_hud_head]Uses:726
Symbol 901 GraphicUsed by:902
Symbol 902 MovieClip {assets.redcard} [assets.redcard]Uses:901
Symbol 903 GraphicUsed by:904
Symbol 904 MovieClip {assets.unsportmanlike_award} [assets.unsportmanlike_award]Uses:903
Symbol 905 GraphicUsed by:906
Symbol 906 MovieClip {assets.bruiser_02_03} [assets.bruiser_02_03]Uses:905
Symbol 907 GraphicUsed by:915
Symbol 908 GraphicUsed by:912
Symbol 909 GraphicUsed by:912
Symbol 910 GraphicUsed by:912
Symbol 911 GraphicUsed by:912
Symbol 912 MovieClipUses:908 909 910 911Used by:915
Symbol 913 GraphicUsed by:915
Symbol 914 GraphicUsed by:915
Symbol 915 MovieClip {assets.paddle_gun} [assets.paddle_gun]Uses:907 912 913 914
Symbol 916 GraphicUsed by:917
Symbol 917 MovieClip {assets.bruiser_02_02} [assets.bruiser_02_02]Uses:916
Symbol 918 GraphicUsed by:919
Symbol 919 MovieClip {assets.bruiser_02_01} [assets.bruiser_02_01]Uses:918
Symbol 920 Sound {audio.splashambience_quiet} [audio.splashambience_quiet]
Symbol 921 GraphicUsed by:922
Symbol 922 MovieClip {assets.medal} [assets.medal]Uses:921
Symbol 923 GraphicUsed by:924
Symbol 924 MovieClip {assets.defender_01} [assets.defender_01]Uses:923
Symbol 925 GraphicUsed by:926
Symbol 926 MovieClip {assets.bruiser_03_02} [assets.bruiser_03_02]Uses:925
Symbol 927 GraphicUsed by:928
Symbol 928 MovieClip {assets.bruiser_03_03} [assets.bruiser_03_03]Uses:927
Symbol 929 GraphicUsed by:930
Symbol 930 MovieClip {assets.bruiser_03_01} [assets.bruiser_03_01]Uses:929
Symbol 931 GraphicUsed by:932
Symbol 932 MovieClip {assets.wbo_award_bg} [assets.wbo_award_bg]Uses:931
Symbol 933 Sound {audio.fanfarelow} [audio.fanfarelow]
Symbol 934 GraphicUsed by:935
Symbol 935 MovieClip {assets.teamSelect_ball} [assets.teamSelect_ball]Uses:934
Symbol 936 GraphicUsed by:937
Symbol 937 MovieClip {assets.yellowcard} [assets.yellowcard]Uses:936
Symbol 938 GraphicUsed by:943
Symbol 939 GraphicUsed by:943
Symbol 940 GraphicUsed by:943
Symbol 941 GraphicUsed by:943
Symbol 942 GraphicUsed by:943
Symbol 943 MovieClip {assets.trophy_room_bg} [assets.trophy_room_bg]Uses:938 939 940 941 942
Symbol 944 MovieClip {assets.goal_effect} [assets.goal_effect]Uses:189
Symbol 945 GraphicUsed by:946
Symbol 946 MovieClip {assets.time_award} [assets.time_award]Uses:945
Symbol 947 GraphicUsed by:956
Symbol 948 GraphicUsed by:956
Symbol 949 GraphicUsed by:956
Symbol 950 GraphicUsed by:956
Symbol 951 GraphicUsed by:956
Symbol 952 GraphicUsed by:956
Symbol 953 GraphicUsed by:956
Symbol 954 GraphicUsed by:956
Symbol 955 GraphicUsed by:956
Symbol 956 MovieClip {assets.gameWonBackground} [assets.gameWonBackground]Uses:947 948 949 950 951 952 953 954 955
Symbol 957 GraphicUsed by:958
Symbol 958 MovieClip {assets.stage4_award} [assets.stage4_award]Uses:957
Symbol 959 Button {assets.2dplaybutton} [assets.2dplaybutton]Uses:174 637 554 173 636
Symbol 960 Font {assets.Font_1} [assets.Font_1]
Symbol 961 GraphicUsed by:965
Symbol 962 GraphicUsed by:965
Symbol 963 GraphicUsed by:965
Symbol 964 GraphicUsed by:965
Symbol 965 MovieClip {assets.paddle_narrow_skin} [assets.paddle_narrow_skin]Uses:961 962 963 964
Symbol 966 GraphicUsed by:973
Symbol 967 GraphicUsed by:968
Symbol 968 MovieClipUses:967Used by:973
Symbol 969 GraphicUsed by:973
Symbol 970 GraphicUsed by:971
Symbol 971 MovieClipUses:970Used by:973
Symbol 972 GraphicUsed by:973
Symbol 973 MovieClip {assets.full_team_award} [assets.full_team_award]Uses:966 968 969 971 972
Symbol 974 Sound {audio.powerup11} [audio.powerup11]
Symbol 975 GraphicUsed by:976
Symbol 976 MovieClip {assets.fireball_powerup} [assets.fireball_powerup]Uses:975
Symbol 977 GraphicUsed by:981
Symbol 978 GraphicUsed by:981
Symbol 979 GraphicUsed by:981
Symbol 980 GraphicUsed by:981
Symbol 981 MovieClip {assets.paddle_narrow_legs} [assets.paddle_narrow_legs]Uses:977 978 979 980
Symbol 982 GraphicUsed by:985
Symbol 983 GraphicUsed by:984
Symbol 984 MovieClipUses:983Used by:985
Symbol 985 MovieClip {assets.penaltykick} [assets.penaltykick]Uses:982 984 224
Symbol 986 Sound {audio.crowdboo} [audio.crowdboo]
Symbol 987 GraphicUsed by:988
Symbol 988 MovieClip {assets.level_won_clock} [assets.level_won_clock]Uses:987
Symbol 989 GraphicUsed by:990
Symbol 990 MovieClip {assets.defender_scared} [assets.defender_scared]Uses:989
Symbol 991 GraphicUsed by:992
Symbol 992 MovieClip {assets.menu_button_up_skin} [assets.menu_button_up_skin]Uses:991
Symbol 993 GraphicUsed by:995
Symbol 994 GraphicUsed by:995
Symbol 995 MovieClip {assets.LevelSelectionBackground} [assets.LevelSelectionBackground]Uses:993 994
Symbol 996 BinaryData {wbo.managers.ConfigManager_teamsClass}
Symbol 997 BinaryData {wbo.managers.ConfigManager_stylesClass}
Symbol 998 BinaryData {wbo.managers.ConfigManager_configXMLClass}
Symbol 999 BinaryData {wbo.managers.ConfigManager_powerupsClass}
Symbol 1000 BinaryData {wbo.managers.ConfigManager_levelsXMLClass}
Symbol 1001 BinaryData {wbo.managers.ConfigManager_interfacesXMLClass}

Instance Names

"_mask"Symbol 123 MovieClip {preloader_fla.preloader_progress_bar_39} [preloader_fla.preloader_progress_bar_39] Frame 1Symbol 120 MovieClip
"_two_d_play_logo"Symbol 135 MovieClip {assets.TwoDPlayLogoAnimation} [assets.TwoDPlayLogoAnimation] Frame 1Symbol 127 Button
"_play_game_button"Symbol 135 MovieClip {assets.TwoDPlayLogoAnimation} [assets.TwoDPlayLogoAnimation] Frame 115Symbol 134 Button
"_animation"Symbol 136 MovieClip {assets.PreloaderSprite} [assets.PreloaderSprite] Frame 1Symbol 117 MovieClip {assets.PreloaderAnimation} [assets.PreloaderAnimation]
"_progress_bar"Symbol 136 MovieClip {assets.PreloaderSprite} [assets.PreloaderSprite] Frame 1Symbol 123 MovieClip {preloader_fla.preloader_progress_bar_39} [preloader_fla.preloader_progress_bar_39]
"_ad_holder"Symbol 136 MovieClip {assets.PreloaderSprite} [assets.PreloaderSprite] Frame 1Symbol 125 MovieClip
"_logo_button"Symbol 136 MovieClip {assets.PreloaderSprite} [assets.PreloaderSprite] Frame 1Symbol 135 MovieClip {assets.TwoDPlayLogoAnimation} [assets.TwoDPlayLogoAnimation]
"uniform_shirt_holder"Symbol 337 MovieClip {uniform_shirt} [uniform_shirt] Frame 1Symbol 336 MovieClip
"newspaper_text_holder_won"Symbol 369 MovieClip {assets.newspaper_outro} [assets.newspaper_outro] Frame 1Symbol 367 MovieClip
"game_won_players_last"Symbol 383 MovieClip {assets.last_screen_tween} [assets.last_screen_tween] Frame 1Symbol 382 MovieClip
"game_won_players_last"Symbol 384 MovieClip {assets.game_end_movie} [assets.game_end_movie] Frame 208Symbol 382 MovieClip
"uniform_skin_holder"Symbol 723 MovieClip {assets.uniform_skin} [assets.uniform_skin] Frame 1Symbol 722 MovieClip
"uniform_face_holder"Symbol 813 MovieClip {assets.uniform_face} [assets.uniform_face] Frame 1Symbol 150 MovieClip {graphics_fla.Face_63} [graphics_fla.Face_63]
"uniform_socks_holder"Symbol 870 MovieClip {assets.uniform_socks} [assets.uniform_socks] Frame 1Symbol 466 MovieClip
"uniform_shorts_holder"Symbol 882 MovieClip {assets.uniform_shorts} [assets.uniform_shorts] Frame 1Symbol 547 MovieClip
"uniform_hair_holder"Symbol 883 MovieClip {assets.uniform_hair} [assets.uniform_hair] Frame 1Symbol 435 MovieClip
"shirt"Symbol 884 MovieClip {graphics_fla.Footballer_109} [graphics_fla.Footballer_109] Frame 1Symbol 337 MovieClip {uniform_shirt} [uniform_shirt]
"footballer"Symbol 885 MovieClip {assets.uniform_footballer} [assets.uniform_footballer] Frame 1Symbol 884 MovieClip {graphics_fla.Footballer_109} [graphics_fla.Footballer_109]

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1458 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 136 as "assets.PreloaderSprite"
ExportAssets (56)Timeline Frame 1Symbol 117 as "assets.PreloaderAnimation"
ExportAssets (56)Timeline Frame 1Symbol 135 as "assets.TwoDPlayLogoAnimation"
ExportAssets (56)Timeline Frame 1Symbol 123 as "preloader_fla.preloader_progress_bar_39"
ExportAssets (56)Timeline Frame 1Symbol 106 as "preloader_fla.smoke_33"
ExportAssets (56)Timeline Frame 2Symbol 139 as "assets.goldencup"
ExportAssets (56)Timeline Frame 2Symbol 150 as "graphics_fla.Face_63"
ExportAssets (56)Timeline Frame 2Symbol 153 as "assets.LevelBackground"
ExportAssets (56)Timeline Frame 2Symbol 172 as "assets.MainMenuBackground"
ExportAssets (56)Timeline Frame 2Symbol 174 as "ui_elements_fla.OVERcopy_74"
ExportAssets (56)Timeline Frame 2Symbol 178 as "assets.football_rolling_holder"
ExportAssets (56)Timeline Frame 2Symbol 180 as "assets.positionmarker"
ExportAssets (56)Timeline Frame 2Symbol 182 as "assets.referee"
ExportAssets (56)Timeline Frame 2Symbol 184 as "assets.teamSelectCoach"
ExportAssets (56)Timeline Frame 2Symbol 189 as "graphics_fla.effectcopy_13"
ExportAssets (56)Timeline Frame 2Symbol 190 as "audio.vo5"
ExportAssets (56)Timeline Frame 2Symbol 202 as "assets.footballer_hit_2"
ExportAssets (56)Timeline Frame 2Symbol 204 as "assets.magnet"
ExportAssets (56)Timeline Frame 2Symbol 206 as "assets.stage3_award"
ExportAssets (56)Timeline Frame 2Symbol 217 as "assets.footballer_hit_3"
ExportAssets (56)Timeline Frame 2Symbol 223 as "assets.powerup_enabled"
ExportAssets (56)Timeline Frame 2Symbol 225 as "assets.football"
ExportAssets (56)Timeline Frame 2Symbol 286 as "assets.InstructionScreen"
ExportAssets (56)Timeline Frame 2Symbol 287 as "audio.vo3"
ExportAssets (56)Timeline Frame 2Symbol 288 as "audio.vo4"
ExportAssets (56)Timeline Frame 2Symbol 290 as "assets.misbehaviour_award"
ExportAssets (56)Timeline Frame 2Symbol 298 as "assets.footballer_hit_1"
ExportAssets (56)Timeline Frame 2Symbol 299 as "audio.vo1"
ExportAssets (56)Timeline Frame 2Symbol 301 as "assets.goal_perimeter"
ExportAssets (56)Timeline Frame 2Symbol 302 as "audio.vo2"
ExportAssets (56)Timeline Frame 2Symbol 337 as "uniform_shirt"
ExportAssets (56)Timeline Frame 2Symbol 384 as "assets.game_end_movie"
ExportAssets (56)Timeline Frame 2Symbol 386 as "levelselect_flags"
ExportAssets (56)Timeline Frame 2Symbol 391 as "assets.ouch_effect"
ExportAssets (56)Timeline Frame 2Symbol 393 as "assets.spikedboot"
ExportAssets (56)Timeline Frame 2Symbol 395 as "assets.paddle_01"
ExportAssets (56)Timeline Frame 2Symbol 396 as "audio.football_kick_1"
ExportAssets (56)Timeline Frame 2Symbol 399 as "assets.button_medium_skin"
ExportAssets (56)Timeline Frame 2Symbol 402 as "assets.paddle_boots"
ExportAssets (56)Timeline Frame 2Symbol 404 as "assets.teamSelect_player_10"
ExportAssets (56)Timeline Frame 2Symbol 410 as "assets.paddle_skin"
ExportAssets (56)Timeline Frame 2Symbol 411 as "audio.earthquake"
ExportAssets (56)Timeline Frame 2Symbol 413 as "assets.stage1_award"
ExportAssets (56)Timeline Frame 2Symbol 414 as "audio.football_bounce_2"
ExportAssets (56)Timeline Frame 2Symbol 416 as "assets.paddle_narrow_boots"
ExportAssets (56)Timeline Frame 2Symbol 418 as "assets.teamselect_pictureframe"
ExportAssets (56)Timeline Frame 2Symbol 423 as "assets.fireball_anim"
ExportAssets (56)Timeline Frame 2Symbol 424 as "assets.uniform_boots_01"
ExportAssets (56)Timeline Frame 2Symbol 425 as "assets.uniform_boots_02"
ExportAssets (56)Timeline Frame 2Symbol 428 as "assets.goalkeeper"
ExportAssets (56)Timeline Frame 2Symbol 429 as "audio.biggoal"
ExportAssets (56)Timeline Frame 2Symbol 430 as "assets.uniform_boots"
ExportAssets (56)Timeline Frame 2Symbol 549 as "assets.game_paddle"
ExportAssets (56)Timeline Frame 2Symbol 552 as "assets.button_large_skin"
ExportAssets (56)Timeline Frame 2Symbol 553 as "audio.cheeringcrowd"
ExportAssets (56)Timeline Frame 2Symbol 554 as "ui_elements_fla.OVER_76"
ExportAssets (56)Timeline Frame 2Symbol 558 as "assets.brick_wall_01"
ExportAssets (56)Timeline Frame 2Symbol 560 as "assets.teamSelect_player_06"
ExportAssets (56)Timeline Frame 2Symbol 564 as "assets.teamSelect_player_05"
ExportAssets (56)Timeline Frame 2Symbol 441 as "assets.paddle_legs"
ExportAssets (56)Timeline Frame 2Symbol 569 as "assets.teamSelect_player_08"
ExportAssets (56)Timeline Frame 2Symbol 214 as "graphics_fla.smoke_74"
ExportAssets (56)Timeline Frame 2Symbol 573 as "assets.teamSelect_player_07"
ExportAssets (56)Timeline Frame 2Symbol 576 as "assets.teamSelect_player_02"
ExportAssets (56)Timeline Frame 2Symbol 580 as "assets.teamSelect_player_01"
ExportAssets (56)Timeline Frame 2Symbol 584 as "assets.teamSelect_player_04"
ExportAssets (56)Timeline Frame 2Symbol 588 as "assets.teamSelect_player_03"
ExportAssets (56)Timeline Frame 2Symbol 590 as "assets.paddle_03"
ExportAssets (56)Timeline Frame 2Symbol 624 as "assets.paddle_narrow"
ExportAssets (56)Timeline Frame 2Symbol 628 as "assets.teamSelect_player_09"
ExportAssets (56)Timeline Frame 2Symbol 631 as "assets.teamSelectBg"
ExportAssets (56)Timeline Frame 2Symbol 633 as "assets.paddle_02"
ExportAssets (56)Timeline Frame 2Symbol 635 as "assets.levelselect_levellocked"
ExportAssets (56)Timeline Frame 2Symbol 637 as "assets.twodplayicon"
ExportAssets (56)Timeline Frame 2Symbol 642 as "assets.paddle_wide_legs"
ExportAssets (56)Timeline Frame 2Symbol 643 as "audio.whistlestartgame"
ExportAssets (56)Timeline Frame 2Symbol 646 as "assets.button_small_skin"
ExportAssets (56)Timeline Frame 2Symbol 648 as "assets.game_bench"
ExportAssets (56)Timeline Frame 2Symbol 650 as "assets.bruiser_01_02"
ExportAssets (56)Timeline Frame 2Symbol 652 as "assets.bruiser_01_03"
ExportAssets (56)Timeline Frame 2Symbol 548 as "assets.paddle_shorts"
ExportAssets (56)Timeline Frame 2Symbol 654 as "assets.teamSelectBackground"
ExportAssets (56)Timeline Frame 2Symbol 688 as "assets.paddle_wide"
ExportAssets (56)Timeline Frame 2Symbol 690 as "assets.HUDBackground"
ExportAssets (56)Timeline Frame 2Symbol 692 as "assets.bruiser_01_01"
ExportAssets (56)Timeline Frame 2Symbol 383 as "assets.last_screen_tween"
ExportAssets (56)Timeline Frame 2Symbol 369 as "assets.newspaper_outro"
ExportAssets (56)Timeline Frame 2Symbol 714 as "assets.intro_anim_clip"
ExportAssets (56)Timeline Frame 2Symbol 715 as "audio.button_click"
ExportAssets (56)Timeline Frame 2Symbol 717 as "assets.pump"
ExportAssets (56)Timeline Frame 2Symbol 723 as "assets.uniform_skin"
ExportAssets (56)Timeline Frame 2Symbol 724 as "audio.ouch7"
ExportAssets (56)Timeline Frame 2Symbol 727 as "assets.pulsating_head"
ExportAssets (56)Timeline Frame 2Symbol 728 as "audio.ouch8"
ExportAssets (56)Timeline Frame 2Symbol 729 as "audio.paddle_hit"
ExportAssets (56)Timeline Frame 2Symbol 730 as "audio.lifelost"
ExportAssets (56)Timeline Frame 2Symbol 436 as "assets.paddle_hair"
ExportAssets (56)Timeline Frame 2Symbol 764 as "assets.paddle_normal"
ExportAssets (56)Timeline Frame 2Symbol 770 as "assets.trophy_glass"
ExportAssets (56)Timeline Frame 2Symbol 771 as "audio.whistle11"
ExportAssets (56)Timeline Frame 2Symbol 783 as "assets.main_menu_game_logo"
ExportAssets (56)Timeline Frame 2Symbol 785 as "assets.stage2_award"
ExportAssets (56)Timeline Frame 2Symbol 794 as "graphics_fla.Footballerhit6_71"
ExportAssets (56)Timeline Frame 2Symbol 795 as "audio.ouch1"
ExportAssets (56)Timeline Frame 2Symbol 796 as "audio.ouch2"
ExportAssets (56)Timeline Frame 2Symbol 797 as "audio.powerdown"
ExportAssets (56)Timeline Frame 2Symbol 798 as "audio.ouch3"
ExportAssets (56)Timeline Frame 2Symbol 800 as "assets.meat"
ExportAssets (56)Timeline Frame 2Symbol 801 as "audio.ouch4"
ExportAssets (56)Timeline Frame 2Symbol 803 as "assets.paddle_wide_boots"
ExportAssets (56)Timeline Frame 2Symbol 804 as "audio.ouch5"
ExportAssets (56)Timeline Frame 2Symbol 805 as "audio.ouch6"
ExportAssets (56)Timeline Frame 2Symbol 812 as "assets.death_02"
ExportAssets (56)Timeline Frame 2Symbol 813 as "assets.uniform_face"
ExportAssets (56)Timeline Frame 2Symbol 572 as "assets.teamSelect_player_hair_07"
ExportAssets (56)Timeline Frame 2Symbol 814 as "audio.rage_sound"
ExportAssets (56)Timeline Frame 2Symbol 815 as "assets.death_03"
ExportAssets (56)Timeline Frame 2Symbol 567 as "assets.teamSelect_player_hair_08"
ExportAssets (56)Timeline Frame 2Symbol 816 as "audio.levelwon"
ExportAssets (56)Timeline Frame 2Symbol 627 as "assets.teamSelect_player_hair_09"
ExportAssets (56)Timeline Frame 2Symbol 817 as "audio.gameambience"
ExportAssets (56)Timeline Frame 2Symbol 575 as "assets.teamSelect_player_hair_02"
ExportAssets (56)Timeline Frame 2Symbol 819 as "assets.game_title"
ExportAssets (56)Timeline Frame 2Symbol 587 as "assets.teamSelect_player_hair_03"
ExportAssets (56)Timeline Frame 2Symbol 583 as "assets.teamSelect_player_hair_04"
ExportAssets (56)Timeline Frame 2Symbol 821 as "assets.grass_cover"
ExportAssets (56)Timeline Frame 2Symbol 563 as "assets.teamSelect_player_hair_05"
ExportAssets (56)Timeline Frame 2Symbol 825 as "assets.death_01"
ExportAssets (56)Timeline Frame 2Symbol 858 as "assets.team_select_flags"
ExportAssets (56)Timeline Frame 2Symbol 863 as "assets.paddle_wide_skin"
ExportAssets (56)Timeline Frame 2Symbol 867 as "assets.uniform_leg_holder"
ExportAssets (56)Timeline Frame 2Symbol 869 as "assets.menu_button_over_skin"
ExportAssets (56)Timeline Frame 2Symbol 870 as "assets.uniform_socks"
ExportAssets (56)Timeline Frame 2Symbol 872 as "assets.teamSelect_keeper"
ExportAssets (56)Timeline Frame 2Symbol 873 as "assets.uniform_legs"
ExportAssets (56)Timeline Frame 2Symbol 875 as "assets.bumpmeter_fill"
ExportAssets (56)Timeline Frame 2Symbol 876 as "assets.fireball_anim_holder"
ExportAssets (56)Timeline Frame 2Symbol 877 as "audio.cancel_sfx"
ExportAssets (56)Timeline Frame 2Symbol 579 as "assets.teamSelect_player_hair_01"
ExportAssets (56)Timeline Frame 2Symbol 879 as "assets.camera"
ExportAssets (56)Timeline Frame 2Symbol 881 as "assets.goal_frame"
ExportAssets (56)Timeline Frame 2Symbol 885 as "assets.uniform_footballer"
ExportAssets (56)Timeline Frame 2Symbol 516 as "assets.paddle_shirt"
ExportAssets (56)Timeline Frame 2Symbol 898 as "assets.LevelLostBackground"
ExportAssets (56)Timeline Frame 2Symbol 899 as "assets.TeamSelectionBackground"
ExportAssets (56)Timeline Frame 2Symbol 824 as "graphics_fla.Footballerhit_78"
ExportAssets (56)Timeline Frame 2Symbol 900 as "assets.idle_hud_head"
ExportAssets (56)Timeline Frame 2Symbol 401 as "assets.paddle_boots_02"
ExportAssets (56)Timeline Frame 2Symbol 400 as "assets.paddle_boots_01"
ExportAssets (56)Timeline Frame 2Symbol 883 as "assets.uniform_hair"
ExportAssets (56)Timeline Frame 2Symbol 902 as "assets.redcard"
ExportAssets (56)Timeline Frame 2Symbol 904 as "assets.unsportmanlike_award"
ExportAssets (56)Timeline Frame 2Symbol 906 as "assets.bruiser_02_03"
ExportAssets (56)Timeline Frame 2Symbol 915 as "assets.paddle_gun"
ExportAssets (56)Timeline Frame 2Symbol 917 as "assets.bruiser_02_02"
ExportAssets (56)Timeline Frame 2Symbol 919 as "assets.bruiser_02_01"
ExportAssets (56)Timeline Frame 2Symbol 920 as "audio.splashambience_quiet"
ExportAssets (56)Timeline Frame 2Symbol 922 as "assets.medal"
ExportAssets (56)Timeline Frame 2Symbol 924 as "assets.defender_01"
ExportAssets (56)Timeline Frame 2Symbol 882 as "assets.uniform_shorts"
ExportAssets (56)Timeline Frame 2Symbol 926 as "assets.bruiser_03_02"
ExportAssets (56)Timeline Frame 2Symbol 928 as "assets.bruiser_03_03"
ExportAssets (56)Timeline Frame 2Symbol 930 as "assets.bruiser_03_01"
ExportAssets (56)Timeline Frame 2Symbol 467 as "assets.paddle_socks"
ExportAssets (56)Timeline Frame 2Symbol 932 as "assets.wbo_award_bg"
ExportAssets (56)Timeline Frame 2Symbol 933 as "audio.fanfarelow"
ExportAssets (56)Timeline Frame 2Symbol 935 as "assets.teamSelect_ball"
ExportAssets (56)Timeline Frame 2Symbol 937 as "assets.yellowcard"
ExportAssets (56)Timeline Frame 2Symbol 943 as "assets.trophy_room_bg"
ExportAssets (56)Timeline Frame 2Symbol 944 as "assets.goal_effect"
ExportAssets (56)Timeline Frame 2Symbol 390 as "graphics_fla.ouch_11"
ExportAssets (56)Timeline Frame 2Symbol 946 as "assets.time_award"
ExportAssets (56)Timeline Frame 2Symbol 956 as "assets.gameWonBackground"
ExportAssets (56)Timeline Frame 2Symbol 958 as "assets.stage4_award"
ExportAssets (56)Timeline Frame 2Symbol 959 as "assets.2dplaybutton"
ExportAssets (56)Timeline Frame 2Symbol 960 as "assets.Font_1"
ExportAssets (56)Timeline Frame 2Symbol 965 as "assets.paddle_narrow_skin"
ExportAssets (56)Timeline Frame 2Symbol 973 as "assets.full_team_award"
ExportAssets (56)Timeline Frame 2Symbol 974 as "audio.powerup11"
ExportAssets (56)Timeline Frame 2Symbol 976 as "assets.fireball_powerup"
ExportAssets (56)Timeline Frame 2Symbol 981 as "assets.paddle_narrow_legs"
ExportAssets (56)Timeline Frame 2Symbol 811 as "graphics_fla.Footballerhit5_76"
ExportAssets (56)Timeline Frame 2Symbol 985 as "assets.penaltykick"
ExportAssets (56)Timeline Frame 2Symbol 884 as "graphics_fla.Footballer_109"
ExportAssets (56)Timeline Frame 2Symbol 986 as "audio.crowdboo"
ExportAssets (56)Timeline Frame 2Symbol 988 as "assets.level_won_clock"
ExportAssets (56)Timeline Frame 2Symbol 990 as "assets.defender_scared"
ExportAssets (56)Timeline Frame 2Symbol 992 as "assets.menu_button_up_skin"
ExportAssets (56)Timeline Frame 2Symbol 995 as "assets.LevelSelectionBackground"
SerialNumber (41)Timeline Frame 1

Labels

"wbo_Main"Frame 1
"start"Frame 2
"ALG"Symbol 336 MovieClip Frame 2
"ARG"Symbol 336 MovieClip Frame 3
"AUS"Symbol 336 MovieClip Frame 4
"BRA"Symbol 336 MovieClip Frame 5
"CAM"Symbol 336 MovieClip Frame 6
"CHI"Symbol 336 MovieClip Frame 7
"CIV"Symbol 336 MovieClip Frame 8
"DEN"Symbol 336 MovieClip Frame 9
"ENG"Symbol 336 MovieClip Frame 10
"FRA"Symbol 336 MovieClip Frame 11
"GER"Symbol 336 MovieClip Frame 12
"GHA"Symbol 336 MovieClip Frame 13
"GRE"Symbol 336 MovieClip Frame 14
"HON"Symbol 336 MovieClip Frame 15
"ITA"Symbol 336 MovieClip Frame 16
"JPN"Symbol 336 MovieClip Frame 17
"KOR"Symbol 336 MovieClip Frame 18
"PRK"Symbol 336 MovieClip Frame 19
"MEX"Symbol 336 MovieClip Frame 20
"NED"Symbol 336 MovieClip Frame 21
"NZL"Symbol 336 MovieClip Frame 22
"NIG"Symbol 336 MovieClip Frame 23
"PAR"Symbol 336 MovieClip Frame 24
"POR"Symbol 336 MovieClip Frame 25
"SER"Symbol 336 MovieClip Frame 26
"SVK"Symbol 336 MovieClip Frame 27
"SVN"Symbol 336 MovieClip Frame 28
"RSA"Symbol 336 MovieClip Frame 29
"SPA"Symbol 336 MovieClip Frame 30
"SUI"Symbol 336 MovieClip Frame 31
"URU"Symbol 336 MovieClip Frame 32
"USA"Symbol 336 MovieClip Frame 33
"ALG"Symbol 466 MovieClip Frame 2
"ARG"Symbol 466 MovieClip Frame 3
"AUS"Symbol 466 MovieClip Frame 4
"BRA"Symbol 466 MovieClip Frame 5
"CAM"Symbol 466 MovieClip Frame 6
"CHI"Symbol 466 MovieClip Frame 7
"CIV"Symbol 466 MovieClip Frame 8
"DEN"Symbol 466 MovieClip Frame 9
"ENG"Symbol 466 MovieClip Frame 10
"FRA"Symbol 466 MovieClip Frame 11
"GER"Symbol 466 MovieClip Frame 12
"GHA"Symbol 466 MovieClip Frame 13
"GRE"Symbol 466 MovieClip Frame 14
"HON"Symbol 466 MovieClip Frame 15
"ITA"Symbol 466 MovieClip Frame 16
"JPN"Symbol 466 MovieClip Frame 17
"KOR"Symbol 466 MovieClip Frame 18
"PRK"Symbol 466 MovieClip Frame 19
"MEX"Symbol 466 MovieClip Frame 20
"NED"Symbol 466 MovieClip Frame 21
"NZL"Symbol 466 MovieClip Frame 22
"NIG"Symbol 466 MovieClip Frame 23
"PAR"Symbol 466 MovieClip Frame 24
"POR"Symbol 466 MovieClip Frame 25
"SER"Symbol 466 MovieClip Frame 26
"SVK"Symbol 466 MovieClip Frame 27
"SVN"Symbol 466 MovieClip Frame 28
"RSA"Symbol 466 MovieClip Frame 29
"SPA"Symbol 466 MovieClip Frame 30
"SUI"Symbol 466 MovieClip Frame 31
"URU"Symbol 466 MovieClip Frame 32
"USA"Symbol 466 MovieClip Frame 33
"ALG"Symbol 515 MovieClip Frame 2
"ARG"Symbol 515 MovieClip Frame 3
"AUS"Symbol 515 MovieClip Frame 4
"BRA"Symbol 515 MovieClip Frame 5
"CAM"Symbol 515 MovieClip Frame 6
"CHI"Symbol 515 MovieClip Frame 7
"CIV"Symbol 515 MovieClip Frame 8
"DEN"Symbol 515 MovieClip Frame 9
"ENG"Symbol 515 MovieClip Frame 10
"FRA"Symbol 515 MovieClip Frame 11
"GER"Symbol 515 MovieClip Frame 12
"GHA"Symbol 515 MovieClip Frame 13
"GRE"Symbol 515 MovieClip Frame 14
"HON"Symbol 515 MovieClip Frame 15
"ITA"Symbol 515 MovieClip Frame 16
"JPN"Symbol 515 MovieClip Frame 17
"KOR"Symbol 515 MovieClip Frame 18
"PRK"Symbol 515 MovieClip Frame 19
"MEX"Symbol 515 MovieClip Frame 20
"NED"Symbol 515 MovieClip Frame 21
"NZL"Symbol 515 MovieClip Frame 22
"NIG"Symbol 515 MovieClip Frame 23
"PAR"Symbol 515 MovieClip Frame 24
"POR"Symbol 515 MovieClip Frame 25
"SER"Symbol 515 MovieClip Frame 26
"SVK"Symbol 515 MovieClip Frame 27
"SVN"Symbol 515 MovieClip Frame 28
"RSA"Symbol 515 MovieClip Frame 29
"SPA"Symbol 515 MovieClip Frame 30
"SUI"Symbol 515 MovieClip Frame 31
"URU"Symbol 515 MovieClip Frame 32
"USA"Symbol 515 MovieClip Frame 33
"ALG"Symbol 547 MovieClip Frame 2
"ARG"Symbol 547 MovieClip Frame 3
"AUS"Symbol 547 MovieClip Frame 4
"BRA"Symbol 547 MovieClip Frame 5
"CAM"Symbol 547 MovieClip Frame 6
"CHI"Symbol 547 MovieClip Frame 7
"CIV"Symbol 547 MovieClip Frame 8
"DEN"Symbol 547 MovieClip Frame 9
"ENG"Symbol 547 MovieClip Frame 10
"FRA"Symbol 547 MovieClip Frame 11
"GER"Symbol 547 MovieClip Frame 12
"GHA"Symbol 547 MovieClip Frame 13
"GRE"Symbol 547 MovieClip Frame 14
"HON"Symbol 547 MovieClip Frame 15
"ITA"Symbol 547 MovieClip Frame 16
"JPN"Symbol 547 MovieClip Frame 17
"KOR"Symbol 547 MovieClip Frame 18
"PRK"Symbol 547 MovieClip Frame 19
"MEX"Symbol 547 MovieClip Frame 20
"NED"Symbol 547 MovieClip Frame 21
"NZL"Symbol 547 MovieClip Frame 22
"NIG"Symbol 547 MovieClip Frame 23
"PAR"Symbol 547 MovieClip Frame 24
"POR"Symbol 547 MovieClip Frame 25
"SER"Symbol 547 MovieClip Frame 26
"SVK"Symbol 547 MovieClip Frame 27
"SVN"Symbol 547 MovieClip Frame 28
"RSA"Symbol 547 MovieClip Frame 29
"SPA"Symbol 547 MovieClip Frame 30
"SUI"Symbol 547 MovieClip Frame 31
"URU"Symbol 547 MovieClip Frame 32
"USA"Symbol 547 MovieClip Frame 33
"ALG"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 2
"ARG"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 3
"AUS"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 4
"BRA"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 5
"CAM"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 6
"CHI"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 7
"CIV"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 8
"DEN"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 9
"ENG"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 10
"FRA"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 11
"GER"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 12
"GHA"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 13
"GRE"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 14
"HON"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 15
"ITA"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 16
"JPN"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 17
"KOR"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 18
"PRK"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 19
"MEX"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 20
"NED"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 21
"NZL"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 22
"NIG"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 23
"PAR"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 24
"POR"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 25
"SER"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 26
"SVK"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 27
"SVN"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 28
"RSA"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 29
"SPA"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 30
"SUI"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 31
"URU"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 32
"USA"Symbol 624 MovieClip {assets.paddle_narrow} [assets.paddle_narrow] Frame 33
"ALG"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 2
"ARG"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 3
"AUS"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 4
"BRA"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 5
"CAM"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 6
"CHI"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 7
"CIV"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 8
"DEN"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 9
"ENG"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 10
"FRA"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 11
"GER"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 12
"GHA"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 13
"GRE"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 14
"HON"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 15
"ITA"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 16
"JPN"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 17
"KOR"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 18
"PRK"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 19
"MEX"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 20
"NED"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 21
"NZL"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 22
"NIG"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 23
"PAR"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 24
"POR"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 25
"SER"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 26
"SVK"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 27
"SVN"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 28
"RSA"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 29
"SPA"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 30
"SUI"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 31
"URU"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 32
"USA"Symbol 688 MovieClip {assets.paddle_wide} [assets.paddle_wide] Frame 33
"ALG"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 2
"ARG"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 3
"AUS"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 4
"BRA"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 5
"CAM"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 6
"CHI"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 7
"CIV"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 8
"DEN"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 9
"ENG"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 10
"FRA"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 11
"GER"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 12
"GHA"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 13
"GRE"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 14
"HON"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 15
"ITA"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 16
"JPN"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 17
"KOR"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 18
"PRK"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 19
"MEX"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 20
"NED"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 21
"NZL"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 22
"NIG"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 23
"PAR"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 24
"POR"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 25
"SER"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 26
"SVK"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 27
"SVN"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 28
"RSA"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 29
"SPA"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 30
"SUI"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 31
"URU"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 32
"USA"Symbol 764 MovieClip {assets.paddle_normal} [assets.paddle_normal] Frame 33
"ALG"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 2
"ARG"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 3
"AUS"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 4
"BRA"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 5
"CAM"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 6
"CHI"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 7
"CIV"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 8
"DEN"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 9
"ENG"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 10
"FRA"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 11
"GER"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 12
"GHA"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 13
"GRE"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 14
"HON"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 15
"ITA"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 16
"JPN"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 17
"KOR"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 18
"PRK"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 19
"MEX"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 20
"NED"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 21
"NZL"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 22
"NIG"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 23
"PAR"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 24
"POR"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 25
"SER"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 26
"SVK"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 27
"SVN"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 28
"RSA"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 29
"SPA"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 30
"SUI"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 31
"URU"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 32
"USA"Symbol 858 MovieClip {assets.team_select_flags} [assets.team_select_flags] Frame 33




http://swfchan.com/19/93475/info.shtml
Created: 26/3 -2019 18:33:11 Last modified: 26/3 -2019 18:33:11 Server time: 06/05 -2024 03:02:59