Add translation support for Visual page

This commit is contained in:
Grinch_ 2022-02-17 23:35:46 +06:00
parent 5aca6bd92d
commit 7b0e71e51e
2 changed files with 355 additions and 237 deletions

View File

@ -1,127 +1,239 @@
{ {
"Animation": { "Animation": {
"AddAnimation": "Add animation", "AddAnimation": "Add animation",
"AddParticle": "Add particle", "AddParticle": "Add particle",
"AnimationRemoved": "Animation removed", "AnimationRemoved": "Animation removed",
"AnimationTab": "Animation##TABBAR", "AnimationTab": "Animation##TABBAR",
"AnimName": "Anim name", "AnimName": "Anim name",
"CustomAnimsOnly": "You can only remove custom animations", "CustomAnimsOnly": "You can only remove custom animations",
"CustomParticlesOnly": "You can only remove custom particles", "CustomParticlesOnly": "You can only remove custom particles",
"CutsceneRunning": "Another cutscene is running", "CutsceneRunning": "Another cutscene is running",
"CutsceneTab": "Cutscene##TABBAR", "CutsceneTab": "Cutscene##TABBAR",
"FightingStyle": "Fighting style", "FightingStyle": "Fighting style",
"FightingStyleSet": "Fighting style set", "FightingStyleSet": "Fighting style set",
"IFPName": "IFP name", "IFPName": "IFP name",
"InvisiblePlayer": "Invisible player", "InvisiblePlayer": "Invisible player",
"LoopCheckbox": "Loop", "LoopCheckbox": "Loop",
"LoopCheckboxText": "Keep playing the animation on repeat", "LoopCheckboxText": "Keep playing the animation on repeat",
"NoTarget": "No player target found. Aim a ped with a weapon to select it for animation player.", "NoTarget": "No player target found. Aim a ped with a weapon to select it for animation player.",
"ParticleName": "Particle name", "ParticleName": "Particle name",
"ParticleRemoved": "Particle removed", "ParticleRemoved": "Particle removed",
"ParticleTab": "Particle##TABBAR", "ParticleTab": "Particle##TABBAR",
"PedAnim": "Ped anim", "PedAnim": "Ped anim",
"PedAnimText": "Play animation on other peds.\nSelect with weapon target.", "PedAnimText": "Play animation on other peds.\nSelect with weapon target.",
"RemoveAll": "Remove all", "RemoveAll": "Remove all",
"RemoveLatest": "Remove latest", "RemoveLatest": "Remove latest",
"SecondaryCheckbox": "Secondary", "SecondaryCheckbox": "Secondary",
"SecondaryCheckboxText": "Player can move while playing the animation", "SecondaryCheckboxText": "Player can move while playing the animation",
"StopAnimation": "Stop Animation", "StopAnimation": "Stop Animation",
"StopCutscene": "Stop cutscene", "StopCutscene": "Stop cutscene",
"Styles": "Styles", "Styles": "Styles",
"WalkingStyle": "Walking style", "WalkingStyle": "Walking style",
"WalkingStyleSet": "Walking style set" "WalkingStyleSet": "Walking style set"
}, },
"Main": { "Main": {
"TranslationLanguage": "English", "TranslationLanguage": "English",
"TranslationLanguageDisclaimer": "Translated to English by Grinch_", "TranslationLanguageDisclaimer": "Translated to English by Grinch_",
"TranslatorName": "Grinch_" "TranslatorName": "Grinch_"
}, },
"Menu": { "Menu": {
"About": "About", "About": "About",
"Author": "Author", "Author": "Author",
"BugDisclaimer": "If you find bugs or have suggestions, let me know on discord.", "BugDisclaimer": "If you find bugs or have suggestions, let me know on discord.",
"Build": "Build", "Build": "Build",
"CheckUpdate": "Check update", "CheckUpdate": "Check update",
"Commands": "Commands", "Commands": "Commands",
"Config": "Config", "Config": "Config",
"CopyrightDisclaimer": "Copyright Grinch_ 2019-2022. All rights reserved.", "CopyrightDisclaimer": "Copyright Grinch_ 2019-2022. All rights reserved.",
"Credits": "Credits", "Credits": "Credits",
"DiscordServer": "Discord server", "DiscordServer": "Discord server",
"FixVehKey": "Fix current vehicle", "FixVehKey": "Fix current vehicle",
"FlipVehKey": "Flip current vehicle", "FlipVehKey": "Flip current vehicle",
"FreecamKey": "Toggle freecam", "FreecamKey": "Toggle freecam",
"GitHubRepo": "GitHub repo", "GitHubRepo": "GitHub repo",
"GodModeKey": "Toggle god mode", "GodModeKey": "Toggle god mode",
"Hotkeys": "Hotkeys", "Hotkeys": "Hotkeys",
"Language": "Language", "Language": "Language",
"LanguageChangeFailed": "Failed to change language!", "LanguageChangeFailed": "Failed to change language!",
"Name": "Name", "Name": "Name",
"NoBG": "No background", "NoBG": "No background",
"OpenCMDKey": "Open/ close command window", "OpenCMDKey": "Open/ close command window",
"OpenCMDUsing": "Open or close command window using %s", "OpenCMDUsing": "Open or close command window using %s",
"OpenMenuKey": "Open/ close cheat menu", "OpenMenuKey": "Open/ close cheat menu",
"Overlay": "Overlay", "Overlay": "Overlay",
"Position": "Position", "Position": "Position",
"QuickSSKey": "Quick screenshot", "QuickSSKey": "Quick screenshot",
"QuickTPKey": "Toogle quick teleport", "QuickTPKey": "Toogle quick teleport",
"QuickVehSpawnerCMD": "Quick vehicle spawner", "QuickVehSpawnerCMD": "Quick vehicle spawner",
"QuickVehSpawnerCMDText": "Spawn vehicles by typing their model names.\nExample: veh (veh_name)", "QuickVehSpawnerCMDText": "Spawn vehicles by typing their model names.\nExample: veh (veh_name)",
"QuickWepSpawnerCMD": "Quick weapon spawner", "QuickWepSpawnerCMD": "Quick weapon spawner",
"QuickWepSpawnerCMDText": "Spawn weapons by typing their model names.\nExample: wep (wep_name)", "QuickWepSpawnerCMDText": "Spawn weapons by typing their model names.\nExample: wep (wep_name)",
"ResetConfig": "Reset config", "ResetConfig": "Reset config",
"ResetConfigMSG": "Config has been reset. Restart the game for it to take effect.", "ResetConfigMSG": "Config has been reset. Restart the game for it to take effect.",
"ResetSize": "Reset sonfig", "ResetSize": "Reset sonfig",
"SetHealthCMD": "Set health", "SetHealthCMD": "Set health",
"SetHealthCMDText": "Set player health.\nExample: hp (health).", "SetHealthCMDText": "Set player health.\nExample: hp (health).",
"SetTimeCMD": "Set time", "SetTimeCMD": "Set time",
"SetTimeCMDText": "Set current game time.\nExample: time (hour) (minute).\n", "SetTimeCMDText": "Set current game time.\nExample: time (hour) (minute).\n",
"SetTimeCMDText2": "Writing something like 'time 12' would be interpreted as 'time 12 12'", "SetTimeCMDText2": "Writing something like 'time 12' would be interpreted as 'time 12 12'",
"ShowCoords": "Show coordinates", "ShowCoords": "Show coordinates",
"ShowCPU": "Show CPU usage", "ShowCPU": "Show CPU usage",
"ShowFPS": "Show FPS", "ShowFPS": "Show FPS",
"ShowLocation": "Show location", "ShowLocation": "Show location",
"ShowRAM": "Show RAM usage", "ShowRAM": "Show RAM usage",
"ShowVehHealth": "Show veh health", "ShowVehHealth": "Show veh health",
"ShowVehSpeed": "Show veh speed", "ShowVehSpeed": "Show veh speed",
"SkinChangerKey": "Activate aim skin changer", "SkinChangerKey": "Activate aim skin changer",
"TeleportCMD": "Teleport", "TeleportCMD": "Teleport",
"TeleportCMDText": "Teleports player to specified coordinates.\nExample: tp x y z", "TeleportCMDText": "Teleports player to specified coordinates.\nExample: tp x y z",
"TextColor": "Text color", "TextColor": "Text color",
"Usage": "Usage", "Usage": "Usage",
"UsageText": "Left-click selects hotkey.\nLeft clicking outside deselects.\nRight click disables hotkey.", "UsageText": "Left-click selects hotkey.\nLeft clicking outside deselects.\nRight click disables hotkey.",
"VehEngineKey": "Toggle vehicle engine", "VehEngineKey": "Toggle vehicle engine",
"VehStartKey": "Vehicle instant start", "VehStartKey": "Vehicle instant start",
"VehStopKey": "Vehicle instant start", "VehStopKey": "Vehicle instant start",
"Version": "Version" "Version": "Version"
}, },
"Teleport": { "Teleport": {
"AddLocation": "Add location", "AddLocation": "Add location",
"Coordinates": "Coordinates", "Coordinates": "Coordinates",
"CustomLocationRemoveOnly": "You can only remove custom location", "CustomLocationRemoveOnly": "You can only remove custom location",
"InsertCoord": "Insert coordinates", "InsertCoord": "Insert coordinates",
"InvalidCoord": "Invalid coordinates", "InvalidCoord": "Invalid coordinates",
"InvalidLocation": "Invalid location", "InvalidLocation": "Invalid location",
"Location": "Location", "Location": "Location",
"LocationHint": "Groove Street", "LocationHint": "Groove Street",
"LocationRemoved": "Location removed", "LocationRemoved": "Location removed",
"QuickTeleport": "Quick teleport", "QuickTeleport": "Quick teleport",
"QuickTeleportHint": "Teleport to the location of your radar\ntarget blip using ", "QuickTeleportHint": "Teleport to the location of your radar\ntarget blip using ",
"TargetBlipText": "Target blip not found. You need to place it on the map first", "TargetBlipText": "Target blip not found. You need to place it on the map first",
"TeleportCenter": "Teleport to center", "TeleportCenter": "Teleport to center",
"TeleportMarker": "Teleport to marker", "TeleportMarker": "Teleport to marker",
"TeleportToCoord": "Teleport to coordinates" "TeleportToCoord": "Teleport to coordinates"
}, },
"Window": { "Visual": {
"AddNew": "Add new", "Ambient": "Ambient",
"AnimationPage": "Animation", "AmbientBl": "Ambient bl",
"GamePage": "Game", "AmbientObj": "Ambient object",
"MenuPage": "Menu", "AmbientObjBl": "Ambient object bl",
"PedPage": "Ped", "ArmourbarColor": "Armour bar color",
"PlayerPage": "Player", "ArmourbarPosX": "Armour bar X",
"Search": "Search", "ArmourbarPosY": "Armour bar Y",
"TeleportPage": "Teleport", "ArmourBorder": "Armour border",
"VehiclePage": "Vehicle", "ArmourPercentage": "Armour percentage",
"VisualPage": "Visual", "Blur": "Blur",
"WeaponPage": "Weapon" "BoldBorder": "Bold border",
} "BreathbarColor": "Breath bar color",
"BreathbarPosX": "Breath bar X",
"BreathbarPosY": "Breath bar Y",
"BreathBorder": "Breath border",
"BreathPercentage": "Breath percentage",
"ClockColor": "Clock color",
"ClockPosX": "Clock X",
"ClockPosY": "Clock Y",
"CloudAlpha": "Cloud alpha",
"CloudsBottom": "Clouds bottom",
"CloudsLow": "Clouds low",
"CloudsTop": "Clouds top",
"ColorsTab": "Colors",
"CurrentWeather": "Current weather",
"DefaultBorder": "Default border",
"DefaultOutline": "Default outline",
"DefaultStyle": "Default Style",
"DirectionalLight": "Directional light",
"DirectionalMult": "Directional mult",
"DisableHydrant": "Disable hydrant splash",
"DrawMenuTitle": "Draw menu title border color",
"FarClip": "Far clip",
"FileGenerated": "File generated",
"FluffyClouds": "Fluffy clouds",
"FogStart": "Fog start",
"FreezeGameTime": "Freeze game time",
"GenerateFile": "Generate timecyc file",
"GrayRadar": "Gray radar",
"GreenScanlines": "Green scanlines",
"HealthbarColor": "Health bar color",
"HealthbarPosX": "Health bar X",
"HealthbarPosY": "Health bar Y",
"HealthBorder": "Health border",
"HealthPercentage": "Health percentage",
"HideAreaNames": "Hide area names",
"HideHud": "Hide HUD",
"HideRadar": "Hide radar",
"HideVehNames ": "Hide vehicle names",
"HideWantedLevel": "Hide wanted level",
"Hour": "Hour",
"IncompatibleMods": "Incompatible mods",
"IncompatibleModsText": "1. vHud\n2. GTA 5 Hud\n3. MobileHud\n\nAnd others that change HUD drastically",
"InvisibleWater": "Invisible water",
"LightBrightness": "Light on ground brightness",
"LightIntensity": "High light min intensity",
"LightShadowStrength": "Light shadow strength",
"LockWeather": "Lock weather",
"Minute": "Minute",
"MoneyColor": "Money color",
"MoneyFontOutline": "Money font outline",
"MoneyFontStyle": "Money font style",
"MoneyPosX": "Money X",
"MoneyPosY": "Money Y",
"NextWeather": "Next weather",
"NoBorder": "No border",
"NoOutline": "No outline",
"NoWater": "No water",
"PoleShadowStrength": "Pole shadow strength",
"PostFX1": "PostFX 1",
"PostFX2": "PostFX 2",
"RadarHeight": "Radar height",
"RadarPosX": "Radar posX",
"RadarPosY": "Radar posY",
"RadarWidth": "Radar width",
"RadarZoom": "Radar zoom",
"RadioStationColor": "Radio station color",
"ResetTimecyc": "Reset timecyc",
"ShadowStrength": "Shadow strength",
"ShowHud": "Show HUD",
"ShowRadar": "Show radar",
"SkyBottom": "Sky bottom",
"SkyTop": "Sky top",
"SpriteBrightness": "Sprite brightness",
"SpriteSize": "Sprite size",
"Style1": "Style 1",
"Style2": "Style 2",
"SunCore": "Sun core",
"SunCorona": "Sun corona",
"SunSize": "Sun size",
"SyncTimeEnabled": "Sync system time is enabled.\n(Game/Sync system time)",
"ThinOutline": "Thin outline",
"Timecyc24hTab": "Timecyc 24h",
"TimecycReset": "Timecyc reset",
"TimecycTab": "Timecyc",
"TreeShadowStrength": "Tree shadow strength",
"UnfogMap": "Unfog map",
"UnfogMapText": "Removes fog from Main Menu Map",
"WantedAmmoPosX": "Wanted ammo posX",
"WantedAmmoPosY": "Wanted ammo posY",
"WantedPosX": "Wanted posX",
"WantedPosY": "Wanted posY",
"WantedStarBorder": "Wanted star border",
"Water": "Water",
"WaterFogAlpha": "Water fog alpha",
"WeaponIconPosX": "Weapon icon posX",
"WeaponIconPosY": "Weapon icon posY",
"WhiteScanlines": "White scanlines"
},
"Window": {
"AddNew": "Add new",
"AnimationPage": "Animation",
"CheckboxTab": "Checkboxes",
"GamePage": "Game",
"MenuPage": "Menu",
"MenusTab": "Menus",
"PedPage": "Ped",
"PlayerPage": "Player",
"Search": "Search",
"TeleportPage": "Teleport",
"VehiclePage": "Vehicle",
"VisualPage": "Visual",
"WeaponPage": "Weapon"
} }
}

View File

@ -350,17 +350,17 @@ void Visual::ShowPage()
{ {
if (ImGui::BeginTabBar("Visual", ImGuiTabBarFlags_NoTooltip + ImGuiTabBarFlags_FittingPolicyScroll)) if (ImGui::BeginTabBar("Visual", ImGuiTabBarFlags_NoTooltip + ImGuiTabBarFlags_FittingPolicyScroll))
{ {
if (ImGui::BeginTabItem("Checkboxes")) if (ImGui::BeginTabItem(TEXT("Window.CheckboxTab")))
{ {
ImGui::Spacing(); ImGui::Spacing();
ImGui::Columns(2, nullptr, false); ImGui::Columns(2, nullptr, false);
#ifdef GTASA #ifdef GTASA
Ui::CheckboxAddress("Armour border", 0x589123); Ui::CheckboxAddress(TEXT("Visual.ArmourBorder"), 0x589123);
Ui::CheckboxAddress("Armour percentage", 0x589125); Ui::CheckboxAddress(TEXT("Visual.ArmourPercentage"), 0x589125);
Ui::CheckboxAddress("Breath border", 0x589207); Ui::CheckboxAddress(TEXT("Visual.BreathBorder"), 0x589207);
Ui::CheckboxAddress("Breath percentage", 0x589209); Ui::CheckboxAddress(TEXT("Visual.BreathPercentage"), 0x589209);
if (Ui::CheckboxWithHint("Disable hydrant splash", &m_bDisableHydrant)) if (Ui::CheckboxWithHint(TEXT("Visual.DisableHydrant"), &m_bDisableHydrant))
{ {
if (m_bDisableHydrant) if (m_bDisableHydrant)
{ {
@ -372,24 +372,24 @@ void Visual::ShowPage()
plugin::patch::SetRaw(0x4A0D70, (char*)"\xE9\x94\x3F\xF6\xFF", 5); plugin::patch::SetRaw(0x4A0D70, (char*)"\xE9\x94\x3F\xF6\xFF", 5);
} }
} }
Ui::CheckboxAddress("Gray radar", 0xA444A4); Ui::CheckboxAddress(TEXT("Visual.GrayRadar"), 0xA444A4);
Ui::CheckboxAddress("Health border", 0x589353); Ui::CheckboxAddress(TEXT("Visual.HealthBorder"), 0x589353);
Ui::CheckboxAddress("Health percentage", 0x589355); Ui::CheckboxAddress(TEXT("Visual.HealthPercentage"), 0x589355);
if (Ui::CheckboxWithHint("Hide area names", &CHud::bScriptDontDisplayAreaName)) if (Ui::CheckboxWithHint(TEXT("Visual.HideAreaNames"), &CHud::bScriptDontDisplayAreaName))
{ {
Command<Commands::DISPLAY_ZONE_NAMES>(!CHud::bScriptDontDisplayAreaName); Command<Commands::DISPLAY_ZONE_NAMES>(!CHud::bScriptDontDisplayAreaName);
} }
ImGui::NextColumn(); ImGui::NextColumn();
if (Ui::CheckboxWithHint("Hide veh names", &CHud::bScriptDontDisplayVehicleName)) if (Ui::CheckboxWithHint(TEXT("Visual.HideVehNames"), &CHud::bScriptDontDisplayVehicleName))
{ {
Command<Commands::DISPLAY_CAR_NAMES>(!CHud::bScriptDontDisplayVehicleName); Command<Commands::DISPLAY_CAR_NAMES>(!CHud::bScriptDontDisplayVehicleName);
} }
Ui::CheckboxAddressEx("Hide wanted level", 0x58DD1B, 0x90, 1); Ui::CheckboxAddressEx(TEXT("Visual.HideWantedLevel"), 0x58DD1B, 0x90, 1);
if (Ui::CheckboxWithHint("Invisible water", &m_bInvisibleWater)) if (Ui::CheckboxWithHint(TEXT("Visual.InvisibleWater"), &m_bInvisibleWater))
{ {
if (!m_bNoWater) if (!m_bNoWater)
{ {
@ -407,8 +407,8 @@ void Visual::ShowPage()
} }
} }
} }
Ui::CheckboxWithHint("Lock weather", &m_bLockWeather); Ui::CheckboxWithHint(TEXT("Visual.LockWeather"), &m_bLockWeather);
if (Ui::CheckboxWithHint("No water", &m_bNoWater)) if (Ui::CheckboxWithHint(TEXT("Visual.NoWater"), &m_bNoWater))
{ {
if (m_bNoWater) if (m_bNoWater)
{ {
@ -431,25 +431,25 @@ void Visual::ShowPage()
} }
bool radar_state = (patch::Get<BYTE>(0xBA676C) != 2); bool radar_state = (patch::Get<BYTE>(0xBA676C) != 2);
if (Ui::CheckboxWithHint("Show radar", &radar_state)) if (Ui::CheckboxWithHint(TEXT("Visual.ShowRadar"), &radar_state))
{ {
patch::Set<BYTE>(0xBA676C, radar_state == true ? 0 : 2); patch::Set<BYTE>(0xBA676C, radar_state == true ? 0 : 2);
} }
Ui::CheckboxAddress("Show hud", 0xBA6769); Ui::CheckboxAddress(TEXT("Visual.ShowHud"), 0xBA6769);
Ui::CheckboxAddressEx("Unfog map", 0xBA372C, 0x50, 0x0, "Removes fog from Main Menu Map"); Ui::CheckboxAddressEx(TEXT("Visual.UnfogMap"), 0xBA372C, 0x50, 0x0, TEXT("Visual.UnforMapText"));
#elif GTAVC #elif GTAVC
Ui::CheckboxAddress("Hide radar", 0xA10AB6); Ui::CheckboxAddress(TEXT("Visual.HideRadar"), 0xA10AB6);
Ui::CheckboxWithHint("Lock weather", &m_bLockWeather); Ui::CheckboxWithHint(TEXT("Visual.Lockweather"), &m_bLockWeather);
Ui::CheckboxAddress("Show hud", 0x86963A); Ui::CheckboxAddress(TEXT("Visual.ShowHud"), 0x86963A);
ImGui::NextColumn(); ImGui::NextColumn();
Ui::CheckboxAddress("Green scanlines", 0xA10B69); Ui::CheckboxAddress(TEXT("Visual.GreenScanlines"), 0xA10B69);
Ui::CheckboxAddress("White scanlines", 0xA10B68); Ui::CheckboxAddress(TEXT("Visual.WhiteScanlines"), 0xA10B68);
#else #else
static bool hideHud, hideRadar; static bool hideHud, hideRadar;
if (Ui::CheckboxWithHint("Hide hud", &hideHud)) if (Ui::CheckboxWithHint(TEXT("Visual.HideHud"), &hideHud))
{ {
if (hideHud) if (hideHud)
{ {
@ -460,7 +460,7 @@ void Visual::ShowPage()
patch::SetRaw(0x48E420, (char*)"\xE8\x7B\x6E\x07\x00", 5); patch::SetRaw(0x48E420, (char*)"\xE8\x7B\x6E\x07\x00", 5);
} }
} }
if (Ui::CheckboxWithHint("Hide radar", &hideRadar)) if (Ui::CheckboxWithHint(TEXT("Visual.HideRadar"), &hideRadar))
{ {
if (hideHud) if (hideHud)
{ {
@ -471,12 +471,12 @@ void Visual::ShowPage()
patch::SetRaw(0x50838D, (char*)"\xE8\x6E\xBE\xF9\xFF", 5); patch::SetRaw(0x50838D, (char*)"\xE8\x6E\xBE\xF9\xFF", 5);
} }
} }
Ui::CheckboxWithHint("Lock weather", &m_bLockWeather); Ui::CheckboxWithHint(TEXT("Visual.LockWeather"), &m_bLockWeather);
#endif #endif
ImGui::Columns(1); ImGui::Columns(1);
ImGui::EndTabItem(); ImGui::EndTabItem();
} }
if (ImGui::BeginTabItem("Menus")) if (ImGui::BeginTabItem(TEXT("Window.MenusTab")))
{ {
#ifdef GTASA #ifdef GTASA
static bool init_patches = false; static bool init_patches = false;
@ -551,50 +551,56 @@ void Visual::ShowPage()
#ifdef GTASA #ifdef GTASA
ImGui::Spacing(); ImGui::Spacing();
ImGui::SameLine(); ImGui::SameLine();
ImGui::TextWrapped("Incompatible mods"); ImGui::TextWrapped(TEXT("Visual.IncompatibleMods"));
Ui::ShowTooltip("1. vHud\n2. GTA 5 Hud\n3. MobileHud\n\nAnd others that change HUD drastically"); Ui::ShowTooltip(TEXT("Visual.IncompatibleModsText"));
ImGui::Spacing(); ImGui::Spacing();
Ui::ColorPickerAddress("Armourbar color", *(int*)0x5890FC, ImVec4(225, 225, 225, 255)); Ui::ColorPickerAddress(TEXT("Visual.ArmourbarColor"), *(int*)0x5890FC, ImVec4(225, 225, 225, 255));
Ui::EditAddress<float>("Armourbar posX", 0x866B78, -999, 94, 999); Ui::EditAddress<float>(TEXT("Visual.ArmourbarPosX"), 0x866B78, -999, 94, 999);
Ui::EditAddress<float>("Armourbar posY", 0x862D38, -999, 48, 999); Ui::EditAddress<float>(TEXT("Visual.ArmourbarPosY"), 0x862D38, -999, 48, 999);
Ui::ColorPickerAddress("Breathbar color", *(int*)0x5891EB, ImVec4(172, 203, 241, 255)); Ui::ColorPickerAddress(TEXT("Visual.BreathbarColor"), *(int*)0x5891EB, ImVec4(172, 203, 241, 255));
Ui::EditAddress<float>("Breathbar posX", *(int*)0x58F11F, -999, 94, 999); Ui::EditAddress<float>(TEXT("Visual.BreathbarPosX"), *(int*)0x58F11F, -999, 94, 999);
Ui::EditAddress<float>("Breathbar posY", *(int*)0x58F100, -999, 62, 999); Ui::EditAddress<float>(TEXT("Visual.BreathbarPosY"), *(int*)0x58F100, -999, 62, 999);
Ui::ColorPickerAddress("Clock color", *(int*)0x58EBD1, ImVec4(255, 255, 255, 255)); Ui::ColorPickerAddress(TEXT("Visual.ClockColor"), *(int*)0x58EBD1, ImVec4(255, 255, 255, 255));
Ui::EditAddress<float>("Clock posX", *(int*)0x58EC16, -999, 32, 999); Ui::EditAddress<float>(TEXT("Visual.ClockPosX"), *(int*)0x58EC16, -999, 32, 999);
Ui::EditAddress<float>("Clock posY", *(int*)0x58EC04, -999, 22, 999); Ui::EditAddress<float>(TEXT("Visual.ClockPosY"), *(int*)0x58EC04, -999, 22, 999);
Ui::ColorPickerAddress("Healthbar color", *(int*)0x589331, ImVec4(180, 25, 29, 255)); Ui::ColorPickerAddress(TEXT("Visual.HealthbarColor"), *(int*)0x589331, ImVec4(180, 25, 29, 255));
Ui::EditAddress<float>("Healthbar posX", 0x86535C, -999, 141, 999); Ui::EditAddress<float>(TEXT("Visual.HealthbarPosX"), 0x86535C, -999, 141, 999);
Ui::EditAddress<float>("Healthbar posY", 0x866CA8, -999, 77, 999); Ui::EditAddress<float>(TEXT("Visual.HealthbarPosY"), 0x866CA8, -999, 77, 999);
Ui::ColorPickerAddress("Draw menu title border color", 0xBAB240, ImVec4(0, 0, 0, 255)); Ui::ColorPickerAddress(TEXT("Visual.DrawMenuTitle"), 0xBAB240, ImVec4(0, 0, 0, 255));
Ui::ColorPickerAddress("Money color", 0xBAB230, ImVec4(54, 104, 44, 255)); Ui::ColorPickerAddress(TEXT("Visual.MoneyColor"), 0xBAB230, ImVec4(54, 104, 44, 255));
Ui::EditAddress<float>("Money posX", *(int*)0x58F5FC, -999, 32, 999); Ui::EditAddress<float>(TEXT("Visual.MoneyPosX"), *(int*)0x58F5FC, -999, 32, 999);
Ui::EditAddress<float>("Money posY", 0x866C88, -999, 89, 999); Ui::EditAddress<float>(TEXT("Visual.MoneyPosY"), 0x866C88, -999, 89, 999);
static std::vector<Ui::NamedValue> font_outline static std::vector<Ui::NamedValue> font_outline
{ {
{"No outline", 0}, {"Thin outline", 1}, {"Default outline", 2} {TEXT("Visual.NoOutline"), 0}, {TEXT("Visual.ThinOutline"), 1}, {TEXT("Visual.DefaultOutline"), 2}
}; };
Ui::EditRadioButtonAddressEx("Money font outline", 0x58F58D, font_outline); Ui::EditRadioButtonAddressEx(TEXT("MoneyFontOutline"), 0x58F58D, font_outline);
static std::vector<Ui::NamedValue> style{ {"Style 1", 1}, {"Style 2", 2}, {"Default style", 3} }; static std::vector<Ui::NamedValue> style
Ui::EditRadioButtonAddressEx("Money font style", 0x58F57F, style); {
Ui::EditAddress<float>("Radar Height", *(int*)0x5834F6, 0, 76, 999); {TEXT("Style1"), 1}, {TEXT("Style2"), 2}, {TEXT("DefaultStyle"), 3}
Ui::EditAddress<float>("Radar Width", *(int*)0x5834C2, 0, 94, 999); };
Ui::EditAddress<float>("Radar posX", *(int*)0x5834D4, -999, 40, 999); Ui::EditRadioButtonAddressEx(TEXT("MoneyFontStyle"), 0x58F57F, style);
Ui::EditAddress<float>("Radar posY", *(int*)0x583500, -999, 104, 999); Ui::EditAddress<float>(TEXT("RadarHeight"), *(int*)0x5834F6, 0, 76, 999);
Ui::EditAddress<int>("Radar zoom", 0xA444A3, 0, 0, 170); Ui::EditAddress<float>(TEXT("RadarWidth"), *(int*)0x5834C2, 0, 94, 999);
Ui::ColorPickerAddress("Radio station color", 0xBAB24C, ImVec4(150, 150, 150, 255)); Ui::EditAddress<float>(TEXT("RadarPosX"), *(int*)0x5834D4, -999, 40, 999);
static std::vector<Ui::NamedValue> star_border{ {"No border", 0}, {"Default", 1}, {"Bold border", 2} }; Ui::EditAddress<float>(TEXT("RadarPosY"), *(int*)0x583500, -999, 104, 999);
Ui::EditRadioButtonAddressEx("Wanted star border", 0x58DD41, star_border); Ui::EditAddress<int>(TEXT("RadarZoom"), 0xA444A3, 0, 0, 170);
Ui::EditAddress<float>("Wanted posX", *(int*)0x58DD0F, -999, 29, 999); Ui::ColorPickerAddress(TEXT("RadioStationColor"), 0xBAB24C, ImVec4(150, 150, 150, 255));
Ui::EditAddress<float>("Wanted posY", *(int*)0x58DDFC, -999, 114, 999); static std::vector<Ui::NamedValue> star_border
Ui::EditAddress<float>("Weapon ammo posX", *(int*)0x58FA02, -999, 32, 999); {
Ui::EditAddress<float>("Weapon ammo posY", *(int*)0x58F9E6, -999, 43, 999); {TEXT("NoBorder"), 0}, {TEXT("DefaultBorder"), 1}, {TEXT("BoldBorder"), 2}
Ui::EditAddress<float>("Weapon icon posX", *(int*)0x58F927, -999, 32, 999); };
Ui::EditAddress<float>("Weapon icon posY", *(int*)0x58F913, -999, 20, 999); Ui::EditRadioButtonAddressEx(TEXT("WantedStarBorder"), 0x58DD41, star_border);
Ui::EditAddress<float>(TEXT("WantedPosX"), *(int*)0x58DD0F, -999, 29, 999);
Ui::EditAddress<float>(TEXT("WantedPosY"), *(int*)0x58DDFC, -999, 114, 999);
Ui::EditAddress<float>(TEXT("WeaponAmmoPosX"), *(int*)0x58FA02, -999, 32, 999);
Ui::EditAddress<float>(TEXT("WeaponAmmoPosY"), *(int*)0x58F9E6, -999, 43, 999);
Ui::EditAddress<float>(TEXT("WeaponIconPosX"), *(int*)0x58F927, -999, 32, 999);
Ui::EditAddress<float>(TEXT("WeaponIconPosY"), *(int*)0x58F913, -999, 20, 999);
#elif GTAVC #elif GTAVC
Ui::EditAddress<float>("Radar posX", 0x68FD2C, -999, 40, 999); Ui::EditAddress<float>(TEXT("RadarPosX"), 0x68FD2C, -999, 40, 999);
Ui::EditAddress<float>("Radar posY", 0x68FD34, -999, 104, 999); Ui::EditAddress<float>(TEXT("RadarPosY"), 0x68FD34, -999, 104, 999);
Ui::EditAddress<BYTE>("Radar width", 0x68FD28, -999, 20, 999); Ui::EditAddress<BYTE>(TEXT("RadarWidth"), 0x68FD28, -999, 20, 999);
#endif #endif
ImGui::EndChild(); ImGui::EndChild();
@ -604,33 +610,33 @@ void Visual::ShowPage()
} }
#ifdef GTASA #ifdef GTASA
if (m_nTimecycHour == 8 ? ImGui::BeginTabItem("Timecyc") : ImGui::BeginTabItem("Timecyc 24h")) if (m_nTimecycHour == 8 ? ImGui::BeginTabItem(TEXT("Visual.TimecycTab")) : ImGui::BeginTabItem(TEXT("Visual.Timecyc24hTab")))
#else #else
if (ImGui::BeginTabItem("Timecyc")) if (ImGui::BeginTabItem(TEXT("Visual.TimecycTab")))
#endif #endif
{ {
ImGui::Spacing(); ImGui::Spacing();
if (ImGui::Button("Generate timecyc file", Ui::GetSize(2))) if (ImGui::Button(TEXT("Visual.GenerateFile"), Ui::GetSize(2)))
{ {
GenerateTimecycFile(); GenerateTimecycFile();
SetHelpMessage("File generated", false, false, false); SetHelpMessage(TEXT("Visual.FileGenerated"));
} }
ImGui::SameLine(); ImGui::SameLine();
if (ImGui::Button("Reset timecyc", Ui::GetSize(2))) if (ImGui::Button(TEXT("Visual.ResetTimecyc"), Ui::GetSize(2)))
{ {
CTimeCycle::Initialise(); CTimeCycle::Initialise();
SetHelpMessage("Timecyc reset", false, false, false); SetHelpMessage(TEXT("Visual.TimecycReset"), false, false, false);
} }
ImGui::Spacing(); ImGui::Spacing();
int weather = CWeather::OldWeatherType; int weather = CWeather::OldWeatherType;
if (Ui::ListBox("Current weather", m_WeatherNames, weather)) if (Ui::ListBox(TEXT("Visual.CurrentWeather"), m_WeatherNames, weather))
{ {
CWeather::OldWeatherType = weather; CWeather::OldWeatherType = weather;
} }
weather = CWeather::NewWeatherType; weather = CWeather::NewWeatherType;
if (Ui::ListBox("Next weather", m_WeatherNames, weather)) if (Ui::ListBox(TEXT("Visual.NextWeather"), m_WeatherNames, weather))
{ {
CWeather::NewWeatherType = weather; CWeather::NewWeatherType = weather;
} }
@ -644,14 +650,14 @@ void Visual::ShowPage()
ImGui::BeginDisabled(Game::m_bSyncTime); ImGui::BeginDisabled(Game::m_bSyncTime);
} }
if (ImGui::InputInt("Hour", &hour) & !Game::m_bSyncTime) if (ImGui::InputInt(TEXT("Visual.Hour"), &hour) & !Game::m_bSyncTime)
{ {
if (hour < 0) hour = 23; if (hour < 0) hour = 23;
if (hour > 23) hour = 0; if (hour > 23) hour = 0;
CClock::ms_nGameClockHours = hour; CClock::ms_nGameClockHours = hour;
} }
if (ImGui::InputInt("Minute", &minute) & !Game::m_bSyncTime) if (ImGui::InputInt(TEXT("Visual.Minute"), &minute) & !Game::m_bSyncTime)
{ {
if (minute < 0) minute = 59; if (minute < 0) minute = 59;
if (minute > 59) minute = 0; if (minute > 59) minute = 0;
@ -661,10 +667,10 @@ void Visual::ShowPage()
if (Game::m_bSyncTime) if (Game::m_bSyncTime)
{ {
ImGui::EndDisabled(); ImGui::EndDisabled();
Ui::ShowTooltip("Sync system time is enabled.\n(Game/Sync system time)"); Ui::ShowTooltip(TEXT("Visual.SyncTimeEnabled"));
} }
if (ImGui::Checkbox("Freeze game time", &Game::m_bFreezeTime)) if (ImGui::Checkbox(TEXT("Visual.FreezeGameTime"), &Game::m_bFreezeTime))
{ {
if (Game::m_bFreezeTime) if (Game::m_bFreezeTime)
{ {
@ -679,47 +685,47 @@ void Visual::ShowPage()
ImGui::Spacing(); ImGui::Spacing();
if (ImGui::BeginTabBar("Timecyc subtab", ImGuiTabBarFlags_NoTooltip + ImGuiTabBarFlags_FittingPolicyScroll)) if (ImGui::BeginTabBar("Timecyc subtab", ImGuiTabBarFlags_NoTooltip + ImGuiTabBarFlags_FittingPolicyScroll))
{ {
if (ImGui::BeginTabItem("Colors")) if (ImGui::BeginTabItem(TEXT("Visual.ColorsTab")))
{ {
ImGui::BeginChild("TimecycColors"); ImGui::BeginChild("TimecycColors");
ImGui::Spacing(); ImGui::Spacing();
TimeCycColorEdit3("Ambient", m_nAmbientRed, m_nAmbientGreen, m_nAmbientBlue); TimeCycColorEdit3(TEXT("Visual.Ambient"), m_nAmbientRed, m_nAmbientGreen, m_nAmbientBlue);
#ifndef GTA3 #ifndef GTA3
TimeCycColorEdit3("Ambient obj", m_nAmbientRed_Obj, m_nAmbientGreen_Obj, m_nAmbientBlue_Obj); TimeCycColorEdit3(TEXT("Visual.AmbientObj"), m_nAmbientRed_Obj, m_nAmbientGreen_Obj, m_nAmbientBlue_Obj);
#endif #endif
#ifdef GTASA #ifdef GTASA
TimeCycColorEdit3("Fluffy clouds", m_nFluffyCloudsBottomRed, m_nFluffyCloudsBottomGreen, TimeCycColorEdit3(TEXT("Visual.FluffyClouds"), m_nFluffyCloudsBottomRed, m_nFluffyCloudsBottomGreen,
m_nFluffyCloudsBottomBlue); m_nFluffyCloudsBottomBlue);
#elif GTAVC #elif GTAVC
TimeCycColorEdit3("Ambient bl", m_nAmbientBlRed, m_nAmbientBlGreen, m_nAmbientBlBlue); TimeCycColorEdit3(TEXT("Visual.AmbientBl"), m_nAmbientBlRed, m_nAmbientBlGreen, m_nAmbientBlBlue);
TimeCycColorEdit3("Ambient obj bl", m_nAmbientBlRed_Obj, m_nAmbientBlGreen_Obj, TimeCycColorEdit3(TEXT("Visual.AmbientObjBl"), m_nAmbientBlRed_Obj, m_nAmbientBlGreen_Obj,
m_nAmbientBlBlue_Obj); m_nAmbientBlBlue_Obj);
TimeCycColorEdit3("Blur", m_nBlurRed, m_nBlurGreen, m_nBlurBlue); TimeCycColorEdit3(TEXT("Visual.Blur"), m_nBlurRed, m_nBlurGreen, m_nBlurBlue);
#endif #endif
#ifndef GTASA #ifndef GTASA
TimeCycColorEdit3("Clouds bottom", m_nBottomCloudsRed, m_nBottomCloudsGreen, m_nBottomCloudsBlue); TimeCycColorEdit3(TEXT("Visual.CloudsBottom"), m_nBottomCloudsRed, m_nBottomCloudsGreen, m_nBottomCloudsBlue);
TimeCycColorEdit3("Clouds low", m_nLowCloudsRed, m_nLowCloudsGreen, m_nLowCloudsBlue); TimeCycColorEdit3(TEXT("Visual.CloudsLow"), m_nLowCloudsRed, m_nLowCloudsGreen, m_nLowCloudsBlue);
TimeCycColorEdit3("Clouds top", m_nTopCloudsRed, m_nTopCloudsGreen, m_nTopCloudsBlue); TimeCycColorEdit3(TEXT("Visual.CloudsTop"), m_nTopCloudsRed, m_nTopCloudsGreen, m_nTopCloudsBlue);
TimeCycColorEdit3("Directional light", m_nDirRed, m_nDirGreen, m_nDirBlue); TimeCycColorEdit3(TEXT("Visual.DirectionalLight"), m_nDirRed, m_nDirGreen, m_nDirBlue);
#endif #endif
#ifdef GTASA #ifdef GTASA
TimeCycColorEdit4("PostFx 1", m_fPostFx1Red, m_fPostFx1Green, m_fPostFx1Blue, m_fPostFx1Alpha); TimeCycColorEdit4(TEXT("Visual.PostFX1"), m_fPostFx1Red, m_fPostFx1Green, m_fPostFx1Blue, m_fPostFx1Alpha);
TimeCycColorEdit4("PostFx 2", m_fPostFx2Red, m_fPostFx2Green, m_fPostFx2Blue, m_fPostFx1Alpha); TimeCycColorEdit4(TEXT("Visual.PostFX2"), m_fPostFx2Red, m_fPostFx2Green, m_fPostFx2Blue, m_fPostFx1Alpha);
#elif GTA3 #elif GTA3
TimeCycColorEdit4("PostFx", m_fPostFxRed, m_fPostFxGreen, m_fPostFxBlue, m_fPostFxAlpha); TimeCycColorEdit4(TEXT("Visual.PostFX1"), m_fPostFxRed, m_fPostFxGreen, m_fPostFxBlue, m_fPostFxAlpha);
#endif #endif
TimeCycColorEdit3("Sky bottom", m_nSkyBottomRed, m_nSkyBottomGreen, m_nSkyBottomBlue); TimeCycColorEdit3(TEXT("Visual.SkyBottom"), m_nSkyBottomRed, m_nSkyBottomGreen, m_nSkyBottomBlue);
TimeCycColorEdit3("Sun core", m_nSunCoreRed, m_nSunCoreGreen, m_nSunCoreBlue); TimeCycColorEdit3(TEXT("Visual.SunCore"), m_nSunCoreRed, m_nSunCoreGreen, m_nSunCoreBlue);
TimeCycColorEdit3("Sun corona", m_nSunCoronaRed, m_nSunCoronaGreen, m_nSunCoronaBlue); TimeCycColorEdit3(TEXT("Visual.SunCorona"), m_nSunCoronaRed, m_nSunCoronaGreen, m_nSunCoronaBlue);
TimeCycColorEdit3("Sky top", m_nSkyTopRed, m_nSkyTopGreen, m_nSkyTopBlue); TimeCycColorEdit3(TEXT("Visual.SkyTop"), m_nSkyTopRed, m_nSkyTopGreen, m_nSkyTopBlue);
#ifndef GTA3 #ifndef GTA3
TimeCycColorEdit4("Water", m_fWaterRed, m_fWaterGreen, m_fWaterBlue, m_fWaterAlpha); TimeCycColorEdit4(TEXT("Visual.Water"), m_fWaterRed, m_fWaterGreen, m_fWaterBlue, m_fWaterAlpha);
#endif #endif
ImGui::EndChild(); ImGui::EndChild();
ImGui::EndTabItem(); ImGui::EndTabItem();
@ -730,31 +736,31 @@ void Visual::ShowPage()
ImGui::PushItemWidth(ImGui::GetWindowContentRegionWidth() / 2); ImGui::PushItemWidth(ImGui::GetWindowContentRegionWidth() / 2);
#ifdef GTASA #ifdef GTASA
TimecycSlider("Cloud alpha", m_fCloudAlpha, 0, 255); TimecycSlider(TEXT("Visual.CloudAlpha"), m_fCloudAlpha, 0, 255);
TimecycSlider("Directional mult", m_nDirectionalMult, 0, 255); TimecycSlider(TEXT("Visual.DirectionalMult"), m_nDirectionalMult, 0, 255);
#endif #endif
TimecycSlider("Far clip", m_fFarClip, 0, 5000); TimecycSlider(TEXT("Visual.FarClip"), m_fFarClip, 0, 5000);
TimecycSlider("Fog start", m_fFogStart, 0, 5000); TimecycSlider(TEXT("Visual.FogStart"), m_fFogStart, 0, 5000);
#ifdef GTASA #ifdef GTASA
TimecycSlider("High light min intensity", m_nHighLightMinIntensity, 0, 255); TimecycSlider(TEXT("Visual.LightIntensity"), m_nHighLightMinIntensity, 0, 255);
#endif #endif
TimecycSlider("Light on ground brightness", m_fLightsOnGroundBrightness, 0, 255); TimecycSlider(TEXT("Visual.LightBrightness"), m_fLightsOnGroundBrightness, 0, 255);
TimecycSlider("Light shadow strength", m_nLightShadowStrength, 0, 255); TimecycSlider(TEXT("Visual.LightShadowStrength"), m_nLightShadowStrength, 0, 255);
#ifndef GTA3 #ifndef GTA3
TimecycSlider("Pole shadow strength", m_nPoleShadowStrength, 0, 255); TimecycSlider(TEXT("Visual.PoleShadowStrength"), m_nPoleShadowStrength, 0, 255);
#endif #endif
TimecycSlider("Shadow strength", m_nShadowStrength, 0, 255); TimecycSlider(TEXT("Visual.ShadowStrength"), m_nShadowStrength, 0, 255);
TimecycSlider("Sprite brightness", m_fSpriteBrightness, 0, 127); TimecycSlider(TEXT("Visual.SpriteBrightness"), m_fSpriteBrightness, 0, 127);
TimecycSlider("Sprite size", m_fSpriteSize, 0, 127); TimecycSlider(TEXT("Visual.SpriteSize"), m_fSpriteSize, 0, 127);
TimecycSlider("Sun size", m_fSunSize, 0, 127); TimecycSlider(TEXT("Visual.SunSize"), m_fSunSize, 0, 127);
#ifdef GTA3 #ifdef GTA3
TimecycSlider("Tree shadow strength", m_nTreeShadowStrength, 0, 255); TimecycSlider(TEXT("Visual.TreeShadowStrength"), m_nTreeShadowStrength, 0, 255);
#endif #endif
#ifdef GTASA #ifdef GTASA
TimecycSlider("Water fog alpha", m_nWaterFogAlpha, 0, 255); TimecycSlider(TEXT("Visual.WaterFogAlpha"), m_nWaterFogAlpha, 0, 255);
#endif #endif
ImGui::PopItemWidth(); ImGui::PopItemWidth();