summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/Frontend.cpp7
-rw-r--r--src/core/MenuScreensCustom.cpp19
-rw-r--r--src/core/main.cpp8
-rw-r--r--src/core/re3.cpp26
4 files changed, 36 insertions, 24 deletions
diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp
index 9e2efd73..72739f7b 100644
--- a/src/core/Frontend.cpp
+++ b/src/core/Frontend.cpp
@@ -3744,6 +3744,13 @@ CMenuManager::LoadSettings()
strcpy(m_PrefsSkinFile, DEFAULT_SKIN_NAME);
strcpy(m_aSkinName, DEFAULT_SKIN_NAME);
}
+
+#ifdef CUSTOM_FRONTEND_OPTIONS
+ // Apparently this func. can be run multiple times at the start.
+ if (numCustomFrontendOptions == 0 && numCustomFrontendScreens == 0) {
+ CustomFrontendOptionsPopulate();
+ }
+#endif
#ifdef LOAD_INI_SETTINGS
LoadINISettings(); // needs frontend options to be loaded
#endif
diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp
index d9fc5065..9a763f8c 100644
--- a/src/core/MenuScreensCustom.cpp
+++ b/src/core/MenuScreensCustom.cpp
@@ -67,16 +67,6 @@
#define POSTFX_SELECTORS
#endif
-#ifdef EXTENDED_PIPELINES
- #define PIPELINES_SELECTOR \
- MENUACTION_CFO_SELECT, "FED_VPL", { new CCFOSelect((int8*)&CustomPipes::VehiclePipeSwitch, "VehiclePipeline", vehPipelineNames, ARRAY_SIZE(vehPipelineNames), false, nil) }, \
- MENUACTION_CFO_SELECT, "FED_PRM", { new CCFOSelect((int8*)&CustomPipes::RimlightEnable, "NeoRimLight", off_on, 2, false, nil) }, \
- MENUACTION_CFO_SELECT, "FED_WLM", { new CCFOSelect((int8*)&CustomPipes::LightmapEnable, "NeoLightMaps", off_on, 2, false, nil) }, \
- MENUACTION_CFO_SELECT, "FED_RGL", { new CCFOSelect((int8*)&CustomPipes::GlossEnable, "NeoRoadGloss", off_on, 2, false, nil) },
-#else
- #define PIPELINES_SELECTOR
-#endif
-
#ifdef INVERT_LOOK_FOR_PAD
#define INVERT_PAD_SELECTOR MENUACTION_CFO_SELECT, "FEC_IVP", { new CCFOSelect((int8*)&CPad::bInvertLook4Pad, "InvertPad", off_on, 2, false, nil) },
#else
@@ -84,7 +74,6 @@
#endif
const char *filterNames[] = { "FEM_NON", "FEM_SIM", "FEM_NRM", "FEM_MOB" };
-const char *vehPipelineNames[] = { "FED_MFX", "FED_NEO" };
const char *off_on[] = { "FEM_OFF", "FEM_ON" };
void RestoreDefGraphics(int8 action) {
@@ -404,7 +393,7 @@ CMenuScreenCustom aScreens[MENUPAGES] = {
CUTSCENE_BORDERS_TOGGLE
FREE_CAM_TOGGLE
POSTFX_SELECTORS
- PIPELINES_SELECTOR
+ // re3.cpp inserts here pipeline selectors if neo/neo.txd exists and EXTENDED_PIPELINES defined
MENUACTION_RESTOREDEF, "FET_DEF", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
MENUACTION_CHANGEMENU, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE },
},
@@ -831,14 +820,14 @@ CMenuScreenCustom aScreens[MENUPAGES] = {
MENUACTION_FRAMESYNC, "FEM_VSC", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
MENUACTION_FRAMELIMIT, "FEM_FRM", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
MULTISAMPLING_SELECTOR
+ ISLAND_LOADING_SELECTOR
+ DUALPASS_SELECTOR
#ifdef EXTENDED_COLOURFILTER
POSTFX_SELECTORS
#else
MENUACTION_TRAILS, "FED_TRA", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
#endif
- PIPELINES_SELECTOR
- ISLAND_LOADING_SELECTOR
- DUALPASS_SELECTOR
+ // re3.cpp inserts here pipeline selectors if neo/neo.txd exists and EXTENDED_PIPELINES defined
MENUACTION_CFO_DYNAMIC, "FET_DEF", { new CCFODynamic(nil, nil, nil, RestoreDefGraphics) },
MENUACTION_CHANGEMENU, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE },
},
diff --git a/src/core/main.cpp b/src/core/main.cpp
index 3a855e20..4b70a153 100644
--- a/src/core/main.cpp
+++ b/src/core/main.cpp
@@ -66,7 +66,6 @@
#include "postfx.h"
#include "custompipes.h"
#include "screendroplets.h"
-#include "frontendoption.h"
#include "MemoryHeap.h"
GlobalScene Scene;
@@ -481,13 +480,6 @@ Initialise3D(void *param)
DebugMenuInit();
DebugMenuPopulate();
#endif // !DEBUGMENU
-#ifdef CUSTOM_FRONTEND_OPTIONS
- // Apparently this func. can be run multiple times at the start.
- if (numCustomFrontendOptions == 0 && numCustomFrontendScreens == 0) {
- // needs stored language and TheText to be loaded, and last TheText reload is at the start of here
- CustomFrontendOptionsPopulate();
- }
-#endif
bool ret = CGame::InitialiseRenderWare();
#ifdef EXTENDED_PIPELINES
CustomPipes::CustomPipeInit(); // need Scene.world for this
diff --git a/src/core/re3.cpp b/src/core/re3.cpp
index acb6caa2..87244e2a 100644
--- a/src/core/re3.cpp
+++ b/src/core/re3.cpp
@@ -30,9 +30,9 @@
#include "postfx.h"
#include "custompipes.h"
#include "MemoryHeap.h"
+#include "FileMgr.h"
#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS
-#include "FileMgr.h"
#include "ControllerConfig.h"
#endif
@@ -79,6 +79,30 @@ void
CustomFrontendOptionsPopulate(void)
{
// Moved to an array in MenuScreensCustom.cpp, but APIs are still available. see frontendoption.h
+
+ // These work only if we have neo folder, so they're dynamically added
+#ifdef EXTENDED_PIPELINES
+ const char *vehPipelineNames[] = { "FED_MFX", "FED_NEO" };
+ const char *off_on[] = { "FEM_OFF", "FEM_ON" };
+ int fd = CFileMgr::OpenFile("neo/neo.txd","r");
+ if (fd) {
+#ifdef GRAPHICS_MENU_OPTIONS
+ FrontendOptionSetCursor(MENUPAGE_GRAPHICS_SETTINGS, -3, false);
+ FrontendOptionAddSelect("FED_VPL", vehPipelineNames, ARRAY_SIZE(vehPipelineNames), (int8*)&CustomPipes::VehiclePipeSwitch, false, nil, "VehiclePipeline");
+ FrontendOptionAddSelect("FED_PRM", off_on, 2, (int8*)&CustomPipes::RimlightEnable, false, nil, "NeoRimLight");
+ FrontendOptionAddSelect("FED_WLM", off_on, 2, (int8*)&CustomPipes::LightmapEnable, false, nil, "NeoLightMaps");
+ FrontendOptionAddSelect("FED_RGL", off_on, 2, (int8*)&CustomPipes::GlossEnable, false, nil, "NeoRoadGloss");
+#else
+ FrontendOptionSetCursor(MENUPAGE_DISPLAY_SETTINGS, -3, false);
+ FrontendOptionAddSelect("FED_VPL", vehPipelineNames, ARRAY_SIZE(vehPipelineNames), (int8*)&CustomPipes::VehiclePipeSwitch, false, nil, "VehiclePipeline");
+ FrontendOptionAddSelect("FED_PRM", off_on, 2, (int8*)&CustomPipes::RimlightEnable, false, nil, "NeoRimLight");
+ FrontendOptionAddSelect("FED_WLM", off_on, 2, (int8*)&CustomPipes::LightmapEnable, false, nil, "NeoLightMaps");
+ FrontendOptionAddSelect("FED_RGL", off_on, 2, (int8*)&CustomPipes::GlossEnable, false, nil, "NeoRoadGloss");
+#endif
+ CFileMgr::CloseFile(fd);
+ }
+#endif
+
}
#endif