// MTE MK1 (la Churrera) v5.0
// Copyleft 2010-2014, 2020 by the Mojon Twins

// CAVAR CON PALA
if (!cavando){
	
rda = cpc_TestKey (KEY_BUTTON_A);
if (rda) {
	if (!cavando && !p_killme) {
		gpx += 7;
		gpy += 7;
		gpx &= 0xf0; 
		gpy &= 0xf0;
		p_y = gpy << 6; 
		p_x = gpx << 6;

		// Guardar coordenadas del hoyo (en tiles)
		if (p_facing < 4) {
			x_hoyo = (gpx >> 4) + 1 - (p_facing); 
			y_hoyo = (gpy >> 4);
		}else{
			y_hoyo = (gpy >> 4) - 1 + (p_facing-4); 
			x_hoyo = (gpx >> 4);
		}

		// Comprueba si el tile es el suelo (1) y por tanto se puede cavar en el.
		rdb = qtile (x_hoyo, y_hoyo);
		if (rdb && rdb < 4) {
			// p_vx = p_vy = 0;
			// frames_cavando = 8;
			#asm
			ld a, 0
			ld (_p_vx), a
			ld (_p_vy), a
			ld a, 8
			ld (_frames_cavando), a
			#endasm
			cavando = 18*rdb; // Cavando valdrá 18,36 o 54 según el tile sobre el que cavemos.
			// if (power_type == 13) cavando -= 12; // SUPER PALA, DISMINUYE EL TIEMPO DE EXCAVACION
			p_subframe = 3;
		}else{
			// cavando = 0;
			// frames_cavando = 0;
			#asm
			call _reset_cavando
			#endasm
		}
	}
}

// ANIMACION PALA Y CAMBIO DE TILES
// de 18 a 0 cavando hoyo normal
// de 39 a 20 tapando un hoyo
// de 59 a 40 desenterrendo un objeto

}else {  // if (cavando)
	
	cavando--;
	if (power_type == 13) cavando--; //Acelera la pala
	_x = x_hoyo; _y = y_hoyo; _t = 0;
	if (cavando == 10 || cavando == 24 || cavando == 44){
		_t = 33;
	}
	if (cavando == 0){ // cavando hoyo normal
		_t = 2;
		#asm
			call _reset_cavando
		#endasm
	}
	if (cavando == 20){ // tapando un hoyo
		_t = 1; 
		#asm
			call _reset_cavando
		#endasm
	}
	if (cavando == 40){ // desenterrendo un objeto
		if (enemigos_matados > 4 && p_objs > 1 && !bonus_time && !power_time){ // Cada n enemigos sale un power up (EXCEPTO EN BONUS Y MIENTRAS TENGAMOS OTRO POWER UP O PICADURA)
			enemigos_matados = 0;
			power_x = _x; power_y = _y;
			if (current_screen_pow) { // Si hay power up predeterminado, se elige este primero
				_t = current_screen_pow;
				current_screen_pow = 0;
			} else _t = 41 + (rand ()%3);
			
			power_t_desaparece = timer_t - 4;
			
			p_objs --;
			if (p_objs == 0) pintar_llave();
			
			
			
		}else 
			_t = 32;

		#asm
			call _reset_cavando
		#endasm
		
	}
	if (_t) {
		_n = behs[_t];
		update_tile ();
	}
}



///// PLAYER SOBRE TILES INTERACTIVOS
if(half_life){
_x = (gpx+7) >> 4;
_y = (gpy+7) >> 4;
rdb = attr (_x, _y);

if (rdb){ // SI ESTAMOS SOBRE UN TILE
	switch (rdb){
		// COGER GEMAS
		case 3:
			print_suelo();
			p_objs --;
			score += 50;
			if (p_objs == 0) pintar_llave();
			enemigos_matados++;
			// METER FX 
			canal_fx = 0; nota_fx = 67;
			AY_PLAY_SOUND (2); 
		break;
		// HOYOS Y PINCHOS
		case 1:
		case 9:
			if (!tocado && p_estado == EST_NORMAL) {
				#asm
				ld a, 1
				ld (_en_hoyo), a
				ld (_tocado), a
				ld a, 36
				ld (_p_killme), a
				#endasm
				gpx = _x << 4;
				gpy = _y << 4;
				AY_PLAY_SOUND (4); 
			}
		break;
		// COGER LLAVE
		case 4:
			tengo_llave = 1;
			print_suelo();
			// METER FX 
			canal_fx = 0; nota_fx = 67;
			AY_PLAY_SOUND (9); 
		break;
		// SALIR DE PANTALLA CON LA LLAVE (TOCA ESCALERAS)
		case 6:
			if(tengo_llave){
				_t = 0; pintar_borrar_flecha();
				cpc_UpdateNow (0);
				zone_clear();
				n_pant++;
				if (n_pant == MAX_LEVELS){ playing = 0; success = 1; }
				#asm
					jp _salir_de_rutinas
				#endasm
			}
		break;
		// TELEPORT
		case 10:
			if (teleportable){
				p_killme = 120;	
				gpx = _x << 4;
				gpy = _y << 4;
				teleportable = 0;
				// METER FX 
				canal_fx = 0; nota_fx = 60;
				AY_PLAY_SOUND (10); 
			}
		break;
		
		/// POWER UPS ///
		case 11:
		case 12:
		case 13:
		case 14:
			power_type = rdb;
			if (rdb == 12) cpc_SetColour (0, 0x00); // Reloj
			if (rdb == 14) { p_estado = EST_PARP; p_ct_estado = 1;} // Pocion
			if (rdb == 11) {  // Botas
				gpx &= 0xfe;  // Ajustar a un pixel par, para que se pare al pasar por los multiplos de 16
				gpy &= 0xfe;
				p_y = gpy << 6; 
				p_x = gpx << 6;
			}
			power_time = 10;
			print_suelo();
			// METER FX 
			canal_fx = 2; nota_fx = 67;
			AY_PLAY_SOUND (3); 
		break;
	}
} else teleportable = 1;

}


// ANIMAR TELETRANSPORTE
aux2 = maincounter%7;
// if (tele_x1){
	// if(maincounter%7 == 0){
		// _t = 46 + half_life; _n = 10; 
		// _x = tele_x1;
		// _y = tele_y1;
		// update_tile ();
		// _x = tele_x2;
		// _y = tele_y2;
		// update_tile ();
		#asm
			ld a, (_tele_x1)
			or a
			jr z, _teleport_anim_done
			
			ld a, (_aux2)
			or a
			jr nz, _teleport_anim_done
			
			ld a, (_half_life)
			ld b, a
			ld a, 46
			add b
			ld (__t), a
			ld a, 10
			ld (__n), a
			ld a, (_tele_x1)
			ld (__x), a
			ld a, (_tele_y1)
			ld (__y), a
			call _update_tile
			ld a, (_tele_x2)
			ld (__x), a
			ld a, (_tele_y2)
			ld (__y), a
			call _update_tile
			
			._teleport_anim_done
		#endasm
	// }
// }

if (tengo_llave){
	// if (!enem_actual) _t = 0; else _t = 34;
	#asm
		ld a, (_enem_actual)
		or a
		jr z, _otro_estado_flecha
		ld a, 34
		jr _lista_la_flecha
		._otro_estado_flecha
		ld a, 0
		._lista_la_flecha
		ld (__t), a
	#endasm
	
	pintar_borrar_flecha();
}


#asm
	._salir_de_rutinas
#endasm








