service menu vitaminat: cliping, swapping animation i versió

This commit is contained in:
2026-04-14 19:41:17 +02:00
parent 25a36d5064
commit 10a3e2fedd
3 changed files with 118 additions and 7 deletions

View File

@@ -347,6 +347,22 @@ void ServiceMenu::initializeOptions() {
Options::gamepad_manager.swapPlayers();
adjustListValues(); // Sincroniza el valor de las opciones de lista (como MANDO1) con los datos reales
updateOptionPairs(); // Actualiza los pares de texto <opción, valor> que se van a dibujar
// Feedback visual: anima el intercambio de los valores entre
// las filas de MANDO 1 y MANDO 2, imprescindible cuando los dos
// mandos tienen el mismo nombre (el texto no cambia al swap).
const std::string CAPTION1 = Lang::getText("[SERVICE_MENU] CONTROLLER1");
const std::string CAPTION2 = Lang::getText("[SERVICE_MENU] CONTROLLER2");
size_t idx1 = display_options_.size();
size_t idx2 = display_options_.size();
for (size_t i = 0; i < display_options_.size(); ++i) {
const auto& caption = display_options_[i]->getCaption();
if (caption == CAPTION1) { idx1 = i; }
if (caption == CAPTION2) { idx2 = i; }
}
if (idx1 < display_options_.size() && idx2 < display_options_.size()) {
renderer_->startSwapAnimation(idx1, idx2);
}
}));
// VIDEO