Graphics menu + MSAA

This commit is contained in:
Sergeanur 2020-08-16 01:37:09 +03:00
parent 72088a000b
commit a728a542be
9 changed files with 341 additions and 37 deletions

Binary file not shown.

View File

@ -116,6 +116,12 @@ int32 CMenuManager::m_PrefsSfxVolume = 102;
bool CMenuManager::m_PrefsCutsceneBorders = true; bool CMenuManager::m_PrefsCutsceneBorders = true;
#endif #endif
#ifdef MULTISAMPLING
int8 CMenuManager::m_nPrefsMSAALevel = 0;
int8 CMenuManager::m_nDisplayMSAALevel = 0;
#endif
char CMenuManager::m_PrefsSkinFile[256] = DEFAULT_SKIN_NAME; char CMenuManager::m_PrefsSkinFile[256] = DEFAULT_SKIN_NAME;
int32 CMenuManager::m_KeyPressedCode = -1; int32 CMenuManager::m_KeyPressedCode = -1;
@ -399,8 +405,15 @@ CMenuManager::ThingsToDoBeforeGoingBack()
DMAudio.StopFrontEndTrack(); DMAudio.StopFrontEndTrack();
OutputDebugString("FRONTEND AUDIO TRACK STOPPED"); OutputDebugString("FRONTEND AUDIO TRACK STOPPED");
#endif #endif
#ifdef GRAPHICS_MENU_OPTIONS
} else if (m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) { } else if (m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
#else
} else if (m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) {
#endif
m_nDisplayVideoMode = m_nPrefsVideoMode; m_nDisplayVideoMode = m_nPrefsVideoMode;
#ifdef MULTISAMPLING
m_nDisplayMSAALevel = m_nPrefsMSAALevel;
#endif
} }
if (m_nCurrScreen == MENUPAGE_SKIN_SELECT) { if (m_nCurrScreen == MENUPAGE_SKIN_SELECT) {
@ -848,7 +861,7 @@ CMenuManager::Draw()
CFont::SetCentreOn(); CFont::SetCentreOn();
break; break;
case MENUPAGE_SOUND_SETTINGS: case MENUPAGE_SOUND_SETTINGS:
case MENUPAGE_GRAPHICS_SETTINGS: case MENUPAGE_DISPLAY_SETTINGS:
case MENUPAGE_MULTIPLAYER_CREATE: case MENUPAGE_MULTIPLAYER_CREATE:
case MENUPAGE_SKIN_SELECT_OLD: case MENUPAGE_SKIN_SELECT_OLD:
case MENUPAGE_CONTROLLER_PC_OLD1: case MENUPAGE_CONTROLLER_PC_OLD1:
@ -856,7 +869,10 @@ CMenuManager::Draw()
case MENUPAGE_CONTROLLER_PC_OLD3: case MENUPAGE_CONTROLLER_PC_OLD3:
case MENUPAGE_CONTROLLER_PC_OLD4: case MENUPAGE_CONTROLLER_PC_OLD4:
case MENUPAGE_CONTROLLER_DEBUG: case MENUPAGE_CONTROLLER_DEBUG:
case MENUPAGE_MOUSE_CONTROLS: case MENUPAGE_MOUSE_CONTROLS:
#ifdef GRAPHICS_MENU_OPTIONS
case MENUPAGE_GRAPHICS_SETTINGS:
#endif
columnWidth = 50; columnWidth = 50;
headerHeight = 0; headerHeight = 0;
lineHeight = 20; lineHeight = 20;
@ -1155,6 +1171,25 @@ CMenuManager::Draw()
AsciiToUnicode(_psGetVideoModeList()[m_nDisplayVideoMode], unicodeTemp); AsciiToUnicode(_psGetVideoModeList()[m_nDisplayVideoMode], unicodeTemp);
rightText = unicodeTemp; rightText = unicodeTemp;
break; break;
#ifdef IMPROVED_VIDEOMODE
case MENUACTION_SCREENFORMAT:
rightText = TheText.Get(FrontEndMenuManager.m_nSelectedScreenMode ? "FED_WND" : "FED_FLS");
break;
#endif
#ifdef MULTISAMPLING
case MENUACTION_MULTISAMPLING:
switch (m_nDisplayMSAALevel) {
case 0:
rightText = TheText.Get("FEM_OFF");
break;
default:
sprintf(gString, "%iX", 1 << (m_nDisplayMSAALevel));
AsciiToUnicode(gString, unicodeTemp);
rightText = unicodeTemp;
break;
}
break;
#endif
case MENUACTION_AUDIOHW: case MENUACTION_AUDIOHW:
if (m_nPrefsAudio3DProviderIndex == -1) if (m_nPrefsAudio3DProviderIndex == -1)
rightText = TheText.Get("FEA_NAH"); rightText = TheText.Get("FEA_NAH");
@ -1205,6 +1240,11 @@ CMenuManager::Draw()
case MENUACTION_MOUSESTEER: case MENUACTION_MOUSESTEER:
rightText = TheText.Get(CVehicle::m_bDisableMouseSteering ? "FEM_OFF" : "FEM_ON"); rightText = TheText.Get(CVehicle::m_bDisableMouseSteering ? "FEM_OFF" : "FEM_ON");
break; break;
#ifdef CUTSCENE_BORDERS_SWITCH
case MENUACTION_CUTSCENEBORDERS:
rightText = TheText.Get(m_PrefsCutsceneBorders ? "FEM_ON" : "FEM_OFF");
break;
#endif
#ifdef CUSTOM_FRONTEND_OPTIONS #ifdef CUSTOM_FRONTEND_OPTIONS
case MENUACTION_TRIGGERFUNC: case MENUACTION_TRIGGERFUNC:
FrontendOption& option = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[i].m_TargetMenu]; FrontendOption& option = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[i].m_TargetMenu];
@ -1306,7 +1346,14 @@ CMenuManager::Draw()
CFont::SetRightJustifyOn(); CFont::SetRightJustifyOn();
if(textLayer == 1) if(textLayer == 1)
if(!strcmp(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName, "FED_RES") if((!strcmp(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName, "FED_RES")
#ifdef IMPROVED_VIDEOMODE
|| !strcmp(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName, "FEM_SCF")
#endif
#ifdef MULTISAMPLING
|| !strcmp(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName, "FED_AAS")
#endif
)
&& !m_bGameNotLoaded && !m_bGameNotLoaded
#ifdef CUSTOM_FRONTEND_OPTIONS #ifdef CUSTOM_FRONTEND_OPTIONS
|| isOptionDisabled || isOptionDisabled
@ -1331,6 +1378,18 @@ CMenuManager::Draw()
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_RES") && m_nHelperTextMsgId == 1) if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_RES") && m_nHelperTextMsgId == 1)
ResetHelperText(); ResetHelperText();
} }
#ifdef IMPROVED_VIDEOMODE
if (m_nSelectedScreenMode == m_nPrefsWindowed) {
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEM_SCF") && m_nHelperTextMsgId == 1)
ResetHelperText();
}
#endif
#ifdef MULTISAMPLING
if (m_nDisplayMSAALevel == m_nPrefsMSAALevel) {
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_AAS") && m_nHelperTextMsgId == 1)
ResetHelperText();
}
#endif
if (m_nPrefsAudio3DProviderIndex != DMAudio.GetCurrent3DProviderIndex()) { if (m_nPrefsAudio3DProviderIndex != DMAudio.GetCurrent3DProviderIndex()) {
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEA_3DH")) if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEA_3DH"))
SetHelperText(1); SetHelperText(1);
@ -1339,6 +1398,18 @@ CMenuManager::Draw()
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_RES")) if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_RES"))
SetHelperText(1); SetHelperText(1);
} }
#ifdef IMPROVED_VIDEOMODE
if (m_nSelectedScreenMode != m_nPrefsWindowed) {
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEM_SCF"))
SetHelperText(1);
}
#endif
#ifdef MULTISAMPLING
if (m_nDisplayMSAALevel != m_nPrefsMSAALevel) {
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_AAS"))
SetHelperText(1);
}
#endif
if (m_nPrefsAudio3DProviderIndex != DMAudio.GetCurrent3DProviderIndex()) { if (m_nPrefsAudio3DProviderIndex != DMAudio.GetCurrent3DProviderIndex()) {
if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEA_3DH") != 0 if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEA_3DH") != 0
&& m_nCurrScreen == MENUPAGE_SOUND_SETTINGS && m_nPrefsAudio3DProviderIndex != -1) { && m_nCurrScreen == MENUPAGE_SOUND_SETTINGS && m_nPrefsAudio3DProviderIndex != -1) {
@ -1349,11 +1420,41 @@ CMenuManager::Draw()
} }
if (m_nDisplayVideoMode != m_nPrefsVideoMode) { if (m_nDisplayVideoMode != m_nPrefsVideoMode) {
if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_RES") != 0 if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_RES") != 0
&& m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) { #ifdef GRAPHICS_MENU_OPTIONS
&& m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
#else
&& m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) {
#endif
m_nDisplayVideoMode = m_nPrefsVideoMode; m_nDisplayVideoMode = m_nPrefsVideoMode;
SetHelperText(3); SetHelperText(3);
} }
} }
#ifdef IMPROVED_VIDEOMODE
if (m_nSelectedScreenMode != m_nPrefsWindowed) {
if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEM_SCF") != 0
#ifdef GRAPHICS_MENU_OPTIONS
&& m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
#else
&& m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) {
#endif
m_nSelectedScreenMode = m_nPrefsWindowed;
SetHelperText(3);
}
}
#endif
#ifdef MULTISAMPLING
if (m_nSelectedScreenMode != m_nPrefsWindowed) {
if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_AAS") != 0
#ifdef GRAPHICS_MENU_OPTIONS
&& m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
#else
&& m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) {
#endif
m_nDisplayMSAALevel = m_nPrefsMSAALevel;
SetHelperText(3);
}
}
#endif
#ifdef CUSTOM_FRONTEND_OPTIONS #ifdef CUSTOM_FRONTEND_OPTIONS
if (aScreens[m_nCurrScreen].m_aEntries[i].m_Action == MENUACTION_TRIGGERFUNC) { if (aScreens[m_nCurrScreen].m_aEntries[i].m_Action == MENUACTION_TRIGGERFUNC) {
@ -1419,10 +1520,13 @@ CMenuManager::Draw()
switch (m_nCurrScreen) { switch (m_nCurrScreen) {
case MENUPAGE_CONTROLLER_SETTINGS: case MENUPAGE_CONTROLLER_SETTINGS:
case MENUPAGE_SOUND_SETTINGS: case MENUPAGE_SOUND_SETTINGS:
case MENUPAGE_GRAPHICS_SETTINGS: case MENUPAGE_DISPLAY_SETTINGS:
case MENUPAGE_SKIN_SELECT: case MENUPAGE_SKIN_SELECT:
case MENUPAGE_CONTROLLER_PC: case MENUPAGE_CONTROLLER_PC:
case MENUPAGE_MOUSE_CONTROLS: case MENUPAGE_MOUSE_CONTROLS:
#ifdef GRAPHICS_MENU_OPTIONS
case MENUPAGE_GRAPHICS_SETTINGS:
#endif
DisplayHelperText(); DisplayHelperText();
break; break;
} }
@ -2079,7 +2183,7 @@ CMenuManager::DrawFrontEnd()
bbNames[0] = { "FEB_SAV",MENUPAGE_NEW_GAME }; bbNames[0] = { "FEB_SAV",MENUPAGE_NEW_GAME };
bbNames[1] = { "FEB_CON",MENUPAGE_CONTROLLER_PC }; bbNames[1] = { "FEB_CON",MENUPAGE_CONTROLLER_PC };
bbNames[2] = { "FEB_AUD",MENUPAGE_SOUND_SETTINGS }; bbNames[2] = { "FEB_AUD",MENUPAGE_SOUND_SETTINGS };
bbNames[3] = { "FEB_DIS",MENUPAGE_GRAPHICS_SETTINGS }; bbNames[3] = { "FEB_DIS",MENUPAGE_DISPLAY_SETTINGS };
bbNames[4] = { "FEB_LAN",MENUPAGE_LANGUAGE_SETTINGS }; bbNames[4] = { "FEB_LAN",MENUPAGE_LANGUAGE_SETTINGS };
bbNames[5] = { "FESZ_QU",MENUPAGE_EXIT }; bbNames[5] = { "FESZ_QU",MENUPAGE_EXIT };
bbTabCount = 6; bbTabCount = 6;
@ -2091,7 +2195,7 @@ CMenuManager::DrawFrontEnd()
bbNames[2] = { "FEB_BRI",MENUPAGE_BRIEFS }; bbNames[2] = { "FEB_BRI",MENUPAGE_BRIEFS };
bbNames[3] = { "FEB_CON",MENUPAGE_CONTROLLER_PC }; bbNames[3] = { "FEB_CON",MENUPAGE_CONTROLLER_PC };
bbNames[4] = { "FEB_AUD",MENUPAGE_SOUND_SETTINGS }; bbNames[4] = { "FEB_AUD",MENUPAGE_SOUND_SETTINGS };
bbNames[5] = { "FEB_DIS",MENUPAGE_GRAPHICS_SETTINGS }; bbNames[5] = { "FEB_DIS",MENUPAGE_DISPLAY_SETTINGS };
bbNames[6] = { "FEB_LAN",MENUPAGE_LANGUAGE_SETTINGS }; bbNames[6] = { "FEB_LAN",MENUPAGE_LANGUAGE_SETTINGS };
bbNames[7] = { "FESZ_QU",MENUPAGE_EXIT }; bbNames[7] = { "FESZ_QU",MENUPAGE_EXIT };
bbTabCount = 8; bbTabCount = 8;
@ -2212,7 +2316,7 @@ CMenuManager::DrawFrontEndNormal()
case MENUPAGE_DELETE_SLOT_CONFIRM: case MENUPAGE_DELETE_SLOT_CONFIRM:
currentSprite = FE_ICONSAVE; currentSprite = FE_ICONSAVE;
break; break;
case MENUPAGE_GRAPHICS_SETTINGS: case MENUPAGE_DISPLAY_SETTINGS:
currentSprite = FE_ICONDISPLAY; currentSprite = FE_ICONDISPLAY;
break; break;
case MENUPAGE_SOUND_SETTINGS: case MENUPAGE_SOUND_SETTINGS:
@ -3224,6 +3328,10 @@ CMenuManager::LoadSettings()
#endif #endif
#ifdef CUTSCENE_BORDERS_SWITCH #ifdef CUTSCENE_BORDERS_SWITCH
CFileMgr::Read(fileHandle, (char *)&CMenuManager::m_PrefsCutsceneBorders, 1); CFileMgr::Read(fileHandle, (char *)&CMenuManager::m_PrefsCutsceneBorders, 1);
#endif
#ifdef MULTISAMPLING
CFileMgr::Read(fileHandle, (char *)&m_nPrefsMSAALevel, 1);
m_nDisplayMSAALevel = m_nPrefsMSAALevel;
#endif #endif
} }
} }
@ -3320,6 +3428,9 @@ CMenuManager::SaveSettings()
#endif #endif
#ifdef CUTSCENE_BORDERS_SWITCH #ifdef CUTSCENE_BORDERS_SWITCH
CFileMgr::Write(fileHandle, (char *)&CMenuManager::m_PrefsCutsceneBorders, 1); CFileMgr::Write(fileHandle, (char *)&CMenuManager::m_PrefsCutsceneBorders, 1);
#endif
#ifdef MULTISAMPLING
CFileMgr::Write(fileHandle, (char *)&CMenuManager::m_nPrefsMSAALevel, 1);
#endif #endif
} }
@ -4638,7 +4749,27 @@ CMenuManager::ProcessButtonPresses(void)
SetHelperText(0); SetHelperText(0);
SaveSettings(); SaveSettings();
} }
break;
#ifdef IMPROVED_VIDEOMODE
case MENUACTION_SCREENFORMAT:
if (m_nSelectedScreenMode != m_nPrefsWindowed) {
m_nPrefsWindowed = m_nSelectedScreenMode;
_psSelectScreenVM(m_nPrefsVideoMode);
SetHelperText(0);
SaveSettings();
}
break; break;
#endif
#ifdef MULTISAMPLING
case MENUACTION_MULTISAMPLING:
if (m_nDisplayMSAALevel != m_nPrefsMSAALevel) {
m_nPrefsMSAALevel = m_nDisplayMSAALevel;
_psSelectScreenVM(m_nPrefsVideoMode);
SetHelperText(0);
SaveSettings();
}
break;
#endif
case MENUACTION_AUDIOHW: case MENUACTION_AUDIOHW:
{ {
int selectedProvider = m_nPrefsAudio3DProviderIndex; int selectedProvider = m_nPrefsAudio3DProviderIndex;
@ -4685,7 +4816,8 @@ CMenuManager::ProcessButtonPresses(void)
DMAudio.SetRadioInCar(m_PrefsRadioStation); DMAudio.SetRadioInCar(m_PrefsRadioStation);
DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1); DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1);
SaveSettings(); SaveSettings();
} else if (m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) { #ifndef GRAPHICS_MENU_OPTIONS
} else if (m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) {
m_PrefsFrameLimiter = true; m_PrefsFrameLimiter = true;
m_PrefsBrightness = 256; m_PrefsBrightness = 256;
m_PrefsVsyncDisp = true; m_PrefsVsyncDisp = true;
@ -4706,8 +4838,40 @@ CMenuManager::ProcessButtonPresses(void)
} }
#else #else
CMBlur::BlurOn = true; CMBlur::BlurOn = true;
#endif
#ifdef CUTSCENE_BORDERS_SWITCH
m_PrefsCutsceneBorders = true;
#endif #endif
SaveSettings(); SaveSettings();
#else
} else if (m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) {
m_PrefsBrightness = 256;
m_PrefsShowSubtitles = true;
#ifdef CUTSCENE_BORDERS_SWITCH
m_PrefsCutsceneBorders = true;
#endif
SaveSettings();
} else if (m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
m_PrefsFrameLimiter = true;
m_PrefsUseWideScreen = false;
m_PrefsVsyncDisp = true;
m_PrefsLOD = 1.2f;
m_PrefsVsync = true;
CRenderer::ms_lodDistScale = 1.2f;
m_nDisplayVideoMode = m_nPrefsVideoMode;
#ifdef GTA3_1_1_PATCH
if (_dwOperatingSystemVersion == OS_WIN98) {
CMBlur::BlurOn = false;
CMBlur::MotionBlurClose();
} else {
CMBlur::BlurOn = true;
CMBlur::MotionBlurOpen(Scene.camera);
}
#else
CMBlur::BlurOn = true;
#endif // GTA3_1_1_PATCH
SaveSettings();
#endif // GRAPHICS_MENU_OPTIONS
} else if ((m_nCurrScreen != MENUPAGE_SKIN_SELECT_OLD) && (m_nCurrScreen == MENUPAGE_CONTROLLER_PC)) { } else if ((m_nCurrScreen != MENUPAGE_SKIN_SELECT_OLD) && (m_nCurrScreen == MENUPAGE_CONTROLLER_PC)) {
ControlsManager.MakeControllerActionsBlank(); ControlsManager.MakeControllerActionsBlank();
ControlsManager.InitDefaultControlConfiguration(); ControlsManager.InitDefaultControlConfiguration();
@ -4966,6 +5130,32 @@ CMenuManager::ProcessButtonPresses(void)
} }
} }
break; break;
#ifdef IMPROVED_VIDEOMODE
case MENUACTION_SCREENFORMAT:
if (m_bGameNotLoaded) {
FrontEndMenuManager.m_nSelectedScreenMode = !FrontEndMenuManager.m_nSelectedScreenMode;
}
break;
#endif
#ifdef MULTISAMPLING
case MENUACTION_MULTISAMPLING:
if (m_bGameNotLoaded) {
m_nDisplayMSAALevel += changeValueBy;
int i = 0;
int maxAA = RwD3D8EngineGetMaxMultiSamplingLevels();
while (maxAA != 1) {
i++;
maxAA >>= 1;
}
if (m_nDisplayMSAALevel < 0)
m_nDisplayMSAALevel = i;
else if (m_nDisplayMSAALevel > i)
m_nDisplayMSAALevel = 0;
}
break;
#endif
case MENUACTION_AUDIOHW: case MENUACTION_AUDIOHW:
if (m_nPrefsAudio3DProviderIndex != -1) { if (m_nPrefsAudio3DProviderIndex != -1) {
m_nPrefsAudio3DProviderIndex += changeValueBy; m_nPrefsAudio3DProviderIndex += changeValueBy;
@ -5131,6 +5321,13 @@ CMenuManager::ProcessOnOffMenuOptions()
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
SaveSettings(); SaveSettings();
break; break;
#ifdef CUTSCENE_BORDERS_SWITCH
case MENUACTION_CUTSCENEBORDERS:
m_PrefsCutsceneBorders = !m_PrefsCutsceneBorders;
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
SaveSettings();
break;
#endif
} }
} }

View File

@ -183,7 +183,7 @@ enum eMenuScreen
MENUPAGE_BRIEFS = 3, MENUPAGE_BRIEFS = 3,
MENUPAGE_CONTROLLER_SETTINGS = 4, MENUPAGE_CONTROLLER_SETTINGS = 4,
MENUPAGE_SOUND_SETTINGS = 5, MENUPAGE_SOUND_SETTINGS = 5,
MENUPAGE_GRAPHICS_SETTINGS = 6, MENUPAGE_DISPLAY_SETTINGS = 6,
MENUPAGE_LANGUAGE_SETTINGS = 7, MENUPAGE_LANGUAGE_SETTINGS = 7,
MENUPAGE_CHOOSE_LOAD_SLOT = 8, MENUPAGE_CHOOSE_LOAD_SLOT = 8,
MENUPAGE_CHOOSE_DELETE_SLOT = 9, MENUPAGE_CHOOSE_DELETE_SLOT = 9,
@ -238,6 +238,9 @@ enum eMenuScreen
MENUPAGE_58 = 58, MENUPAGE_58 = 58,
#ifdef MENU_MAP #ifdef MENU_MAP
MENUPAGE_MAP = 59, MENUPAGE_MAP = 59,
#endif
#ifdef GRAPHICS_MENU_OPTIONS
MENUPAGE_GRAPHICS_SETTINGS,
#endif #endif
MENUPAGES MENUPAGES
}; };
@ -359,6 +362,19 @@ enum eMenuAction
MENUACTION_UNK112, MENUACTION_UNK112,
MENUACTION_REJECT_RETRY, MENUACTION_REJECT_RETRY,
MENUACTION_UNK114, MENUACTION_UNK114,
#ifdef IMPROVED_VIDEOMODE
MENUACTION_SCREENFORMAT,
#endif
#ifdef ANISOTROPIC_FILTERING
MENUACTION_MIPMAPS,
MENUACTION_TEXTURE_FILTERING,
#endif
#ifdef MULTISAMPLING
MENUACTION_MULTISAMPLING,
#endif
#ifdef CUTSCENE_BORDERS_SWITCH
MENUACTION_CUTSCENEBORDERS,
#endif
#ifdef CUSTOM_FRONTEND_OPTIONS #ifdef CUSTOM_FRONTEND_OPTIONS
MENUACTION_TRIGGERFUNC MENUACTION_TRIGGERFUNC
#endif #endif
@ -532,6 +548,10 @@ public:
int32 m_nPrefsSubsystem; int32 m_nPrefsSubsystem;
int32 m_nSelectedScreenMode; int32 m_nSelectedScreenMode;
#endif #endif
#ifdef MULTISAMPLING
static int8 m_nPrefsMSAALevel;
static int8 m_nDisplayMSAALevel;
#endif
enum LANGUAGE enum LANGUAGE
{ {

View File

@ -4,6 +4,32 @@
// If you want to add new options, please don't do that here and see CustomFrontendOptionsPopulate in re3.cpp. // If you want to add new options, please don't do that here and see CustomFrontendOptionsPopulate in re3.cpp.
#ifdef CUTSCENE_BORDERS_SWITCH
#define MENU_CUTSCENE_BORDERS_SWITCH(screen) MENUACTION_CUTSCENEBORDERS, "FEM_CSB", SAVESLOT_NONE, screen,
#else
#define MENU_CUTSCENE_BORDERS_SWITCH(screen)
#endif
#ifdef IMPROVED_VIDEOMODE
#define MENU_IMPROVED_VIDEOMODE(screen) MENUACTION_SCREENFORMAT, "FEM_SCF", SAVESLOT_NONE, screen,
#else
#define MENU_IMPROVED_VIDEOMODE(screen)
#endif
#ifdef ANISOTROPIC_FILTERING
#define MENU_MIPMAPS(screen) MENUACTION_MIPMAPS, "FED_MIP", SAVESLOT_NONE, screen,
#define MENU_TEXTURE_FILTERING(screen) MENUACTION_TEXTURE_FILTERING, "FED_FIL", SAVESLOT_NONE, screen,
#else
#define MENU_MIPMAPS(screen)
#define MENU_TEXTURE_FILTERING(screen)
#endif
#ifdef MULTISAMPLING
#define MENU_MULTISAMPLING(screen) MENUACTION_MULTISAMPLING, "FED_AAS", SAVESLOT_NONE, screen,
#else
#define MENU_MULTISAMPLING(screen)
#endif
CMenuScreen aScreens[] = { CMenuScreen aScreens[] = {
// MENUPAGE_NONE = 0 // MENUPAGE_NONE = 0
{ "", 1, MENUPAGE_DISABLED, MENUPAGE_DISABLED, 0, 0, }, { "", 1, MENUPAGE_DISABLED, MENUPAGE_DISABLED, 0, 0, },
@ -46,19 +72,35 @@ CMenuScreen aScreens[] = {
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE, MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
}, },
// MENUPAGE_GRAPHICS_SETTINGS = 6 // MENUPAGE_DISPLAY_SETTINGS = 6
#ifndef GRAPHICS_MENU_OPTIONS
{ "FET_DIS", 1, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, 2, 2, { "FET_DIS", 1, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, 2, 2,
MENUACTION_BRIGHTNESS, "FED_BRI", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS, MENUACTION_BRIGHTNESS, "FED_BRI", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
MENUACTION_DRAWDIST, "FEM_LOD", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS, MENUACTION_DRAWDIST, "FEM_LOD", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
MENUACTION_FRAMESYNC, "FEM_VSC", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS, MENUACTION_FRAMESYNC, "FEM_VSC", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
MENUACTION_FRAMELIMIT, "FEM_FRM", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS, MENUACTION_FRAMELIMIT, "FEM_FRM", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
MENUACTION_TRAILS, "FED_TRA", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS, MENUACTION_TRAILS, "FED_TRA", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
MENUACTION_SUBTITLES, "FED_SUB", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS, MENUACTION_SUBTITLES, "FED_SUB", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
MENUACTION_WIDESCREEN, "FED_WIS", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS, MENU_CUTSCENE_BORDERS_SWITCH(MENUPAGE_DISPLAY_SETTINGS)
MENUACTION_SCREENRES, "FED_RES", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS, MENU_MIPMAPS(MENUPAGE_DISPLAY_SETTINGS)
MENUACTION_RESTOREDEF, "FET_DEF", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS, MENU_TEXTURE_FILTERING(MENUPAGE_DISPLAY_SETTINGS)
MENU_MULTISAMPLING(MENUPAGE_DISPLAY_SETTINGS)
MENUACTION_WIDESCREEN, "FED_WIS", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
MENU_IMPROVED_VIDEOMODE(MENUPAGE_DISPLAY_SETTINGS)
MENUACTION_SCREENRES, "FED_RES", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
MENUACTION_RESTOREDEF, "FET_DEF", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE, MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
}, },
#else
{ "FET_DIS", 1, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, 2, 2,
MENUACTION_BRIGHTNESS, "FED_BRI", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
MENUACTION_SUBTITLES, "FED_SUB", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
MENU_CUTSCENE_BORDERS_SWITCH(MENUPAGE_DISPLAY_SETTINGS)
MENUACTION_RESTOREDEF, "FET_DEF", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
},
#endif // GRAPHICS_MENU_OPTIONS
// MENUPAGE_LANGUAGE_SETTINGS = 7 // MENUPAGE_LANGUAGE_SETTINGS = 7
{ "FET_LAN", 1, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, 3, 3, { "FET_LAN", 1, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, 3, 3,
@ -322,7 +364,10 @@ CMenuScreen aScreens[] = {
{ "FET_OPT", 1, MENUPAGE_NONE, MENUPAGE_NONE, 1, 4, { "FET_OPT", 1, MENUPAGE_NONE, MENUPAGE_NONE, 1, 4,
MENUACTION_CHANGEMENU, "FET_CTL", SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC, MENUACTION_CHANGEMENU, "FET_CTL", SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC,
MENUACTION_LOADRADIO, "FET_AUD", SAVESLOT_NONE, MENUPAGE_SOUND_SETTINGS, MENUACTION_LOADRADIO, "FET_AUD", SAVESLOT_NONE, MENUPAGE_SOUND_SETTINGS,
MENUACTION_CHANGEMENU, "FET_DIS", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS, MENUACTION_CHANGEMENU, "FET_DIS", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
#ifdef GRAPHICS_MENU_OPTIONS
MENUACTION_CHANGEMENU, "FET_GRA", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
#endif
MENUACTION_CHANGEMENU, "FET_LAN", SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS, MENUACTION_CHANGEMENU, "FET_LAN", SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS,
MENUACTION_PLAYERSETUP, "FET_PSU", SAVESLOT_NONE, MENUPAGE_SKIN_SELECT, MENUACTION_PLAYERSETUP, "FET_PSU", SAVESLOT_NONE, MENUPAGE_SKIN_SELECT,
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE, MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
@ -446,6 +491,24 @@ CMenuScreen aScreens[] = {
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE, MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
}, },
#endif #endif
#ifdef GRAPHICS_MENU_OPTIONS
// MENUPAGE_GRAPHICS_SETTINGS = 60
{ "FET_GRA", 1, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, 2, 2,
MENUACTION_DRAWDIST, "FEM_LOD", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
MENUACTION_FRAMESYNC, "FEM_VSC", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
MENUACTION_FRAMELIMIT, "FEM_FRM", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
MENUACTION_TRAILS, "FED_TRA", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
MENUACTION_WIDESCREEN, "FED_WIS", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
MENU_MIPMAPS(MENUPAGE_GRAPHICS_SETTINGS)
MENU_TEXTURE_FILTERING(MENUPAGE_GRAPHICS_SETTINGS)
MENU_MULTISAMPLING(MENUPAGE_GRAPHICS_SETTINGS)
MENU_IMPROVED_VIDEOMODE(MENUPAGE_GRAPHICS_SETTINGS)
MENUACTION_SCREENRES, "FED_RES", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
MENUACTION_RESTOREDEF, "FET_DEF", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
},
#endif
}; };
#endif #endif

View File

@ -209,6 +209,12 @@ enum Config {
//#define USE_TEXTURE_POOL //#define USE_TEXTURE_POOL
#define CUTSCENE_BORDERS_SWITCH #define CUTSCENE_BORDERS_SWITCH
//#define EXTENDED_COLOURFILTER // more options for colour filter (replaces mblur) //#define EXTENDED_COLOURFILTER // more options for colour filter (replaces mblur)
#define MULTISAMPLING // adds MSAA option
#ifdef LIBRW
// these are not supported with librw yet
# undef MULTISAMPLING
#endif
// Particle // Particle
//#define PC_PARTICLE //#define PC_PARTICLE
@ -233,14 +239,15 @@ enum Config {
#ifndef PC_MENU #ifndef PC_MENU
# define PS2_MENU # define PS2_MENU
//# define PS2_MENU_USEALLPAGEICONS //# define PS2_MENU_USEALLPAGEICONS
#else
# define PS2_SAVE_DIALOG // PS2 style save dialog with transparent black box # define PS2_SAVE_DIALOG // PS2 style save dialog with transparent black box
//# define PS2_LIKE_MENU // An effort to recreate PS2 menu, cycling through tabs, different bg etc. //# define PS2_LIKE_MENU // An effort to recreate PS2 menu, cycling through tabs, different bg etc.
#else
# define MENU_MAP // VC-like menu map. Make sure you have new menu.txd # define MENU_MAP // VC-like menu map. Make sure you have new menu.txd
# define SCROLLABLE_STATS_PAGE // only draggable by mouse atm # define SCROLLABLE_STATS_PAGE // only draggable by mouse atm
# define TRIANGLE_BACK_BUTTON # define TRIANGLE_BACK_BUTTON
//# define CIRCLE_BACK_BUTTON //# define CIRCLE_BACK_BUTTON
# define CUSTOM_FRONTEND_OPTIONS # define CUSTOM_FRONTEND_OPTIONS
# define GRAPHICS_MENU_OPTIONS
#endif #endif
// Script // Script

View File

@ -111,7 +111,7 @@ void LangJapSelect(int8 action)
} }
#endif #endif
#ifdef IMPROVED_VIDEOMODE /*#ifdef IMPROVED_VIDEOMODE
void ScreenModeChange(int8 displayedValue) void ScreenModeChange(int8 displayedValue)
{ {
if (displayedValue != FrontEndMenuManager.m_nPrefsWindowed) { if (displayedValue != FrontEndMenuManager.m_nPrefsWindowed) {
@ -121,7 +121,7 @@ void ScreenModeChange(int8 displayedValue)
FrontEndMenuManager.SaveSettings(); FrontEndMenuManager.SaveSettings();
} }
} }
#endif #endif*/
#ifdef FREE_CAM #ifdef FREE_CAM
void ToggleFreeCam(int8 action) void ToggleFreeCam(int8 action)
@ -133,13 +133,13 @@ void ToggleFreeCam(int8 action)
} }
#endif #endif
#ifdef CUTSCENE_BORDERS_SWITCH //#ifdef CUTSCENE_BORDERS_SWITCH
void BorderModeChange(int8 displayedValue) //void BorderModeChange(int8 displayedValue)
{ //{
CMenuManager::m_PrefsCutsceneBorders = !!displayedValue; // CMenuManager::m_PrefsCutsceneBorders = !!displayedValue;
FrontEndMenuManager.SaveSettings(); // FrontEndMenuManager.SaveSettings();
} //}
#endif //#endif
// Reloaded on language change, so you can use hardcoded wchar* and TheText.Get with peace of mind // Reloaded on language change, so you can use hardcoded wchar* and TheText.Get with peace of mind
void void
@ -154,11 +154,11 @@ CustomFrontendOptionsPopulate(void)
FrontendOptionAddDynamic(TheText.Get("FEL_JAP"), nil, LangJapSelect, nil); FrontendOptionAddDynamic(TheText.Get("FEL_JAP"), nil, LangJapSelect, nil);
#endif #endif
#ifdef IMPROVED_VIDEOMODE /*#ifdef IMPROVED_VIDEOMODE
static const wchar *screenModes[] = { (wchar*)L"FULLSCREEN", (wchar*)L"WINDOWED" }; static const wchar *screenModes[] = { (wchar*)L"FULLSCREEN", (wchar*)L"WINDOWED" };
FrontendOptionSetPosition(MENUPAGE_GRAPHICS_SETTINGS, 8); FrontendOptionSetPosition(MENUPAGE_GRAPHICS_SETTINGS, 8);
FrontendOptionAddSelect(TheText.Get("SCRFOR"), screenModes, 2, (int8*)&FrontEndMenuManager.m_nPrefsWindowed, true, ScreenModeChange, nil); FrontendOptionAddSelect(TheText.Get("SCRFOR"), screenModes, 2, (int8*)&FrontEndMenuManager.m_nPrefsWindowed, true, ScreenModeChange, nil);
#endif #endif*/
#ifdef MENU_MAP #ifdef MENU_MAP
FrontendOptionSetPosition(MENUPAGE_PAUSE_MENU, 2); FrontendOptionSetPosition(MENUPAGE_PAUSE_MENU, 2);
@ -171,11 +171,11 @@ CustomFrontendOptionsPopulate(void)
FrontendOptionAddDynamic(text, nil, ToggleFreeCam, nil); FrontendOptionAddDynamic(text, nil, ToggleFreeCam, nil);
#endif #endif
#ifdef CUTSCENE_BORDERS_SWITCH /*#ifdef CUTSCENE_BORDERS_SWITCH
static const wchar *off_on[] = { TheText.Get("FEM_OFF"), TheText.Get("FEM_ON") }; static const wchar *off_on[] = { TheText.Get("FEM_OFF"), TheText.Get("FEM_ON") };
FrontendOptionSetPosition(MENUPAGE_GRAPHICS_SETTINGS, 9); FrontendOptionSetPosition(MENUPAGE_DISPLAY_SETTINGS, 3);
FrontendOptionAddSelect((const wchar *)L"CUTSCENE BORDERS", off_on, 2, (int8 *)&CMenuManager::m_PrefsCutsceneBorders, false, BorderModeChange, nil); FrontendOptionAddSelect((const wchar *)L"CUTSCENE BORDERS", off_on, 2, (int8 *)&CMenuManager::m_PrefsCutsceneBorders, false, BorderModeChange, nil);
#endif #endif*/
} }
#endif #endif

View File

@ -1597,7 +1597,9 @@ psSelectDevice()
PSGLOBAL(fullScreen) = FALSE; PSGLOBAL(fullScreen) = FALSE;
#endif #endif
} }
#ifdef MULTISAMPLING
RwD3D8EngineSetMultiSamplingLevels(1 << FrontEndMenuManager.m_nPrefsMSAALevel);
#endif
return TRUE; return TRUE;
} }

View File

@ -7957,6 +7957,9 @@ POLISH
RUSSIAN RUSSIAN
{ new display menus } { new display menus }
[FET_GRA]
GRAPHICS SETUP
[FED_MIP] [FED_MIP]
MIP MAPPING MIP MAPPING
@ -7972,6 +7975,18 @@ BILINEAR
[FED_TRL] [FED_TRL]
TRILINEAR TRILINEAR
[FED_WND]
WINDOWED
[FED_FLS]
FULLSCREEN
[FEM_CSB]
CUTSCENE BORDERS
[FEM_SCF]
SCREEN FORMAT
{ end of file } { end of file }
[DUMMY] [DUMMY]

Binary file not shown.