diff --git a/Client/core/CClientVariables.cpp b/Client/core/CClientVariables.cpp index d8cf6d4f52..85dee800fa 100644 --- a/Client/core/CClientVariables.cpp +++ b/Client/core/CClientVariables.cpp @@ -256,6 +256,7 @@ void CClientVariables::ValidateValues() ClampValue("mtavolume", 0.0f, 1.0f); ClampValue("voicevolume", 0.0f, 1.0f); ClampValue("mapalpha", 0, 255); + ClampValue("mapimage", 0, 1); } void CClientVariables::LoadDefaults() @@ -310,7 +311,8 @@ void CClientVariables::LoadDefaults() DEFAULT("mastervolume", 1.0f); // master volume DEFAULT("mtavolume", 1.0f); // custom sound's volume DEFAULT("voicevolume", 1.0f); // voice chat output volume - DEFAULT("mapalpha", 155); // map alpha + DEFAULT("mapalpha", 155); // player map alpha + DEFAULT("mapimage", 0); // player map image DEFAULT("browser_speed", 1); // Browser speed DEFAULT("single_download", 0); // Single connection for downloads DEFAULT("packet_tag", 0); // Tag network packets diff --git a/Client/core/CSettings.cpp b/Client/core/CSettings.cpp index 1cfe5c90eb..6792bac450 100644 --- a/Client/core/CSettings.cpp +++ b/Client/core/CSettings.cpp @@ -376,7 +376,7 @@ void CSettings::CreateGUI() m_pButtonGenerateNickIcon->SetProperty("DistributeCapturedInputs", "True"); m_pSavePasswords = reinterpret_cast(pManager->CreateCheckBox(pTabMultiplayer, _("Save server passwords"), true)); - m_pSavePasswords->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 50.0f)); + m_pSavePasswords->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 35.0f)); m_pSavePasswords->GetPosition(vecTemp, false); m_pSavePasswords->AutoSize(NULL, 20.0f); @@ -411,11 +411,13 @@ void CSettings::CreateGUI() m_pCheckBoxCustomizedSAFiles->AutoSize(NULL, 20.0f); m_pMapRenderingLabel = reinterpret_cast(pManager->CreateLabel(pTabMultiplayer, _("Map rendering options"))); - m_pMapRenderingLabel->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 29.0f)); + m_pMapRenderingLabel->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 30.0f)); m_pMapRenderingLabel->GetPosition(vecTemp, false); m_pMapRenderingLabel->SetFont("default-bold-small"); m_pMapRenderingLabel->AutoSize(); + vecTemp.fX += 5.0f; + m_pMapAlphaLabel = reinterpret_cast(pManager->CreateLabel(pTabMultiplayer, _("Opacity:"))); m_pMapAlphaLabel->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 24.0f)); m_pMapAlphaLabel->GetPosition(vecTemp, false); @@ -433,6 +435,20 @@ void CSettings::CreateGUI() m_pMapAlphaValueLabel->GetPosition(vecTemp, false); m_pMapAlphaValueLabel->AutoSize("100%"); + m_pMapAlphaLabel->GetPosition(vecTemp, false); + vecTemp.fY += 24.0f; + + m_pPlayerMapImageLabel = reinterpret_cast(pManager->CreateLabel(pTabMultiplayer, _("Image resolution:"))); + m_pPlayerMapImageLabel->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 2.0f)); + m_pPlayerMapImageLabel->AutoSize(); + + m_pPlayerMapImageCombo = reinterpret_cast(pManager->CreateComboBox(pTabMultiplayer, "")); + m_pPlayerMapImageCombo->SetPosition(CVector2D(vecTemp.fX + fIndentX + 5.0f, vecTemp.fY - 1.0f)); + m_pPlayerMapImageCombo->SetSize(CVector2D(170.f, 95.0f)); + m_pPlayerMapImageCombo->AddItem(_("1024 x 1024 (Default)")); // index 0 + m_pPlayerMapImageCombo->AddItem(_("2048 x 2048")); // index 1 + m_pPlayerMapImageCombo->SetReadOnly(true); + /** * Audio tab **/ @@ -625,16 +641,13 @@ void CSettings::CreateGUI() * Video tab **/ fIndentX = pManager->CGUI_GetMaxTextExtent("default-normal", _("Resolution:"), _("FOV:"), _("Draw Distance:"), _("Brightness:"), _("FX Quality:"), - _("Anisotropic filtering:"), _("Anti-aliasing:"), _("Aspect Ratio:"), _("Opacity:")); + _("Anisotropic filtering:"), _("Anti-aliasing:"), _("Aspect Ratio:")); - m_pVideoGeneralLabel = reinterpret_cast(pManager->CreateLabel(pTabVideo, _("General"))); - m_pVideoGeneralLabel->SetPosition(CVector2D(11, 13)); - m_pVideoGeneralLabel->GetPosition(vecTemp, false); - m_pVideoGeneralLabel->AutoSize(NULL, 3.0f); - m_pVideoGeneralLabel->SetFont("default-bold-small"); + vecTemp.fX = 11.0f; + vecTemp.fY = 13.0f; m_pVideoResolutionLabel = reinterpret_cast(pManager->CreateLabel(pTabVideo, _("Resolution:"))); - m_pVideoResolutionLabel->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 26.0f)); + m_pVideoResolutionLabel->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY)); m_pVideoResolutionLabel->GetPosition(vecTemp, false); m_pVideoResolutionLabel->AutoSize(); @@ -833,6 +846,10 @@ void CSettings::CreateGUI() m_pCheckBoxBlur->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 130.0f)); m_pCheckBoxBlur->AutoSize(NULL, 20.0f); + m_pCheckBoxCoronaReflections = reinterpret_cast(pManager->CreateCheckBox(pTabVideo, _("Corona rain reflections"), true)); + m_pCheckBoxCoronaReflections->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 150.0f)); + m_pCheckBoxCoronaReflections->AutoSize(nullptr, 20.0f); + float fPosY = vecTemp.fY; m_pCheckBoxMinimize = reinterpret_cast(pManager->CreateCheckBox(pTabVideo, _("Full Screen Minimize"), true)); m_pCheckBoxMinimize->SetPosition(CVector2D(vecTemp.fX + 245.0f, fPosY + 30.0f)); @@ -878,10 +895,6 @@ void CSettings::CreateGUI() m_pCheckBoxHighDetailPeds->SetPosition(CVector2D(vecTemp.fX + 245.0f, fPosY + 110.0f)); m_pCheckBoxHighDetailPeds->AutoSize(NULL, 20.0f); - m_pCheckBoxCoronaReflections = reinterpret_cast(pManager->CreateCheckBox(pTabVideo, _("Corona rain reflections"), true)); - m_pCheckBoxCoronaReflections->SetPosition(CVector2D(vecTemp.fX + 245.0f, fPosY + 130.0f)); - m_pCheckBoxCoronaReflections->AutoSize(NULL, 20.0f); - vecTemp.fY += 10; m_pTabs->GetSize(vecTemp); @@ -1010,6 +1023,7 @@ void CSettings::CreateGUI() 5.0f; vecTemp.fX += 10.0f; + // Fast clothes loading m_pFastClothesLabel = reinterpret_cast(pManager->CreateLabel(pTabAdvanced, _("Fast CJ clothes loading:"))); m_pFastClothesLabel->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY)); @@ -1238,7 +1252,7 @@ void CSettings::CreateGUI() vecTemp.fX -= fComboWidth + 15; // Description label - vecTemp.fY = 354 + 10; + vecTemp.fY += 15.0f; m_pAdvancedSettingDescriptionLabel = reinterpret_cast(pManager->CreateLabel(pTabAdvanced, "")); m_pAdvancedSettingDescriptionLabel->SetPosition(CVector2D(vecTemp.fX + 10.f, vecTemp.fY)); m_pAdvancedSettingDescriptionLabel->SetFont("default-bold-small"); @@ -1629,12 +1643,17 @@ void CSettings::UpdateVideoTab() float fPos = SharedUtil::Unlerp(g_pCore->GetMinStreamingMemory(), uiStreamingMemory, g_pCore->GetMaxStreamingMemory()); m_pStreamingMemory->SetScrollPosition(fPos); + // Player map alpha int iVar = 0; CVARS_GET("mapalpha", iVar); int iAlphaPercent = ceil(((float)Clamp(0, iVar, 255) / 255) * 100); m_pMapAlphaValueLabel->SetText(SString("%i%%", iAlphaPercent).c_str()); float sbPos = (float)iAlphaPercent / 100.0f; m_pMapAlpha->SetScrollPosition(sbPos); + + // Player map image + CVARS_GET("mapimage", iVar); + m_pPlayerMapImageCombo->SetSelectedItemByIndex(iVar); } // @@ -1851,7 +1870,9 @@ bool CSettings::OnVideoDefaultClick(CGUIElement* pElement) CVARS_SET("streaming_memory", g_pCore->GetMaxStreamingMemory()); + // Player map defaults CVARS_SET("mapalpha", 155); + CVARS_SET("mapimage", 0); // Display restart required message if required bool bIsAntiAliasingChanged = gameSettings->GetAntiAliasing() != m_pComboAntiAliasing->GetSelectedItemIndex(); @@ -3609,12 +3630,16 @@ void CSettings::SaveData() CVARS_SET("update_auto_install", iSelected); } - // Map alpha + // Player map alpha SString sText = m_pMapAlphaValueLabel->GetText(); - float fMapAlpha = ((atof(sText.substr(0, sText.length() - 1).c_str())) / 100) * 255; CVARS_SET("mapalpha", fMapAlpha); + // Player map image + int selectedComboIndex = m_pPlayerMapImageCombo->GetSelectedItemIndex(); + if (selectedComboIndex != -1) + CVARS_SET("mapimage", selectedComboIndex); + // Language CGUIListItem* pItem = m_pInterfaceLanguageSelector->GetSelectedItem(); if (pItem) diff --git a/Client/core/CSettings.h b/Client/core/CSettings.h index db6c077df4..9c288557e6 100644 --- a/Client/core/CSettings.h +++ b/Client/core/CSettings.h @@ -196,6 +196,8 @@ class CSettings CGUIComboBox* m_pFullscreenStyleCombo; CGUILabel* m_pPriorityLabel; CGUIComboBox* m_pPriorityCombo; + CGUILabel* m_pPlayerMapImageLabel; + CGUIComboBox* m_pPlayerMapImageCombo; CGUILabel* m_pFastClothesLabel; CGUIComboBox* m_pFastClothesCombo; CGUILabel* m_pAudioGeneralLabel; diff --git a/Client/mods/deathmatch/CClient.cpp b/Client/mods/deathmatch/CClient.cpp index ec17655996..e532ef2f71 100644 --- a/Client/mods/deathmatch/CClient.cpp +++ b/Client/mods/deathmatch/CClient.cpp @@ -64,17 +64,17 @@ int CClient::ClientInitialize(const char* szArguments, CCoreInterface* pCore) g_pCore->GetCommands()->Add("enter_passenger", _("enters a car as passenger"), COMMAND_EnterPassenger, true, true); g_pCore->GetCommands()->Add("radio_next", _("next radio channel"), COMMAND_RadioNext, true, true); g_pCore->GetCommands()->Add("radio_previous", _("previous radio channel"), COMMAND_RadioPrevious, true, true); - g_pCore->GetCommands()->Add("radar", _("enables the radar view"), COMMAND_RadarMap, true, true); - g_pCore->GetCommands()->Add("radar_zoom_in", _("zooms the radar in"), COMMAND_RadarZoomIn, true, true); - g_pCore->GetCommands()->Add("radar_zoom_out", _("zooms the radar out"), COMMAND_RadarZoomOut, true, true); - g_pCore->GetCommands()->Add("radar_move_north", _("moves the radar north"), COMMAND_RadarMoveNorth, true, true); - g_pCore->GetCommands()->Add("radar_move_south", _("moves the radar south"), COMMAND_RadarMoveSouth, true, true); - g_pCore->GetCommands()->Add("radar_move_east", _("moves the radar east"), COMMAND_RadarMoveEast, true, true); - g_pCore->GetCommands()->Add("radar_move_west", _("moves the radar west"), COMMAND_RadarMoveWest, true, true); - g_pCore->GetCommands()->Add("radar_attach", _("attaches the radar"), COMMAND_RadarAttach, true, true); - g_pCore->GetCommands()->Add("radar_opacity_down", _("reduces radar opacity"), COMMAND_RadarOpacityDown, true, true); - g_pCore->GetCommands()->Add("radar_opacity_up", _("increases radar opacity"), COMMAND_RadarOpacityUp, true, true); - g_pCore->GetCommands()->Add("radar_help", _("toggles radar help text"), COMMAND_RadarHelp, true, true); + g_pCore->GetCommands()->Add("radar", _("enables the player-map view"), COMMAND_PlayerMap, true, true); + g_pCore->GetCommands()->Add("radar_zoom_in", _("zooms the player-map in"), COMMAND_PlayerMapZoomIn, true, true); + g_pCore->GetCommands()->Add("radar_zoom_out", _("zooms the player-map out"), COMMAND_PlayerMapZoomOut, true, true); + g_pCore->GetCommands()->Add("radar_move_north", _("moves the player-map north"), COMMAND_PlayerMapMoveNorth, true, true); + g_pCore->GetCommands()->Add("radar_move_south", _("moves the player-map south"), COMMAND_PlayerMapMoveSouth, true, true); + g_pCore->GetCommands()->Add("radar_move_east", _("moves the player-map east"), COMMAND_PlayerMapMoveEast, true, true); + g_pCore->GetCommands()->Add("radar_move_west", _("moves the player-map west"), COMMAND_PlayerMapMoveWest, true, true); + g_pCore->GetCommands()->Add("radar_attach", _("attaches the player-map"), COMMAND_PlayerMapAttach, true, true); + g_pCore->GetCommands()->Add("radar_opacity_down", _("reduces player-map opacity"), COMMAND_PlayerMapOpacityDown, true, true); + g_pCore->GetCommands()->Add("radar_opacity_up", _("increases player-map opacity"), COMMAND_PlayerMapOpacityUp, true, true); + g_pCore->GetCommands()->Add("radar_help", _("toggles player-map help text"), COMMAND_PlayerMapHelp, true, true); g_pCore->GetCommands()->Add("msg_target", _("sends a message to the targetted player"), COMMAND_MessageTarget, true); g_pCore->GetCommands()->Add("vehicle_next_weapon", _("changes to the next weapon whilst in a vehicle"), COMMAND_VehicleNextWeapon, true); g_pCore->GetCommands()->Add("vehicle_previous_weapon", _("changes to the previous weapon whilst in a vehicle"), COMMAND_VehiclePreviousWeapon, true); diff --git a/Client/mods/deathmatch/ClientCommands.cpp b/Client/mods/deathmatch/ClientCommands.cpp index 6ca4d73625..123ee59dcb 100644 --- a/Client/mods/deathmatch/ClientCommands.cpp +++ b/Client/mods/deathmatch/ClientCommands.cpp @@ -235,154 +235,137 @@ void COMMAND_Screenshot ( const char* szCmdLine ) } */ -void COMMAND_RadarMap(const char* szCmdLine) +void COMMAND_PlayerMap(const char* szCmdLine) { - int iCmd = (szCmdLine && szCmdLine[0]) ? atoi(szCmdLine) : -1; - bool bShow = (iCmd == 1) ? true : (iCmd == 0) ? false : !g_pClientGame->GetRadarMap()->GetRadarEnabled(); - g_pClientGame->GetRadarMap()->SetRadarEnabled(bShow); + int cmd = (szCmdLine && szCmdLine[0]) ? atoi(szCmdLine) : -1; + bool show = (cmd == 1) ? true : (cmd == 0) ? false : !g_pClientGame->GetPlayerMap()->GetPlayerMapEnabled(); + g_pClientGame->GetPlayerMap()->SetPlayerMapEnabled(show); } -void COMMAND_RadarZoomIn(const char* szCmdLine) +void COMMAND_PlayerMapZoomIn(const char* szCmdLine) { - CRadarMap* pRadarMap = g_pClientGame->GetRadarMap(); - - if (pRadarMap->IsRadarShowing()) - { - pRadarMap->ZoomIn(); - } + CPlayerMap* playerMap = g_pClientGame->GetPlayerMap(); + if (playerMap->IsPlayerMapShowing()) + playerMap->ZoomIn(); } -void COMMAND_RadarZoomOut(const char* szCmdLine) +void COMMAND_PlayerMapZoomOut(const char* szCmdLine) { - CRadarMap* pRadarMap = g_pClientGame->GetRadarMap(); - - if (pRadarMap->IsRadarShowing()) - { - pRadarMap->ZoomOut(); - } + CPlayerMap* playerMap = g_pClientGame->GetPlayerMap(); + if (playerMap->IsPlayerMapShowing()) + playerMap->ZoomOut(); } -void COMMAND_RadarMoveNorth(const char* szCmdLine) +void COMMAND_PlayerMapMoveNorth(const char* szCmdLine) { - CRadarMap* pRadarMap = g_pClientGame->GetRadarMap(); + CPlayerMap* playerMap = g_pClientGame->GetPlayerMap(); + if (!playerMap->IsPlayerMapShowing()) + return; - if (pRadarMap->IsRadarShowing()) + if (playerMap->IsMovingNorth()) + playerMap->SetMovingNorth(false); + else if (playerMap->IsMovingSouth()) + playerMap->SetMovingSouth(false); + else { - // Toggle on/off - if (pRadarMap->IsMovingNorth()) - pRadarMap->SetMovingNorth(false); - else if (pRadarMap->IsMovingSouth()) - pRadarMap->SetMovingSouth(false); - else - { - pRadarMap->SetMovingNorth(true); - pRadarMap->SetMovingSouth(false); - pRadarMap->SetMovingEast(false); - pRadarMap->SetMovingWest(false); - } + playerMap->SetMovingNorth(true); + playerMap->SetMovingSouth(false); + playerMap->SetMovingEast(false); + playerMap->SetMovingWest(false); } } -void COMMAND_RadarMoveSouth(const char* szCmdLine) +void COMMAND_PlayerMapMoveSouth(const char* szCmdLine) { - CRadarMap* pRadarMap = g_pClientGame->GetRadarMap(); + CPlayerMap* playerMap = g_pClientGame->GetPlayerMap(); + if (!playerMap->IsPlayerMapShowing()) + return; - if (pRadarMap->IsRadarShowing()) + if (playerMap->IsMovingSouth()) + playerMap->SetMovingSouth(false); + else if (playerMap->IsMovingNorth()) + playerMap->SetMovingNorth(false); + else { - // Toggle on/off - if (pRadarMap->IsMovingSouth()) - pRadarMap->SetMovingSouth(false); - else if (pRadarMap->IsMovingNorth()) - pRadarMap->SetMovingNorth(false); - else - { - pRadarMap->SetMovingNorth(false); - pRadarMap->SetMovingSouth(true); - pRadarMap->SetMovingEast(false); - pRadarMap->SetMovingWest(false); - } + playerMap->SetMovingNorth(false); + playerMap->SetMovingSouth(true); + playerMap->SetMovingEast(false); + playerMap->SetMovingWest(false); } } -void COMMAND_RadarMoveEast(const char* szCmdLine) +void COMMAND_PlayerMapMoveEast(const char* szCmdLine) { - CRadarMap* pRadarMap = g_pClientGame->GetRadarMap(); + CPlayerMap* playerMap = g_pClientGame->GetPlayerMap(); + if (!playerMap->IsPlayerMapShowing()) + return; - if (pRadarMap->IsRadarShowing()) + if (playerMap->IsMovingEast()) + playerMap->SetMovingEast(false); + else if (playerMap->IsMovingWest()) + playerMap->SetMovingWest(false); + else { - // Toggle on/off - if (pRadarMap->IsMovingEast()) - pRadarMap->SetMovingEast(false); - else if (pRadarMap->IsMovingWest()) - pRadarMap->SetMovingWest(false); - else - { - pRadarMap->SetMovingNorth(false); - pRadarMap->SetMovingSouth(false); - pRadarMap->SetMovingEast(true); - pRadarMap->SetMovingWest(false); - } + playerMap->SetMovingNorth(false); + playerMap->SetMovingSouth(false); + playerMap->SetMovingEast(true); + playerMap->SetMovingWest(false); } } -void COMMAND_RadarMoveWest(const char* szCmdLine) +void COMMAND_PlayerMapMoveWest(const char* szCmdLine) { - CRadarMap* pRadarMap = g_pClientGame->GetRadarMap(); + CPlayerMap* playerMap = g_pClientGame->GetPlayerMap(); + if (!playerMap->IsPlayerMapShowing()) + return; - if (pRadarMap->IsRadarShowing()) + if (playerMap->IsMovingWest()) + playerMap->SetMovingWest(false); + else if (playerMap->IsMovingEast()) + playerMap->SetMovingEast(false); + else { - // Toggle on/off - if (pRadarMap->IsMovingWest()) - pRadarMap->SetMovingWest(false); - else if (pRadarMap->IsMovingEast()) - pRadarMap->SetMovingEast(false); - else - { - pRadarMap->SetMovingNorth(false); - pRadarMap->SetMovingSouth(false); - pRadarMap->SetMovingEast(false); - pRadarMap->SetMovingWest(true); - } + playerMap->SetMovingNorth(false); + playerMap->SetMovingSouth(false); + playerMap->SetMovingEast(false); + playerMap->SetMovingWest(true); } } -void COMMAND_RadarAttach(const char* szCmdLine) +void COMMAND_PlayerMapAttach(const char* szCmdLine) { - CRadarMap* pRadarMap = g_pClientGame->GetRadarMap(); - - if (pRadarMap->IsRadarShowing()) - { - pRadarMap->SetAttachedToLocalPlayer(!g_pClientGame->GetRadarMap()->IsAttachedToLocalPlayer()); - } + CPlayerMap* playerMap = g_pClientGame->GetPlayerMap(); + if (playerMap->IsPlayerMapShowing()) + playerMap->SetAttachedToLocalPlayer(!g_pClientGame->GetPlayerMap()->IsAttachedToLocalPlayer()); } -void COMMAND_RadarOpacityDown(const char* szCmdLine) +void COMMAND_PlayerMapOpacityDown(const char* szCmdLine) { - CRadarMap* pRadarMap = g_pClientGame->GetRadarMap(); - if (pRadarMap->IsRadarShowing()) - { - int iAlpha; - g_pCore->GetCVars()->Get("mapalpha", iAlpha); - iAlpha = std::max(0, iAlpha - 20); - g_pCore->GetCVars()->Set("mapalpha", iAlpha); - } + CPlayerMap* playerMap = g_pClientGame->GetPlayerMap(); + if (!playerMap->IsPlayerMapShowing()) + return; + + int mapAlpha; + g_pCore->GetCVars()->Get("mapalpha", mapAlpha); + mapAlpha = std::max(0, mapAlpha - 20); + g_pCore->GetCVars()->Set("mapalpha", mapAlpha); } -void COMMAND_RadarOpacityUp(const char* szCmdLine) +void COMMAND_PlayerMapOpacityUp(const char* szCmdLine) { - CRadarMap* pRadarMap = g_pClientGame->GetRadarMap(); - if (pRadarMap->IsRadarShowing()) - { - int iAlpha; - g_pCore->GetCVars()->Get("mapalpha", iAlpha); - iAlpha = std::min(255, iAlpha + 20); - g_pCore->GetCVars()->Set("mapalpha", iAlpha); - } + CPlayerMap* playerMap = g_pClientGame->GetPlayerMap(); + if (!playerMap->IsPlayerMapShowing()) + return; + + int mapAlpha; + g_pCore->GetCVars()->Get("mapalpha", mapAlpha); + mapAlpha = std::min(255, mapAlpha + 20); + g_pCore->GetCVars()->Set("mapalpha", mapAlpha); } -void COMMAND_RadarHelp(const char* szCmdLine) +void COMMAND_PlayerMapHelp(const char* szCmdLine) { - g_pClientGame->GetRadarMap()->ToggleHelpText(); + g_pClientGame->GetPlayerMap()->ToggleHelpText(); } void COMMAND_MessageTarget(const char* szCmdLine) diff --git a/Client/mods/deathmatch/ClientCommands.h b/Client/mods/deathmatch/ClientCommands.h index c6aa755099..af31db12d4 100644 --- a/Client/mods/deathmatch/ClientCommands.h +++ b/Client/mods/deathmatch/ClientCommands.h @@ -21,17 +21,17 @@ void COMMAND_ShowNetstat(const char* szCmdLine); void COMMAND_EnterPassenger(const char* szCmdLine); void COMMAND_RadioNext(const char* szCmdLine); void COMMAND_RadioPrevious(const char* szCmdLine); -void COMMAND_RadarMap(const char* szCmdLine); -void COMMAND_RadarZoomIn(const char* szCmdLine); -void COMMAND_RadarZoomOut(const char* szCmdLine); -void COMMAND_RadarMoveNorth(const char* szCmdLine); -void COMMAND_RadarMoveSouth(const char* szCmdLine); -void COMMAND_RadarMoveEast(const char* szCmdLine); -void COMMAND_RadarMoveWest(const char* szCmdLine); -void COMMAND_RadarAttach(const char* szCmdLine); -void COMMAND_RadarOpacityDown(const char* szCmdLine); -void COMMAND_RadarOpacityUp(const char* szCmdLine); -void COMMAND_RadarHelp(const char* szCmdLine); +void COMMAND_PlayerMap(const char* szCmdLine); +void COMMAND_PlayerMapZoomIn(const char* szCmdLine); +void COMMAND_PlayerMapZoomOut(const char* szCmdLine); +void COMMAND_PlayerMapMoveNorth(const char* szCmdLine); +void COMMAND_PlayerMapMoveSouth(const char* szCmdLine); +void COMMAND_PlayerMapMoveEast(const char* szCmdLine); +void COMMAND_PlayerMapMoveWest(const char* szCmdLine); +void COMMAND_PlayerMapAttach(const char* szCmdLine); +void COMMAND_PlayerMapOpacityDown(const char* szCmdLine); +void COMMAND_PlayerMapOpacityUp(const char* szCmdLine); +void COMMAND_PlayerMapHelp(const char* szCmdLine); void COMMAND_MessageTarget(const char* szCmdLine); void COMMAND_VehicleNextWeapon(const char* szCmdLine); void COMMAND_VehiclePreviousWeapon(const char* szCmdLine); diff --git a/Client/mods/deathmatch/logic/CClientGame.cpp b/Client/mods/deathmatch/logic/CClientGame.cpp index eedd7cfd7a..99eb78de34 100644 --- a/Client/mods/deathmatch/logic/CClientGame.cpp +++ b/Client/mods/deathmatch/logic/CClientGame.cpp @@ -229,7 +229,7 @@ CClientGame::CClientGame(bool bLocalPlay) : m_ServerInfo(new CServerInfo()) m_pObjectSync = new CObjectSync(m_pObjectManager); #endif m_pNametags = new CNametags(m_pManager); - m_pRadarMap = new CRadarMap(m_pManager); + m_pPlayerMap = new CPlayerMap(m_pManager); // Set the screenshot path /* This is now done in CCore, to maintain a global screenshot path @@ -554,7 +554,7 @@ CClientGame::~CClientGame() #endif SAFE_DELETE(m_pBlendedWeather); SAFE_DELETE(m_pMovingObjectsManager); - SAFE_DELETE(m_pRadarMap); + SAFE_DELETE(m_pPlayerMap); SAFE_DELETE(m_pRemoteCalls); SAFE_DELETE(m_pLuaManager); SAFE_DELETE(m_pLatentTransferManager); @@ -1103,7 +1103,7 @@ void CClientGame::DoPulsePostFrame() CClientPerfStatManager::GetSingleton()->DoPulse(); } - m_pRadarMap->DoRender(); + m_pPlayerMap->DoRender(); m_pManager->DoRender(); DoPulses(); @@ -1441,8 +1441,8 @@ void CClientGame::DoPulses() } // Check for radar input - m_pRadarMap->DoPulse(); - g_pCore->GetGraphics()->SetAspectRatioAdjustmentSuspended(m_pRadarMap->IsRadarShowing()); + m_pPlayerMap->DoPulse(); + g_pCore->GetGraphics()->SetAspectRatioAdjustmentSuspended(m_pPlayerMap->IsPlayerMapShowing()); // Got a local player? if (m_pLocalPlayer) @@ -5413,8 +5413,8 @@ void CClientGame::ResetMapInfo() // Keybinds g_pCore->GetKeyBinds()->SetAllControlsEnabled(true, true, true); - // Radarmap - m_pRadarMap->SetForcedState(false); + // Player map + m_pPlayerMap->SetForcedState(false); // Camera m_pCamera->FadeOut(0.0f, 0, 0, 0); diff --git a/Client/mods/deathmatch/logic/CClientGame.h b/Client/mods/deathmatch/logic/CClientGame.h index 4423f35cf2..e887199fcd 100644 --- a/Client/mods/deathmatch/logic/CClientGame.h +++ b/Client/mods/deathmatch/logic/CClientGame.h @@ -28,7 +28,7 @@ #include "CUnoccupiedVehicleSync.h" #include "CPedSync.h" #include "CObjectSync.h" -#include "CRadarMap.h" +#include "CPlayerMap.h" #include "CClientTeamManager.h" #include "CClientPedManager.h" #include "lua/CLuaManager.h" @@ -296,7 +296,7 @@ class CClientGame CBlendedWeather* GetBlendedWeather() { return m_pBlendedWeather; }; CNetAPI* GetNetAPI() { return m_pNetAPI; }; - CRadarMap* GetRadarMap() { return m_pRadarMap; }; + CPlayerMap* GetPlayerMap() { return m_pPlayerMap; }; CMovingObjectsManager* GetMovingObjectsManager() { return m_pMovingObjectsManager; } CClientPlayer* GetLocalPlayer() { return m_pLocalPlayer; } @@ -694,7 +694,7 @@ class CClientGame CNetworkStats* m_pNetworkStats; CSyncDebug* m_pSyncDebug; // CScreenshot* m_pScreenshot; - CRadarMap* m_pRadarMap; + CPlayerMap* m_pPlayerMap; CTransferBox* m_pTransferBox; CResourceManager* m_pResourceManager; CScriptKeyBinds* m_pScriptKeyBinds; diff --git a/Client/mods/deathmatch/logic/CRadarMap.cpp b/Client/mods/deathmatch/logic/CPlayerMap.cpp similarity index 71% rename from Client/mods/deathmatch/logic/CRadarMap.cpp rename to Client/mods/deathmatch/logic/CPlayerMap.cpp index 4dd01baccd..de1529972a 100644 --- a/Client/mods/deathmatch/logic/CRadarMap.cpp +++ b/Client/mods/deathmatch/logic/CPlayerMap.cpp @@ -2,8 +2,8 @@ * * PROJECT: Multi Theft Auto v1.0 * LICENSE: See LICENSE in the top level directory - * FILE: mods/deathmatch/logic/CRadarMap.cpp - * PURPOSE: Full screen radar map renderer + * FILE: mods/deathmatch/logic/CPlayerMap.cpp + * PURPOSE: Full screen player map renderer * * Multi Theft Auto is available from http://www.multitheftauto.com/ * @@ -23,15 +23,19 @@ enum MARKER_LAST_SPRITE_INDEX = MARKER_FIRST_SPRITE_INDEX + RADAR_MARKER_LIMIT - 1, }; -CRadarMap::CRadarMap(CClientManager* pManager) +constexpr std::array MAP_IMAGE_SIZES = {1024, 2048}; + +CPlayerMap::CPlayerMap(CClientManager* pManager) { + m_failedToLoadTextures = false; + // Setup our managers m_pManager = pManager; m_pRadarMarkerManager = pManager->GetRadarMarkerManager(); m_pRadarAreaManager = m_pManager->GetRadarAreaManager(); - // Set the radar bools - m_bIsRadarEnabled = false; + // Set the map bools + m_bIsPlayerMapEnabled = false; m_bForcedState = false; m_bIsAttachedToLocal = false; m_bHideHelpText = false; @@ -52,17 +56,17 @@ CRadarMap::CRadarMap(CClientManager* pManager) m_fZoom = 1; m_iHorizontalMovement = 0; m_iVerticalMovement = 0; - SetupMapVariables(); - // Create the radar and local player blip images - m_pRadarImage = - g_pCore->GetGraphics()->GetRenderItemManager()->CreateTexture(CalcMTASAPath("MTA\\cgui\\images\\radar.jpg"), NULL, false, 1024, 1024, RFORMAT_DXT1); - m_pLocalPlayerBlip = g_pCore->GetGraphics()->GetRenderItemManager()->CreateTexture(CalcMTASAPath("MTA\\cgui\\images\\radarset\\02.png")); + // Init texture vars + m_mapImageTexture = nullptr; + m_playerMarkerTexture = nullptr; - // Create the marker textures - CreateMarkerTextures(); + // Create all map textures + CreateAllTextures(); // Create the text displays for the help text + const SColorRGBA colorWhiteTransparent(255, 255, 255, 200); + const SColorRGBA colorWhite(255, 255, 255, 255); struct { SColor color; @@ -70,17 +74,15 @@ CRadarMap::CRadarMap(CClientManager* pManager) float fScale; SString strMessage; } messageList[] = { - {SColorRGBA(255, 255, 255, 200), 0.92f, 1.5f, "Current Mode: Kill all humans"}, - {SColorRGBA(255, 255, 255, 255), 0.95f, 1.0f, SString("Press %s to change mode.", *GetBoundKeyName("radar_attach"))}, - {SColorRGBA(255, 255, 255, 255), 0.05f, 1.0f, - SString("Press %s/%s to zoom in/out.", *GetBoundKeyName("radar_zoom_in"), *GetBoundKeyName("radar_zoom_out"))}, - {SColorRGBA(255, 255, 255, 255), 0.08f, 1.0f, - SString("Press %s, %s, %s, %s to navigate the map.", *GetBoundKeyName("radar_move_north"), *GetBoundKeyName("radar_move_east"), - *GetBoundKeyName("radar_move_south"), *GetBoundKeyName("radar_move_west"))}, - {SColorRGBA(255, 255, 255, 255), 0.11f, 1.0f, - SString("Press %s/%s to change opacity.", *GetBoundKeyName("radar_opacity_down"), *GetBoundKeyName("radar_opacity_up"))}, - {SColorRGBA(255, 255, 255, 255), 0.14f, 1.0f, SString("Press %s to hide the map.", *GetBoundKeyName("radar"))}, - {SColorRGBA(255, 255, 255, 255), 0.17f, 1.0f, SString("Press %s to hide this help text.", *GetBoundKeyName("radar_help"))}, + {colorWhiteTransparent, 0.92f, 1.5f, ""}, + {colorWhite, 0.95f, 1.0f, SString(_("Change mode: %s"), *GetBoundKeyName("radar_attach"))}, + + {colorWhite, 0.05f, 1.0f, SString(_("Zoom: %s/%s Movement: %s, %s, %s, %s Opacity: %s/%s"), + *GetBoundKeyName("radar_zoom_in"), *GetBoundKeyName("radar_zoom_out"), *GetBoundKeyName("radar_move_north"), + *GetBoundKeyName("radar_move_east"), *GetBoundKeyName("radar_move_south"), *GetBoundKeyName("radar_move_west"), + *GetBoundKeyName("radar_opacity_down"), *GetBoundKeyName("radar_opacity_up"))}, + {colorWhite, 0.07f, 1.0f, SString(_("Toggle map: %s Toggle help text: %s"), + *GetBoundKeyName("radar"), *GetBoundKeyName("radar_help"))}, }; for (uint i = 0; i < NUMELMS(messageList); i++) @@ -98,26 +100,82 @@ CRadarMap::CRadarMap(CClientManager* pManager) // Default to attached to player SetAttachedToLocalPlayer(true); + + SetupMapVariables(); } -CRadarMap::~CRadarMap() +CPlayerMap::~CPlayerMap() { // Delete our images - SAFE_RELEASE(m_pRadarImage); - SAFE_RELEASE(m_pLocalPlayerBlip); + SAFE_RELEASE(m_mapImageTexture); + SAFE_RELEASE(m_playerMarkerTexture); + for (uint i = 0; i < m_markerTextureList.size(); i++) + SAFE_RELEASE(m_markerTextureList[i]); + m_markerTextureList.clear(); - for (uint i = 0; i < m_MarkerTextureList.size(); i++) - SAFE_RELEASE(m_MarkerTextureList[i]); + // Don't need to delete the help texts as those are destroyed by the display manager +} - m_MarkerTextureList.clear(); +void CPlayerMap::CreateOrUpdateMapTexture() +{ + const std::uint32_t mapSize = MAP_IMAGE_SIZES[m_playerMapImageIndex]; + const SString fileName("MTA\\cgui\\images\\map_%d.png", mapSize); - // Don't need to delete the help texts as those are destroyed by the display manager + auto* newTexture = g_pCore->GetGraphics()->GetRenderItemManager()->CreateTexture(CalcMTASAPath(fileName), nullptr, false, mapSize, mapSize, RFORMAT_DXT1); + if (!newTexture) + throw std::runtime_error("Failed to load map image"); + + SAFE_RELEASE(m_mapImageTexture); + m_mapImageTexture = newTexture; +} + +void CPlayerMap::UpdateOrRevertMapTexture(std::size_t newImageIndex) +{ + const std::size_t oldImageIndex = m_playerMapImageIndex; + try + { + m_playerMapImageIndex = newImageIndex; + CreateOrUpdateMapTexture(); + } + catch (const std::exception& e) + { + m_playerMapImageIndex = oldImageIndex; + g_pCore->GetConsole()->Printf("Problem updating map image: %s", e.what()); + } +} + +void CPlayerMap::CreatePlayerBlipTexture() +{ + m_playerMarkerTexture = g_pCore->GetGraphics()->GetRenderItemManager()->CreateTexture(CalcMTASAPath("MTA\\cgui\\images\\radarset\\02.png")); + if (!m_playerMarkerTexture) + throw std::runtime_error("Failed to load player blip image"); +} + +void CPlayerMap::CreateAllTextures() +{ + try + { + // Create the map texture + m_playerMapImageIndex = g_pCore->GetCVars()->GetValue("mapimage"); + CreateOrUpdateMapTexture(); + + // Create the player blip texture + CreatePlayerBlipTexture(); + + // Create the other marker textures + CreateMarkerTextures(); + } + catch (const std::exception& e) + { + m_failedToLoadTextures = true; + g_pCore->GetConsole()->Printf("Problem initializing player map: %s", e.what()); + } } -void CRadarMap::DoPulse() +void CPlayerMap::DoPulse() { - // If our radar image exists - if (IsRadarShowing()) + // If our map image exists + if (IsPlayerMapShowing()) { // If we are following the local player blip if (m_bIsAttachedToLocal) @@ -154,11 +212,11 @@ void CRadarMap::DoPulse() } // -// Precreate all the textures for the radar map markers +// Precreate all the textures for the player map markers // -void CRadarMap::CreateMarkerTextures() +void CPlayerMap::CreateMarkerTextures() { - assert(m_MarkerTextureList.empty()); + m_markerTextureList.clear(); SString strRadarSetDirectory = CalcMTASAPath("MTA\\cgui\\images\\radarset\\"); // Load the 3 shapes @@ -166,25 +224,27 @@ void CRadarMap::CreateMarkerTextures() for (uint i = 0; i < NUMELMS(shapeFileNames); i++) { CTextureItem* pTextureItem = g_pCore->GetGraphics()->GetRenderItemManager()->CreateTexture(PathJoin(strRadarSetDirectory, shapeFileNames[i])); - m_MarkerTextureList.push_back(pTextureItem); + m_markerTextureList.push_back(pTextureItem); } - assert(m_MarkerTextureList.size() == MARKER_FIRST_SPRITE_INDEX); + if (m_markerTextureList.size() != MARKER_FIRST_SPRITE_INDEX) + throw std::runtime_error("Failed to load marker textures [1]"); // Load the icons for (uint i = 0; i < RADAR_MARKER_LIMIT; i++) { CTextureItem* pTextureItem = g_pCore->GetGraphics()->GetRenderItemManager()->CreateTexture(PathJoin(strRadarSetDirectory, SString("%02u.png", i + 1))); - m_MarkerTextureList.push_back(pTextureItem); + m_markerTextureList.push_back(pTextureItem); } - assert(m_MarkerTextureList.size() == MARKER_LAST_SPRITE_INDEX + 1); + if (m_markerTextureList.size() != MARKER_LAST_SPRITE_INDEX + 1) + throw std::runtime_error("Failed to load marker textures [2]"); } // // Get a texture for a marker, including scale and color // -CTextureItem* CRadarMap::GetMarkerTexture(CClientRadarMarker* pMarker, float fLocalZ, float* pfScale, SColor* pColor) +CTextureItem* CPlayerMap::GetMarkerTexture(CClientRadarMarker* pMarker, float fLocalZ, float* pfScale, SColor* pColor) { float fScale = pMarker->GetScale(); ulong ulSprite = pMarker->GetSprite(); @@ -220,26 +280,33 @@ CTextureItem* CRadarMap::GetMarkerTexture(CClientRadarMarker* pMarker, float fLo *pfScale = fScale; *pColor = color; - if (uiListIndex >= m_MarkerTextureList.size()) + if (uiListIndex >= m_markerTextureList.size()) return NULL; - return m_MarkerTextureList[uiListIndex]; + return m_markerTextureList[uiListIndex]; } -void CRadarMap::DoRender() +void CPlayerMap::DoRender() { - bool bIsRadarShowing = IsRadarShowing(); + bool isMapShowing = IsPlayerMapShowing(); - // Render if showing - if (bIsRadarShowing) + // Render if showing and textures are all loaded + if (isMapShowing && !m_failedToLoadTextures) { // Get the alpha value from the settings - int iRadarAlpha; - g_pCore->GetCVars()->Get("mapalpha", iRadarAlpha); + int mapAlpha; + g_pCore->GetCVars()->Get("mapalpha", mapAlpha); + const SColorARGB mapColor(mapAlpha, 255, 255, 255); + + // Update the image if the user changed it via a setting + auto mapImageIndex = g_pCore->GetCVars()->GetValue("mapimage"); + if (mapImageIndex != m_playerMapImageIndex) + { + UpdateOrRevertMapTexture(mapImageIndex); + } - g_pCore->GetGraphics()->DrawTexture(m_pRadarImage, static_cast(m_iMapMinX), static_cast(m_iMapMinY), - m_fMapSize / m_pRadarImage->m_uiSizeX, m_fMapSize / m_pRadarImage->m_uiSizeY, 0.0f, 0.0f, 0.0f, - SColorARGB(iRadarAlpha, 255, 255, 255)); + g_pCore->GetGraphics()->DrawTexture(m_mapImageTexture, static_cast(m_iMapMinX), static_cast(m_iMapMinY), + m_fMapSize / m_mapImageTexture->m_uiSizeX, m_fMapSize / m_mapImageTexture->m_uiSizeY, 0.0f, 0.0f, 0.0f, mapColor); // Grab the info for the local player blip CVector2D vecLocalPos; @@ -316,11 +383,11 @@ void CRadarMap::DoRender() } } - g_pCore->GetGraphics()->DrawTexture(m_pLocalPlayerBlip, vecLocalPos.fX, vecLocalPos.fY, 1.0, 1.0, vecLocalRot.fZ, 0.5f, 0.5f); + g_pCore->GetGraphics()->DrawTexture(m_playerMarkerTexture, vecLocalPos.fX, vecLocalPos.fY, 1.0, 1.0, vecLocalRot.fZ, 0.5f, 0.5f); } // Update visibility of help text - bool bRequiredTextVisible = bIsRadarShowing && !m_bHideHelpText; + bool bRequiredTextVisible = isMapShowing && !m_bHideHelpText; if (bRequiredTextVisible != m_bTextVisible) { m_bTextVisible = bRequiredTextVisible; @@ -331,31 +398,31 @@ void CRadarMap::DoRender() } } -void CRadarMap::SetRadarEnabled(bool bIsRadarEnabled) +void CPlayerMap::SetPlayerMapEnabled(bool show) { - bool bAlreadyEnabled = (m_bIsRadarEnabled || m_bForcedState); - bool bWillShow = (bIsRadarEnabled || m_bForcedState); - if (bAlreadyEnabled != bWillShow) + bool alreadyEnabled = (m_bIsPlayerMapEnabled || m_bForcedState); + bool definitiveShow = (show || m_bForcedState); + if (alreadyEnabled != definitiveShow) { - InternalSetRadarEnabled(bWillShow); + InternalSetPlayerMapEnabled(definitiveShow); } - m_bIsRadarEnabled = bIsRadarEnabled; + m_bIsPlayerMapEnabled = show; } -void CRadarMap::SetForcedState(bool bState) +void CPlayerMap::SetForcedState(bool state) { - bool bAlreadyShowing = (m_bIsRadarEnabled || m_bForcedState); - bool bWillShow = (m_bIsRadarEnabled || bState); - if (bAlreadyShowing != bWillShow) + bool currState = (m_bIsPlayerMapEnabled || m_bForcedState); + bool definitiveState = (m_bIsPlayerMapEnabled || state); + if (currState != definitiveState) { - InternalSetRadarEnabled(bWillShow); + InternalSetPlayerMapEnabled(definitiveState); } - m_bForcedState = bState; + m_bForcedState = state; } -void CRadarMap::InternalSetRadarEnabled(bool bEnabled) +void CPlayerMap::InternalSetPlayerMapEnabled(bool enable) { - if (bEnabled) + if (enable) { m_bChatVisible = g_pCore->IsChatVisible(); m_bChatInputBlocked = g_pCore->IsChatInputBlocked(); @@ -375,7 +442,7 @@ void CRadarMap::InternalSetRadarEnabled(bool bEnabled) } } -bool CRadarMap::CalculateEntityOnScreenPosition(CClientEntity* pEntity, CVector2D& vecLocalPos) +bool CPlayerMap::CalculateEntityOnScreenPosition(CClientEntity* pEntity, CVector2D& vecLocalPos) { // If the entity exists if (pEntity) @@ -406,7 +473,7 @@ bool CRadarMap::CalculateEntityOnScreenPosition(CClientEntity* pEntity, CVector2 return false; } -bool CRadarMap::CalculateEntityOnScreenPosition(CVector vecPosition, CVector2D& vecLocalPos) +bool CPlayerMap::CalculateEntityOnScreenPosition(CVector vecPosition, CVector2D& vecLocalPos) { // Adjust to the map variables and create the map ratio float fX = vecPosition.fX + 3000.0f; @@ -428,7 +495,7 @@ bool CRadarMap::CalculateEntityOnScreenPosition(CVector vecPosition, CVector2D& return false; } -void CRadarMap::SetupMapVariables() +void CPlayerMap::SetupMapVariables() { // Calculate the map size and the middle of the screen coords m_fMapSize = static_cast(m_uiHeight * m_fZoom); @@ -524,7 +591,7 @@ void CRadarMap::SetupMapVariables() } } -void CRadarMap::ZoomIn() +void CPlayerMap::ZoomIn() { if (m_fZoom <= 4) { @@ -533,7 +600,7 @@ void CRadarMap::ZoomIn() } } -void CRadarMap::ZoomOut() +void CPlayerMap::ZoomOut() { if (m_fZoom >= 1) { @@ -559,7 +626,7 @@ void CRadarMap::ZoomOut() } } -void CRadarMap::MoveNorth() +void CPlayerMap::MoveNorth() { if (!m_bIsAttachedToLocal) { @@ -579,7 +646,7 @@ void CRadarMap::MoveNorth() } } -void CRadarMap::MoveSouth() +void CPlayerMap::MoveSouth() { if (!m_bIsAttachedToLocal) { @@ -599,7 +666,7 @@ void CRadarMap::MoveSouth() } } -void CRadarMap::MoveEast() +void CPlayerMap::MoveEast() { if (!m_bIsAttachedToLocal) { @@ -619,7 +686,7 @@ void CRadarMap::MoveEast() } } -void CRadarMap::MoveWest() +void CPlayerMap::MoveWest() { if (!m_bIsAttachedToLocal) { @@ -639,30 +706,26 @@ void CRadarMap::MoveWest() } } -void CRadarMap::SetAttachedToLocalPlayer(bool bIsAttachedToLocal) +void CPlayerMap::SetAttachedToLocalPlayer(bool bIsAttachedToLocal) { m_bIsAttachedToLocal = bIsAttachedToLocal; SetupMapVariables(); if (m_bIsAttachedToLocal) - { - m_HelpTextList[0]->SetCaption("Current Mode: Attached to local player"); - } + m_HelpTextList[0]->SetCaption(_("Following Player")); else - { - m_HelpTextList[0]->SetCaption("Current Mode: Free Move"); - } + m_HelpTextList[0]->SetCaption(_("Free Movement")); } -bool CRadarMap::IsRadarShowing() +bool CPlayerMap::IsPlayerMapShowing() { - return ((m_bIsRadarEnabled || m_bForcedState) && m_pRadarImage && m_pLocalPlayerBlip && (!g_pCore->GetConsole()->IsVisible() && !g_pCore->IsMenuVisible())); + return ((m_bIsPlayerMapEnabled || m_bForcedState) && m_mapImageTexture && m_playerMarkerTexture && (!g_pCore->GetConsole()->IsVisible() && !g_pCore->IsMenuVisible())); } -bool CRadarMap::GetBoundingBox(CVector& vecMin, CVector& vecMax) +bool CPlayerMap::GetBoundingBox(CVector& vecMin, CVector& vecMax) { - // If our radar image exists (Values are not calculated unless map is showing) - if (IsRadarShowing()) + // If our map image exists (Values are not calculated unless map is showing) + if (IsPlayerMapShowing()) { vecMin.fX = static_cast(m_iMapMinX); vecMin.fY = static_cast(m_iMapMinY); @@ -678,12 +741,12 @@ bool CRadarMap::GetBoundingBox(CVector& vecMin, CVector& vecMax) } } -void CRadarMap::ToggleHelpText() +void CPlayerMap::ToggleHelpText() { m_bHideHelpText = !m_bHideHelpText; } -SString CRadarMap::GetBoundKeyName(const SString& strCommand) +SString CPlayerMap::GetBoundKeyName(const SString& strCommand) { CCommandBind* pCommandBind = g_pCore->GetKeyBinds()->GetBindFromCommand(strCommand, 0, 0, 0, false, 0); if (!pCommandBind) diff --git a/Client/mods/deathmatch/logic/CRadarMap.h b/Client/mods/deathmatch/logic/CPlayerMap.h similarity index 77% rename from Client/mods/deathmatch/logic/CRadarMap.h rename to Client/mods/deathmatch/logic/CPlayerMap.h index a3dd8f0d51..0d6edebb6f 100644 --- a/Client/mods/deathmatch/logic/CRadarMap.h +++ b/Client/mods/deathmatch/logic/CPlayerMap.h @@ -2,8 +2,8 @@ * * PROJECT: Multi Theft Auto v1.0 * LICENSE: See LICENSE in the top level directory - * FILE: mods/deathmatch/logic/CRadarMap.h - * PURPOSE: Header for radar map class + * FILE: mods/deathmatch/logic/CPlayerMap.h + * PURPOSE: Header for player map class * * Multi Theft Auto is available from http://www.multitheftauto.com/ * @@ -16,19 +16,19 @@ #include #include -class CRadarMap +class CPlayerMap { public: - CRadarMap(class CClientManager* pManager); - virtual ~CRadarMap(); + CPlayerMap(class CClientManager* pManager); + virtual ~CPlayerMap(); void DoPulse(); void DoRender(); - bool IsRadarShowing(); + bool IsPlayerMapShowing(); - bool GetRadarEnabled() const { return m_bIsRadarEnabled; }; - void SetRadarEnabled(bool bIsRadarEnabled); + bool GetPlayerMapEnabled() const { return m_bIsPlayerMapEnabled; }; + void SetPlayerMapEnabled(bool bIsRadarEnabled); bool GetForcedState() const { return m_bForcedState; } void SetForcedState(bool bState); @@ -38,10 +38,14 @@ class CRadarMap void ToggleHelpText(); protected: - void InternalSetRadarEnabled(bool bEnabled); + void InternalSetPlayerMapEnabled(bool bEnabled); void CreateMarkerTextures(); CTextureItem* GetMarkerTexture(CClientRadarMarker* pMarker, float fLocalZ, float* pfScale, SColor* pColor); + void CreatePlayerBlipTexture(); + void CreateOrUpdateMapTexture(); + void UpdateOrRevertMapTexture(std::size_t imageIndex); + void CreateAllTextures(); public: bool IsAttachedToLocalPlayer() const { return m_bIsAttachedToLocal; }; @@ -79,9 +83,13 @@ class CRadarMap class CClientRadarMarkerManager* m_pRadarMarkerManager; class CClientRadarAreaManager* m_pRadarAreaManager; - CTextureItem* m_pRadarImage; - CTextureItem* m_pLocalPlayerBlip; - std::vector m_MarkerTextureList; + bool m_failedToLoadTextures; + + std::size_t m_playerMapImageIndex; + + CTextureItem* m_mapImageTexture; + CTextureItem* m_playerMarkerTexture; + std::vector m_markerTextureList; unsigned int m_uiHeight; unsigned int m_uiWidth; @@ -97,7 +105,7 @@ class CRadarMap float m_fZoom; - bool m_bIsRadarEnabled; + bool m_bIsPlayerMapEnabled; bool m_bForcedState; bool m_bIsAttachedToLocal; diff --git a/Client/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp b/Client/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp index fc1ae38e3b..c17a0d1c2b 100644 --- a/Client/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp +++ b/Client/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp @@ -51,7 +51,7 @@ static CClientMarkerManager* m_pMarkerManager; static CClientPickupManager* m_pPickupManager; static CMovingObjectsManager* m_pMovingObjectsManager; static CBlendedWeather* m_pBlendedWeather; -static CRadarMap* m_pRadarMap; +static CPlayerMap* m_pPlayerMap; static CClientCamera* m_pCamera; static CClientExplosionManager* m_pExplosionManager; static CClientProjectileManager* m_pProjectileManager; @@ -88,7 +88,7 @@ CStaticFunctionDefinitions::CStaticFunctionDefinitions(CLuaManager* pLuaManager, m_pPickupManager = pManager->GetPickupManager(); m_pMovingObjectsManager = m_pClientGame->GetMovingObjectsManager(); m_pBlendedWeather = m_pClientGame->GetBlendedWeather(); - m_pRadarMap = m_pClientGame->GetRadarMap(); + m_pPlayerMap = m_pClientGame->GetPlayerMap(); m_pCamera = pManager->GetCamera(); m_pExplosionManager = pManager->GetExplosionManager(); m_pProjectileManager = pManager->GetProjectileManager(); @@ -7840,25 +7840,25 @@ bool CStaticFunctionDefinitions::SetWeaponClipAmmo(CClientWeapon* pWeapon, int i bool CStaticFunctionDefinitions::ForcePlayerMap(bool& bForced) { - m_pClientGame->GetRadarMap()->SetForcedState(bForced); + m_pClientGame->GetPlayerMap()->SetForcedState(bForced); return true; } bool CStaticFunctionDefinitions::IsPlayerMapForced(bool& bForced) { - bForced = m_pRadarMap->GetForcedState(); + bForced = m_pPlayerMap->GetForcedState(); return true; } bool CStaticFunctionDefinitions::IsPlayerMapVisible(bool& bVisible) { - bVisible = m_pRadarMap->IsRadarShowing(); + bVisible = m_pPlayerMap->IsPlayerMapShowing(); return true; } bool CStaticFunctionDefinitions::GetPlayerMapBoundingBox(CVector& vecMin, CVector& vecMax) { - if (m_pRadarMap->GetBoundingBox(vecMin, vecMax)) + if (m_pPlayerMap->GetBoundingBox(vecMin, vecMax)) { return true; } diff --git a/Client/mods/deathmatch/logic/rpc/CPlayerRPCs.cpp b/Client/mods/deathmatch/logic/rpc/CPlayerRPCs.cpp index e8cda43283..321c030652 100644 --- a/Client/mods/deathmatch/logic/rpc/CPlayerRPCs.cpp +++ b/Client/mods/deathmatch/logic/rpc/CPlayerRPCs.cpp @@ -60,7 +60,7 @@ void CPlayerRPCs::ForcePlayerMap(NetBitStreamInterface& bitStream) if (bitStream.Read(ucVisible)) { bool bVisible = (ucVisible == 1); - m_pClientGame->GetRadarMap()->SetForcedState(bVisible); + m_pClientGame->GetPlayerMap()->SetForcedState(bVisible); } } diff --git a/Shared/data/MTA San Andreas/MTA/cgui/images/map_1024.png b/Shared/data/MTA San Andreas/MTA/cgui/images/map_1024.png new file mode 100644 index 0000000000..747e6d6d49 Binary files /dev/null and b/Shared/data/MTA San Andreas/MTA/cgui/images/map_1024.png differ diff --git a/Shared/data/MTA San Andreas/MTA/cgui/images/map_2048.png b/Shared/data/MTA San Andreas/MTA/cgui/images/map_2048.png new file mode 100644 index 0000000000..c41bfbb347 Binary files /dev/null and b/Shared/data/MTA San Andreas/MTA/cgui/images/map_2048.png differ diff --git a/Shared/data/MTA San Andreas/MTA/cgui/images/radar.jpg b/Shared/data/MTA San Andreas/MTA/cgui/images/radar.jpg deleted file mode 100644 index 4249b8943f..0000000000 Binary files a/Shared/data/MTA San Andreas/MTA/cgui/images/radar.jpg and /dev/null differ diff --git a/Shared/data/MTA San Andreas/MTA/locale/en_US/client.pot b/Shared/data/MTA San Andreas/MTA/locale/en_US/client.pot index a204732ed1..89954245ec 100644 --- a/Shared/data/MTA San Andreas/MTA/locale/en_US/client.pot +++ b/Shared/data/MTA San Andreas/MTA/locale/en_US/client.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: MTA San Andreas 1.x\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-22 00:06+0000\n" +"POT-Creation-Date: 2024-12-22 16:09+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,7 +35,7 @@ msgstr "" msgid "Remember decision" msgstr "" -#: Client/cefweb/CWebsiteRequests.cpp:51 Client/core/CSettings.cpp:978 +#: Client/cefweb/CWebsiteRequests.cpp:51 Client/core/CSettings.cpp:991 msgid "Allow" msgstr "" @@ -85,47 +85,47 @@ msgid "previous radio channel" msgstr "" #: Client/mods/deathmatch/CClient.cpp:67 -msgid "enables the radar view" +msgid "enables the player-map view" msgstr "" #: Client/mods/deathmatch/CClient.cpp:68 -msgid "zooms the radar in" +msgid "zooms the player-map in" msgstr "" #: Client/mods/deathmatch/CClient.cpp:69 -msgid "zooms the radar out" +msgid "zooms the player-map out" msgstr "" #: Client/mods/deathmatch/CClient.cpp:70 -msgid "moves the radar north" +msgid "moves the player-map north" msgstr "" #: Client/mods/deathmatch/CClient.cpp:71 -msgid "moves the radar south" +msgid "moves the player-map south" msgstr "" #: Client/mods/deathmatch/CClient.cpp:72 -msgid "moves the radar east" +msgid "moves the player-map east" msgstr "" #: Client/mods/deathmatch/CClient.cpp:73 -msgid "moves the radar west" +msgid "moves the player-map west" msgstr "" #: Client/mods/deathmatch/CClient.cpp:74 -msgid "attaches the radar" +msgid "attaches the player-map" msgstr "" #: Client/mods/deathmatch/CClient.cpp:75 -msgid "reduces radar opacity" +msgid "reduces player-map opacity" msgstr "" #: Client/mods/deathmatch/CClient.cpp:76 -msgid "increases radar opacity" +msgid "increases player-map opacity" msgstr "" #: Client/mods/deathmatch/CClient.cpp:77 -msgid "toggles radar help text" +msgid "toggles player-map help text" msgstr "" #: Client/mods/deathmatch/CClient.cpp:78 @@ -160,7 +160,7 @@ msgstr "" #: Client/mods/deathmatch/logic/CResource.cpp:375 #: Client/mods/deathmatch/logic/CClientGame.cpp:1095 Client/core/CCore.cpp:674 -#: Client/core/CSettings.cpp:3489 +#: Client/core/CSettings.cpp:3510 msgid "In-game" msgstr "" @@ -275,7 +275,7 @@ msgstr "" #: Client/mods/deathmatch/logic/CClientGame.cpp:539 #: Client/core/CMainMenu.cpp:304 Client/core/CCore.cpp:674 -#: Client/core/CSettings.cpp:3485 +#: Client/core/CSettings.cpp:3506 msgid "Main menu" msgstr "" @@ -299,9 +299,9 @@ msgstr "" #: Client/loader/MainFunctions.cpp:269 Client/loader/MainFunctions.cpp:846 #: Client/loader/CInstallManager.cpp:552 Client/loader/CInstallManager.cpp:561 #: Client/core/CGUI.cpp:93 Client/core/CCore.cpp:1279 -#: Client/core/CCore.cpp:1292 Client/core/CSettings.cpp:2945 -#: Client/core/CSettings.cpp:4179 Client/core/CSettings.cpp:4207 -#: Client/core/CSettings.cpp:4777 Client/core/CConnectManager.cpp:80 +#: Client/core/CCore.cpp:1292 Client/core/CSettings.cpp:2966 +#: Client/core/CSettings.cpp:4204 Client/core/CSettings.cpp:4232 +#: Client/core/CSettings.cpp:4802 Client/core/CConnectManager.cpp:80 #: Client/core/CConnectManager.cpp:111 Client/core/CConnectManager.cpp:127 #: Client/core/CConnectManager.cpp:265 Client/core/CConnectManager.cpp:323 #: Client/core/CConnectManager.cpp:406 Client/core/CConnectManager.cpp:413 @@ -453,6 +453,29 @@ msgstr "" msgid "Wasted" msgstr "" +#: Client/mods/deathmatch/logic/CPlayerMap.cpp:78 +#, c-format +msgid "Change mode: %s" +msgstr "" + +#: Client/mods/deathmatch/logic/CPlayerMap.cpp:80 +#, c-format +msgid "Zoom: %s/%s Movement: %s, %s, %s, %s Opacity: %s/%s" +msgstr "" + +#: Client/mods/deathmatch/logic/CPlayerMap.cpp:84 +#, c-format +msgid "Toggle map: %s Toggle help text: %s" +msgstr "" + +#: Client/mods/deathmatch/logic/CPlayerMap.cpp:715 +msgid "Following Player" +msgstr "" + +#: Client/mods/deathmatch/logic/CPlayerMap.cpp:717 +msgid "Free Movement" +msgstr "" + #: Client/mods/deathmatch/logic/CTransferBox.cpp:25 msgid "Map download progress:" msgstr "" @@ -681,8 +704,8 @@ msgstr "" #. * Webbrowser tab #. * #: Client/mods/deathmatch/logic/CLocalServer.cpp:51 -#: Client/core/CSettings.cpp:442 Client/core/CSettings.cpp:630 -#: Client/core/CSettings.cpp:904 Client/core/CSettings.cpp:2022 +#: Client/core/CSettings.cpp:458 Client/core/CSettings.cpp:917 +#: Client/core/CSettings.cpp:2043 msgid "General" msgstr "" @@ -738,7 +761,7 @@ msgstr "" #: Client/gui/CGUIMessageBox_Impl.cpp:68 Client/loader/Dialogs.cpp:136 #: Client/core/CVersionUpdater.cpp:1790 Client/core/CVersionUpdater.cpp:1806 #: Client/core/CVersionUpdater.cpp:1841 Client/core/CSettings.cpp:132 -#: Client/core/CSettings.cpp:4797 +#: Client/core/CSettings.cpp:4822 msgid "Cancel" msgstr "" @@ -774,7 +797,7 @@ msgstr "" #: Client/core/CVersionUpdater.cpp:1956 Client/core/CVersionUpdater.cpp:1968 #: Client/core/CVersionUpdater.cpp:2120 Client/core/CVersionUpdater.cpp:2129 #: Client/core/CVersionUpdater.cpp:2138 Client/core/CVersionUpdater.cpp:2152 -#: Client/core/CSettings.cpp:127 Client/core/CSettings.cpp:4798 +#: Client/core/CSettings.cpp:127 Client/core/CSettings.cpp:4823 msgid "OK" msgstr "" @@ -788,9 +811,9 @@ msgstr "" #: Client/core/CVersionUpdater.cpp:1572 Client/core/CVersionUpdater.cpp:1590 #: Client/core/CVersionUpdater.cpp:1859 Client/core/CVersionUpdater.cpp:1878 #: Client/core/CQuestionBox.cpp:195 Client/core/CMainMenu.cpp:1196 -#: Client/core/CSettings.cpp:1393 Client/core/CSettings.cpp:1417 -#: Client/core/CSettings.cpp:4502 Client/core/CSettings.cpp:4576 -#: Client/core/CSettings.cpp:4606 Client/core/CSettings.cpp:4655 +#: Client/core/CSettings.cpp:1407 Client/core/CSettings.cpp:1431 +#: Client/core/CSettings.cpp:4527 Client/core/CSettings.cpp:4601 +#: Client/core/CSettings.cpp:4631 Client/core/CSettings.cpp:4680 #: Client/core/ServerBrowser/CServerInfo.cpp:481 msgid "Yes" msgstr "" @@ -926,10 +949,10 @@ msgstr "" #: Client/loader/Dialogs.cpp:132 Client/core/CVersionUpdater.cpp:1571 #: Client/core/CVersionUpdater.cpp:1589 Client/core/CVersionUpdater.cpp:1858 #: Client/core/CVersionUpdater.cpp:1877 Client/core/CQuestionBox.cpp:194 -#: Client/core/CMainMenu.cpp:1195 Client/core/CSettings.cpp:1392 -#: Client/core/CSettings.cpp:1416 Client/core/CSettings.cpp:4501 -#: Client/core/CSettings.cpp:4575 Client/core/CSettings.cpp:4605 -#: Client/core/CSettings.cpp:4654 Client/core/ServerBrowser/CServerInfo.cpp:481 +#: Client/core/CMainMenu.cpp:1195 Client/core/CSettings.cpp:1406 +#: Client/core/CSettings.cpp:1430 Client/core/CSettings.cpp:4526 +#: Client/core/CSettings.cpp:4600 Client/core/CSettings.cpp:4630 +#: Client/core/CSettings.cpp:4679 Client/core/ServerBrowser/CServerInfo.cpp:481 msgid "No" msgstr "" @@ -1143,13 +1166,13 @@ msgid "" "Do you want to change the following setting?" msgstr "" -#: Client/loader/MainFunctions.cpp:389 Client/core/CSettings.cpp:662 -#: Client/core/CSettings.cpp:1008 +#: Client/loader/MainFunctions.cpp:389 Client/core/CSettings.cpp:675 +#: Client/core/CSettings.cpp:1021 msgid "Fullscreen mode:" msgstr "" -#: Client/loader/MainFunctions.cpp:389 Client/core/CSettings.cpp:670 -#: Client/core/CSettings.cpp:1619 +#: Client/loader/MainFunctions.cpp:389 Client/core/CSettings.cpp:683 +#: Client/core/CSettings.cpp:1633 msgid "Borderless window" msgstr "" @@ -1537,7 +1560,7 @@ msgstr "" msgid " - Unknown problem in _DialogUpdateResult" msgstr "" -#: Client/core/CVersionUpdater.cpp:2081 Client/core/CSettings.cpp:4603 +#: Client/core/CVersionUpdater.cpp:2081 Client/core/CSettings.cpp:4628 msgid "CUSTOMIZED GTA:SA FILES" msgstr "" @@ -1590,13 +1613,13 @@ msgstr "" msgid "Backwards" msgstr "" -#: Client/core/CKeyBinds.cpp:191 Client/core/CSettings.cpp:2244 -#: Client/core/CSettings.cpp:2272 +#: Client/core/CKeyBinds.cpp:191 Client/core/CSettings.cpp:2265 +#: Client/core/CSettings.cpp:2293 msgid "Left" msgstr "" -#: Client/core/CKeyBinds.cpp:192 Client/core/CSettings.cpp:2246 -#: Client/core/CSettings.cpp:2273 +#: Client/core/CKeyBinds.cpp:192 Client/core/CSettings.cpp:2267 +#: Client/core/CSettings.cpp:2294 msgid "Right" msgstr "" @@ -2067,7 +2090,7 @@ msgid "Advanced" msgstr "" #: Client/core/CSettings.cpp:147 Client/core/CSettings.cpp:338 -#: Client/core/CSettings.cpp:617 Client/core/CSettings.cpp:889 +#: Client/core/CSettings.cpp:633 Client/core/CSettings.cpp:902 msgid "Load defaults" msgstr "" @@ -2184,610 +2207,623 @@ msgstr "" msgid "Map rendering options" msgstr "" -#: Client/core/CSettings.cpp:419 Client/core/CSettings.cpp:628 +#: Client/core/CSettings.cpp:421 msgid "Opacity:" msgstr "" +#: Client/core/CSettings.cpp:441 +msgid "Image resolution:" +msgstr "" + +#: Client/core/CSettings.cpp:448 +msgid "1024 x 1024 (Default)" +msgstr "" + +#. index 0 +#: Client/core/CSettings.cpp:449 +msgid "2048 x 2048" +msgstr "" + #. * #. * Audio tab #. * -#: Client/core/CSettings.cpp:439 Client/core/CSettings.cpp:448 +#: Client/core/CSettings.cpp:455 Client/core/CSettings.cpp:464 msgid "Master volume:" msgstr "" -#: Client/core/CSettings.cpp:439 Client/core/CSettings.cpp:467 +#: Client/core/CSettings.cpp:455 Client/core/CSettings.cpp:483 msgid "Radio volume:" msgstr "" -#: Client/core/CSettings.cpp:439 Client/core/CSettings.cpp:486 +#: Client/core/CSettings.cpp:455 Client/core/CSettings.cpp:502 msgid "SFX volume:" msgstr "" -#: Client/core/CSettings.cpp:439 Client/core/CSettings.cpp:505 +#: Client/core/CSettings.cpp:455 Client/core/CSettings.cpp:521 msgid "MTA volume:" msgstr "" -#: Client/core/CSettings.cpp:440 Client/core/CSettings.cpp:524 +#: Client/core/CSettings.cpp:456 Client/core/CSettings.cpp:540 msgid "Voice volume:" msgstr "" -#: Client/core/CSettings.cpp:440 Client/core/CSettings.cpp:565 +#: Client/core/CSettings.cpp:456 Client/core/CSettings.cpp:581 msgid "Play mode:" msgstr "" -#: Client/core/CSettings.cpp:543 +#: Client/core/CSettings.cpp:559 msgid "Radio options" msgstr "" -#: Client/core/CSettings.cpp:549 +#: Client/core/CSettings.cpp:565 msgid "Radio Equalizer" msgstr "" -#: Client/core/CSettings.cpp:554 +#: Client/core/CSettings.cpp:570 msgid "Radio Auto-tune" msgstr "" -#: Client/core/CSettings.cpp:559 +#: Client/core/CSettings.cpp:575 msgid "Usertrack options" msgstr "" -#: Client/core/CSettings.cpp:573 Client/core/CSettings.cpp:3091 +#: Client/core/CSettings.cpp:589 Client/core/CSettings.cpp:3112 msgid "Radio" msgstr "" -#: Client/core/CSettings.cpp:574 Client/core/CSettings.cpp:3093 +#: Client/core/CSettings.cpp:590 Client/core/CSettings.cpp:3114 msgid "Random" msgstr "" -#: Client/core/CSettings.cpp:575 Client/core/CSettings.cpp:3095 +#: Client/core/CSettings.cpp:591 Client/core/CSettings.cpp:3116 msgid "Sequential" msgstr "" -#: Client/core/CSettings.cpp:578 +#: Client/core/CSettings.cpp:594 msgid "Automatic Media Scan" msgstr "" -#: Client/core/CSettings.cpp:585 +#: Client/core/CSettings.cpp:601 msgid "Mute options" msgstr "" -#: Client/core/CSettings.cpp:591 +#: Client/core/CSettings.cpp:607 msgid "Mute All sounds when minimized" msgstr "" -#: Client/core/CSettings.cpp:596 +#: Client/core/CSettings.cpp:612 msgid "Mute Radio sounds when minimized" msgstr "" -#: Client/core/CSettings.cpp:601 +#: Client/core/CSettings.cpp:617 msgid "Mute SFX sounds when minimized" msgstr "" -#: Client/core/CSettings.cpp:606 +#: Client/core/CSettings.cpp:622 msgid "Mute MTA sounds when minimized" msgstr "" -#: Client/core/CSettings.cpp:611 +#: Client/core/CSettings.cpp:627 msgid "Mute Voice sounds when minimized" msgstr "" #. * #. * Video tab #. * -#: Client/core/CSettings.cpp:627 Client/core/CSettings.cpp:636 +#: Client/core/CSettings.cpp:643 Client/core/CSettings.cpp:649 msgid "Resolution:" msgstr "" -#: Client/core/CSettings.cpp:627 Client/core/CSettings.cpp:683 +#: Client/core/CSettings.cpp:643 Client/core/CSettings.cpp:696 msgid "FOV:" msgstr "" -#: Client/core/CSettings.cpp:627 Client/core/CSettings.cpp:699 +#: Client/core/CSettings.cpp:643 Client/core/CSettings.cpp:712 msgid "Draw Distance:" msgstr "" -#: Client/core/CSettings.cpp:627 Client/core/CSettings.cpp:717 +#: Client/core/CSettings.cpp:643 Client/core/CSettings.cpp:730 msgid "Brightness:" msgstr "" -#: Client/core/CSettings.cpp:627 Client/core/CSettings.cpp:735 +#: Client/core/CSettings.cpp:643 Client/core/CSettings.cpp:748 msgid "FX Quality:" msgstr "" -#: Client/core/CSettings.cpp:628 Client/core/CSettings.cpp:749 +#: Client/core/CSettings.cpp:644 Client/core/CSettings.cpp:762 msgid "Anisotropic filtering:" msgstr "" -#: Client/core/CSettings.cpp:628 Client/core/CSettings.cpp:776 +#: Client/core/CSettings.cpp:644 Client/core/CSettings.cpp:789 msgid "Anti-aliasing:" msgstr "" -#: Client/core/CSettings.cpp:628 Client/core/CSettings.cpp:790 +#: Client/core/CSettings.cpp:644 Client/core/CSettings.cpp:803 msgid "Aspect Ratio:" msgstr "" -#: Client/core/CSettings.cpp:648 +#: Client/core/CSettings.cpp:661 msgid "Windowed" msgstr "" -#: Client/core/CSettings.cpp:654 +#: Client/core/CSettings.cpp:667 msgid "DPI aware" msgstr "" -#: Client/core/CSettings.cpp:669 Client/core/CSettings.cpp:1617 +#: Client/core/CSettings.cpp:682 Client/core/CSettings.cpp:1631 msgid "Standard" msgstr "" -#: Client/core/CSettings.cpp:671 Client/core/CSettings.cpp:1621 +#: Client/core/CSettings.cpp:684 Client/core/CSettings.cpp:1635 msgid "Borderless keep res" msgstr "" -#: Client/core/CSettings.cpp:675 +#: Client/core/CSettings.cpp:688 msgid "Mip Mapping" msgstr "" -#: Client/core/CSettings.cpp:743 Client/core/CSettings.cpp:1521 +#: Client/core/CSettings.cpp:756 Client/core/CSettings.cpp:1535 msgid "Low" msgstr "" -#: Client/core/CSettings.cpp:744 Client/core/CSettings.cpp:1523 +#: Client/core/CSettings.cpp:757 Client/core/CSettings.cpp:1537 msgid "Medium" msgstr "" -#: Client/core/CSettings.cpp:745 Client/core/CSettings.cpp:1090 -#: Client/core/CSettings.cpp:1525 Client/core/CSettings.cpp:3149 +#: Client/core/CSettings.cpp:758 Client/core/CSettings.cpp:1104 +#: Client/core/CSettings.cpp:1539 Client/core/CSettings.cpp:3170 msgid "High" msgstr "" -#: Client/core/CSettings.cpp:746 Client/core/CSettings.cpp:1527 +#: Client/core/CSettings.cpp:759 Client/core/CSettings.cpp:1541 msgid "Very high" msgstr "" -#: Client/core/CSettings.cpp:761 Client/core/CSettings.cpp:784 -#: Client/core/CSettings.cpp:1021 Client/core/CSettings.cpp:1075 -#: Client/core/CSettings.cpp:1205 Client/core/CSettings.cpp:1531 -#: Client/core/CSettings.cpp:3156 Client/core/CSettings.cpp:3188 -#: Client/core/CSettings.cpp:3210 Client/core/CSettings.cpp:4247 +#: Client/core/CSettings.cpp:774 Client/core/CSettings.cpp:797 +#: Client/core/CSettings.cpp:1035 Client/core/CSettings.cpp:1089 +#: Client/core/CSettings.cpp:1219 Client/core/CSettings.cpp:1545 +#: Client/core/CSettings.cpp:3177 Client/core/CSettings.cpp:3209 +#: Client/core/CSettings.cpp:3231 Client/core/CSettings.cpp:4272 msgid "Off" msgstr "" -#: Client/core/CSettings.cpp:785 Client/core/CSettings.cpp:1533 +#: Client/core/CSettings.cpp:798 Client/core/CSettings.cpp:1547 msgid "1x" msgstr "" -#: Client/core/CSettings.cpp:786 Client/core/CSettings.cpp:1535 +#: Client/core/CSettings.cpp:799 Client/core/CSettings.cpp:1549 msgid "2x" msgstr "" -#: Client/core/CSettings.cpp:787 Client/core/CSettings.cpp:1537 +#: Client/core/CSettings.cpp:800 Client/core/CSettings.cpp:1551 msgid "3x" msgstr "" -#: Client/core/CSettings.cpp:800 Client/core/CSettings.cpp:1023 -#: Client/core/CSettings.cpp:1543 Client/core/CSettings.cpp:3158 +#: Client/core/CSettings.cpp:813 Client/core/CSettings.cpp:1037 +#: Client/core/CSettings.cpp:1557 Client/core/CSettings.cpp:3179 msgid "Auto" msgstr "" -#: Client/core/CSettings.cpp:801 Client/core/CSettings.cpp:1545 +#: Client/core/CSettings.cpp:814 Client/core/CSettings.cpp:1559 msgid "4:3" msgstr "" -#: Client/core/CSettings.cpp:802 Client/core/CSettings.cpp:1547 +#: Client/core/CSettings.cpp:815 Client/core/CSettings.cpp:1561 msgid "16:10" msgstr "" -#: Client/core/CSettings.cpp:803 Client/core/CSettings.cpp:1549 +#: Client/core/CSettings.cpp:816 Client/core/CSettings.cpp:1563 msgid "16:9" msgstr "" -#: Client/core/CSettings.cpp:806 +#: Client/core/CSettings.cpp:819 msgid "HUD Match Aspect Ratio" msgstr "" -#: Client/core/CSettings.cpp:812 +#: Client/core/CSettings.cpp:825 msgid "Volumetric Shadows" msgstr "" -#: Client/core/CSettings.cpp:816 +#: Client/core/CSettings.cpp:829 msgid "Grass effect" msgstr "" -#: Client/core/CSettings.cpp:820 +#: Client/core/CSettings.cpp:833 msgid "Heat haze" msgstr "" -#: Client/core/CSettings.cpp:824 +#: Client/core/CSettings.cpp:837 msgid "Tyre Smoke etc" msgstr "" -#: Client/core/CSettings.cpp:828 +#: Client/core/CSettings.cpp:841 msgid "Dynamic ped shadows" msgstr "" -#: Client/core/CSettings.cpp:832 +#: Client/core/CSettings.cpp:845 msgid "Motion blur" msgstr "" -#: Client/core/CSettings.cpp:837 +#: Client/core/CSettings.cpp:849 +msgid "Corona rain reflections" +msgstr "" + +#: Client/core/CSettings.cpp:854 msgid "Full Screen Minimize" msgstr "" -#: Client/core/CSettings.cpp:849 +#: Client/core/CSettings.cpp:866 msgid "Enable Device Selection Dialog" msgstr "" -#: Client/core/CSettings.cpp:861 +#: Client/core/CSettings.cpp:878 msgid "Show unsafe resolutions" msgstr "" -#: Client/core/CSettings.cpp:873 +#: Client/core/CSettings.cpp:890 msgid "Render vehicles always in high detail" msgstr "" -#: Client/core/CSettings.cpp:877 +#: Client/core/CSettings.cpp:894 msgid "Render peds always in high detail" msgstr "" -#: Client/core/CSettings.cpp:881 -msgid "Corona rain reflections" -msgstr "" - -#: Client/core/CSettings.cpp:910 +#: Client/core/CSettings.cpp:923 msgid "Enable remote websites" msgstr "" -#: Client/core/CSettings.cpp:915 +#: Client/core/CSettings.cpp:928 msgid "Enable Javascript on remote websites" msgstr "" -#: Client/core/CSettings.cpp:920 +#: Client/core/CSettings.cpp:933 msgid "Enable GPU rendering" msgstr "" -#: Client/core/CSettings.cpp:924 +#: Client/core/CSettings.cpp:937 msgid "Custom blacklist" msgstr "" -#: Client/core/CSettings.cpp:935 Client/core/CSettings.cpp:970 +#: Client/core/CSettings.cpp:948 Client/core/CSettings.cpp:983 msgid "Enter a domain e.g. google.com" msgstr "" -#: Client/core/CSettings.cpp:943 +#: Client/core/CSettings.cpp:956 msgid "Block" msgstr "" -#: Client/core/CSettings.cpp:951 Client/core/CSettings.cpp:986 +#: Client/core/CSettings.cpp:964 Client/core/CSettings.cpp:999 msgid "Domain" msgstr "" -#: Client/core/CSettings.cpp:953 Client/core/CSettings.cpp:988 +#: Client/core/CSettings.cpp:966 Client/core/CSettings.cpp:1001 msgid "Remove domain" msgstr "" #. Reset vecTemp -#: Client/core/CSettings.cpp:959 +#: Client/core/CSettings.cpp:972 msgid "Custom whitelist" msgstr "" #. Misc section label -#: Client/core/CSettings.cpp:1001 +#: Client/core/CSettings.cpp:1014 msgid "Misc" msgstr "" #. Fast clothes loading -#: Client/core/CSettings.cpp:1007 Client/core/CSettings.cpp:1014 -#: Client/core/CSettings.cpp:4816 +#: Client/core/CSettings.cpp:1020 Client/core/CSettings.cpp:1028 +#: Client/core/CSettings.cpp:4841 msgid "Fast CJ clothes loading:" msgstr "" #. Browser scan speed -#: Client/core/CSettings.cpp:1007 Client/core/CSettings.cpp:1028 -#: Client/core/CSettings.cpp:4818 +#: Client/core/CSettings.cpp:1020 Client/core/CSettings.cpp:1042 +#: Client/core/CSettings.cpp:4843 msgid "Browser speed:" msgstr "" #. Single download -#: Client/core/CSettings.cpp:1007 Client/core/CSettings.cpp:1042 -#: Client/core/CSettings.cpp:4820 +#: Client/core/CSettings.cpp:1020 Client/core/CSettings.cpp:1056 +#: Client/core/CSettings.cpp:4845 msgid "Single connection:" msgstr "" #. Packet tag -#: Client/core/CSettings.cpp:1007 Client/core/CSettings.cpp:1055 -#: Client/core/CSettings.cpp:4822 +#: Client/core/CSettings.cpp:1020 Client/core/CSettings.cpp:1069 +#: Client/core/CSettings.cpp:4847 msgid "Packet tag:" msgstr "" #. Progress animation -#: Client/core/CSettings.cpp:1008 Client/core/CSettings.cpp:1068 -#: Client/core/CSettings.cpp:4824 +#: Client/core/CSettings.cpp:1021 Client/core/CSettings.cpp:1082 +#: Client/core/CSettings.cpp:4849 msgid "Progress animation:" msgstr "" #. Process priority -#: Client/core/CSettings.cpp:1008 Client/core/CSettings.cpp:1081 -#: Client/core/CSettings.cpp:4814 +#: Client/core/CSettings.cpp:1021 Client/core/CSettings.cpp:1095 +#: Client/core/CSettings.cpp:4839 msgid "Process priority:" msgstr "" #. Debug setting -#: Client/core/CSettings.cpp:1008 Client/core/CSettings.cpp:1095 -#: Client/core/CSettings.cpp:4826 +#: Client/core/CSettings.cpp:1021 Client/core/CSettings.cpp:1109 +#: Client/core/CSettings.cpp:4851 msgid "Debug setting:" msgstr "" #. Streaming memory -#: Client/core/CSettings.cpp:1009 Client/core/CSettings.cpp:1118 -#: Client/core/CSettings.cpp:4828 +#: Client/core/CSettings.cpp:1022 Client/core/CSettings.cpp:1132 +#: Client/core/CSettings.cpp:4853 msgid "Streaming memory:" msgstr "" #. Update build type -#: Client/core/CSettings.cpp:1009 Client/core/CSettings.cpp:1219 +#: Client/core/CSettings.cpp:1022 Client/core/CSettings.cpp:1233 msgid "Update build type:" msgstr "" #. UpdateAutoInstall -#: Client/core/CSettings.cpp:1009 Client/core/CSettings.cpp:1198 +#: Client/core/CSettings.cpp:1022 Client/core/CSettings.cpp:1212 msgid "Install important updates:" msgstr "" -#: Client/core/CSettings.cpp:1022 Client/core/CSettings.cpp:1050 -#: Client/core/CSettings.cpp:1063 Client/core/CSettings.cpp:3160 -#: Client/core/CSettings.cpp:3176 Client/core/CSettings.cpp:3183 +#: Client/core/CSettings.cpp:1036 Client/core/CSettings.cpp:1064 +#: Client/core/CSettings.cpp:1077 Client/core/CSettings.cpp:3181 +#: Client/core/CSettings.cpp:3197 Client/core/CSettings.cpp:3204 msgid "On" msgstr "" -#: Client/core/CSettings.cpp:1035 Client/core/CSettings.cpp:3165 +#: Client/core/CSettings.cpp:1049 Client/core/CSettings.cpp:3186 msgid "Very slow" msgstr "" -#: Client/core/CSettings.cpp:1036 Client/core/CSettings.cpp:1049 -#: Client/core/CSettings.cpp:1062 Client/core/CSettings.cpp:1076 -#: Client/core/CSettings.cpp:1102 Client/core/CSettings.cpp:1114 -#: Client/core/CSettings.cpp:1206 Client/core/CSettings.cpp:1226 -#: Client/core/CSettings.cpp:3167 Client/core/CSettings.cpp:3174 -#: Client/core/CSettings.cpp:3181 Client/core/CSettings.cpp:3190 -#: Client/core/CSettings.cpp:3203 +#: Client/core/CSettings.cpp:1050 Client/core/CSettings.cpp:1063 +#: Client/core/CSettings.cpp:1076 Client/core/CSettings.cpp:1090 +#: Client/core/CSettings.cpp:1116 Client/core/CSettings.cpp:1128 +#: Client/core/CSettings.cpp:1220 Client/core/CSettings.cpp:1240 +#: Client/core/CSettings.cpp:3188 Client/core/CSettings.cpp:3195 +#: Client/core/CSettings.cpp:3202 Client/core/CSettings.cpp:3211 +#: Client/core/CSettings.cpp:3224 msgid "Default" msgstr "" -#: Client/core/CSettings.cpp:1037 Client/core/CSettings.cpp:3169 +#: Client/core/CSettings.cpp:1051 Client/core/CSettings.cpp:3190 msgid "Fast" msgstr "" -#: Client/core/CSettings.cpp:1088 Client/core/CSettings.cpp:3145 +#: Client/core/CSettings.cpp:1102 Client/core/CSettings.cpp:3166 msgid "Normal" msgstr "" -#: Client/core/CSettings.cpp:1089 Client/core/CSettings.cpp:3147 +#: Client/core/CSettings.cpp:1103 Client/core/CSettings.cpp:3168 msgid "Above normal" msgstr "" -#: Client/core/CSettings.cpp:1125 +#: Client/core/CSettings.cpp:1139 msgid "Min" msgstr "" -#: Client/core/CSettings.cpp:1138 +#: Client/core/CSettings.cpp:1152 msgid "Max" msgstr "" #. Windows 8 compatibility -#: Client/core/CSettings.cpp:1145 +#: Client/core/CSettings.cpp:1159 msgid "Windows 8 compatibility:" msgstr "" -#: Client/core/CSettings.cpp:1149 +#: Client/core/CSettings.cpp:1163 msgid "16-bit color" msgstr "" -#: Client/core/CSettings.cpp:1154 +#: Client/core/CSettings.cpp:1168 msgid "Mouse fix" msgstr "" #. Cache path info -#: Client/core/CSettings.cpp:1172 +#: Client/core/CSettings.cpp:1186 msgid "Client resource files:" msgstr "" -#: Client/core/CSettings.cpp:1176 +#: Client/core/CSettings.cpp:1190 msgid "Show in Explorer" msgstr "" #. Auto updater section label -#: Client/core/CSettings.cpp:1191 Client/core/CSettings.cpp:1194 +#: Client/core/CSettings.cpp:1205 Client/core/CSettings.cpp:1208 msgid "Auto updater" msgstr "" #. Check for updates -#: Client/core/CSettings.cpp:1232 +#: Client/core/CSettings.cpp:1246 msgid "Check for update now" msgstr "" -#: Client/core/CSettings.cpp:1386 +#: Client/core/CSettings.cpp:1400 msgid "Some settings will be changed when you next start MTA" msgstr "" -#: Client/core/CSettings.cpp:1387 +#: Client/core/CSettings.cpp:1401 msgid "" "\n" "\n" "Do you want to restart now?" msgstr "" -#: Client/core/CSettings.cpp:1390 +#: Client/core/CSettings.cpp:1404 msgid "RESTART REQUIRED" msgstr "" -#: Client/core/CSettings.cpp:1410 +#: Client/core/CSettings.cpp:1424 msgid "Some settings will be changed when you disconnect the current server" msgstr "" -#: Client/core/CSettings.cpp:1411 +#: Client/core/CSettings.cpp:1425 msgid "" "\n" "\n" "Do you want to disconnect now?" msgstr "" -#: Client/core/CSettings.cpp:1414 +#: Client/core/CSettings.cpp:1428 msgid "DISCONNECT REQUIRED" msgstr "" #. Update the joystick name -#: Client/core/CSettings.cpp:1741 +#: Client/core/CSettings.cpp:1760 msgid "Joypad not detected - Check connections and restart game" msgstr "" -#: Client/core/CSettings.cpp:1936 +#: Client/core/CSettings.cpp:1957 msgid "Binding axis" msgstr "" -#: Client/core/CSettings.cpp:1936 +#: Client/core/CSettings.cpp:1957 msgid "Move an axis to bind, or escape to clear" msgstr "" -#: Client/core/CSettings.cpp:2013 +#: Client/core/CSettings.cpp:2034 msgid "Language:" msgstr "" -#: Client/core/CSettings.cpp:2013 +#: Client/core/CSettings.cpp:2034 msgid "Skin:" msgstr "" -#: Client/core/CSettings.cpp:2013 +#: Client/core/CSettings.cpp:2034 msgid "Presets:" msgstr "" -#: Client/core/CSettings.cpp:2062 +#: Client/core/CSettings.cpp:2083 msgid "Chat" msgstr "" -#: Client/core/CSettings.cpp:2079 +#: Client/core/CSettings.cpp:2100 msgid "Load" msgstr "" -#: Client/core/CSettings.cpp:2091 +#: Client/core/CSettings.cpp:2112 msgid "Colors" msgstr "" -#: Client/core/CSettings.cpp:2092 +#: Client/core/CSettings.cpp:2113 msgid "Layout" msgstr "" -#: Client/core/CSettings.cpp:2093 Client/core/CSettings.cpp:2339 +#: Client/core/CSettings.cpp:2114 Client/core/CSettings.cpp:2360 msgid "Options" msgstr "" -#: Client/core/CSettings.cpp:2099 +#: Client/core/CSettings.cpp:2120 msgid "Chat Background" msgstr "" -#: Client/core/CSettings.cpp:2099 +#: Client/core/CSettings.cpp:2120 msgid "Chat Text" msgstr "" -#: Client/core/CSettings.cpp:2099 +#: Client/core/CSettings.cpp:2120 msgid "Input Background" msgstr "" -#: Client/core/CSettings.cpp:2099 +#: Client/core/CSettings.cpp:2120 msgid "Input Text" msgstr "" -#: Client/core/CSettings.cpp:2122 +#: Client/core/CSettings.cpp:2143 msgid "Lines:" msgstr "" -#: Client/core/CSettings.cpp:2122 +#: Client/core/CSettings.cpp:2143 msgid "Scale:" msgstr "" -#: Client/core/CSettings.cpp:2122 +#: Client/core/CSettings.cpp:2143 msgid "Width:" msgstr "" -#: Client/core/CSettings.cpp:2125 +#: Client/core/CSettings.cpp:2146 msgid "Size" msgstr "" -#: Client/core/CSettings.cpp:2174 +#: Client/core/CSettings.cpp:2195 msgid "after" msgstr "" -#: Client/core/CSettings.cpp:2174 +#: Client/core/CSettings.cpp:2195 msgid "for" msgstr "" -#: Client/core/CSettings.cpp:2174 +#: Client/core/CSettings.cpp:2195 msgid "sec" msgstr "" -#: Client/core/CSettings.cpp:2177 +#: Client/core/CSettings.cpp:2198 msgid "Fading" msgstr "" -#: Client/core/CSettings.cpp:2183 +#: Client/core/CSettings.cpp:2204 msgid "Fade out old lines" msgstr "" -#: Client/core/CSettings.cpp:2223 +#: Client/core/CSettings.cpp:2244 msgid "Horizontal:" msgstr "" -#: Client/core/CSettings.cpp:2223 +#: Client/core/CSettings.cpp:2244 msgid "Vertical:" msgstr "" -#: Client/core/CSettings.cpp:2223 +#: Client/core/CSettings.cpp:2244 msgid "Text-Align:" msgstr "" -#: Client/core/CSettings.cpp:2223 +#: Client/core/CSettings.cpp:2244 msgid "X-Offset:" msgstr "" -#: Client/core/CSettings.cpp:2224 +#: Client/core/CSettings.cpp:2245 msgid "Y-Offset:" msgstr "" -#: Client/core/CSettings.cpp:2230 +#: Client/core/CSettings.cpp:2251 msgid "Position" msgstr "" -#: Client/core/CSettings.cpp:2245 Client/core/CSettings.cpp:2259 +#: Client/core/CSettings.cpp:2266 Client/core/CSettings.cpp:2280 msgid "Center" msgstr "" -#: Client/core/CSettings.cpp:2258 +#: Client/core/CSettings.cpp:2279 msgid "Top" msgstr "" -#: Client/core/CSettings.cpp:2260 +#: Client/core/CSettings.cpp:2281 msgid "Bottom" msgstr "" -#: Client/core/CSettings.cpp:2308 +#: Client/core/CSettings.cpp:2329 msgid "Font" msgstr "" -#: Client/core/CSettings.cpp:2345 +#: Client/core/CSettings.cpp:2366 msgid "Hide background when not typing" msgstr "" -#: Client/core/CSettings.cpp:2350 +#: Client/core/CSettings.cpp:2371 msgid "Nickname completion using the \"Tab\" key" msgstr "" -#: Client/core/CSettings.cpp:2355 +#: Client/core/CSettings.cpp:2376 msgid "Allow server to flash the window" msgstr "" -#: Client/core/CSettings.cpp:2360 +#: Client/core/CSettings.cpp:2381 msgid "Allow tray balloon notifications" msgstr "" -#: Client/core/CSettings.cpp:2365 +#: Client/core/CSettings.cpp:2386 msgid "Chat text black/white outline" msgstr "" @@ -2795,85 +2831,85 @@ msgstr "" #. SString strText = SString::Printf ( "Press a key to bind to '%s'", pItemBind->GetText ().c_str () ); #. Create a messagebox to notify the user #. sSString strText = SString::Printf ( "Press a key to bind to '%s'", pItemBind->GetText ().c_str () ); -#: Client/core/CSettings.cpp:2614 Client/core/CSettings.cpp:2621 +#: Client/core/CSettings.cpp:2635 Client/core/CSettings.cpp:2642 msgid "Press a key to bind, or escape to clear" msgstr "" -#: Client/core/CSettings.cpp:2615 +#: Client/core/CSettings.cpp:2636 msgid "Binding a primary key" msgstr "" -#: Client/core/CSettings.cpp:2622 +#: Client/core/CSettings.cpp:2643 msgid "Binding a secondary key" msgstr "" -#: Client/core/CSettings.cpp:2698 +#: Client/core/CSettings.cpp:2719 msgid "GTA GAME CONTROLS" msgstr "" -#: Client/core/CSettings.cpp:2700 +#: Client/core/CSettings.cpp:2721 msgid "MULTIPLAYER CONTROLS" msgstr "" -#: Client/core/CSettings.cpp:2945 Client/core/CSettings.cpp:4777 +#: Client/core/CSettings.cpp:2966 Client/core/CSettings.cpp:4802 msgid "Your nickname contains invalid characters!" msgstr "" -#: Client/core/CSettings.cpp:3791 +#: Client/core/CSettings.cpp:3816 msgid "Red:" msgstr "" -#: Client/core/CSettings.cpp:3791 +#: Client/core/CSettings.cpp:3816 msgid "Green:" msgstr "" -#: Client/core/CSettings.cpp:3791 +#: Client/core/CSettings.cpp:3816 msgid "Blue:" msgstr "" -#: Client/core/CSettings.cpp:3791 +#: Client/core/CSettings.cpp:3816 msgid "Transparency:" msgstr "" -#: Client/core/CSettings.cpp:3794 +#: Client/core/CSettings.cpp:3819 msgid "Color" msgstr "" -#: Client/core/CSettings.cpp:3871 +#: Client/core/CSettings.cpp:3896 msgid "Preview" msgstr "" -#: Client/core/CSettings.cpp:4179 +#: Client/core/CSettings.cpp:4204 msgid "Please disconnect before changing language" msgstr "" -#: Client/core/CSettings.cpp:4207 +#: Client/core/CSettings.cpp:4232 msgid "Please disconnect before changing skin" msgstr "" -#: Client/core/CSettings.cpp:4495 +#: Client/core/CSettings.cpp:4520 msgid "" "Volmetric shadows can cause some systems to slow down.\n" "\n" "Are you sure you want to enable them?" msgstr "" -#: Client/core/CSettings.cpp:4499 +#: Client/core/CSettings.cpp:4524 msgid "PERFORMANCE WARNING" msgstr "" -#: Client/core/CSettings.cpp:4519 +#: Client/core/CSettings.cpp:4544 msgid "" "Screen upload is required by some servers for anti-cheat purposes.\n" "\n" "(The chat box and GUI is excluded from the upload)\n" msgstr "" -#: Client/core/CSettings.cpp:4521 +#: Client/core/CSettings.cpp:4546 msgid "SCREEN UPLOAD INFORMATION" msgstr "" -#: Client/core/CSettings.cpp:4536 +#: Client/core/CSettings.cpp:4561 msgid "" "Some scripts may play sounds, such as radio, from the internet.\n" "\n" @@ -2881,11 +2917,11 @@ msgid "" "bandwidth consumption.\n" msgstr "" -#: Client/core/CSettings.cpp:4539 +#: Client/core/CSettings.cpp:4564 msgid "EXTERNAL SOUNDS" msgstr "" -#: Client/core/CSettings.cpp:4568 +#: Client/core/CSettings.cpp:4593 msgid "" "It seems that you have the Rich Presence connection option enabled.\n" "Do you want to allow servers to share their data?\n" @@ -2893,11 +2929,11 @@ msgid "" "This includes yours unique ID identifier." msgstr "" -#: Client/core/CSettings.cpp:4573 +#: Client/core/CSettings.cpp:4598 msgid "CONSENT TO ALLOW DATA SHARING" msgstr "" -#: Client/core/CSettings.cpp:4597 +#: Client/core/CSettings.cpp:4622 msgid "" "Some files in your GTA:SA data directory are customized.\n" "MTA will only use these modified files if this check box is ticked.\n" @@ -2907,7 +2943,7 @@ msgid "" "Are you sure you want to use them?" msgstr "" -#: Client/core/CSettings.cpp:4646 +#: Client/core/CSettings.cpp:4671 msgid "" "Enabling DPI awareness is an experimental feature and\n" "we only recommend it when you play MTA:SA on a scaled monitor.\n" @@ -2916,77 +2952,77 @@ msgid "" "Are you sure you want to enable this option?" msgstr "" -#: Client/core/CSettings.cpp:4652 +#: Client/core/CSettings.cpp:4677 msgid "EXPERIMENTAL FEATURE" msgstr "" -#: Client/core/CSettings.cpp:4795 +#: Client/core/CSettings.cpp:4820 msgid "Please enter a nickname" msgstr "" -#: Client/core/CSettings.cpp:4796 +#: Client/core/CSettings.cpp:4821 msgid "" "Please enter a nickname to be used ingame. \n" "This will be your name when you connect to and play in a server" msgstr "" -#: Client/core/CSettings.cpp:4814 +#: Client/core/CSettings.cpp:4839 msgid "Very experimental feature." msgstr "" -#: Client/core/CSettings.cpp:4816 +#: Client/core/CSettings.cpp:4841 msgid "Stops stalls with CJ variations (Uses 65MB more RAM)" msgstr "" -#: Client/core/CSettings.cpp:4818 +#: Client/core/CSettings.cpp:4843 msgid "Older routers may require a slower scan speed." msgstr "" -#: Client/core/CSettings.cpp:4820 +#: Client/core/CSettings.cpp:4845 msgid "Switch on to use only one connection when downloading." msgstr "" -#: Client/core/CSettings.cpp:4822 +#: Client/core/CSettings.cpp:4847 msgid "Tag network packets to help ISPs identify MTA traffic." msgstr "" -#: Client/core/CSettings.cpp:4824 +#: Client/core/CSettings.cpp:4849 msgid "Spinning circle animation at the bottom of the screen" msgstr "" -#: Client/core/CSettings.cpp:4826 +#: Client/core/CSettings.cpp:4851 msgid "Select default always. (This setting is not saved)" msgstr "" -#: Client/core/CSettings.cpp:4828 +#: Client/core/CSettings.cpp:4853 msgid "Maximum is usually best" msgstr "" -#: Client/core/CSettings.cpp:4830 Client/core/CSettings.cpp:4832 +#: Client/core/CSettings.cpp:4855 Client/core/CSettings.cpp:4857 msgid "Auto updater:" msgstr "" -#: Client/core/CSettings.cpp:4830 +#: Client/core/CSettings.cpp:4855 msgid "Select default unless you like filling out bug reports." msgstr "" -#: Client/core/CSettings.cpp:4832 +#: Client/core/CSettings.cpp:4857 msgid "Select default to automatically install important updates." msgstr "" -#: Client/core/CSettings.cpp:4834 +#: Client/core/CSettings.cpp:4859 msgid "16-bit color:" msgstr "" -#: Client/core/CSettings.cpp:4834 +#: Client/core/CSettings.cpp:4859 msgid "Enable 16 bit color modes - Requires MTA restart" msgstr "" -#: Client/core/CSettings.cpp:4836 +#: Client/core/CSettings.cpp:4861 msgid "Mouse fix:" msgstr "" -#: Client/core/CSettings.cpp:4836 +#: Client/core/CSettings.cpp:4861 msgid "Mouse movement fix - May need PC restart" msgstr ""