int カスタム::On_待機武将登場直前(int 武将番号, int 登場済人数, int 待機武将データ数)

int カスタム::On_待機武将登場直前(int 武将番号, int 登場済人数, int 待機武将データ数) {
	return -1;
}

引数の補足

  • 武将番号

    「このメソッド後に」、この武将番号へと待機武将が登場する。
    よって、 p武将情報[x] や p武将戸籍情報[x] では、該当の武将の情報を取得することはできない。
    該当の武将はまだ登場しておらず、このメソッドの直後に「武将番号スロット」へと上書き登録されるのである。
  • 登場人数:

    現行進行中のシナリオにおいて、「何人の待機武将が、すでに登場済み」なのかの人数。
    この情報があれば、「次に登場する待機武将」を割り出すことが出来る。

    なお、この値は、「Get_待機武将登場済人数()」という関数の結果と同じ値である。
  • 待機武将データ数:

    現行進行中のシナリオにおいて、そもそも「何人の待機武将データ」がシナリオデータとして存在するのか、の情報。
    ScenarioModには、Get_待機武将戸籍情報リスト() という「現行シナリオの待機武将情報全体」を扱うための関数が存在するが、
    「各シナリオ」によって、「待機武将データ数」は異なるため、この引数が渡ってくる。

    なお、この値は、「Get_待機武将データ数()」という関数の結果と同じ値である。

返り値

  • -1

    通常通り、登場する。

  • FALSE や NULL

    該当の待機武将は登場せず、スキップされる。
    一度スキップしてしまうと、2度と登場することはない。

タイミング

  • このメソッドは「待機武将」が登場する直前に実行される。

一般的用途

  • 待機武将の情報を利用して、今登場しようとしている武将が特定の武将であれば、「登場させない」などといった制御をおこなう

例①

int カスタム::On_待機武将登場直前(int 武将番号, int 登場済人数, int 待機武将データ数) {

    auto p待機武将戸籍情報 = Get_待機武将戸籍情報リスト();

    if (p待機武将戸籍情報) {

        // p待機武将戸籍情報 は インデックスが 0 から始まる登場順にならんでいるので、
        // 「登場済人数」をインデックスにあてはめると、「これまで登場した武将」の「次の人」、
        // を指すインデックスとなる
        auto next武将 = p待機武将戸籍情報[登場済人数];

        if (next武将.顔番号 == 顔番号::明智光秀) {

            // 登場しない

            return FALSE;
        }

        if (string(next武将._名字) == "ほげげ" && string(next武将._名前) == "うごご") {

            // p武将情報とは異なり、姓名の文字列で判定する必要性は、ほとんど無いはずなので、
            // Get_名字()やGet_名前()といったものは用意されていない。

            return FALSE;
        }

    }

    return -1;
}