uint32_t Materializer::AddStructMember(Entity &entity) { uint32_t size = entity.GetSize(); uint32_t alignment = entity.GetAlignment(); uint32_t ret; if (m_current_offset == 0) m_struct_alignment = alignment; if (m_current_offset % alignment) m_current_offset += (alignment - (m_current_offset % alignment)); ret = m_current_offset; m_current_offset += size; return ret; }
void Map::Update() { for (std::vector<Entity*>::iterator it = entities.begin(); it != entities.end();) { if ((*it)->active) ++it; else { delete *it; it = entities.erase(it); } } HandleCollision(); HandleEvents(); Entity* entity; for (std::vector<Entity*>::iterator it = entities.begin(); it != entities.end(); ++it) { entity = (*it); if (entity->OnScreen == false) continue; if (entity->GetLight() > 0 && ((int) entity->shape->GetCenterX() != (int) (entity->prevPos.x + entity->GetSize().x / 2.0) || (int) entity->shape->GetCenterY() != (int) (entity->prevPos.y + entity->GetSize().y / 2.0))) lightDirty = true; } skyManager->Update(); }