戦国名城物語型& カスタム::On_戦国名城物語要求時(int 城番号)

戦国名城物語型& カスタム::On_戦国名城物語要求時(int 城番号) {
  return NULL;
}
  • タイミング

    • このメソッドは城の列伝に相当する「戦国名城物語」が表示するタイミングで1回呼び出される。

  • 一般的用途

    • 様々な状況に応じて、城の名前、あるいは、列伝等を変化させたい場合に使用する。
  • 例①

    戦国名城物語型& カスタム::On_戦国名城物語要求時(int 城番号) {
    
      // 二条城の位置にある列伝を見ようとした時、無条件で表示を変更する。
    
      if (城番号 == 128) { // 128とは京都二条城の位置の城番号のこと。
        戦国名城物語型 mm(
          "お城のラベル オシロノラベル",
    
          "123456789101112131415161718\x0A"
          "123456789101112131415161718\x0A"
          "123456789101112131415161718\x0A"
          "123456789101112131415161718\x0A"
          );
    
        return mm;
      }
    
      // 変更しない場合NULL
      return NULL;
    }
    
    
  • 例②

    戦国名城物語型& カスタム::On_戦国名城物語要求時(int 城番号) {
    
      // 伊達政宗が大名の時、その居城の列伝だけ変化する。
      // 政宗がどこの城にいるかは関係ない、彼がいる城の列伝の表示を変化させる。
    
      // 番号→配列番号
      int iMonogatariCastleID = 城番号 - 1;
    
      // 城の範囲チェック
      if (0 <= iMonogatariCastleID && iMonogatariCastleID < 最大数::城情報::配列数) {
    
        // 伊達政宗は今、天翔記に居るか? 武将番号何番?
        int iMasamuneBushouID = Get_武将番号【配列用】(顔番号::伊達政宗); // 通常は伊達政宗の顔番号
    
        デバッグ出力 << Get_名前(iMasamuneBushouID) << endl;
        // 範囲チェック
        if (0 <= iMasamuneBushouID && iMasamuneBushouID < 最大数::武将情報::配列数) {
    
          // 政宗は大名か?
          if (p武将戸籍情報[iMasamuneBushouID].身分 == 身分::大名) {
            デバッグ出力 << Get_名前(iMasamuneBushouID) << "は大名" << endl;
    
            // 政宗が居る城はどこ?
            int iMasamuneCastleID = p武将情報[iMasamuneBushouID].所属居城【城番号】-1; // 正宗が所属する城
    
            デバッグ出力 << Get_城名(iMasamuneCastleID) << "に居る" << endl;
    
    
            // 今表示する「戦国名城物語」の城と、政宗が居る城とが同じものである。
            if (iMonogatariCastleID == iMasamuneCastleID) {
    
              戦国名城物語型 mm(
                "独眼竜の城 ドクガンリュウノシロ",
    
                "123456789101112131415161718\x0A"
                "123456789101112131415161718\x0A"
                "123456789101112131415161718\x0A"
                "123456789101112131415161718\x0A"
                );
    
              return mm;
    
            }
          }
        }
      }
    
      // 変更しない場合NULL
      return NULL;
    }