BWAPI
|
00001 #pragma once 00002 #include "UnitLocationData.h" 00003 00007 class NeutralUnit : public ForeignUnit 00008 { 00009 public: 00010 NeutralUnit(BWAPI::Unit* unit, PrimitiveLocation* location) 00011 : ForeignUnit(unit, location) 00012 { 00013 assert(unit->getPlayer() == BWAPI::Broodwar->neutral()); 00014 } 00015 00016 friend std::ostream& operator<<(std::ostream& out, const NeutralUnit& neutralUnit) 00017 { 00018 if (neutralUnit.isAccessible()) 00019 { 00020 BWAPI::Unit* unit = neutralUnit.getUnit(); 00021 out << "Neutral unit (0x" << std::nouppercase << std::hex << unit << std::dec << ") " << unit->getType().getName() << ", hit points " << unit->getHitPoints(); 00022 } 00023 else 00024 { 00025 const NeutralUnit::SavedState& state = neutralUnit.getLastKnownState(); 00026 out << "Neutral saved unit (0x" << std::nouppercase << std::hex << neutralUnit.m_unit << std::dec << ") " << state.getType().getName() << ", hit points " << state.getHitPoints(); 00027 } 00028 return out; 00029 } 00030 };