Make the Chess960 storage/test a bit more efficient.
[remoteglot] / Position.pm
index 8a42a6f..17c8512 100644 (file)
@@ -143,6 +143,7 @@ sub to_json_hash {
        delete $json->{'white_castle_k'};
        delete $json->{'white_castle_q'};
        delete $json->{'time_since_100move_rule_reset'};
+       delete $json->{'chess960'} if (!$json->{'chess960'});
        if ($json->{'player_w'} =~ /^base64:(.*)$/) {
                $json->{'player_w'} = MIME::Base64::decode_base64($1);
        }
@@ -218,12 +219,10 @@ sub make_move {
        }
        $np->{'player_w'} = $pos->{'player_w'};
        $np->{'player_b'} = $pos->{'player_b'};
+       $np->{'chess960'} = $pos->{'chess960'};
        if (exists($pos->{'start_fen'})) {
                $np->{'start_fen'} = $pos->{'start_fen'};
        }
-       if (exists($pos->{'chess960'})) {
-               $np->{'chess960'} = $pos->{'chess960'};
-       }
        if (defined($pretty_move)) {
                $np->{'last_move'} = $pretty_move;
        } else {
@@ -245,11 +244,6 @@ sub make_pretty_move {
        return ($pos, $uci_move);
 }
 
-sub is_chess960 {
-       my ($pos) = shift;
-       return (defined($pos->{'chess960'}) && $pos->{'chess960'});
-}
-
 sub _pos_to_square {
         my ($row, $col) = @_;
         return sprintf("%c%d", ord('a') + $col, 8 - $row);