From 732681db08438f0d61ad7fe4d670f79feaac7b9e Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Sun, 16 Aug 2020 17:26:44 +0300 Subject: Island loading and PS2 alpha test added to options --- src/core/Frontend.cpp | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) (limited to 'src/core/Frontend.cpp') diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index df65f94f..0c813cbb 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -122,6 +122,11 @@ int8 CMenuManager::m_nPrefsMSAALevel = 0; int8 CMenuManager::m_nDisplayMSAALevel = 0; #endif +#ifdef NO_ISLAND_LOADING +int8 CMenuManager::m_DisplayIslandLoading = ISLAND_LOADING_LOW; +int8 CMenuManager::m_PrefsIslandLoading = ISLAND_LOADING_LOW; +#endif + char CMenuManager::m_PrefsSkinFile[256] = DEFAULT_SKIN_NAME; int32 CMenuManager::m_KeyPressedCode = -1; @@ -155,6 +160,10 @@ int32 MouseButtonJustClicked; int32 JoyButtonJustClicked; //int32 *pControlTemp = 0; +#ifdef PS2_ALPHA_TEST +extern bool gPS2alphaTest; +#endif + #ifndef MASTER bool CMenuManager::m_PrefsMarketing = false; bool CMenuManager::m_PrefsDisableTutorials = false; @@ -1189,6 +1198,21 @@ CMenuManager::Draw() break; } break; +#endif +#ifdef NO_ISLAND_LOADING + case MENUACTION_ISLANDLOADING: + switch (m_DisplayIslandLoading) { + case ISLAND_LOADING_LOW: + rightText = TheText.Get("FEM_LOW"); + break; + case ISLAND_LOADING_MEDIUM: + rightText = TheText.Get("FEM_MED"); + break; + case ISLAND_LOADING_HIGH: + rightText = TheText.Get("FEM_HIG"); + break; + } + break; #endif case MENUACTION_AUDIOHW: if (m_nPrefsAudio3DProviderIndex == -1) @@ -1245,6 +1269,11 @@ CMenuManager::Draw() rightText = TheText.Get(m_PrefsCutsceneBorders ? "FEM_ON" : "FEM_OFF"); break; #endif +#ifdef PS2_ALPHA_TEST + case MENUACTION_PS2_ALPHA_TEST: + rightText = TheText.Get(gPS2alphaTest ? "FEM_ON" : "FEM_OFF"); + break; +#endif #ifdef CUSTOM_FRONTEND_OPTIONS case MENUACTION_TRIGGERFUNC: FrontendOption& option = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[i].m_TargetMenu]; @@ -1389,6 +1418,12 @@ CMenuManager::Draw() if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_AAS") && m_nHelperTextMsgId == 1) ResetHelperText(); } +#endif +#ifdef NO_ISLAND_LOADING + if (m_DisplayIslandLoading == m_PrefsIslandLoading) { + if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEM_ISL") && m_nHelperTextMsgId == 1) + ResetHelperText(); + } #endif if (m_nPrefsAudio3DProviderIndex != DMAudio.GetCurrent3DProviderIndex()) { if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEA_3DH")) @@ -1409,6 +1444,12 @@ CMenuManager::Draw() if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_AAS")) SetHelperText(1); } +#endif +#ifdef NO_ISLAND_LOADING + if (m_DisplayIslandLoading != m_PrefsIslandLoading) { + if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEM_ISL")) + SetHelperText(1); + } #endif if (m_nPrefsAudio3DProviderIndex != DMAudio.GetCurrent3DProviderIndex()) { if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEA_3DH") != 0 @@ -3333,6 +3374,13 @@ CMenuManager::LoadSettings() CFileMgr::Read(fileHandle, (char *)&m_nPrefsMSAALevel, 1); m_nDisplayMSAALevel = m_nPrefsMSAALevel; #endif +#ifdef NO_ISLAND_LOADING + CFileMgr::Read(fileHandle, (char *)&CMenuManager::m_PrefsIslandLoading, 1); + CMenuManager::m_DisplayIslandLoading = CMenuManager::m_PrefsIslandLoading; +#endif +#ifdef PS2_ALPHA_TEST + CFileMgr::Read(fileHandle, (char *)&gPS2alphaTest, 1); +#endif // PS2_ALPHA_TEST } } @@ -3432,6 +3480,12 @@ CMenuManager::SaveSettings() #ifdef MULTISAMPLING CFileMgr::Write(fileHandle, (char *)&CMenuManager::m_nPrefsMSAALevel, 1); #endif +#ifdef NO_ISLAND_LOADING + CFileMgr::Write(fileHandle, (char *)&CMenuManager::m_PrefsIslandLoading, 1); +#endif +#ifdef PS2_ALPHA_TEST + CFileMgr::Write(fileHandle, (char *)&gPS2alphaTest, 1); +#endif // PS2_ALPHA_TEST } CFileMgr::CloseFile(fileHandle); @@ -4769,6 +4823,45 @@ CMenuManager::ProcessButtonPresses(void) SaveSettings(); } break; +#endif +#ifdef NO_ISLAND_LOADING + case MENUACTION_ISLANDLOADING: + if (m_DisplayIslandLoading != m_PrefsIslandLoading) { + if (!m_bGameNotLoaded) { + if (m_DisplayIslandLoading > ISLAND_LOADING_LOW) { + if (m_DisplayIslandLoading == ISLAND_LOADING_HIGH) + CStreaming::RemoveIslandsNotUsed(LEVEL_GENERIC); + if (m_PrefsIslandLoading == ISLAND_LOADING_LOW) { + if (CGame::currLevel != LEVEL_INDUSTRIAL) + CFileLoader::LoadCollisionFromDatFile(LEVEL_INDUSTRIAL); + if (CGame::currLevel != LEVEL_COMMERCIAL) + CFileLoader::LoadCollisionFromDatFile(LEVEL_COMMERCIAL); + if (CGame::currLevel != LEVEL_SUBURBAN) + CFileLoader::LoadCollisionFromDatFile(LEVEL_SUBURBAN); + CCollision::bAlreadyLoaded = true; + m_PrefsIslandLoading = m_DisplayIslandLoading; + CStreaming::RequestBigBuildings(CGame::currLevel); + } else if (m_PrefsIslandLoading == ISLAND_LOADING_HIGH) { + m_PrefsIslandLoading = m_DisplayIslandLoading; + CStreaming::RequestIslands(CGame::currLevel); + } else + m_PrefsIslandLoading = m_DisplayIslandLoading; + } else { // low + m_PrefsIslandLoading = m_DisplayIslandLoading; + CCollision::bAlreadyLoaded = false; + CModelInfo::RemoveColModelsFromOtherLevels(CGame::currLevel); + CStreaming::RemoveUnusedBigBuildings(CGame::currLevel); + CStreaming::RemoveUnusedBuildings(CGame::currLevel); + CStreaming::RequestIslands(CGame::currLevel); + } + + CStreaming::LoadAllRequestedModels(true); + } else + m_PrefsIslandLoading = m_DisplayIslandLoading; + SetHelperText(0); + SaveSettings(); + } + break; #endif case MENUACTION_AUDIOHW: { @@ -4842,6 +4935,43 @@ CMenuManager::ProcessButtonPresses(void) #ifdef CUTSCENE_BORDERS_SWITCH m_PrefsCutsceneBorders = true; #endif +#ifdef NO_ISLAND_LOADING + m_DisplayIslandLoading = ISLAND_LOADING_LOW; + if (!m_bGameNotLoaded) { + if (m_DisplayIslandLoading > ISLAND_LOADING_LOW) { + if (m_DisplayIslandLoading == ISLAND_LOADING_HIGH) + CStreaming::RemoveIslandsNotUsed(LEVEL_GENERIC); + if (m_PrefsIslandLoading == ISLAND_LOADING_LOW) { + if (CGame::currLevel != LEVEL_INDUSTRIAL) + CFileLoader::LoadCollisionFromDatFile(LEVEL_INDUSTRIAL); + if (CGame::currLevel != LEVEL_COMMERCIAL) + CFileLoader::LoadCollisionFromDatFile(LEVEL_COMMERCIAL); + if (CGame::currLevel != LEVEL_SUBURBAN) + CFileLoader::LoadCollisionFromDatFile(LEVEL_SUBURBAN); + CCollision::bAlreadyLoaded = true; + m_PrefsIslandLoading = m_DisplayIslandLoading; + CStreaming::RequestBigBuildings(CGame::currLevel); + } else if (m_PrefsIslandLoading == ISLAND_LOADING_HIGH) { + m_PrefsIslandLoading = m_DisplayIslandLoading; + CStreaming::RequestIslands(CGame::currLevel); + } else + m_PrefsIslandLoading = m_DisplayIslandLoading; + } else { // low + m_PrefsIslandLoading = m_DisplayIslandLoading; + CCollision::bAlreadyLoaded = false; + CModelInfo::RemoveColModelsFromOtherLevels(CGame::currLevel); + CStreaming::RemoveUnusedBigBuildings(CGame::currLevel); + CStreaming::RemoveUnusedBuildings(CGame::currLevel); + CStreaming::RequestIslands(CGame::currLevel); + } + + CStreaming::LoadAllRequestedModels(true); + } else + m_PrefsIslandLoading = m_DisplayIslandLoading; +#endif // NO_ISLAND_LOADING +#ifdef PS2_ALPHA_TEST + gPS2alphaTest = false; +#endif // PS2_ALPHA_TEST SaveSettings(); #else } else if (m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) { @@ -4870,6 +5000,43 @@ CMenuManager::ProcessButtonPresses(void) #else CMBlur::BlurOn = true; #endif // GTA3_1_1_PATCH +#ifdef NO_ISLAND_LOADING + m_DisplayIslandLoading = ISLAND_LOADING_LOW; + if (!m_bGameNotLoaded) { + if (m_DisplayIslandLoading > ISLAND_LOADING_LOW) { + if (m_DisplayIslandLoading == ISLAND_LOADING_HIGH) + CStreaming::RemoveIslandsNotUsed(LEVEL_GENERIC); + if (m_PrefsIslandLoading == ISLAND_LOADING_LOW) { + if (CGame::currLevel != LEVEL_INDUSTRIAL) + CFileLoader::LoadCollisionFromDatFile(LEVEL_INDUSTRIAL); + if (CGame::currLevel != LEVEL_COMMERCIAL) + CFileLoader::LoadCollisionFromDatFile(LEVEL_COMMERCIAL); + if (CGame::currLevel != LEVEL_SUBURBAN) + CFileLoader::LoadCollisionFromDatFile(LEVEL_SUBURBAN); + CCollision::bAlreadyLoaded = true; + m_PrefsIslandLoading = m_DisplayIslandLoading; + CStreaming::RequestBigBuildings(CGame::currLevel); + } else if (m_PrefsIslandLoading == ISLAND_LOADING_HIGH) { + m_PrefsIslandLoading = m_DisplayIslandLoading; + CStreaming::RequestIslands(CGame::currLevel); + } else + m_PrefsIslandLoading = m_DisplayIslandLoading; + } else { // low + m_PrefsIslandLoading = m_DisplayIslandLoading; + CCollision::bAlreadyLoaded = false; + CModelInfo::RemoveColModelsFromOtherLevels(CGame::currLevel); + CStreaming::RemoveUnusedBigBuildings(CGame::currLevel); + CStreaming::RemoveUnusedBuildings(CGame::currLevel); + CStreaming::RequestIslands(CGame::currLevel); + } + + CStreaming::LoadAllRequestedModels(true); + } else + m_PrefsIslandLoading = m_DisplayIslandLoading; +#endif // NO_ISLAND_LOADING +#ifdef PS2_ALPHA_TEST + gPS2alphaTest = false; +#endif // PS2_ALPHA_TEST SaveSettings(); #endif // GRAPHICS_MENU_OPTIONS } else if ((m_nCurrScreen != MENUPAGE_SKIN_SELECT_OLD) && (m_nCurrScreen == MENUPAGE_CONTROLLER_PC)) { @@ -5155,6 +5322,15 @@ CMenuManager::ProcessButtonPresses(void) m_nDisplayMSAALevel = 0; } break; +#endif +#ifdef NO_ISLAND_LOADING + case MENUACTION_ISLANDLOADING: + m_DisplayIslandLoading += changeValueBy; + if (m_DisplayIslandLoading > ISLAND_LOADING_HIGH) + m_DisplayIslandLoading = ISLAND_LOADING_LOW; + else if (m_DisplayIslandLoading < ISLAND_LOADING_LOW) + m_DisplayIslandLoading = ISLAND_LOADING_HIGH; + break; #endif case MENUACTION_AUDIOHW: if (m_nPrefsAudio3DProviderIndex != -1) { @@ -5327,6 +5503,13 @@ CMenuManager::ProcessOnOffMenuOptions() DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); SaveSettings(); break; +#endif +#ifdef PS2_ALPHA_TEST + case MENUACTION_PS2_ALPHA_TEST: + gPS2alphaTest = !gPS2alphaTest; + DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); + SaveSettings(); + break; #endif } } -- cgit v1.2.3