本文整理汇总了C++中ZObject::CanRepairUnit方法的典型用法代码示例。如果您正苦于以下问题:C++ ZObject::CanRepairUnit方法的具体用法?C++ ZObject::CanRepairUnit怎么用?C++ ZObject::CanRepairUnit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ZObject
的用法示例。
在下文中一共展示了ZObject::CanRepairUnit方法的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:
//.........这里部分代码省略.........