部隊名リスト型& カスタム::On_部隊名表示直前(int 武将番号)

部隊名リスト型& カスタム::On_部隊名表示直前(int 武将番号) {
  return NULL;
}
  • タイミング

    • このメソッドは武将の「兵科部隊名」を表示するタイミングで呼び出される。
    • 様々な画面にて、このメソッドは呼び出される。

  • 一般的用途

    • 思い入れの強い武将や、大名勢力など、 「新しい兵科部隊名を付けたい」という目的で利用する。
  • 例①

    部隊名リスト型& カスタム::On_部隊名表示直前(int 武将番号) {
    
      int iBushouID = 武将番号-1; // 武将番号→武将番号【配列用】に
    
      if ( 0 <= iBushouID && iBushouID < 最大数::武将情報::配列数 ) {
    
        if ( p武将戸籍情報[iBushouID].顔番号 == 顔番号::長尾景虎 ) { // 上杉謙信の顔&列伝番号
    
          if ( Get_戦闘値(iBushouID) >= 90 ) { // 戦闘値(家宝含)が180以上
              部隊名リスト型 nb = {
                "軍神足軽",
                "軍神騎馬",
                "軍神鉄砲",
                "軍神騎鉄"
              };
              return nb;
          } else {
              部隊名リスト型 nb = {
                "聖将足軽",
                "聖将騎馬",
                "聖将鉄砲",
                "聖将騎鉄"
              };
              return nb;
          }
        }
      }
    
      // 変更しない場合NULL
      return NULL;
    }
    

  • 例②

    部隊名リスト型& カスタム::On_部隊名表示直前(int 武将番号) {
    
      /*
      * 北条家血筋の大名に帰属するすべての者の兵科部隊名を変更する。
      */
    
      int iBushouID = 武将番号-1; // 武将番号→武将番号【配列用】に
    
      if ( 0 <= iBushouID && iBushouID < 最大数::武将情報::配列数 ) {
    
        // 対象の武将が帰属している大名勢力の番号を求める。
        int iDaimyoID = p武将情報[iBushouID].所属大名【大名番号】-1;
    
        // 存在すれば
        if ( 0 <= iDaimyoID && iDaimyoID < 最大数::大名情報::配列数 ) {
    
          // その大名勢力の大名の武将IDを求める。
          int iDaimyoBushouID = p大名情報[iDaimyoID].大名【武将番号】-1;
    
          // 大名いるはずだが…
          if ( 0 <= iDaimyoBushouID && iDaimyoBushouID < 最大数::武将情報::配列数 ) {
    
            // その大名の血筋は8(北条家の血筋)
            if ( p武将情報[iDaimyoBushouID].所属血筋 == 8 ) {
    
              部隊名リスト型 nb = {
                "北条足軽",
                "北条騎馬",
                "北条鉄砲",
                "北条騎鉄"
              };
              return nb;
            }
          }
        }
      }
    
      // 変更しない場合NULL
      return NULL;
    }
    
  • 例③

    武将情報画面で見る際に出る「隊」の字は、以下のように「Set_部隊名書式」関数で変更することが出来る。

    部隊名リスト型& カスタム::On_部隊名表示直前(int 武将番号) {
    
        int iBushouID = 武将番号 - 1; // 武将番号→武将番号【配列用】に
    
        if (0 <= iBushouID && iBushouID < 最大数::武将情報::配列数) {
    
            if (p武将戸籍情報[iBushouID].顔番号 == 顔番号::長尾景虎) {
    
                部隊名リスト型 nb = {
                    "足軽",
                    "騎馬",
                    "鉄砲",
                    "騎鉄"
                };
                // 隊ではなく、軍を付ける
                Set_部隊名書式(nb, "%s軍");
                return nb;
            }
    
    
            if (p武将戸籍情報[iBushouID].顔番号 == 顔番号::足利義輝) {
    
                部隊名リスト型 nb = {
                    "足軽",
                    "騎馬",
                    "鉄砲",
                    "騎鉄"
                };
    
                // 足軽(弓隊含む)か騎馬の時は、修飾として前に「御」、後ろに「軍」を付ける
                if (p武将情報[iBushouID].兵態 == 兵態::騎馬 || p武将情報[iBushouID].兵態 == 兵態::足軽) {
    
                    Set_部隊名書式(nb, "御%s軍");
                }
    
                // それ以外の時は、「隊」も何も付けない
                else {
                    Set_部隊名書式(nb, "%s");
    
                }
                return nb;
            }
    
    
        }
    
        // 変更しない場合NULL
        return NULL;
    }