« Mozilla | Main | Rogue »

Rogue


Mac版jrogueのPPCネイティブ & カラー化に取り組んでいる。
jrogue
これこれ、この色、昔PC98版をやったときの色だよ。うふふ。ついでにMacOS 9のマルチユーザーに対応して、ログイン名をきちんと取り出すようにする。他のユーザーのセーブファイルではプレイできないようにするのだ。Rogueって、セーブファイルの扱い厳しいよね。セーブから再開したら、そのファイルは自動的に消えてしまうし、他人のファイルでは遊べない、さらに、ファイルをバックアップするとダメ。データに改造加えてもダメ。ただ、今回は、昔使っていたThink C付属のUNIX互換ライブラリが使えないので、ファイルIDを判断する部分を無効にしてしまった。というわけで、今の状態ではセーブファイルをコピーして、何度でもやりなおしができてしまう。これ、どうしようかなあ。きちんと自分でそのへん判断する関数作るべきか?
しかし、これやりだすと、セーブファイルを置く場所も問題になるなあ。制限付ユーザーでは、アプリケーションのあるフォルダでは保存できないかもしれないから、デフォルトでユーザーの書類フォルダにリダイレクトするようにすべきか?fopen系の関数にこれやらすのは結構面倒。MacOS 9に含まれるStdClLibではFSSpec使う代替関数が用意されてるけど、MacOS 9限定にするとか、StdCLibのshLibつけるとかはしたくないし……

さて、フォントメニューは前からあるけど、簡単にやっているので、インストールされてるフォント全部表示してしまう。本来等幅フォントのみにすべきだと思うけど、FONDリソースのフラグで等幅かどうかチェックすると、通常の日本語等幅フォントはほぼすべて等幅でないというフラグになっている。1Byte部分と2Byte部分の幅が違うからかしらん。で、CharWidthで' 'と'W'の幅をチェックして同じだったら等幅とみなすという処理を加えたら、フォントメニュー構築にむちゃくちゃ時間かかっちゃうので断念。
あと、ゲームのオプション設定をMacっぽくGUIで行って、初期設定フォルダに置くようにしないとなあ。この部分はあきらかに面倒なので前にやったときも放置していた部分。
ところで、カラーの黒地白文字で12Pt程度だと、モニター解像度が高い場合、非常にみにくい。しかし、24Pt位にして、アピアランスコントロールパネルで、なめらかな文字で表示する設定にすると、なかなかいいかんじである。小さいサイズの時と、大きいサイズの時では、きれいに見えるフォントも変わってくる。昔の画面の雰囲気を味わうためにはビットマップのASLFont+を拡大して使うのもわるくないが、20ポイントあたりからきちんとアウトラインをきれいにラスタライズするようになった「等幅ゴシック」も捨てがたい。W7位の等幅明朝体があれば、それもいいと思うが、うちにあるフォントでは、等幅明朝とリュウミンライト−KL−等幅といった、細い書体しかないので、ちと見づらい。ただし、これらの書体を使う場合、ゲームオーバー時の墓石表示が化ける(\をバックスラッシュとして表示できないため)。もちろん\が円記号なのはJISのコードでは正しいので、ASLFont+eのように、コードの左半分をASCII互換にしてあるフォントを使うというのはいかにも対処療法っぽくて気持ちが悪い。このゲームの中では、基本的にバックスラッシュが表示される事を期待して使われているので、表示部分にフックして、書体を一時的に、勝手に切り替えるべきか……っつーか、それ、まともにやったら表示遅くなって多分だめ。QuickDrawの低レベルフックを使う手はあるけど、そこまでやると複雑になるしなあ。
と思ったら、実はMacOS用の日本語フォントでは、0x80にバックスラッシュが割り当てられている事を発見!、これならもとのメッセージの文字列リテラルを書き換えるだけでOK、スピードは一切犠牲にならない。0x5Cにバックスラッシュを割り当ててるASLFont+eの場合、0x80に円記号を置いているのでこれを使われるとやはり化けてしまうが、この場合は、eなしのASLFontが使えるので問題は少ないと思う。

|

« Mozilla | Main | Rogue »

「パソコン・インターネット」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/10254/53226

Listed below are links to weblogs that reference Rogue:

« Mozilla | Main | Rogue »