/* ===================================
* SnowBoard Alley
* 2008
*
* authors:
* Brozek Krzysztof
* brozekkk@yahoo.co.uk
* Matyasik Kamil
* ti_mo_n@yahoo.com
*
* ===================================
*/
var strMntxtQQ = new Array("Instructions", "Play", "More Games", "Highscores", "Skip");
var netQQ; // boolean: is netscape?
var mnamQQ = 'ziuta78'; // main div's ID
var aimgnmQQ = 'A.jpg';
var bgimglnkQQ = 'S.jpg'; // BG image name
var spimglnkQQ = 'klatki1.png'; // sprite image name
var blimglnkQQ = 'L.png'; // sprite image name
var brimglnkQQ = 'B.png'; // sprite image name
var spimgQQ = new Image(); // sprite image
var brimgQQ = new Image(); // bar image
var blimgQQ = new Image(); // ball image
var bgWQQ = 320; // background image's width
var bgHQQ = 356; // background image's height
var maxslotsQQ = 50; // max visible sprite slots
//var maxmemslots = 72; // max memory sprite slots
//var memimgs = new Array(maxmemslots); // memory sprite slots
var imgsQQ = new Array(maxslotsQQ); // sprite slots
var sbQQ = new Array(maxslotsQQ); // slot bindings
var zQQ; // main div object
var gtQQ = 'SnowBoard Alley'; // game title
var udQQ = 'undefined'; // string used for many purposes
var sinoneQQ = 'none';
var siinliQQ = 'inline';
var pxtxtQQ = 'px';
var pxspcQQ = 'px, ';
var pxentQQ = 'px)';
var ydispQQ = 64;
var vistxtQQ = 'visible';
var mgtxtQQ = 'sch();';
var end1txtQQ = '")';
var mnutxtQQ = 'mnu';
var nullstrQQ = '';
var cbg0txtQQ = "zQQ == null";
var bodytxtQQ = 'body';
var htmltxtQQ = 'html';
var urltxtQQ = 'url("';
var pbrtxtQQ = 'pbr';
var pbltxtQQ = 'pbl';
var whttxtQQ = 'white';
var cmtxtQQ = 'cm(0);';
var cm2txQQ = 'cm(2);';
var wyptxt1QQ = 'wypas(';
var wyptxt2QQ = ');';
var rcttxQQ = 'rect(';
var coltxQQ = ', ';
var abstxtQQ = 'absolute';
var statxtQQ = 'static';
var adverQQ = 'advertID';
var advimgQQ = 'advimgID';
var hidtxtQQ = 'hidden';
var nsQQ = 'Netscape'; // string used to detect a netscape-type browser
var sperrrQQ = 'Sprite data error at index '; // debug error
var actQQ = 0; // 0-mainmenu, 1-instructions, 2-game, 3-moregames, 4-highscores
var strArrayQQ = new Array(1);
var strPartsQQ = new Array(4);
var gamestuffQQ = '
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'';
strPartsQQ[0] = 'Something went wrong';
strPartsQQ[1] = '';
strPartsQQ[2] = 'Something went wrong';
strPartsQQ[3] = '
';
var imgcodeQQ = new Array('
', 'm');
var dbginfoQQ = new Array('body: [x: ', ', y: ', ', w: ', ', h: ', "]\nhalfW: ", "\nhalfH: ");
// ===============================================================================
// ===============================================================================
// ===============================================================================
// ===============================================================================
// ===============================================================================
// ===============================================================================
//array holds frames info retrieved from main graphics image - 0-X of obj, 1-Y of obj, 2-width of obj, 3-height of obj
var sprdataQQ = new Array([397, 64, 47, 69], [300, 66, 45, 64], [204, 64, 44, 68], [207, 285, 37, 76], [190, 171, 46, 69], [274, 169, 45, 72], [359, 171, 40, 69], //anim going left(0-2),straight(3),right(4-6)
[183, 422, 41, 66], [255, 418, 56, 74], [332, 409, 43, 92], [406, 404, 42, 102], [479, 401, 45, 108], //jump(7-11)
[239, 541, 42, 88], [303, 546, 56, 79], [381, 544, 56, 82], [460, 559, 58, 53], [540, 555, 48, 61], [610, 537, 45, 98], //trick(12-22)
[678, 553, 48, 65], [748, 560, 58, 52], [828, 544, 66, 84], [917, 549, 59, 72], [998, 554, 41, 63],
[721, 273, 76, 121], [643, 273, 76, 121], //tree(left, right)(23-24)
[0, 0, 46, 31], [49, 0, 47, 27], [96, 0, 48, 25], //stumps(25-27)
[150, 0, 97, 35], [246, 0, 87, 56], //snow drifts(28-29)
[684, 116, 33, 27], [736, 116, 28, 27], //bomb(30-31)
[684, 176, 20, 20], [716, 176, 20, 20], [743, 176, 20, 20], [767, 176, 20, 20], [798, 176, 20, 20], [828, 176, 20, 20], [853, 176, 20, 20], [882, 176, 20, 20], // bonus1(32-39)
[684, 230, 20, 20], [716, 230, 20, 20], [743, 230, 20, 20], [767, 230, 20, 20], [798, 230, 20, 20], [828, 230, 20, 20], [853, 230, 20, 20], [882, 230, 20, 20], // bonus2(40-47)
[684, 93, 22, 19], [723, 94, 30, 20], //sbonus(48-49)
[768, 121, 25, 19], //life bonus(50)
[340, 0, 42, 42], [382, 0, 42, 42], [424, 0, 42, 42], [466, 0, 42, 42], //bomb explosion (51-54)
[516, 0, 98, 35], //'level' caption(55)
[539, 75, 47, 15], //'score' caption(56)
[678, 0, 292, 44], [678, 44, 292, 44], //'game over' caption(57-58)
[538, 52, 10, 14], [548, 52, 10, 14], [558, 52, 10, 14], [568, 52, 10, 14], [578, 52, 10, 14], //small numbers 0-9(59-68)
[588, 52, 10, 14], [598, 52, 10, 14], [608, 52, 10, 14], [618, 52, 10, 14], [628, 52, 10, 14],
[595, 75, 40, 12], //'lives' caption(69)
[640, 46, 28, 34], [668, 46, 28, 34], [696, 46, 28, 34], [724, 46, 28, 34], [752, 46, 28, 34], //big numbers 0-9(70-79)
[780, 46, 28, 34], [808, 46, 28, 34], [836, 46, 28, 34], [864, 46, 28, 34], [892, 46, 28, 34],
[0, 43, 130, 14], [0, 63, 134, 18], [0, 84, 120, 14], [0, 103, 53, 14], //bomb,stump,tree,life caps (80-83)
[0, 125, 86, 14], [0, 149, 140, 18], [0, 170, 110, 38] //bonus,sbonus,snow inv caps(84-86)
);
// ===============================================================================
// ===============================================================================
// game variables start
var iClLeft = 0;
var iClWidth = 0;
var iClHeight = 0;
var iLeft = 0;
var iTop = 0;
var iWidth = 0;
var iHeight = 0;
var ihalfW = 0;
var iHalfH = 0;
var mX = 0;
var mY = 0;
var isM = false;
var isCl = false;
// ===============================================================================
//var trees = new Array(56); //array for 14 trees
//array for 4 trees 0-active/not,1-x,2-y,3-slot,4-frame
var trees = new Array([0, 0, 0, 43, 0], [0, 0, 0, 42, 0], [0, 0, 0, 41, 0], [0, 0, 0, 40, 0]);
//array for captions 0-active/not,1-x,2-y,3-slot,4-opacity
//0-bomb, 1-stump, 2-tree, 3-life, 4-bonus, 5-sbonus
var captions = new Array([0, 0, 0, 26, 100], [0, 0, 0, 25, 100], [0, 0, 0, 24, 100],
[0, 0, 0, 23, 100], [0, 0, 0, 22, 100], [0, 0, 0, 21, 100]
);
//objects tuff
//var no_trees = 0; //number of trees on the screen
//objects graphics slots
var bomb_slot = 44;
var sdrift_slot = 45;
var bonus_slot = 46;
var sbonus_slot = 47;
var life_slot = 48;
var stump_slot = 49;
//var tree_slot = 41;
var go_slot = 0; //'game over' slot
var score_slot = 1; //'score' slot
var level_slot = 2; //'level' slot
var life_cap_slot = 12; //'lives' slot
var sc_ds_slot = 3; //score digits slot(3,4,5,6,7)
var lf_ds_slot = 8; //life digits slots(8,9)
var snow_inv_slot = 20; //'snowboarder invincible' caption
var snow_inv_opac = 0; //caption opacity
var snow_inv_active = false;
var lv_ds_slot = 10; //level digits slot
var lvY = 0; //level caption params
var lv_active = false;
//items coords
var bombX = 0;
var bombY = 0;
var sdriftX = 0;
var sdriftY = 0;
var stumpX = 0;
var stumpY = 0;
var bonusX = 0;
var bonusY = 0;
var sbonusX = 0;
var sbonusY = 0;
var lifeX = 0;
var lifeY = 0;
//var treeX = 0;
//var treeY = 0;
//random vars
var life_del = 0; //holds delay for life to appear
var life_fr = 0;
var sbon_del = 0; //holds delay for super bonus to appear
var sbon_fr = 0;
var bon_del = 0; //holds delay for bonus to appear
var bon_fr = 0;
var stump_del = 0; //holds delay for stump to appear
var stump_fr = 0;
var bomb_del = 0; //holds delay for bomb to appear
var bomb_fr = 0;
var sd_del = 0; //holds delay for sdrift to appear
var sd_fr = 0;
var tree_del = 0; //holds delay for tree to appear
//var tree_fr = 0;
//var trees_no = 0;
//var tree_frame = 0;
//items states
var bmb_active = false; //is bomb on the screen
var sd_active = false; //is snow drift on the screen
var bon_active = false; //is bonus on the screen
var sbon_active = false; //is super bonus on the screen
var lf_active = false; //is bonus life on the screen
var stump_active = false; //is stump on the screen
//var tree_active = false; //if tree is on the screen
//items anim var
var bon_start = 0; //bonus first anim frame
var bon_end = 0; //bonus last anim frame
var bon_cur = 0; //bonus cur anim frame
var tree_y_offs = 0; //y offset between trees
var bomb_cur = 0; //bomb cur frame
var bomb_anim_forw = 0; //bomb explosion anim goes forward/backward
//var cur_tree_slot; //cur free slot for tree
var life_opac = 0; //life image opacity
var bonus_opac = 0; //bonus image opacity
var sbonus_opac = 0; //super bonus image opacity
//sizes
var TREE_W = 71;
var TREE_H = 121;
var BOMB_W = 26;
var BOMB_H = 26;
var sdrift_W = 0; //sdrift width changes
var SDRIFT_H = 20;
var STUMP_W = 46;
var STUMP_H = 25;
var BONUS_W = 20;
var BONUS_H = 20;
var SBONUS_W = 24;
var SBONUS_H = 20;
var LIFE_W = 25;
var LIFE_H = 19;
//char stuff
var char_slot = 39; //char graph slot
var charX = 0; //char X, Y
var charY = 0;
var charW = 35; //char width and height
var charH = 76;
var char_velX = 0; //char vert & horiz velocity
var char_velY = 0;
var cur_frame = 0; //current char frame
var state = 0; //char state 0-going straight 1-going left 2-going right 3-going up 4-tricks and 'air stuff' 5-going down
var invinc = false; //if char is immortal for a while
var inv_fr = 0; //cur inv frame
var inv_del = 100; //length of being invinc
//game related stuff
var k = 0; //frame counter
var maxlifes = 5; //max number of lives
var lives = 0; //current number of lives
var score = 0; //score
var inair = false; //if char is in air
var lend = 0; //turn left anim end
var rend = 6; //turn right anim end
var jstart = 7; //jump anim start
var jend = 11; //jump anim end
var jump = false; //char jumps
var jump_dur = 0; //jump duration
var MAX_JDUR = 35; //max jump duration(75 frames - 3 seconds)
var tr_start = 12; //trick 1 start
var tr_end = 22; //trick 1 end
var trick = false; //triggers trick anim
var trick_anim = false; //trick animation
var trick_forw = true; //if trick anim goes forward/backward
var crash = false; //character crashes
var crash_start = 12; //crash anim start-end
var crash_end = 22;
var str = 3; //str anim nr
var scroll = 0; //screen scroll
var max_scroll = 4;
var levnum = 0; //level number
var lvchge = 250; //amount of score after which lv changes
var trick_allow = true; //can we do the trick
var j = 0; //another frame counter
//var change = false;
var lY = 0;
var iphone = false; //game runs on iphone
//var mode = 0; //mode in which game starts
var delay = 0;
// game variables end
// init game
function ig () {
//detect iphone
if(mobileDevice()) iphone = true;
else iphone = true;//was false 060509
//randomize level generation
//mode = Math.floor(Math.random() * 2);
//objects init
ci(bonus_slot, 40);
ci(life_slot, 50);
ci(level_slot, 55);
ci(score_slot, 56);
mi(score_slot, 2, 2);
si(score_slot, true);
ci(go_slot, 57);
mi(go_slot, 14, 181);
ci(life_cap_slot, 69);
mi(life_cap_slot, 257, 2);
si(life_cap_slot, true);
ci(snow_inv_slot, 86);
mi(snow_inv_slot, 105, 3);
//turn off digits
var x = 0;
for(x = 3; x < 7; x++) si(x, false);
//trees
for(x = 0; x < 4; x++) trees[x][0] = 0; //dectivate all trees
/*/
if(mode == 1) {
for(x = 0; x < 56; x++) trees[x] = 0;
cur_tree_slot = 41;
createTrees();
}//**/
//captions
for(x = 0; x < 6; x++) captions[x][0] = 0; //dectivate all captions
for(x = 80; x < 86; x++) ci(captions[x-80][3], x); //assign images
//stump, snow drift, bomb
stump_del = 50;
sd_del = 20;
bomb_del = 100;
life_del = 1000;
sbon_del = 500;
bon_del = 200;
//tree_del = 130;
//item state
bmb_active = sd_active = bon_active = sbon_active = lf_active = stump_active = snow_inv_active = /*tree_active =*/ false;
maxlifes = 5;
lives = maxlifes;
//reset item counters
/*no_trees = */
life_fr = sbon_fr = bon_fr = stump_fr = bomb_fr = /*tree_fr = */sd_fr = scroll = levnum = score = snow_inv_opac = life_opac = bonus_opac = sbonus_opac = /*trees_no = */0;
//level vars
max_scroll = 4;
k = 1;
lvchge = 250;
//character
char_velX = char_velY = state = inv_fr = 0;
invinc = crash = false;
charX = 160;
charY = 208;
cur_frame = 3;
ci(char_slot, cur_frame);
mi(char_slot, charX - (charW>>1), charY - (charH>>1));
si(char_slot, true);
//show level no
lvY = bgHQQ;
mi(level_slot, 95, lvY);
si(level_slot, true);
lv_active = true;
//draw all numbers
drawNr(levnum + 1, 2);
drawNr(score, 0);
drawNr(lives, 1);
}
// main game called until false is returned
function mg() {
k += (iphone == true ? 2 : 1); //update frame counter according to the device
//if mouse is 'on' the screen
if (isM && !crash && !isCl) {
//char pos update
//vertical
var midX = (charX + (charW>>1));
var midY = (charY + (charH>>1));
if(mX < midX + 2 && charX > 0) {
if(midX + 2 - mX > 40) {
char_velX = -4;
if(!jump) state = 1;
}
else char_velX = -2;
}
else if(mX >= midX + 4 && (charX + charW) < bgWQQ) {
if(mX - (midX + 4) >= 40) {
char_velX = 4;
if(!jump) state = 2;
}
else char_velX = 2;
}
else {
char_velX = 0;
if(!jump) state = 0;
}
//horizontal
if(mY < (midY - 2)) {
if(((midY - 2) - mY) > 40) char_velY = -4;
else char_velY = -2;
}
else if(mY >= midY) {
if((mY - midY) >= 40) char_velY = 4;
else char_velY = 2;
}
else char_velY = 0;
}
else {
if(char_velX > 0) char_velX--;
else if(char_velX < 0) char_velX++;
if(char_velY > 0) char_velY--;
else if(char_velY < 0) char_velY++;
if(!jump && !crash) state = 0;
}
if(charY + char_velY < 0) {
char_velY = 0;
charY = 0;
}
else if((charY + charH + char_velY) > bgHQQ) {
char_velY = 0;
charY = bgHQQ - charH;
}
//char pos actualize
charX += char_velX;
charY += char_velY;
//animation update
if(k&1 == 1) {
if(!jump) { //not in air
if(state == 0) { //char going straight
if(cur_frame > str) cur_frame--;
else if(cur_frame < str) cur_frame++;
}
else if(state == 1) { //left turn
if(cur_frame > lend) cur_frame--;
}
else if (state == 2) { //right turn
if(cur_frame < rend) cur_frame++;
}
else if(state == 6) { //crash animation
if(cur_frame < crash_end) {cur_frame++;}
else { //scroll goes down
if(scroll > 0 && ((k%5) == 0)) scroll--;
else if(scroll == 0) {
if(lives == 0) { //GAME OVER
if(j > 0) j--;
else return false;
}
else { //reset character
charX = 160 - (charW>>1);
charY = 208 - (charH>>1);
cur_frame = 3;
state = 0;
crash = false;
invinc = true;
snow_inv_active = true;
snow_inv_opac = 100;
co(snow_inv_slot, snow_inv_opac);
si(snow_inv_slot, true);
}
}
}
}
}
else { //char is in air
if(state == 3) { //jump anim prep
if(cur_frame > str) cur_frame--;
else if(cur_frame < str) cur_frame++;
else {
cur_frame = jstart;
//char_slot = 41;
//tree_slot = 43;
//ci(tree_slot, tree_frame);
//mi(tree_slot, treeX, treeY);
//si(tree_slot, (tree_active == true ? true : false));
state = 4;
}
}
else if(state == 4) { //we are going up and are in the air(3 seconds for tricks)
if(cur_frame < jend) cur_frame++;
else { //finally in air
if(jump_dur < MAX_JDUR) { //while we are still in air
//trick handling
if(isCl && !trick_anim) { //if mouse clicked and trick not being done
if(trick_allow) { //if we can do the trick
if((mX >= (charX + (charW>>1)) - 10) && (mX <= (charX + (charW>>1)) + 20)) {
if((mY >= (charY + (charH>>1)) - 20) && (mY <= (charY + (charH>>1)) + 20)) {
trick_allow = false;
lY = mY;
}
}
}
}
else if(!isCl && !trick_allow && !trick_anim) {
if((mX >= (charX + (charW>>1)) - 10) && (mX <= (charX + (charW>>1)) + 20)) {
if(mY - lY > 15) {trick_forw = false; trick = true;}
else if(lY - mY > 15) {trick_forw = true; trick = true;}
}
trick_allow = true;
}
jump_dur++;
if(trick && !trick_anim) { //trick is triggered
trick_anim = true;
trick = false;
if(trick_forw) cur_frame = tr_start;
else cur_frame = tr_end;
}
if(trick_anim) { //trick animation
if(trick_forw) { //goes forward(first trick)
if(cur_frame < tr_end) cur_frame++;
else {
cur_frame = jend;
trick_anim = false;
trick_allow = true;
score += 5;
drawNr(score, 0);
}
}
else { //goes backward(second trick)
if(cur_frame > tr_start) cur_frame--;
else {
cur_frame = jend;
trick_anim = false;
trick_allow = true;
score += 5;
drawNr(score, 0);
}
}
}
}
else {state = 5; jump_dur = 0;} //time to gown down
}
}
else if(state == 5) { //we are going down
if(trick_anim) { //if trick's not finished
if(trick_forw) { //if anim went forward
if(cur_frame < tr_end) cur_frame++;
else {
cur_frame = jend;
trick_anim = false;
score += 5;
drawNr(score, 0);
}
}
else { //if anim went backward
if(cur_frame > tr_start) cur_frame--;
else {
cur_frame = jend;
trick_anim = false;
score += 5;
drawNr(score, 0);
}
}
}
else { //going down anim
if(cur_frame > jstart) cur_frame--;
else {
trick_allow = true;
trick_anim = false;
trick_time = 0;
jump = false;
cur_frame = str;
//char_slot = 43;
//tree_slot = 41;
//ci(tree_slot, tree_frame);
//mi(tree_slot, treeX, treeY);
//si(tree_slot, (tree_active == true ? true : false));
state = 0;
}
}
}
}
}
//OBJECTS
//object creation
//create bonus life
if(!lf_active && life_fr == life_del) {
//lifeX = ((mode == 0) ? (Math.floor(Math.random() * (320 - LIFE_W))) : (Math.floor(Math.random() * (180 - LIFE_W)) + 60));
lifeX = Math.floor(Math.random() * (bgWQQ - LIFE_W));
lifeY = bgHQQ + (delay > 0 ? delay : 0);
life_opac = 100;
co(life_slot, life_opac);
mi(life_slot, lifeX, lifeY);
si(life_slot, true);
lf_active = true;
life_fr = 0;
life_del = Math.floor(Math.random() * 200) + 800;
delay += 30;
}
//create super bonus
if(!sbon_active && sbon_fr == sbon_del) {
var temp = Math.floor(Math.random() * 2);
//sbonusX = ((mode == 0) ? (Math.floor(Math.random() * (320 - SBONUS_W))) : (Math.floor(Math.random() * (180 - SBONUS_W)) + 60));
//sbonusX = (Math.floor(Math.random() * (180 - SBONUS_W)) + 60);
sbonusX = Math.floor(Math.random() * (bgWQQ - SBONUS_W));
sbonusY = bgHQQ + (delay > 0 ? delay : 0);
ci(sbonus_slot, (temp > 0 ? 49 : 48));
//if (temp == 0) ci(sbonus_slot, 48);
//else if(temp == 1) ci(sbonus_slot, 49);
sbonus_opac = 100;
co(sbonus_slot, sbonus_opac);
mi(sbonus_slot, sbonusX, sbonusY);
si(sbonus_slot, true);
sbon_active = true;
sbon_fr = 0;
sbon_del = Math.floor(Math.random() * 100) + 100;
delay += 30;
}
//create bonus
if(!bon_active && bon_fr == bon_del) {
var temp = Math.floor(Math.random() * 2);
//bonusX = ((mode == 0) ? (Math.floor(Math.random() * (320 - BONUS_W))) : (Math.floor(Math.random() * (180 - BONUS_W)) + 60));
//bonusX = (Math.floor(Math.random() * (180 - BONUS_W)) + 60);
bonusX = Math.floor(Math.random() * (bgWQQ - BONUS_W));
bonusY = bgHQQ + (delay > 0 ? delay : 0);
bon_start = (temp > 0 ? 40 : 32);
bon_end = (temp > 0 ? 47 : 39);
/*/
if (temp == 0) {
bon_start = 32;
bon_end = 39;
}
else if(temp == 1) {
bon_start = 40;
bon_end = 47;
}//**/
bon_cur = bon_start;
bonus_opac = 100;
ci(bonus_slot, bon_start);
co(bonus_slot, bonus_opac);
mi(bonus_slot, sbonusX, sbonusY);
si(bonus_slot, true);
bon_active = true;
bon_fr = 0;
bon_del = Math.floor(Math.random() * 50) + 100;
delay += 30;
}
//create stump
if(!stump_active && stump_fr == stump_del) {
var temp = Math.floor(Math.random() * 3);
//stumpX = ((mode == 0) ? (Math.floor(Math.random() * (320 - STUMP_W))) : (Math.floor(Math.random() * (180 - STUMP_W)) + 60));
//stumpX = (Math.floor(Math.random() * (180 - STUMP_W)) + 60);
stumpX = Math.floor(Math.random() * (bgWQQ - STUMP_W));
stumpY = bgHQQ + (delay > 0 ? delay : 0);
if (temp == 0) ci(stump_slot, 25);
else if(temp == 1) ci(stump_slot, 26);
else if(temp == 2) ci(stump_slot, 27);
mi(stump_slot, stumpX, stumpY);
si(stump_slot, true);
stump_active = true;
stump_fr = 0;
stump_del = Math.floor(Math.random() * 30) + 40; //randomize new value for stump creation
delay += 30;
}
//create bomb
if(!bmb_active && bomb_fr == bomb_del) {
//bombX = ((mode == 0) ? (Math.floor(Math.random() * (320 - BOMB_W))) : (Math.floor(Math.random() * (180 - BOMB_W)) + 60));
//bombX = (Math.floor(Math.random() * (180 - BOMB_W)) + 60);
bombX = Math.floor(Math.random() * (bgWQQ - BOMB_W));
bombY = bgHQQ + (delay > 0 ? delay : 0);
bomb_cur = 30;
ci(bomb_slot, bomb_cur);
mi(bomb_slot, bombX, bombY);
si(bomb_slot, true);
bmb_active = true;
bomb_fr = 0;
bomb_del = Math.floor(Math.random() * 50) + 60; //randomize new value for bomb creation
delay += 30;
}
//create sdrift
if(!sd_active && sd_fr == sd_del) {
var temp = Math.floor(Math.random() * 2); //ranomize which sdrift will be selected
sdrift_W = (temp > 0 ? 87 : 97);
ci(sdrift_slot, (temp > 0 ? 29 : 28));
/*/
if(temp == 0) {
sdrift_W = 97;
ci(sdrift_slot, 28);
}
else if(temp == 1) {
sdrift_W = 87;
ci(sdrift_slot, 29);
}//**/
//sdriftX = ((mode == 0) ? (Math.floor(Math.random() * (320 - sdrift_W))) : (Math.floor(Math.random() * (180 - sdrift_W)) + 60));
//sdriftX = (Math.floor(Math.random() * (180 - sdrift_W)) + 60);
sdriftX = Math.floor(Math.random() * (bgWQQ - sdrift_W));
sdriftY = bgHQQ + (delay > 0 ? delay : 0);
mi(sdrift_slot, sdriftX, sdriftY);
si(sdrift_slot, true);
sd_active = true;
sd_fr = 0;
sd_del = Math.floor(Math.random() * 100) + 100; //randomize new value for bomb creation
delay += 40;
}
//create tree
/*/
if(!tree_active && tree_fr == tree_del) {
var temp = Math.floor(Math.random() * 2); //ranomize which sdrift will be selected
tree_frame = ((temp > 0) ? 23 : 24);
ci(tree_slot, tree_frame);
treeX = Math.floor(Math.random() * (bgWQQ - TREE_W));
treeY = bgHQQ + ((delay > 0) ? 30 : 0);
mi(tree_slot, treeX, treeY);
si(tree_slot, true);
tree_active = true;
tree_fr = 0;
tree_del = Math.floor(Math.random() * 40) + 50; //randomize new value for bomb creation
delay += 30;
}//**/
if(delay > 0) delay--;
//COLLISION
if(!jump && !crash) { //if not in air and not crashing
var colX1 = charX + 15;
var colX2 = (charX + charW) - 15;
var colY1 = charY + 15;
var colY2 = (charY + charH);
//tree collision
//if((colX1 < 60 || colX2 > 250) && !invinc) {
// crash = true;
// activateCaption(2, charX, charY - 15);
//}
//sdrift collision
if(sd_active) {
if((colY2 >= sdriftY) && (colY1 <= sdriftY + SDRIFT_H)) {
if((colX2 >= sdriftX) && (colX1 <= (sdriftX + sdrift_W))) {
jump = true;
state = 3;
}
}
}
//bonus life collision
if(lf_active) {
if((colY2 >= lifeY) && (colY1 <= lifeY + LIFE_H)) {
if((colX2 >= lifeX) && (colX1 <= (lifeX + LIFE_W))) {
lives++;
drawNr(lives, 1);
lf_active = false;
//si(life_slot, false);
activateCaption(3, charX, charY - 15);
life_opac = 100;
co(life_slot, life_opac);
}
}
}
//bonus collision
if(bon_active) {
if((colY2 >= bonusY) && (colY1 <= bonusY + BONUS_H)) {
if((colX2 >= bonusX) && (colX1 <= (bonusX + BONUS_W))) {
score += 10;
drawNr(score, 0);
bon_active = false;
//si(bonus_slot, false);
activateCaption(4, charX, charY - 15);
bonus_opac = 100;
co(bonus_slot, bonus_opac);
}
}
}
//super bonus collision
if(sbon_active) {
if((colY2 >= sbonusY) && (colY1 <= sbonusY + SBONUS_H)) {
if((colX2 >= sbonusX) && (colX1 <= (sbonusX + SBONUS_W))) {
score += 20;
drawNr(score, 0);
sbon_active = false;
//si(sbonus_slot, false);
activateCaption(5, charX, charY - 15);
sbonus_opac = 100;
co(sbonus_slot, sbonus_opac);
}
}
}
//stump collision
if(stump_active && !invinc) {
if((colY2 >= stumpY) && (colY1 <= stumpY + STUMP_H)) {
if((colX2 >= stumpX) && (colX1 <= (stumpX + STUMP_W))) {
crash = true;
activateCaption(1, charX, charY - 15);
}
}
}
//bomb collision
if(bmb_active && !invinc) {
if((colY2 >= bombY) && (colY1 <= bombY + BOMB_H)) {
if((colX2 >= bombX) && (colX1 <= (bombX + BOMB_W))) {
crash = true;
bomb_cur = 51;
bomb_anim_forw = true;
activateCaption(0, charX, charY - 15);
}
}
}
//tree collision
if(!invinc) {
var z = 0;
for(z = 0; z < 4; z++) {
if(trees[z][0] == 1) { //if tree active
if((colY2 >= trees[z][2] + 5) && (colY1 <= ((trees[z][2] + TREE_H) - 10))) {
if((colX2 >= trees[z][1] + 10) && (colX1 <= ((trees[z][1] + TREE_W)-10))) {
crash = true;
activateCaption(2, charX, charY - 15);
}
}
}
}
}
/*/
if(tree_active && !invinc) {
if((colY2 >= treeY + 5) && (colY1 <= ((treeY + TREE_H) - 10))) {
if((colX2 >= treeX + 10) && (colX1 <= ((treeX + TREE_W)-10))) {
crash = true;
activateCaption(2, charX, charY - 15);
}
}
}//**/
//crash occured
if(crash) {
state = 6;
cur_frame = crash_start;
lives--;
drawNr(lives, 1);
if(lives == 0) { //set game over
si(go_slot, true);
j = 25;
}
}
}
//invinc update
if(invinc && (inv_fr < inv_del)) inv_fr++;
else {invinc = false; snow_inv_active = false; si(char_slot, true); inv_fr = 0;}
//scroll update
if(scroll < max_scroll && !crash && ((k&3) == 1)) scroll++;
//level change
if(score >= lvchge) {
nxtLvl();
lvchge += 250;
}
//take care of trees
//createTree();
if(tree_del > 0) tree_del--;
handleTrees();
//take care of captions
handleCaptions();
//PAINT
if(lf_active) { //paint life bonus
if(lifeY >= -LIFE_H) {
lifeY -= scroll;
mi(life_slot, lifeX, lifeY);
}
else lf_active = false; //out of screen: die and stop painting
}
else {
life_fr++; //increase frame counter
if(life_opac > 0) {
lifeY -= scroll;
life_opac -= 4;
co(life_slot, life_opac);
mi(life_slot, lifeX, lifeY);
}
else si(life_slot, false);
}
if(sbon_active) { //paint super bonus
if(sbonusY >= -SBONUS_H) {
sbonusY -= scroll;
mi(sbonus_slot, sbonusX, sbonusY);
}
else sbon_active = false; //out of screen: die and stop painting
}
else {
sbon_fr++; //increase frame counter
if(sbonus_opac > 0) {
sbonusY -= scroll;
sbonus_opac -= 4;
co(sbonus_slot, sbonus_opac);
mi(sbonus_slot, sbonusX, sbonusY);
}
else si(sbonus_slot, false);
}
if(bon_active) { //paint bonus
if(bonusY >= -BONUS_H) {
bonusY -= scroll;
if(k&1 == 1) { //bonus anim
if(bon_cur < bon_end) bon_cur++;
else bon_cur = bon_start;
ci(bonus_slot, bon_cur) ;
}
mi(bonus_slot, bonusX, bonusY);
}
else bon_active = false; //out of screen: die and stop painting
}
else {
bon_fr++; //increase frame counter
if(bonus_opac > 0) {
bonusY -= scroll;
bonus_opac -= 4;
co(bonus_slot, bonus_opac);
mi(bonus_slot, bonusX, bonusY);
}
else si(bonus_slot, false);
}
if(stump_active) { //paint stump
if(stumpY >= -STUMP_H) {
stumpY -= scroll;
mi(stump_slot, stumpX, stumpY);
}
else { //out of screen: die and stop painting
stump_active = false;
si(stump_slot, false);
}
}
else stump_fr++; //increase frame counter
if(bmb_active) { //paint bomb
if(bombY >= -BOMB_H) {
bombY -= scroll;
if(k&1 == 1) { //bomb animation
if(bomb_cur > 31) { //boom
if(bomb_cur < 54 && bomb_anim_forw) bomb_cur++; //anim goes forw
else bomb_anim_forw = false;
if(bomb_cur > 51 && !bomb_anim_forw) bomb_cur--; //anim goes backw and ends
else if(!bomb_anim_forw && bomb_cur == 51) si(bomb_slot, false);
}
else { //normal animation
if(bomb_cur < 31) bomb_cur++;
else bomb_cur = 30;
}
ci(bomb_slot, bomb_cur);
}
mi(bomb_slot, bombX, bombY);
}
else { //out of screen: die and stop painting
bmb_active = false;
si(bomb_slot, false);
}
}
else bomb_fr++; //increase frame counter
if(sd_active) { //paint sdrift
if(sdriftY >= -90) {
sdriftY -= scroll;
mi(sdrift_slot, sdriftX, sdriftY);
}
else { //out of screen: die and stop painting
sd_active = false;
si(sdrift_slot, false);
}
}
else sd_fr++; //increase frame counter
/*/
if(tree_active) { //paint tree
if(treeY >= -TREE_H) {
treeY -= scroll;
mi(tree_slot, treeX, treeY);
}
else { //out of screen: die and stop painting
tree_active = false;
si(tree_slot, false);
}
}
else tree_fr++; //increase frame counter
//**/
if(lv_active) { //paint level caption while level changes
if (lvY >= -35) {
lvY -= (scroll - 1);
mi(level_slot, 95, lvY);
mi(lv_ds_slot, 197, lvY - 1);
}
else {si(level_slot, false); si(lv_ds_slot, false);}
}
/**/
//invincible
if(!snow_inv_active) {
if(snow_inv_opac > 0) {
snow_inv_opac -= 5;
co(snow_inv_slot, snow_inv_opac);
}
}
ci(char_slot, cur_frame);
mi(char_slot, charX, charY);
return true;
//else return false;
}
//------------------------------------------------------------
//additional functions
//draws current score/lives number/level number on the screen
//type: 0-score, 1-life, 2-levnum
function drawNr(number, type) {
var i = 0;
var temp = number;
var dig_no = 0;
var count_no = 0;
var div = 0;
var slot = 0;
var x = 0;
if(temp >= 10000) {count_no = 5; div = 10000;}
else if(temp >= 1000) {count_no = 4; div = 1000;}
else if(temp >= 100) {count_no = 3; div = 100;}
else if(temp >= 10) {count_no = 2; div = 10;}
else {count_no = 1; div = 1;}
if(type == 0) {slot = sc_ds_slot; x = 53}
else if(type == 1) {slot = lf_ds_slot; x = 298}
else if(type == 2) {slot = lv_ds_slot; x = 197}
for(i = 0; i < count_no; i++) {
if(type != 2) {
ci(slot + i, 59+(Math.floor(temp/div)));
mi(slot + i, x + (i * 11), 3);
}
else {
ci(slot + i, 70+(Math.floor(temp/div)));
mi(slot + i, x + (i * 28), lvY - 1);
}
si(slot + i, true);
temp %= div;
div /= 10;
}
}
function nxtLvl() {
levnum++;
max_scroll++;
lvY = bgHQQ;
mi(level_slot, 95, lvY);
si(level_slot, true);
lv_active = true;
drawNr(levnum + 1, 2);
}
/*/
function createTree() {
var x = 0;
for(x = 0; x < 4; x++) { //check all trees
if(trees[x][0] == 0 && trees_no < 3) { //tree not active
var temp = Math.floor(Math.random() * 2); //ranomize which sdrift will be selected
trees[x][4] = ((temp > 0) ? 23 : 24);
ci(trees[x][3], trees[x][4]);
trees[x][1] = Math.floor(Math.random() * (bgWQQ - TREE_W));
trees[x][2] = bgHQQ + ((delay > 0) ? delay : 0);
mi(trees[x][3], trees[x][1], trees[x][2]);
si(trees[x][3], true);
trees[x][0] = 1;
delay += 100;
trees_no++;
}
}
}//**/
//handles tree generation and painting through the game
//var tree_del = 0;
function handleTrees() {
var x = 0;
for(x = 0; x < 4; x++) { //check all trees
if(trees[x][0] == 1) { //tree not active
if(trees[x][2] > -TREE_H) { //act trees pos and paint them
trees[x][2] -= scroll;
mi(trees[x][3], trees[x][1], trees[x][2]);
}
else trees[x][0] = 0;
//trees_no--;
}
else if(trees[x][0] == 0 && tree_del == 0) { //tree not active
var temp = Math.floor(Math.random() * 2); //ranomize which sdrift will be selected
trees[x][4] = ((temp > 0) ? 23 : 24);
ci(trees[x][3], trees[x][4]);
trees[x][1] = Math.floor(Math.random() * (bgWQQ - TREE_W));
trees[x][2] = bgHQQ + ((delay > 0) ? delay : 0);
mi(trees[x][3], trees[x][1], trees[x][2]);
si(trees[x][3], true);
trees[x][0] = 1;
//delay += 60;
tree_del = 50;
//trees_no++;
//alert(delay);
}
}
}
//creates all trees in the beginning
/*/
function createTrees() {
var x = 0;
var temp = 0;
for(x = 0; x < 56; x+=4) { //check all trees
//randomize x(left or right part of screen)
if((no_trees&1) == 0) trees[x] = (Math.floor(Math.random() * (60 - TREE_W)));
else trees[x] = (Math.floor(Math.random() * (90 - TREE_W)) + 240);
trees[x+1] = Math.floor(Math.random() * 11) + (Math.floor(no_trees>>1) * 90); //set Y
trees[x+2] = cur_tree_slot; //set slot no
temp = Math.floor(Math.random() * 2); //random image(left or rihgt)
if (temp == 0) trees[x+3] = 23;
else if(temp == 1) trees[x+3] = 24;
ci(cur_tree_slot, trees[x+3]);
mi(cur_tree_slot, trees[x], trees[x+1]); //set image
si(cur_tree_slot, true); //show image
cur_tree_slot--; //tree slot goes down
no_trees++;
}
}
//handles tree generation and painting through the game
function handleTrees() {
var x = 0;
var temp = 0;
for(x = 0; x < 56; x+=4) { //check all trees
if(trees[x+1] > -TREE_H) { //act trees pos and paint them
trees[x+1] -= scroll;
mi(trees[x+2], trees[x], trees[x+1]);
}
else { //create tree on the bottom of the screen
var y = 0;
if(trees[x] < 70) trees[x] = (Math.floor(Math.random() * (60 - TREE_W)));
else trees[x] = (Math.floor(Math.random() * (90 - TREE_W)) + 240);
trees[x+1] = Math.floor(Math.random() * 11) + 520; //set Y
temp = Math.floor(Math.random() * 2); //random image(left or right)
if (temp == 0) ci(trees[x+2], 23);
else if(temp == 1) ci(trees[x+2], 24);
trees[x+2] = 28; //new tree slot is the lowest no possible
for(y = 0; y < 56; y+=4) { //all slot numbers of all trees++;
if((y+2)!=(x+2)) { //except the tree we've just created
trees[y+2]++;
ci(trees[y+2], trees[y+3]);
mi(trees[y+2], trees[y], trees[y+1]);
}
}
}
}
}//**/
//nr-number of caption to be activated
function activateCaption(nr, x, y) {
captions[nr][0] = 1;
captions[nr][1] = x;
captions[nr][2] = y;
captions[nr][4] = 100;
mi(captions[nr][3], captions[nr][1], captions[nr][2]);
si(captions[nr][3], true);
}
function handleCaptions() {
var i = 0;
for(i = 0; i < 6; i++) {
if(captions[i][0] == 1) { //caption acitve
if(captions[i][2] >= -20) {
captions[i][2] -= scroll - 2;
if(captions[i][4] > 0) {
captions[i][4] -= 4;
co(captions[i][3], captions[i][4]);
}
mi(captions[i][3], captions[i][1], captions[i][2]);
}
else captions[i][0] = 0; //deactivate
}
}
}//**/
// ===============================================================================
// ===============================================================================
// ===============================================================================
// ===============================================================================
// ===============================================================================
// ===============================================================================
// move image
function mi(slot, lx, ly) {
if ((slot < maxslotsQQ) && (slot >= 0)) {
imgsQQ[slot].style.left = (lx-sprdataQQ[sbQQ[slot]][0])+pxtxtQQ;
imgsQQ[slot].style.top = (ly-sprdataQQ[sbQQ[slot]][1])+pxtxtQQ;
}
}
function sch() {
if (mg() == true) window.setTimeout(mgtxtQQ, 40);
else cm(0);
}
// show image
function si(slot, bool) {
var tmpb;
tmpb = new Boolean(bool);
if ((slot < maxslotsQQ) && (slot >= 0)) {
imgsQQ[slot].style.display = ((tmpb == true) ? siinliQQ : sinoneQQ);
}
}
// clip image
function ci(slot, spr) {
if ((spr < sprdataQQ.length) && (slot < maxslotsQQ) && (slot >= 0)) {
imgsQQ[slot].style.clip = rcttxQQ+sprdataQQ[spr][1]+pxspcQQ+(sprdataQQ[spr][0]+sprdataQQ[spr][2])+pxspcQQ+(sprdataQQ[spr][1]+sprdataQQ[spr][3])+pxspcQQ+sprdataQQ[spr][0]+pxentQQ;
sbQQ[slot] = spr;
}
}
//set obj opacity
function co(slot, op) {
var o;
if ((slot < maxslotsQQ) && (slot >= 0)) {
o = imgsQQ[slot].style;
o.opacity = (op * 0.01);
o.MozOpacity = (op * 0.01);
o.KhtmlOpacity = (op * 0.01);
o.filter = "alpha(opacity=" + op + ")";
}
}
// change mode
function cm(nm) {
var i;
if ((nm >= 0) && (nm < 6) && (nm != actQQ)) {
if (nm != 3) {
if (actQQ == 0) {
document.getElementById(mnutxtQQ).style.visibility = hidtxtQQ;
zQQ.style.backgroundImage = sinoneQQ;
}
else if (actQQ == 2) {
zQQ.onmousemove = null;
zQQ.onmouseup = null;
zQQ.onmousedown = null;
zQQ.onmouseover = null;
zQQ.onmouseout = null;
for (i = 0; i < maxslotsQQ; i++) si(i, false);
}
else if (actQQ == 5) {
document.getElementById(adverQQ).style.display = sinoneQQ;
}
}
if (nm == 0) {
zQQ.style.backgroundImage = urltxtQQ+bgimglnkQQ+end1txtQQ;
document.getElementById(mnutxtQQ).style.visibility = vistxtQQ;
}
else if (nm == 3) {
window.open('../index.php', '_blank');
nm = actQQ;
}
else if (nm == 2) {
ig();
zQQ.onmousemove = mm;
zQQ.onmouseover = m_o;
zQQ.onmouseup = m_up;
zQQ.onmousedown = m_dwn;
zQQ.onmouseout = m_u;
//document.getElementById(bodytxtQQ).backgroundColor = whttxtQQ;
sch();
}
else if (nm == 5) {
document.getElementById(adverQQ).style.display = siinliQQ;
window.setTimeout(cm2txQQ, 5000);
}
else window.setTimeout(cmtxtQQ, 2000);
actQQ = nm;
}
}
// mouse down
function m_dwn() {
isCl = true;
}
// mouse up
function m_up() {
isCl = false;
}
/*/
function cm(nm) {
var i;
if ((nm >= 0) && (nm < 5) && (nm != actQQ)) {
//alert("actQQ: "+actQQ+", nm: "+nm);
if (actQQ == 0) {
document.getElementById(mnutxtQQ).style.visibility = hidtxtQQ;
zQQ.style.backgroundImage = sinoneQQ;
}
if (actQQ == 2) {
zQQ.onmousemove = null;
zQQ.onmouseover = null;
zQQ.onmouseout = null;
for (i = 0; i < maxslotsQQ; i++) si(i, false);
}
if (nm == 0) {
zQQ.style.backgroundImage = urltxtQQ+bgimglnkQQ+end1txtQQ;
document.getElementById(mnutxtQQ).style.visibility = vistxtQQ;
}
else if (nm == 2) {
ig();
zQQ.onmousemove = mm;
zQQ.onmouseover = m_o;
zQQ.onmouseout = m_u;
sch();
}
else window.setTimeout(cmtxtQQ, 2000);
actQQ = nm;
}
}//**/
// mousemove
function mm(e) {
var tmpX;
var tmpY;
var tmpE;
if (!e) tmpE = window.event;
else tmpE = e;
//alert('mm();');
tmpX = (tmpE.clientX - iLeft);
tmpY = (tmpE.clientY - iTop - ydispQQ);
if (tmpX < 0) tmpX = 0;
if (tmpY < 0) tmpY = 0;
if (tmpX > bgWQQ) tmpX = bgWQQ;
if (tmpY > (bgHQQ+ydispQQ)) tmpY = (bgHQQ + ydispQQ);
mX = tmpX;
mY = tmpY;
}
// mouse click
function mck(obj) {
//alert('id: "'+obj.id+'"');
cm(parseInt(obj.id.substring(3,4)));
}
// switch classes
function sc(obj, nc) {
if (obj.className != nc) obj.className = nc;
}
function m_o() {
isM = true;
}
function m_u() {
isM = false;
isCl = false;
}
/*/
function m_u() {
isM = false;
}//**/
function isWebKit() {
return new RegExp("AppleWebKit/").test(navigator.userAgent);
}
function isMobile() {
return (isWebKit() && new RegExp("Mobile/").test(navigator.userAgent));
}
function mobileDevice() {
if (!isMobile()) {
return null;
}
var fields = new RegExp("(Mozilla/5.0\\()([^;]+)").exec(navigator.userAgent);
if (!fields || fields.length < 3) {
return null;
}
return fields[2];
}
function wypas(y, h) {
var i, z, t, locB;
//alert(''+y);
//document.getElementById((pbltxtQQ+i)).style.display = siinliQQ;
t = parseInt(h);
document.getElementById(mnutxtQQ).style.top = (y+pxtxtQQ);
if (t != 0) {
if (y > 250) {
z = Math.floor(((800 - y) / 46));
document.getElementById((pbltxtQQ+z)).style.display = siinliQQ;
}
if (y < 250) {
for (i = 0; i < 12; i++) {
locB = document.getElementById((pbltxtQQ+i));
locB.style.display = sinoneQQ;
document.getElementById(pbrtxtQQ).style.display = sinoneQQ;
//locB.style.left = (103+(i*10));
}
t = 0;
}
}
if (y > 0) window.setTimeout(wyptxt1QQ+(y-15)+coltxQQ+(t)+wyptxt2QQ, 30);
else document.getElementById(mnutxtQQ).style.top = (0+pxtxtQQ);
}
// start
function s() {
var x = document.getElementById(bodytxtQQ);
var y = document.getElementById(htmltxtQQ);
var locB, locL, locT, locW, locH;
var i, j;
if (navigator.appname == nsQQ) {
netQQ = true;
}
else netQQ = false;
if (netQQ) {
strArrayQQ[0] = (strPartsQQ[0] + strPartsQQ[1]);
}
else {
strArrayQQ[0] = (strPartsQQ[2] + strPartsQQ[3]);
}
if (x != null) {
x.innerHTML = strArrayQQ[0];
document.title = gtQQ;
zQQ = document.getElementById(mnamQQ);
if (zQQ == null) alert(dbg0txtQQ);
else {
y.style.overflowX = hidtxtQQ;
y.style.overflowY = hidtxtQQ;
zQQ.style.backgroundImage = urltxtQQ+bgimglnkQQ+end1txtQQ;
zQQ.style.backgroundColor = whttxtQQ;
j = nullstrQQ;
for (i = 0; i < maxslotsQQ; i++) j += imgcodeQQ[0] + imgcodeQQ[1] + i + imgcodeQQ[2];
zQQ.innerHTML = j + gamestuffQQ;
for (i = 0; i < maxslotsQQ; i++) {
imgsQQ[i] = document.getElementById((imgcodeQQ[1]+i));
imgsQQ[i].style.zIndex = (maxslotsQQ - i - 1);
}
locB = window.document.body;
locL = locB.clientLeft;
locT = locB.clientTop;
locW = locB.clientWidth;
locH = locB.clientHeight;
if ((((nullstrQQ+locL).toString()).toLowerCase()) == udQQ) locL = 0;
if ((((nullstrQQ+locT).toString()).toLowerCase()) == udQQ) locT = 0;
if ((((nullstrQQ+locW).toString()).toLowerCase()) == udQQ) locW = bgWQQ;
if ((((nullstrQQ+locH).toString()).toLowerCase()) == udQQ) locH = bgHQQ;
iClLeft = locL = parseInt(locL);
iTop = locT = parseInt(locT);
iWidth = locW = parseInt(locW);
iHeight = locH = parseInt(locH);
iHalfW = (iWidth >> 1);
iHalfH = (iHeight >> 1);
zQQ.style.position = abstxtQQ;
iLeft = (((locL + locW) >> 1) - (bgWQQ >> 1));
zQQ.style.left = iLeft + pxtxtQQ;
zQQ.style.top = locT + ydispQQ + pxtxtQQ;
iClWidth = bgWQQ;
iClHeight = bgHQQ;
//zQQ.style.height = '356px';
spimgQQ.src = spimglnkQQ; // preaload sprite image
blimgQQ.src = blimglnkQQ; // preaload ball image
brimgQQ.src = brimglnkQQ; // preaload bar image
for (i = 0; i < sprdataQQ.length; i++) {
if (sprdataQQ[i].length != 4) {
alert(sperrrQQ+i);
i = sprdataQQ.length + 1;
}
}
document.getElementById(mnutxtQQ).style.position = abstxtQQ;
document.getElementById(mnutxtQQ).style.top = (300+pxtxtQQ);
document.getElementById(mnutxtQQ).style.left = (60+pxtxtQQ);
window.setTimeout(wyptxt1QQ+(800)+coltxQQ+(1)+wyptxt2QQ, 100);
document.getElementById(pbrtxtQQ).style.display = siinliQQ;
document.getElementById(advimgQQ).style.display = siinliQQ;
document.getElementById(advimgQQ).style.position = statxtQQ
for (i = 0; i < 12; i++) {
locB = document.getElementById((pbltxtQQ+i));
//locB.style.display = siinliQQ;
//locB.style.left = (103+(i*10));
locB.style.left = ((103+(i*10))+pxtxtQQ);
}
// debug info
//alert(dbginfoQQ[0]+iClLeft+dbginfoQQ[1]+iTop+dbginfoQQ[2]+iWidth+dbginfoQQ[3]+iHeight+dbginfoQQ[4]+iHalfW+dbginfoQQ[5]+iHalfH);
}
}
}