Cpp:Building A Simple Tile Engine:Part 6
From GPWiki[edit] Part 6: Creating the unit manager
This page is far from complete, go ahead and write some more!
You can extend this page by editing it. [edit] File: UnitManager.h#ifndef UNITMANAGER_H #define UNITMANAGER_H #include <vector> using std::vector; #include "Interfaces.h" #include "Unit.h" /** Unit mananger */ class CUnitManager: public IBaseEntity { protected: vector< CUnit* > m_vpUnits; void AddUnit( CUnit* pUnit ); public: CUnitManager(); virtual ~CUnitManager(); virtual void VThink ( const int& iElapsedTime ); virtual void VRender ( SDL_Surface* pDestSurface ); virtual bool VLoad ( TiXmlElement* pXMLData ); virtual TiXmlElement VGetSaveData(); CUnit* GetUnit( unsigned int iIndex ); }; #endif // UNITMANAGER_H [edit] File: UnitManager.cpp#include "UnitManager.h" #include "Unit.h" CUnitManager::CUnitManager() { } CUnitManager::~CUnitManager() { while( m_vpUnits.size() > 0 ) { if ( m_vpUnits.back() != 0 ) { delete m_vpUnits.back(); } m_vpUnits.pop_back(); } } bool CUnitManager::VLoad( TiXmlElement* pXMLData ) { TiXmlNode* pXMLUnit = 0; CUnit* pUnit; bool bLoadOK; while( pXMLUnit = pXMLData->IterateChildren( pXMLUnit ) ) { pUnit = new CUnit; bLoadOK = pUnit->VLoad( pXMLUnit->ToElement() ); if ( bLoadOK == false ) { return false; } AddUnit( pUnit ); } return true; } TiXmlElement CUnitManager::VGetSaveData() { TiXmlElement pXMLUnits( "units" ); for ( unsigned int i = 0; i < m_vpUnits.size(); ++i ) { pXMLUnits.InsertEndChild( m_vpUnits[ i ]->VGetSaveData() ); } return pXMLUnits; } void CUnitManager::AddUnit( CUnit* pUnit ) { m_vpUnits.push_back( pUnit ); } CUnit* CUnitManager::GetUnit( unsigned int iIndex ) { if ( iIndex < 0 || iIndex > m_vpUnits.size() ) return 0; return m_vpUnits[ iIndex ]; } void CUnitManager::VThink( const int& iElapsedTime ) { for ( unsigned int i = 0; i < m_vpUnits.size(); ++i ) { m_vpUnits[ i ]->VThink( iElapsedTime ); } } void CUnitManager::VRender( SDL_Surface* pDestSurface ) { for ( unsigned int i = 0; i < m_vpUnits.size(); ++i ) { m_vpUnits[ i ]->VRender( pDestSurface ); } } Proceed to Part 7: Creating the game manager
|


