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


C++ ZObject::CanBeEntered方法代码示例

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


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

示例1: CheckWaypoint

bool ZCore::CheckWaypoint(ZObject *obj, waypoint *wp)
{
	unsigned char ot, oid;
	unsigned char aot, aoid;
	ZObject *aobj;

	obj->GetObjectID(ot, oid);

	//just set this to false if
	//the unit can not attack
	if(!obj->CanAttack()) wp->attack_to = false;

	switch(wp->mode)
	{
	case MOVE_WP:
		//can move?
		if(!obj->CanMove()) return false;
		break;
	case FORCE_MOVE_WP:
		//can move?
		if(!obj->CanMove()) return false;

		//clients are not allowed to set forcemove waypoints
		wp->mode = MOVE_WP;
		break;
	case DODGE_WP:
		//can move?
		if(!obj->CanMove()) return false;

		//clients are not allowed to set dodge waypoints
		wp->mode = MOVE_WP;
	case AGRO_WP:
		//clients are not allowed to set agro waypoints
		wp->mode = ATTACK_WP;
		break;
	case ATTACK_WP:
		//attacking an object that can only be attacked by explosions?
		aobj = GetObjectFromID(wp->ref_id, object_list);

		if(!aobj) return false;

		if(!obj->CanAttackObject(aobj)) return false;
		//if(!obj->HasExplosives() && aobj->AttackedOnlyByExplosives()) return false;
		//if(!obj->CanAttack()) return false;
		break;
	case ENTER_WP:
		//can move?
		if(!obj->CanMove()) return false;

		//entering ok?
		if(ot != ROBOT_OBJECT) return false;

		//target exist?
		aobj = GetObjectFromID(wp->ref_id, object_list);
		if(!aobj) return false;

		//can the target be entered?
		if(!aobj->CanBeEntered()) return false;
		break;
	case CRANE_REPAIR_WP:
		//can move?
		if(!obj->CanMove()) return false;

		//it a crane?
		if(!(ot == VEHICLE_OBJECT && oid == CRANE)) return false;

		//target exist?
		aobj = GetObjectFromID(wp->ref_id, object_list);
		if(!aobj) return false;

		//can it repair that target?
		if(!aobj->CanBeRepairedByCrane(obj->GetOwner())) return false;
		break;
	case UNIT_REPAIR_WP:
		//can move?
		if(!obj->CanMove()) return false;

		//can it be repaired?
		if(!obj->CanBeRepaired()) return false;

		//target exist?
		aobj = GetObjectFromID(wp->ref_id, object_list);
		if(!aobj) return false;

		//can the target repair it?
		if(!aobj->CanRepairUnit(obj->GetOwner())) return false;
		break;
	case ENTER_FORT_WP:
		//can move?
		if(!obj->CanMove()) return false;

		//target exist?
		aobj = GetObjectFromID(wp->ref_id, object_list);
		if(!aobj) return false;

		//can we enter it?
		if(!aobj->CanEnterFort(obj->GetOwner())) return false;

		break;
	case PICKUP_GRENADES_WP:
//.........这里部分代码省略.........
开发者ID:Nitaym,项目名称:zodengine,代码行数:101,代码来源:zcore.cpp


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