行 |
処理内容 |
38-51 |
様々な数値を初期化。 |
52-56 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が 0 と同じ |
セルフ[0]が「0(通常表示)」の場合は分岐。 |
|
54 |
▼ 通常モード |
|
55 |
セルフ[60]に「1(左寄せ)」を設定。
選択項目を中央表示(セルフ[60]=0) |
|
選択項目を左寄せ表示(セルフ[60]=1) |
|
|
|
|
|
56 |
セルフ[61]に「1(スクロール表示する)」を設定。 |
58-66 |
◇分岐: 【2】 [ CSelf0[処理モード] が 2 と同じ ]の場合↓ |
セルフ[0]が「0(戦闘コマンド用で表示)」の場合は分岐。 |
|
59 |
▼ 戦闘コマンド用 |
|
60 |
セルフ[60]に「0(中央表示)」を設定。 |
|
61 |
セルフ[61]に「0(スクロール表示しない)」を設定。 |
|
62 |
セルフ[0]に「0」を設定し、以降は通常の表示処理として実行。 |
|
63 |
セルフ[63]に「180(不透明度)」を設定。 |
|
64 |
セルフ[64]に「1(瞬間表示)」を設定。 |
67-69 |
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ ここから実処理開始
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ |
70-112 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が -1 と同じ |
セルフ[0]が「-1(消去)」の場合は分岐。 |
|
72-74 |
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 「消去」モードの場合
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ |
|
77-80 |
▼ カーソルを消す |
カーソル画像を瞬間的に消します。 |
|
81 |
▼ それ以外を消す |
|
85-109 |
■条件分岐(変数): 【1】 CSelf3[[表示]>エフェクト] が 1 以上 |
エフェクトが設定されている場合は分岐。 |
|
|
87 |
▼ エフェクトが指定されてたらそれに応じてメインウィンドウを消す |
|
|
89-94 |
■条件分岐(変数): 【1】 CSelf3[[表示]>エフェクト] が 4 以下 |
角から徐々に表示されるエフェクトの場合は分岐。 |
|
|
|
91-95 |
▼ 拡大率0%にしてから消去 |
ウィンドウの「拡大率0%」&「不透明度0」を徐々に変更して消去。
ディレイを設定した3つの設定を行う事で、最初は勢いよく消えていき、
徐々に消える速度を弱めながら3段階の速度で消していきます。 |
|
|
96-100 |
◇分岐: 【2】 [ CSelf3[[表示]>エフェクト] が 5 以上 ]の場合↓ |
上か下から徐々に表示されるエフェクトの場合は分岐。 |
|
|
|
97-100 |
▼ 上か下にシュンと消えて終了 |
ウィンドウの「縦の拡大率0%」&「不透明度0」を徐々に変更して消去。 |
|
106-107 |
◇上記以外 |
エフェクトが設定されていない場合は「上記以外」へ分岐し、全ての画像を瞬間的に消去。 |
|
110 |
消去処理が終了したので、【イベント処理中断】を実行。 |
113-380 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が 0 と同じ |
セルフ[0]が「0(表示)」の場合は分岐。 |
|
115-117 |
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 「表示」モードの場合
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ |
|
119-128 |
▼ 基本システム用変数からウィンドウ表示サイズなどを取得 |
ウィンドウサイズなどを取得。 |
|
129-155 |
▼ 数値が0ならデフォルトの値を代入 |
各数値が「0」の場合はそれぞれで分岐し、初期値を設定。 |
|
158-159 |
▼ 説明文欄の表示 ないしメインウィンドウへの補正
▼ ピクチャ番号は「基本ピクチャ番号+1」 |
|
160-166 |
■条件分岐(変数): 【1】 CSelf2[説明欄モード] が 0 と同じ |
セルフ[2]が「0(説明欄を表示しない)」の場合は分岐。
|
|
|
162 |
▼ 説明欄を表示しない (消去する) |
|
|
163-166 |
説明欄のウィンドウと文字列のピクチャを消去。 |
|
168-190 |
◇分岐: 【2】 [ CSelf2[説明欄モード] が 1 と同じ ]の場合↓ |
セルフ[2]が「1(最上部に横幅最大表示)」の場合は分岐。
|
|
|
169-177 |
▼ 最上部に最大幅で説明欄を表示
▼ 座標・サイズを計算 |
表示位置を画面左上に設定し、
説明用ウィンドウの横幅をゲーム画面の横幅と同じサイズにして、ウィンドウ画像を表示。 |
|
|
178-185 |
▼ 説明文の空画像を表示 |
説明用のウィンドウの中心位置に説明用の文字列を表示するピクチャを表示。 |
|
|
186-190 |
▼ もしメインウィンドウ部分に影響が出るならサイズ補正する |
一覧表示用のウィンドウに説明用のウィンドウが重なる場合は、
一覧表示用のウィンドウのY表示位置(セルフ[23])を下げて、重ならないようにする。
補正しない場合 |
|
補正する場合 |
|
|
|
|
|
192-215 |
◇分岐: 【3】 [ CSelf2[説明欄モード] が 2 と同じ ]の場合↓ |
セルフ[2]が「2(最下部に横幅最大表示)」の場合は分岐。
|
|
|
193-202 |
▼ 最下部に最大幅で説明欄を表示
▼ 座標・サイズを計算 |
表示位置を画面左下から説明用ウィンドウの縦幅分を減算した位置に設定し、
説明用ウィンドウの横幅をゲーム画面の横幅と同じサイズにして、ウィンドウ画像を表示。 |
|
|
203-210 |
▼ 説明文の空画像を表示 |
説明用のウィンドウの中心位置に説明用の文字列を表示するピクチャを表示。 |
|
|
211-215 |
▼ もしメインウィンドウ部分に影響が出るならサイズ補正する |
一覧表示用のウィンドウに説明用のウィンドウが重なる場合は、
一覧表示用のウィンドウの縦サイズ(セルフ[25])を減らして、重ならないようにする。 |
|
218-237 |
■条件分岐(変数): 【1】 CSelf2[説明欄モード] が 3 と同じ |
セルフ[2]が「3(ウィンドウの上に表示)」の場合は分岐。
|
|
|
220-229 |
▼ ウィンドウの上に説明欄を表示
▼ 座標・サイズを計算 |
一覧表示用のウィンドウと同じ横幅で、
一覧表示用のウィンドウの上にくっつく形で説明用ウィンドウの画像を表示。 |
|
|
230-237 |
▼ 説明文の空画像を表示 |
説明用のウィンドウの中心位置に説明用の文字列を表示するピクチャを表示。 |
|
239-256 |
◇分岐: 【2】 [ CSelf2[説明欄モード] が 4 と同じ ]の場合↓ |
セルフ[2]が「4(ウィンドウの下に表示)」の場合は分岐。
|
|
|
240-248 |
▼ ウィンドウの下に説明欄を表示
▼ 座標・サイズを計算 |
一覧表示用のウィンドウと同じ横幅で、
一覧表示用のウィンドウの下にくっつく形で説明用ウィンドウの画像を表示。 |
|
|
249-256 |
▼ 説明文の空画像を表示 |
説明用のウィンドウの中心位置に説明用の文字列を表示するピクチャを表示。 |
|
263-266 |
▼ 1.メインウィンドウ部を表示 |
瞬間表示で一覧表示用のウィンドウを表示。 |
|
267-276 |
■条件分岐(変数): 【1】 CSelf3[[表示]>エフェクト] が 1 と同じ |
セルフ[3]が「1(左上から展開)」の場合は分岐。 |
|
|
269 |
▼ 左上から表示 |
|
|
270-276 |
画面左上から徐々に拡大して表示されるように処理します。
|
|
278-286 |
◇分岐: 【2】 [ CSelf3[[表示]>エフェクト] が 2 と同じ ]の場合↓ |
セルフ[3]が「2(左下から展開)」の場合は分岐。 |
|
|
279 |
▼ 左下から表示 |
|
|
280-286 |
画面左下から徐々に拡大して表示されるように処理します。
|
|
288-296 |
◇分岐: 【3】 [ CSelf3[[表示]>エフェクト] が 3 と同じ ]の場合↓ |
セルフ[3]が「3(右上から展開)」の場合は分岐。 |
|
|
289 |
▼ 右上から表示 |
|
|
290-296 |
画面右上から徐々に拡大して表示されるように処理します。
|
|
299-308 |
■条件分岐(変数): 【1】 CSelf3[[表示]>エフェクト] が 4 と同じ |
セルフ[3]が「4(右下から展開)」の場合は分岐。 |
|
|
301 |
▼ 右下から表示 |
|
|
302-308 |
画面右下から徐々に拡大して表示されるように処理します。
|
|
310-318 |
◇分岐: 【2】 [ CSelf3[[表示]>エフェクト] が 5 と同じ ]の場合↓ |
セルフ[3]が「5(中央上から展開)」の場合は分岐。 |
|
|
311 |
▼ 中央上から表示 |
|
|
312-318 |
画面上から徐々に拡大して表示されるように処理します。
|
|
320-328 |
◇分岐: 【3】 [ CSelf3[[表示]>エフェクト] が 6 と同じ ]の場合↓ |
セルフ[3]が「6(中央下から展開)」の場合は分岐。 |
|
|
321 |
▼ 中央下から表示 |
|
|
322-328 |
画面下から徐々に拡大して表示されるように処理します。
|
|
331-341 |
▼ エフェクトがあったら表示待ちのためにウェイとする
■条件分岐(変数): 【1】 CSelf64[項目高速表示] が 0 と同じ
▼ ただし高速表示オフの場合のみ
■条件分岐(変数): 【1】 CSelf3[[表示]>エフェクト] が 1 以上 |
戦闘コマンド用ではない場合は分岐し、
徐々に表示(エフェクト)が設定されている場合はさらに分岐し、
【ウェイト:5フレーム】を実行する。 |
|
342-347 |
▼ 2.カーソルの基本位置を設定する
▼ (このカーソル用座標値は、次にこのコモンで「更新」されたときに使用する) |
万能ウィンドウの左上にある最初の選択項目の表示位置をセルフ[34〜35]に設定。 |
|
348-354 |
▼ カーソルの上下左右移動幅を算出 |
カーソルの上下左右の移動量をセルフ[38〜39]に設定。 |
|
355-359 |
▼ カーソルの描画範囲を調節 |
カーソルの縦横の移動量からカーソルのサイズをセルフ[36〜37]に設定。 |
縦サイズは「カーソルの縦移動幅」でフォントサイズを超えないサイズで設定。 |
|
360-363 |
▼ 移動幅とカーソル縦幅から少し座標を補正 |
セルフ[35]に「(縦移動幅−縦カーソルサイズ)÷2」の値を加算し、
カーソルの縦の表示位置を補正。
補正なし |
|
補正あり(1ピクセル下に移動) |
|
|
|
|
|
364-368 |
▼ 項目名はすべて消去する |
選択項目を全て消去。 |
|
370 |
▼ このまま処理モード1(更新)も実行してしまう 。項目を表示するため。 |
|
371-376 |
■条件分岐(変数): 【1】 CSelf1[カーソル位置] が -1 と同じ |
カーソル位置の設定が無い場合は分岐し、
可変DB[18:基本システム用変数]のデータ[15:万能ウィンドウ縦スクロール位置]に「0」を設定し、
縦スクロールの位置を初期化。 |
|
377 |
セルフ[0]に「1(更新(スクロール+カーソル描画))」を設定。
この設定により、382行目の
■条件分岐(変数): 【1】 CSelf0[処理モード] が 1 と同じ
で分岐し、選択項目の表示処理などが実行されます。 |
|
378 |
セルフ[29]に「1」を設定し、選択項目を全て表示し直す設定にする。 |
382-872 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が 1 と同じ |
選択項目や選択カーソルの表示を更新する場合は分岐。 |
|
384-386 |
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 「更新」モードの場合
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ |
|
388-394 |
▼ まずカーソル位置が個数よりオーバーしてたら減らす |
カーソル位置が存在しない選択項目の位置になっている場合は、
最後にある選択項目の位置になるように修正します。
例えば項目個数が「40」の場合、カーソル位置は「0〜39」になり、上限は「39」になります。
そのため、「39」を超えるカーソル位置の場合は「39」に修正されます。 |
|
395 |
▼ カーソルの位置を再設定 ここで縦スクロール量を計算し直す |
|
399-402 |
「カーソル位置の行数−縦スクロール位置+1」をセルフ[12]に設定し、
縦スクロールしたあとの画面の上段を「1行目」とした時の行数が設定されます。 |
|
407-430 |
■条件分岐(変数): 【1】 CSelf12[一時変数C] が CSelf27[縦項目数] 以上 |
画面最下部にある選択項目を選択していて、さらにその下へカーソルを移動しようとした場合は分岐。 |
|
|
409-410 |
▼ 今見えてる部分より下を選ぼうとした場合
▼ ただし、一番下が見えてる場合はもう動かさない |
|
|
412-413 |
「全項目数+1行分の個数+1」をセルフ[66]に設定。 |
|
|
414-415 |
セルフ[13]に「セルフ[66]÷横項目数−縦項目数」を設定。
これにより、カーソル位置を表示するためのスクロール位置が算出されます。 |
|
|
416-426 |
■条件分岐(変数): 【1】 CSelf13[一時変数D] が CSelf11[一時変数B] 超 |
一覧を下へスクロールさせる必要がある場合は分岐し、
可変DB[18:基本システム用変数]のデータ[15:万能ウィンドウ縦スクロール位置]に
セルフ[45](スクロールさせる量)を加算。 |
|
433-467 |
■条件分岐(変数): 【1】 CSelf45[スクロール変化量] が 0 と同じ |
縦スクロールをもっと下げる処理を行っていない場合は分岐。 |
|
|
437 |
「カーソルの行数(カーソル位置÷横項目数)」をセルフ[10]に設定。 |
|
|
438 |
「表示画面の上段からの行数(カーソルの行数−縦スクロール位置)」をセルフ[12]に設定。 |
|
|
443-463 |
セルフ[12]に「減算1」を設定した上で、
セルフ[12]が「0未満(一覧を上へスクロールさせる必要がある)」の場合は分岐し、
セルフ[11]が「1以上(上にスクロールする事ができる)」の場合は分岐。 |
|
|
|
446-448 |
▼ 今見えてる画面より上を選ぼうとした場合
▼ スクロールを上に
▼ ただし、一番上が見えている場合はもう動かさない |
|
|
|
451 |
セルフ[45]に縦スクロールの調整行数(セルフ[12])を設定。 |
|
|
|
452 |
可変DB[18:基本システム用変数]のデータ[15:万能ウィンドウ縦スクロール位置]に
縦スクロールの調整行数を加算。 |
セルフ[12]はマイナス値なので、
加算と言ってもデータ[15:万能ウィンドウ縦スクロール位置]が減算されます。 |
|
|
|
453 |
「下限0」で縦スクロールの位置がマイナスにならないように設定。 |
|
472-475 |
▼ カーソル位置を算出 |
可変DB[18:基本システム用変数]のデータ[15:万能ウィンドウ縦スクロール位置]をセルフ[43]に取得し、
「カーソル位置−縦スクロール位置×横項目数」をセルフ[43]に設定。 |
|
476-479 |
▼ 横位置を算出 |
セルフ[43]を「横項目数を余剰」した値をセルフ[41]に設定し、
「セルフ[41]×カーソル移動横幅+左上カーソルX表示位置」をセルフ[41]に設定。 |
|
480-483 |
▼ 縦位置を算出 |
セルフ[43]を「縦項目数を余剰」した値をセルフ[42]に設定し、
「セルフ[42]×カーソル移動縦幅+左上カーソルY表示位置」をセルフ[42]に設定。 |
|
484 |
▼ カーソルを表示 |
|
487-506 |
■条件分岐(変数): 【1】 CSelf1[カーソル位置] が 0 以上 |
カーソル位置の設定がある場合は分岐。 |
|
|
489-493 |
▼ カーソル位置が0以上なら表示する |
カーソルの表示位置が選択項目の中心になるようにセルフ[10〜11]に設定。 |
|
|
494-497 |
▼ 中央基点にして、拡大率をちょっとだけ大きくしている |
カーソルの横サイズをゲーム画面の横サイズの「64分の1」だけ大きくし、
カーソルの縦サイズをゲーム画面の縦サイズの「128分の1」だけ大きくし、
【ピクチャ表示】でカーソル画像を表示。 |
|
|
498 |
【ピクチャエフェクト】を使って、カーソル画像を点滅させます。 |
|
|
499-500 |
ちょっとだけ大きくしたセルフ[36〜37]のサイズを元のサイズに戻す。 |
|
502-504 |
◇上記以外 |
カーソル位置が設定されていない場合は分岐し、カーソル画像を消去。 |
|
510 |
▼ ここから項目描画処理 |
|
513 |
▼ 項目を全再描画 |
|
516-518 |
▼ 繰り返し回数を計算 |
セルフ[40]から「縦スクロール位置×横項目数」を減算し、
「横項目数×縦項目数」を上限として、表示できる項目数を超える表示処理を行わないように設定。 |
|
519 |
▼ 2.02追加 もし1ページまるごとスクロールする場合は全更新にする |
|
521-530 |
■条件分岐(変数): 【1】 CSelf10[一時変数A] が CSelf40[全項目数] 以上 |
前回からの比較で縦スクロールのスクロール行数が1ページまるごと更新の場合は分岐。 |
|
|
523-524 |
セルフ[29]に「1」を設定して全選択項目の更新(表示し直し)をONにする。
セルフ[45]に「0」を設定して縦スクロールの変化値を初期化。 |
|
|
525-528 |
選択項目のピクチャを全て消去。 |
|
531-532 |
▼ 処理開始個数を計算 |
「縦スクロール×横項目数」をセルフ[43]に設定。
これは表示される左上の選択項目が1つ目の選択項目から数えて何項目目になるのかを設定。 |
例えば横に2つの選択項目が表示される場合、最初の画面では…
[項目0][項目1]
[項目2][項目3]
[項目4][項目5]
などと表示されます。
そして画面の最下部にカーソルを置き、さらに下キーを押して画面をスクロールさせると…
[項目2][項目3]
[項目4][項目5]
[項目6][項目7]
などと表示され、画面左上に表示される選択項目が「項目2」になります。
この場合はセルフ[43]に「2」が設定されます。 |
|
533 |
▼ ここでスクロールによる補正を加える |
|
534-537 |
■条件分岐(変数): 【1】 CSelf45[スクロール変化量] が -1 以下 |
上にスクロールさせる場合は分岐。 |
|
|
536-537 |
▼ 上にスクロール移動してたら、処理する全項目数を「下に消えた段」だけ加算 |
「縦スクロール変化量×横項目数」をセルフ[40]に減算。
なお、セルフ[45]はマイナス値なので、マイナス値の値を「減算」と言う事で、
結果的にセルフ[40]の値は増える設定になっています。 |
|
539-542 |
◇分岐: 【2】 [ CSelf45[スクロール変化量] が 1 以上 ]の場合↓ |
下にスクロールさせる場合は分岐。 |
|
|
540-542 |
▼ 下にスクロール移動してたら処理する全項目数を
「上に消えた段」だけ加算+処理開始個数を上に消えた段だけ戻す |
「縦スクロール変化量×横項目数」をセルフ[40]に加算。
「縦スクロール変化量×横項目数」をセルフ[43]に減算。 |
|
546 |
▼ 数値表示部のシフト量を計算(後の \ax[ ] 内で使用する)
▼ バージョンによってシフト量を分岐 Ver3.00修正 |
|
548-566 |
■条件分岐(変数): 【1】 Sys115:[読]Game.exeバージョン(x100) が 300 未満 |
ウディタ[3.00]以前の場合は分岐。 |
|
|
550-556 |
カーソル画像の横幅をセルフ[47]に設定。
なお、ゲーム画面のサイズが[320×240[x2]]の場合、
文字の表示処理のみが[640×480]のサイズで処理されるため、
カーソルの横幅を2倍にしてセルフ[47]に設定。 |
|
558-560 |
◇分岐: 【2】 [ Sys115:[読]Game.exeバージョン(x100) が 300 以上 ]の場合↓ |
ウディタ[3.00]以降の場合は分岐。 |
|
|
559-560 |
▼ Ver3.00以降はSys119の基本画面倍率で調整 Ver3.00修正 |
カーソル画像の横幅をセルフ[47]に設定。
ゲーム画面のサイズが2倍の場合はカーソルの横幅を2倍に、
ゲーム画面のサイズが3倍の場合はカーソルの横幅を3倍にしてセルフ[47]に設定。 |
|
563 |
▼ 項目を一つずつピクチャで表示する |
|
564-758 |
■回数付きループ [ CSelf40[全項目数] ]回 |
画面上の選択項目の移動、消去、新規表示を選択項目1つずつ処理していく。 |
|
|
565-568 |
▼ 横位置を算出 |
セルフ[41]に次に処理する選択項目のX表示位置を設定。 |
|
|
569-575 |
▼ 縦位置を算出 |
セルフ[42]に次に処理する選択項目のY表示位置を設定。 |
セルフ[42]の値をセルフ[48]に複製。
このセルフ[48]は、画面スクロール時に新規に選択項目を表示する時に、
そのスクロール移動のスタート地点となるY表示位置を設定する時に使います。 |
|
|
576-578 |
▼ 項目を表示 (最大200個まで) |
今回処理する選択項目のピクチャ番号をセルフ[21]に設定。 |
このピクチャ番号は、縦スクロール「0」の左上の選択項目を「15009番」とし、
「15009〜15208」の範囲でピクチャ番号が使用されます。
201個目の選択項目を表示するピクチャ番号は「15209→15009」と修正されるため、
使用されるピクチャ番号は常に「15009〜15208」の範囲内となります。 |
|
|
579 |
▼ 表示する |
|
|
581-583 |
■条件分岐(変数): 【1】 CSelf29[全更新フラグ] が 1 と同じ |
全ての選択項目を新規で表示する場合は分岐。 |
|
|
|
583 |
セルフ[46]に「1」を設定し、今回の選択項目を新規表示で処理。 |
|
|
585-618 |
◇上記以外 |
全ての選択項目を新規で表示しない場合は分岐。 |
|
|
|
586-587 |
▼ 次の項目を表示する必要があるのかどうかを判定
▼ まず表示する必要があるのは、上か下にスクロールした場合のみ |
|
|
|
588-601 |
■条件分岐(変数): 【1】 CSelf45[スクロール変化量] が -1 以下 |
上にスクロールの場合は分岐。 |
|
|
|
|
590-592 |
▼ 上にスクロールした場合、新規に表示するのは一番上のスクロール段だけ |
「縦スクロール位置×横項目数−スクロール変化量×横項目数」をセルフ[10]に設定。 |
|
|
|
|
593-601 |
■条件分岐(変数): 【1】 CSelf43[処理中個数] が CSelf10[一時変数A] 未満 |
画面の上(表示範囲外)の場合は分岐し、セルフ[46]に「1」を設定して新規表示を行うように設定。 |
新規表示の選択項目をスクロール移動させるスタート地点のY表示位置をセルフ[48]に設定。 |
|
|
|
603-616 |
◇分岐: 【2】 [ CSelf45[スクロール変化量] が 1 以上 ]の場合↓ |
下にスクロールの場合は分岐。 |
|
|
|
|
604-607 |
▼ 下にスクロールした場合、新規に「表示」するのは一番下のスクロール段だけ |
「縦項目数×横項目数+縦スクロール位置×横項目数−スクロール変化量×横項目数」
をセルフ[10]に設定。 |
|
|
|
|
608-616 |
■条件分岐(変数): 【1】 CSelf43[処理中個数] が CSelf10[一時変数A] 以上 |
画面の下(表示範囲外)の場合は分岐し、セルフ[46]に「1」を設定して新規表示を行うように設定。 |
新規表示の選択項目をスクロール移動させるスタート地点のY表示位置をセルフ[48]に設定。 |
|
|
621-708 |
■条件分岐(変数): 【1】 CSelf46[単体項目表示フラグ] が 1 と同じ |
選択項目を新規に表示する場合は分岐。 |
|
|
|
623 |
▼ 表示する項目名を算出 |
|
|
|
626-629 |
■条件分岐(変数): 【1】 CSelf11[一時変数B] が 0 以下 |
「残り個数/消費ポイント」の設定がない場合は分岐。 |
|
|
|
|
628-629 |
可変DB[19:万能ウィンドウ一時DB]の項目[5:付与文字列[後]]をセルフ[6]に設定。 |
|
|
|
631-641 |
◇上記以外 |
「残り個数/消費ポイント」の設定がある場合は分岐。 |
|
|
|
|
632 |
可変DB[19:万能ウィンドウ一時DB]の項目[4:付与文字列[前]]をセルフ[6]に設定。 |
|
|
|
|
633-640 |
セルフ[11]の値をセルフ[6]に追加。 |
セルフ[11]の値が10未満の場合は、数字の前に半角スペースを設定。 |
|
|
|
|
641 |
可変DB[19:万能ウィンドウ一時DB]の項目[5:付与文字列[後]]をセルフ[6]に追加。 |
この設定でセルフ[6]は「付与文字列[前]+残り個数/消費ポイント+付与文字列[後]」となります。
例えば「付与文字列[前]=×」「残り個数/消費ポイント=5」「付与文字列[後]=個」の場合は、
[項目名 × 5 個]などと表示されます。 |
|
|
|
644 |
▼ アイテム名だけピクチャ表示して、横幅を得る |
|
|
|
645 |
セルフ[49]に「100」を設定。
このセルフ[49]には、選択項目の横の拡大率を設定し、選択項目の文字列が長い時には、
セルフ[49]の値(横の拡大率)を変えて、カーソルの横幅の範囲内に入るように調整します。
▼表示例
|
|
|
|
647 |
項目名のみをピクチャで表示。
例えば [癒しの水 × 5 個]の場合は[癒しの水]だけを表示。 |
|
|
|
649 |
▼ もし文字列がカーソル横幅の一定%を超えていたら、横を縮小して調節する |
|
|
|
651-654 |
■条件分岐(文字): 【1】 CSelf6[付与文字列]が "" と同じ |
セルフ[6]に文字列が無い場合は分岐。 |
|
|
|
|
653-654 |
▼ 数値部がない場合は、もとの文字列がカーソル幅を超えているかどうかチェック |
カーソルの横幅をセルフ[12]に設定。 |
|
|
|
657-660 |
◇上記以外 |
セルフ[6]に文字列がある場合は分岐。
なお、セルフ[6]に設定されている文字列は[癒しの水 × 5 個]の[× 5 個]の部分です。 |
|
|
|
|
658-660 |
▼ 数値部が存在する場合は、とりあえず2.5文字分の予備を取って計算 |
「カーソルの横幅−(ゲームの横サイズ÷32)×2−(ゲームの横サイズ÷32)÷2」をセルフ[12]に設定し、
カーソルの横幅から右側に個数などを表示するスペース分を減算したものを設定。 |
|
|
|
663 |
▼ カーソル幅から溢れてたら、横拡大率を小さくする |
|
|
|
664-671 |
■条件分岐(変数): 【1】 CSelf11[一時変数B] が CSelf12[一時変数C] 超 |
項目名のピクチャの横サイズがカーソルの横幅より大きい場合は分岐。 |
|
|
|
|
666-667 |
「カーソル横幅×100÷ピクチャ横幅」を算出し、
カーソルの横幅の範囲内に入る横拡大率をセルフ[49]に設定。 |
|
|
|
|
668-671 |
▼ シフト量も増やして調整する |
横拡大率が小さくなる事で、右側の「× 5 個」を表示位置が左に寄るので、
「10000÷横拡大率×シフト量(セルフ[47])÷100」
を実行して、右側の「× 1 個」の表示位置を右へずらしたシフト値をセルフ[12]に設定。 |
|
|
|
673-675 |
◇上記以外 |
項目名のピクチャの横サイズがカーソルの横幅以下の場合は分岐。 |
|
|
|
|
674-675 |
セルフ[47](選択項目の横幅)をセルフ[12]に設定。 |
|
|
|
678-688 |
▼ この項目の表示色をここで設定
▼ 選択可能なら白に 選択不能なら紺にしている |
選択項目の表示色「R=100、G=100、B=100」をセルフ[53〜55]に設定。 |
選択項目が選択不可の場合は「R=50、G=50、B=70」を設定。
▼選択可能と選択不可の表示例
|
|
|
|
689 |
▼ \ax[] \ay[] を駆使して、一枚のピクチャに項目名と数値を同時に埋め込む |
|
|
|
690-698 |
■条件分岐(変数): 【1】 CSelf3[[表示]>エフェクト] が 0 と同じ |
エフェクト設定が無い場合は、セルフ[57]に「255」を設定し、
初めから表示されている状態にします。 |
エフェクト設定がある場合は、セルフ[57]に「0」を設定し、
透明状態から表示されるようにします。 |
|
|
|
699-703 |
■条件分岐(変数): 【1】 CSelf60[項目左寄せフラグ(オフ=中央)] が 0 と同じ |
選択項目を中央表示にする場合は分岐し、特殊文字「<C>」をセルフ[7]に追加。
特殊文字「<C>」を設定していない |
|
特殊文字「<C>」を設定した |
|
|
|
|
|
|
|
704 |
選択項目をピクチャで表示。 |
|
|
709 |
▼ スクロールによる移動処理はここで行う(「表示」後に移動指定する必要性から) |
|
|
710-713 |
■条件分岐(変数): 【1】 CSelf29[全更新フラグ] が 1 と同じ
|
全ての選択項目を新規で表示する場合は分岐。 |
|
|
|
704-705 |
▼ 全表示時の表示演出はここで行う |
表示予定の位置に選択項目を表示。 |
|
|
707-745 |
◇上記以外 |
全ての選択項目を新規で表示しない場合は分岐。 |
|
|
|
716 |
▼ スクロール移動があれば移動や消去を行う |
|
|
|
717-734 |
■条件分岐(変数): 【1】 CSelf45[スクロール変化量] が -1 以下 |
上にスクロールの場合は分岐。 |
|
|
|
|
720-721 |
▼ 上にスクロールした場合、消去するのは一番下のスクロール段だけ |
「縦項目数×横項目数+スクロール位置×横項目数」を算出し、
を算出し、万能ウィンドウの表示範囲外になる項目番号をセルフ[10]に設定。 |
|
|
|
|
722-727 |
■条件分岐(変数): 【1】 CSelf43[処理中個数] が CSelf10[一時変数A] 以上 |
表示範囲外(消去する)の場合は分岐し、
画面下へ移動するピクチャの移動と不透明度「0」の速度を2段階に変えて徐々に消去。 |
|
|
|
|
729-732 |
◇上記以外 |
表示範囲内(消去しない)の場合は分岐し、
画面下へ移動するピクチャの移動速度を2段階に変えて徐々に下へ移動。 |
|
|
|
736-751 |
◇分岐: 【2】 [ CSelf45[スクロール変化量] が 1 以上 ]の場合↓ |
下にスクロールの場合は分岐。 |
|
|
|
|
737-738 |
▼ 下にスクロールした場合、「消去」するのは一番上のスクロール段だけ |
「スクロール位置×横項目数」を算出し、
万能ウィンドウの表示範囲内の左上になる項目番号をセルフ[10]に設定。 |
|
|
|
|
739-744 |
■条件分岐(変数): 【1】 CSelf43[処理中個数] が CSelf10[一時変数A] 未満 |
表示範囲外(消去する)の場合は分岐し、
画面上へ移動するピクチャの移動と不透明度「0」の速度を2段階に変えて徐々に消去。 |
|
|
|
|
746-749 |
◇上記以外 |
表示範囲内(消去しない)の場合は分岐し、
画面上へ移動するピクチャの移動速度を2段階に変えて徐々に上へ移動。 |
|
|
756 |
セルフ[43]に「加算1」を設定し、次の選択項目の表示処理へ移行する。 |
|
760 |
▼ 「説明」文を表示する (表示するモードだった場合のみ) |
|
761-774 |
■条件分岐(変数): 【1】 CSelf1[カーソル位置] が 0 以上 |
カーソルが画面上に存在する場合は分岐。 |
|
|
763 |
▼ すでに説明文用のピクチャが表示されているかどうかで判定 |
|
|
766-772 |
■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 と同じ |
説明用のウィンドウに表示する文字列用のピクチャが使用されている場合は分岐。 |
|
|
|
768-770 |
可変DB[19:万能ウィンドウ一時DB]の項目[6:説明文]の文字列を説明用のピクチャで表示。 |
|
778 |
▼ 上下の矢印を表示する
|
|
780 |
▼ 上に、見えていないデータがある場合は、上に矢印を表示する |
|
784-789 |
■条件分岐(変数): 【1】 CSelf44[スクロール位置] が 1 以上 |
一覧の上に表示範囲外の選択項目がある場合は分岐し、
一覧ウィンドウの上部にピクチャ[15004]で[▲]を表示。 |
|
791-792 |
◇上記以外 |
一覧の上に表示範囲外の選択項目が無い場合は分岐し、
[▲]を表示するピクチャ[15004]を消去。 |
|
798 |
▼ 全部表示しきれていない場合は、下に矢印を表示する |
|
804-810 |
■条件分岐(変数): 【1】 CSelf44[スクロール位置] が 1 以上 |
一覧の下に表示範囲外の選択項目がある場合は分岐し、
一覧ウィンドウの下部にピクチャ[15005]で[▼]を表示。 |
|
812-813 |
◇上記以外 |
一覧の下に表示範囲外の選択項目が無い場合は分岐し、
[▼]を表示するピクチャ[15005]を消去。 |
|
819 |
▼ スクロールバーもどきもつけておく
|
|
821 |
▼ セルフ10が全縦項目数 |
|
824-829 |
■条件分岐(変数): 【1】 CSelf11[一時変数B] が 1 以上 |
横の項目設定数が「2個」の場合で…
[項目00][項目01]
[項目02][項目03]
[項目04]
のように、最後の行の横の項目数が「2個」ではない時には分岐し、セルフ[10]に「加算1」を設定。 |
ここのセルフ[10]には「合計行数」を設定していますが、
「全項目数(5)÷横項目設定数(2)」で計算すると「2.5」となり、
小数点以下は切り捨てになるので、セルフ[10]に設定される合計行数は「2行」になります。
しかし…
[項目00][項目01]
[項目02][項目03]
[項目04]
は3行あるので、セルフ[10]は「3」である必要があります。
そのため、ここの条件分岐の設定で小数点以下を切り上げ(2.5 → 3)にしてセルフ[10]を設定します。 |
|
832-858 |
■条件分岐(変数): 【1】 CSelf61[スクロール表示フラグ] が 1 と同じ |
スクロールバーを表示する場合は分岐。 |
|
|
834-836 |
■条件分岐(変数): 【1】 CSelf10[一時変数A] が CSelf27[縦項目数] 以下 |
範囲外(表示していない)の選択項目が無く、全ての選択項目が画面内に表示されている場合は分岐。 |
|
|
|
836 |
スクロールバーを表示するピクチャ[15006]を消去。 |
|
|
838-858 |
◇上記以外 |
範囲外(表示していない)の選択項目がある場合は分岐。 |
|
|
|
839 |
▼ 現在の表示範囲が、縦の何割を占めるか計算し、スクロールバー長を算出 |
|
|
|
840-841 |
「縦項目数×100÷全行数」をセルフ[11]に設定。
これは全行数を「100%」とした時にウィンドウ画面上に何パーセントの行を表示しているのかを算出。
例えば、全行数が「50行」で、画面上に表示している行数が「10行」だった場合、
全体の20%の行が画面上に表示されているので、セルフ[11]には「20」が設定されます。 |
|
|
|
842-843 |
「ウィンドウの縦サイズ×表示できる行数%÷100」で算出した
スクロールバーの長さをセルフ[11]に設定。
例えば、ウィンドウの縦のサイズが「300ピクセル」で、
画面上に表示できる行数のパーセントが「20%」だった場合、
スクロールバーの長さは「300×20%=60」になるので、セルフ[11]には「60」が設定されます。 |
|
|
|
844-845 |
▼ セルフ14はスクロールバー上下の「遊び」の部分 |
可変DB[18:基本システム用変数]のデータ[98:座標倍率Y[x10]]をセルフ[14]に設定。
このセルフ[14]はあとで上下に遊び(隙間)を作る時に使います。
セルフ[14]に設定された遊びの値は、上下の遊びの長さを合わせた合計値です。
「セルフ[14]=8」の場合は、上に4ピクセル、下に4ピクセルの遊び(隙間)が設定されます。 |
|
|
|
846-848 |
▼ スクロールバーが今どこにあるか算出 |
「ウィンドウの縦サイズ−スクロールバーの長さ−遊び+1」をセルフ[12]に設定。
これにより、スクロールバーと遊びの部分を除いた残りの長さが出ます。 |
|
|
|
849-850 |
「残りの長さ×スクロール位置行数÷表示されない行数(全行数−縦項目数)」をセルフ[12]に設定し、
スクロールバーが全体の何パーセントの位置にあるのかを算出。
例えば、全行数が「45行」で縦項目数(ウィンドウに表示できる行数)が「13行」である場合は、
表示されない行数は「32行」になります。
この表示されない行数「32行」を「100%」として、
現在表示している行数が何パーセントの位置にあるのかによって、
スクロールバーの表示位置を算出します。
|
|
|
|
851-852 |
「ウィンドウのY表示位置」と「遊び÷2」をセルフ[12]に加算し、
スクロールバーの縦表示位置を決定します。 |
|
|
|
853-856 |
▼ X座標を計算 |
「ウィンドウのX表示位置+横サイズ−スクロールバーの幅(6)」をセルフ[13]に設定し、
ピクチャ[15006]でスクロールバーを表示。 |
|
860-862 |
◇上記以外 |
スクロールバーを表示しない場合は分岐。 |
|
|
861-862 |
▼ スクロールを出さない場合はここで消去 |
スクロールバーを表示するピクチャ[15006]を消去。 |