|  | @@ -310,7 +310,7 @@ pub fn generate_legal_moves_old(game: &mut Game, side: Side) -> Vec<Move> {
 | 
	
		
			
				|  |  |      moves.into_iter().filter(check_legality).collect::<Vec<Move>>()
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -fn possibly_pinned_pieces(king: Bitboard, friends: Bitboard, diag_enemies: Bitboard, straight_enemies: Bitboard, all_enemies: Bitboard) -> [Bitboard; 8] {
 | 
	
		
			
				|  |  | +fn pinned_rays(king: Bitboard, friends: Bitboard, diag_enemies: Bitboard, straight_enemies: Bitboard, all_enemies: Bitboard) -> [Bitboard; 8] {
 | 
	
		
			
				|  |  |      let check_ray = |ray_func: fn(Bitboard) -> Bitboard, diagonal: bool| -> Bitboard {
 | 
	
		
			
				|  |  |          let mut pos = king;
 | 
	
		
			
				|  |  |          let mut ray = 0;
 | 
	
	
		
			
				|  | @@ -360,7 +360,7 @@ pub fn generate_legal_moves(game: &mut Game, side: Side, captures_only: bool) ->
 | 
	
		
			
				|  |  |      let straight_enemies = game.queens(!side) | game.rooks(!side);
 | 
	
		
			
				|  |  |      let diag_enemies = game.queens(!side) | game.bishops(!side);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    let pin_rays = possibly_pinned_pieces(king, game.get_all_side(side), diag_enemies, straight_enemies, game.get_all_side(!side));
 | 
	
		
			
				|  |  | +    let pin_rays = pinned_rays(king, game.get_all_side(side), diag_enemies, straight_enemies, game.get_all_side(!side));
 | 
	
		
			
				|  |  |      let possible_pins = king | pin_rays.iter().fold(0, |a, b| a | b);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      let check_legality = |m: &Move| {
 |