//worldPosition, yPosition, creatureType, movementType, patternToUse
kLevWorldPos=0; kLevYpos=1; kLevCreatureType=2; kLevMovementType=3; kLevPatternToUse=4;

//baddie types
kBadCrab = 0; kBadUfo = 1;

//movement types
kMoveSine = 1; kMovePat = 0;

level1 = new Array(
	new Array(20,	40, 	2,			kMovePat,	0),
	new Array(50,	10,		3, 	 		kMoveSine,	0),
	new Array(50,	180,	3,  		kMoveSine,	0),
	new Array(50,	110,	2,  		kMoveSine,	0),
	new Array(90,	30,		2,  		kMoveSine,	0),
	new Array(105,	40, 	kBadCrab,	kMoveSine,	0),
	new Array(125,	140, 	kBadCrab,	kMoveSine,	0),
	new Array(155,	50, 	kBadCrab,	kMoveSine,	0),
	new Array(250,	50, 	kBadCrab, 	kMoveSine,	0),
	new Array(310,	100,	kBadUfo, 	kMovePat,	0),
	new Array(320,	100, 	kBadUfo, 	kMovePat,	0),
	new Array(330,	100, 	kBadUfo, 	kMovePat,	0),
	new Array(340,	100, 	kBadUfo, 	kMovePat,	0),
	new Array(430,	0, 		kBadCrab, 	kMovePat,	1),
	new Array(440,	10, 	kBadCrab,	kMovePat,	1),
	new Array(450,	20, 	kBadCrab,	kMovePat,	1),
	new Array(460,	30, 	kBadCrab, 	kMovePat,	1),
	new Array(500,	10,		2,  		kMoveSine,	0),
	new Array(510,	180,	2,  		kMoveSine,	0),
	new Array(520,	140,	2,  		kMoveSine,	0),
	new Array(530,	30,		2,  		kMoveSine,	0),
	new Array(540,	110,	2,  		kMoveSine,	0),
	new Array(620,	10,		kBadUfo, 	kMovePat,	0),
	new Array(630,	10, 	kBadUfo, 	kMovePat,	0),
	new Array(640,	10, 	kBadUfo, 	kMovePat,	0),
	new Array(650,	10, 	kBadUfo, 	kMovePat,	0),
	new Array(660,	10, 	kBadUfo, 	kMovePat,	0));
	
level1length = 830;

// pattern format: patname1y = yOffset, numFramesToKeepHeading.... , -99 (teminator)
gamePatterns = new Array(
	new Array(3,7, 2,6, 1,2, -2,6, -3,8, -5,15, 3,7, 2,6, 3,7,4,5, -99),
	new Array(-2,20,-1,10, 2,10 , 0,4 ,-2,8, -4,16 ,2, 30, -99));


function Map(pLevelArray, pLength){
	this.group = Array();
	this.level = pLevelArray;
	this.length = pLength;
	this.allCreatures = new Array(CreatureCrab, CreatureUFO, CreatureBlue, CreatureRock);
	this.checkLevel = function(pLevPos){
		for(q=0;q<this.level.length;q++){
			if(this.level[q][kLevWorldPos]>pLevPos){
				break;
			}
			else if(this.level[q][kLevWorldPos]==pLevPos){
				this.group[this.group.length]=new this.allCreatures[this.level[q][kLevCreatureType]](TheGame.screenWidth+50,this.level[q][kLevYpos],this.group.length, $("Screen"));
				this.group[this.group.length-1].moveType=this.level[q][kLevMovementType];
				this.group[this.group.length-1].pattern=this.level[q][kLevPatternToUse];
				this.group[this.group.length-1].init();
			}
		}
	}
	this.update=function(){
		for(q=0;q<this.group.length;q++){
			if(this.group[q].status!=0){
				this.group[q].move();
				this.group[q].draw();
			}
		}
	}
}