Scenario Controller
ScenarioController [ shia.sce ]
ScenarioController
シナリオコントローラ。
ADVのキモたるシナリオを一括管理、実行します。
特徴
複数形式のシナリオを同時に、同列に、混在して実行できます。
様々な形式のシナリオについて、それぞれにパーサを用意し
それぞれのパーサが仕様の差を吸収する事で
それらを同等に扱う事ができます。
パーサ
シナリオ解読機能をシナリオの種類ごとにまとめた物です。
こいつらがシナリオの抽象化を行うことにより
複数形式のシナリオを同列、混在させて扱う事が出来ます。
やってる事はインタプリタな気もする。
スタック
読み込んだシナリオはスタック構造で保持されます。
新しく読み込まれたシナリオはプッシュされ、
読み終わったシナリオはポップされます。
命令
外からの操作は execScenario
(カレントのシナリオを1ステップ実行する)
runSceAsReplace
(カレントのシナリオを削除し、新しいシナリオをカレントにする)
runSceAsChild
(新しいシナリオをカレントにする)
の3命令で済みます。
Parsers
パーサによる抽象化
各シナリオフォーマットごとにそれぞれのパーサを用意し
フォーマット間の差異をパーサで吸収する事により
そのフォーマットに関わらず、一律にシナリオとして実行する事が出来る。
命令
シナリオ読み込み
実行
に対応できれば良い。
[ShiaSce] ShiaSceParser
ShiaSceの章
を参考の事。
ShiaMessage
shianame
sce
order
args
returns
explain
[sce.exec
-
-
カレントのシナリオを実行します。
[sce.load
sce: シナリオ名
as: "child"/"replace"
-
シナリオファイルをロードします。
[sce.clear
-
-
シナリオ・スタックをクリアします。
[sce.close
-
-
カレントシナリオを破棄します。