トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

解説/ステータス画面の身長の伸ばし方

Last-modified: 2018-08-02 (木) 00:05:53 (822d)

ステータス画面で、一部のキャラは身長が低くなってしまうので、身長の底上げ処理がされています。

身長の底上げ処理をしているのは、0x8005b28関数です。
この関数に、r0 で 顔IDが入り、身長を伸ばすならば return 1、身長を伸ばさないならば return 0 を返します。

0x8005b28関数は、switch文などがあり、大変読みづらいのです。
身長を伸ばすキャラを個別にIF文などで書き直したほうが早いでしょう。

@thumb
@org	$08005b28
push	{lr}

cmp r0,#0x21 ;ユアン 顔ID
beq nobasu
 
cmp r0,#0x26 ;ミルラ 顔ID
beq nobasu

...

mov	r0, #0 ; 背を伸ばさない
b end

nobasu
mov	r0, #1 ; 背を伸ばす

end
pop	{r1}
bx	r1

;;コードが 005ba4 を超えたらだめ。

身長が低いキャラがものすごくたくさんいれば別ですが、10人ぐらい底上げしたとしても、関数終端の0x08005ba4 を超えないです。 switch文があるために、無駄なジャンプテーブルとかが作られているので、容量はたくさんあります。