当前位置: 首页>>代码示例>>C++>>正文


C++ Weapon::IsPrimary方法代码示例

本文整理汇总了C++中Weapon::IsPrimary方法的典型用法代码示例。如果您正苦于以下问题:C++ Weapon::IsPrimary方法的具体用法?C++ Weapon::IsPrimary怎么用?C++ Weapon::IsPrimary使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Weapon的用法示例。


在下文中一共展示了Weapon::IsPrimary方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: if

void
NetGameClient::DoWepRelease(NetMsg* msg)
{
	if (!msg) return;

	NetWepRelease release;
	release.Unpack(msg->Data());

	NetPlayer* player = FindPlayerByObjID(release.GetObjID());
	if (player) {
		player->DoWepRelease(&release);
	}

	else {
		Ship* shooter = FindShipByObjID(release.GetObjID());
		if (shooter) {
			int   index = release.GetIndex();
			DWORD tgtid = release.GetTgtID();
			DWORD wepid = release.GetWepID();
			int   subid = release.GetSubtarget();
			bool  decoy = release.GetDecoy();
			bool  probe = release.GetProbe();

			Weapon* w = 0;

			if (decoy)        w = shooter->GetDecoy();
			else if (probe)   w = shooter->GetProbeLauncher();
			else              w = shooter->GetWeaponByIndex(index);

			if (w && !w->IsPrimary()) {
				SimObject*  target = FindShipByObjID(tgtid);
				System*     subtgt = 0;

				if (target) {
					if (subid >= 0) {
						Ship* tgt_ship = (Ship*) target;
						subtgt = tgt_ship->Systems().at(subid);
					}
				}
				else {
					target = FindShotByObjID(tgtid);
				}

				Shot* shot = w->NetFireSecondary(target, subtgt, wepid);

				if (shot && shot->IsDrone()) {
					if (probe)
					shooter->SetProbe((Drone*) shot);

					else if (decoy)
					shooter->AddActiveDecoy((Drone*) shot);
				}
			}
		}
	}
}
开发者ID:The-E,项目名称:Starshatter-Experimental,代码行数:56,代码来源:NetGameClient.cpp

示例2: if

bool
NetPlayer::DoWepRelease(NetWepRelease* release)
{
	if (ship && release) {
		int   index = release->GetIndex();
		DWORD tgtid = release->GetTgtID();
		DWORD wepid = release->GetWepID();
		int   subid = release->GetSubtarget();
		bool  decoy = release->GetDecoy();
		bool  probe = release->GetProbe();

		Weapon* w = 0;

		if (decoy)        w = ship->GetDecoy();
		else if (probe)   w = ship->GetProbeLauncher();
		else              w = ship->GetWeaponByIndex(index);

		if (w && !w->IsPrimary()) {
			SimObject*  target = 0;
			System*     subtgt = 0;

			NetGame* net_game = NetGame::GetInstance();
			if (net_game) {
				target = net_game->FindShipByObjID(tgtid);

				if (target) {
					if (subid >= 0) {
						Ship* tgt_ship = (Ship*) target;
						subtgt = tgt_ship->Systems().at(subid);
					}
				}
				else {
					target = net_game->FindShotByObjID(tgtid);
				}
			}

			Shot* shot = w->NetFireSecondary(target, subtgt, wepid);

			if (shot && shot->IsDrone()) {
				if (probe)
				ship->SetProbe((Drone*) shot);

				else if (decoy)
				ship->AddActiveDecoy((Drone*) shot);
			}

			return true;
		}
	}

	return false;
}
开发者ID:The-E,项目名称:Starshatter-Experimental,代码行数:52,代码来源:NetPlayer.cpp


注:本文中的Weapon::IsPrimary方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。