pop↑ push↓

☆ (ゝω・)v

プログラムを変更する(7)

ck2パッチの話です

前回

popush.hatenablog.com

今回

この話です。

改行を修正する

EU4だとxmmレジスタ(浮動小数点数)を使って幅を計算していましたが、ck2だと整数でした。その他はだいたい同じでした。

popush.hatenablog.com

改行処理は下記のすぐ下にいます。 popush.hatenablog.com

拡大するとこうです。送り幅(advance width)が0であるかをチェックしてところがあります。スペース(0x20)はフォントを読み込んだときに強制的に送り幅をが0に上書きされるため、文字幅チェックが行われるようになります。よってEU4と同じように修正出来るわけです。 f:id:saito-matanki:20171217153501p:plain

前処理として、ローカル変数用のスタックサイズを変更します。0x428に0x8を足して0x430にしました。追記)この処理はいりませんでした。 f:id:saito-matanki:20171217153002p:plain

ローカル変数[ebp-438h]]にコードポイントを保存しておきます。 f:id:saito-matanki:20171217154549p:plain

最後にコードポイントを見て、改行チェックを行うように誘導します。 f:id:saito-matanki:20171217154529p:plain

次回はプログラムを変更する(8)です