tr1/option: add ui for changing the fog

This commit is contained in:
Marcin Kurczewski 2025-04-07 23:06:38 +02:00
parent 67354e9f43
commit 9c708933bc
3 changed files with 50 additions and 4 deletions

View file

@ -352,10 +352,12 @@
"CONTROL_UNBIND": "Unbind: Hold %s",
"DETAIL_BILINEAR": "Bilinear",
"DETAIL_BRIGHTNESS": "Brightness",
"DETAIL_DECIMAL_FMT": "%d",
"DETAIL_FBO_FILTER": "FBO filter",
"DETAIL_FLOAT_FMT": "%.1f",
"DETAIL_FOG_END": "Fog end",
"DETAIL_FOG_START": "Fog start",
"DETAIL_FPS": "FPS",
"DETAIL_INTEGER_FMT": "%d",
"DETAIL_REFLECTIONS": "Reflections",
"DETAIL_RENDER_MODE": "Render mode",
"DETAIL_RENDER_MODE_FBO": "Framebuffer",

View file

@ -9,6 +9,8 @@ GS_DEFINE(PASSPORT_MODE_NEW_GAME_JP, "Japanese NG")
GS_DEFINE(PASSPORT_MODE_NEW_GAME_JP_PLUS, "Japanese NG+")
GS_DEFINE(DETAIL_SELECT_DETAIL, "Select Detail")
GS_DEFINE(DETAIL_FPS, "FPS")
GS_DEFINE(DETAIL_FOG_START, "Fog start")
GS_DEFINE(DETAIL_FOG_END, "Fog end")
GS_DEFINE(DETAIL_TRAPEZOID_FILTER, "Trapezoid filter")
GS_DEFINE(DETAIL_REFLECTIONS, "Reflections")
GS_DEFINE(DETAIL_BILINEAR, "Bilinear")
@ -22,7 +24,7 @@ GS_DEFINE(DETAIL_RENDER_MODE, "Render mode")
GS_DEFINE(DETAIL_RENDER_MODE_LEGACY, "Window size")
GS_DEFINE(DETAIL_RENDER_MODE_FBO, "Framebuffer")
GS_DEFINE(DETAIL_RESOLUTION, "Resolution")
GS_DEFINE(DETAIL_DECIMAL_FMT, "%d")
GS_DEFINE(DETAIL_INTEGER_FMT, "%d")
GS_DEFINE(DETAIL_STRING_FMT, "%s")
GS_DEFINE(DETAIL_FLOAT_FMT, "%.1f")
GS_DEFINE(DETAIL_RESOLUTION_FMT, "%dx%d")

View file

@ -38,6 +38,8 @@ typedef enum {
typedef enum {
OPTION_FPS,
OPTION_FOG_START,
OPTION_FOG_END,
OPTION_TEXTURE_FILTER,
OPTION_FBO_FILTER,
OPTION_VSYNC,
@ -72,7 +74,9 @@ typedef struct {
} GRAPHICS_MENU;
static const GRAPHICS_OPTION_ROW m_GfxOptionRows[] = {
{ OPTION_FPS, GS_ID(DETAIL_FPS), GS_ID(DETAIL_DECIMAL_FMT) },
{ OPTION_FPS, GS_ID(DETAIL_FPS), GS_ID(DETAIL_INTEGER_FMT) },
{ OPTION_FOG_START, GS_ID(DETAIL_FOG_START), GS_ID(DETAIL_INTEGER_FMT) },
{ OPTION_FOG_END, GS_ID(DETAIL_FOG_END), GS_ID(DETAIL_INTEGER_FMT) },
{ OPTION_TEXTURE_FILTER, GS_ID(DETAIL_TEXTURE_FILTER), GS_ID(MISC_OFF) },
{ OPTION_FBO_FILTER, GS_ID(DETAIL_FBO_FILTER), GS_ID(MISC_OFF) },
{ OPTION_VSYNC, GS_ID(DETAIL_VSYNC), GS_ID(MISC_ON) },
@ -265,6 +269,14 @@ static void M_UpdateArrows(
m_HideArrowLeft = g_Config.rendering.fps == 30;
m_HideArrowRight = g_Config.rendering.fps == 60;
break;
case OPTION_FOG_START:
m_HideArrowLeft = g_Config.visuals.fog_start <= 1;
m_HideArrowRight = g_Config.visuals.fog_start >= 100;
break;
case OPTION_FOG_END:
m_HideArrowLeft = g_Config.visuals.fog_end <= 1;
m_HideArrowRight = g_Config.visuals.fog_end >= 100;
break;
case OPTION_TEXTURE_FILTER:
m_HideArrowLeft = g_Config.rendering.texture_filter == GFX_TF_FIRST;
m_HideArrowRight = g_Config.rendering.texture_filter == GFX_TF_LAST;
@ -381,7 +393,17 @@ static void M_ChangeTextOption(
switch (row->option_name) {
case OPTION_FPS:
sprintf(buf, GS(DETAIL_DECIMAL_FMT), g_Config.rendering.fps);
sprintf(buf, GS(DETAIL_INTEGER_FMT), g_Config.rendering.fps);
Text_ChangeText(value_text, buf);
break;
case OPTION_FOG_START:
sprintf(buf, GS(DETAIL_INTEGER_FMT), g_Config.visuals.fog_start);
Text_ChangeText(value_text, buf);
break;
case OPTION_FOG_END:
sprintf(buf, GS(DETAIL_INTEGER_FMT), g_Config.visuals.fog_end);
Text_ChangeText(value_text, buf);
break;
@ -492,6 +514,16 @@ void Option_Graphics_Control(INVENTORY_ITEM *inv_item, const bool is_busy)
reset = OPTION_FPS;
break;
case OPTION_FOG_START:
g_Config.visuals.fog_start++;
reset = OPTION_FOG_START;
break;
case OPTION_FOG_END:
g_Config.visuals.fog_end++;
reset = OPTION_FOG_END;
break;
case OPTION_TEXTURE_FILTER:
if (g_Config.rendering.texture_filter != GFX_TF_LAST) {
g_Config.rendering.texture_filter++;
@ -584,6 +616,16 @@ void Option_Graphics_Control(INVENTORY_ITEM *inv_item, const bool is_busy)
reset = OPTION_FPS;
break;
case OPTION_FOG_START:
g_Config.visuals.fog_start--;
reset = OPTION_FOG_START;
break;
case OPTION_FOG_END:
g_Config.visuals.fog_end--;
reset = OPTION_FOG_END;
break;
case OPTION_TEXTURE_FILTER:
if (g_Config.rendering.texture_filter != GFX_TF_FIRST) {
g_Config.rendering.texture_filter--;