Scenario Controller

ScenarioController [ shia.sce ]

ScenarioController

シナリオコントローラ。
ADVのキモたるシナリオを一括管理、実行します。

特徴

複数形式のシナリオを同時に、同列に、混在して実行できます。


様々な形式のシナリオについて、それぞれにパーサを用意し
それぞれのパーサが仕様の差を吸収する事で
それらを同等に扱う事ができます。

パーサ

シナリオ解読機能をシナリオの種類ごとにまとめた物です。
こいつらがシナリオの抽象化を行うことにより
複数形式のシナリオを同列、混在させて扱う事が出来ます。

やってる事はインタプリタな気もする。

スタック

読み込んだシナリオはスタック構造で保持されます。
新しく読み込まれたシナリオはプッシュされ、
読み終わったシナリオはポップされます。

命令

外からの操作は execScenario
(カレントのシナリオを1ステップ実行する)
runSceAsReplace
(カレントのシナリオを削除し、新しいシナリオをカレントにする)
runSceAsChild
(新しいシナリオをカレントにする)
の3命令で済みます。

Parsers

パーサによる抽象化

各シナリオフォーマットごとにそれぞれのパーサを用意し
フォーマット間の差異をパーサで吸収する事により
そのフォーマットに関わらず、一律にシナリオとして実行する事が出来る。

命令

に対応できれば良い。

[ShiaSce] ShiaSceParser

ShiaSceの章を参考の事。

ShiaMessage

shianamesce
orderargsreturns
explain
[sce.exec--
カレントのシナリオを実行します。
[sce.loadsce: シナリオ名
as: "child"/"replace"
-
シナリオファイルをロードします。
[sce.clear--
シナリオ・スタックをクリアします。
[sce.close--
カレントシナリオを破棄します。