diff --git a/Userland/Games/Chess/ChessWidget.cpp b/Userland/Games/Chess/ChessWidget.cpp index 6b8455e5f8..4c34b056b8 100644 --- a/Userland/Games/Chess/ChessWidget.cpp +++ b/Userland/Games/Chess/ChessWidget.cpp @@ -376,7 +376,7 @@ void ChessWidget::keydown_event(GUI::KeyEvent& event) update(); } -static DeprecatedString set_path = DeprecatedString("/res/icons/chess/sets/"); +static constexpr StringView set_path = "/res/icons/chess/sets/"sv; static RefPtr get_piece(StringView set, StringView image) { @@ -444,11 +444,11 @@ void ChessWidget::set_board_theme(StringView name) // FIXME: Add some kind of themes.json // The following Colors have been taken from lichess.org, but i'm pretty sure they took them from chess.com. if (name == "Beige") { - m_board_theme = { "Beige", Color::from_rgb(0xb58863), Color::from_rgb(0xf0d9b5) }; + m_board_theme = { "Beige"sv, Color::from_rgb(0xb58863), Color::from_rgb(0xf0d9b5) }; } else if (name == "Green") { - m_board_theme = { "Green", Color::from_rgb(0x86a666), Color::from_rgb(0xffffdd) }; + m_board_theme = { "Green"sv, Color::from_rgb(0x86a666), Color::from_rgb(0xffffdd) }; } else if (name == "Blue") { - m_board_theme = { "Blue", Color::from_rgb(0x8ca2ad), Color::from_rgb(0xdee3e6) }; + m_board_theme = { "Blue"sv, Color::from_rgb(0x8ca2ad), Color::from_rgb(0xdee3e6) }; } else { set_board_theme("Beige"sv); } @@ -643,7 +643,7 @@ ErrorOr ChessWidget::export_pgn(Core::Stream::File& file) const TRY(file.write(DeprecatedString::formatted("[White \"{}\"]\n", m_side == Chess::Color::White ? player1 : player2).bytes())); TRY(file.write(DeprecatedString::formatted("[Black \"{}\"]\n", m_side == Chess::Color::Black ? player1 : player2).bytes())); - TRY(file.write(DeprecatedString::formatted("[Result \"{}\"]\n", Chess::Board::result_to_points_deprecated_string(m_board.game_result(), m_board.turn())).bytes())); + TRY(file.write(DeprecatedString::formatted("[Result \"{}\"]\n", Chess::Board::result_to_points_string(m_board.game_result(), m_board.turn())).bytes())); TRY(file.write("[WhiteElo \"?\"]\n"sv.bytes())); TRY(file.write("[BlackElo \"?\"]\n"sv.bytes())); TRY(file.write("[Variant \"Standard\"]\n"sv.bytes())); @@ -664,9 +664,9 @@ ErrorOr ChessWidget::export_pgn(Core::Stream::File& file) const } TRY(file.write("{ "sv.bytes())); - TRY(file.write(Chess::Board::result_to_deprecated_string(m_board.game_result(), m_board.turn()).bytes())); + TRY(file.write(Chess::Board::result_to_string(m_board.game_result(), m_board.turn()).bytes())); TRY(file.write(" } "sv.bytes())); - TRY(file.write(Chess::Board::result_to_points_deprecated_string(m_board.game_result(), m_board.turn()).bytes())); + TRY(file.write(Chess::Board::result_to_points_string(m_board.game_result(), m_board.turn()).bytes())); TRY(file.write("\n"sv.bytes())); return {}; @@ -698,7 +698,7 @@ int ChessWidget::resign() set_drag_enabled(false); update(); - const DeprecatedString msg = Chess::Board::result_to_deprecated_string(m_board.game_result(), m_board.turn()); + auto const msg = Chess::Board::result_to_string(m_board.game_result(), m_board.turn()); GUI::MessageBox::show(window(), msg, "Game Over"sv, GUI::MessageBox::Type::Information); return 0; diff --git a/Userland/Games/Chess/ChessWidget.h b/Userland/Games/Chess/ChessWidget.h index e84fe27298..ef048ec7ae 100644 --- a/Userland/Games/Chess/ChessWidget.h +++ b/Userland/Games/Chess/ChessWidget.h @@ -62,7 +62,7 @@ public: void reset(); struct BoardTheme { - DeprecatedString name; + StringView name; Color dark_square_color; Color light_square_color; }; @@ -122,7 +122,7 @@ private: size_t m_playback_move_number { 0 }; BoardMarking m_current_marking; Vector m_board_markings; - BoardTheme m_board_theme { "Beige", Color::from_rgb(0xb58863), Color::from_rgb(0xf0d9b5) }; + BoardTheme m_board_theme { "Beige"sv, Color::from_rgb(0xb58863), Color::from_rgb(0xf0d9b5) }; Color m_move_highlight_color { Color::from_argb(0x66ccee00) }; Color m_marking_primary_color { Color::from_argb(0x66ff0000) }; Color m_marking_alternate_color { Color::from_argb(0x66ffaa00) }; diff --git a/Userland/Libraries/LibChess/Chess.cpp b/Userland/Libraries/LibChess/Chess.cpp index b036dabc07..42d3385eea 100644 --- a/Userland/Libraries/LibChess/Chess.cpp +++ b/Userland/Libraries/LibChess/Chess.cpp @@ -13,22 +13,22 @@ namespace Chess { -DeprecatedString char_for_piece(Chess::Type type) +StringView char_for_piece(Chess::Type type) { switch (type) { case Type::Knight: - return "N"; + return "N"sv; case Type::Bishop: - return "B"; + return "B"sv; case Type::Rook: - return "R"; + return "R"sv; case Type::Queen: - return "Q"; + return "Q"sv; case Type::King: - return "K"; + return "K"sv; case Type::Pawn: default: - return ""; + return ""sv; } } @@ -97,7 +97,7 @@ DeprecatedString Move::to_long_algebraic() const StringBuilder builder; builder.append(from.to_algebraic()); builder.append(to.to_algebraic()); - builder.append(char_for_piece(promote_to).to_lowercase()); + builder.append(DeprecatedString(char_for_piece(promote_to)).to_lowercase()); return builder.to_deprecated_string(); } @@ -286,11 +286,11 @@ DeprecatedString Board::to_fen() const builder.append(DeprecatedString::number(empty)); empty = 0; } - DeprecatedString piece = char_for_piece(p.type); - if (piece == "") - piece = "P"; - - builder.append(p.color == Color::Black ? piece.to_lowercase() : piece); + auto const piece = char_for_piece(p.type); + if (p.color == Color::Black) + builder.append(DeprecatedString(piece).to_lowercase()); + else + builder.append(piece); } if (empty > 0) { builder.append(DeprecatedString::number(empty)); @@ -886,59 +886,59 @@ void Board::set_resigned(Chess::Color c) m_resigned = c; } -DeprecatedString Board::result_to_deprecated_string(Result result, Color turn) +StringView Board::result_to_string(Result result, Color turn) { switch (result) { case Result::CheckMate: VERIFY(turn != Chess::Color::None); - return turn == Chess::Color::White ? "Black wins by Checkmate" : "White wins by Checkmate"; + return turn == Chess::Color::White ? "Black wins by Checkmate"sv : "White wins by Checkmate"sv; case Result::WhiteResign: - return "Black wins by Resignation"; + return "Black wins by Resignation"sv; case Result::BlackResign: - return "White wins by Resignation"; + return "White wins by Resignation"sv; case Result::StaleMate: - return "Draw by Stalemate"; + return "Draw by Stalemate"sv; case Chess::Board::Result::FiftyMoveRule: - return "Draw by 50 move rule"; + return "Draw by 50 move rule"sv; case Chess::Board::Result::SeventyFiveMoveRule: - return "Draw by 75 move rule"; + return "Draw by 75 move rule"sv; case Chess::Board::Result::ThreeFoldRepetition: - return "Draw by threefold repetition"; + return "Draw by threefold repetition"sv; case Chess::Board::Result::FiveFoldRepetition: - return "Draw by fivefold repetition"; + return "Draw by fivefold repetition"sv; case Chess::Board::Result::InsufficientMaterial: - return "Draw by insufficient material"; + return "Draw by insufficient material"sv; case Chess::Board::Result::NotFinished: - return "Game not finished"; + return "Game not finished"sv; default: VERIFY_NOT_REACHED(); } } -DeprecatedString Board::result_to_points_deprecated_string(Result result, Color turn) +StringView Board::result_to_points_string(Result result, Color turn) { switch (result) { case Result::CheckMate: VERIFY(turn != Chess::Color::None); - return turn == Chess::Color::White ? "0-1" : "1-0"; + return turn == Chess::Color::White ? "0-1"sv : "1-0"sv; case Result::WhiteResign: - return "0-1"; + return "0-1"sv; case Result::BlackResign: - return "1-0"; + return "1-0"sv; case Result::StaleMate: - return "1/2-1/2"; + return "1/2-1/2"sv; case Chess::Board::Result::FiftyMoveRule: - return "1/2-1/2"; + return "1/2-1/2"sv; case Chess::Board::Result::SeventyFiveMoveRule: - return "1/2-1/2"; + return "1/2-1/2"sv; case Chess::Board::Result::ThreeFoldRepetition: - return "1/2-1/2"; + return "1/2-1/2"sv; case Chess::Board::Result::FiveFoldRepetition: - return "1/2-1/2"; + return "1/2-1/2"sv; case Chess::Board::Result::InsufficientMaterial: - return "1/2-1/2"; + return "1/2-1/2"sv; case Chess::Board::Result::NotFinished: - return "*"; + return "*"sv; default: VERIFY_NOT_REACHED(); } diff --git a/Userland/Libraries/LibChess/Chess.h b/Userland/Libraries/LibChess/Chess.h index abff2180f9..0af65732ca 100644 --- a/Userland/Libraries/LibChess/Chess.h +++ b/Userland/Libraries/LibChess/Chess.h @@ -25,7 +25,7 @@ enum class Type : u8 { None, }; -DeprecatedString char_for_piece(Type type); +StringView char_for_piece(Type type); Chess::Type piece_for_char_promotion(StringView str); enum class Color : u8 { @@ -145,8 +145,8 @@ public: NotFinished, }; - static DeprecatedString result_to_deprecated_string(Result, Color turn); - static DeprecatedString result_to_points_deprecated_string(Result, Color turn); + static StringView result_to_string(Result, Color turn); + static StringView result_to_points_string(Result, Color turn); template void generate_moves(Callback callback, Color color = Color::None) const;