www.pudn.com > Sterren_ASe_Explorer.rar > ase_threat.cpp
/* Copyright (C) William van der Sterren, 2002. * All rights reserved worldwide. * * This software is provided "as is" without express or implied * warranties. You may freely copy and compile this source into * applications you distribute provided that the copyright text * below is included in the resulting source code, for example: * "Portions Copyright (C) William van der Sterren, 2002" */ /*************************************************************************** * * purpose: class to represent threat and terrain covered by threat */ #include "stdafx.h" #include "ase_threat.h" #include// though MSVC6 doesn't feature min/max there using namespace std; #include #include #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ASE_Threat::ASE_Threat(unsigned int aLocationIdx) : m_Position(aLocationIdx) { } void ASE_Threat::SetPositionsUnderFire(const PositionsUnderFire& thePositionsUnderFire) { m_PositionsUnderFire.clear(); m_PositionsUnderFire.resize(thePositionsUnderFire.size()); copy(thePositionsUnderFire.begin(), thePositionsUnderFire.end(), m_PositionsUnderFire.begin()); sort(m_PositionsUnderFire.begin(), m_PositionsUnderFire.end()); } bool ASE_Threat::OccupiesPosition(unsigned int aLocationIdx) const { return ( m_Position == aLocationIdx ); } bool ASE_Threat::IsAbleToFireAtLocation(unsigned int aLocationIdx) const { return binary_search(m_PositionsUnderFire.begin(), m_PositionsUnderFire.end(), aLocationIdx); }