comandos i tecles per a manejar el nou disseny de shaders
This commit is contained in:
@@ -74,8 +74,9 @@ static auto parseTokens(const std::string& input) -> std::vector<std::string> {
|
||||
// Texto de ayuda común para HELP y ?
|
||||
static void printHelp() {
|
||||
SDL_Log("=== JDD CONSOLE COMMANDS ===");
|
||||
SDL_Log(" SS [ON|OFF|SIZE] Supersampling (Ctrl+F4)");
|
||||
SDL_Log(" POSTFX [ON|OFF|NEXT] Post-FX / next preset (F4/Shift+F4)");
|
||||
SDL_Log(" SS [ON|OFF|SIZE] Supersampling");
|
||||
SDL_Log(" SHADERS [ON|OFF|NEXT [PRESET]] Toggle/next shader or preset (F4/Shift+F4)");
|
||||
SDL_Log(" SET SHADER [POSTFX|CRTPI] Set active shader");
|
||||
SDL_Log(" BORDER [ON|OFF] Decorative border (B)");
|
||||
SDL_Log(" FULLSCREEN [ON|OFF] Fullscreen mode (F3)");
|
||||
SDL_Log(" ZOOM [UP|DOWN] Window zoom (F1/F2)");
|
||||
@@ -108,7 +109,7 @@ static void printHelp() {
|
||||
|
||||
// Tabla de comandos disponibles
|
||||
static const std::vector<ConsoleCommand> COMMANDS = {
|
||||
// SS [ON|OFF|SIZE] — Supersampling (Ctrl+F4)
|
||||
// SS [ON|OFF|SIZE] — Supersampling
|
||||
{.keyword = "SS", .execute = [](const std::vector<std::string>& args) -> std::string {
|
||||
if (!args.empty() && args[0] == "SIZE") {
|
||||
if (!Options::video.supersampling) { return "Supersampling OFF"; }
|
||||
@@ -133,32 +134,48 @@ static const std::vector<ConsoleCommand> COMMANDS = {
|
||||
return "Usage: SS [ON|OFF|SIZE]";
|
||||
}},
|
||||
|
||||
// POSTFX [ON|OFF|NEXT] — PostFX y presets (F4 / Shift+F4)
|
||||
{.keyword = "POSTFX", .execute = [](const std::vector<std::string>& args) -> std::string {
|
||||
// SHADERS [ON|OFF|NEXT [PRESET]] — Toggle/cicla shaders (F4 / Shift+F4 / Ctrl+F4)
|
||||
{.keyword = "SHADERS", .execute = [](const std::vector<std::string>& args) -> std::string {
|
||||
if (args.empty()) {
|
||||
Screen::get()->togglePostFX();
|
||||
return std::string("PostFX ") + (Options::video.postfx ? "ON" : "OFF");
|
||||
Screen::get()->toggleShaders();
|
||||
return std::string("Shaders ") + (Options::video.postfx ? "ON" : "OFF");
|
||||
}
|
||||
if (args[0] == "ON") {
|
||||
if (Options::video.postfx) { return "PostFX already ON"; }
|
||||
Screen::get()->togglePostFX();
|
||||
return "PostFX ON";
|
||||
if (Options::video.postfx) { return "Shaders already ON"; }
|
||||
Screen::get()->toggleShaders();
|
||||
return "Shaders ON";
|
||||
}
|
||||
if (args[0] == "OFF") {
|
||||
if (!Options::video.postfx) { return "PostFX already OFF"; }
|
||||
Screen::get()->togglePostFX();
|
||||
return "PostFX OFF";
|
||||
if (!Options::video.postfx) { return "Shaders already OFF"; }
|
||||
Screen::get()->toggleShaders();
|
||||
return "Shaders OFF";
|
||||
}
|
||||
if (args[0] == "NEXT") {
|
||||
if (Options::postfx_presets.empty()) { return "No presets available"; }
|
||||
Options::current_postfx_preset =
|
||||
(Options::current_postfx_preset + 1) %
|
||||
static_cast<int>(Options::postfx_presets.size());
|
||||
Screen::get()->reloadPostFX();
|
||||
return "PostFX preset: " +
|
||||
Options::postfx_presets[static_cast<size_t>(Options::current_postfx_preset)].name;
|
||||
// SHADERS NEXT PRESET → cicla presets del shader activo
|
||||
if (args.size() >= 2 && args[1] == "PRESET") {
|
||||
if (Options::current_shader == Rendering::ShaderType::CRTPI) {
|
||||
if (Options::crtpi_presets.empty()) { return "No CrtPi presets available"; }
|
||||
Options::current_crtpi_preset =
|
||||
(Options::current_crtpi_preset + 1) %
|
||||
static_cast<int>(Options::crtpi_presets.size());
|
||||
Screen::get()->reloadCrtPi();
|
||||
return "CrtPi preset: " +
|
||||
Options::crtpi_presets[static_cast<size_t>(Options::current_crtpi_preset)].name;
|
||||
}
|
||||
if (Options::postfx_presets.empty()) { return "No PostFX presets available"; }
|
||||
Options::current_postfx_preset =
|
||||
(Options::current_postfx_preset + 1) %
|
||||
static_cast<int>(Options::postfx_presets.size());
|
||||
Screen::get()->reloadPostFX();
|
||||
return "PostFX preset: " +
|
||||
Options::postfx_presets[static_cast<size_t>(Options::current_postfx_preset)].name;
|
||||
}
|
||||
// SHADERS NEXT → cicla entre tipos de shader (POSTFX ↔ CRTPI)
|
||||
Screen::get()->nextShader();
|
||||
return std::string("Shader: ") +
|
||||
(Options::current_shader == Rendering::ShaderType::CRTPI ? "CRTPI" : "POSTFX");
|
||||
}
|
||||
return "Usage: POSTFX [ON|OFF|NEXT]";
|
||||
return "Usage: SHADERS [ON|OFF|NEXT [PRESET]]";
|
||||
}},
|
||||
|
||||
// BORDER [ON|OFF] — Borde decorativo (B)
|
||||
@@ -451,10 +468,26 @@ static const std::vector<ConsoleCommand> COMMANDS = {
|
||||
return "Jail closed";
|
||||
}},
|
||||
|
||||
// SET INITIAL [ROOM|POS] — guarda habitación/posición actual como inicio en debug.yaml; solo escena GAME
|
||||
#endif
|
||||
|
||||
// SET SHADER [POSTFX|CRTPI] — Activa un shader concreto (disponible en todos los builds)
|
||||
// SET INITIAL [ROOM|POS] — Guarda habitación/posición actual como inicio (solo _DEBUG, GAME)
|
||||
{.keyword = "SET", .execute = [](const std::vector<std::string>& args) -> std::string {
|
||||
if (!args.empty() && args[0] == "SHADER") {
|
||||
if (args.size() < 2) { return "Usage: SET SHADER [POSTFX|CRTPI]"; }
|
||||
if (args[1] == "POSTFX") {
|
||||
Screen::get()->setActiveShader(Rendering::ShaderType::POSTFX);
|
||||
return "Shader set to POSTFX";
|
||||
}
|
||||
if (args[1] == "CRTPI") {
|
||||
Screen::get()->setActiveShader(Rendering::ShaderType::CRTPI);
|
||||
return "Shader set to CRTPI";
|
||||
}
|
||||
return "Usage: SET SHADER [POSTFX|CRTPI]";
|
||||
}
|
||||
#ifdef _DEBUG
|
||||
if (SceneManager::current != SceneManager::Scene::GAME) { return "Only available in GAME scene"; }
|
||||
if (args.empty() || args[0] != "INITIAL") { return "Usage: SET INITIAL [ROOM|POS]"; }
|
||||
if (args.empty() || args[0] != "INITIAL") { return "Usage: SET INITIAL [ROOM|POS] | SET SHADER [POSTFX|CRTPI]"; }
|
||||
|
||||
const bool DO_ROOM = args.size() == 1 || (args.size() >= 2 && args[1] == "ROOM");
|
||||
const bool DO_POS = args.size() == 1 || (args.size() >= 2 && args[1] == "POS");
|
||||
@@ -469,8 +502,10 @@ static const std::vector<ConsoleCommand> COMMANDS = {
|
||||
result += GameControl::set_initial_pos();
|
||||
}
|
||||
return result;
|
||||
}},
|
||||
#else
|
||||
return "Usage: SET SHADER [POSTFX|CRTPI]";
|
||||
#endif
|
||||
}},
|
||||
|
||||
// SCENE [LOGO|LOADING|TITLE|CREDITS|GAME|ENDING|ENDING2|RESTART] — Cambiar o reiniciar escena
|
||||
{.keyword = "SCENE", .execute = [](const std::vector<std::string>& args) -> std::string {
|
||||
|
||||
Reference in New Issue
Block a user