void EntityManager::update(float dt) { CCArray *keys = m_pIDToEntitiesMap->allKeys(); if (keys) { // if the dictionary has no objects, keys will be NULL for (int i=0; i<keys->count(); i++) { CCInteger *integer = (CCInteger *)keys->objectAtIndex(i); int key = integer->getValue(); BaseGameEntity *entity = (BaseGameEntity *)m_pIDToEntitiesMap->objectForKey(key); if (entity->getIsActive()) { // Only update the entity if it's active. entity->update(dt); } } } /* // Add new entities. for (int i=0; i<m_pEntitiesToAdd->count(); i++) { BaseGameEntity *newEntity = (BaseGameEntity *)m_pEntitiesToAdd->objectAtIndex(i); m_pIDToEntitiesMap->setObject(newEntity, newEntity->getID()); } m_pEntitiesToAdd->removeAllObjects(); */ // Remove old entities. for (int i=0; i<m_pEntitiesToRemove->count(); i++) { BaseGameEntity *oldEntity = (BaseGameEntity *)m_pEntitiesToRemove->objectAtIndex(i); m_pIDToEntitiesMap->removeObjectForKey(oldEntity->getID()); } m_pEntitiesToRemove->removeAllObjects(); }