Section 1
//BitmapAsset (mx.core.BitmapAsset)
package mx.core {
import flash.display.*;
public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject {
mx_internal static const VERSION:String = "3.0.0.0";
public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
public function get measuredWidth():Number{
if (bitmapData){
return (bitmapData.width);
};
return (0);
}
public function get measuredHeight():Number{
if (bitmapData){
return (bitmapData.height);
};
return (0);
}
public function setActualSize(_arg1:Number, _arg2:Number):void{
width = _arg1;
height = _arg2;
}
public function move(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}
}
}//package mx.core
Section 2
//FlexBitmap (mx.core.FlexBitmap)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexBitmap extends Bitmap {
mx_internal static const VERSION:String = "3.0.0.0";
public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
var bitmapData = _arg1;
var pixelSnapping = _arg2;
var smoothing = _arg3;
super(bitmapData, pixelSnapping, smoothing);
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 3
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 4
//IFlexDisplayObject (mx.core.IFlexDisplayObject)
package mx.core {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.accessibility.*;
public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {
function get visible():Boolean;
function get rotation():Number;
function localToGlobal(_arg1:Point):Point;
function get name():String;
function set width(_arg1:Number):void;
function get measuredHeight():Number;
function get blendMode():String;
function get scale9Grid():Rectangle;
function set name(_arg1:String):void;
function set scaleX(_arg1:Number):void;
function set scaleY(_arg1:Number):void;
function get measuredWidth():Number;
function get accessibilityProperties():AccessibilityProperties;
function set scrollRect(_arg1:Rectangle):void;
function get cacheAsBitmap():Boolean;
function globalToLocal(_arg1:Point):Point;
function get height():Number;
function set blendMode(_arg1:String):void;
function get parent():DisplayObjectContainer;
function getBounds(_arg1:DisplayObject):Rectangle;
function get opaqueBackground():Object;
function set scale9Grid(_arg1:Rectangle):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set alpha(_arg1:Number):void;
function set accessibilityProperties(_arg1:AccessibilityProperties):void;
function get width():Number;
function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean;
function set cacheAsBitmap(_arg1:Boolean):void;
function get scaleX():Number;
function get scaleY():Number;
function get scrollRect():Rectangle;
function get mouseX():Number;
function get mouseY():Number;
function set height(_arg1:Number):void;
function set mask(_arg1:DisplayObject):void;
function getRect(_arg1:DisplayObject):Rectangle;
function get alpha():Number;
function set transform(_arg1:Transform):void;
function move(_arg1:Number, _arg2:Number):void;
function get loaderInfo():LoaderInfo;
function get root():DisplayObject;
function hitTestObject(_arg1:DisplayObject):Boolean;
function set opaqueBackground(_arg1:Object):void;
function set visible(_arg1:Boolean):void;
function get mask():DisplayObject;
function set x(_arg1:Number):void;
function set y(_arg1:Number):void;
function get transform():Transform;
function set filters(_arg1:Array):void;
function get x():Number;
function get y():Number;
function get filters():Array;
function set rotation(_arg1:Number):void;
function get stage():Stage;
}
}//package mx.core
Section 5
//IRepeaterClient (mx.core.IRepeaterClient)
package mx.core {
public interface IRepeaterClient {
function get instanceIndices():Array;
function set instanceIndices(_arg1:Array):void;
function get isDocument():Boolean;
function set repeaters(_arg1:Array):void;
function initializeRepeaterArrays(_arg1:IRepeaterClient):void;
function get repeaters():Array;
function set repeaterIndices(_arg1:Array):void;
function get repeaterIndices():Array;
}
}//package mx.core
Section 6
//mx_internal (mx.core.mx_internal)
package mx.core {
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
}//package mx.core
Section 7
//SoundAsset (mx.core.SoundAsset)
package mx.core {
import flash.media.*;
public class SoundAsset extends Sound implements IFlexAsset {
mx_internal static const VERSION:String = "3.0.0.0";
}
}//package mx.core
Section 8
//NameUtil (mx.utils.NameUtil)
package mx.utils {
import flash.display.*;
import mx.core.*;
import flash.utils.*;
public class NameUtil {
mx_internal static const VERSION:String = "3.0.0.0";
private static var counter:int = 0;
public static function displayObjectToString(_arg1:DisplayObject):String{
var _local2:String;
var _local4:String;
var _local5:Array;
var _local3:DisplayObject = _arg1;
while (_local3 != null) {
if (((((_local3.parent) && (_local3.stage))) && ((_local3.parent == _local3.stage)))){
break;
};
_local4 = _local3.name;
if ((_local3 is IRepeaterClient)){
_local5 = IRepeaterClient(_local3).instanceIndices;
if (_local5){
_local4 = (_local4 + (("[" + _local5.join("][")) + "]"));
};
};
_local2 = ((_local2 == null)) ? _local4 : ((_local4 + ".") + _local2);
_local3 = _local3.parent;
};
return (_local2);
}
public static function createUniqueName(_arg1:Object):String{
if (!_arg1){
return (null);
};
var _local2:String = getQualifiedClassName(_arg1);
var _local3:int = _local2.indexOf("::");
if (_local3 != -1){
_local2 = _local2.substr((_local3 + 2));
};
var _local4:int = _local2.charCodeAt((_local2.length - 1));
if ((((_local4 >= 48)) && ((_local4 <= 57)))){
_local2 = (_local2 + "_");
};
return ((_local2 + counter++));
}
}
}//package mx.utils
Section 9
//GameElement (GameElement)
package {
import flash.display.*;
import flash.geom.*;
public class GameElement {
public var type:int;
public var position:Point;
public var bitmap:Bitmap;
public var distance:Number;
public var exists:Boolean;
public var range:int;
public var direction:Point;
public function GameElement(_arg1:Number=0, _arg2:Number=0, _arg3:int=0, _arg4:Bitmap=null):void{
Create(_arg1, _arg2, _arg3, _arg4);
}
public function Create(_arg1:Number=0, _arg2:Number=0, _arg3:int=0, _arg4:Bitmap=null):void{
exists = true;
type = _arg3;
bitmap = _arg4;
position = new Point(_arg1, _arg2);
direction = new Point(0, 0);
range = 0;
distance = 0;
}
}
}//package
Section 10
//GamePackage (GamePackage)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.geom.*;
import flash.utils.*;
import flash.net.*;
import flash.ui.*;
public class GamePackage extends Sprite {
public var bgbmp_orig:Bitmap;
public var mouseclick:Boolean;
public var levelselectbmp:Bitmap;
public var clickbg_gfx:Class;
public var display_width:int;
public var level10_solid:Class;
public var trophysmall_gfx:Class;
public var rainbowbmp:Bitmap;
public var fontbmp1:Bitmap;
public var masterlevel_gfx:Class;
public var fontbmp2:Bitmap;
public var fps_current:Number;
public var sound_cursong:Sound;
public var titlebmp:Bitmap;
public var hud_gfx:Class;
public var in_menu:Boolean;
public var key_right:Boolean;
public var stats_itemsresult:int;
public var thumbnails_gfx:Class;
public var levelselect_gfx:Class;
public var winscreen_mode:int;
public var debuglog_strings:Array;
public var sfx_victory:Class;
public var level2_solid:Class;
public var level13_gfx:Class;
public var typecmd_active:Array;
public var plyrimage:Class;
public var scrollpos:Point;
public var level3_gfx:Class;
public var winstar_life:Array;
public var fps_timer:Timer;
public var plyrbmp_k2:Bitmap;
public var plyrimage2:Class;
public var plyrimage3:Class;
public var plyrimage4:Class;
public var loaderbmp:Bitmap;
public var first_run:Boolean;
public var fps_show:Boolean;
public var level7_solid:Class;
public var trophysmallbmp2:Bitmap;
public var key_up:Boolean;
public var wintime:int;
public var sound_win:Sound;
public var sfx_launch:Class;
public var mouse_alive:Boolean;
public var resetting:int;
public var hudbmp2:Bitmap;
public var warpbuffer:Bitmap;
public var bgm:SoundChannel;
public var stats_timeresult:int;
public var sfx_menu:Class;
public var level12_gfx:Class;
public var winplaying:Boolean;
public var audio_mute:Boolean;
public var sound_launch:Sound;
public var mutebmp1:Bitmap;
public var mutebmp2:Bitmap;
public var level2_gfx:Class;
public var trophy_gfx:Class;
public var keyboard_aim:Point;
public var menutime:int;
public var gem_anim:int;
public var typecmd_strings:Array;
public var title_gfx:Class;
public var level14_solid:Class;
public var level1_solid:Class;
public var aimtimer:int;
public var aimdotbmp:Bitmap;
public var playervel:Point;
public var respawn:Point;
public var sfx_win:Class;
public var hudbmp:Bitmap;
public var savestate:SharedObject;
public var current_level:int;
public var moregames_gfx:Class;
public var level_width:int;
public var level_unlocked:Boolean;
public var trophysmallbmp:Bitmap;
public var trophybmp:Bitmap;
public var level11_gfx:Class;
public var winstarsbmp:Bitmap;
public var level6_solid:Class;
public var level1_gfx:Class;
public var level9_gfx:Class;
public var rainbow_gfx:Class;
public var rank_strings:Array;
public var moregamesbmp:Bitmap;
public var checkpoint:Point;
public var scorebg_gfx:Class;
public var bghitbmp:Bitmap;
public var sound_bgm1:Sound;
public var sound_bgm2:Sound;
public var sound_bgm3:Sound;
public var screenbmp:Bitmap;
public var fps_timestep:int;
public var levelprogress:int;
public var win_recorded:Boolean;
public var sound_end:Sound;
public var level13_solid:Class;
public var stats_launchesgoal:int;
public var game_mode:int;
public var level10_gfx:Class;
public var key_left:Boolean;
public var jukebox_song:int;
public var level8_gfx:Class;
public var spectre_mode:Boolean;
public var aimdotimage:Class;
public var won_game:Boolean;
public var scorebg2_gfx:Class;
public var rainbow2_gfx:Class;
public var rainbowbmp2:Bitmap;
public var level52_solid:Class;
public var game_win:Boolean;
public var level5_solid:Class;
public var sfx_end:Class;
public var typecmd_indices:Array;
public var credit1bmp:Bitmap;
public var scorebgbmp2:Bitmap;
public var sfx_death:Class;
public var levelrecords:Array;
public var winstars_gfx:Class;
public var gemimage1:Class;
public var gemimage2:Class;
public var gemimage3:Class;
public var gemimage4:Class;
public var mover_bmps:Array;
public var approached:Boolean;
public var playerstate:int;
public var level_height:int;
public var winscroller2_str:String;
public var player_trigger:int;
public var announce_rank:Boolean;
public var level7_gfx:Class;
public var key_down:Boolean;
public var sound_menu:Sound;
public var level12_solid:Class;
public var titleshinebmp:Bitmap;
public var credit2_gfx:Class;
public var clickbgbmp:Bitmap;
public var credit2bmp:Bitmap;
public var stats_launchesresult:int;
public var typecmd_announce_time:int;
public var typecmd_announce_id:int;
public var winscroller_str:String;
public var prev_keycode:int;
public var winstar_pos:Array;
public var plyrimage_k:Class;
public var fontbmp:Bitmap;
public var level4_solid:Class;
public var mousedown:Boolean;
public var plyrbmp2:Bitmap;
public var level16_gfx:Class;
public var plyrbmp4:Bitmap;
public var sound_victory:Sound;
public var level6_gfx:Class;
public var standing_on_mover:int;
public var game_delay:int;
public var plyrbmp3:Bitmap;
public var font2_gfx:Class;
public var stats_timegoal:int;
public var titlescroller_str:String;
public var fps_targetrate:int;
public var gems:Array;
public var credit1_gfx:Class;
public var gembmp1:Bitmap;
public var gembmp2:Bitmap;
public var gembmp3:Bitmap;
public var thumbnailsbmp:Bitmap;
public var bgbmp:Bitmap;
public var level9_solid:Class;
public var gembmp4:Bitmap;
public var key_space:Boolean;
public var titlescroll:int;
public var stats_itemsgoal:int;
public var plyrbmp_k:Bitmap;
public var sound_death:Sound;
public var titleshine_gfx:Class;
public var level11_solid:Class;
public var display_height:int;
public var hud2_gfx:Class;
public var plyrbmp:Bitmap;
public var level52_gfx:Class;
public var loadertickbmp:Bitmap;
public var sfx_splash:Class;
public var player_mdx:Number;
public var player_mdy:Number;
public var level5_gfx:Class;
public var mute2_gfx:Class;
public var trophysmall2_gfx:Class;
public var focused:int;
public var font1_gfx:Class;
public var rank_limits:Array;
public var mousepos:Point;
public var level16_solid:Class;
public var sound_splash:Sound;
public var level3_solid:Class;
public var minijuegosbmp:Bitmap;
public var game_numframes:int;
public var plyrimage_k2:Class;
public var minijuegos_gfx:Class;
public var screenbuffer:Bitmap;
public var all_trophies:Boolean;
public var keyboard_daim:Point;
public var scratchbuffer:BitmapData;
public var fxch_gem:SoundChannel;
public var scrollbounds:int;
public var scorebgbmp:Bitmap;
public var playerpos:Point;
public var fps_numframes:int;
public var level8_solid:Class;
public var level14_gfx:Class;
public var sfx_bgm1:Class;
public var sfx_bgm3:Class;
public var game_death:Boolean;
public var sfx_bgm2:Class;
public var keyboard_aiming:Boolean;
public var framecounter:int;
public var level4_gfx:Class;
public var mute1_gfx:Class;
public var masterlevelbmp:Bitmap;
public function GamePackage():void{
font1_gfx = GamePackage_font1_gfx;
font2_gfx = GamePackage_font2_gfx;
level1_gfx = GamePackage_level1_gfx;
level1_solid = GamePackage_level1_solid;
level2_gfx = GamePackage_level2_gfx;
level2_solid = GamePackage_level2_solid;
level3_gfx = GamePackage_level3_gfx;
level3_solid = GamePackage_level3_solid;
level4_gfx = GamePackage_level4_gfx;
level4_solid = GamePackage_level4_solid;
level5_gfx = GamePackage_level5_gfx;
level5_solid = GamePackage_level5_solid;
level52_gfx = GamePackage_level52_gfx;
level52_solid = GamePackage_level52_solid;
level6_gfx = GamePackage_level6_gfx;
level6_solid = GamePackage_level6_solid;
level7_gfx = GamePackage_level7_gfx;
level7_solid = GamePackage_level7_solid;
level8_gfx = GamePackage_level8_gfx;
level8_solid = GamePackage_level8_solid;
level9_gfx = GamePackage_level9_gfx;
level9_solid = GamePackage_level9_solid;
level10_gfx = GamePackage_level10_gfx;
level10_solid = GamePackage_level10_solid;
level11_gfx = GamePackage_level11_gfx;
level11_solid = GamePackage_level11_solid;
level12_gfx = GamePackage_level12_gfx;
level12_solid = GamePackage_level12_solid;
level13_gfx = GamePackage_level13_gfx;
level13_solid = GamePackage_level13_solid;
level14_gfx = GamePackage_level14_gfx;
level14_solid = GamePackage_level14_solid;
level16_gfx = GamePackage_level16_gfx;
level16_solid = GamePackage_level16_solid;
thumbnails_gfx = GamePackage_thumbnails_gfx;
masterlevel_gfx = GamePackage_masterlevel_gfx;
title_gfx = GamePackage_title_gfx;
titleshine_gfx = GamePackage_titleshine_gfx;
credit1_gfx = GamePackage_credit1_gfx;
credit2_gfx = GamePackage_credit2_gfx;
levelselect_gfx = GamePackage_levelselect_gfx;
scorebg_gfx = GamePackage_scorebg_gfx;
scorebg2_gfx = GamePackage_scorebg2_gfx;
clickbg_gfx = GamePackage_clickbg_gfx;
hud_gfx = GamePackage_hud_gfx;
hud2_gfx = GamePackage_hud2_gfx;
mute1_gfx = GamePackage_mute1_gfx;
mute2_gfx = GamePackage_mute2_gfx;
trophy_gfx = GamePackage_trophy_gfx;
trophysmall_gfx = GamePackage_trophysmall_gfx;
trophysmall2_gfx = GamePackage_trophysmall2_gfx;
minijuegos_gfx = GamePackage_minijuegos_gfx;
moregames_gfx = GamePackage_moregames_gfx;
rainbow_gfx = GamePackage_rainbow_gfx;
rainbow2_gfx = GamePackage_rainbow2_gfx;
winstars_gfx = GamePackage_winstars_gfx;
aimdotimage = GamePackage_aimdotimage;
plyrimage = GamePackage_plyrimage;
plyrimage2 = GamePackage_plyrimage2;
plyrimage3 = GamePackage_plyrimage3;
plyrimage4 = GamePackage_plyrimage4;
plyrimage_k = GamePackage_plyrimage_k;
plyrimage_k2 = GamePackage_plyrimage_k2;
gemimage1 = GamePackage_gemimage1;
gemimage2 = GamePackage_gemimage2;
gemimage3 = GamePackage_gemimage3;
gemimage4 = GamePackage_gemimage4;
sfx_launch = GamePackage_sfx_launch;
sfx_win = GamePackage_sfx_win;
sfx_death = GamePackage_sfx_death;
sfx_victory = GamePackage_sfx_victory;
sfx_splash = GamePackage_sfx_splash;
sfx_bgm1 = GamePackage_sfx_bgm1;
sfx_bgm2 = GamePackage_sfx_bgm2;
sfx_bgm3 = GamePackage_sfx_bgm3;
sfx_menu = GamePackage_sfx_menu;
sfx_end = GamePackage_sfx_end;
super();
var _local1:BitmapData = new BitmapData(320, 240, false, 0);
screenbuffer = new Bitmap(_local1);
screenbuffer.scaleX = 2;
screenbuffer.scaleY = 2;
screenbuffer.smoothing = false;
addChild(screenbuffer);
screenbmp = screenbuffer;
var _local2:BitmapData = new BitmapData(320, 14, false, 0);
warpbuffer = new Bitmap(_local2);
Init();
}
public function TitleLogic():void{
var i:int;
var wi:int;
var srcrect:Rectangle = new Rectangle(0, 0, 320, 240);
var dstpoint:Point = new Point(0, 0);
screenbmp.bitmapData.copyPixels(titlebmp.bitmapData, srcrect, dstpoint, null, null, false);
var shine_y1:int = (((titlescroll % 240) * 8) - 100);
var shine_y2:int = (shine_y1 + 60);
if (shine_y1 < 14){
shine_y1 = 14;
};
if (shine_y2 > 94){
shine_y2 = 94;
};
if (shine_y1 < shine_y2){
screenbmp.bitmapData.copyPixels(titleshinebmp.bitmapData, new Rectangle(0, shine_y1, 320, (shine_y2 - shine_y1)), new Point(0, shine_y1), null, null, false);
};
var shine_x1:int = (((titlescroll % 240) * 16) - 100);
var shine_x2:int = (shine_x1 + 100);
if (shine_x1 < 0){
shine_x1 = 0;
};
if (shine_x2 > 320){
shine_x2 = 320;
};
if (shine_x1 < shine_x2){
screenbmp.bitmapData.copyPixels(titleshinebmp.bitmapData, new Rectangle(shine_x1, 14, (shine_x2 - shine_x1), 94), new Point(shine_x1, 14), null, null, false);
};
var hover_credits:Boolean;
var hover_playgame:Boolean;
var hover_sound:Boolean;
var hover_sponsor:Boolean;
if (mouse_alive){
if ((((((((mousepos.x > 36)) && ((mousepos.x < 218)))) && ((mousepos.y > 94)))) && ((mousepos.y < 106)))){
hover_credits = true;
};
if ((((mousepos.x > 120)) && ((mousepos.x < 210)))){
if ((((mousepos.y > 130)) && ((mousepos.y < 142)))){
hover_playgame = true;
};
if ((((mousepos.y >= 148)) && ((mousepos.y < 160)))){
hover_sound = true;
};
};
if ((((mousepos.y > 180)) && ((mousepos.y < 208)))){
hover_sponsor = true;
};
};
if (((((((hover_credits) || (hover_playgame))) || (hover_sound))) || (hover_sponsor))){
useHandCursor = true;
} else {
useHandCursor = false;
};
if (hover_credits){
DrawSprite(credit2bmp, 40, 96);
if (mouseclick){
try {
navigateToURL(new URLRequest("http://www.drpetter.se/"), "_self");
} catch(e:Error) {
};
};
} else {
DrawSprite(credit1bmp, 40, 96);
};
if (((hover_sponsor) && (mouseclick))){
try {
navigateToURL(new URLRequest("http://www.minijuegos.com/"), "_self");
} catch(e:Error) {
};
};
if (((hover_playgame) && (mouseclick))){
if (first_run){
first_run = false;
current_level = 1;
game_mode = 4;
} else {
game_mode = 2;
};
};
if (((hover_sound) && (mouseclick))){
audio_mute = !(audio_mute);
if (audio_mute){
bgm.stop();
} else {
PlaySong(sound_menu);
};
UpdateSavestate();
};
DrawString("PLAY GAME", (160 - (4 * 8)), 132);
if (!audio_mute){
DrawString("SOUND: ON", (160 - (4 * 8)), 150);
} else {
DrawString("SOUND: OFF", (160 - (4 * 8)), 150);
};
DrawSprite(moregamesbmp, 21, 192);
DrawSprite(minijuegosbmp, 149, 181);
titlescroll = (titlescroll + fps_timestep);
var x:int = -((titlescroll % 8));
i = (int((titlescroll / 8)) - 41);
while (i <= int((titlescroll / 8))) {
wi = (i % titlescroller_str.length);
if (i >= 0){
DrawChar((int(titlescroller_str.charCodeAt(wi)) - 33), x, 230);
};
x = (x + 8);
i = (i + 1);
};
}
public function MainLoop(_arg1:Event):void{
var _local2:int;
var _local3:int;
var _local4:Boolean;
var _local5:Boolean;
var _local6:Boolean;
var _local7:Boolean;
var _local8:int;
var _local9:int;
var _local10:int;
var _local11:int;
var _local12:int;
var _local13:int;
var _local14:int;
var _local15:int;
useHandCursor = false;
screenbmp.bitmapData.lock();
if (game_mode == 0){
if (game_delay == 0){
_local3 = 0;
while (_local3 < fps_timestep) {
GameLogic();
_local3++;
};
if (typecmd_active[6]){
_local3 = 0;
while (_local3 < fps_timestep) {
GameLogic();
_local3++;
};
};
win_recorded = false;
announce_rank = false;
level_unlocked = false;
won_game = false;
} else {
_local3 = 0;
while (_local3 < fps_timestep) {
game_delay--;
_local3++;
};
if (game_delay <= 0){
if (game_win){
game_delay = 30;
};
if (game_death){
LoadLevel(current_level, false);
};
};
};
GameGraphics();
if (game_win){
_local4 = false;
if ((((game_delay < 60)) && (((game_delay % 30) < 15)))){
_local4 = true;
};
_local5 = false;
if (stats_timeresult <= stats_timegoal){
_local5 = true;
};
_local6 = false;
if (stats_itemsresult >= stats_itemsgoal){
_local6 = true;
};
_local7 = false;
if (stats_launchesresult <= stats_launchesgoal){
_local7 = true;
};
_local8 = 0;
_local8 = (_local8 + ((stats_timegoal * 2000) / stats_timeresult));
_local8 = (_local8 + (stats_itemsresult * 150));
_local8 = (_local8 + ((stats_launchesgoal * 1500) / stats_launchesresult));
if (!win_recorded){
_local12 = CalculateRank();
win_recorded = true;
if ((((levelprogress < (current_level + 1))) && ((levelprogress < 16)))){
levelprogress = (current_level + 1);
level_unlocked = true;
};
if ((((current_level == 16)) && ((levelrecords[(((current_level - 1) * 7) + 0)] == -1)))){
won_game = true;
};
if ((((levelrecords[(((current_level - 1) * 7) + 0)] == -1)) || ((levelrecords[(((current_level - 1) * 7) + 0)] > stats_timeresult)))){
levelrecords[(((current_level - 1) * 7) + 0)] = stats_timeresult;
};
if (levelrecords[(((current_level - 1) * 7) + 1)] < stats_itemsresult){
levelrecords[(((current_level - 1) * 7) + 1)] = stats_itemsresult;
};
if ((((levelrecords[(((current_level - 1) * 7) + 2)] == -1)) || ((levelrecords[(((current_level - 1) * 7) + 2)] > stats_launchesresult)))){
levelrecords[(((current_level - 1) * 7) + 2)] = stats_launchesresult;
};
if (levelrecords[(((current_level - 1) * 7) + 3)] < _local8){
levelrecords[(((current_level - 1) * 7) + 3)] = _local8;
};
if (_local5){
levelrecords[(((current_level - 1) * 7) + 4)] = 1;
};
if (_local6){
levelrecords[(((current_level - 1) * 7) + 5)] = 1;
};
if (_local7){
levelrecords[(((current_level - 1) * 7) + 6)] = 1;
};
UpdateSavestate();
_local13 = CalculateRank();
if (_local13 > _local12){
announce_rank = true;
};
};
_local9 = ((game_delay - 40) * 45);
if (_local9 < 0){
_local9 = 0;
};
_local8 = (_local8 - _local9);
if (_local8 < 0){
_local8 = 0;
};
if ((((game_delay < 60)) && (((((mouseclick) && ((mousepos.y < 230)))) || (key_space))))){
_local14 = 0;
_local2 = 0;
while (_local2 < 16) {
if (levelrecords[((_local2 * 7) + 4)] == 1){
_local14++;
};
if (levelrecords[((_local2 * 7) + 5)] == 1){
_local14++;
};
if (levelrecords[((_local2 * 7) + 6)] == 1){
_local14++;
};
_local2++;
};
if (level_unlocked){
game_delay = 0;
current_level = levelprogress;
game_mode = 4;
} else {
if (won_game){
winscreen_mode = 0;
game_mode = 3;
} else {
if ((((_local14 == 48)) && (!(all_trophies)))){
all_trophies = true;
winscreen_mode = 1;
game_mode = 3;
} else {
game_mode = 2;
};
};
};
};
_local10 = ((game_delay - 100) * 12);
if (_local10 < 0){
_local10 = 0;
};
_local11 = ((game_delay - 80) * 8);
if (_local11 < 0){
_local11 = 0;
};
if (((_local4) && (_local5))){
DrawSprite(scorebgbmp2, _local10, (40 - 4));
} else {
DrawSprite(scorebgbmp, _local10, (40 - 4));
};
if (_local5){
DrawSprite(trophybmp, (10 - _local11), (34 - 4));
};
DrawString("COMPLETION TIME", (50 + _local11), 40);
DrawNumber((stats_timeresult / 10), (190 + _local11), 40, 4);
DrawString(".", ((190 + (4 * 8)) + _local11), 40);
DrawNumber((stats_timeresult % 10), ((190 + (5 * 8)) + _local11), 40, 1);
DrawString("(", (254 + _local11), 40);
DrawNumber((stats_timegoal / 10), (262 + _local11), 40, 2);
DrawString(".", (278 + _local11), 40);
DrawNumber((stats_timegoal % 10), (286 + _local11), 40, 1);
DrawString(")", (295 + _local11), 40);
_local11 = (((game_delay - 80) + 10) * 8);
if (_local11 < 0){
_local11 = 0;
};
_local10 = (((game_delay - 100) * 12) + (1 * 50));
if (_local10 < 0){
_local10 = 0;
};
if (((_local4) && (_local6))){
DrawSprite(scorebgbmp2, _local10, (60 - 4));
} else {
DrawSprite(scorebgbmp, _local10, (60 - 4));
};
if (_local6){
DrawSprite(trophybmp, (15 - _local11), (54 - 4));
};
DrawString("ITEMS", (50 + _local11), 60);
DrawNumber(stats_itemsresult, (190 + _local11), 60, 6);
DrawString("(", (254 + _local11), 60);
DrawNumber(stats_itemsgoal, (270 + _local11), 60, 2);
DrawString(")", (295 + _local11), 60);
_local11 = (((game_delay - 80) + 20) * 8);
if (_local11 < 0){
_local11 = 0;
};
_local10 = (((game_delay - 100) * 12) + (2 * 50));
if (_local10 < 0){
_local10 = 0;
};
if (((_local4) && (_local7))){
DrawSprite(scorebgbmp2, _local10, (80 - 4));
} else {
DrawSprite(scorebgbmp, _local10, (80 - 4));
};
if (_local7){
DrawSprite(trophybmp, (20 - _local11), (74 - 4));
};
DrawString("LAUNCHES", (50 + _local11), 80);
DrawNumber(stats_launchesresult, (190 + _local11), 80, 6);
DrawString("(", (254 + _local11), 80);
DrawNumber(stats_launchesgoal, (270 + _local11), 80, 2);
DrawString(")", (295 + _local11), 80);
_local11 = (((game_delay - 80) + 30) * 8);
if (_local11 < 0){
_local11 = 0;
};
_local10 = (((game_delay - 100) * 12) + (3 * 50));
if (_local10 < 0){
_local10 = 0;
};
DrawSprite(scorebgbmp, _local10, (120 - 4));
DrawString("LEVEL SCORE", (50 + _local11), 120);
DrawNumber(_local8, (190 + _local11), 120, 6);
_local10 = (((game_delay - 100) * 12) + 500);
if (_local10 < 0){
_local10 = 0;
};
DrawSprite(clickbgbmp, (160 - (54 / 2)), ((180 - 4) + _local10));
if ((game_delay % 15) < 8){
DrawString("CLICK", ((160 - (54 / 2)) + 7), (180 + _local10));
};
if (announce_rank){
_local10 = (((game_delay - 100) * 12) + 400);
if (_local10 < 0){
_local10 = 0;
};
if (!_local4){
DrawSprite(scorebgbmp2, 0, ((150 - 4) + _local10));
} else {
DrawSprite(scorebgbmp, 0, ((150 - 4) + _local10));
};
DrawString("NEW RANK:", 50, (150 + _local10));
_local15 = CalculateRank();
DrawString(rank_strings[_local15], (50 + (10 * 8)), (150 + _local10));
};
};
} else {
if (game_mode == 1){
TitleLogic();
} else {
if (game_mode == 2){
LevelSelectLogic();
} else {
if (game_mode == 3){
WinLogic();
} else {
if (game_mode == 4){
SplashLogic();
};
};
};
};
};
mouseclick = false;
if (((!((game_mode == 3))) && (!((game_mode == 4))))){
wintime = 0;
winscreen_mode = 0;
};
if (focused == 0){
focused = 1;
};
if ((((((game_mode == 0)) && (!(game_win)))) && ((focused == 2)))){
DrawSprite(scorebgbmp, 0, 112);
DrawString("PAUSED", (160 - (3 * 8)), 116);
};
if (typecmd_announce_time > 0){
typecmd_announce_time = (typecmd_announce_time - fps_timestep);
if (typecmd_announce_time < 0){
typecmd_announce_time = 0;
};
screenbmp.bitmapData.fillRect(new Rectangle(0, 210, 320, 14), 0xFFFFFF);
screenbmp.bitmapData.fillRect(new Rectangle(0, 211, 320, 12), 0x550000);
DrawString(typecmd_strings[typecmd_announce_id], (160 - ((typecmd_strings[typecmd_announce_id].length * 8) / 2)), 214);
};
if ((((((game_mode == 1)) || ((game_mode == 2)))) && (!(in_menu)))){
titlescroll = 0;
in_menu = true;
PlaySong(sound_menu);
};
if (fps_show){
DrawNumber(int(fps_current), 4, 4, 2);
DrawString("/", (4 + (2 * 8)), 4);
DrawNumber(int(fps_targetrate), (4 + (8 * 3)), 4, 2);
};
fps_numframes++;
screenbmp.bitmapData.unlock(null);
}
public function DebugLog(_arg1:String):void{
var _local2:int;
_local2 = 0;
while (_local2 < 9) {
debuglog_strings[_local2] = debuglog_strings[(_local2 + 1)];
_local2++;
};
debuglog_strings[9] = _arg1;
}
public function DrawWinScroller(_arg1:int, _arg2:int, _arg3:Boolean, _arg4:uint, _arg5:uint):void{
var _local6:int;
var _local7:int;
var _local11:Number;
if (_arg3){
warpbuffer.bitmapData.fillRect(new Rectangle(0, 0, 320, 14), _arg4);
warpbuffer.bitmapData.fillRect(new Rectangle(0, 1, 320, 12), _arg5);
} else {
warpbuffer.bitmapData.fillRect(new Rectangle(0, 0, 320, 14), 0);
warpbuffer.bitmapData.fillRect(new Rectangle(0, 2, 320, 10), _arg4);
warpbuffer.bitmapData.fillRect(new Rectangle(0, 3, 320, 8), _arg5);
};
var _local8:int = -((_arg1 % 8));
if (_arg3){
SelectTarget(warpbuffer);
_local6 = (int((_arg1 / 8)) - 41);
while (_local6 <= int((_arg1 / 8))) {
if (winscreen_mode > 0){
_local7 = (_local6 % winscroller2_str.length);
if (_local6 >= 0){
DrawChar((int(winscroller2_str.charCodeAt(_local7)) - 33), _local8, 3);
};
} else {
_local7 = (_local6 % winscroller_str.length);
if (_local6 >= 0){
DrawChar((int(winscroller_str.charCodeAt(_local7)) - 33), _local8, 3);
};
};
_local8 = (_local8 + 8);
_local6++;
};
SelectTarget(screenbuffer);
};
var _local9:int = (320 - (_arg1 * 2));
if (_local9 < 0){
_local9 = 0;
};
var _local10 = 320;
if (winscreen_mode > 2){
_local10 = (320 - ((winscreen_mode - 2) * 8));
};
_local8 = _local9;
while (_local8 < _local10) {
_local11 = (((_local8 * 0.02) - (_arg1 * (0.01 + ((_arg2 * 0.008) / 60)))) + (_arg2 * 0.01));
_local7 = ((184 + (Math.sin(_local11) * (20 - (_arg2 / 6)))) + (Math.sin((((_local11 * 2.3) + (_arg1 * (0.028 - ((_arg2 * 0.042) / 60)))) + (_arg2 * 0.5))) * (15 - (_arg2 / 10))));
screenbmp.bitmapData.copyPixels(warpbuffer.bitmapData, new Rectangle(_local8, 0, 1, 14), new Point(_local8, _local7), null, null, false);
_local8++;
};
}
public function timerHandler(_arg1:TimerEvent):void{
fps_current = (fps_current + ((fps_numframes - fps_current) * 0.1));
fps_numframes = 0;
if (focused != 1){
fps_current = fps_targetrate;
};
if ((((fps_current < (fps_targetrate * 0.85))) && ((fps_timestep < 4)))){
fps_timestep++;
fps_targetrate = (60 / fps_timestep);
stage.frameRate = fps_targetrate;
fps_current = fps_targetrate;
};
}
private function mouseMoveHandler(_arg1:MouseEvent):void{
mousepos.x = (_arg1.localX / 2);
mousepos.y = (_arg1.localY / 2);
mouse_alive = true;
var _local2:Boolean = mousedown;
mousedown = _arg1.buttonDown;
}
private function keyDownHandler(_arg1:KeyboardEvent):void{
if (focused == 2){
focused = 0;
};
if (_arg1.keyCode == prev_keycode){
return;
};
prev_keycode = _arg1.keyCode;
if ((((_arg1.keyCode == Keyboard.UP)) || ((_arg1.keyCode == "W".charCodeAt(0))))){
key_up = true;
};
if ((((_arg1.keyCode == Keyboard.DOWN)) || ((_arg1.keyCode == "S".charCodeAt(0))))){
key_down = true;
};
if ((((_arg1.keyCode == Keyboard.LEFT)) || ((_arg1.keyCode == "A".charCodeAt(0))))){
key_left = true;
};
if ((((_arg1.keyCode == Keyboard.RIGHT)) || ((_arg1.keyCode == "D".charCodeAt(0))))){
key_right = true;
};
if (_arg1.keyCode == Keyboard.SPACE){
key_space = true;
};
UpdateTypeCommands(_arg1.keyCode);
fps_show = typecmd_active[0];
if (typecmd_active[1]){
typecmd_active[1] = false;
if (fps_timestep < 4){
fps_timestep++;
fps_targetrate = (60 / fps_timestep);
stage.frameRate = fps_targetrate;
fps_current = fps_targetrate;
};
};
if (typecmd_active[2]){
typecmd_active[2] = false;
levelprogress = 16;
UpdateSavestate();
};
if (typecmd_active[3]){
typecmd_active[3] = false;
winscreen_mode = 0;
game_mode = 3;
};
if (typecmd_active[4]){
typecmd_active[4] = false;
Jukebox();
};
if (typecmd_active[8]){
typecmd_active[8] = false;
winscreen_mode = 1;
game_mode = 3;
};
if (typecmd_active[9]){
typecmd_active[9] = false;
spectre_mode = !(spectre_mode);
ColorSwap();
};
}
private function focusInHandler(_arg1:Event):void{
if (focused == 2){
focused = 0;
};
}
private function keyUpHandler(_arg1:KeyboardEvent):void{
prev_keycode = -1;
if ((((_arg1.keyCode == Keyboard.UP)) || ((_arg1.keyCode == "W".charCodeAt(0))))){
key_up = false;
};
if ((((_arg1.keyCode == Keyboard.DOWN)) || ((_arg1.keyCode == "S".charCodeAt(0))))){
key_down = false;
};
if ((((_arg1.keyCode == Keyboard.LEFT)) || ((_arg1.keyCode == "A".charCodeAt(0))))){
key_left = false;
};
if ((((_arg1.keyCode == Keyboard.RIGHT)) || ((_arg1.keyCode == "D".charCodeAt(0))))){
key_right = false;
};
if (_arg1.keyCode == Keyboard.SPACE){
key_space = false;
};
}
public function CalculateRank():int{
var _local2:int;
var _local3:int;
var _local1:int = CalculateTotalScore();
_local3 = 0;
while (_local3 < rank_limits.length) {
if (_local1 >= rank_limits[_local3]){
_local2 = _local3;
};
_local3++;
};
return (_local2);
}
public function GameGraphics():void{
var _local3:int;
var _local6:Point;
var _local7:Point;
var _local8:Number;
var _local1:Rectangle = new Rectangle(scrollpos.x, scrollpos.y, 320, 240);
var _local2:Point = new Point(0, 0);
screenbmp.bitmapData.copyPixels(bgbmp.bitmapData, _local1, _local2, null, null, false);
_local3 = 0;
while (_local3 < gems.length) {
if (gems[_local3].exists){
_local1 = new Rectangle(0, 0, gems[_local3].bitmap.bitmapData.width, gems[_local3].bitmap.bitmapData.height);
_local2 = new Point(gems[_local3].position.x, gems[_local3].position.y);
_local2.x = (_local2.x - scrollpos.x);
_local2.y = (_local2.y - scrollpos.y);
screenbmp.bitmapData.copyPixels(gems[_local3].bitmap.bitmapData, _local1, _local2, null, null, false);
};
_local3++;
};
if (playerstate == 1){
_local6 = new Point(Math.floor((playerpos.x + 6)), Math.floor((playerpos.y + 6)));
_local7 = new Point(player_mdx, player_mdy);
_local8 = 0;
aimtimer = ((aimtimer + 1) % 20);
_local3 = 0;
while (_local3 < 100) {
_local6.x = (_local6.x + _local7.x);
_local6.y = (_local6.y + _local7.y);
_local7.y = (_local7.y + 0.06);
_local8 = (_local8 + Math.sqrt(((_local7.x * _local7.x) + (_local7.y * _local7.y))));
if (_local8 > 100){
break;
};
if ((_local3 % 10) == int((aimtimer / 2))){
_local1 = new Rectangle(0, 0, 6, 6);
_local2 = new Point((_local6.x - 3), (_local6.y - 3));
_local2.x = (_local2.x - scrollpos.x);
_local2.y = (_local2.y - scrollpos.y);
screenbmp.bitmapData.copyPixels(aimdotbmp.bitmapData, _local1, _local2, null, null, false);
};
_local3++;
};
};
_local1 = new Rectangle(0, 0, 12, 12);
_local2 = new Point(playerpos.x, playerpos.y);
_local2.x = (_local2.x - scrollpos.x);
_local2.y = (_local2.y - scrollpos.y);
var _local4:Bitmap = plyrbmp;
if (playerstate == 1){
_local4 = plyrbmp2;
};
if (playerstate == 3){
_local4 = plyrbmp3;
};
var _local5:Boolean = typecmd_active[7];
if (_local5){
_local4 = plyrbmp_k;
};
if (game_death){
if (_local5){
DrawSprite(plyrbmp_k2, (playerpos.x - scrollpos.x), (playerpos.y - scrollpos.y));
} else {
DrawWobblySprite(plyrbmp4, (playerpos.x - scrollpos.x), (playerpos.y - scrollpos.y));
};
} else {
screenbmp.bitmapData.copyPixels(_local4.bitmapData, _local1, _local2, null, null, false);
};
if (spectre_mode){
_local1 = new Rectangle(0, 0, 1, 240);
_local2 = new Point(0, 0);
_local3 = 0;
while (_local3 < 320) {
_local1.x = _local3;
_local2.x = (319 - _local3);
scratchbuffer.copyPixels(screenbmp.bitmapData, _local1, _local2, null, null, false);
_local3++;
};
screenbmp.bitmapData.copyPixels(scratchbuffer, new Rectangle(0, 0, 320, 240), new Point(0, 0), null, null, false);
};
if ((((mousepos.x > 216)) && ((mousepos.y > 230)))){
if (mouseclick){
if (bgm != null){
bgm.stop();
};
game_mode = 2;
};
DrawSprite(hudbmp2, 216, 230);
} else {
DrawSprite(hudbmp, 216, 230);
};
if ((((((((mousepos.x > 203)) && ((mousepos.x < 216)))) && ((mousepos.y > 230)))) && (mouseclick))){
audio_mute = !(audio_mute);
if (audio_mute){
if (bgm != null){
bgm.stop();
};
} else {
PlaySong(sound_cursong);
};
};
if (audio_mute){
DrawSprite(mutebmp2, 203, 230);
} else {
DrawSprite(mutebmp1, 203, 230);
};
DrawString("SELECT LEVEL", 220, 232);
}
public function WinLogic():void{
var _local1:int;
var _local2:int;
var _local4:int;
var _local5:Number;
var _local6:Boolean;
var _local13:int;
var _local14:int;
var _local15:int;
var _local16:int;
var _local17:int;
var _local18:Number;
in_menu = false;
if (wintime == 0){
if (bgm != null){
bgm.stop();
};
winplaying = false;
if (!audio_mute){
sound_victory.play(0, 0, null);
};
_local1 = 0;
while (_local1 < 30) {
winstar_pos[_local1] = new Point(0, -100);
winstar_life[_local1] = new int(((Math.random() * 3) * 6));
_local1++;
};
};
if (wintime < 30){
playerpos = new Point(-33, 100);
playervel = new Point(2.28, -1.8);
};
if ((((wintime >= 135)) && (!(winplaying)))){
winplaying = true;
PlaySong(sound_end);
};
if (((mouseclick) || (key_space))){
if ((((wintime > 240)) && ((winscreen_mode == 0)))){
game_mode = 2;
};
if ((((wintime > 300)) && ((winscreen_mode == 1)))){
winscreen_mode = 2;
};
};
if (winscreen_mode > 1){
winscreen_mode++;
};
if (winscreen_mode >= 242){
game_mode = 2;
};
screenbmp.bitmapData.fillRect(new Rectangle(0, 0, 320, 240), 0);
_local1 = 0;
while (_local1 < 30) {
_local2 = (winstar_life[_local1] / 3);
if ((((winstar_pos[_local1].y > -10)) && ((_local2 < 7)))){
screenbmp.bitmapData.copyPixels(winstarsbmp.bitmapData, new Rectangle((_local2 * 3), 0, 3, 7), new Point(winstar_pos[_local1].x, winstar_pos[_local1].y), null, null, false);
};
_local1++;
};
var _local3:int = (wintime * 6);
if (_local3 > 320){
_local3 = 320;
};
screenbmp.bitmapData.fillRect(new Rectangle(0, 137, _local3, 2), 0xFFFFFF);
if (winscreen_mode > 0){
screenbmp.bitmapData.fillRect(new Rectangle(0, 140, _local3, 2), 16759586);
screenbmp.bitmapData.fillRect(new Rectangle(0, 143, _local3, 1), 0x880000);
} else {
screenbmp.bitmapData.fillRect(new Rectangle(0, 140, _local3, 1), 0x880000);
};
if (winscreen_mode > 0){
_local13 = 0;
_local14 = 0;
_local15 = 5;
_local1 = 0;
while (_local1 < 54) {
if (_local1 == 25){
_local15 = (_local15 + 174);
_local13 = 0;
_local14 = 0;
};
_local17 = ((wintime - 100) - (_local1 * 5));
_local16 = (140 - ((_local17 * _local17) * 0.05));
if (_local16 < 0){
_local16 = 0;
};
if ((((_local17 > 0)) && ((_local14 < 4)))){
DrawSprite(trophybmp, ((_local15 + (_local13 * 19)) + (_local14 * 8)), ((117 - (_local14 * 17)) - _local16));
};
if ((((((_local17 > 0)) && ((_local14 == 4)))) && (!((_local13 == 1))))){
DrawSprite(trophysmallbmp, (((_local15 + (_local13 * 19)) + (_local14 * 8)) + 5), (((117 - (_local14 * 17)) - _local16) + 9));
};
_local13++;
if (_local13 >= (7 - _local14)){
_local13 = 0;
_local14++;
};
_local1++;
};
};
var _local7:int = (130 - ((wintime - 140) * 3));
var _local8 = 130;
if (winscreen_mode > 1){
_local8 = (130 - ((winscreen_mode - 1) * 2));
};
var _local9:Number = 1;
if (winscreen_mode > 0){
_local9 = 1.5;
};
if (_local7 < 0){
_local7 = 0;
};
var _local10:int = (130 - ((wintime - 160) * 4));
if (_local10 < 0){
_local10 = 0;
};
_local4 = _local7;
while (_local4 < _local8) {
_local5 = ((-(wintime) * 0.03) + ((130 - _local4) * 0.07));
_local5 = (_local5 * _local9);
if (Math.sin(_local5) > 0){
_local6 = true;
} else {
_local6 = false;
};
if ((((Math.random() * 0.4) * _local4) / 60) > Math.abs(Math.sin(_local5))){
_local6 = !(_local6);
};
if (_local6){
screenbmp.bitmapData.copyPixels(rainbowbmp.bitmapData, new Rectangle((int(((wintime * 5) + (_local4 / 2))) % 244), 0, 12, 1), new Point((149.5 + (((Math.cos(_local5) * Math.pow(((130 - _local4) / 130), 2)) * 40) * _local9)), _local4), null, null, false);
};
if (_local4 > _local10){
screenbmp.bitmapData.copyPixels(rainbowbmp2.bitmapData, new Rectangle((243 - (int(((wintime * 5) + (_local4 / 2))) % 244)), 0, 12, 1), new Point((149.5 + (((Math.cos((_local5 + 3.1415)) * Math.pow(((130 - _local4) / 130), 2)) * 40) * _local9)), _local4), null, null, false);
};
if (!_local6){
screenbmp.bitmapData.copyPixels(rainbowbmp.bitmapData, new Rectangle((int(((wintime * 5) + (_local4 / 2))) % 244), 0, 12, 1), new Point((149.5 + (((Math.cos(_local5) * Math.pow(((130 - _local4) / 130), 2)) * 40) * _local9)), _local4), null, null, false);
};
_local4++;
};
var _local11:int = (20 + (wintime * 3));
if (_local11 > 310){
_local11 = 310;
};
_local4 = 0;
while (_local4 < fps_timestep) {
playervel.y = (playervel.y + 0.06);
playerpos.x = (playerpos.x + playervel.x);
playerpos.y = (playerpos.y + playervel.y);
if (playerpos.y >= 125){
playerpos.y = 125;
playervel.x = (playervel.x * 0.9);
playervel.y = 0;
};
_local1 = 0;
while (_local1 < 30) {
winstar_pos[_local1].y++;
var _local19 = winstar_life;
var _local20 = _local1;
var _local21 = (_local19[_local20] + 1);
_local19[_local20] = _local21;
if (winstar_life[_local1] > (3 * 7)){
winstar_pos[_local1] = new Point(((Math.random() * _local11) + 5), ((Math.random() * 110) - 10));
winstar_life[_local1] = 0;
if (winscreen_mode > 60){
winstar_pos[_local1].y = -100;
};
};
_local1++;
};
_local4++;
};
if (wintime > 140){
playerpos.x = 149;
};
var _local12:int = (((wintime - 135) + 24) / 2);
if (winscreen_mode > 5){
_local12 = (12 - ((winscreen_mode - 5) / 2));
if (winscreen_mode > 60){
playerpos.y = (playerpos.y - ((winscreen_mode - 60) * 0.1));
};
};
if (_local12 > 12){
_local12 = 12;
};
if (_local12 < 0){
_local12 = 0;
};
screenbmp.bitmapData.copyPixels(plyrbmp.bitmapData, new Rectangle(0, 5, 12, 7), new Point(playerpos.x, (playerpos.y + 5)), null, null, false);
screenbmp.bitmapData.copyPixels(plyrbmp.bitmapData, new Rectangle(0, 0, 12, 5), new Point((playerpos.x + _local12), playerpos.y), null, null, false);
if (wintime > 180){
if (winscreen_mode > 0){
DrawWinScroller((wintime - 220), 60, false, 7825049, 3351108);
DrawWinScroller((wintime - 180), 0, true, 16746615, 7811874);
} else {
DrawWinScroller((wintime - 220), 60, false, 0xCC3300, 0x550000);
DrawWinScroller((wintime - 180), 0, true, 2121983, 2237047);
};
};
if (winscreen_mode > 60){
_local18 = (1 - ((winscreen_mode - 60) / 130));
if (_local18 < 0){
_local18 = 0;
};
_local18 = Math.pow(_local18, 1.5);
if (bgm != null){
bgm.soundTransform = new SoundTransform(_local18, 0);
};
};
wintime = (wintime + fps_timestep);
}
public function SplashLogic():void{
var _local1:int;
var _local2:int;
in_menu = false;
if (wintime == 0){
if (bgm != null){
bgm.stop();
};
if (!audio_mute){
sound_splash.play(0, 0, null);
};
};
if (wintime > 120){
LoadLevel(current_level, true);
game_mode = 0;
};
screenbmp.bitmapData.fillRect(new Rectangle(0, 0, 320, 240), 0);
SelectFont(fontbmp2);
_local1 = 0;
while (_local1 < 25) {
if (((((wintime - _local1) < 0)) || ((((_local1 > 12)) && ((_local1 < 16)))))){
} else {
_local2 = (Math.pow(((wintime - _local1) / 2), 2) - (8 * 8));
if ((((_local1 == 11)) && ((_local2 > (160 - (4 * 8)))))){
_local2 = (160 - (4 * 8));
};
if (_local1 == 11){
SelectFont(fontbmp1);
};
if (_local1 == 12){
SelectFont(fontbmp2);
};
DrawString("LEVEL", _local2, ((_local1 * 10) - 4));
if (current_level < 10){
DrawNumber(current_level, (_local2 + (6 * 8)), ((_local1 * 10) - 4), 1);
} else {
DrawNumber(current_level, (_local2 + (6 * 8)), ((_local1 * 10) - 4), 2);
};
};
_local1++;
};
_local1 = 0;
while (_local1 < 16) {
if (((((_local1 + 1) == current_level)) && (((wintime % 12) < 6)))){
} else {
screenbmp.bitmapData.fillRect(new Rectangle((17 + (_local1 * 18)), 132, 16, 16), 0xFFFFFF);
if ((_local1 + 1) > levelprogress){
screenbmp.bitmapData.fillRect(new Rectangle(((17 + (_local1 * 18)) + 1), 133, 14, 14), 0);
};
};
_local1++;
};
SelectFont(fontbmp1);
wintime = (wintime + fps_timestep);
}
public function Init():void{
var i:int;
fontbmp1 = new font1_gfx();
fontbmp2 = new font2_gfx();
fontbmp = fontbmp1;
titlebmp = new title_gfx();
titleshinebmp = new titleshine_gfx();
credit1bmp = new credit1_gfx();
credit2bmp = new credit2_gfx();
levelselectbmp = new levelselect_gfx();
scorebgbmp = new scorebg_gfx();
scorebgbmp2 = new scorebg2_gfx();
clickbgbmp = new clickbg_gfx();
hudbmp = new hud_gfx();
hudbmp2 = new hud2_gfx();
mutebmp1 = new mute1_gfx();
mutebmp2 = new mute2_gfx();
trophybmp = new trophy_gfx();
trophysmallbmp = new trophysmall_gfx();
trophysmallbmp2 = new trophysmall2_gfx();
minijuegosbmp = new minijuegos_gfx();
moregamesbmp = new moregames_gfx();
rainbowbmp = new rainbow_gfx();
rainbowbmp2 = new rainbow2_gfx();
winstarsbmp = new winstars_gfx();
thumbnailsbmp = new thumbnails_gfx();
masterlevelbmp = new masterlevel_gfx();
aimdotbmp = new aimdotimage();
plyrbmp = new plyrimage();
plyrbmp2 = new plyrimage2();
plyrbmp3 = new plyrimage3();
plyrbmp4 = new plyrimage4();
plyrbmp_k = new plyrimage_k();
plyrbmp_k2 = new plyrimage_k2();
gembmp1 = new gemimage1();
gembmp2 = new gemimage2();
gembmp3 = new gemimage3();
gembmp4 = new gemimage4();
bgm = new SoundChannel();
fxch_gem = new SoundChannel();
sound_launch = new sfx_launch();
sound_win = new sfx_win();
sound_death = new sfx_death();
sound_victory = new sfx_victory();
sound_splash = new sfx_splash();
sound_bgm1 = new sfx_bgm1();
sound_bgm2 = new sfx_bgm2();
sound_bgm3 = new sfx_bgm3();
sound_menu = new sfx_menu();
sound_end = new sfx_end();
mousepos = new Point(100, 100);
mouse_alive = false;
mousedown = false;
mouseclick = false;
prev_keycode = -1;
display_width = 320;
display_height = 240;
framecounter = 0;
menutime = 0;
wintime = 0;
winstar_pos = new Array(30);
winstar_life = new Array(30);
focused = 1;
current_level = 1;
resetting = 0;
audio_mute = false;
rank_limits = new Array();
rank_strings = new Array();
rank_limits.push(int(0));
rank_strings.push(String("NEW CHALLENGER"));
rank_limits.push(int(1));
rank_strings.push(String("OPERATIONAL"));
rank_limits.push(int(500));
rank_strings.push(String("BOTTOM FEEDER"));
rank_limits.push(int(1000));
rank_strings.push(String("MODEST"));
rank_limits.push(int(5000));
rank_strings.push(String("ON YOUR WAY"));
rank_limits.push(int(10000));
rank_strings.push(String("COMPETENT"));
rank_limits.push(int(15000));
rank_strings.push(String("GETTING PLACES"));
rank_limits.push(int(20000));
rank_strings.push(String("SUCCESSFUL"));
rank_limits.push(int(25000));
rank_strings.push(String("IMPRESSIVE"));
rank_limits.push(int(30000));
rank_strings.push(String("GOLDEN"));
rank_limits.push(int(40000));
rank_strings.push(String("FANTASTIC"));
rank_limits.push(int(50000));
rank_strings.push(String("UNSTOPPABLE"));
rank_limits.push(int(60000));
rank_strings.push(String("TRANSCENDING"));
rank_limits.push(int(70000));
rank_strings.push(String("TROPHY HUNTER"));
rank_limits.push(int(80000));
rank_strings.push(String("GREEDY"));
rank_limits.push(int(85000));
rank_strings.push(String("CHAMPION"));
rank_limits.push(int(90000));
rank_strings.push(String("MASTER"));
rank_limits.push(int(95000));
rank_strings.push(String("MOTHER BRAIN"));
rank_limits.push(int(100000));
rank_strings.push(String("WIZARD"));
rank_limits.push(int(105000));
rank_strings.push(String("ARCH CHUPPER"));
rank_limits.push(int(110000));
rank_strings.push(String("OVERLORD"));
rank_limits.push(int(115000));
rank_strings.push(String("CHUP INCARNATE"));
rank_limits.push(int(118000));
rank_strings.push(String("IMPOSSIBLE"));
ResetRecords();
try {
savestate = SharedObject.getLocal("savestate");
LoadRecords();
UpdateSavestate();
} catch(e:Error) {
};
if (levelprogress == 1){
first_run = true;
} else {
first_run = false;
};
var totaltrophies:int;
i = 0;
while (i < 16) {
if (levelrecords[((i * 7) + 4)] == 1){
totaltrophies = (totaltrophies + 1);
};
if (levelrecords[((i * 7) + 5)] == 1){
totaltrophies = (totaltrophies + 1);
};
if (levelrecords[((i * 7) + 6)] == 1){
totaltrophies = (totaltrophies + 1);
};
i = (i + 1);
};
if (totaltrophies == 48){
all_trophies = true;
} else {
all_trophies = false;
};
game_mode = 1;
in_menu = false;
titlescroller_str = new String("WELCOME TO CHUP! CONTROL WITH MOUSE AND ARROW KEYS OR W/A/S/D REMEMBER AIR CONTROL! PROGRESS IS SAVED, SO YOU MAY COME BACK AND CONTINUE AT ANY TIME COLLECT ALL TROPHIES FOR MAXIMUM SCORE THANKS FOR TESTING : PEKUJA, PHIL HASSEY, X-0UT, POPPEMAN, P OF KLISTERTRAKTOR, MJAU, BLECKI, POV, GUSTAV, JOLLE, ET AL! . . . . . . . . . . . . . . . . ");
winscroller_str = new String("CONGRATULATIONS! GREAT JOB ON BEATING ALL LEVELS! I HOPE YOU ENJOYED CHUP THE NEXT CHALLENGE IS TO SEE IF YOU CAN COLLECT ALL TROPHIES! HERE ARE SOME CHEAT CODES, KEEP THEM SECRET! ---- SHOWTHEMALL - EASYLIVING - JUKEBOX - LOLLIPOP - CAFFEINE - KITTEN ---- THANK YOU FOR PLAYING!!!!!!!! ");
winscroller2_str = new String("WOW!!!! ALL TROPHIES HAVE BEEN COLLECTED! YOU ARE A TRUE MASTER OF CHUP! THERE IS NO CHALLENGE LEFT FOR YOU HERE, BUT THESE ADDITIONAL CHEAT CODES MIGHT COME IN HANDY ---- PIZZACOLADA - SPECTRE ---- PEACE OUT AND TAKE CARE!!!!!!!! ^ ^ ^^^^ ^ ^ ");
typecmd_strings = new Array(10);
typecmd_indices = new Array(10);
typecmd_active = new Array(10);
i = 0;
while (i < 10) {
typecmd_strings[i] = new String("");
typecmd_indices[i] = new int(0);
typecmd_active[i] = new Boolean(false);
i = (i + 1);
};
typecmd_strings[0] = "FPS";
typecmd_strings[1] = "SLOW";
typecmd_strings[2] = "SHOWTHEMALL";
typecmd_strings[3] = "EASYLIVING";
typecmd_strings[4] = "JUKEBOX";
typecmd_strings[5] = "LOLLIPOP";
typecmd_strings[6] = "CAFFEINE";
typecmd_strings[7] = "KITTEN";
typecmd_strings[8] = "PIZZACOLADA";
typecmd_strings[9] = "SPECTRE";
typecmd_announce_id = 0;
typecmd_announce_time = 0;
jukebox_song = 0;
spectre_mode = false;
scratchbuffer = new BitmapData(320, 240, false, 0);
debuglog_strings = new Array(10);
i = 0;
while (i < 10) {
debuglog_strings[i] = new String("");
i = (i + 1);
};
this.addEventListener(Event.ADDED_TO_STAGE, InitStage);
}
public function DrawSprite(_arg1:Bitmap, _arg2:int, _arg3:int):void{
screenbmp.bitmapData.copyPixels(_arg1.bitmapData, new Rectangle(0, 0, _arg1.width, _arg1.height), new Point(_arg2, _arg3), null, null, false);
}
private function mouseReleaseHandler(_arg1:MouseEvent):void{
if (focused != 1){
return;
};
mousedown = false;
}
public function CalculateTotalScore():int{
var _local1:int;
var _local2:int;
_local2 = 0;
while (_local2 < levelprogress) {
if (levelrecords[((_local2 * 7) + 3)] > -1){
_local1 = (_local1 + levelrecords[((_local2 * 7) + 3)]);
};
if (levelrecords[((_local2 * 7) + 4)] == 1){
_local1 = (_local1 + 750);
};
if (levelrecords[((_local2 * 7) + 5)] == 1){
_local1 = (_local1 + 750);
};
if (levelrecords[((_local2 * 7) + 6)] == 1){
_local1 = (_local1 + 750);
};
_local2++;
};
return (_local1);
}
public function LevelSelectLogic():void{
var _local4:int;
var _local7:int;
var _local8:int;
var _local9:int;
useHandCursor = false;
menutime = (menutime + fps_timestep);
if (menutime > 9){
menutime = (menutime - 10);
};
var _local1:int = Math.floor(((mousepos.x - ((160 - 80) + 50)) / 40));
var _local2:int = Math.floor(((mousepos.y - 36) / 40));
var _local3:int = ((_local2 * 4) + _local1);
if ((((((((((_local1 < 0)) || ((_local1 > 3)))) || ((_local2 < 0)))) || ((_local2 > 3)))) || ((_local3 >= levelprogress)))){
_local3 = -1;
};
if (mouseclick){
if (_local3 > -1){
current_level = (_local3 + 1);
game_mode = 4;
};
if ((((((mousepos.y >= 208)) && ((mousepos.x > 130)))) && ((mousepos.x < 190)))){
game_mode = 1;
} else {
if ((((mousepos.x > 230)) && ((mousepos.y >= 220)))){
if (resetting > 0){
ResetRecords();
savestate.clear();
resetting = 0;
} else {
resetting = 60;
};
};
};
};
screenbmp.bitmapData.copyPixels(levelselectbmp.bitmapData, new Rectangle(0, 0, 320, 240), new Point(0, 0), null, null, false);
_local4 = 0;
while (_local4 < 16) {
if (_local4 < levelprogress){
if (((!((_local4 == _local3))) || ((menutime < 5)))){
screenbmp.bitmapData.copyPixels(thumbnailsbmp.bitmapData, new Rectangle((_local4 * 32), 0, 32, 32), new Point((((164 - 80) + 50) + ((_local4 % 4) * 40)), (40 + (Math.floor((_local4 / 4)) * 40))), null, null, false);
};
if ((((((levelrecords[((_local4 * 7) + 4)] == 1)) && ((levelrecords[((_local4 * 7) + 5)] == 1)))) && ((levelrecords[((_local4 * 7) + 6)] == 1)))){
screenbmp.bitmapData.copyPixels(masterlevelbmp.bitmapData, new Rectangle(0, 0, 36, 36), new Point(((((164 - 80) + 50) + ((_local4 % 4) * 40)) - 2), ((40 + (Math.floor((_local4 / 4)) * 40)) - 2)), null, null, false);
};
} else {
screenbmp.bitmapData.fillRect(new Rectangle((((164 - 80) + 50) + ((_local4 % 4) * 40)), (40 + (Math.floor((_local4 / 4)) * 40)), 32, 32), 0x666666);
screenbmp.bitmapData.fillRect(new Rectangle(((((164 - 80) + 50) + ((_local4 % 4) * 40)) + 1), ((40 + (Math.floor((_local4 / 4)) * 40)) + 1), 30, 30), 0);
};
_local4++;
};
if (_local3 > -1){
_local7 = 1;
if ((_local3 + 1) >= 10){
_local7 = 2;
};
DrawString("LEVEL", 4, 40);
DrawNumber((_local3 + 1), (4 + (6 * 8)), 40, _local7);
DrawString("RECORDS:", 4, 50);
_local8 = (_local3 * 7);
if (levelrecords[(_local8 + 4)] == 1){
DrawSprite(trophysmallbmp, 0, (70 - 3));
} else {
DrawSprite(trophysmallbmp2, 0, (70 - 3));
};
if (levelrecords[(_local8 + 0)] == -1){
DrawString("TIME", 14, 70);
DrawNumber(-1, 82, 70, 5);
} else {
DrawString("TIME", 14, 70);
DrawNumber((levelrecords[(_local8 + 0)] / 10), 90, 70, 2);
DrawString(".", (90 + (2 * 8)), 70);
DrawNumber((levelrecords[(_local8 + 0)] % 10), (90 + (3 * 8)), 70, 1);
};
if (levelrecords[(_local8 + 5)] == 1){
DrawSprite(trophysmallbmp, 0, ((70 + 12) - 3));
} else {
DrawSprite(trophysmallbmp2, 0, ((70 + 12) - 3));
};
DrawString("ITEMS", 14, (70 + 12));
DrawNumber(levelrecords[(_local8 + 1)], 82, (70 + 12), 5);
if (levelrecords[(_local8 + 6)] == 1){
DrawSprite(trophysmallbmp, 0, ((70 + 24) - 3));
} else {
DrawSprite(trophysmallbmp2, 0, ((70 + 24) - 3));
};
DrawString("LAUNCHES", 14, (70 + 24));
DrawNumber(levelrecords[(_local8 + 2)], 82, (70 + 24), 5);
DrawString("SCORE", 4, (70 + 36));
DrawNumber(levelrecords[(_local8 + 3)], 82, (70 + 36), 5);
};
var _local5:int = CalculateTotalScore();
DrawString("TOTAL SCORE", 20, 140);
DrawNumber(_local5, 30, 150, 7);
var _local6:int = CalculateRank();
DrawString("RANK", 48, 170);
DrawString(rank_strings[_local6], (64 - ((rank_strings[_local6].length * 8) / 2)), 180);
if ((((levelprogress == 16)) && (!((levelrecords[((15 * 7) + 0)] == -1))))){
_local9 = 0;
_local4 = 0;
while (_local4 < 16) {
if (levelrecords[((_local4 * 7) + 4)] == 1){
_local9++;
};
if (levelrecords[((_local4 * 7) + 5)] == 1){
_local9++;
};
if (levelrecords[((_local4 * 7) + 6)] == 1){
_local9++;
};
_local4++;
};
DrawSprite(trophybmp, 24, 203);
DrawSprite(trophybmp, 84, 203);
DrawNumber(_local9, 44, 216, 2);
DrawString("/", 60, 216);
DrawNumber(48, 68, 216, 2);
screenbmp.bitmapData.fillRect(new Rectangle(30, 224, 68, 1), 0xFFFFFF);
};
if (resetting > 0){
resetting = (resetting - fps_timestep);
if (resetting < 0){
resetting = 0;
};
DrawString("CONFIRM", 232, 220);
} else {
DrawString("RESET", 240, 220);
};
}
public function DrawNumber(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{
var _local5:int;
_arg2 = (_arg2 + ((_arg4 - 1) * 8));
_local5 = 0;
while (_local5 < _arg4) {
if (_arg1 < 0){
DrawChar(12, _arg2, _arg3);
return;
};
DrawChar(((_arg1 % 10) + 15), _arg2, _arg3);
_arg2 = (_arg2 - 8);
_arg1 = (_arg1 / 10);
if (_arg1 == 0){
return;
};
_local5++;
};
}
public function SelectTarget(_arg1:Bitmap):void{
screenbmp = _arg1;
}
public function Restart():void{
var _local1:int;
playerpos = new Point(respawn.x, respawn.y);
playervel = new Point(0, 0);
playerstate = 0;
player_trigger = 0;
keyboard_aiming = false;
scrollpos = new Point(0, 0);
if (current_level == 16){
scrollpos = new Point(0, 40);
};
scrollbounds = 96;
game_delay = 0;
game_win = false;
game_death = false;
stats_timeresult = 0;
stats_itemsresult = 0;
stats_launchesresult = 0;
game_numframes = 0;
gem_anim = 0;
_local1 = 0;
while (_local1 < 5) {
GameLogic();
_local1++;
};
in_menu = false;
}
private function mouseClickHandler(_arg1:MouseEvent):void{
mouseclick = true;
if (focused == 2){
focused = 0;
};
if (focused != 1){
return;
};
mousedown = true;
}
public function ResetRecords():void{
var _local1:int;
levelrecords = new Array();
_local1 = 0;
while (_local1 < 16) {
levelrecords.push(new int(-1));
levelrecords.push(new int(-1));
levelrecords.push(new int(-1));
levelrecords.push(new int(-1));
levelrecords.push(new int(0));
levelrecords.push(new int(0));
levelrecords.push(new int(0));
_local1++;
};
levelprogress = 1;
}
public function LoadLevel(_arg1:int, _arg2:Boolean):void{
var _local3:URLRequest;
var _local11:int;
var _local12:int;
var _local13:int;
var _local15:Rectangle;
var _local16:Point;
var _local17:Boolean;
var _local18:int;
var _local19:int;
var _local20:int;
mover_bmps = new Array();
var _local4:Array = new Array();
var _local5:Array = new Array();
var _local6:Array = new Array();
var _local7:Array = new Array();
var _local8:int;
var _local9:Boolean;
checkpoint = new Point(0, 0);
var _local10:Sound = sound_bgm1;
if (_arg1 == 1){
stats_timegoal = 50;
stats_launchesgoal = 1;
_local10 = sound_bgm1;
bgbmp_orig = new level1_gfx();
bghitbmp = new level1_solid();
level_width = 320;
level_height = 240;
respawn = new Point(40, 185);
_local9 = true;
};
if (_arg1 == 2){
stats_timegoal = 50;
stats_launchesgoal = 2;
_local10 = sound_bgm1;
bgbmp_orig = new level2_gfx();
bghitbmp = new level2_solid();
level_width = 320;
level_height = 240;
respawn = new Point(152, 200);
_local9 = true;
};
if (_arg1 == 3){
stats_timegoal = 100;
stats_launchesgoal = 3;
_local10 = sound_bgm1;
bgbmp_orig = new level3_gfx();
bghitbmp = new level3_solid();
level_width = 320;
level_height = 240;
respawn = new Point(70, 210);
_local9 = true;
};
if (_arg1 == 4){
stats_timegoal = 120;
stats_launchesgoal = 5;
_local10 = sound_bgm1;
bgbmp_orig = new level4_gfx();
bghitbmp = new level4_solid();
level_width = 320;
level_height = 240;
respawn = new Point(110, 210);
_local9 = true;
};
if (_arg1 == 5){
stats_timegoal = 90;
stats_launchesgoal = 2;
_local10 = sound_bgm2;
bgbmp_orig = new level5_gfx();
bghitbmp = new level5_solid();
level_width = 450;
level_height = 240;
respawn = new Point(90, 46);
_local9 = true;
};
if (_arg1 == 6){
stats_timegoal = 150;
stats_launchesgoal = 3;
_local10 = sound_bgm2;
bgbmp_orig = new level6_gfx();
bghitbmp = new level6_solid();
level_width = 450;
level_height = 240;
respawn = new Point(33, 145);
_local5.push(new Point(30, 10));
_local4.push(new Point(9, 251));
_local8++;
_local6.push(new Point(0.5, 0));
_local7.push(new int(89));
_local6.push(new Point(-0.5, 0));
_local7.push(new int(89));
_local9 = true;
};
if (_arg1 == 7){
stats_timegoal = 60;
stats_launchesgoal = 3;
_local10 = sound_bgm2;
bgbmp_orig = new level7_gfx();
bghitbmp = new level7_solid();
level_width = 320;
level_height = 240;
respawn = new Point(155, 215);
_local5.push(new Point(30, 20));
_local4.push(new Point(10, 250));
_local8++;
_local5.push(new Point(20, 20));
_local4.push(new Point(48, 250));
_local8++;
_local5.push(new Point(10, 20));
_local4.push(new Point(75, 250));
_local8++;
_local6.push(new Point(0.4, 0));
_local7.push(new int(61));
_local6.push(new Point(0.3, 0));
_local7.push(new int(37));
_local6.push(new Point(0.25, 0));
_local7.push(new int(76));
_local9 = true;
};
if (_arg1 == 8){
stats_timegoal = 50;
stats_launchesgoal = 1;
_local10 = sound_bgm2;
bgbmp_orig = new level8_gfx();
bghitbmp = new level8_solid();
level_width = 320;
level_height = 240;
respawn = new Point(28, 160);
_local5.push(new Point(11, 18));
_local4.push(new Point(15, 254));
_local8++;
_local5.push(new Point(18, 54));
_local4.push(new Point(37, 254));
_local8++;
_local6.push(new Point(0, 0.75));
_local7.push(new int(60));
_local6.push(new Point(0, 0.5));
_local7.push(new int(50));
_local6.push(new Point(0, 1));
_local7.push(new int(30));
_local6.push(new Point(0, 0.5));
_local7.push(new int(60));
_local6.push(new Point(0, 0.75));
_local7.push(new int(30));
_local9 = true;
};
if (_arg1 == 9){
stats_timegoal = 140;
stats_launchesgoal = 4;
_local10 = sound_bgm3;
bgbmp_orig = new level9_gfx();
bghitbmp = new level9_solid();
level_width = 320;
level_height = 240;
respawn = new Point(68, 130);
_local5.push(new Point(12, 30));
_local4.push(new Point(9, 254));
_local8++;
_local5.push(new Point(9, 32));
_local4.push(new Point(31, 254));
_local8++;
_local6.push(new Point(0.5, 0));
_local7.push(new int(34));
_local6.push(new Point(-0.5, 0));
_local7.push(new int(34));
_local6.push(new Point(0, 0.75));
_local7.push(new int(41));
_local6.push(new Point(0, 1));
_local7.push(new int(41));
_local6.push(new Point(0, -1));
_local7.push(new int(41));
_local6.push(new Point(0, -0.75));
_local7.push(new int(41));
_local9 = true;
};
if (_arg1 == 10){
stats_timegoal = 200;
stats_launchesgoal = 3;
_local10 = sound_bgm3;
bgbmp_orig = new level11_gfx();
bghitbmp = new level11_solid();
level_width = 320;
level_height = 240;
respawn = new Point(30, 200);
_local5.push(new Point(12, 12));
_local4.push(new Point(3, 245));
_local8++;
_local6.push(new Point(0, 0.25));
_local7.push(new int(60));
_local6.push(new Point(0, 0.25));
_local7.push(new int(60));
_local6.push(new Point(0, 0.25));
_local7.push(new int(50));
_local6.push(new Point(0, 0.25));
_local7.push(new int(40));
_local6.push(new Point(0.25, 0));
_local7.push(new int(19));
_local6.push(new Point(0, 0.25));
_local7.push(new int(60));
_local6.push(new Point(0, 0.25));
_local7.push(new int(60));
_local6.push(new Point(0, 0.33));
_local7.push(new int(70));
_local6.push(new Point(0.33, 0));
_local7.push(new int(19));
_local6.push(new Point(0, 0.5));
_local7.push(new int(40));
_local6.push(new Point(0, 0.25));
_local7.push(new int(40));
_local6.push(new Point(0, 0.25));
_local7.push(new int(40));
_local6.push(new Point(-0.33, 0));
_local7.push(new int(19));
_local9 = true;
};
if (_arg1 == 11){
stats_timegoal = 140;
stats_launchesgoal = 1;
_local10 = sound_bgm3;
bgbmp_orig = new level13_gfx();
bghitbmp = new level13_solid();
level_width = 450;
level_height = 240;
respawn = new Point(13, 202);
_local5.push(new Point(12, 12));
_local4.push(new Point(454, 5));
_local8++;
_local6.push(new Point(0, 0.5));
_local7.push(new int(50));
_local6.push(new Point(0, 0.75));
_local7.push(new int(55));
_local6.push(new Point(0.5, 0));
_local7.push(new int(50));
_local6.push(new Point(0, 0.33));
_local7.push(new int(50));
_local6.push(new Point(0, 0.5));
_local7.push(new int(70));
_local6.push(new Point(0, 0.5));
_local7.push(new int(60));
_local6.push(new Point(0, 0.66));
_local7.push(new int(70));
_local6.push(new Point(0, 0.5));
_local7.push(new int(50));
_local6.push(new Point(0, 0.5));
_local7.push(new int(50));
_local6.push(new Point(0, 0.5));
_local7.push(new int(65));
_local6.push(new Point(0.5, 0));
_local7.push(new int(35));
_local6.push(new Point(0.33, 0));
_local7.push(new int(40));
_local9 = true;
};
if (_arg1 == 12){
stats_timegoal = 200;
stats_launchesgoal = 2;
_local10 = sound_bgm3;
bgbmp_orig = new level10_gfx();
bghitbmp = new level10_solid();
level_width = 450;
level_height = 240;
respawn = new Point(50, 27);
_local5.push(new Point(10, 26));
_local4.push(new Point(8, 249));
_local8++;
_local5.push(new Point(10, 26));
_local4.push(new Point(25, 249));
_local8++;
_local6.push(new Point(-0.33, 0));
_local7.push(new int(34));
_local6.push(new Point(0, 0.5));
_local7.push(new int(130));
_local6.push(new Point(0.66, 0));
_local7.push(new int(40));
_local6.push(new Point(0.5, 0));
_local7.push(new int(60));
_local6.push(new Point(-0.33, 0));
_local7.push(new int(45));
_local6.push(new Point(-0.5, 0));
_local7.push(new int(70));
_local6.push(new Point(0.33, 0));
_local7.push(new int(60));
_local6.push(new Point(-0.5, 0));
_local7.push(new int(50));
_local6.push(new Point(0.33, 0));
_local7.push(new int(34));
_local6.push(new Point(0.5, 0));
_local7.push(new int(50));
_local6.push(new Point(0.25, 0));
_local7.push(new int(50));
_local6.push(new Point(0.5, 0));
_local7.push(new int(50));
_local6.push(new Point(0.66, 0));
_local7.push(new int(60));
_local6.push(new Point(0.5, 0));
_local7.push(new int(70));
_local9 = true;
};
if (_arg1 == 13){
stats_timegoal = 140;
stats_launchesgoal = 8;
_local10 = sound_bgm1;
bgbmp_orig = new level12_gfx();
bghitbmp = new level12_solid();
level_width = 320;
level_height = 480;
respawn = new Point(262, 450);
_local5.push(new Point(10, 20));
_local4.push(new Point(322, 10));
_local8++;
_local5.push(new Point(20, 20));
_local4.push(new Point(322, 35));
_local8++;
_local5.push(new Point(30, 20));
_local4.push(new Point(322, 59));
_local8++;
_local6.push(new Point(-0.75, 0));
_local7.push(new int(62));
_local6.push(new Point(-0.5, 0));
_local7.push(new int(72));
_local6.push(new Point(-0.25, 0));
_local7.push(new int(82));
_local6.push(new Point(0.33, 0));
_local7.push(new int(62));
_local6.push(new Point(0.33, 0));
_local7.push(new int(72));
_local6.push(new Point(0.5, 0));
_local7.push(new int(80));
_local9 = true;
};
if (_arg1 == 14){
stats_timegoal = 150;
stats_launchesgoal = 5;
_local10 = sound_bgm2;
bgbmp_orig = new level52_gfx();
bghitbmp = new level52_solid();
level_width = 450;
level_height = 240;
respawn = new Point(375, 192);
_local9 = true;
};
if (_arg1 == 15){
stats_timegoal = 150;
stats_launchesgoal = 9;
_local10 = sound_bgm3;
bgbmp_orig = new level14_gfx();
bghitbmp = new level14_solid();
level_width = 320;
level_height = 480;
respawn = new Point(96, 456);
_local5.push(new Point(10, 20));
_local4.push(new Point(3, 485));
_local8++;
_local5.push(new Point(20, 20));
_local4.push(new Point(19, 485));
_local8++;
_local5.push(new Point(30, 20));
_local4.push(new Point(45, 485));
_local8++;
_local6.push(new Point(0.5, 0));
_local7.push(new int(56));
_local6.push(new Point(0.66, 0));
_local7.push(new int(66));
_local6.push(new Point(0.5, 0));
_local7.push(new int(68));
_local6.push(new Point(-0.5, 0));
_local7.push(new int(49));
_local6.push(new Point(-0.25, 0));
_local7.push(new int(59));
_local6.push(new Point(0, 1));
_local7.push(new int(80));
_local6.push(new Point(-0.5, 0));
_local7.push(new int(56));
_local9 = true;
};
if (_arg1 == 16){
stats_timegoal = 160;
stats_launchesgoal = 4;
_local10 = sound_bgm2;
bgbmp_orig = new level16_gfx();
bghitbmp = new level16_solid();
level_width = 481;
level_height = 640;
respawn = new Point(10, 130);
_local5.push(new Point(18, 42));
_local4.push(new Point(485, 9));
_local8++;
_local5.push(new Point(10, 42));
_local4.push(new Point(485, 58));
_local8++;
_local5.push(new Point(50, 10));
_local4.push(new Point(485, 107));
_local8++;
_local6.push(new Point(0, 1.5));
_local7.push(new int(95));
_local6.push(new Point(0, 2));
_local7.push(new int(95));
_local6.push(new Point(1.25, 0));
_local7.push(new int(130));
_local6.push(new Point(1, 0));
_local7.push(new int(82));
_local6.push(new Point(-1, 0));
_local7.push(new int(82));
_local6.push(new Point(0, -1.75));
_local7.push(new int(55));
_local9 = true;
};
if (!_local9){
game_mode = 2;
return;
};
_local11 = 0;
while (_local11 < _local8) {
mover_bmps.push(new Bitmap());
mover_bmps[_local11].bitmapData = new BitmapData(_local5[_local11].x, _local5[_local11].y, true);
_local15 = new Rectangle(_local4[_local11].x, _local4[_local11].y, mover_bmps[_local11].bitmapData.width, mover_bmps[_local11].bitmapData.height);
_local16 = new Point(0, 0);
mover_bmps[_local11].bitmapData.copyPixels(bgbmp_orig.bitmapData, _local15, _local16, null, null, false);
_local13 = 0;
while (_local13 < mover_bmps[_local11].bitmapData.height) {
_local12 = 0;
while (_local12 < mover_bmps[_local11].bitmapData.width) {
if (mover_bmps[_local11].bitmapData.getPixel(_local12, _local13) == 0xFF00){
mover_bmps[_local11].bitmapData.setPixel32(_local12, _local13, 0xFF00);
};
_local12++;
};
_local13++;
};
_local11++;
};
stats_itemsgoal = 0;
gems = new Array();
var _local14:int;
_local13 = 0;
while (_local13 < bghitbmp.bitmapData.height) {
_local12 = 0;
while (_local12 < bghitbmp.bitmapData.width) {
_local17 = false;
_local18 = bghitbmp.bitmapData.getPixel(_local12, _local13);
if (_local18 == 0xFF00FF){
stats_itemsgoal++;
gems.push(new GameElement((_local12 - 2), (_local13 - 2), 0, gembmp1));
_local17 = true;
};
if (((!((_local18 == 0xFFFFFF))) && (((_local18 & 0xFFFF) == 0xFFFF)))){
_local19 = ((_local18 & 0xF00000) >> 20);
_local20 = gems.push(new GameElement(_local12, _local13, (_local19 + 1), mover_bmps[_local19]));
gems[(_local20 - 1)].range = _local7[_local14];
gems[(_local20 - 1)].direction = _local6[_local14];
_local14++;
_local17 = true;
};
if (_local17){
bghitbmp.bitmapData.setPixel(_local12, _local13, 0);
};
_local12++;
};
_local13++;
};
ColorSwap();
if (_arg2){
PlaySong(_local10);
};
Restart();
}
public function UpdateSavestate():void{
var i:int;
var magic:int;
var fairydust:int;
try {
savestate.data.exists = true;
savestate.data.levelprogress = levelprogress;
savestate.data.levelrecords = levelrecords;
savestate.data.audio_mute = audio_mute;
magic = (levelprogress * 397);
fairydust = 91390613;
i = 0;
while (i < levelrecords.length) {
magic = (magic ^ ((levelrecords[i] * 13) + (i * 193)));
i = (i + 1);
};
magic = (magic ^ fairydust);
savestate.data.magic = magic;
savestate.flush();
} catch(e:Error) {
};
}
public function LoadRecords():void{
var _local1:int;
var _local2:int;
var _local3:int;
if (savestate.data.exists){
_local2 = (savestate.data.levelprogress * 397);
_local3 = 91390613;
_local1 = 0;
while (_local1 < savestate.data.levelrecords.length) {
_local2 = (_local2 ^ ((savestate.data.levelrecords[_local1] * 13) + (_local1 * 193)));
_local1++;
};
_local2 = (_local2 ^ _local3);
if (_local2 == savestate.data.magic){
levelprogress = savestate.data.levelprogress;
levelrecords = savestate.data.levelrecords;
audio_mute = savestate.data.audio_mute;
};
};
}
public function GameLogic():void{
var _local1:int;
var _local3:Number;
var _local4:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:int;
var _local15:int;
var _local16:int;
var _local17:int;
var _local18:int;
if (focused == 2){
return;
};
game_numframes++;
stats_timeresult = (game_numframes / 6);
if ((((((playerstate == 1)) && (!(mousedown)))) && (!(keyboard_aiming)))){
playerstate = 2;
keyboard_aiming = false;
};
if ((((((((focused == 1)) && (mouseclick))) && ((playerstate == 0)))) && (!((((mousepos.x > 203)) && ((mousepos.y > 230))))))){
playerstate = 1;
keyboard_aiming = false;
};
var _local2:Point = new Point(mousepos.x, mousepos.y);
if (spectre_mode){
_local2.x = (319 - _local2.x);
};
_local2.x = (_local2.x + scrollpos.x);
_local2.y = (_local2.y + scrollpos.y);
if ((((playerstate == 0)) && (key_space))){
playerstate = 1;
keyboard_aiming = true;
keyboard_aim = new Point(Math.floor((playerpos.x + 6)), Math.floor((playerpos.y - 20)));
keyboard_daim = new Point(0, 0);
};
if (keyboard_aiming){
if (spectre_mode){
if (key_right){
keyboard_daim.x = (keyboard_daim.x - 0.1);
};
if (key_left){
keyboard_daim.x = (keyboard_daim.x + 0.1);
};
} else {
if (key_right){
keyboard_daim.x = (keyboard_daim.x + 0.1);
};
if (key_left){
keyboard_daim.x = (keyboard_daim.x - 0.1);
};
};
if (key_down){
keyboard_daim.y = (keyboard_daim.y + 0.1);
};
if (key_up){
keyboard_daim.y = (keyboard_daim.y - 0.1);
};
if (((!(key_right)) && (!(key_left)))){
keyboard_daim.x = 0;
};
if (((!(key_down)) && (!(key_up)))){
keyboard_daim.y = 0;
};
keyboard_aim.x = (keyboard_aim.x + keyboard_daim.x);
keyboard_aim.y = (keyboard_aim.y + keyboard_daim.y);
};
if (keyboard_aiming){
_local2 = keyboard_aim;
};
if (((keyboard_aiming) && (!(key_space)))){
playerstate = 2;
keyboard_aiming = false;
};
if ((((playerstate == 1)) || ((playerstate == 2)))){
_local3 = (Number(_local2.x) - Math.floor((playerpos.x + 6)));
_local4 = (Number((_local2.y - 45)) - Math.floor((playerpos.y + 6)));
_local11 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4)));
if (_local11 > 0){
_local3 = (_local3 / _local11);
_local4 = (_local4 / _local11);
};
_local12 = 140;
_local13 = 3.5;
if (_local11 > _local12){
_local11 = _local12;
};
_local11 = ((_local11 / _local12) * _local13);
_local3 = (_local3 * _local11);
_local4 = (_local4 * _local11);
};
player_mdx = _local3;
player_mdy = _local4;
if (playerstate == 2){
stats_launchesresult++;
playerstate = 3;
playervel.x = _local3;
playervel.y = _local4;
};
var _local5:Number = 0.1;
if (playerstate == 1){
_local5 = 0;
};
if (playerstate == 3){
_local5 = 0.02;
};
if (spectre_mode){
if (key_right){
playervel.x = (playervel.x - _local5);
};
if (key_left){
playervel.x = (playervel.x + _local5);
};
} else {
if (key_right){
playervel.x = (playervel.x + _local5);
};
if (key_left){
playervel.x = (playervel.x - _local5);
};
};
if (!typecmd_active[5]){
if (playerstate != 3){
playervel.x = (playervel.x * 0.9);
};
};
if ((((playerstate == 0)) && (key_up))){
playerstate = 4;
playervel.y = -1.5;
};
if ((((playerstate == 4)) && (!(key_up)))){
playerstate = 5;
};
playerpos.x = (playerpos.x + playervel.x);
playerpos.y = (playerpos.y + playervel.y);
playervel.y = (playervel.y + 0.06);
if (playerstate < 2){
playerpos.y = (playerpos.y + 1);
};
gem_anim++;
gem_anim = (gem_anim % 120);
_local1 = 0;
while (_local1 < gems.length) {
if (gems[_local1].exists){
if (gems[_local1].type == 0){
if (((((((((playerpos.x + 12) > gems[_local1].position.x)) && (((playerpos.y + 12) > gems[_local1].position.y)))) && ((playerpos.x < (gems[_local1].position.x + gems[_local1].bitmap.bitmapData.width))))) && ((playerpos.y < (gems[_local1].position.y + gems[_local1].bitmap.bitmapData.height))))){
stats_itemsresult++;
gems[_local1].exists = false;
fxch_gem.stop();
if (!audio_mute){
fxch_gem = sound_launch.play(0, 0, null);
};
};
_local14 = gem_anim;
_local14 = (_local14 + (((Math.sin((gems[_local1].position.x * 0.005)) + Math.sin(((100 / gems[_local1].position.y) * 0.1))) * 120) + 400));
_local14 = (_local14 % 120);
_local14 = (_local14 / 6);
if (_local14 == 0){
gems[_local1].bitmap = gembmp3;
};
if (_local14 == 1){
gems[_local1].bitmap = gembmp4;
};
if (_local14 == 2){
gems[_local1].bitmap = gembmp2;
};
if (_local14 > 2){
gems[_local1].bitmap = gembmp1;
};
};
if (gems[_local1].type > 0){
gems[_local1].position.x = (gems[_local1].position.x + gems[_local1].direction.x);
gems[_local1].position.y = (gems[_local1].position.y + gems[_local1].direction.y);
gems[_local1].distance = (gems[_local1].distance + Math.abs((gems[_local1].direction.x + gems[_local1].direction.y)));
if (gems[_local1].distance >= gems[_local1].range){
gems[_local1].distance = 0;
gems[_local1].direction.x = -(gems[_local1].direction.x);
gems[_local1].direction.y = -(gems[_local1].direction.y);
};
};
};
_local1++;
};
var _local6:Point = new Point(playervel.x, playervel.y);
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:int;
standing_on_mover = -1;
approached = false;
while (((!((_local7 == -1))) && ((_local8 < 20)))) {
_local8++;
_local15 = 0;
_local7 = -1;
_local1 = 0;
while (_local1 < 4) {
_local18 = CheckEdge(playerpos.x, playerpos.y, 12, _local1, bghitbmp);
if (_local18 > _local15){
_local15 = _local18;
_local7 = _local1;
};
_local1++;
};
if (_local7 == -1){
break;
};
_local16 = 0;
_local17 = 1;
if ((((_local7 == 1)) || ((_local7 == 3)))){
_local16 = 1;
_local17 = 0;
};
if ((((_local7 == 1)) || ((_local7 == 2)))){
_local16 = -(_local16);
_local17 = -(_local17);
};
if ((((((_local16 > 0)) && ((playervel.x < 0)))) || ((((_local16 < 0)) && ((playervel.x > 0)))))){
_local6.x = (-(playervel.x) * 0.5);
if (((!((playerstate == 3))) || ((Math.abs(_local6.x) < 0.2)))){
_local6.x = 0;
};
};
if ((((_local17 > 0)) && ((playervel.y < 0)))){
_local6.y = (-(playervel.y) * 0.7);
};
if (_local7 == 2){
if (((((!(key_left)) && (!(key_right)))) && ((Math.abs(_local6.x) < 0.5)))){
_local6.x = 0;
};
_local6.y = 0;
if ((((playerstate == 3)) || ((playerstate == 5)))){
playerstate = 0;
};
};
_local9 = (_local9 + Math.abs(_local16));
_local10 = (_local10 + Math.abs(_local17));
if ((((_local9 > 6)) || ((_local10 > 6)))){
if (approached){
player_trigger = 1;
};
} else {
playerpos.x = (playerpos.x + _local16);
playerpos.y = (playerpos.y + _local17);
};
};
playervel = _local6;
if (standing_on_mover > -1){
playerpos.x = (playerpos.x + gems[standing_on_mover].direction.x);
};
if ((((playerstate < 2)) && ((CheckEdge(playerpos.x, (playerpos.y + 1), 12, 2, bghitbmp) == 0)))){
playerstate = 5;
};
if ((((player_trigger == 1)) && (!(game_death)))){
if (((!(audio_mute)) && (!(game_death)))){
sound_death.play(0, 0, null);
};
game_delay = 60;
game_death = true;
};
if (player_trigger == 2){
if (bgm != null){
bgm.stop();
};
if (((!(audio_mute)) && (!(game_win)))){
sound_win.play(0, 0, null);
};
game_delay = 180;
game_win = true;
};
player_trigger = 0;
if ((playerpos.x - scrollpos.x) > (display_width - scrollbounds)){
scrollpos.x = ((playerpos.x - display_width) + scrollbounds);
};
if ((playerpos.x - scrollpos.x) < scrollbounds){
scrollpos.x = (playerpos.x - scrollbounds);
};
if ((playerpos.y - scrollpos.y) > (display_height - scrollbounds)){
scrollpos.y = ((playerpos.y - display_height) + scrollbounds);
};
if ((playerpos.y - scrollpos.y) < scrollbounds){
scrollpos.y = (playerpos.y - scrollbounds);
};
if (scrollpos.x < 0){
scrollpos.x = 0;
};
if (scrollpos.y < 0){
scrollpos.y = 0;
};
if (scrollpos.x > (level_width - display_width)){
scrollpos.x = (level_width - display_width);
};
if (scrollpos.y > (level_height - display_height)){
scrollpos.y = (level_height - display_height);
};
scrollpos.x = Math.floor(scrollpos.x);
scrollpos.y = Math.floor(scrollpos.y);
}
public function PlaySong(_arg1:Sound):void{
if (bgm != null){
bgm.stop();
};
if (!audio_mute){
bgm = _arg1.play(0, 10000, null);
};
sound_cursong = _arg1;
}
public function DrawString(_arg1:String, _arg2:int, _arg3:int):void{
var _local4:int;
_arg1 = _arg1.toUpperCase();
_local4 = 0;
while (_local4 < _arg1.length) {
DrawChar((int(_arg1.charCodeAt(_local4)) - 33), _arg2, _arg3);
_arg2 = (_arg2 + 8);
_local4++;
};
}
private function CheckEdge(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Bitmap):int{
var _local9:int;
var _local10:int;
var _local11:int;
var _local12:int;
var _local13:int;
var _local14:Boolean;
var _local15:Boolean;
var _local6:int;
var _local7:int;
if ((((_arg4 == 0)) || ((_arg4 == 2)))){
_local6 = 1;
};
if ((((_arg4 == 1)) || ((_arg4 == 3)))){
_local7 = 1;
};
if (_arg4 == 1){
_arg1 = (_arg1 + (_arg3 - 1));
};
if (_arg4 == 2){
_arg2 = (_arg2 + (_arg3 - 1));
};
var _local8:int;
_local9 = 1;
while (_local9 < (_arg3 - 1)) {
_local10 = _arg5.bitmapData.getPixel(((_arg1 + x) + (_local9 * _local6)), ((_arg2 + y) + (_local9 * _local7)));
if (_local10 != 0){
_local8++;
};
if (_local10 == 0xFF0000){
player_trigger = 1;
};
if (_local10 == 0xFF00){
player_trigger = 2;
};
if (_local10 == 0xFF){
player_trigger = 3;
};
_local9++;
};
_local9 = 0;
while (_local9 < gems.length) {
if (((gems[_local9].exists) && ((gems[_local9].type > 0)))){
_local11 = 1;
while (_local11 < (_arg3 - 1)) {
_local12 = (((_arg1 + x) + (_local11 * _local6)) - gems[_local9].position.x);
_local13 = (((_arg2 + y) + (_local11 * _local7)) - gems[_local9].position.y);
if ((((((((_local12 < 0)) || ((_local13 < 0)))) || ((_local12 >= gems[_local9].bitmap.bitmapData.width)))) || ((_local13 >= gems[_local9].bitmap.bitmapData.height)))){
} else {
if ((gems[_local9].bitmap.bitmapData.getPixel32(_local12, _local13) & 4278190080) != 0){
_local14 = false;
_local15 = false;
if (playerpos.x > gems[_local9].position.x){
_local14 = true;
};
if (playerpos.y > gems[_local9].position.y){
_local15 = true;
};
if (((_local14) && ((gems[_local9].direction.x > 0)))){
approached = true;
};
if (((!(_local14)) && ((gems[_local9].direction.x < 0)))){
approached = true;
};
if (((_local15) && ((gems[_local9].direction.y > 0)))){
approached = true;
};
if (((!(_local15)) && ((gems[_local9].direction.y < 0)))){
approached = true;
};
_local8++;
if (_arg4 == 2){
standing_on_mover = _local9;
};
};
};
_local11++;
};
};
_local9++;
};
return (_local8);
}
public function DrawChar(_arg1:int, _arg2:int, _arg3:int):void{
if (_arg1 > -1){
screenbmp.bitmapData.copyPixels(fontbmp.bitmapData, new Rectangle((_arg1 * 8), 0, 8, 8), new Point(_arg2, _arg3), null, null, false);
};
}
private function focusOutHandler(_arg1:Event):void{
focused = 2;
prev_keycode = -1;
}
public function DrawWobblySprite(_arg1:Bitmap, _arg2:int, _arg3:int):void{
var _local4:int;
var _local5:int;
_local4 = 0;
while (_local4 < _arg1.height) {
_local5 = ((Math.random() * 6) - 3);
screenbmp.bitmapData.copyPixels(_arg1.bitmapData, new Rectangle(0, _local4, _arg1.width, 1), new Point((_arg2 + _local5), (_arg3 + _local4)), null, null, false);
_local4++;
};
}
public function ColorSwap():void{
var _local1:BitmapData = new BitmapData(bgbmp_orig.bitmapData.width, bgbmp_orig.bitmapData.height, false, 0);
if (spectre_mode){
_local1.copyChannel(bgbmp_orig.bitmapData, new Rectangle(0, 0, bgbmp_orig.bitmapData.width, bgbmp_orig.bitmapData.height), new Point(0, 0), BitmapDataChannel.GREEN, BitmapDataChannel.RED);
_local1.copyChannel(bgbmp_orig.bitmapData, new Rectangle(0, 0, bgbmp_orig.bitmapData.width, bgbmp_orig.bitmapData.height), new Point(0, 0), BitmapDataChannel.BLUE, BitmapDataChannel.GREEN);
_local1.copyChannel(bgbmp_orig.bitmapData, new Rectangle(0, 0, bgbmp_orig.bitmapData.width, bgbmp_orig.bitmapData.height), new Point(0, 0), BitmapDataChannel.RED, BitmapDataChannel.BLUE);
} else {
_local1.copyPixels(bgbmp_orig.bitmapData, new Rectangle(0, 0, bgbmp_orig.bitmapData.width, bgbmp_orig.bitmapData.height), new Point(0, 0), null, null, false);
};
bgbmp = new Bitmap(_local1);
}
private function UpdateTypeCommands(_arg1:int):void{
var _local2:int;
var _local3:int;
_local2 = 0;
while (_local2 < 10) {
if (typecmd_strings[_local2].length == 0){
} else {
if (_arg1 == typecmd_strings[_local2].charCodeAt(typecmd_indices[_local2])){
var _local4 = typecmd_indices;
var _local5 = _local2;
var _local6 = (_local4[_local5] + 1);
_local4[_local5] = _local6;
if (typecmd_indices[_local2] == typecmd_strings[_local2].length){
typecmd_announce_id = _local2;
typecmd_announce_time = 60;
typecmd_active[_local2] = !(typecmd_active[_local2]);
_local3 = 0;
while (_local3 < 10) {
typecmd_indices[_local3] = 0;
_local3++;
};
return;
};
} else {
if (typecmd_indices[_local2] > 0){
typecmd_indices[_local2] = 0;
_local2--;
};
};
};
_local2++;
};
}
public function SelectFont(_arg1:Bitmap):void{
fontbmp = _arg1;
}
public function Jukebox():void{
var _local1:Sound;
if (bgm != null){
bgm.stop();
};
while (true) {
jukebox_song = ((jukebox_song + 1) % 5);
if (jukebox_song == 0){
_local1 = sound_menu;
} else {
if (jukebox_song == 1){
_local1 = sound_bgm1;
} else {
if (jukebox_song == 2){
_local1 = sound_bgm2;
} else {
if (jukebox_song == 3){
_local1 = sound_bgm3;
} else {
if (jukebox_song == 4){
_local1 = sound_end;
};
};
};
};
};
if (_local1 != sound_cursong){
break;
};
};
PlaySong(_local1);
}
public function InitStage(_arg1:Event=null):void{
this.removeEventListener(Event.ADDED_TO_STAGE, InitStage);
fps_targetrate = 60;
fps_timestep = 1;
fps_current = 60;
fps_numframes = 0;
fps_timer = new Timer(1000, 0);
fps_timer.addEventListener("timer", timerHandler);
fps_timer.start();
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseClickHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseReleaseHandler);
buttonMode = true;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
stage.addEventListener(Event.ACTIVATE, focusInHandler);
stage.addEventListener(Event.DEACTIVATE, focusOutHandler);
stage.frameRate = fps_targetrate;
stage.addEventListener(Event.ENTER_FRAME, MainLoop);
}
}
}//package
Section 11
//GamePackage_aimdotimage (GamePackage_aimdotimage)
package {
import mx.core.*;
public class GamePackage_aimdotimage extends BitmapAsset {
}
}//package
Section 12
//GamePackage_clickbg_gfx (GamePackage_clickbg_gfx)
package {
import mx.core.*;
public class GamePackage_clickbg_gfx extends BitmapAsset {
}
}//package
Section 13
//GamePackage_credit1_gfx (GamePackage_credit1_gfx)
package {
import mx.core.*;
public class GamePackage_credit1_gfx extends BitmapAsset {
}
}//package
Section 14
//GamePackage_credit2_gfx (GamePackage_credit2_gfx)
package {
import mx.core.*;
public class GamePackage_credit2_gfx extends BitmapAsset {
}
}//package
Section 15
//GamePackage_font1_gfx (GamePackage_font1_gfx)
package {
import mx.core.*;
public class GamePackage_font1_gfx extends BitmapAsset {
}
}//package
Section 16
//GamePackage_font2_gfx (GamePackage_font2_gfx)
package {
import mx.core.*;
public class GamePackage_font2_gfx extends BitmapAsset {
}
}//package
Section 17
//GamePackage_gemimage1 (GamePackage_gemimage1)
package {
import mx.core.*;
public class GamePackage_gemimage1 extends BitmapAsset {
}
}//package
Section 18
//GamePackage_gemimage2 (GamePackage_gemimage2)
package {
import mx.core.*;
public class GamePackage_gemimage2 extends BitmapAsset {
}
}//package
Section 19
//GamePackage_gemimage3 (GamePackage_gemimage3)
package {
import mx.core.*;
public class GamePackage_gemimage3 extends BitmapAsset {
}
}//package
Section 20
//GamePackage_gemimage4 (GamePackage_gemimage4)
package {
import mx.core.*;
public class GamePackage_gemimage4 extends BitmapAsset {
}
}//package
Section 21
//GamePackage_hud_gfx (GamePackage_hud_gfx)
package {
import mx.core.*;
public class GamePackage_hud_gfx extends BitmapAsset {
}
}//package
Section 22
//GamePackage_hud2_gfx (GamePackage_hud2_gfx)
package {
import mx.core.*;
public class GamePackage_hud2_gfx extends BitmapAsset {
}
}//package
Section 23
//GamePackage_level1_gfx (GamePackage_level1_gfx)
package {
import mx.core.*;
public class GamePackage_level1_gfx extends BitmapAsset {
}
}//package
Section 24
//GamePackage_level1_solid (GamePackage_level1_solid)
package {
import mx.core.*;
public class GamePackage_level1_solid extends BitmapAsset {
}
}//package
Section 25
//GamePackage_level10_gfx (GamePackage_level10_gfx)
package {
import mx.core.*;
public class GamePackage_level10_gfx extends BitmapAsset {
}
}//package
Section 26
//GamePackage_level10_solid (GamePackage_level10_solid)
package {
import mx.core.*;
public class GamePackage_level10_solid extends BitmapAsset {
}
}//package
Section 27
//GamePackage_level11_gfx (GamePackage_level11_gfx)
package {
import mx.core.*;
public class GamePackage_level11_gfx extends BitmapAsset {
}
}//package
Section 28
//GamePackage_level11_solid (GamePackage_level11_solid)
package {
import mx.core.*;
public class GamePackage_level11_solid extends BitmapAsset {
}
}//package
Section 29
//GamePackage_level12_gfx (GamePackage_level12_gfx)
package {
import mx.core.*;
public class GamePackage_level12_gfx extends BitmapAsset {
}
}//package
Section 30
//GamePackage_level12_solid (GamePackage_level12_solid)
package {
import mx.core.*;
public class GamePackage_level12_solid extends BitmapAsset {
}
}//package
Section 31
//GamePackage_level13_gfx (GamePackage_level13_gfx)
package {
import mx.core.*;
public class GamePackage_level13_gfx extends BitmapAsset {
}
}//package
Section 32
//GamePackage_level13_solid (GamePackage_level13_solid)
package {
import mx.core.*;
public class GamePackage_level13_solid extends BitmapAsset {
}
}//package
Section 33
//GamePackage_level14_gfx (GamePackage_level14_gfx)
package {
import mx.core.*;
public class GamePackage_level14_gfx extends BitmapAsset {
}
}//package
Section 34
//GamePackage_level14_solid (GamePackage_level14_solid)
package {
import mx.core.*;
public class GamePackage_level14_solid extends BitmapAsset {
}
}//package
Section 35
//GamePackage_level16_gfx (GamePackage_level16_gfx)
package {
import mx.core.*;
public class GamePackage_level16_gfx extends BitmapAsset {
}
}//package
Section 36
//GamePackage_level16_solid (GamePackage_level16_solid)
package {
import mx.core.*;
public class GamePackage_level16_solid extends BitmapAsset {
}
}//package
Section 37
//GamePackage_level2_gfx (GamePackage_level2_gfx)
package {
import mx.core.*;
public class GamePackage_level2_gfx extends BitmapAsset {
}
}//package
Section 38
//GamePackage_level2_solid (GamePackage_level2_solid)
package {
import mx.core.*;
public class GamePackage_level2_solid extends BitmapAsset {
}
}//package
Section 39
//GamePackage_level3_gfx (GamePackage_level3_gfx)
package {
import mx.core.*;
public class GamePackage_level3_gfx extends BitmapAsset {
}
}//package
Section 40
//GamePackage_level3_solid (GamePackage_level3_solid)
package {
import mx.core.*;
public class GamePackage_level3_solid extends BitmapAsset {
}
}//package
Section 41
//GamePackage_level4_gfx (GamePackage_level4_gfx)
package {
import mx.core.*;
public class GamePackage_level4_gfx extends BitmapAsset {
}
}//package
Section 42
//GamePackage_level4_solid (GamePackage_level4_solid)
package {
import mx.core.*;
public class GamePackage_level4_solid extends BitmapAsset {
}
}//package
Section 43
//GamePackage_level5_gfx (GamePackage_level5_gfx)
package {
import mx.core.*;
public class GamePackage_level5_gfx extends BitmapAsset {
}
}//package
Section 44
//GamePackage_level5_solid (GamePackage_level5_solid)
package {
import mx.core.*;
public class GamePackage_level5_solid extends BitmapAsset {
}
}//package
Section 45
//GamePackage_level52_gfx (GamePackage_level52_gfx)
package {
import mx.core.*;
public class GamePackage_level52_gfx extends BitmapAsset {
}
}//package
Section 46
//GamePackage_level52_solid (GamePackage_level52_solid)
package {
import mx.core.*;
public class GamePackage_level52_solid extends BitmapAsset {
}
}//package
Section 47
//GamePackage_level6_gfx (GamePackage_level6_gfx)
package {
import mx.core.*;
public class GamePackage_level6_gfx extends BitmapAsset {
}
}//package
Section 48
//GamePackage_level6_solid (GamePackage_level6_solid)
package {
import mx.core.*;
public class GamePackage_level6_solid extends BitmapAsset {
}
}//package
Section 49
//GamePackage_level7_gfx (GamePackage_level7_gfx)
package {
import mx.core.*;
public class GamePackage_level7_gfx extends BitmapAsset {
}
}//package
Section 50
//GamePackage_level7_solid (GamePackage_level7_solid)
package {
import mx.core.*;
public class GamePackage_level7_solid extends BitmapAsset {
}
}//package
Section 51
//GamePackage_level8_gfx (GamePackage_level8_gfx)
package {
import mx.core.*;
public class GamePackage_level8_gfx extends BitmapAsset {
}
}//package
Section 52
//GamePackage_level8_solid (GamePackage_level8_solid)
package {
import mx.core.*;
public class GamePackage_level8_solid extends BitmapAsset {
}
}//package
Section 53
//GamePackage_level9_gfx (GamePackage_level9_gfx)
package {
import mx.core.*;
public class GamePackage_level9_gfx extends BitmapAsset {
}
}//package
Section 54
//GamePackage_level9_solid (GamePackage_level9_solid)
package {
import mx.core.*;
public class GamePackage_level9_solid extends BitmapAsset {
}
}//package
Section 55
//GamePackage_levelselect_gfx (GamePackage_levelselect_gfx)
package {
import mx.core.*;
public class GamePackage_levelselect_gfx extends BitmapAsset {
}
}//package
Section 56
//GamePackage_masterlevel_gfx (GamePackage_masterlevel_gfx)
package {
import mx.core.*;
public class GamePackage_masterlevel_gfx extends BitmapAsset {
}
}//package
Section 57
//GamePackage_minijuegos_gfx (GamePackage_minijuegos_gfx)
package {
import mx.core.*;
public class GamePackage_minijuegos_gfx extends BitmapAsset {
}
}//package
Section 58
//GamePackage_moregames_gfx (GamePackage_moregames_gfx)
package {
import mx.core.*;
public class GamePackage_moregames_gfx extends BitmapAsset {
}
}//package
Section 59
//GamePackage_mute1_gfx (GamePackage_mute1_gfx)
package {
import mx.core.*;
public class GamePackage_mute1_gfx extends BitmapAsset {
}
}//package
Section 60
//GamePackage_mute2_gfx (GamePackage_mute2_gfx)
package {
import mx.core.*;
public class GamePackage_mute2_gfx extends BitmapAsset {
}
}//package
Section 61
//GamePackage_plyrimage (GamePackage_plyrimage)
package {
import mx.core.*;
public class GamePackage_plyrimage extends BitmapAsset {
}
}//package
Section 62
//GamePackage_plyrimage_k (GamePackage_plyrimage_k)
package {
import mx.core.*;
public class GamePackage_plyrimage_k extends BitmapAsset {
}
}//package
Section 63
//GamePackage_plyrimage_k2 (GamePackage_plyrimage_k2)
package {
import mx.core.*;
public class GamePackage_plyrimage_k2 extends BitmapAsset {
}
}//package
Section 64
//GamePackage_plyrimage2 (GamePackage_plyrimage2)
package {
import mx.core.*;
public class GamePackage_plyrimage2 extends BitmapAsset {
}
}//package
Section 65
//GamePackage_plyrimage3 (GamePackage_plyrimage3)
package {
import mx.core.*;
public class GamePackage_plyrimage3 extends BitmapAsset {
}
}//package
Section 66
//GamePackage_plyrimage4 (GamePackage_plyrimage4)
package {
import mx.core.*;
public class GamePackage_plyrimage4 extends BitmapAsset {
}
}//package
Section 67
//GamePackage_rainbow_gfx (GamePackage_rainbow_gfx)
package {
import mx.core.*;
public class GamePackage_rainbow_gfx extends BitmapAsset {
}
}//package
Section 68
//GamePackage_rainbow2_gfx (GamePackage_rainbow2_gfx)
package {
import mx.core.*;
public class GamePackage_rainbow2_gfx extends BitmapAsset {
}
}//package
Section 69
//GamePackage_scorebg_gfx (GamePackage_scorebg_gfx)
package {
import mx.core.*;
public class GamePackage_scorebg_gfx extends BitmapAsset {
}
}//package
Section 70
//GamePackage_scorebg2_gfx (GamePackage_scorebg2_gfx)
package {
import mx.core.*;
public class GamePackage_scorebg2_gfx extends BitmapAsset {
}
}//package
Section 71
//GamePackage_sfx_bgm1 (GamePackage_sfx_bgm1)
package {
import mx.core.*;
public class GamePackage_sfx_bgm1 extends SoundAsset {
}
}//package
Section 72
//GamePackage_sfx_bgm2 (GamePackage_sfx_bgm2)
package {
import mx.core.*;
public class GamePackage_sfx_bgm2 extends SoundAsset {
}
}//package
Section 73
//GamePackage_sfx_bgm3 (GamePackage_sfx_bgm3)
package {
import mx.core.*;
public class GamePackage_sfx_bgm3 extends SoundAsset {
}
}//package
Section 74
//GamePackage_sfx_death (GamePackage_sfx_death)
package {
import mx.core.*;
public class GamePackage_sfx_death extends SoundAsset {
}
}//package
Section 75
//GamePackage_sfx_end (GamePackage_sfx_end)
package {
import mx.core.*;
public class GamePackage_sfx_end extends SoundAsset {
}
}//package
Section 76
//GamePackage_sfx_launch (GamePackage_sfx_launch)
package {
import mx.core.*;
public class GamePackage_sfx_launch extends SoundAsset {
}
}//package
Section 77
//GamePackage_sfx_menu (GamePackage_sfx_menu)
package {
import mx.core.*;
public class GamePackage_sfx_menu extends SoundAsset {
}
}//package
Section 78
//GamePackage_sfx_splash (GamePackage_sfx_splash)
package {
import mx.core.*;
public class GamePackage_sfx_splash extends SoundAsset {
}
}//package
Section 79
//GamePackage_sfx_victory (GamePackage_sfx_victory)
package {
import mx.core.*;
public class GamePackage_sfx_victory extends SoundAsset {
}
}//package
Section 80
//GamePackage_sfx_win (GamePackage_sfx_win)
package {
import mx.core.*;
public class GamePackage_sfx_win extends SoundAsset {
}
}//package
Section 81
//GamePackage_thumbnails_gfx (GamePackage_thumbnails_gfx)
package {
import mx.core.*;
public class GamePackage_thumbnails_gfx extends BitmapAsset {
}
}//package
Section 82
//GamePackage_title_gfx (GamePackage_title_gfx)
package {
import mx.core.*;
public class GamePackage_title_gfx extends BitmapAsset {
}
}//package
Section 83
//GamePackage_titleshine_gfx (GamePackage_titleshine_gfx)
package {
import mx.core.*;
public class GamePackage_titleshine_gfx extends BitmapAsset {
}
}//package
Section 84
//GamePackage_trophy_gfx (GamePackage_trophy_gfx)
package {
import mx.core.*;
public class GamePackage_trophy_gfx extends BitmapAsset {
}
}//package
Section 85
//GamePackage_trophysmall_gfx (GamePackage_trophysmall_gfx)
package {
import mx.core.*;
public class GamePackage_trophysmall_gfx extends BitmapAsset {
}
}//package
Section 86
//GamePackage_trophysmall2_gfx (GamePackage_trophysmall2_gfx)
package {
import mx.core.*;
public class GamePackage_trophysmall2_gfx extends BitmapAsset {
}
}//package
Section 87
//GamePackage_winstars_gfx (GamePackage_winstars_gfx)
package {
import mx.core.*;
public class GamePackage_winstars_gfx extends BitmapAsset {
}
}//package
Section 88
//Main (Main)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class Main extends MovieClip {
public var logobufferbmp:Bitmap;
public var scramble_map1:String;
public var scramble_map2:String;
public var font_gfx:Class;
public var init_delay:int;
public var preloader_state:int;
public var fake_rate:Number;
public var fontbmp:Bitmap;
public var fake_progress:Number;
public var screenbmp:Bitmap;
public var sponsor_y:int;
public var fake_timer:Timer;
public var logobmp:Bitmap;
public var minijuegosbmp:Bitmap;
public var sponsor_t:int;
public var minijuegos_gfx:Class;
public var scanlinesbmp:Bitmap;
public var logo_gfx:Class;
public var scanlines_gfx:Class;
public var logostep:int;
public function Main():void{
font_gfx = Main_font_gfx;
scanlines_gfx = Main_scanlines_gfx;
logo_gfx = Main_logo_gfx;
minijuegos_gfx = Main_minijuegos_gfx;
super();
stop();
scramble_map1 = "abcdefghijklmnopqrstuvwxyz:/.-0123456789";
scramble_map2 = "0987654321!%&/()=#-z,+.urgfeyqwetasdcvbn";
var _local1:String = this.loaderInfo.loaderURL;
var _local2 = "3zz)fee...y8r7y%2,y-6e~z(&)6dvae";
var _local3 = "3zz)fee...y&2/21,64(-y8(&e";
scanlinesbmp = new scanlines_gfx();
logobmp = new logo_gfx();
fontbmp = new font_gfx();
minijuegosbmp = new minijuegos_gfx();
var _local4:BitmapData = new BitmapData(320, 240, false, 127);
screenbmp = new Bitmap(_local4);
screenbmp.scaleX = 2;
screenbmp.scaleY = 2;
screenbmp.smoothing = false;
addChild(screenbmp);
var _local5:BitmapData = new BitmapData((36 * 8), (26 * 8), false, 0);
logobufferbmp = new Bitmap(_local5);
init_delay = 0;
fake_progress = 0;
fake_rate = (1 / 90);
logostep = 0;
preloader_state = 0;
sponsor_t = 0;
sponsor_y = -30;
stage.frameRate = 60;
addEventListener(Event.ENTER_FRAME, ProgressStep);
fake_timer = new Timer(1500, 1);
fake_timer.addEventListener("timer", timerHandler);
fake_timer.start();
}
public function ScrambleString(_arg1:String):String{
var _local3:int;
var _local4:int;
var _local5:Boolean;
_arg1 = _arg1.toLowerCase();
var _local2 = "";
_local3 = 0;
while (_local3 < _arg1.length) {
_local5 = false;
_local4 = 0;
while (_local4 < scramble_map1.length) {
if (_arg1.charAt(_local3) == scramble_map1.charAt(_local4)){
_local2 = (_local2 + scramble_map2.charAt(_local4));
_local5 = true;
break;
};
_local4++;
};
if (!_local5){
_local2 = (_local2 + _arg1.charAt(_local3));
};
_local3++;
};
return (_local2);
}
public function timerHandler(_arg1:TimerEvent):void{
fake_rate = (1 / 20);
}
public function DrawString(_arg1:String, _arg2:int, _arg3:int):void{
var _local4:int;
_arg1 = _arg1.toUpperCase();
_local4 = 0;
while (_local4 < _arg1.length) {
DrawChar((int(_arg1.charCodeAt(_local4)) - 33), _arg2, _arg3);
_arg2 = (_arg2 + 8);
_local4++;
};
}
public function DrawSprite(_arg1:Bitmap, _arg2:int, _arg3:int):void{
screenbmp.bitmapData.copyPixels(_arg1.bitmapData, new Rectangle(0, 0, _arg1.width, _arg1.height), new Point(_arg2, _arg3), null, null, false);
}
public function DrawChar(_arg1:int, _arg2:int, _arg3:int):void{
if (_arg1 > -1){
screenbmp.bitmapData.copyPixels(fontbmp.bitmapData, new Rectangle((_arg1 * 8), 0, 8, 8), new Point(_arg2, _arg3), null, null, false);
};
}
public function InitApplication():void{
var _local2:Object;
var _local1:Class = Class(getDefinitionByName("GamePackage"));
if (_local1){
_local2 = new (_local1);
removeChild(screenbmp);
addChild((_local2 as DisplayObject));
};
}
public function SponsorAnimation():void{
var _local1:uint;
if ((((sponsor_t > ((((120 - 13) + 30) / 4) - 1))) && ((sponsor_t < ((((120 - 13) + 30) / 4) + 5))))){
_local1 = 0xFFFFFF;
};
screenbmp.bitmapData.fillRect(new Rectangle(0, 0, 320, 240), _local1);
if (sponsor_t < 140){
DrawSprite(minijuegosbmp, 135, sponsor_y);
sponsor_y = (sponsor_y + 4);
if (sponsor_y > (120 - 13)){
sponsor_y = (120 - 13);
DrawString("SPONSORED BY", 35, 117);
};
};
sponsor_t++;
if (sponsor_t > 160){
removeEventListener(Event.ENTER_FRAME, ProgressStep);
nextFrame();
InitApplication();
};
}
public function ProgressStep(_arg1:Event):void{
var _local4:int;
var _local5:int;
var _local8:int;
var _local10:int;
if (preloader_state == 1){
SponsorAnimation();
return;
};
fake_progress = (fake_progress + fake_rate);
if (fake_progress > 1){
fake_progress = 1;
};
if ((((fake_progress > 0.99)) && ((framesLoaded == totalFrames)))){
preloader_state = 1;
};
var _local2:Number = (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal);
if (fake_progress < _local2){
_local2 = fake_progress;
};
var _local3:int = ((((_local2 - 0.07) * 36) * 25) * 2);
if (_local3 < 0){
_local3 = 0;
};
if (_local3 > (36 * 25)){
_local3 = (36 * 25);
};
_local4 = logostep;
while (_local4 < _local3) {
_local5 = logobmp.bitmapData.getPixel((_local4 % 36), int((_local4 / 36)));
if (_local5 == 0xFFFFFF){
_local5 = 61;
} else {
if (_local5 == 0xC0C0C0){
_local5 = 2;
} else {
if (_local5 == 0x808080){
_local5 = 10;
} else {
if (_local5 == 0x404040){
_local5 = 11;
} else {
_local5 = 0;
};
};
};
};
if (_local5 > 0){
logobufferbmp.bitmapData.copyPixels(fontbmp.bitmapData, new Rectangle((_local5 * 8), 0, 8, 8), new Point(((_local4 % 36) * 8), (int((_local4 / 36)) * 8)), null, null, false);
};
_local4++;
};
logostep = _local3;
var _local6:Rectangle = new Rectangle(0, 0, (36 * 8), (26 * 8));
var _local7:Point = new Point(16, 16);
screenbmp.bitmapData.copyPixels(logobufferbmp.bitmapData, _local6, _local7, null, null, false);
DrawString("LOADING", 16, 24);
DrawChar((Math.random() * 60), 17, 214);
DrawChar((Math.random() * 60), 25, 214);
var _local9:int = (_local2 * 40);
if (_local9 > 36){
_local9 = 36;
};
_local8 = 2;
while (_local8 < _local9) {
DrawChar(13, (15 + (_local8 * 8)), 214);
_local8++;
};
if ((((logostep == 0)) || ((_local9 == 36)))){
_local10 = 32767;
if ((((logostep == 0)) || ((_local2 > 0.95)))){
_local10 = 0;
};
screenbmp.bitmapData.fillRect(new Rectangle(0, 0, 320, 8), _local10);
screenbmp.bitmapData.fillRect(new Rectangle(0, 232, 320, 8), _local10);
screenbmp.bitmapData.fillRect(new Rectangle(0, 0, 8, 240), _local10);
screenbmp.bitmapData.fillRect(new Rectangle(312, 0, 8, 240), _local10);
} else {
_local6 = new Rectangle(0, 0, 16, 4);
_local6.top = (Math.random() * 56);
_local6.bottom = (_local6.top + 4);
_local7 = new Point(0, 0);
_local8 = 0;
while (_local8 < 320) {
if (Math.random() < 0.05){
_local6.top = (Math.random() * 56);
_local6.bottom = (_local6.top + 4);
};
_local7.x = _local8;
screenbmp.bitmapData.copyPixels(scanlinesbmp.bitmapData, _local6, _local7, null, null, false);
_local8 = (_local8 + 16);
};
_local6.top = (Math.random() * 56);
_local6.bottom = (_local6.top + 4);
_local7 = new Point(0, 4);
_local8 = 0;
while (_local8 < 320) {
if (Math.random() < 0.05){
_local6.top = (Math.random() * 56);
_local6.bottom = (_local6.top + 4);
};
_local7.x = _local8;
screenbmp.bitmapData.copyPixels(scanlinesbmp.bitmapData, _local6, _local7, null, null, false);
_local8 = (_local8 + 16);
};
_local6.top = (Math.random() * 56);
_local6.bottom = (_local6.top + 4);
_local7.y = 232;
_local8 = 0;
while (_local8 < 320) {
if (Math.random() < 0.05){
_local6.top = (Math.random() * 56);
_local6.bottom = (_local6.top + 4);
};
_local7.x = _local8;
screenbmp.bitmapData.copyPixels(scanlinesbmp.bitmapData, _local6, _local7, null, null, false);
_local8 = (_local8 + 16);
};
_local6.top = (Math.random() * 56);
_local6.bottom = (_local6.top + 4);
_local7.y = 236;
_local8 = 0;
while (_local8 < 320) {
if (Math.random() < 0.05){
_local6.top = (Math.random() * 56);
_local6.bottom = (_local6.top + 4);
};
_local7.x = _local8;
screenbmp.bitmapData.copyPixels(scanlinesbmp.bitmapData, _local6, _local7, null, null, false);
_local8 = (_local8 + 16);
};
_local6 = new Rectangle(0, 0, 8, 8);
_local8 = 8;
while (_local8 < 232) {
_local7.x = 0;
_local7.y = _local8;
_local6.top = (Math.random() * 56);
_local6.bottom = (_local6.top + 8);
screenbmp.bitmapData.copyPixels(scanlinesbmp.bitmapData, _local6, _local7, null, null, false);
_local7.x = 312;
_local7.y = _local8;
_local6.top = (Math.random() * 56);
_local6.bottom = (_local6.top + 8);
screenbmp.bitmapData.copyPixels(scanlinesbmp.bitmapData, _local6, _local7, null, null, false);
_local8 = (_local8 + 8);
};
};
}
}
}//package
Section 89
//Main_font_gfx (Main_font_gfx)
package {
import mx.core.*;
public class Main_font_gfx extends BitmapAsset {
}
}//package
Section 90
//Main_logo_gfx (Main_logo_gfx)
package {
import mx.core.*;
public class Main_logo_gfx extends BitmapAsset {
}
}//package
Section 91
//Main_minijuegos_gfx (Main_minijuegos_gfx)
package {
import mx.core.*;
public class Main_minijuegos_gfx extends BitmapAsset {
}
}//package
Section 92
//Main_scanlines_gfx (Main_scanlines_gfx)
package {
import mx.core.*;
public class Main_scanlines_gfx extends BitmapAsset {
}
}//package