TUMIKI Fighters for MacOSX
http://www.vector.co.jp/soft/mac/game/se332680.html
コンパイル・パッケージングしました。なんていうか、 gdc のバグを回避するために奇妙な改変をしてたりします。
http://shinh.skr.jp/tmp/tf_0_2.patch.gz
これをざっと見て変更すべき点だったのは以下の点。
- boot 部分。 phobos と SDL 両方を初期化しないとです。
- version, extern 関係。 DMD がサポートしている Win32 でも linux でもない。
- std.file.listdir は依然として壊れている。単なるバグなのでパッチは送付済み。
- interface => abstract class 。 DMD 追従が遅れている。
- template のリンケージが変。結局手動インスタンシエイト。
- 設定ファイルが無いと gdc のバグを踏むので tf.prf を作っておく。(奇妙)
- static this の循環処理が甘い。モジュールの循環ロード中に両方のモジュールに static this を置くことは D 言語の仕様で禁止されているが、 class については記述が無い(し、DMD で問題無いのでたぶん問題無いとすべきなのだろう)。とりあえず static method 呼出しで回避。
- private this (ごめんなさい気付いてたのに報告してませんでした)
- gameManager の setter が gdc のバグを踏むので、 protected field を public にして直接代入。(奇妙)
- nosound 時も Sound の初期化をしないと gdc のバグを踏む。(奇妙)
奇妙と書いたものは原因が全くわかってません。
今回はアイコンを透過にしたいということと、 tf_nosound をなんとかしたいということにやけに苦労してしまいました。結局 tf_nosound がダブルクリック起動できないのですけど時間投下に対する効用があまりに少ないので放棄しちゃいました。もし誰かにご意見いただけましたら修正します。
特に透過アイコンをどうするか、というあたりで ink さんにいろいろアドバイス頂けました。 PARSEC47 の時同様詳細なテストレポートを頂けたのも大学で遊び倒すのも恥ずかしいのでとてもありがたかったです。感謝します。また例の如く的に Zinniaさん と ごにいさん もテストに協力していただきました。感謝。
それと懺悔。間違って数日のあいだ vector に死んでも残機が減らないとても夢の無い物体を置いてしまっていました。アナウンスしてないんで大丈夫かなーと思いますけど、もしそっちを落とした人は見なかったことにしてもう一度ダウンロードしてもらえると嬉しいです。
しかし、 Noiz2sa と rRootage の Linux バイナリパッケージ見て思ったのはこういうのに需要ができる程度には Linux 使ってるからといって必ずしも苦もなくコンパイルをガンガンできるというわけじゃなくなってきてるのかなーとか。ただね、これね、 gcc3 以前の環境じゃ動かんと思うのだよねえ、libgcc_s とか libstdc++ の問題で。あとパッチがどういう環境のために必要なのかよくわからん (SDL_INIT_JOYSTICK 失敗時に SDL_JoystickOpen を呼ばなくしてるんですけど、必ずしも必要なものには見えない。まあしっかりとは見てないからよくわからんけど) とか、それより Makefile 見せてくれないと自前コンパイルできないとか。