ScenarioModは多くのたくさんのソースファイルが付いていますが、
理解すべき対象は非常に絞られています。
しかも幸いなことに、理解対象はすべて「日本語による関数や変数」なのです。
普段からプログラムに書き慣れていない人は、
ScenarioModのソースを見ると、圧倒されてしまうと思います。
ScenarioModではこれらを可能な限り緩和するべく、理解対象の処は、可能な限り「日本語」を多く使ってプログラムを記載しています。
また、ソースを以下のような趣旨にハッキリと区分しています。
見る必要も編集する必要もないもの。
(※これらはバージョンがアップされたら更新されるため、編集は非推奨)
ソースを記述する際には、その都度参照する必要はあるが編集する必要はないもの。
(※これらはバージョンがアップされたら更新されるため、編集は非推奨)
自分で編集すべきもの。
に分かれています。
早速、ソリューションエキスプローラで確認してみましょう。
まず、ソリューションエキスプローラーのツリー状の「+」「-」部分をあちこちクリックして、
以下のような「表示状態」にしてみましょう。
上図の
赤い部分が『見る必要はあるが編集する必要はないもの』です。
「青い部分」だけが『③自分で編集すべきもの』となります。
そうです。
実は「自分で編集すべきもの」はたったの2つしかないのです。
しかもこの2つは「2つで1組の」セットですから、
言い換えれば、編集対象は「青い枠内」の1セットだけと言えます。
各々を理解するまえに、軽く「『自分で編集すべきもの』を見てみることにしましょう。
「カスタム駆動関数.cpp」の中身を見ると、以下のようになっています。
他にもいろいろと記載されていますが、まずは以下のような記述の部分を焦点としましょう。
string カスタム::On_噴出メッセージ直前(string 武将名, string 元メッセージ, メッセージ関連情報型 メッセージ関連情報) { if (武将名 == "真田幸隆") { return "マジかよ…最悪だぉ!!"; } // 変更しない場合"" return ""; }
細かなところの意味は不明でしょうが、どうやら
「噴出しメッセージの直前」に「武将が『真田幸隆』」ならば、「マジかよ…最悪だぉ!!」にしているということ。
詳細は不明としても、とにかく
『真田幸隆』ならば「マジかよ…最悪だぉ!!」なんだということがわかります。
少し他のところに自分で入力してみるとしましょう。
今回は「On_プレイヤ担当ターン《メイン画面》」の関数に5行ほど足しこんで以下のように記述してみましょう。
この段階ではハッキリと意味を理解する必要はありません。
void カスタム::On_プレイヤ担当ターン《メイン画面》() { フェイドアウト(); カメラ移動(3); フェイドイン(); 効果音再生(効果音音源::豊作); 確認ダイアログ表示("これはプロトタイプだよ!!"); }
「プレイヤのターンがメイン画面でまわってきた時」、「フェイドアウト~カメラ移動(3とは何だ?)~フェイドイン」⇒「効果音の『豊作』が鳴って」⇒「『これはプロトタイプだよ!!』というダイアログが出る」
日本語なので、なんとなくわかります。
「カメラ移動」の「3」というのは何でしょうか。
「カメラ移動」にマウスを当ててみましょう。
すると、バルーンヘルプ表示が出るはずです。
どうやら、「3」というのは城番号か何かのようです。「3番=どこの城」なのか? は今の段階ではさておき、「3番の城にカメラ移動」するのでしょう。
さて、(ScenarioMod.dllをちゃんと天翔記フォルダーにコピーしたかを確認した後)、実際に天翔記を起動して、 実際にそうなのか確認してみましょう。
確かにプレイヤーのターンで、フェイドアウト・インを挟んで「どこぞ」にカメラが移動した後、勝ち鬨と共に、ダイアログが表示されました。
又、真田幸隆を見てみたところ、「会見」のメッセージや「商人」とのやりとりなどで「マジかよ…最悪だぉ!!」ばかり言っています。
どうやら確かに機能しているようです。
以上となります。
それでは次節より、「知るべきこと」について常に「練習」を挟みながら、細かく見てゆきましょう。