プレイヤ担当

  • プレイヤが担当する大名
  • プレイヤ担当する大名の麾下の軍団
  • プレイヤが担当する大名の麾下の武将

    PICTURE

これらを特別視してプログラムすることは、ScenarioModでは非常に多いと言えます。
このため、これらを判定しやすい関数が用意されています。

プレイヤ担当大名、プレイヤ担当軍団、プレイヤ担当武将

bool Is_プレイヤ担当大名(WORD 大名番号【配列用】)
bool Is_プレイヤ担当軍団(WORD 軍団番号【配列用】)
bool Is_プレイヤ担当武将(WORD 武将番号【配列用】)
シナリオ3~5で、織田家の配下から独立できる武将や城を見繕う
void カスタム::On_プレイヤ担当ターン《メイン画面》() {

	for (int iDaimyoID = 0; iDaimyoID < 最大数::大名情報::配列数; iDaimyoID++) {
		// それはプレイヤが担当している大名家である
		if (Is_プレイヤ担当大名(iDaimyoID)) {
			int iBushouID = p大名情報[iDaimyoID].大名【武将番号】 - 1;

			if (0 <= iBushouID && iBushouID < 最大数::武将情報::配列数) {
				デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << endl;
			}
		}
	}

	for (int iGundanID = 0; iGundanID < 最大数::軍団情報::配列数; iGundanID++) {
		// それはプレイヤが担当している大名の麾下の軍団のである
		if (Is_プレイヤ担当軍団(iGundanID)) {

			int iBushouID = p軍団情報[iGundanID].軍団長【武将番号】 - 1;

			if (0 <= iBushouID && iBushouID < 最大数::武将情報::配列数) {
				if (p軍団情報[iGundanID].軍団割当番号 == 1) {
					デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << "はプレイヤが実際に操作している軍団" << endl;
				} else {
					デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << "はプレイヤ担当の軍団ではあるが、第二軍団以下なので、操作はしていません。" << endl;
				}
			}
		}
	}

	for (int iBushouID = 0; iBushouID < 最大数::武将情報::配列数; iBushouID++) {
		// それはプレイヤが担当している大名の麾下の武将である。どこの軍団の武将かは問わない。
		// 姫や妻は軍団には所属していないため、この「プレイヤ担当武将」の判定ではfalseとなる。
		if (Is_プレイヤ担当武将(iBushouID)) {
			int iGundanID = p武将情報[iBushouID].所属軍団【軍団番号】 - 1;
			if (0 <= iGundanID && iGundanID < 最大数::軍団情報::配列数) {
				int 軍団割当番号 = p軍団情報[iGundanID].軍団割当番号;
				デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << "はプレイヤの麾下勢力の第" << 軍団割当番号 << "軍団に居る武将です。" << endl;
			}
		}

		else if (p武将戸籍情報[iBushouID].状態 == 状態::姫) {
			int iDaimyoID = p武将情報[iBushouID].所属大名【大名番号】 - 1;
			if (Is_プレイヤ担当大名(iDaimyoID)) {
				int i伴侶BushouID = Get_伴侶武将番号【配列用】(iBushouID);

				if (0 <= i伴侶BushouID && i伴侶BushouID < 最大数::武将情報::配列数) {
					デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << "はプレイヤ担当大名に所属する妻で、相手は" << Get_名字(i伴侶BushouID) + Get_名前(i伴侶BushouID) << "です。" << endl;
				}
				else {
					デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << "はプレイヤ担当大名に所属する姫です。" << endl;
				}
			}
		}
	}
}

より詳細を知るには...

「プレイヤ担当」に関する主な所は以上となります。 詳しくは「軍団情報型.h」などを参照してください。