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;
    }