Refactor: Sistema de modos y notificaciones mejorado
Cambios principales: - Renombrado AppMode::MANUAL → AppMode::SANDBOX (nomenclatura más clara) - Notificaciones ahora funcionan en TODAS las transiciones de modo - Lógica de teclas D/L/K simplificada: toggle exclusivo modo ↔ SANDBOX - Mensajes simplificados: "MODO DEMO", "MODO SANDBOX", etc. (sin ON/OFF) - Eliminado check restrictivo en showNotificationForAction() Comportamiento nuevo: - Tecla D: Toggle DEMO ↔ SANDBOX - Tecla L: Toggle DEMO_LITE ↔ SANDBOX - Tecla K: Toggle LOGO ↔ SANDBOX - Cada tecla activa su modo o vuelve a SANDBOX si ya está activo - Notificaciones visibles tanto al activar como desactivar modos 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
|
||||
// Modos de aplicación mutuamente excluyentes
|
||||
enum class AppMode {
|
||||
MANUAL, // Control manual del usuario
|
||||
SANDBOX, // Control manual del usuario (modo sandbox)
|
||||
DEMO, // Modo demo completo (auto-play)
|
||||
DEMO_LITE, // Modo demo lite (solo física/figuras)
|
||||
LOGO // Modo logo (easter egg)
|
||||
@@ -103,8 +103,8 @@ class Engine {
|
||||
bool depth_zoom_enabled_ = true; // Zoom por profundidad Z activado
|
||||
|
||||
// Sistema de Modo DEMO (auto-play)
|
||||
AppMode current_app_mode_ = AppMode::MANUAL; // Modo actual (mutuamente excluyente)
|
||||
AppMode previous_app_mode_ = AppMode::MANUAL; // Modo previo antes de entrar a LOGO
|
||||
AppMode current_app_mode_ = AppMode::SANDBOX; // Modo actual (mutuamente excluyente)
|
||||
AppMode previous_app_mode_ = AppMode::SANDBOX; // Modo previo antes de entrar a LOGO
|
||||
float demo_timer_ = 0.0f; // Contador de tiempo para próxima acción
|
||||
float demo_next_action_time_ = 0.0f; // Tiempo aleatorio hasta próxima acción (segundos)
|
||||
|
||||
@@ -142,7 +142,8 @@ class Engine {
|
||||
|
||||
// Métodos auxiliares
|
||||
void initBalls(int value);
|
||||
void setText();
|
||||
void setText(); // DEPRECATED - usar showNotificationForAction() en su lugar
|
||||
void showNotificationForAction(const std::string& text); // Mostrar notificación solo en modo MANUAL
|
||||
void pushBallsAwayFromGravity();
|
||||
void switchBallsGravity();
|
||||
void enableBallsGravityIfDisabled();
|
||||
@@ -170,8 +171,8 @@ class Engine {
|
||||
void exitLogoMode(bool return_to_demo = false); // Salir del modo logo
|
||||
|
||||
// Sistema de cambio de sprites dinámico
|
||||
void switchTexture(); // Cambia a siguiente textura disponible
|
||||
void updateBallSizes(int old_size, int new_size); // Ajusta posiciones al cambiar tamaño
|
||||
void switchTexture(bool show_notification = true); // Cambia a siguiente textura disponible
|
||||
void updateBallSizes(int old_size, int new_size); // Ajusta posiciones al cambiar tamaño
|
||||
|
||||
// Sistema de zoom dinámico
|
||||
int calculateMaxWindowZoom() const;
|
||||
|
||||
Reference in New Issue
Block a user