pop↑ push↓

☆ (ゝω・)v

プログラムを改造する(C)

EU4パッチの技術情報です。

前回

popush.hatenablog.com

エスケープ対象の追加

a4パッチまでに加えた修正をほとんど変更しています。というのもエスケープする対象がnull(0)と[(5B)だけだと全然足りないことがわかったからです。

具体的にエスケープが必要な文字列を下記にまとめてあります。

docs.google.com

f:id:saito-matanki:20171019204039p:plain

具体的にはエスケープ文字が10,11,12に13が加わりました。13を加えることで、下位バイトと上位バイトの両方をエスケープする必要がある場合でも大丈夫になりました。またシフト数が1から上位バイトは-9,下位バイトは+15になりました。これはシフト後の文字に問題なさそうなものを探した結果です。

さらにテキストに対して上記のエスケープを実行するために下記でまとめたMultiByteToWideChar周りの処理を大幅に変えました。

popush.hatenablog.com

ヒープクリアの処理

フォントに無い文字を参照してもある程度大丈夫にするために、ヒープ確保時に0クリアするようにしました。

https://msdn.microsoft.com/ja-jp/library/cc430107.aspx