linter: varios
This commit is contained in:
@@ -370,7 +370,7 @@ void Game::updateGameStateGameOver(float delta_time) {
|
||||
}
|
||||
|
||||
if (fade_out_->hasEnded()) {
|
||||
Section::name = Section::Name::HI_SCORE_TABLE;
|
||||
Section::name = Section::Name::HI_SCORE_TABLE;
|
||||
Section::options = Section::Options::HI_SCORE_AFTER_PLAYING;
|
||||
}
|
||||
}
|
||||
@@ -1961,68 +1961,68 @@ void Game::handleGameOverEvents() {
|
||||
}
|
||||
}
|
||||
|
||||
// Construye (una vez) el drawList a partir del vector principal
|
||||
// drawList almacena punteros a los elementos y queda reservado
|
||||
void Game::buildPlayerDrawList(const Players& elements, Players& drawList) {
|
||||
drawList.clear();
|
||||
drawList.reserve(elements.size());
|
||||
for (const auto& e : elements) drawList.push_back(e); // copia el shared_ptr
|
||||
std::stable_sort(drawList.begin(), drawList.end(), [](const std::shared_ptr<Player>& a, const std::shared_ptr<Player>& b) {
|
||||
// Construye (una vez) el draw_list a partir del vector principal
|
||||
// draw_list almacena punteros a los elementos y queda reservado
|
||||
void Game::buildPlayerDrawList(const Players& elements, Players& draw_list) {
|
||||
draw_list.clear();
|
||||
draw_list.reserve(elements.size());
|
||||
for (const auto& e : elements) draw_list.push_back(e); // copia el shared_ptr
|
||||
std::stable_sort(draw_list.begin(), draw_list.end(), [](const std::shared_ptr<Player>& a, const std::shared_ptr<Player>& b) {
|
||||
return a->getZOrder() < b->getZOrder();
|
||||
});
|
||||
}
|
||||
|
||||
// Actualiza drawList tras cambios en los z_order. Implementación simple:
|
||||
// reordena drawList según los z_order actuales. Llamar cuando cambian z_order
|
||||
void Game::updatePlayerDrawList(const Players& elements, Players& drawList) {
|
||||
// Si drawList está vacío o su tamaño no coincide, reconstruirlo.
|
||||
if (drawList.size() != elements.size()) {
|
||||
buildPlayerDrawList(elements, drawList);
|
||||
// Actualiza draw_list tras cambios en los z_order. Implementación simple:
|
||||
// reordena draw_list según los z_order actuales. Llamar cuando cambian z_order
|
||||
void Game::updatePlayerDrawList(const Players& elements, Players& draw_list) {
|
||||
// Si draw_list está vacío o su tamaño no coincide, reconstruirlo.
|
||||
if (draw_list.size() != elements.size()) {
|
||||
buildPlayerDrawList(elements, draw_list);
|
||||
return;
|
||||
}
|
||||
// Dado que apuntan a los mismos elementos, basta ordenar por los z_order actuales.
|
||||
std::stable_sort(drawList.begin(), drawList.end(), [](const std::shared_ptr<Player>& a, const std::shared_ptr<Player>& b) {
|
||||
std::stable_sort(draw_list.begin(), draw_list.end(), [](const std::shared_ptr<Player>& a, const std::shared_ptr<Player>& b) {
|
||||
return a->getZOrder() < b->getZOrder();
|
||||
});
|
||||
}
|
||||
|
||||
// Dibuja en el orden definido por drawList
|
||||
void Game::renderPlayerDrawList(const Players& drawList) {
|
||||
for (const auto& e : drawList) e->render();
|
||||
// Dibuja en el orden definido por draw_list
|
||||
void Game::renderPlayerDrawList(const Players& draw_list) {
|
||||
for (const auto& e : draw_list) e->render();
|
||||
}
|
||||
|
||||
// Operaciones sobre z_order que mantienen la invariante y actualizan drawList.
|
||||
// Operaciones sobre z_order que mantienen la invariante y actualizan draw_list.
|
||||
auto Game::findPlayerIndex(const Players& elems, const std::shared_ptr<Player>& who) -> size_t {
|
||||
for (size_t i = 0; i < elems.size(); ++i)
|
||||
if (elems[i] == who) return static_cast<int>(i); // compara shared_ptr directamente
|
||||
return -1;
|
||||
}
|
||||
|
||||
void Game::sendPlayerToBack(Players& elements, const std::shared_ptr<Player>& who, Players& drawList) {
|
||||
void Game::sendPlayerToBack(Players& elements, const std::shared_ptr<Player>& who, Players& draw_list) {
|
||||
int idx = findPlayerIndex(elements, who);
|
||||
if (idx < 0) return; // no encontrado
|
||||
const int oldZ = elements[idx]->getZOrder();
|
||||
if (oldZ <= 0) return;
|
||||
const int OLD_Z = elements[idx]->getZOrder();
|
||||
if (OLD_Z <= 0) return;
|
||||
for (auto& p : elements) {
|
||||
int z = p->getZOrder();
|
||||
if (z < oldZ) p->setZOrder(z + 1);
|
||||
if (z < OLD_Z) { p->setZOrder(z + 1); }
|
||||
}
|
||||
elements[idx]->setZOrder(0);
|
||||
updatePlayerDrawList(elements, drawList);
|
||||
updatePlayerDrawList(elements, draw_list);
|
||||
}
|
||||
|
||||
void Game::bringPlayerToFront(Players& elements, const std::shared_ptr<Player>& who, Players& drawList) {
|
||||
void Game::bringPlayerToFront(Players& elements, const std::shared_ptr<Player>& who, Players& draw_list) {
|
||||
int idx = findPlayerIndex(elements, who);
|
||||
if (idx < 0) return; // no encontrado
|
||||
const int oldZ = elements[idx]->getZOrder();
|
||||
const int OLD_Z = elements[idx]->getZOrder();
|
||||
const int N = static_cast<int>(elements.size());
|
||||
if (oldZ >= N - 1) return;
|
||||
if (OLD_Z >= N - 1) return;
|
||||
for (auto& p : elements) {
|
||||
int z = p->getZOrder();
|
||||
if (z > oldZ) p->setZOrder(z - 1);
|
||||
if (z > OLD_Z) p->setZOrder(z - 1);
|
||||
}
|
||||
elements[idx]->setZOrder(N - 1);
|
||||
updatePlayerDrawList(elements, drawList);
|
||||
updatePlayerDrawList(elements, draw_list);
|
||||
}
|
||||
|
||||
#ifdef _DEBUG
|
||||
|
||||
Reference in New Issue
Block a user