the cutting room mirror

ja

2007年版のソリティアは、Windows Vistaや7に同梱されているオリジナルに綺麗なグラフィックと新機能を加えた再加工版です。それ以外は全くもって同じです。

デバッグモード#

内部の g_bDebugEnabled 変数を非0にすることによって、さまざまなデバッグ支援が有効になります。この値はゲームからは書き込まれないため、手動で設定する必要があります。

メニュー#

SolVistaDbgMenu.png

通常のメニュー(リソース102)の変わりに、ゲームは他のもう1つ(リソース103)を Solitaire.exe.mui から読み込みます。ほとんどのメニューは自明ですが、「Toggle Deck Lock」は何の効果も表われません。

チートコード#

Ctrl と Alt と Shiftを押しっぱなしにしている間、山札をクリックすると、Draw Treeオプションに関係なく、1枚のカードしか描画されません。また、カードの色や番号に関係なく、カードや束を他の場札に移動することができます。

ブロックモード#

SolVistaBlockMode.png

F6を押しっぱなしにすると、プレイ画面が灰色で描写され、カードは灰色のボックスに置換されます。

ポーズモード#

Home を押すと、描画が停止します。他には何も止まらないので、timed gamesでは時間が進み、効果音はそのまま再生されます。しかし、表示のフィードバックはありません。End を押すと描画が再開されます。Insert キーを使用して、ONとOFFを切り替えることができます。

ロギング#

デバッグ同様、現在のディレクトリ(g_uiFileMask)の log.txt もしくは、リダイレクトされた標準出力(g_uiConsoleMask)のどちらかにUTF-16ログを記録するかを指定する、2つの内部変数があります。これらも、デバッグのようにゲームからは書き込まれないので、手動で有効化する必要があります。

サンプルログ:

SolLogGeneral: (673) SolitaireGame::FindHigherCardToPutOnStack() - Not a main stack, don't bother checking.
CardLibLogGeneral: (674) CardStack::SetHighlight()::bHighlight == false
CardLibLogGeneral: (675) Card::SetHighlight()::bHighlight == false
0x00002000: (676) Hide tip
Rendering: (884) SetState: 260
Rendering: (885) (RenderManager.cpp:2156) Present Failed: 88760868(D3DERR_DEVICELOST)
Rendering: (886) (RenderManager.cpp:1704) Resuming after lost device
Rendering: (887) (Font.cpp:691) Invalidating a font cache
Rendering: (888) (Font.cpp:691) Invalidating a font cache
Rendering: (889) (RenderManager.cpp:2253) Reset: 800 x 496 format 22
Rendering: (890) (RenderManager.cpp:1465) RecreateDefaultResources()
UI: (891) Recreating font: Segoe UI
UI: (892) Recreating font: Segoe UI
Rendering: (893) (RenderManager.cpp:150) CreateCachedBackBuffer()
Rendering: (894) SetState: 4096
Core: (909) Engine_GotFocus()
Timekeeping: (910) Reset timers
Core: (911) Engine_LostFocus()
Core: (912) Engine_GotFocus()
Timekeeping: (913) Reset timers
Rendering: (914) (RenderManager.cpp:2369) Saved the back buffer for cached presentation
CardLibLogGeneral: (915) CardStack::SetEnabled()::bAccess == true
Core: (916) Engine_LostFocus()

ログとデバッグモードを有効にした状態で、F11を押すと使用中の画像と音をログにダンプします。

XInput サポート#

どこにも(ヘルプメニューにすら)書かれていない興味深い機能に、XInput(ゲームパッド)のサポートがあります。 ゲームがUSBポートに接続されているXbox 360コントローラを検出すると、コントローラのP1コーナーが点灯し、コントローラが使えることを示します。恐らくMicrosoftは、人々が従来の操作に慣れておりゲームパッドはカードゲームに合わないだろうと考えていたため、ドキュメント化されなかったのでしょう。小さな機能ですが、それでもなお、れっきとした小さな特徴です。

コントロール#

ボタン

効果

左アナログスティック/十字キー/ショルダーボタン/トリガ

カーソルを動かす。奇妙にも、メニューバーを操作する際にも使えます。

B/Back

前回の移動を元に戻します。

A/X

カーソルのカードを選択します。カーソルを別のカードに移動し、もう一度AかXを押すと、前のカードが場札に移動します。いずれかのボタンをダブルタップすると、カードが組札へと移動します。

Y/Start

ゲームメニューを開きます。