home *** CD-ROM | disk | FTP | other *** search
/ Ice Age Fan CD 1 / CD1_Scrat.iso / flash / data / game.swf / scripts / asCode / gameClipClass.as < prev    next >
Encoding:
Text File  |  2012-07-04  |  104.8 KB  |  2,988 lines

  1. package asCode
  2. {
  3.    import com.adamsearle.events.TrackingEvent;
  4.    import com.google.analytics.AnalyticsTracker;
  5.    import com.google.analytics.GATracker;
  6.    import com.terry.*;
  7.    import com.terrypaton.utils.DateTester;
  8.    import flash.display.*;
  9.    import flash.events.*;
  10.    import flash.filters.*;
  11.    import flash.geom.*;
  12.    import flash.media.*;
  13.    import flash.net.*;
  14.    import flash.system.*;
  15.    import flash.text.*;
  16.    import flash.ui.*;
  17.    import flash.utils.*;
  18.    import gs.TweenMax;
  19.    import gs.easing.*;
  20.    
  21.    public class gameClipClass extends MovieClip
  22.    {
  23.       private static var _soundManagerRef:soundManager;
  24.       
  25.       private static var musicState:int;
  26.       
  27.       private static var sfxState:int;
  28.       
  29.       public static var trackingName:String = "IceAge3_BubbleTrouble";
  30.       
  31.       private static var MEDAL_PERFECT_RUN:int = 0;
  32.       
  33.       private static var MEDAL_LOW_HEALTH:int = 1;
  34.       
  35.       private static var MEDAL_FULL_HEALTH:int = 2;
  36.       
  37.       private static var MEDAL_10_IN_A_ROW:int = 3;
  38.       
  39.       private static var MEDAL_25_IN_A_ROW:int = 4;
  40.       
  41.       private static var MEDAL_ALL_ACORNS:int = 5;
  42.       
  43.       private static var MEDAL_25_PLAYS:int = 6;
  44.       
  45.       private static var MEDAL_GAME_COMPLETED:int = 7;
  46.       
  47.       private static var PARTICLE_EFFECT_WELD:int = 0;
  48.       
  49.       private static var PARTICLE_HIT_OBJECT:int = 1;
  50.       
  51.       private static var PARTICLE_COLLECT_ITEM:int = 2;
  52.       
  53.       private static var PARTICLE_EFFECT_CHIP_PLACED:int = 3;
  54.       
  55.       private static var PARTICLE_EFFECT_ELECTRICAL_CHARGE:int = 4;
  56.       
  57.       private static var PARTICLE_EFFECT_METEOR:int = 5;
  58.       
  59.       private static var PARTICLE_EFFECT_FLICKER:int = 6;
  60.       
  61.       private static var ENEMY_METEOR:int = 1;
  62.       
  63.       private static var ENEMY_BEE:int = 2;
  64.       
  65.       private static var ENEMY_STICK:int = 3;
  66.       
  67.       private static var BUBBLE_TYPE_PLAYER:int = 0;
  68.       
  69.       private static var BUBBLE_TYPE_ACORN:int = 5;
  70.       
  71.       private static var BUBBLE_TYPE_HEALTH_POWERUP:int = 10;
  72.       
  73.       private static var BUBBLE_TYPE_INVINCIBLE:int = 15;
  74.       
  75.       private static var BUBBLE_TYPE_SHRINK:int = 20;
  76.       
  77.       private static var BUBBLE_TYPE_REVERSE:int = 25;
  78.       
  79.       private static var VAR_ON:int = 1;
  80.       
  81.       private static var VAR_OFF:int = 0;
  82.       
  83.       public static var CHARACTER_SCRAT:int = 1;
  84.       
  85.       public static var CHARACTER_SCRATEE:int = 2;
  86.       
  87.       public var gameBackground:gameBackgroundClip;
  88.       
  89.       public var musicMuteBtn:musicMuteBtnClip;
  90.       
  91.       public var gameplayClip:MovieClip;
  92.       
  93.       public var highscoreSDClip:highscoreSD;
  94.       
  95.       public var videoHolder:MovieClip;
  96.       
  97.       public var medalAwardedClip:MovieClip;
  98.       
  99.       public var inARowMsg:MovieClip;
  100.       
  101.       public var homeBtn:homeBtnClip;
  102.       
  103.       public var levelChooser:levelChooserClip;
  104.       
  105.       public var soundMuteBtn:soiundMuteBtn;
  106.       
  107.       public var powerUpCounterClip:MovieClip;
  108.       
  109.       public var closeBtn:closeBtnClip;
  110.       
  111.       public var visitSiteBtn:visitSiteClip;
  112.       
  113.       public var UI:MovieClip;
  114.       
  115.       public var messageClip:MovieClip;
  116.       
  117.       public var pauseBtn:pauseBtnClip;
  118.       
  119.       private var tracker:AnalyticsTracker;
  120.       
  121.       private var _gameBackgroundClipRef:MovieClip;
  122.       
  123.       private var levelChooserUnlocked:Boolean;
  124.       
  125.       private var _DrawCurveBarRef:DrawCurveBar;
  126.       
  127.       private var valentinesActive:Boolean;
  128.       
  129.       private var firstRun:Boolean = true;
  130.       
  131.       private var _dinoTeeth:MovieClip;
  132.       
  133.       private var loadedSwf:MovieClip;
  134.       
  135.       private var mainMenuInited:Boolean;
  136.       
  137.       private var musicVolume:Number;
  138.       
  139.       private var backBitmap:BitmapData;
  140.       
  141.       private var playerAnimationNum:int = 0;
  142.       
  143.       private var playerFrame:int;
  144.       
  145.       private var r:int;
  146.       
  147.       private var gameStartDarkenerRef:MovieClip;
  148.       
  149.       private var _videoClipRef:MovieClip;
  150.       
  151.       private var startGameTime:Number;
  152.       
  153.       private var endGameTime:Number;
  154.       
  155.       private var playGameTime:Number;
  156.       
  157.       private var highscoreSceneRef:MovieClip;
  158.       
  159.       private var helpSceneRef:MovieClip;
  160.       
  161.       private var mainMenuSceneRef:MovieClip;
  162.       
  163.       private var medalsSceneRef:MovieClip;
  164.       
  165.       private var stfSceneRef:MovieClip;
  166.       
  167.       private var chooseCharacterSceneRef:MovieClip;
  168.       
  169.       private var gameInited:Boolean;
  170.       
  171.       private var powerUpCounterStart:int;
  172.       
  173.       private var videoPlaying:Boolean = false;
  174.       
  175.       private var _gamePausedClipRef:MovieClip;
  176.       
  177.       private var data:Object;
  178.       
  179.       private var playCount:int;
  180.       
  181.       private var firstGamePlay:Boolean;
  182.       
  183.       private var medalScreenNeedToPlayMoreText:String;
  184.       
  185.       private var rotationSteps:Number = 24;
  186.       
  187.       private var _enemyBeeClipRef:MovieClip;
  188.       
  189.       private var _enemyMeteorClipRef:MovieClip;
  190.       
  191.       private var backgroundTilesArray:Array;
  192.       
  193.       public var playerScale:Number;
  194.       
  195.       public var flipPlayer:Boolean;
  196.       
  197.       private var startingLevel:int = 1;
  198.       
  199.       private var levelsUnlocked:int;
  200.       
  201.       private var medalsArray:Array;
  202.       
  203.       public var levelAcornAmount:int = 0;
  204.       
  205.       private var medalsText:Array;
  206.       
  207.       private var languageFrame:String;
  208.       
  209.       private var rx:int;
  210.       
  211.       private var ry:int;
  212.       
  213.       private var _nextThingFinderRef:nextThingFinder;
  214.       
  215.       private var _firstGamePlayHelp:MovieClip;
  216.       
  217.       private var HIT_ENEMY:int = 10;
  218.       
  219.       private var HIT_WALL:int = 20;
  220.       
  221.       private var HIT_ACORN:int = 30;
  222.       
  223.       public var lastThingHit:int = 0;
  224.       
  225.       public var takenDamage:Boolean;
  226.       
  227.       private var medalScreenDefaultText:String;
  228.       
  229.       public var totalLevelCells:int;
  230.       
  231.       private var maxEnemies:int = 10;
  232.       
  233.       private var cellNum:int;
  234.       
  235.       public var itemBubbleSize:Number = 30;
  236.       
  237.       private var _messageClipRef:MovieClip;
  238.       
  239.       private var leafColour:ColorTransform;
  240.       
  241.       private var particleManagerRef:particleManagerClass;
  242.       
  243.       private var _tempArray:Array;
  244.       
  245.       private var _itemArray:Array;
  246.       
  247.       public var levelTotalHeight:Number;
  248.       
  249.       public var levelStorageArray:Array;
  250.       
  251.       public var _effectSpriteSheet:effectSpriteSheet;
  252.       
  253.       private var specialEffectsActive:Boolean = true;
  254.       
  255.       private var P_ELECTRICAL:int = 1;
  256.       
  257.       private var P_WANDERING_LINE:int = 2;
  258.       
  259.       private var P_LINE:int = 3;
  260.       
  261.       private var P_FALLING:int = 4;
  262.       
  263.       private var P_WANDERING:int = 5;
  264.       
  265.       private var P_GROWING:int = 6;
  266.       
  267.       private var P_WHITE_SMOKE:int = 7;
  268.       
  269.       private var P_METEOR:int = 8;
  270.       
  271.       private var P_BLUE_FLASH:int = 9;
  272.       
  273.       private var P_FLASH:int = 10;
  274.       
  275.       private var P_FLICKER:int = 11;
  276.       
  277.       private var _itemManagerRef:itemManager;
  278.       
  279.       private var _playerManagerRef:playerManager;
  280.       
  281.       public var playerAlpha:Number = 1;
  282.       
  283.       private var playerColour:ColorTransform;
  284.       
  285.       private var enemyType:int;
  286.       
  287.       public var playerBubbleRenderColour:Number = 13421823;
  288.       
  289.       public var powerUpCounter:int = 0;
  290.       
  291.       public var powerUpActive:int = 0;
  292.       
  293.       public var rightPressCoolDown:int = 0;
  294.       
  295.       public var leftPressCoolDown:int = 0;
  296.       
  297.       public var spacePressCoolDown:int = 0;
  298.       
  299.       public var leftPressCountdown:int = 0;
  300.       
  301.       public var spacePressCountdown:int = 0;
  302.       
  303.       public var rightPressCountdown:int = 0;
  304.       
  305.       public var spaceReleased:Boolean = true;
  306.       
  307.       public var leftReleased:Boolean = true;
  308.       
  309.       public var rightReleased:Boolean = true;
  310.       
  311.       private var dist:Number;
  312.       
  313.       private var itemBubbleGenCount:int = 0;
  314.       
  315.       public var hitCollisionBitmapData:BitmapData;
  316.       
  317.       private var hitCollisionBitmap:Bitmap;
  318.       
  319.       private var playerHealth:int;
  320.       
  321.       public var repelX:Number;
  322.       
  323.       public var repelY:Number;
  324.       
  325.       private var radian:Number;
  326.       
  327.       private var _testPixelNum:Number;
  328.       
  329.       private var hitPointRadius:Number = 50;
  330.       
  331.       private var testPointAmount:Number = 12;
  332.       
  333.       private var testPointStepping:Number;
  334.       
  335.       public var playerInvincibleAfterHurtCounter:int;
  336.       
  337.       private var _foregroundElementClassRef:foregroundElementClass;
  338.       
  339.       private var enemyNum:int = 0;
  340.       
  341.       private var _clip:MovieClip;
  342.       
  343.       private var _trigClassRef:trigClass;
  344.       
  345.       public var totalDistanceTraveled:Number = 0;
  346.       
  347.       private var _tempY:Number;
  348.       
  349.       private var activeBubbles:int;
  350.       
  351.       private var MAXActiveBubbles:int = 10;
  352.       
  353.       public var spacePressed:Boolean;
  354.       
  355.       private var ex:Number;
  356.       
  357.       private var ey:Number;
  358.       
  359.       private var dir:Number;
  360.       
  361.       private var speed:Number;
  362.       
  363.       private var enemyClassArray:Array;
  364.       
  365.       private var _enemyItemClassRef:enemyItemClass;
  366.       
  367.       private var foregroundElementsArray:Array;
  368.       
  369.       private var renderPoint:*;
  370.       
  371.       public var level:int;
  372.       
  373.       private var renderScreenX:Number;
  374.       
  375.       private var renderScreenY:Number;
  376.       
  377.       private var _backgroundCell1:backgroundCellClass;
  378.       
  379.       private var _backgroundCell2:backgroundCellClass;
  380.       
  381.       private var foregroundScreenY:Number;
  382.       
  383.       private var backgroundTilesBitmapData:BitmapData;
  384.       
  385.       private var screenTilesBitmapData:BitmapData;
  386.       
  387.       public var bubblesArray:Array;
  388.       
  389.       private var _stageCell1:screenCellClass;
  390.       
  391.       private var _stageCell2:screenCellClass;
  392.       
  393.       private var n:int;
  394.       
  395.       private var rollOverButtonNameList:Array;
  396.       
  397.       private var initCompleted:Boolean = false;
  398.       
  399.       private var statsSprite:Sprite;
  400.       
  401.       private var score:int;
  402.       
  403.       private var highscore:int;
  404.       
  405.       private var _bubbleRef:playerBubbleCodeClass;
  406.       
  407.       private var _itemBubbleRef:itemBubbleCodeClass;
  408.       
  409.       public var _playerBubbleCodeClass:playerBubbleCodeClass;
  410.       
  411.       private var musicSoundRef:musicSound;
  412.       
  413.       private var musicChannel:SoundChannel;
  414.       
  415.       private var musicSoundTransform:SoundTransform;
  416.       
  417.       public var bubble:MovieClip;
  418.       
  419.       private var so:SharedObject;
  420.       
  421.       public var playerScreenLoc:Point;
  422.       
  423.       private var screenY:Number = 0;
  424.       
  425.       public var screenWidth:int = 480;
  426.       
  427.       public var screenHeight:int = 480;
  428.       
  429.       private var playerWidth:int = 100;
  430.       
  431.       private var playerHeight:int = 100;
  432.       
  433.       private var renderRect:Rectangle;
  434.       
  435.       private var screenBitmap:Bitmap;
  436.       
  437.       private var backgroundBitmap:Bitmap;
  438.       
  439.       private var foregroundBitmap:Bitmap;
  440.       
  441.       private var screenSprite:Sprite;
  442.       
  443.       private var backgroundSprite:Sprite;
  444.       
  445.       public var screenBitmapData:BitmapData;
  446.       
  447.       private var backgroundBitmapData:BitmapData;
  448.       
  449.       private var foregroundBitmapData:BitmapData;
  450.       
  451.       private var introHelpSceneRef:MovieClip;
  452.       
  453.       private var _playerClip:MovieClip;
  454.       
  455.       private var _point1:Point;
  456.       
  457.       private var _point2:Point;
  458.       
  459.       private var _rect:Rectangle;
  460.       
  461.       public var scrollYDist:Number = 0;
  462.       
  463.       private var counter:int;
  464.       
  465.       public var playerBubbleRadius:Number = 60;
  466.       
  467.       private var cellWidth:int = 240;
  468.       
  469.       private var cellHeight:int = 240;
  470.       
  471.       private var lives:int;
  472.       
  473.       private var _cellRect:Rectangle;
  474.       
  475.       private var drawMatrix:Matrix;
  476.       
  477.       public var playerXVelocity:Number;
  478.       
  479.       public var playerYVelocity:Number;
  480.       
  481.       public var movingRight:Boolean;
  482.       
  483.       public var movingLeft:Boolean;
  484.       
  485.       public var movingUp:Boolean;
  486.       
  487.       public var movingDown:Boolean;
  488.       
  489.       private var _tbitmap:Bitmap;
  490.       
  491.       private var _tbitmapData:BitmapData;
  492.       
  493.       private var _foregroundElementClip:MovieClip;
  494.       
  495.       private var foregroundBmpData:BitmapData;
  496.       
  497.       private var playerLoc:Point;
  498.       
  499.       private var screenLoc:Point;
  500.       
  501.       private var _visualBubbleRef:visualBubble;
  502.       
  503.       public var acornsCollected:int = 0;
  504.       
  505.       public var clearSpacePlacementDivisions:int = 10;
  506.       
  507.       public var _findClearOfBitmapRef:findClearOfBitmap;
  508.       
  509.       private var skipVideoPreference:Boolean = false;
  510.       
  511.       public var characterChoice:int;
  512.       
  513.       private var gameState:int;
  514.       
  515.       private var GS_SETUP:int = 10;
  516.       
  517.       private var GS_PLAYING:int = 20;
  518.       
  519.       private var GS_MAIN_MENU:int = 30;
  520.       
  521.       private var GS_MAIN_MENU_WAIT:int = 40;
  522.       
  523.       private var GS_MAIN_MENU_WAIT_2:int = 41;
  524.       
  525.       private var GS_HIGHSCORES:int = 50;
  526.       
  527.       private var GS_HIGHSCORES_WAIT:int = 60;
  528.       
  529.       private var GS_HOW_TO_PLAY:int = 70;
  530.       
  531.       private var GS_HOW_TO_PLAY_WAIT:int = 71;
  532.       
  533.       private var GS_START_NEW_GAME:int = 80;
  534.       
  535.       private var GS_START_NEW_GAME_WAIT:int = 90;
  536.       
  537.       private var GS_START_NEW_GAME_WAIT_2:int = 95;
  538.       
  539.       private var GS_LIFE_LOST:int = 100;
  540.       
  541.       private var GS_LIFE_LOST_WAIT:int = 110;
  542.       
  543.       private var GS_GAME_OVER:int = 120;
  544.       
  545.       private var GS_GAME_OVER_WAIT:int = 130;
  546.       
  547.       private var GS_LEVEL_COMPLETE:int = 140;
  548.       
  549.       private var GS_LEVEL_COMPLETE_WAIT:int = 150;
  550.       
  551.       private var GS_NEXT_LEVEL:int = 160;
  552.       
  553.       private var GS_NEXT_LEVEL_WAIT:int = 170;
  554.       
  555.       private var GS_MEDALS:int = 180;
  556.       
  557.       private var GS_MEDALS_WAIT:int = 190;
  558.       
  559.       private var GS_GAME_COMPLETED:int = 200;
  560.       
  561.       private var GS_GAME_COMPLETED_WAIT:int = 210;
  562.       
  563.       private var GS_GAME_COMPLETED_WAIT2:int = 211;
  564.       
  565.       private var GS_PLAYING_VIDEO:int = 220;
  566.       
  567.       private var GS_BEGIN_GAME:int = 225;
  568.       
  569.       private var GS_BEGIN_GAME_WAIT:int = 230;
  570.       
  571.       private var GS_PAUSED:int = 240;
  572.       
  573.       private var GS_CHOOSE_LEVEL:int = 250;
  574.       
  575.       private var GS_CHOOSE_LEVEL_WAIT:int = 255;
  576.       
  577.       private var GS_STF:int = 260;
  578.       
  579.       private var GS_STF_WAIT:int = 265;
  580.       
  581.       private var GS_GAME_UNLOCKED:int = 270;
  582.       
  583.       private var GS_GAME_UNLOCKED_WAIT:int = 275;
  584.       
  585.       private var GS_STF_VALENTINE:int = 280;
  586.       
  587.       private var GS_STF_VALENTINE_WAIT:int = 285;
  588.       
  589.       private var GS_CHOOSE_CHARACTER:int = 290;
  590.       
  591.       private var GS_CHOOSE_CHARACTER_WAIT:int = 295;
  592.       
  593.       private var GS_SHOW_INTRO_VIDEO:int = 300;
  594.       
  595.       private var GS_INTRO_VIDEO_WAIT:int = 305;
  596.       
  597.       public function gameClipClass()
  598.       {
  599.          _gameBackgroundClipRef = new gameBackgroundClip();
  600.          _DrawCurveBarRef = new DrawCurveBar();
  601.          highscoreSceneRef = new highscoreSceneClip();
  602.          helpSceneRef = new gameplayHowToClip();
  603.          medalsSceneRef = new medalsSceneClip();
  604.          stfSceneRef = new stfSceneClip();
  605.          chooseCharacterSceneRef = new chooseCharacterSceneClip();
  606.          _enemyBeeClipRef = new enemyBeeClip();
  607.          _enemyMeteorClipRef = new enemyMeteor();
  608.          backgroundTilesArray = new Array();
  609.          leafColour = new ColorTransform();
  610.          _tempArray = new Array();
  611.          _itemArray = new Array();
  612.          levelStorageArray = new Array();
  613.          playerColour = new ColorTransform();
  614.          hitCollisionBitmapData = new BitmapData(480,480,true,16777215);
  615.          hitCollisionBitmap = new Bitmap(hitCollisionBitmapData);
  616.          testPointStepping = 360 / testPointAmount;
  617.          _trigClassRef = new trigClass();
  618.          enemyClassArray = new Array();
  619.          foregroundElementsArray = new Array();
  620.          renderPoint = new Point();
  621.          backgroundTilesBitmapData = new backgroundTiles(1800,120);
  622.          bubblesArray = new Array();
  623.          rollOverButtonNameList = new Array("previewSendBtn","previewBackBtn","continueGameBtn","embedGameBtn","sendAnotherBtn","backBtn","playAgainBtn","leftArrow","rightArrow","skipBtnClip","submitScoreBtn","submittedokBtn","visitSiteBtn","helpNavBtnLeft","helpNavBtnRight","okBtn","submitSTFBtn","closeBtn","sendToValentineBtn","previewSTFBtn","stfBtn","medalsBtn","okBtn","pauseBtn","quitYesBtn","quitNoBtn","continueBtn","homeBtn","soundMuteBtn","musicMuteBtn","viewHighscoreBtn","howToPlayBtn","startGameBtn","gameMainMenuBtn","nextBtn","prevBtn","introHelpPlayBtn");
  624.          playerScreenLoc = new Point();
  625.          renderRect = new Rectangle(0,0,screenWidth,screenHeight);
  626.          _point1 = new Point();
  627.          _point2 = new Point();
  628.          _cellRect = new Rectangle(0,0,cellWidth,cellHeight);
  629.          drawMatrix = new Matrix();
  630.          characterChoice = CHARACTER_SCRAT;
  631.          super();
  632.          Debug.log("STARTED");
  633.          stage.stageFocusRect = false;
  634.          init();
  635.          gameState = GS_SETUP;
  636.          _dinoTeeth = new dinoTeethAnim();
  637.          stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
  638.          stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler);
  639.          addEventListener(Event.ENTER_FRAME,playingLoop);
  640.          Broadcaster.addEventListener(GeneralEvents.BUTTON_OUT,btnOutHandler);
  641.          Broadcaster.addEventListener(GeneralEvents.BUTTON_OVER,btnOverHandler);
  642.          Broadcaster.addEventListener(GeneralEvents.BUTTON_PRESSED,btnDownHandler);
  643.          addEventListener(GeneralEvents.SKIP_VIDEO,skipVideo);
  644.          languageFrame = MovieClip(root).languageFrame;
  645.          valentinesActive = false;
  646.          if(!DateTester.testIfDatePassed(14,1,2009))
  647.          {
  648.             if(languageFrame == "us" || languageFrame == "uk" || languageFrame == "fr")
  649.             {
  650.                valentinesActive = true;
  651.             }
  652.          }
  653.          Broadcaster.addEventListener(GeneralEvents.EVAL_GAME_COMPLETE,evalGameCompleteScene);
  654.          Broadcaster.addEventListener(GeneralEvents.EVAL_GAME_SCENE,evalGameScene);
  655.          _itemManagerRef = new itemManager(this);
  656.          _effectSpriteSheet = new effectSpriteSheet(300,100);
  657.          mainMenuSceneRef = new mainMenuClip();
  658.          mainMenuSceneRef.init(_effectSpriteSheet);
  659.          tracker = new GATracker(this,"UA-6368558-4","AS3",false);
  660.          Broadcaster.addEventListener(TrackingEvent.TRACK_EVENT,gaTrackEvent);
  661.          Broadcaster.addEventListener(TrackingEvent.TRACK_PAGE,gaTrackPage);
  662.          Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_PAGE,"/game/index"));
  663.          var _loc1_:* = parent;
  664.          if(_loc1_.getLoadTime() < 1)
  665.          {
  666.             data = new Object();
  667.             data.name2 = "loadGame";
  668.             data.name3 = "index";
  669.             data.param = _loc1_.getLoadTime();
  670.             Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  671.          }
  672.       }
  673.       
  674.       private function gaTrackEvent(param1:TrackingEvent) : void
  675.       {
  676.          var e:TrackingEvent = param1;
  677.          try
  678.          {
  679.             if(e.data.name3 == undefined)
  680.             {
  681.                tracker.trackEvent(trackingName,e.data.name2);
  682.             }
  683.             else if(e.data.param == undefined)
  684.             {
  685.                tracker.trackEvent(trackingName,e.data.name2,e.data.name3);
  686.             }
  687.             else
  688.             {
  689.                tracker.trackEvent(trackingName,e.data.name2,e.data.name3,e.data.param);
  690.             }
  691.          }
  692.          catch(e:Error)
  693.          {
  694.             Debug.log(e);
  695.          }
  696.       }
  697.       
  698.       private function gaTrackPage(param1:TrackingEvent) : void
  699.       {
  700.          var e:TrackingEvent = param1;
  701.          try
  702.          {
  703.             tracker.trackPageview(trackingName + e.data);
  704.          }
  705.          catch(e:Error)
  706.          {
  707.             Debug.log(e);
  708.          }
  709.       }
  710.       
  711.       public function evalGameUnlockedScene() : void
  712.       {
  713.          homeBtn.visible = true;
  714.          slideOffScenes();
  715.          _gameBackgroundClipRef.y = 480;
  716.          _gameBackgroundClipRef.x = -240;
  717.          videoHolder.addChild(_gameBackgroundClipRef);
  718.          videoHolder.addChild(stfSceneRef);
  719.          stfSceneRef.y = -480;
  720.          TweenMax.to(_gameBackgroundClipRef,0.5,{
  721.             "y":0,
  722.             "delay":1
  723.          });
  724.          TweenMax.to(stfSceneRef,0.5,{
  725.             "y":0,
  726.             "delay":1
  727.          });
  728.          stfSceneRef.setupSTF(languageFrame,valentinesActive);
  729.       }
  730.       
  731.       public function playingFunctions() : void
  732.       {
  733.          var _loc3_:Number = NaN;
  734.          if(powerUpActive != 0)
  735.          {
  736.             if(powerUpActive == BUBBLE_TYPE_REVERSE)
  737.             {
  738.                flipPlayer = true;
  739.             }
  740.             if(powerUpActive == BUBBLE_TYPE_SHRINK)
  741.             {
  742.                if(playerScale > 0.5)
  743.                {
  744.                   playerScale *= 0.95;
  745.                   if(playerScale < 0.5)
  746.                   {
  747.                      playerScale = 0.5;
  748.                   }
  749.                }
  750.             }
  751.             else if(playerScale < 1)
  752.             {
  753.                playerScale *= 1.05;
  754.                if(playerScale > 1)
  755.                {
  756.                   playerScale = 1;
  757.                }
  758.             }
  759.             powerUpCounterClip.x = playerScreenLoc.x - 240;
  760.             powerUpCounterClip.y = playerScreenLoc.y - playerScale;
  761.             powerUpCounterClip.textBox.text = "";
  762.             _loc3_ = powerUpCounter / powerUpCounterStart;
  763.             _DrawCurveBarRef.manageCurve(_loc3_,playerBubbleRenderColour);
  764.             powerUpCounterClip.scaleX = powerUpCounterClip.scaleY = playerScale;
  765.             --powerUpCounter;
  766.             if(powerUpCounter < 1)
  767.             {
  768.                playSound("powerUpWornOff.wav");
  769.                powerUpCounterClip.y = -100;
  770.                flipPlayer = false;
  771.                playerBubbleRenderColour = 12303342;
  772.                if(level == 1 || level == 4 || level == 8)
  773.                {
  774.                   playerBubbleRenderColour = 12303342;
  775.                }
  776.                else
  777.                {
  778.                   playerBubbleRenderColour = 6710886;
  779.                }
  780.                powerUpActive = 0;
  781.                _DrawCurveBarRef.clearBar();
  782.             }
  783.          }
  784.          else if(playerScale < 1)
  785.          {
  786.             playerScale *= 1.05;
  787.             if(playerScale > 1)
  788.             {
  789.                playerScale = 1;
  790.             }
  791.          }
  792.          _playerManagerRef.managePlayer();
  793.          manageEnemies();
  794.          manageBackgroundItems();
  795.          manageScreenItems();
  796.          _itemManagerRef.manageItems();
  797.          manageForegroundItems();
  798.          render();
  799.          var _loc1_:int = particleManagerRef.manageParticles(scrollYDist);
  800.          totalDistanceTraveled += scrollYDist;
  801.          var _loc2_:Number = totalDistanceTraveled / levelTotalHeight;
  802.          if(_loc2_ > 1)
  803.          {
  804.             _loc2_ = 1;
  805.          }
  806.          UI.heightMarkerArrow.y = UI.heightMarker.y - UI.heightMarker.height * _loc2_;
  807.          if(totalDistanceTraveled >= levelTotalHeight - 240)
  808.          {
  809.             gameState = GS_LEVEL_COMPLETE;
  810.          }
  811.          if(playerHealth == 0)
  812.          {
  813.             gameState = GS_LIFE_LOST;
  814.          }
  815.       }
  816.       
  817.       public function hideTeeth() : void
  818.       {
  819.          removeChild(_dinoTeeth);
  820.       }
  821.       
  822.       public function animateTeethin() : void
  823.       {
  824.          addChild(_dinoTeeth);
  825.          _dinoTeeth.dinoTeeth_top.y = -331;
  826.          _dinoTeeth.dinoTeeth_bottom.y = 820;
  827.       }
  828.       
  829.       public function evalIntroVideo() : void
  830.       {
  831.          var _loc1_:Loader = null;
  832.          var _loc2_:String = null;
  833.          var _loc3_:URLRequest = null;
  834.          var _loc4_:LoaderContext = null;
  835.          if(skipVideoPreference)
  836.          {
  837.             gameState = GS_CHOOSE_CHARACTER;
  838.          }
  839.          else
  840.          {
  841.             _videoClipRef = new videoPlayerClip();
  842.             _videoClipRef.gotoAndPlay("introVideo");
  843.             videoHolder.addChild(_videoClipRef);
  844.             videoHolder.addChild(gameStartDarkenerRef);
  845.             gameStartDarkenerRef.alpha = 1;
  846.             TweenMax.to(gameStartDarkenerRef,0.5,{
  847.                "alpha":0,
  848.                "delay":0.5
  849.             });
  850.             gameStartDarkenerRef.mouseChildren = false;
  851.             gameStartDarkenerRef.mouseEnabled = false;
  852.             gameState = GS_PLAYING_VIDEO;
  853.             _videoClipRef.skipBtnClip.mouseChildren = false;
  854.             _videoClipRef.skipBtnClip.buttonMode = true;
  855.             videoPlaying = true;
  856.             musicSoundTransform = new SoundTransform(0,0);
  857.             musicChannel.soundTransform = musicSoundTransform;
  858.             gameState = GS_INTRO_VIDEO_WAIT;
  859.             musicMuteBtn.visible = false;
  860.             soundMuteBtn.visible = false;
  861.             homeBtn.visible = false;
  862.             pauseBtn.visible = false;
  863.             _loc1_ = new Loader();
  864.             _loc1_.contentLoaderInfo.addEventListener(Event.INIT,loadedSwfInitHandler);
  865.             _loc2_ = "data/iceAge_video7.swf";
  866.             _loc3_ = new URLRequest(_loc2_);
  867.             _loc4_ = new LoaderContext();
  868.             _loc4_.checkPolicyFile = true;
  869.             _loc1_.load(_loc3_,_loc4_);
  870.             _videoClipRef.loadedVideoHolder.addChild(_loc1_);
  871.             _loc1_.x = -240;
  872.          }
  873.       }
  874.       
  875.       private function loadedSwfInitHandler(param1:Event) : void
  876.       {
  877.          loadedSwf = MovieClip(param1.target.content);
  878.          dispatchEvent(new GeneralEvents(GeneralEvents.RESTART_VIDEO));
  879.       }
  880.       
  881.       public function playingLoop(param1:Event) : void
  882.       {
  883.          var _loc2_:Object = null;
  884.          var _loc3_:* = undefined;
  885.          if(initCompleted)
  886.          {
  887.             switch(gameState)
  888.             {
  889.                case GS_PLAYING:
  890.                   if(!gameInited)
  891.                   {
  892.                      gameInited = true;
  893.                      evalGameScene(null);
  894.                   }
  895.                   playingFunctions();
  896.                   break;
  897.                case GS_STF:
  898.                   goSTF();
  899.                   gameState = GS_STF_WAIT;
  900.                   break;
  901.                case GS_SHOW_INTRO_VIDEO:
  902.                   evalIntroVideo();
  903.                   break;
  904.                case GS_INTRO_VIDEO_WAIT:
  905.                case GS_STF_WAIT:
  906.                   break;
  907.                case GS_CHOOSE_CHARACTER:
  908.                   goChooseCharacter();
  909.                   gameState = GS_CHOOSE_CHARACTER_WAIT;
  910.                   break;
  911.                case GS_CHOOSE_CHARACTER_WAIT:
  912.                   break;
  913.                case GS_STF_VALENTINE:
  914.                   goSTFValentine();
  915.                   gameState = GS_STF_WAIT;
  916.                   break;
  917.                case GS_STF_WAIT:
  918.                   break;
  919.                case GS_SETUP:
  920.                   setup();
  921.                   gameState = GS_MAIN_MENU;
  922.                   break;
  923.                case GS_MAIN_MENU:
  924.                   mainMenuInited = false;
  925.                   if(firstRun)
  926.                   {
  927.                      goMainMenu();
  928.                      mainMenuSceneRef.alpha = 0;
  929.                      TweenMax.to(mainMenuSceneRef,0.5,{
  930.                         "alpha":1,
  931.                         "delay":0.5,
  932.                         "overwrite":false
  933.                      });
  934.                      animateTeethin();
  935.                   }
  936.                   counter = 20;
  937.                   gameState = GS_MAIN_MENU_WAIT;
  938.                   break;
  939.                case GS_MAIN_MENU_WAIT:
  940.                   if(!mainMenuInited)
  941.                   {
  942.                      evalMainMenuScene();
  943.                   }
  944.                   break;
  945.                case GS_MAIN_MENU_WAIT_2:
  946.                   break;
  947.                case GS_START_NEW_GAME:
  948.                   _loc2_ = new Object();
  949.                   _loc3_ = parent;
  950.                   if(_loc3_.isPaidApp == "yes")
  951.                   {
  952.                      _loc2_.eventName = "Play Game paid";
  953.                   }
  954.                   else
  955.                   {
  956.                      _loc2_.eventName = "Play Game";
  957.                   }
  958.                   Broadcaster.dispatchEvent(new GeneralEvents(GeneralEvents.CLEARSPRING_TRACK_EVENT,true,_loc2_));
  959.                   gotoAndStop("gameScene");
  960.                   animateTeethin();
  961.                   counter = 6;
  962.                   gameState = GS_SHOW_INTRO_VIDEO;
  963.                   gameInited = false;
  964.                   break;
  965.                case GS_START_NEW_GAME_WAIT:
  966.                   --counter;
  967.                   if(counter < 1)
  968.                   {
  969.                      if(levelChooserUnlocked)
  970.                      {
  971.                         this.gotoAndStop("levelChooserScene");
  972.                         gameState = GS_CHOOSE_LEVEL;
  973.                      }
  974.                      else
  975.                      {
  976.                         startTheGame(1);
  977.                      }
  978.                   }
  979.                   break;
  980.                case GS_START_NEW_GAME_WAIT_2:
  981.                   break;
  982.                case GS_HOW_TO_PLAY:
  983.                   goHowToPlay();
  984.                   gameState = GS_HOW_TO_PLAY_WAIT;
  985.                   break;
  986.                case GS_HOW_TO_PLAY_WAIT:
  987.                   break;
  988.                case GS_HIGHSCORES:
  989.                   goHighscores();
  990.                   gameState = GS_HIGHSCORES_WAIT;
  991.                   break;
  992.                case GS_HIGHSCORES_WAIT:
  993.                case GS_SETUP:
  994.                   break;
  995.                case GS_GAME_OVER:
  996.                   cleanupLevel();
  997.                   goGameOver();
  998.                   break;
  999.                case GS_CHOOSE_LEVEL:
  1000.                   gameState = GS_CHOOSE_LEVEL_WAIT;
  1001.                   break;
  1002.                case GS_CHOOSE_LEVEL_WAIT:
  1003.                case GS_GAME_OVER_WAIT:
  1004.                   break;
  1005.                case GS_LIFE_LOST:
  1006.                   playerLosesLife();
  1007.                   counter = 30;
  1008.                   videoHolder.addChild(gameStartDarkenerRef);
  1009.                   gameStartDarkenerRef.alpha = 0.1;
  1010.                   TweenMax.to(gameStartDarkenerRef,0.5,{"alpha":1});
  1011.                   TweenMax.to(gameStartDarkenerRef,0.5,{
  1012.                      "alpha":0.1,
  1013.                      "onComplete":removeDarken,
  1014.                      "delay":1,
  1015.                      "overwrite":false
  1016.                   });
  1017.                   animateTeethin();
  1018.                   gameState = GS_LIFE_LOST_WAIT;
  1019.                   break;
  1020.                case GS_PLAYING_VIDEO:
  1021.                   break;
  1022.                case GS_BEGIN_GAME:
  1023.                   startGameTime = getTimer();
  1024.                   musicMuteBtn.visible = true;
  1025.                   soundMuteBtn.visible = true;
  1026.                   homeBtn.visible = true;
  1027.                   pauseBtn.visible = true;
  1028.                   if(firstGamePlay)
  1029.                   {
  1030.                      firstGamePlay = false;
  1031.                      so.data.firstGamePlay = firstGamePlay;
  1032.                      introHelpSceneRef = new introGameplayHowToClip();
  1033.                      videoHolder.addChild(introHelpSceneRef);
  1034.                      gameState = GS_BEGIN_GAME_WAIT;
  1035.                   }
  1036.                   else
  1037.                   {
  1038.                      gameState = GS_PLAYING;
  1039.                   }
  1040.                   stage.focus = this;
  1041.                   break;
  1042.                case GS_BEGIN_GAME_WAIT:
  1043.                   _playerManagerRef.managePlayer(true);
  1044.                   manageBackgroundItems();
  1045.                   manageScreenItems();
  1046.                   _itemManagerRef.manageItems();
  1047.                   manageForegroundItems();
  1048.                   render();
  1049.                   break;
  1050.                case GS_LIFE_LOST_WAIT:
  1051.                   --counter;
  1052.                   if(counter < 1)
  1053.                   {
  1054.                      if(lives > 0)
  1055.                      {
  1056.                         playerHealth = 100;
  1057.                         playerAlpha = 1;
  1058.                         gameState = GS_PLAYING;
  1059.                      }
  1060.                      else
  1061.                      {
  1062.                         gameState = GS_GAME_OVER;
  1063.                      }
  1064.                   }
  1065.                   break;
  1066.                case GS_LEVEL_COMPLETE:
  1067.                   data = new Object();
  1068.                   data.name2 = "finishLevel";
  1069.                   data.name3 = level;
  1070.                   data.param = 0;
  1071.                   Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  1072.                   data = new Object();
  1073.                   data.name2 = "miscellaneous";
  1074.                   data.name3 = "acornsCollected";
  1075.                   data.param = acornsCollected;
  1076.                   Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  1077.                   counter = 90;
  1078.                   playSound("levelComplete.wav");
  1079.                   if(!takenDamage)
  1080.                   {
  1081.                      if(level > 2)
  1082.                      {
  1083.                         medalAwarded(MEDAL_PERFECT_RUN);
  1084.                      }
  1085.                   }
  1086.                   if(playerHealth > 98)
  1087.                   {
  1088.                      medalAwarded(MEDAL_FULL_HEALTH);
  1089.                   }
  1090.                   if(acornsCollected >= levelAcornAmount - 1)
  1091.                   {
  1092.                      if(level > 4)
  1093.                      {
  1094.                         medalAwarded(MEDAL_ALL_ACORNS);
  1095.                      }
  1096.                   }
  1097.                   if(playerHealth < 10)
  1098.                   {
  1099.                      medalAwarded(MEDAL_LOW_HEALTH);
  1100.                   }
  1101.                   if(level < 10)
  1102.                   {
  1103.                      tellPlayerLevelComplete();
  1104.                      gameState = GS_LEVEL_COMPLETE_WAIT;
  1105.                   }
  1106.                   else
  1107.                   {
  1108.                      gameState = GS_GAME_COMPLETED;
  1109.                   }
  1110.                   break;
  1111.                case GS_LEVEL_COMPLETE_WAIT:
  1112.                   --counter;
  1113.                   if(counter < 1)
  1114.                   {
  1115.                      gameState = GS_NEXT_LEVEL;
  1116.                   }
  1117.                   break;
  1118.                case GS_NEXT_LEVEL:
  1119.                   cleanupLevel();
  1120.                   ++level;
  1121.                   if(level > levelsUnlocked)
  1122.                   {
  1123.                      so.data.levelsUnlocked = levelsUnlocked = level;
  1124.                   }
  1125.                   if(!levelChooserUnlocked)
  1126.                   {
  1127.                      if(level > 3 && languageFrame != "cn" && languageFrame != "ru" && languageFrame != "ko" && languageFrame != "pt" && languageFrame != "la")
  1128.                      {
  1129.                         levelChooserUnlocked = true;
  1130.                         so.data.levelChooserUnlocked = levelChooserUnlocked;
  1131.                         gameState = GS_GAME_UNLOCKED;
  1132.                      }
  1133.                      else
  1134.                      {
  1135.                         setupLevel();
  1136.                         counter = 30;
  1137.                         gameState = GS_NEXT_LEVEL_WAIT;
  1138.                      }
  1139.                   }
  1140.                   else if(level < 10)
  1141.                   {
  1142.                      setupLevel();
  1143.                      counter = 30;
  1144.                      gameState = GS_NEXT_LEVEL_WAIT;
  1145.                   }
  1146.                   else
  1147.                   {
  1148.                      gameState = GS_GAME_COMPLETED;
  1149.                   }
  1150.                   break;
  1151.                case GS_GAME_UNLOCKED:
  1152.                   counter = 20;
  1153.                   gameState = GS_GAME_UNLOCKED_WAIT;
  1154.                   break;
  1155.                case GS_GAME_UNLOCKED_WAIT:
  1156.                   if(counter > 0)
  1157.                   {
  1158.                      --counter;
  1159.                      if(counter < 1)
  1160.                      {
  1161.                         evalGameUnlockedScene();
  1162.                      }
  1163.                   }
  1164.                   break;
  1165.                case GS_GAME_COMPLETED:
  1166.                   medalAwarded(MEDAL_GAME_COMPLETED);
  1167.                   gameState = GS_GAME_COMPLETED_WAIT;
  1168.                   counter = 60;
  1169.                   tellGameComplete();
  1170.                   break;
  1171.                case GS_GAME_COMPLETED_WAIT:
  1172.                   --counter;
  1173.                   if(counter < 1)
  1174.                   {
  1175.                      this.gotoAndStop("gameCompleteScene");
  1176.                      gameState = GS_GAME_COMPLETED_WAIT2;
  1177.                   }
  1178.                   break;
  1179.                case GS_GAME_COMPLETED_WAIT2:
  1180.                   break;
  1181.                case GS_NEXT_LEVEL_WAIT:
  1182.                   --counter;
  1183.                   if(counter < 1)
  1184.                   {
  1185.                      tellPlayerLevel();
  1186.                      gameState = GS_PLAYING;
  1187.                   }
  1188.                   _playerManagerRef.managePlayer();
  1189.                   render();
  1190.                   break;
  1191.                case GS_MEDALS:
  1192.                   goMedals();
  1193.                   gameState = GS_MEDALS_WAIT;
  1194.                   break;
  1195.                case GS_MEDALS_WAIT:
  1196.             }
  1197.          }
  1198.       }
  1199.       
  1200.       public function startTheGame(param1:int) : void
  1201.       {
  1202.          startingLevel = param1;
  1203.          goGame();
  1204.       }
  1205.       
  1206.       private function cleanupLevel() : void
  1207.       {
  1208.          levelStorageArray = [];
  1209.          enemyClassArray = [];
  1210.          bubblesArray = [];
  1211.          foregroundElementsArray = [];
  1212.          particleManagerRef.killAllParticles();
  1213.          n = bubblesArray.length;
  1214.          n = levelStorageArray.length;
  1215.       }
  1216.       
  1217.       private function hideMsgClip() : void
  1218.       {
  1219.          try
  1220.          {
  1221.             _messageClipRef.visible = false;
  1222.          }
  1223.          catch(e:Error)
  1224.          {
  1225.          }
  1226.       }
  1227.       
  1228.       private function tellPlayerLevel() : void
  1229.       {
  1230.          _messageClipRef.visible = true;
  1231.          _messageClipRef.x = 0;
  1232.          _messageClipRef.y = -180;
  1233.          _messageClipRef.rotation = Math.random() * 30 - 15;
  1234.          TweenMax.to(_messageClipRef,0.5,{
  1235.             "rotation":0,
  1236.             "y":screenHeight / 2,
  1237.             "ease":Back.easeOut
  1238.          });
  1239.          TweenMax.to(_messageClipRef,0.5,{
  1240.             "rotation":Math.random() * 30 - 15,
  1241.             "y":screenHeight + 180,
  1242.             "overwrite":false,
  1243.             "delay":2,
  1244.             "onComplete":hideMsgClip,
  1245.             "ease":Back.easeIn
  1246.          });
  1247.          _messageClipRef.gotoAndStop(2);
  1248.       }
  1249.       
  1250.       private function removeDarken() : void
  1251.       {
  1252.          videoHolder.removeChild(gameStartDarkenerRef);
  1253.       }
  1254.       
  1255.       private function tellPlayerLevelComplete() : void
  1256.       {
  1257.          videoHolder.addChild(gameStartDarkenerRef);
  1258.          gameStartDarkenerRef.mouseChildren = false;
  1259.          gameStartDarkenerRef.mouseEnabled = false;
  1260.          gameStartDarkenerRef.alpha = 0.1;
  1261.          TweenMax.to(gameStartDarkenerRef,0.5,{"alpha":0.7});
  1262.          TweenMax.to(gameStartDarkenerRef,0.5,{
  1263.             "alpha":0.1,
  1264.             "onComplete":removeDarken,
  1265.             "delay":2,
  1266.             "overwrite":false
  1267.          });
  1268.          _messageClipRef.visible = true;
  1269.          _messageClipRef.x = 0;
  1270.          _messageClipRef.y = -100;
  1271.          _messageClipRef.rotation = Math.random() * 30 - 15;
  1272.          TweenMax.to(_messageClipRef,0.5,{
  1273.             "rotation":0,
  1274.             "y":screenHeight / 2,
  1275.             "ease":Back.easeOut
  1276.          });
  1277.          TweenMax.to(_messageClipRef,0.5,{
  1278.             "rotation":Math.random() * 30 - 15,
  1279.             "y":screenHeight + 100,
  1280.             "overwrite":false,
  1281.             "delay":2,
  1282.             "onComplete":hideMsgClip,
  1283.             "ease":Back.easeIn
  1284.          });
  1285.          _messageClipRef.gotoAndStop(1);
  1286.       }
  1287.       
  1288.       private function tellGameComplete() : void
  1289.       {
  1290.          gameStartDarkenerRef.mouseChildren = false;
  1291.          gameStartDarkenerRef.mouseEnabled = false;
  1292.          videoHolder.addChild(gameStartDarkenerRef);
  1293.          gameStartDarkenerRef.alpha = 0.1;
  1294.          TweenMax.to(gameStartDarkenerRef,0.5,{"alpha":0.7});
  1295.          TweenMax.to(gameStartDarkenerRef,0.5,{
  1296.             "alpha":0.1,
  1297.             "onComplete":removeDarken,
  1298.             "delay":2,
  1299.             "overwrite":false
  1300.          });
  1301.          _messageClipRef.visible = true;
  1302.          _messageClipRef.x = 0;
  1303.          _messageClipRef.y = -100;
  1304.          _messageClipRef.rotation = Math.random() * 30 - 15;
  1305.          TweenMax.to(_messageClipRef,0.5,{
  1306.             "rotation":0,
  1307.             "y":screenHeight / 2,
  1308.             "ease":Back.easeOut
  1309.          });
  1310.          TweenMax.to(_messageClipRef,0.5,{
  1311.             "rotation":Math.random() * 30 - 15,
  1312.             "y":screenHeight + 100,
  1313.             "overwrite":false,
  1314.             "delay":2,
  1315.             "onComplete":hideMsgClip,
  1316.             "ease":Back.easeIn
  1317.          });
  1318.          _messageClipRef.gotoAndStop(3);
  1319.       }
  1320.       
  1321.       public function addHealth(param1:Number) : void
  1322.       {
  1323.          playerHealth += param1;
  1324.          if(playerHealth > 100)
  1325.          {
  1326.             playerHealth = 100;
  1327.          }
  1328.          updateTextBoxes();
  1329.       }
  1330.       
  1331.       private function playerLosesLife() : void
  1332.       {
  1333.          if(characterChoice == CHARACTER_SCRAT)
  1334.          {
  1335.             playSound("scrat_death.wav");
  1336.          }
  1337.          else
  1338.          {
  1339.             playSound("scratte_death.wav");
  1340.          }
  1341.          --lives;
  1342.       }
  1343.       
  1344.       private function setup() : void
  1345.       {
  1346.          languageFrame = MovieClip(root).languageFrame;
  1347.          medalAwardedClip.y = -medalAwardedClip.height - 5;
  1348.          medalAwardedClip.gotoAndStop(1);
  1349.          switch(languageFrame)
  1350.          {
  1351.             case "en":
  1352.                medalScreenDefaultText = "ROLL OVER AN UNLOCKED MEDAL TO SEE WHAT YOU HAVE ACHIEVED";
  1353.                medalScreenNeedToPlayMoreText = "PLAY TO UNLOCK MEDALS  (TRY COLLECTING ALL ACORNS WITHOUT GETTING HURT)";
  1354.                medalsText = new Array("YOU HAVE COMPLETED 3 OR OVER WITHOUT GETTING HARMED","YOU HAVE COMPLETED A LEVEL WITH A SMALL AMOUNT OF HEALTH LEFT","FINISH A LEVEL WITH FULL HEALTH","YOU HAVE COLLECTED 10 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED 25 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED ALL ACORNS ON A LEVEL 5 OR HIGHER","YOU HAVE PLAYED 25 TIMES","YOU HAVE COMPLETED THE GAME");
  1355.                break;
  1356.             case "us":
  1357.                medalScreenDefaultText = "ROLL OVER AN UNLOCKED MEDAL TO SEE WHAT YOU HAVE ACHIEVED";
  1358.                medalScreenNeedToPlayMoreText = "PLAY TO UNLOCK MEDALS  (TRY COLLECTING ALL ACORNS WITHOUT GETTING HURT)";
  1359.                medalsText = new Array("YOU HAVE COMPLETED 3 OR OVER WITHOUT GETTING HARMED","YOU HAVE COMPLETED A LEVEL WITH A SMALL AMOUNT OF HEALTH LEFT","FINISH A LEVEL WITH FULL HEALTH","YOU HAVE COLLECTED 10 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED 25 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED ALL ACORNS ON A LEVEL 5 OR HIGHER","YOU HAVE PLAYED 25 TIMES","YOU HAVE COMPLETED THE GAME");
  1360.                break;
  1361.             case "au":
  1362.                medalScreenDefaultText = "ROLL OVER AN UNLOCKED MEDAL TO SEE WHAT YOU HAVE ACHIEVED";
  1363.                medalScreenNeedToPlayMoreText = "PLAY TO UNLOCK MEDALS  (TRY COLLECTING ALL ACORNS WITHOUT GETTING HURT)";
  1364.                medalsText = new Array("YOU HAVE COMPLETED 3 OR OVER WITHOUT GETTING HARMED","YOU HAVE COMPLETED A LEVEL WITH A SMALL AMOUNT OF HEALTH LEFT","FINISH A LEVEL WITH FULL HEALTH","YOU HAVE COLLECTED 10 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED 25 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED ALL ACORNS ON A LEVEL 5 OR HIGHER","YOU HAVE PLAYED 25 TIMES","YOU HAVE COMPLETED THE GAME");
  1365.                break;
  1366.             case "uk":
  1367.                medalScreenDefaultText = "ROLL OVER AN UNLOCKED MEDAL TO SEE WHAT YOU HAVE ACHIEVED";
  1368.                medalScreenNeedToPlayMoreText = "PLAY TO UNLOCK MEDALS  (TRY COLLECTING ALL ACORNS WITHOUT GETTING HURT)";
  1369.                medalsText = new Array("YOU HAVE COMPLETED 3 OR OVER WITHOUT GETTING HARMED","YOU HAVE COMPLETED A LEVEL WITH A SMALL AMOUNT OF HEALTH LEFT","FINISH A LEVEL WITH FULL HEALTH","YOU HAVE COLLECTED 10 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED 25 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED ALL ACORNS ON A LEVEL 5 OR HIGHER","YOU HAVE PLAYED 25 TIMES","YOU HAVE COMPLETED THE GAME");
  1370.                break;
  1371.             case "fr":
  1372.                medalScreenDefaultText = "Retournez une m├⌐daille non verrouill├⌐e pour voir ce que vous avez accompli";
  1373.                medalScreenNeedToPlayMoreText = "Jouez pour deverrouiller les m├⌐dailles (Essayez de collecter toutes les noisettes sans ├¬tre bless├⌐)";
  1374.                medalsText = new Array("Vous avez termin├⌐ 3 ou plus sans ├¬tre endommag├⌐","Vous avez termin├⌐ un niveau avec peu de sant├⌐ restante","Fini un niveau avec une sant├⌐ compl├¿te","Vous avez collect├⌐ 10 noisettes de suite sans ├¬tre bless├⌐","Vous avez collect├⌐ 25 noisettes de suite sans ├¬tre bless├⌐","Vous avez collect├⌐ tous les noisettes au niveau 5 ou plus","Vous avez  jou├⌐ 25 fois","Vous avez termin├⌐ le jeu");
  1375.                break;
  1376.             case "de":
  1377.                medalScreenDefaultText = "KLICKE AUF EINE FREIGESPIELTE MEDAILLE UM ZU SEHEN, WAS DU ERREICHT HAST";
  1378.                medalScreenNeedToPlayMoreText = "VERSUCHE MEDAILLEN FREIZUSPIELEN (SAMMLE ALLE N├£SSE, OHNE VERLETZT ZU WERDEN)";
  1379.                medalsText = new Array("DU HAST 3 ODER MEHR LEVEL GESCHAFFT OHNE VERLETZT ZU WERDEN","YDU HAST EIN LEVEL MIT GERINGEM REST GESUNDHEIT VOLLENDET","SCHAFFE EIN LEVEL BEI VOLLER GESUNDHEIT","DU HAST 10 N├£SSE IN FOLGE GESAMMELT OHNE VERLETZT ZU WERDEN","DU HAST 25 N├£SSE IN FOLGE GESAMMELT OHNE VERLETZT ZU WERDEN","DU HAST ALLE N├£SSE IN EINEM LEVEL H├ûHER ALS 4 GESAMMELT","DU HAST 25 MAL GESPIELT","DU HAST DAS SPIEL GESCHAFFT");
  1380.                break;
  1381.             case "es":
  1382.                medalScreenDefaultText = "PASA POR UNA MEDALLA ABIERTA PARA VER QU├ë HAS CONSEGUIDO";
  1383.                medalScreenNeedToPlayMoreText = "JUEGA PARA ABRIR LAS MEDALLAS (CONSIGUE TODAS LAS BELLOTAS SIN SER HERIDO)";
  1384.                medalsText = new Array("HAS COMPLETADO 3 O M├üS SIN SER DA├æADO","HAS COMPLETADO UN NIVEL CON MUY POCA SALUD","TERMINA UN NIVEL CON TU SALUD COMPLETA","HAS CONSEGUIDO 10 BELLOTAS SIN SER HERIDO","HAS CONSEGUIDO 25 BELLOTAS SIN SER HERIDO","HAS CONSEGUIDO TODAS LAS BELLOTAS EN UN NIVEL 5 O SUPERIOR","HAS JUGADO 25 VECES","HAS COMPLETADO EL JUEGO");
  1385.                break;
  1386.             case "ko":
  1387.                medalScreenDefaultText = "ROLL OVER AN UNLOCKED MEDAL TO SEE WHAT YOU HAVE ACHIEVED";
  1388.                medalScreenNeedToPlayMoreText = "PLAY TO UNLOCK MEDALS  (TRY COLLECTING ALL ACORNS WITHOUT GETTING HURT)";
  1389.                medalsText = new Array("YOU HAVE COMPLETED 3 OR OVER WITHOUT GETTING HARMED","YOU HAVE COMPLETED A LEVEL WITH A SMALL AMOUNT OF HEALTH LEFT","FINISH A LEVEL WITH FULL HEALTH","YOU HAVE COLLECTED 10 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED 25 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED ALL ACORNS ON A LEVEL 5 OR HIGHER","YOU HAVE PLAYED 25 TIMES","YOU HAVE COMPLETED THE GAME");
  1390.                break;
  1391.             case "ru":
  1392.                medalScreenDefaultText = "ROLL OVER AN UNLOCKED MEDAL TO SEE WHAT YOU HAVE ACHIEVED";
  1393.                medalScreenNeedToPlayMoreText = "PLAY TO UNLOCK MEDALS  (TRY COLLECTING ALL ACORNS WITHOUT GETTING HURT)";
  1394.                medalsText = new Array("YOU HAVE COMPLETED 3 OR OVER WITHOUT GETTING HARMED","YOU HAVE COMPLETED A LEVEL WITH A SMALL AMOUNT OF HEALTH LEFT","FINISH A LEVEL WITH FULL HEALTH","YOU HAVE COLLECTED 10 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED 25 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED ALL ACORNS ON A LEVEL 5 OR HIGHER","YOU HAVE PLAYED 25 TIMES","YOU HAVE COMPLETED THE GAME");
  1395.                break;
  1396.             case "la":
  1397.                medalScreenDefaultText = "PASA POR ENCIMA DE UNA MEDALLA DESCUBIERTA PARA VER LO QUE HAS LOGRADO";
  1398.                medalScreenNeedToPlayMoreText = "JUEGA PARA DESCUBRIR LAS MEDALLAS (INTENTA JUNTAR TODAS LAS BELLOTAS SIN SALIR LASTIMADO)";
  1399.                medalsText = new Array("HAS TERMINADO 3 O M├üS SIN SALIR LASTIMADO","HAS TERMINADO UN NIVEL CON UN POCO DE SALUD RESTANTE","TERMINA UN NIVEL CON LA SALUD COMPLETA","HAS JUNTADO 10 BELLOTAS SEGUIDAS SIN SALIR LASTIMADO","HAS JUNTADO 25 BELLOTAS SEGUIDAS SIN SALIR LASTIMADO","HAS JUNTADO TODAS LAS BELLOTAS EN UN NIVEL 5 O MAYOR","HAS JUGADO 25 VECES","HAS TERMINADO EL JUEGO");
  1400.                break;
  1401.             case "pt":
  1402.                medalScreenDefaultText = "MOVA O CURSOR SOBRE UMA MEDALHA PARA VER O QUE VOC├è CONSEGUIR";
  1403.                medalScreenNeedToPlayMoreText = "JOGUE PARA DESTRAVAR AS MEDALHAS (TENTE COLETAR TODAS AS NOZES SEM SER MACHUCADO)";
  1404.                medalsText = new Array("VOC├è COMPLETOU 3 OU MAIS N├ìVEIS SEM SER MACHUCADO","VOC├è COMPLETOU UM N├ìVEL COM UMA PEQUENA QUANTIDADE DE VIDA RESTANTE","COMPLETE UM N├ìVEL COM A VIDA COMPLETA","VOC├è COLETOU 10 NOZES SEGUIDAS SEM SER MACHUCADO","VOC├è COLETOU 25 NOZES SEGUIDAS SEM SER MACHUCADO","VOC├è COLETOU TODAS AS NOZES NO N├ìVEL 5 OU ACIMA","VOC├è JOGOU 25 VEZES","VOC├è COMPLETOU O JOGO");
  1405.                break;
  1406.             default:
  1407.                medalScreenDefaultText = "ROLL OVER AN UNLOCKED MEDAL TO SEE WHAT YOU HAVE ACHIEVED";
  1408.                medalScreenNeedToPlayMoreText = "PLAY TO UNLOCK MEDALS  (TRY COLLECTING ALL ACORNS WITHOUT GETTING HURT)";
  1409.                medalsText = new Array("YOU HAVE COMPLETED 3 OR OVER WITHOUT GETTING HARMED","YOU HAVE COMPLETED A LEVEL WITH A SMALL AMOUNT OF HEALTH LEFT","FINISH A LEVEL WITH FULL HEALTH","YOU HAVE COLLECTED 10 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED 25 ACORNS IN A ROW WITHOUT GETTING HURT","YOU HAVE COLLECTED ALL ACORNS ON A LEVEL 5 OR HIGHER","YOU HAVE PLAYED 25 TIMES","YOU HAVE COMPLETED THE GAME");
  1410.          }
  1411.          so = SharedObject.getLocal("iceage_bubbletrouble_game");
  1412.          if(so.size == 0)
  1413.          {
  1414.             so.data.highScore = 0;
  1415.             sfxState = so.data.sfxSetting = VAR_ON;
  1416.             musicState = so.data.musicSetting = VAR_ON;
  1417.             firstGamePlay = so.data.firstGamePlay = true;
  1418.             so.data.levelsUnlocked = levelsUnlocked = 1;
  1419.             medalsArray = so.data.medalsArray = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
  1420.             levelChooserUnlocked = so.data.levelChooserUnlocked = false;
  1421.             playCount = so.data.playCount = 0;
  1422.          }
  1423.          else
  1424.          {
  1425.             highscore = so.data.highScore;
  1426.             sfxState = so.data.sfxSetting;
  1427.             musicState = so.data.musicSetting;
  1428.             firstGamePlay = so.data.firstGamePlay;
  1429.             medalsArray = so.data.medalsArray;
  1430.             levelsUnlocked = so.data.levelsUnlocked;
  1431.             levelChooserUnlocked = so.data.levelChooserUnlocked;
  1432.             playCount = so.data.playCount;
  1433.          }
  1434.          gameStartDarkenerRef = new gameStartDarkener();
  1435.          gameStartDarkenerRef.mouseChildren = false;
  1436.          gameStartDarkenerRef.mouseEnabled = false;
  1437.          if(musicState == VAR_ON)
  1438.          {
  1439.             musicVolume = 1;
  1440.          }
  1441.          else
  1442.          {
  1443.             musicVolume = 0;
  1444.          }
  1445.          musicSoundTransform = new SoundTransform(musicVolume,0);
  1446.          musicSoundRef = new musicSound();
  1447.          musicChannel = musicSoundRef.play(0,999,musicSoundTransform);
  1448.          setupBackgroundTiles();
  1449.       }
  1450.       
  1451.       private function evalHowToPlayScene() : void
  1452.       {
  1453.          homeBtn.visible = true;
  1454.       }
  1455.       
  1456.       private function hideMenu() : void
  1457.       {
  1458.       }
  1459.       
  1460.       private function showMenu() : void
  1461.       {
  1462.       }
  1463.       
  1464.       private function setupBackgroundTiles() : void
  1465.       {
  1466.          var _loc3_:BitmapData = null;
  1467.          backgroundTilesArray = [];
  1468.          var _loc1_:BitmapData = new BitmapData(480,480,false);
  1469.          drawMatrix.identity();
  1470.          drawMatrix.scale(1,1);
  1471.          var _loc2_:int = 0;
  1472.          while(_loc2_ < 16)
  1473.          {
  1474.             _loc3_ = new BitmapData(480,480,false);
  1475.             renderRect.x = _loc2_ * 480;
  1476.             _loc1_.copyPixels(backgroundTilesBitmapData,renderRect,renderPoint);
  1477.             _loc3_.draw(_loc1_,drawMatrix);
  1478.             backgroundTilesArray[_loc2_] = _loc3_;
  1479.             _loc2_++;
  1480.          }
  1481.          renderPoint.x = 0;
  1482.          renderRect.width = 480;
  1483.       }
  1484.       
  1485.       private function render() : void
  1486.       {
  1487.          var _loc2_:Point = null;
  1488.          var _loc3_:Number = NaN;
  1489.          var _loc4_:Number = NaN;
  1490.          screenBitmapData.lock();
  1491.          backgroundBitmapData.lock();
  1492.          foregroundBitmapData.lock();
  1493.          screenBitmapData.fillRect(screenBitmapData.rect,0);
  1494.          backgroundBitmapData.fillRect(backgroundBitmapData.rect,0);
  1495.          foregroundBitmapData.fillRect(foregroundBitmapData.rect,0);
  1496.          renderPoint.x = 0;
  1497.          renderRect.x = 0;
  1498.          renderRect.y = 0;
  1499.          renderRect.width = 480;
  1500.          renderRect.height = 480;
  1501.          backBitmap = backgroundTilesArray[_backgroundCell1.getType];
  1502.          renderPoint.y = _backgroundCell1.getY;
  1503.          backgroundBitmapData.copyPixels(backBitmap,renderRect,renderPoint);
  1504.          backBitmap = backgroundTilesArray[_backgroundCell2.getType];
  1505.          renderPoint.y = _backgroundCell2.getY;
  1506.          backgroundBitmapData.copyPixels(backBitmap,renderRect,renderPoint);
  1507.          ry = _stageCell1.getType / 6;
  1508.          rx = _stageCell1.getType - ry * 6;
  1509.          renderRect.x = rx * screenWidth;
  1510.          renderRect.y = ry * screenHeight;
  1511.          renderPoint.x = 0;
  1512.          renderPoint.y = _stageCell1.getY;
  1513.          screenBitmapData.copyPixels(screenTilesBitmapData,renderRect,renderPoint);
  1514.          ry = _stageCell2.getType / 6;
  1515.          rx = _stageCell2.getType - ry * 6;
  1516.          renderRect.x = rx * screenWidth;
  1517.          renderRect.y = ry * screenHeight;
  1518.          renderPoint.x = 0;
  1519.          renderPoint.y = _stageCell2.getY;
  1520.          screenBitmapData.copyPixels(screenTilesBitmapData,renderRect,renderPoint);
  1521.          activeBubbles = bubblesArray.length;
  1522.          var _loc1_:int = 0;
  1523.          while(_loc1_ < activeBubbles)
  1524.          {
  1525.             _itemBubbleRef = bubblesArray[_loc1_];
  1526.             if(!_itemBubbleRef.getCollected())
  1527.             {
  1528.                _loc2_ = _itemBubbleRef.getLoc();
  1529.                if(_loc2_.y < 500 && _loc2_.y > -50)
  1530.                {
  1531.                   _itemBubbleRef.drawBubble(_loc2_);
  1532.                   _clip = _itemBubbleRef.getClip();
  1533.                   drawMatrix.identity();
  1534.                   drawMatrix.translate(_loc2_.x,_loc2_.y);
  1535.                   foregroundBitmapData.draw(_clip,drawMatrix);
  1536.                }
  1537.             }
  1538.             _loc1_++;
  1539.          }
  1540.          n = foregroundElementsArray.length;
  1541.          while(n--)
  1542.          {
  1543.             _foregroundElementClassRef = foregroundElementsArray[n];
  1544.             if(_foregroundElementClassRef.getY > -150 && _foregroundElementClassRef.getY < 600)
  1545.             {
  1546.                drawMatrix.identity();
  1547.                _loc3_ = _foregroundElementClassRef.getY;
  1548.                drawMatrix.translate(_foregroundElementClassRef.getX,_loc3_);
  1549.                _foregroundElementClip.gotoAndStop(_foregroundElementClassRef.getType);
  1550.                _loc4_ = Math.abs(_loc3_ - playerScreenLoc.y) / 200;
  1551.                leafColour.alphaMultiplier = 0.5;
  1552.                foregroundBitmapData.draw(_foregroundElementClip,drawMatrix,leafColour);
  1553.             }
  1554.          }
  1555.          renderEnemies();
  1556.          drawMatrix.identity();
  1557.          if(playerXVelocity < 0)
  1558.          {
  1559.             drawMatrix.scale(-playerScale,playerScale);
  1560.          }
  1561.          else
  1562.          {
  1563.             drawMatrix.scale(playerScale,playerScale);
  1564.          }
  1565.          drawMatrix.translate(playerScreenLoc.x,playerScreenLoc.y);
  1566.          playerColour.alphaMultiplier = playerAlpha;
  1567.          backgroundBitmapData.draw(_playerClip,drawMatrix,playerColour);
  1568.          drawMatrix.identity();
  1569.          drawMatrix.scale(playerScale,playerScale);
  1570.          drawMatrix.translate(bubble.x,bubble.y);
  1571.          ++playerAnimationNum;
  1572.          if(playerAnimationNum > 59)
  1573.          {
  1574.             playerAnimationNum = 0;
  1575.          }
  1576.          playerFrame = (characterChoice - 1) * 60 + playerAnimationNum;
  1577.          _playerClip.gotoAndStop(playerFrame);
  1578.          backgroundBitmapData.draw(bubble,drawMatrix);
  1579.          screenBitmapData.unlock();
  1580.          backgroundBitmapData.unlock();
  1581.          foregroundBitmapData.unlock();
  1582.       }
  1583.       
  1584.       public function playerHitsWall(param1:Number) : void
  1585.       {
  1586.          damagePlayer(param1);
  1587.          lastThingHit = HIT_WALL;
  1588.       }
  1589.       
  1590.       private function manageEnemies() : void
  1591.       {
  1592.          var _loc1_:Boolean = false;
  1593.          var _loc2_:int = 0;
  1594.          var _loc3_:Number = NaN;
  1595.          n = enemyClassArray.length;
  1596.          if(level == 1)
  1597.          {
  1598.             if(totalDistanceTraveled < 1000)
  1599.             {
  1600.                maxEnemies = 0;
  1601.             }
  1602.             else if(totalDistanceTraveled > 1000 && totalDistanceTraveled < 2500)
  1603.             {
  1604.                maxEnemies = 1;
  1605.             }
  1606.             else if(totalDistanceTraveled > 2500)
  1607.             {
  1608.                maxEnemies = 2;
  1609.             }
  1610.          }
  1611.          if(level > 1 && level < 5)
  1612.          {
  1613.             maxEnemies = 2;
  1614.          }
  1615.          if(level > 4 && level < 10)
  1616.          {
  1617.             maxEnemies = 4;
  1618.          }
  1619.          if(level > 9 && level < 10)
  1620.          {
  1621.             maxEnemies = 7;
  1622.          }
  1623.          if(level > 10)
  1624.          {
  1625.             maxEnemies = 10;
  1626.          }
  1627.          if(totalDistanceTraveled < levelTotalHeight - 240)
  1628.          {
  1629.             if(n < maxEnemies)
  1630.             {
  1631.                if(Math.random() < 0.03)
  1632.                {
  1633.                   ey = -100;
  1634.                   if(level == 1)
  1635.                   {
  1636.                      enemyType = 1;
  1637.                   }
  1638.                   else
  1639.                   {
  1640.                      enemyType = int(Math.random() * 2 + 1);
  1641.                   }
  1642.                   switch(enemyType)
  1643.                   {
  1644.                      case ENEMY_METEOR:
  1645.                         if(Math.random() < 0.5)
  1646.                         {
  1647.                            ex = -20;
  1648.                            dir = Math.random() * 20 + 5;
  1649.                         }
  1650.                         else
  1651.                         {
  1652.                            ex = screenWidth + 20;
  1653.                            dir = 180 - Math.random() * 20 - 5;
  1654.                         }
  1655.                         break;
  1656.                      case ENEMY_BEE:
  1657.                         if(Math.random() < 0.5)
  1658.                         {
  1659.                            ex = -20;
  1660.                            dir = 0;
  1661.                         }
  1662.                         else
  1663.                         {
  1664.                            ex = screenWidth + 20;
  1665.                            dir = 180;
  1666.                         }
  1667.                   }
  1668.                   speed = 2 + Math.random() * 2;
  1669.                   _loc2_ = int(Math.random() * 4 + 1);
  1670.                   _enemyItemClassRef = new enemyItemClass(ex,ey,dir,enemyType,_loc2_,speed,enemyNum);
  1671.                   ++enemyNum;
  1672.                   enemyClassArray.push(_enemyItemClassRef);
  1673.                }
  1674.             }
  1675.          }
  1676.          n = enemyClassArray.length;
  1677.          while(n--)
  1678.          {
  1679.             _enemyItemClassRef = enemyClassArray[n];
  1680.             _enemyItemClassRef.manageEnemy(scrollYDist);
  1681.             enemyType = _enemyItemClassRef.getType();
  1682.             _point1 = _enemyItemClassRef.getLoc();
  1683.             dir = _enemyItemClassRef.getDir();
  1684.             _loc1_ = false;
  1685.             if(playerInvincibleAfterHurtCounter < 1)
  1686.             {
  1687.                dist = _trigClassRef.findDistance(playerScreenLoc,_point1);
  1688.                _loc3_ = (_enemyItemClassRef.getHitRadius() + playerBubbleRadius * playerScale) * 0.65;
  1689.                if(dist <= _loc3_)
  1690.                {
  1691.                   if(powerUpActive != BUBBLE_TYPE_INVINCIBLE)
  1692.                   {
  1693.                      switch(_enemyItemClassRef.getType())
  1694.                      {
  1695.                         case ENEMY_BEE:
  1696.                            playSound("enemy_killed_bee.wav");
  1697.                            break;
  1698.                         case ENEMY_METEOR:
  1699.                            playSound("enemy_killed_meteor.wav");
  1700.                      }
  1701.                      lastThingHit = HIT_ENEMY;
  1702.                      damagePlayer(_enemyItemClassRef.getDamage());
  1703.                   }
  1704.                   particleEffect(PARTICLE_EFFECT_WELD,_point1.x,_point1.y);
  1705.                   scrollYDist = -2;
  1706.                   _loc1_ = true;
  1707.                }
  1708.             }
  1709.             if(dir > 270 || dir < 90)
  1710.             {
  1711.                if(_point1.x > screenWidth + 50)
  1712.                {
  1713.                   _loc1_ = true;
  1714.                }
  1715.             }
  1716.             else if(_point1.x < -50)
  1717.             {
  1718.                _loc1_ = true;
  1719.             }
  1720.             if(enemyType == ENEMY_METEOR)
  1721.             {
  1722.                particleEffect(PARTICLE_EFFECT_METEOR,_point1.x,_point1.y);
  1723.             }
  1724.             if(_loc1_)
  1725.             {
  1726.                enemyClassArray.splice(n,1);
  1727.             }
  1728.          }
  1729.       }
  1730.       
  1731.       private function renderEnemies() : void
  1732.       {
  1733.          var _loc1_:Number = NaN;
  1734.          var _loc2_:Number = NaN;
  1735.          var _loc3_:Number = NaN;
  1736.          n = enemyClassArray.length;
  1737.          while(n--)
  1738.          {
  1739.             _enemyItemClassRef = enemyClassArray[n];
  1740.             drawMatrix.identity();
  1741.             _point1 = _enemyItemClassRef.getLoc();
  1742.             enemyType = _enemyItemClassRef.getType();
  1743.             _loc1_ = _enemyItemClassRef.getDir();
  1744.             if(_loc1_ > 270 || _loc1_ < 90)
  1745.             {
  1746.                drawMatrix.scale(1,1);
  1747.             }
  1748.             else
  1749.             {
  1750.                drawMatrix.scale(-1,1);
  1751.             }
  1752.             switch(enemyType)
  1753.             {
  1754.                case ENEMY_BEE:
  1755.                   _clip = _enemyBeeClipRef;
  1756.                   _clip.gotoAndStop((_enemyItemClassRef.getEnemySubType() - 1) * 20 + _enemyItemClassRef.getAnimationFrame());
  1757.                   break;
  1758.                case ENEMY_METEOR:
  1759.                   _clip = _enemyMeteorClipRef;
  1760.                   _loc2_ = _enemyItemClassRef.getAnimationFrame() * rotationSteps;
  1761.                   _loc3_ = _loc2_ / 180 * Math.PI;
  1762.                   drawMatrix.rotate(_loc3_);
  1763.                   _clip.gotoAndStop(_enemyItemClassRef.getEnemySubType());
  1764.                   break;
  1765.             }
  1766.             drawMatrix.translate(_point1.x,_point1.y);
  1767.             foregroundBitmapData.draw(_clip,drawMatrix,null,null);
  1768.          }
  1769.       }
  1770.       
  1771.       private function setupLevel() : void
  1772.       {
  1773.          _nextThingFinderRef.resetForNextLevel();
  1774.          _findClearOfBitmapRef.resetForNextLevel();
  1775.          scrollYDist = 0;
  1776.          flipPlayer = false;
  1777.          playerScale = 1;
  1778.          powerUpCounterClip.y = -100;
  1779.          screenY = 0;
  1780.          foregroundScreenY = 0;
  1781.          levelAcornAmount = 0;
  1782.          takenDamage = false;
  1783.          lastThingHit = 0;
  1784.          powerUpActive = 0;
  1785.          powerUpCounterStart = powerUpCounter = 0;
  1786.          if(level == 1)
  1787.          {
  1788.             playerBubbleRenderColour = 12303342;
  1789.          }
  1790.          else
  1791.          {
  1792.             playerBubbleRenderColour = 6710886;
  1793.          }
  1794.          Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_PAGE,"/game/level/" + level + "/start"));
  1795.          levelStorageArray = [];
  1796.          _tempArray = [];
  1797.          levelStorageArray[0] = _tempArray;
  1798.          levelTotalHeight = level * (screenHeight * 8) + 50 + screenHeight * 5;
  1799.          totalLevelCells = Math.floor(levelTotalHeight / screenHeight);
  1800.          _stageCell1 = new screenCellClass(0);
  1801.          _stageCell2 = new screenCellClass(1);
  1802.          _backgroundCell1.updatePosition(0,_nextThingFinderRef.findNextBackgroundType(0));
  1803.          _backgroundCell2.updatePosition(-screenHeight,_nextThingFinderRef.findNextBackgroundType(1));
  1804.          _stageCell1.updatePosition(0,_nextThingFinderRef.findNextScreenCellType(_stageCell1.getCellPosition(),0));
  1805.          _stageCell2.updatePosition(-screenHeight,_nextThingFinderRef.findNextScreenCellType(_stageCell2.getCellPosition(),-screenHeight));
  1806.          leftReleased = true;
  1807.          rightReleased = true;
  1808.          acornsCollected = 0;
  1809.          playerAlpha = 1;
  1810.          playerInvincibleAfterHurtCounter = 0;
  1811.          playerHealth += 25;
  1812.          if(playerHealth > 100)
  1813.          {
  1814.             playerHealth = 100;
  1815.          }
  1816.          totalDistanceTraveled = 0;
  1817.          playerLoc = new Point(100,100);
  1818.          playerXVelocity = 0;
  1819.          playerYVelocity = 0;
  1820.          playerScreenLoc.x = screenWidth / 2;
  1821.          playerScreenLoc.y = screenHeight / 2;
  1822.          updateTextBoxes();
  1823.          scrollYDist = 0;
  1824.          screenY = 0;
  1825.          UI.levelTextBox.text = level.toString();
  1826.          foregroundElementsArray = [];
  1827.          r = -(Math.random() * 500) + 300;
  1828.          _foregroundElementClassRef = new foregroundElementClass(0,r,_nextThingFinderRef.findNextForegroundType("left"),"left");
  1829.          foregroundElementsArray.push(_foregroundElementClassRef);
  1830.          r = -(Math.random() * 500) + 500;
  1831.          _foregroundElementClassRef = new foregroundElementClass(0,r,_nextThingFinderRef.findNextForegroundType("left"),"left");
  1832.          foregroundElementsArray.push(_foregroundElementClassRef);
  1833.          r = -(Math.random() * 500) + 300;
  1834.          _foregroundElementClassRef = new foregroundElementClass(screenWidth,r,_nextThingFinderRef.findNextForegroundType("right"),"right");
  1835.          foregroundElementsArray.push(_foregroundElementClassRef);
  1836.          r = -(Math.random() * 500) + 500;
  1837.          _foregroundElementClassRef = new foregroundElementClass(screenWidth,r,_nextThingFinderRef.findNextForegroundType("right"),"right");
  1838.          foregroundElementsArray.push(_foregroundElementClassRef);
  1839.       }
  1840.       
  1841.       private function setupNewGame() : void
  1842.       {
  1843.          Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_PAGE,"/game/start"));
  1844.          stage.focus = this;
  1845.          ++playCount;
  1846.          so.data.playCount = playCount;
  1847.          if(playCount > 24)
  1848.          {
  1849.             medalAwarded(MEDAL_25_PLAYS);
  1850.          }
  1851.          _itemManagerRef.reset();
  1852.          UI.healthBar.gotoAndStop(characterChoice);
  1853.          homeBtn.gotoAndStop(1);
  1854.          playSound("startNewGame.wav");
  1855.          inARowMsg.gotoAndStop(1);
  1856.          _nextThingFinderRef = new nextThingFinder(this);
  1857.          score = 0;
  1858.          scrollYDist = 0;
  1859.          level = startingLevel;
  1860.          lives = 1;
  1861.          _backgroundCell1 = new backgroundCellClass();
  1862.          _backgroundCell2 = new backgroundCellClass();
  1863.          _stageCell1 = new screenCellClass(0);
  1864.          _stageCell2 = new screenCellClass(1);
  1865.          _backgroundCell1.updatePosition(0,_nextThingFinderRef.findNextBackgroundType(0));
  1866.          _backgroundCell2.updatePosition(-screenHeight,_nextThingFinderRef.findNextBackgroundType(1));
  1867.          _stageCell1.updatePosition(0,_nextThingFinderRef.findNextScreenCellType(_stageCell1.getCellPosition(),0));
  1868.          _stageCell2.updatePosition(-screenHeight,_nextThingFinderRef.findNextScreenCellType(_stageCell2.getCellPosition(),-screenHeight));
  1869.          _foregroundElementClip = new foregroundElement();
  1870.          _foregroundElementClip.gotoAndStop(1);
  1871.          hideMenu();
  1872.          screenBitmapData = new BitmapData(screenWidth,screenHeight,true,16777215);
  1873.          backgroundBitmapData = new BitmapData(screenWidth,screenHeight,true,16777215);
  1874.          foregroundBitmapData = new BitmapData(screenWidth,screenHeight,true,16777215);
  1875.          screenBitmap = new Bitmap(screenBitmapData);
  1876.          backgroundBitmap = new Bitmap(backgroundBitmapData);
  1877.          foregroundBitmap = new Bitmap(foregroundBitmapData);
  1878.          bubble = new bubbleClip();
  1879.          _playerBubbleCodeClass = new playerBubbleCodeClass(bubble,playerBubbleRadius,BUBBLE_TYPE_PLAYER,false,this);
  1880.          backgroundSprite = new Sprite();
  1881.          screenSprite = new Sprite();
  1882.          _playerClip = new playerClip();
  1883.          foregroundBmpData = new BitmapData(screenWidth,screenHeight,true,16777215);
  1884.          _tbitmap = new Bitmap(foregroundBmpData);
  1885.          backgroundSprite.addChild(backgroundBitmap);
  1886.          screenSprite.addChild(backgroundSprite);
  1887.          screenSprite.addChild(screenBitmap);
  1888.          screenSprite.addChild(foregroundBitmap);
  1889.          gameplayClip.addChild(screenSprite);
  1890.          addChild(statsSprite);
  1891.          playerHealth = 100;
  1892.          _playerManagerRef = new playerManager(this);
  1893.          var _loc1_:Bitmap = new Bitmap(_effectSpriteSheet);
  1894.          particleManagerRef = new particleManagerClass(foregroundBitmapData,_effectSpriteSheet);
  1895.          _messageClipRef = messageClip as MovieClip;
  1896.          _messageClipRef.gotoAndStop(1);
  1897.          _messageClipRef.visible = false;
  1898.          addChild(_messageClipRef);
  1899.       }
  1900.       
  1901.       public function particleEffect(param1:int, param2:int, param3:int) : void
  1902.       {
  1903.          if(specialEffectsActive)
  1904.          {
  1905.             switch(param1)
  1906.             {
  1907.                case PARTICLE_EFFECT_ELECTRICAL_CHARGE:
  1908.                   particleManagerRef.createParticles(param2,param3,20,P_ELECTRICAL);
  1909.                   particleManagerRef.createParticles(param2 + Math.random() * 10 - 5,param3 + Math.random() * 10 - 5,1,P_BLUE_FLASH);
  1910.                   break;
  1911.                case PARTICLE_EFFECT_WELD:
  1912.                   particleManagerRef.createParticles(param2,param3,10,P_LINE);
  1913.                   particleManagerRef.createParticles(param2,param3 - 10,10,P_WHITE_SMOKE);
  1914.                   particleManagerRef.createParticles(param2,param3,10,P_FLICKER);
  1915.                   break;
  1916.                case PARTICLE_EFFECT_METEOR:
  1917.                   if(Math.random() * 10 < 7)
  1918.                   {
  1919.                      particleManagerRef.createParticles(param2,param3 - 10,1,P_METEOR);
  1920.                   }
  1921.                   break;
  1922.                case PARTICLE_HIT_OBJECT:
  1923.                   particleManagerRef.createParticles(param2,param3,5,P_ELECTRICAL);
  1924.                   break;
  1925.                case PARTICLE_COLLECT_ITEM:
  1926.                   particleManagerRef.createParticles(param2,param3,20,P_WANDERING);
  1927.                   break;
  1928.                case PARTICLE_EFFECT_CHIP_PLACED:
  1929.                   particleManagerRef.createParticles(param2,param3,20,P_FALLING);
  1930.                   break;
  1931.                case PARTICLE_EFFECT_FLICKER:
  1932.                   particleManagerRef.createParticles(param2,param3,20,P_WANDERING);
  1933.             }
  1934.          }
  1935.       }
  1936.       
  1937.       public function evalGameScene(param1:GeneralEvents) : void
  1938.       {
  1939.          gameStartDarkenerRef = new gameStartDarkener();
  1940.          setupNewGame();
  1941.          setupLevel();
  1942.          evalSoundBtns();
  1943.          homeBtn.visible = true;
  1944.          pauseBtn.visible = true;
  1945.          _DrawCurveBarRef.clearBar();
  1946.          _DrawCurveBarRef.setup(powerUpCounterClip,100,40);
  1947.       }
  1948.       
  1949.       public function evalChooseLevelScene() : void
  1950.       {
  1951.          evalSoundBtns();
  1952.          homeBtn.visible = true;
  1953.          levelChooser.setData(this,levelsUnlocked,languageFrame);
  1954.       }
  1955.       
  1956.       public function hideInARow() : void
  1957.       {
  1958.          inARowMsg.y = -100;
  1959.       }
  1960.       
  1961.       public function tellInARow(param1:int) : void
  1962.       {
  1963.          inARowMsg.alpha = 1;
  1964.          inARowMsg.x = playerScreenLoc.x - 240;
  1965.          inARowMsg.y = playerScreenLoc.y - 50;
  1966.          TweenMax.to(inARowMsg,1,{
  1967.             "y":playerScreenLoc.y - 130,
  1968.             "ease":Cubic.easeIn,
  1969.             "alpha":0.3,
  1970.             "onComplete":hideInARow
  1971.          });
  1972.          switch(param1)
  1973.          {
  1974.             case 3:
  1975.                inARowMsg.gotoAndStop(1);
  1976.                addPoints(300);
  1977.                break;
  1978.             case 5:
  1979.                inARowMsg.gotoAndStop(2);
  1980.                addPoints(500);
  1981.                break;
  1982.             case 10:
  1983.                medalAwarded(MEDAL_10_IN_A_ROW);
  1984.                inARowMsg.gotoAndStop(3);
  1985.                addPoints(2500);
  1986.                break;
  1987.             case 25:
  1988.                medalAwarded(MEDAL_25_IN_A_ROW);
  1989.                inARowMsg.gotoAndStop(4);
  1990.                addPoints(10000);
  1991.          }
  1992.       }
  1993.       
  1994.       public function medalAwarded(param1:int) : *
  1995.       {
  1996.          if(medalsArray[param1] == 0)
  1997.          {
  1998.             medalsArray[param1] = 1;
  1999.             so.data.medalsArray = medalsArray;
  2000.             medalAwardedClip.y = -medalAwardedClip.height - 5;
  2001.             medalAwardedClip.gotoAndStop(param1 + 1);
  2002.             TweenMax.to(medalAwardedClip,0.5,{
  2003.                "y":0,
  2004.                "ease":Bounce.easeOut
  2005.             });
  2006.             TweenMax.to(medalAwardedClip,0.35,{
  2007.                "y":-medalAwardedClip.height - 5,
  2008.                "ease":Quint.easeIn,
  2009.                "delay":1.5,
  2010.                "overwrite":false
  2011.             });
  2012.             data = new Object();
  2013.             data.name2 = "achievements";
  2014.             data.name3 = medalsText[param1];
  2015.             Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2016.          }
  2017.       }
  2018.       
  2019.       public function unlockedVideoFinished() : void
  2020.       {
  2021.          TweenMax.to(gameStartDarkenerRef,0.5,{
  2022.             "alpha":0,
  2023.             "delay":0.5,
  2024.             "onComplete":removeDarken
  2025.          });
  2026.          _videoClipRef.stop();
  2027.          stage.focus = this;
  2028.          videoHolder.removeChild(_videoClipRef);
  2029.          videoPlaying = false;
  2030.          if(musicState == VAR_ON)
  2031.          {
  2032.             musicVolume = 1;
  2033.          }
  2034.          else
  2035.          {
  2036.             musicVolume = 0;
  2037.          }
  2038.          musicSoundTransform = new SoundTransform(musicVolume,0);
  2039.          musicChannel.soundTransform = musicSoundTransform;
  2040.       }
  2041.       
  2042.       public function skipUnlockVideo(param1:Event) : void
  2043.       {
  2044.          var e:Event = param1;
  2045.          videoHolder.addChild(gameStartDarkenerRef);
  2046.          gameStartDarkenerRef.alpha = 1;
  2047.          TweenMax.to(gameStartDarkenerRef,0.5,{
  2048.             "alpha":0,
  2049.             "delay":0.5,
  2050.             "onComplete":removeDarken
  2051.          });
  2052.          animateTeethin();
  2053.          _videoClipRef.stop();
  2054.          stage.focus = null;
  2055.          try
  2056.          {
  2057.             videoHolder.loadedVideoHolder.removeChildAt(0);
  2058.          }
  2059.          catch(e:Error)
  2060.          {
  2061.          }
  2062.          try
  2063.          {
  2064.             videoHolder.loadedVideoHolder.removeChildAt(0);
  2065.          }
  2066.          catch(e:Error)
  2067.          {
  2068.          }
  2069.          videoHolder.removeChild(_videoClipRef);
  2070.          videoPlaying = false;
  2071.          if(musicState == VAR_ON)
  2072.          {
  2073.             musicVolume = 1;
  2074.          }
  2075.          else
  2076.          {
  2077.             musicVolume = 0;
  2078.          }
  2079.          musicSoundTransform = new SoundTransform(musicVolume,0);
  2080.          musicChannel.soundTransform = musicSoundTransform;
  2081.       }
  2082.       
  2083.       public function skipVideo(param1:Event) : void
  2084.       {
  2085.          data = new Object();
  2086.          data.name2 = "introVideo";
  2087.          data.name3 = "skipped";
  2088.          data.param = 0;
  2089.          Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2090.          videoHolder.addChild(gameStartDarkenerRef);
  2091.          gameStartDarkenerRef.alpha = 1;
  2092.          TweenMax.to(gameStartDarkenerRef,0.5,{
  2093.             "alpha":0,
  2094.             "delay":0.5,
  2095.             "onComplete":removeDarken
  2096.          });
  2097.          animateTeethin();
  2098.          _videoClipRef.stop();
  2099.          stage.focus = null;
  2100.          videoHolder.removeChild(_videoClipRef);
  2101.          gameState = GS_CHOOSE_CHARACTER;
  2102.          videoPlaying = false;
  2103.          if(musicState == VAR_ON)
  2104.          {
  2105.             musicVolume = 1;
  2106.          }
  2107.          else
  2108.          {
  2109.             musicVolume = 0;
  2110.          }
  2111.          musicSoundTransform = new SoundTransform(musicVolume,0);
  2112.          musicChannel.soundTransform = musicSoundTransform;
  2113.       }
  2114.       
  2115.       public function evalGameCompleteScene(param1:GeneralEvents) : void
  2116.       {
  2117.          var _loc2_:int = 0;
  2118.          n = medalsArray.length;
  2119.          while(n--)
  2120.          {
  2121.             if(medalsArray[n] != 0)
  2122.             {
  2123.                _loc2_++;
  2124.             }
  2125.          }
  2126.          data = new Object();
  2127.          data.name3 = "game_complete";
  2128.          Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2129.          videoHolder.addChild(highscoreSceneRef);
  2130.          highscoreSceneRef.y = -480;
  2131.          TweenMax.to(highscoreSceneRef,0.5,{"y":0});
  2132.          highscoreSceneRef.highscoreSDClip.submitScore(this,score,level,_loc2_);
  2133.       }
  2134.       
  2135.       public function evalGameOverScene() : void
  2136.       {
  2137.          Debug.log("evalGameOverScene 1");
  2138.          Debug.log("evalGameOverScene 2");
  2139.          Debug.log("highscoreSceneRef = " + highscoreSceneRef);
  2140.          videoHolder.addChild(highscoreSceneRef);
  2141.          Debug.log("evalGameOverScene 3");
  2142.          Debug.log("highscoreSceneRef = " + highscoreSceneRef);
  2143.          highscoreSceneRef.y = 0;
  2144.          Debug.log("evalGameOverScene 4");
  2145.          highscoreSceneRef.highscoreSDClip.submitScore(this,score,level);
  2146.       }
  2147.       
  2148.       private function hideClip(param1:MovieClip) : void
  2149.       {
  2150.          param1.visible = false;
  2151.       }
  2152.       
  2153.       public function evalMainMenuScene() : void
  2154.       {
  2155.          Debug.log("evalMainMenuScene");
  2156.          try
  2157.          {
  2158.          }
  2159.          catch(e:Error)
  2160.          {
  2161.          }
  2162.          mainMenuInited = true;
  2163.          homeBtn.visible = false;
  2164.          evalSoundBtns();
  2165.       }
  2166.       
  2167.       private function goGame() : void
  2168.       {
  2169.          slideOffScenes();
  2170.          this.gotoAndStop("gameScene");
  2171.       }
  2172.       
  2173.       private function goGameOver() : void
  2174.       {
  2175.          playSound("gameOver.wav");
  2176.          homeBtn.visible = true;
  2177.          gotoAndStop("gameOverScene");
  2178.          var _loc1_:uint = setTimeout(evalGameOverScene,500);
  2179.          gameState = GS_GAME_OVER_WAIT;
  2180.       }
  2181.       
  2182.       public function evalHighscoreScene() : void
  2183.       {
  2184.          evalSoundBtns();
  2185.          homeBtn.visible = true;
  2186.       }
  2187.       
  2188.       public function goHighscores() : void
  2189.       {
  2190.          this.gotoAndStop("highscoreScene");
  2191.          playSound("scrat_struggles.wav");
  2192.          slideOffScenes();
  2193.          try
  2194.          {
  2195.             homeBtn.visible = true;
  2196.          }
  2197.          catch(e:Error)
  2198.          {
  2199.          }
  2200.          videoHolder.addChild(highscoreSceneRef);
  2201.          playSound("panelChange.wav");
  2202.          highscoreSceneRef.y = -480;
  2203.          TweenMax.to(highscoreSceneRef,0.5,{"y":0});
  2204.          highscoreSceneRef.highscoreSDClip.loadScores();
  2205.          gameState = GS_HIGHSCORES_WAIT;
  2206.          var _loc1_:uint = setTimeout(evalHighscoreScene,300);
  2207.       }
  2208.       
  2209.       private function goMedals() : void
  2210.       {
  2211.          homeBtn.visible = true;
  2212.          Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_PAGE,"/game/achievements"));
  2213.          playSound("scrat_pining.wav");
  2214.          slideOffScenes();
  2215.          videoHolder.addChild(medalsSceneRef);
  2216.          playSound("panelChange.wav");
  2217.          medalsSceneRef.y = -480;
  2218.          TweenMax.to(medalsSceneRef,0.5,{
  2219.             "y":0,
  2220.             "ease":Back.easeOut
  2221.          });
  2222.          medalsSceneRef.init(medalsArray,medalScreenDefaultText,medalScreenNeedToPlayMoreText,medalsText);
  2223.       }
  2224.       
  2225.       private function setupScenes() : void
  2226.       {
  2227.       }
  2228.       
  2229.       private function removeScene(param1:MovieClip) : void
  2230.       {
  2231.          try
  2232.          {
  2233.             videoHolder.removeChild(param1);
  2234.          }
  2235.          catch(e:Error)
  2236.          {
  2237.          }
  2238.       }
  2239.       
  2240.       private function slideOffScenes() : void
  2241.       {
  2242.          Broadcaster.dispatchEvent(new GeneralEvents(GeneralEvents.STOP_SNOW));
  2243.          TweenMax.to(highscoreSceneRef,0.5,{
  2244.             "y":480,
  2245.             "onComplete":removeScene,
  2246.             "onCompleteParams":[highscoreSceneRef]
  2247.          });
  2248.          TweenMax.to(mainMenuSceneRef,0.5,{
  2249.             "y":480,
  2250.             "onComplete":removeScene,
  2251.             "onCompleteParams":[mainMenuSceneRef]
  2252.          });
  2253.          TweenMax.to(helpSceneRef,0.5,{
  2254.             "y":480,
  2255.             "onComplete":removeScene,
  2256.             "onCompleteParams":[helpSceneRef]
  2257.          });
  2258.          TweenMax.to(medalsSceneRef,0.5,{
  2259.             "y":480,
  2260.             "onComplete":removeScene,
  2261.             "onCompleteParams":[medalsSceneRef]
  2262.          });
  2263.          TweenMax.to(stfSceneRef,0.5,{
  2264.             "y":480,
  2265.             "onComplete":removeScene,
  2266.             "onCompleteParams":[stfSceneRef]
  2267.          });
  2268.          TweenMax.to(chooseCharacterSceneRef,0.5,{
  2269.             "y":480,
  2270.             "onComplete":removeScene,
  2271.             "onCompleteParams":[chooseCharacterSceneRef]
  2272.          });
  2273.          TweenMax.to(_gameBackgroundClipRef,0.5,{
  2274.             "y":480,
  2275.             "onComplete":removeScene,
  2276.             "onCompleteParams":[_gameBackgroundClipRef]
  2277.          });
  2278.       }
  2279.       
  2280.       private function goChooseCharacter() : void
  2281.       {
  2282.          slideOffScenes();
  2283.          videoHolder.addChild(chooseCharacterSceneRef);
  2284.          videoHolder.addChild(gameStartDarkenerRef);
  2285.          gameStartDarkenerRef.alpha = 1;
  2286.          TweenMax.to(gameStartDarkenerRef,0.5,{
  2287.             "alpha":0,
  2288.             "delay":0.5
  2289.          });
  2290.          gameStartDarkenerRef.mouseChildren = false;
  2291.          gameStartDarkenerRef.mouseEnabled = false;
  2292.          chooseCharacterSceneRef.y = -480;
  2293.          TweenMax.to(chooseCharacterSceneRef,0.5,{
  2294.             "y":0,
  2295.             "ease":Back.easeOut
  2296.          });
  2297.          playSound("panelChange.wav");
  2298.       }
  2299.       
  2300.       private function goSTFValentine() : void
  2301.       {
  2302.          playSound("scrat_giggles.wav");
  2303.          slideOffScenes();
  2304.          homeBtn.visible = true;
  2305.          videoHolder.addChild(stfSceneRef);
  2306.          stfSceneRef.y = -480;
  2307.          TweenMax.to(stfSceneRef,0.5,{
  2308.             "y":0,
  2309.             "ease":Back.easeOut
  2310.          });
  2311.          stfSceneRef.setupSTF(languageFrame,true);
  2312.          playSound("panelChange.wav");
  2313.          Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_PAGE,"/menu/sendToValentine"));
  2314.       }
  2315.       
  2316.       private function goSTF() : void
  2317.       {
  2318.          playSound("scrat_surprised.wav");
  2319.          slideOffScenes();
  2320.          homeBtn.visible = true;
  2321.          videoHolder.addChild(stfSceneRef);
  2322.          stfSceneRef.y = -480;
  2323.          TweenMax.to(stfSceneRef,0.5,{
  2324.             "y":0,
  2325.             "ease":Back.easeOut
  2326.          });
  2327.          playSound("panelChange.wav");
  2328.          homeBtn.visible = true;
  2329.          stfSceneRef.setupSTF(languageFrame,false);
  2330.          Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_PAGE,"/menu/sendToFriend"));
  2331.       }
  2332.       
  2333.       private function goHowToPlay() : void
  2334.       {
  2335.          playSound("scrat_struggles.wav");
  2336.          slideOffScenes();
  2337.          homeBtn.visible = true;
  2338.          videoHolder.addChild(helpSceneRef);
  2339.          helpSceneRef.y = -480;
  2340.          TweenMax.to(helpSceneRef,0.5,{
  2341.             "y":0,
  2342.             "ease":Back.easeOut
  2343.          });
  2344.          playSound("panelChange.wav");
  2345.          Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_PAGE,"/menu/instruction/1"));
  2346.       }
  2347.       
  2348.       private function goMainMenu() : void
  2349.       {
  2350.          slideOffScenes();
  2351.          mainMenuInited = false;
  2352.          homeBtn.visible = false;
  2353.          videoHolder.addChild(mainMenuSceneRef);
  2354.          if(valentinesActive)
  2355.          {
  2356.             mainMenuSceneRef.mainNav.gotoAndStop(1);
  2357.          }
  2358.          else
  2359.          {
  2360.             mainMenuSceneRef.mainNav.gotoAndStop(2);
  2361.          }
  2362.          mainMenuSceneRef.y = 480;
  2363.          TweenMax.to(mainMenuSceneRef,0.5,{
  2364.             "y":0,
  2365.             "ease":Back.easeOut
  2366.          });
  2367.          playSound("panelChange.wav");
  2368.          this.gotoAndStop("mainMenuScene");
  2369.          Broadcaster.dispatchEvent(new GeneralEvents(GeneralEvents.START_SNOW));
  2370.          gameState = GS_MAIN_MENU_WAIT;
  2371.          var _loc1_:uint = setTimeout(evalMainMenuScene,300);
  2372.       }
  2373.       
  2374.       private function evalSoundBtns() : void
  2375.       {
  2376.          if(musicState == VAR_ON)
  2377.          {
  2378.             musicMuteBtn.gotoAndStop(1);
  2379.          }
  2380.          else
  2381.          {
  2382.             musicMuteBtn.gotoAndStop(2);
  2383.          }
  2384.          if(sfxState == VAR_ON)
  2385.          {
  2386.             soundMuteBtn.gotoAndStop(1);
  2387.          }
  2388.          else
  2389.          {
  2390.             soundMuteBtn.gotoAndStop(2);
  2391.          }
  2392.       }
  2393.       
  2394.       private function init() : void
  2395.       {
  2396.          _soundManagerRef = new soundManager();
  2397.          statsSprite = new Sprite();
  2398.          statsSprite.x = -240;
  2399.          addChild(statsSprite);
  2400.          statsSprite.visible = false;
  2401.          statsSprite.addChild(new Stats());
  2402.          initCompleted = true;
  2403.          sfxState = VAR_ON;
  2404.          musicState = VAR_ON;
  2405.          _findClearOfBitmapRef = new findClearOfBitmap(this);
  2406.          screenTilesBitmapData = new screenTiles(10,10);
  2407.          _findClearOfBitmapRef.generateClearData(screenTilesBitmapData);
  2408.       }
  2409.       
  2410.       public function makeInvincible() : void
  2411.       {
  2412.          powerUpCounterStart = powerUpCounter = 120;
  2413.          powerUpActive = BUBBLE_TYPE_INVINCIBLE;
  2414.          if(level == 1 || level == 4 || level == 8)
  2415.          {
  2416.             playerBubbleRenderColour = 16776960;
  2417.          }
  2418.          else
  2419.          {
  2420.             playerBubbleRenderColour = 16776960;
  2421.          }
  2422.          flipPlayer = false;
  2423.       }
  2424.       
  2425.       public function shrinkPlayer() : void
  2426.       {
  2427.          powerUpCounterStart = powerUpCounter = 200;
  2428.          powerUpActive = BUBBLE_TYPE_SHRINK;
  2429.          flipPlayer = false;
  2430.          if(level == 1 || level == 4 || level == 8)
  2431.          {
  2432.             playerBubbleRenderColour = 983039;
  2433.          }
  2434.          else
  2435.          {
  2436.             playerBubbleRenderColour = 983039;
  2437.          }
  2438.       }
  2439.       
  2440.       public function reverseControls() : void
  2441.       {
  2442.          powerUpCounterStart = powerUpCounter = 200;
  2443.          if(level == 1 || level == 4 || level == 8)
  2444.          {
  2445.             playerBubbleRenderColour = 16711680;
  2446.          }
  2447.          else
  2448.          {
  2449.             playerBubbleRenderColour = 16711680;
  2450.          }
  2451.          powerUpActive = BUBBLE_TYPE_REVERSE;
  2452.       }
  2453.       
  2454.       public function damagePlayer(param1:int) : *
  2455.       {
  2456.          takenDamage = true;
  2457.          playerInvincibleAfterHurtCounter = 30;
  2458.          playerAlpha = 0.5;
  2459.          playerHealth -= param1;
  2460.          if(playerHealth < 1)
  2461.          {
  2462.             playerHealth = 0;
  2463.          }
  2464.          updateTextBoxes();
  2465.          if(characterChoice == CHARACTER_SCRAT)
  2466.          {
  2467.             playSound("scrat_hurt_" + (Math.floor(Math.random() * 5) + 1) + ".wav");
  2468.          }
  2469.          else
  2470.          {
  2471.             playSound("scratte_hurt_" + (Math.floor(Math.random() * 5) + 1) + ".wav");
  2472.          }
  2473.       }
  2474.       
  2475.       public function updateTextBoxes() : void
  2476.       {
  2477.          var _loc1_:String = terrysTextFunctionClass.processNumber(score);
  2478.          var _loc2_:Number = 8 / _loc1_.length;
  2479.          if(_loc2_ > 1)
  2480.          {
  2481.             _loc2_ = 1;
  2482.          }
  2483.          UI.scoreTextBox.scaleX = UI.scoreTextBox.scaleY = _loc2_;
  2484.          UI.scoreTextBox.text = _loc1_;
  2485.          if(UI.healthBar.healthBarClip.scaleY != playerHealth / 100)
  2486.          {
  2487.             TweenMax.to(UI.healthBar.healthBarClip,0.25,{"scaleY":playerHealth / 100});
  2488.          }
  2489.          var _loc3_:String = terrysTextFunctionClass.processNumber(acornsCollected) as String;
  2490.          _loc2_ = 3 / _loc3_.length;
  2491.          if(_loc2_ > 1)
  2492.          {
  2493.             _loc2_ = 1;
  2494.          }
  2495.          UI.acornsTextBox.scaleX = UI.acornsTextBox.scaleY = _loc2_;
  2496.          UI.acornsTextBox.text = _loc3_;
  2497.       }
  2498.       
  2499.       public function addPoints(param1:int) : void
  2500.       {
  2501.          score += param1;
  2502.          updateTextBoxes();
  2503.       }
  2504.       
  2505.       private function keyUpHandler(param1:KeyboardEvent) : void
  2506.       {
  2507.          switch(param1.keyCode)
  2508.          {
  2509.             case 39:
  2510.                rightPressCoolDown = 5;
  2511.                rightPressCountdown = 0;
  2512.                movingRight = false;
  2513.                rightReleased = true;
  2514.                playSound("moveRight.wav");
  2515.                break;
  2516.             case 37:
  2517.                leftPressCoolDown = 5;
  2518.                leftPressCountdown = 0;
  2519.                movingLeft = false;
  2520.                leftReleased = true;
  2521.                playSound("moveLeft.wav");
  2522.                break;
  2523.             case 38:
  2524.                movingUp = false;
  2525.                break;
  2526.             case 40:
  2527.                movingDown = false;
  2528.                break;
  2529.             case 32:
  2530.                if(gameState == GS_PLAYING)
  2531.                {
  2532.                   spaceReleased = true;
  2533.                   spacePressed = false;
  2534.                   spacePressCoolDown = 5;
  2535.                   playSound("moveUp.wav");
  2536.                }
  2537.          }
  2538.       }
  2539.       
  2540.       private function keyDownHandler(param1:KeyboardEvent) : void
  2541.       {
  2542.          switch(param1.keyCode)
  2543.          {
  2544.             case 39:
  2545.                if(rightReleased)
  2546.                {
  2547.                   if(rightPressCoolDown < 1)
  2548.                   {
  2549.                      movingRight = true;
  2550.                      rightPressCountdown = 10;
  2551.                      rightPressCoolDown = 5;
  2552.                      rightReleased = false;
  2553.                   }
  2554.                }
  2555.                break;
  2556.             case 37:
  2557.                if(leftReleased)
  2558.                {
  2559.                   if(leftPressCoolDown < 1)
  2560.                   {
  2561.                      movingLeft = true;
  2562.                      leftPressCountdown = 10;
  2563.                      leftPressCoolDown = 5;
  2564.                      leftReleased = false;
  2565.                   }
  2566.                }
  2567.                break;
  2568.             case 38:
  2569.                break;
  2570.             case 40:
  2571.                movingDown = true;
  2572.                break;
  2573.             case 87:
  2574.                break;
  2575.             case 32:
  2576.                if(videoPlaying)
  2577.                {
  2578.                   dispatchEvent(new GeneralEvents(GeneralEvents.SKIP_VIDEO));
  2579.                }
  2580.                else if(!spacePressed && spaceReleased)
  2581.                {
  2582.                   if(spacePressCoolDown < 1)
  2583.                   {
  2584.                      spacePressed = true;
  2585.                      spacePressCountdown = 10;
  2586.                      spacePressCoolDown = 2;
  2587.                      spaceReleased = false;
  2588.                   }
  2589.                }
  2590.                break;
  2591.             case 192:
  2592.                statsSprite.visible = !statsSprite.visible;
  2593.          }
  2594.       }
  2595.       
  2596.       public function toggleSFX() : void
  2597.       {
  2598.          if(sfxState == VAR_ON)
  2599.          {
  2600.             sfxState = VAR_OFF;
  2601.             soundManager.adjustVolume(0);
  2602.             data = new Object();
  2603.             data.name2 = "toggleSFX";
  2604.             data.name3 = "off";
  2605.             Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2606.          }
  2607.          else
  2608.          {
  2609.             data = new Object();
  2610.             data.name2 = "toggleSFX";
  2611.             data.name3 = "on";
  2612.             Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2613.             sfxState = VAR_ON;
  2614.             soundManager.adjustVolume(1);
  2615.          }
  2616.          so.data.sfxSetting = sfxState;
  2617.          evalSoundBtns();
  2618.       }
  2619.       
  2620.       public function toggleMusic() : void
  2621.       {
  2622.          if(musicState == VAR_ON)
  2623.          {
  2624.             data = new Object();
  2625.             data.name2 = "toggleMusic";
  2626.             data.name3 = "off";
  2627.             Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2628.             musicState = VAR_OFF;
  2629.             musicSoundTransform.volume = 0;
  2630.          }
  2631.          else
  2632.          {
  2633.             data = new Object();
  2634.             data.name2 = "toggleMusic";
  2635.             data.name3 = "on";
  2636.             Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2637.             musicState = VAR_ON;
  2638.             musicSoundTransform.volume = 1;
  2639.          }
  2640.          so.data.musicSetting = musicState;
  2641.          musicChannel.soundTransform = musicSoundTransform;
  2642.          evalSoundBtns();
  2643.       }
  2644.       
  2645.       public function unPauseGame() : void
  2646.       {
  2647.          removeChild(_gamePausedClipRef);
  2648.          _gamePausedClipRef = null;
  2649.          data = new Object();
  2650.          data.name2 = "pauseGame";
  2651.          data.name3 = "off";
  2652.          Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2653.          stage.focus = null;
  2654.          gameState = GS_PLAYING;
  2655.       }
  2656.       
  2657.       public function btnDownHandler(param1:GeneralEvents) : void
  2658.       {
  2659.          var _urlReq:URLRequest = null;
  2660.          var _urlReq2:URLRequest = null;
  2661.          var event:GeneralEvents = param1;
  2662.          var t:* = event.data;
  2663.          var tname:String = t.name;
  2664.          if(tname != "musicMuteBtn" && tname != "soundMuteBtn")
  2665.          {
  2666.             playSound("mouseDown.wav");
  2667.          }
  2668.          switch(tname)
  2669.          {
  2670.             case "embedGameBtn":
  2671.                Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_PAGE,"/game/menu/embed"));
  2672.                Broadcaster.dispatchEvent(new GeneralEvents(GeneralEvents.CLEARSPRING));
  2673.                break;
  2674.             case "backBtn":
  2675.                if(gameState == GS_GAME_UNLOCKED_WAIT)
  2676.                {
  2677.                   level = 3;
  2678.                   slideOffScenes();
  2679.                   stage.focus = gameBackground;
  2680.                   gameState = GS_NEXT_LEVEL;
  2681.                }
  2682.                else
  2683.                {
  2684.                   slideOffScenes();
  2685.                   goMainMenu();
  2686.                }
  2687.                break;
  2688.             case "playAgainBtn":
  2689.                this.gotoAndStop("chooseCharacterScene");
  2690.                startingLevel = level;
  2691.                slideOffScenes();
  2692.                gameState = GS_START_NEW_GAME;
  2693.                stage.focus = gameBackground;
  2694.                break;
  2695.             case "playAsScrat":
  2696.                gameInited = false;
  2697.                characterChoice = CHARACTER_SCRAT;
  2698.                data = new Object();
  2699.                data.name2 = "play_as_scrat";
  2700.                Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2701.                slideOffScenes();
  2702.                gameState = GS_BEGIN_GAME;
  2703.                break;
  2704.             case "playAsScratte":
  2705.                gameInited = false;
  2706.                slideOffScenes();
  2707.                data = new Object();
  2708.                data.name2 = "play_as_scratte";
  2709.                Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2710.                characterChoice = CHARACTER_SCRATEE;
  2711.                gameState = GS_BEGIN_GAME;
  2712.                break;
  2713.             case "playFacebookBtn":
  2714.                _urlReq = new URLRequest("http://apps.facebook.com/iceage_bubbletrouble/");
  2715.                data = new Object();
  2716.                data.name2 = "linkout";
  2717.                data.name3 = "http://apps.facebook.com/iceage_bubbletrouble/";
  2718.                Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2719.                navigateToURL(_urlReq,"_blank");
  2720.                break;
  2721.             case "visitSiteBtn":
  2722.                if(languageFrame == "de")
  2723.                {
  2724.                   _urlReq2 = new URLRequest("http://www.iceage3.de/");
  2725.                }
  2726.                else if(languageFrame == "jp")
  2727.                {
  2728.                   _urlReq2 = new URLRequest("http://movies.foxjapan.com/iceage3/");
  2729.                }
  2730.                else
  2731.                {
  2732.                   _urlReq2 = new URLRequest("http://www.iceage3.com/");
  2733.                }
  2734.                data = new Object();
  2735.                data.name2 = "linkout";
  2736.                data.name3 = "http://www.iceage3.com/";
  2737.                Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2738.                navigateToURL(_urlReq2,"_blank");
  2739.                break;
  2740.             case "closeBtn":
  2741.                if(gameState != GS_GAME_UNLOCKED_WAIT && gameState != GS_BEGIN_GAME_WAIT)
  2742.                {
  2743.                   goMainMenu();
  2744.                }
  2745.                else if(gameState == GS_GAME_UNLOCKED_WAIT)
  2746.                {
  2747.                   level = 3;
  2748.                   slideOffScenes();
  2749.                   gameState = GS_NEXT_LEVEL;
  2750.                }
  2751.                else if(gameState == GS_BEGIN_GAME_WAIT)
  2752.                {
  2753.                   goGame();
  2754.                }
  2755.                else
  2756.                {
  2757.                   slideOffScenes();
  2758.                }
  2759.                stage.focus = gameBackground;
  2760.                break;
  2761.             case "pauseBtn":
  2762.                if(gameState == GS_PAUSED)
  2763.                {
  2764.                   unPauseGame();
  2765.                }
  2766.                else if(gameState == GS_PLAYING)
  2767.                {
  2768.                   _gamePausedClipRef = new gamePausedClip();
  2769.                   addChild(_gamePausedClipRef);
  2770.                   _gamePausedClipRef.setData(this);
  2771.                   gameState = GS_PAUSED;
  2772.                   data = new Object();
  2773.                   data.name2 = "pauseGame";
  2774.                   data.name3 = "on";
  2775.                   Broadcaster.dispatchEvent(new TrackingEvent(TrackingEvent.TRACK_EVENT,data));
  2776.                }
  2777.                break;
  2778.             case "introHelpPlayBtn":
  2779.                videoHolder.removeChild(introHelpSceneRef);
  2780.                stage.focus = this;
  2781.                gameState = GS_PLAYING;
  2782.                break;
  2783.             case "okBtn":
  2784.                if(gameState == GS_START_NEW_GAME_WAIT_2 || gameState == GS_BEGIN_GAME_WAIT)
  2785.                {
  2786.                   gameState = GS_PLAYING;
  2787.                }
  2788.                else
  2789.                {
  2790.                   firstGamePlay = false;
  2791.                   so.data.firstGamePlay = firstGamePlay;
  2792.                   gameState = GS_START_NEW_GAME;
  2793.                }
  2794.                stage.focus = gameBackground;
  2795.                break;
  2796.             case "sendToValentineBtn":
  2797.                gameState = GS_STF_VALENTINE;
  2798.                break;
  2799.             case "stfBtn":
  2800.                gameState = GS_STF;
  2801.                break;
  2802.             case "skipBtnClip":
  2803.                try
  2804.                {
  2805.                   loadedSwf.dispatchEvent(new GeneralEvents(GeneralEvents.STOP_VIDEO));
  2806.                }
  2807.                catch(e:Error)
  2808.                {
  2809.                }
  2810.                dispatchEvent(new GeneralEvents(GeneralEvents.SKIP_VIDEO));
  2811.                break;
  2812.             case "startGameBtn":
  2813.                gameState = GS_START_NEW_GAME;
  2814.                break;
  2815.             case "homeBtn":
  2816.                if(gameState == GS_INTRO_VIDEO_WAIT)
  2817.                {
  2818.                   removeScene(_videoClipRef);
  2819.                }
  2820.                gameState = GS_MAIN_MENU;
  2821.                break;
  2822.             case "howToPlayBtn":
  2823.                gameState = GS_HOW_TO_PLAY;
  2824.                break;
  2825.             case "medalsBtn":
  2826.                gameState = GS_MEDALS;
  2827.                break;
  2828.             case "viewHighscoreBtn":
  2829.                gameState = GS_HIGHSCORES;
  2830.                break;
  2831.             case "soundMuteBtn":
  2832.                toggleSFX();
  2833.                break;
  2834.             case "musicMuteBtn":
  2835.                toggleMusic();
  2836.          }
  2837.       }
  2838.       
  2839.       public function btnOutHandler(param1:GeneralEvents) : void
  2840.       {
  2841.          var _loc2_:* = param1.data;
  2842.          var _loc3_:MovieClip = _loc2_.target as MovieClip;
  2843.          var _loc4_:int = int(rollOverButtonNameList.length);
  2844.          while(_loc4_--)
  2845.          {
  2846.             if(rollOverButtonNameList[_loc4_] == _loc2_.name)
  2847.             {
  2848.                mouseOutEffect(_loc3_);
  2849.             }
  2850.          }
  2851.       }
  2852.       
  2853.       public function btnOverHandler(param1:GeneralEvents) : void
  2854.       {
  2855.          var _loc4_:int = 0;
  2856.          var _loc2_:* = param1.data;
  2857.          var _loc3_:MovieClip = _loc2_.target as MovieClip;
  2858.          if(_loc3_.mouseEnabled)
  2859.          {
  2860.             _loc4_ = int(rollOverButtonNameList.length);
  2861.             while(_loc4_--)
  2862.             {
  2863.                if(rollOverButtonNameList[_loc4_] == _loc2_.name)
  2864.                {
  2865.                   if(_loc2_.name != "musicMuteBtn" && _loc2_.name != "soundMuteBtn")
  2866.                   {
  2867.                      playSound("mouseOver.wav");
  2868.                   }
  2869.                   mouseOverEffect(_loc3_);
  2870.                }
  2871.             }
  2872.          }
  2873.       }
  2874.       
  2875.       public function mouseOutEffect(param1:MovieClip) : void
  2876.       {
  2877.          TweenMax.to(param1,0.25,{
  2878.             "scaleX":1,
  2879.             "scaleY":1
  2880.          });
  2881.       }
  2882.       
  2883.       public function mouseOverEffect(param1:MovieClip) : void
  2884.       {
  2885.          TweenMax.to(param1,0.25,{
  2886.             "scaleX":1.25,
  2887.             "scaleY":1.25,
  2888.             "ease":Back.easeOut
  2889.          });
  2890.       }
  2891.       
  2892.       public function playSound(param1:String) : void
  2893.       {
  2894.          if(sfxState == VAR_ON)
  2895.          {
  2896.             soundManager.playSound(param1);
  2897.          }
  2898.       }
  2899.       
  2900.       private function manageBackgroundItems() : void
  2901.       {
  2902.          _tempY = _backgroundCell1.getY;
  2903.          _tempY += scrollYDist * 0.5;
  2904.          if(_tempY > screenHeight)
  2905.          {
  2906.             _tempY -= screenHeight * 2;
  2907.             _backgroundCell1.updatePosition(_tempY,_nextThingFinderRef.findNextBackgroundType(_stageCell1.getCellPosition()));
  2908.          }
  2909.          else if(_tempY < -screenHeight)
  2910.          {
  2911.             _tempY += screenHeight * 2;
  2912.             _backgroundCell1.updatePosition(_tempY,_nextThingFinderRef.findNextBackgroundType(_stageCell1.getCellPosition()));
  2913.          }
  2914.          _backgroundCell1.updateY = _tempY;
  2915.          _tempY = _backgroundCell2.getY;
  2916.          _tempY += scrollYDist * 0.5;
  2917.          if(_tempY > screenHeight)
  2918.          {
  2919.             _tempY -= screenHeight * 2;
  2920.             _backgroundCell2.updatePosition(_tempY,_nextThingFinderRef.findNextBackgroundType(_stageCell2.getCellPosition()));
  2921.          }
  2922.          else if(_tempY < -screenHeight)
  2923.          {
  2924.             _tempY += screenHeight * 2;
  2925.             _backgroundCell2.updatePosition(_tempY,_nextThingFinderRef.findNextBackgroundType(_stageCell2.getCellPosition()));
  2926.          }
  2927.          _backgroundCell2.updateY = _tempY;
  2928.       }
  2929.       
  2930.       private function manageScreenItems() : void
  2931.       {
  2932.          _tempY = _stageCell1.getY;
  2933.          _tempY += scrollYDist;
  2934.          if(_tempY > screenHeight)
  2935.          {
  2936.             _tempY -= screenHeight * 2;
  2937.             _stageCell1.increaseCellPosition();
  2938.             cellNum = _stageCell1.getCellPosition();
  2939.             _stageCell1.updatePosition(_tempY,_nextThingFinderRef.findNextScreenCellType(cellNum,_tempY));
  2940.          }
  2941.          else if(_tempY < -screenHeight)
  2942.          {
  2943.             _tempY += screenHeight * 2;
  2944.             _stageCell1.decreaseCellPosition();
  2945.             cellNum = _stageCell1.getCellPosition();
  2946.             _stageCell1.updatePosition(_tempY,_nextThingFinderRef.findNextScreenCellType(cellNum,_tempY));
  2947.          }
  2948.          _stageCell1.updateY = _tempY;
  2949.          _tempY = _stageCell2.getY;
  2950.          _tempY += scrollYDist;
  2951.          if(_tempY > screenHeight)
  2952.          {
  2953.             _tempY -= screenHeight * 2;
  2954.             _stageCell2.increaseCellPosition();
  2955.             cellNum = _stageCell2.getCellPosition();
  2956.             _stageCell2.updatePosition(_tempY,_nextThingFinderRef.findNextScreenCellType(cellNum,_tempY));
  2957.          }
  2958.          else if(_tempY < -screenHeight)
  2959.          {
  2960.             _tempY += screenHeight * 2;
  2961.             _stageCell2.decreaseCellPosition();
  2962.             cellNum = _stageCell2.getCellPosition();
  2963.             _stageCell2.updatePosition(_tempY,_nextThingFinderRef.findNextScreenCellType(cellNum,_tempY));
  2964.          }
  2965.          _stageCell2.updateY = _tempY;
  2966.       }
  2967.       
  2968.       private function manageForegroundItems() : void
  2969.       {
  2970.          n = foregroundElementsArray.length;
  2971.          while(n--)
  2972.          {
  2973.             _foregroundElementClassRef = foregroundElementsArray[n];
  2974.             _tempY = _foregroundElementClassRef.getY;
  2975.             _tempY += scrollYDist * 2;
  2976.             if(_tempY > screenHeight + 300)
  2977.             {
  2978.                _tempY -= screenHeight * 2 + Math.random() * screenHeight;
  2979.                _foregroundElementClassRef.updatePosition(_tempY,_nextThingFinderRef.findNextForegroundType(_foregroundElementClassRef.getSide));
  2980.             }
  2981.             _foregroundElementClassRef.updateY = _tempY;
  2982.             foregroundElementsArray[n] = _foregroundElementClassRef;
  2983.          }
  2984.       }
  2985.    }
  2986. }
  2987.  
  2988.