<pre style='margin:0'>
Frank Schima (mf2k) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/02787ac957388d8bc0c3b1677b739ef29bdeb5ed">https://github.com/macports/macports-ports/commit/02787ac957388d8bc0c3b1677b739ef29bdeb5ed</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 02787ac  2048.cpp: new port
</span>02787ac is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 02787ac957388d8bc0c3b1677b739ef29bdeb5ed
</span>Author: Chen Guokai <chenguokai17@mails.ucas.ac.cn>
AuthorDate: Tue Mar 31 18:24:45 2020 +0800

<span style='display:block; white-space:pre;color:#404040;'>    2048.cpp: new port
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * add 2048.cpp as a new port
</span><span style='display:block; white-space:pre;color:#404040;'>    * selfassign maintainer
</span>---
 games/2048.cpp/Portfile             |  30 ++++++++++
 games/2048.cpp/files/data_path.diff | 111 ++++++++++++++++++++++++++++++++++++
 2 files changed, 141 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/games/2048.cpp/Portfile b/games/2048.cpp/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..c01fe15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/games/2048.cpp/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,30 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem              1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup               github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup               cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup            plibither8 2048.cpp 81c0eebaa2e575c7c7943c01958b88896c9da852
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version                 2019-12-12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories              games
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers             {mails.ucas.ac.cn:chenguokai17 @chenguokai} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms               darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license                 MIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description             Fully featured terminal version of the game "2048" written in C++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description        Fully featured terminal version of the game "2048" written in C++ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        which is made to run natively on the GNU/Linux and MacOS platforms.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles              data_path.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums               rmd160  3f1b6aae943e70ac79d107dd899762313ff2ce66 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        sha256  e5746f6505220d62f1c250456731c632d6d2e820f6a66313bc2940dbd2e1dcbd \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    4205777
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+notes "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you run 2048 binary from a directory other than ${prefix}/bin, 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+it is likely that this game fails to save scores. It is expected, since upstream 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+code takes a relative path. Wait for any upstream updates.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/games/2048.cpp/files/data_path.diff b/games/2048.cpp/files/data_path.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..2d3aa17
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/games/2048.cpp/files/data_path.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,111 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt 2020-04-03 14:36:08.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,4 +31,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        DESTINATION ${CMAKE_INSTALL_PREFIX})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        DESTINATION ${CMAKE_INSTALL_PREFIX}/var/2048.cpp/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        DIRECTORY_PERMISSIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          OWNER_WRITE OWNER_READ OWNER_EXECUTE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          GROUP_WRITE GROUP_READ GROUP_EXECUTE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          WORLD_WRITE WORLD_READ WORLD_EXECUTE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PATTERN "data/*"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    GROUP_WRITE GROUP_READ GROUP_EXECUTE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    WORLD_WRITE WORLD_READ WORLD_EXECUTE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/game-pregamemenu.cpp.ori   2020-03-31 17:44:45.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/game-pregamemenu.cpp       2020-03-31 17:41:34.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -127,8 +127,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_gameboard_status_t initialiseContinueBoardArray() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   using namespace Loader;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  constexpr auto gameboard_data_filename = "../data/previousGame";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  constexpr auto game_stats_data_filename = "../data/previousGameStats";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  constexpr auto gameboard_data_filename = "../var/2048.cpp/data/previousGame";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  constexpr auto game_stats_data_filename = "../var/2048.cpp/data/previousGameStats";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   auto loaded_gameboard{false};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   auto loaded_game_stats{false};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   auto tempGBoard = GameBoard{1};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/menu.cpp.ori       2020-03-31 17:44:46.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/menu.cpp   2020-03-31 17:41:55.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -44,7 +44,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // bool loaded_scorelist;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Warning: Does not care if file exists or not!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   std::tie(std::ignore, scoreList) =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      Scoreboard::loadFromFileScore("../data/scores.txt");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      Scoreboard::loadFromFileScore("../var/2048.cpp/data/scores.txt");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   auto counter{1};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const auto convert_to_display_list_t = [&counter](const Scoreboard::Score s) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -68,7 +68,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Statistics::total_game_stats_t stats;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   bool stats_file_loaded{};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   std::tie(stats_file_loaded, stats) =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      Statistics::loadFromFileStatistics("../data/statistics.txt");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      Statistics::loadFromFileStatistics("../var/2048.cpp/data/statistics.txt");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const auto tsdd = std::make_tuple(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       stats_file_loaded, std::to_string(stats.bestScore),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/saveresource.cpp.ori       2020-03-31 17:44:46.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/saveresource.cpp   2020-03-31 17:42:02.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,8 +35,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void saveGamePlayState(GameBoard gb) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Currently two datafiles for now.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Will be merged into one datafile in a future PR.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  constexpr auto filename_game_data_state = "../data/previousGame";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  constexpr auto filename_game_data_statistics = "../data/previousGameStats";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  constexpr auto filename_game_data_state = "../var/2048.cpp/data/previousGame";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  constexpr auto filename_game_data_statistics = "../var/2048.cpp/data/previousGameStats";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   std::remove(filename_game_data_state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   std::remove(filename_game_data_statistics);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/scores.cpp.ori     2020-03-31 17:44:47.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/scores.cpp 2020-03-31 17:42:13.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -45,7 +45,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void saveScore(Score finalscore) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  saveToFileScore("../data/scores.txt", finalscore);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  saveToFileScore("../var/2048.cpp/data/scores.txt", finalscore);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } // namespace Scoreboard
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/statistics.cpp.ori 2020-03-31 17:44:48.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/statistics.cpp     2020-03-31 17:42:27.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -58,7 +58,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   bool stats_file_loaded{};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ull tempscore{0};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   std::tie(stats_file_loaded, stats) =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      loadFromFileStatistics("../data/statistics.txt");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      loadFromFileStatistics("../var/2048.cpp/data/statistics.txt");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (stats_file_loaded) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     tempscore = stats.bestScore;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -70,7 +70,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Need some sort of stats data values only.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // No need to care if file loaded successfully or not...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   std::tie(std::ignore, stats) =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      loadFromFileStatistics("../data/statistics.txt");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      loadFromFileStatistics("../var/2048.cpp/data/statistics.txt");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   stats.bestScore =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       stats.bestScore < finalscore.score ? finalscore.score : stats.bestScore;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   stats.gameCount++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -78,7 +78,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   stats.totalMoveCount += finalscore.moveCount;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   stats.totalDuration += finalscore.duration;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  saveToFileEndGameStatistics("../data/statistics.txt", stats);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  saveToFileEndGameStatistics("../var/2048.cpp/data/statistics.txt", stats);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void CreateFinalScoreAndEndGameDataFile(std::ostream &os, std::istream &is,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>

</pre>