Skip to content

Version 2.3.0 平成31年4月28日

Pre-release
Pre-release
Compare
Choose a tag to compare
@MihailJP MihailJP released this 28 Apr 05:04
· 166 commits to master since this release
  • MITライセンスに変更
  • 開発環境をVisual Studio 2017に切り替え
    • Visual Studioでビルド時.dllを.binにする
    • Windows XPを対象から外す
    • x64に対応
    • Visual Studioのコード分析を有効化
  • 瀬戸内三麻を追加
  • Macでも動くようにする(但しXQuartz依存)
  • タイトル画面の修正
    • タイトル画面にバージョン番号を表示するようにする
    • タイトル画面で放置するとデモプレイが始まるようにする
    • タイトル画面、ロード画面に背景を追加
  • 卓進行中の挙動を修正
    • 手牌のoff-by-oneエラーを修正
    • 鳴いた赤ドラが計上されないバグを修正
    • 特定の状況で捨て牌の表示に失敗する問題に対処
    • 捨て牌表示処理で落ちることがある問題に対処
    • 和了表示に鳴いた牌が表示されなかったのを修正
    • 花牌を誤ってダブルカウントしていたのを修正
    • 三麻で居ないプレイヤーに「不聴」と表示されるのを直す
    • AIの食い変えに対処
    • リーチ後の暗槓・花牌選択で牌が暗転しないのを修正
    • チー、ポンのときに複数候補がある場合は最大2枚選択するように変更
    • キーボード操作でWASDも使えるようにする
  • コンフィグ周りの挙動修正
    • 打牌などの制限時間を設定できるようにする
    • マウスホイールでのページ送りの方向を反転
    • 設定ツールを別アプリに独立させる
    • 環境設定INIファイルで大文字と小文字を区別しないようにする
    • ルール設定が保存できなかったのを修正
    • 北の漁場の設定項目の誤りを修正
    • Windows以外でコンフィグファイルのパスが正しくないのを修正
  • チャットウィンドウを廃止
    • 時計の位置をサイドバー(以前チャットウィンドウがあった場所)に移動
  • 牌譜出力機能のデバッグと機能変更
    • XML牌譜がill-formedになる問題を修正
    • テキスト形式、HTML形式の牌譜を廃止
    • 牌譜にサイコロの出目を記録するようにした
    • score-afterを記録しないようにする
    • ルール設定で冗長なものを牌譜に出力しないようにする
    • 割れ目や導火線の位置を牌譜に出力
    • 割れ目、導火線の位置コメントをXSLTに反映
    • 牌譜に役情報を記録するようにする
    • 嵌張または大きい方を吃した時のバグを修正
    • 花牌がドラになった場合の牌譜データ
  • グラフィックの修正
    • 中国ルールでサイコロの4を赤くする
    • 焼き鳥マークのデザインを変更
    • 高解像度版の画像データを用意(Windowsは64bit版のみ)
  • Linuxでサーバー時に落ちないように対策
  • IPv6に対応
    • サーバのアドレス指定にgetaddrinfo()を使うようにする
  • ウィンドウの挙動修正
    • ウィンドウモード時に画面の中央に寄せるようにする
    • ウィンドウが正しく表示されないことがあるのを修正
    • 全画面モードで落ちるバグを修正
    • 擬似フルスクリーンモードを実装(Windowsのみ)
    • OpenGLのクリンナップを行うようにする
  • 音声周りの挙動修正
    • XAudio2でVorbisのイントロ付きループ再生に対応
    • Ogg Vorbisの読み込みを並列化
    • 結果画面のBGMが鳴りっぱなしになるバグを修正
    • MIDIデバイスを指定できるようにする
    • 効果音を変更
  • make installで不要なドキュメントファイルまでインストールされていたのを修正
  • コードをリファクタリング

リファクタリングの主な内容

  • C++14を使用するようにする
  • subdir-objectの指定を追加
  • .gitignore更新
  • 名前空間を移動
  • 関数名の間違いを修正
  • POD判定をtrivially copyable/standard layout判定に置き換え
    • YakuResult::Init()をコンストラクタに置き換え
    • LargeNum関係
      • LargeNumクラスのコンストラクタ
      • LNumラッパークラスを削除
      • LargeNumconstexprにする
      • 型関係の修正
  • 役満用のデータを使うかの判定処理を移動
  • ドラ込みの翻をイディオムからメソッド化
  • 成立役リストの処理をcommonに移動
  • malloc/freenew/deleteに書き換え
  • localtime()localtime_s()に書き換え
  • 暗黙の型変換をキャストに書き換え
  • 符号付きと符号なしの比較を避けるようにする
  • ANSI版で碰碰和の文字化けに対処
  • constのうち定数はconstexprに書き換え
  • C++スタイルのキャストを使うようにする
  • Visual Studio関係
    • コード解析をネイティブ推奨規則に設定
    • Windows7互換用にプリプロセッサを設定
    • Visual Studioでワイド文字版をデフォルトにする
    • ANSI版の構成を削除
    • Visual Studioプロジェクトファイルにcommonヘッダを入れる
  • VersionHelpers.hを使うようにする
  • LargeNumint64_tで正しくない結果になる可能性があるのを修正
  • ifstream::imbue()の返り値の破棄を明示
  • 潜在的な未初期化に対処
  • 受信バッファをヒープに移動
  • オーバーフローの可能性を排除
  • LZMA関係
    • LzFindMt.cの警告を無視
    • LZMA伸長時ポインタの型が正しくないのを修正
  • ルール設定の読み込みにifstreamを使う
  • 二重配列の初期化
  • 音声モジュール周り
    • 音声データのヘッダファイル・定義ファイルをクラスで分離
    • USE_XAUDIO2の有無だけで判断するようにする
    • OGG読み込み時のバッファサイズを調整
    • libogg、libvorbis関係
      • サブモジュールに変更
      • リリースビルドを使うようにする
      • プロジェクトをソリューションに統合
  • std::random_shuffle()を使わないようにする
  • 行列の計算を関数にまとめる
  • グラフィックモジュールの例外オブジェクトをstd::except派生に変更
  • 鳴き選択関係
    • リモートの手動理牌に対応させる
    • AIの理牌コード
    • 牌データにメソッドを追加
    • 選択した牌を移動する処理を追加
    • ソート処理に標準ライブラリを使うようにする
  • Tileオブジェクト周りのリファクタリング
    • tilecode.hにコメントを付ける
    • ShowTile::NewTileの引数を変更
  • Autotools関係
    • configure.acでC++14をチェックするようにする
    • Pythonのモジュールの有無を確認するようにする
    • configureでrubyをチェックするようにする
  • カレンダー関係のリファクタリング
  • 役判定ルーチン内の関数オブジェクトをconstにする
  • md2html.pyを修正
  • strcode.hを修正
  • Clang++で見つかった問題を修正
    • dangling elseを解消
    • -Wparenthesesに対処
    • インクリメントを分離
    • 喰いタンのルール判定で等号比較していたのをメソッドに修正
    • 明示的なoverride指定
    • 論理積と論理和の順序を明示
    • -Wno-switchを指定
  • *.vcxproj.userをリポジトリから除去
  • Boost対応を廃止
  • 不要になったコードの削除