Skip to content

Commit 09e26fc

Browse files
authored
Merge pull request #609 from RickyB505/development
fix(vehicle): fixes bugs found with new rgb system
2 parents 6205b6e + 09acff5 commit 09e26fc

File tree

1 file changed

+43
-39
lines changed

1 file changed

+43
-39
lines changed

vMenu/menus/VehicleOptions.cs

Lines changed: 43 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Drawing;
34
using System.Linq;
45

56
using CitizenFX.Core;
@@ -2152,7 +2153,7 @@ public void UpdateMods(int selectedIndex = 0)
21522153
}
21532154

21542155
var headlightsButton = new MenuItem("Headlights");
2155-
var headlightsMenu = new Menu("Headlights");
2156+
var headlightsMenu = new Menu("Headlights", "headlights");
21562157
var xenonHeadlights = new MenuCheckboxItem("Xenon Headlights", "Enable or disable ~b~xenon ~s~headlights.", IsToggleModOn(veh.Handle, 22));
21572158
headlightsMenu.AddMenuItem(xenonHeadlights);
21582159
var currentHeadlightColor = GetHeadlightsColorForVehicle(veh);
@@ -2214,7 +2215,7 @@ public void UpdateMods(int selectedIndex = 0)
22142215
}
22152216

22162217
var tireSmokeButton = new MenuItem("Tire Smoke");
2217-
var tireSmokeMenu = new Menu("Tire Smoke");
2218+
var tireSmokeMenu = new Menu("Tire Smoke", "Tire Smoke");
22182219
// Create a list of tire smoke options.
22192220
var tireSmokes = new List<string>() { "Red", "Orange", "Yellow", "Gold", "Light Green", "Dark Green", "Light Blue", "Dark Blue", "Purple", "Pink", "Black" };
22202221
var tireSmokeColors = new Dictionary<string, int[]>()
@@ -2541,7 +2542,7 @@ internal static int GetHeadlightsColorForVehicle(Vehicle vehicle)
25412542
/// </summary>
25422543
/// <param name="index"></param>
25432544
/// <returns></returns>
2544-
private System.Drawing.Color GetColorFromIndex(int index)
2545+
private static System.Drawing.Color GetColorFromIndex(int index)
25452546
{
25462547
if (index is >= 0 and < 13)
25472548
{
@@ -2586,22 +2587,22 @@ public enum RGBType
25862587
public static void CreateCustomColourMenu(Menu menu, RGBType type = RGBType.primaryPaint)
25872588
{
25882589

2589-
var hexColour = new MenuItem("Hex Colour Code");
2590+
var hexColour = new MenuItem("Hex Color Code");
25902591
var typeList = new MenuListItem("Paint Finish", Enum.GetNames(typeof(Colour_Types)).ToList(), 0);
25912592

25922593
int r = 0, g = 0, b = 0;
25932594

2594-
var redColour = new MenuSliderItem("Red Colour", 0, 255, 128, true)
2595+
var redColour = new MenuSliderItem("Red Color", 0, 255, 128, true)
25952596
{
25962597
BarColor = System.Drawing.Color.FromArgb(155, 0, 0, 0),
25972598
BackgroundColor = System.Drawing.Color.FromArgb(200, 79, 79, 79),
25982599
};
2599-
var greenColour = new MenuSliderItem("Green Colour", 0, 255, 128, true)
2600+
var greenColour = new MenuSliderItem("Green Color", 0, 255, 128, true)
26002601
{
26012602
BarColor = System.Drawing.Color.FromArgb(155, 0, 0, 0),
26022603
BackgroundColor = System.Drawing.Color.FromArgb(200, 79, 79, 79),
26032604
};
2604-
var blueColour = new MenuSliderItem("Blue Colour", 0, 255, 128, true)
2605+
var blueColour = new MenuSliderItem("Blue Color", 0, 255, 128, true)
26052606
{
26062607
BarColor = System.Drawing.Color.FromArgb(155, 0, 0, 0),
26072608
BackgroundColor = System.Drawing.Color.FromArgb(200, 79, 79, 79),
@@ -2634,9 +2635,10 @@ public static void CreateCustomColourMenu(Menu menu, RGBType type = RGBType.prim
26342635
{
26352636
if (IsToggleModOn(vehicle.Handle, 22))
26362637
{
2637-
r = VehicleData.NeonLightColors[GetHeadlightsColorForVehicle(vehicle)][0];
2638-
g = VehicleData.NeonLightColors[GetHeadlightsColorForVehicle(vehicle)][1];
2639-
b = VehicleData.NeonLightColors[GetHeadlightsColorForVehicle(vehicle)][2];
2638+
int headlight = GetHeadlightsColorForVehicle(vehicle) < 0 ? 0 : GetHeadlightsColorForVehicle(vehicle);
2639+
r = VehicleData.NeonLightColors[headlight][0];
2640+
g = VehicleData.NeonLightColors[headlight][1];
2641+
b = VehicleData.NeonLightColors[headlight][2];
26402642
}
26412643
}
26422644

@@ -2645,13 +2647,13 @@ public static void CreateCustomColourMenu(Menu menu, RGBType type = RGBType.prim
26452647
GetVehicleTyreSmokeColor(vehicle.Handle, ref r, ref g, ref b);
26462648

26472649

2648-
redColour.Text = $"Red Colour ({r})";
2650+
redColour.Text = $"Red Color ({r})";
26492651
redColour.Position = r;
26502652

2651-
greenColour.Text = $"Green Colour ({g})";
2653+
greenColour.Text = $"Green Color ({g})";
26522654
greenColour.Position = g;
26532655

2654-
blueColour.Text = $"Blue Colour ({b})";
2656+
blueColour.Text = $"Blue Color ({b})";
26552657
blueColour.Position = b;
26562658

26572659
redColour.BarColor = System.Drawing.Color.FromArgb(255, redColour.Position, greenColour.Position, blueColour.Position);
@@ -2665,7 +2667,7 @@ public static void CreateCustomColourMenu(Menu menu, RGBType type = RGBType.prim
26652667
if (item == hexColour)
26662668
{
26672669
string hexValue = redColour.Position.ToString("X2") + greenColour.Position.ToString("X2") + blueColour.Position.ToString("X2");
2668-
var result = await GetUserInput(windowTitle: "Enter Colour Hex", defaultText: (hexValue).Replace("#", ""), maxInputLength: 6);
2670+
var result = await GetUserInput(windowTitle: "Enter Color Hex", defaultText: (hexValue).Replace("#", ""), maxInputLength: 6);
26692671
if (!string.IsNullOrEmpty(result))
26702672
{
26712673
if (IsHex(result))
@@ -2690,13 +2692,13 @@ public static void CreateCustomColourMenu(Menu menu, RGBType type = RGBType.prim
26902692
greenColour.BarColor = System.Drawing.Color.FromArgb(255, red, green, blue);
26912693
blueColour.BarColor = System.Drawing.Color.FromArgb(255, red, green, blue);
26922694

2693-
redColour.Text = $"Red Colour ({red})";
2695+
redColour.Text = $"Red Color ({red})";
26942696
redColour.Position = red;
26952697

2696-
greenColour.Text = $"Green Colour ({green})";
2698+
greenColour.Text = $"Green Color ({green})";
26972699
greenColour.Position = green;
26982700

2699-
blueColour.Text = $"Blue Colour ({blue})";
2701+
blueColour.Text = $"Blue Color ({blue})";
27002702
blueColour.Position = blue;
27012703
}
27022704
}
@@ -2722,9 +2724,10 @@ public static void CreateCustomColourMenu(Menu menu, RGBType type = RGBType.prim
27222724
{
27232725
if (IsToggleModOn(vehicle.Handle, 22))
27242726
{
2725-
r = VehicleData.NeonLightColors[GetHeadlightsColorForVehicle(vehicle)][0];
2726-
g = VehicleData.NeonLightColors[GetHeadlightsColorForVehicle(vehicle)][1];
2727-
b = VehicleData.NeonLightColors[GetHeadlightsColorForVehicle(vehicle)][2];
2727+
int headlight = GetHeadlightsColorForVehicle(vehicle) < 0 ? 0 : GetHeadlightsColorForVehicle(vehicle);
2728+
r = VehicleData.NeonLightColors[headlight][0];
2729+
g = VehicleData.NeonLightColors[headlight][1];
2730+
b = VehicleData.NeonLightColors[headlight][2];
27282731
}
27292732
}
27302733

@@ -2746,7 +2749,7 @@ public static void CreateCustomColourMenu(Menu menu, RGBType type = RGBType.prim
27462749
else if (type == RGBType.tiresmoke)
27472750
vehicle.Mods.TireSmokeColor = System.Drawing.Color.FromArgb(255, newPosition, g, b);
27482751

2749-
redColour.Text = $"Red Colour ({newPosition})";
2752+
redColour.Text = $"Red Color ({newPosition})";
27502753
}
27512754
if (sliderItem == greenColour)
27522755
{
@@ -2761,7 +2764,7 @@ public static void CreateCustomColourMenu(Menu menu, RGBType type = RGBType.prim
27612764
else if (type == RGBType.tiresmoke)
27622765
vehicle.Mods.TireSmokeColor = System.Drawing.Color.FromArgb(255, r, newPosition, b);
27632766

2764-
greenColour.Text = $"Green Colour ({newPosition})";
2767+
greenColour.Text = $"Green Color ({newPosition})";
27652768
}
27662769
if (sliderItem == blueColour)
27672770
{
@@ -2776,7 +2779,7 @@ public static void CreateCustomColourMenu(Menu menu, RGBType type = RGBType.prim
27762779
else if (type == RGBType.tiresmoke)
27772780
vehicle.Mods.TireSmokeColor = System.Drawing.Color.FromArgb(255, r, g, newPosition);
27782781

2779-
blueColour.Text = $"Blue Colour ({newPosition})";
2782+
blueColour.Text = $"Blue Color ({newPosition})";
27802783
}
27812784
redColour.BarColor = System.Drawing.Color.FromArgb(255, redColour.Position, greenColour.Position, blueColour.Position);
27822785
greenColour.BarColor = System.Drawing.Color.FromArgb(255, redColour.Position, greenColour.Position, blueColour.Position);
@@ -2807,42 +2810,43 @@ public static void CreateCustomColourMenu(Menu menu, RGBType type = RGBType.prim
28072810
}
28082811
else if (type == RGBType.underglow)
28092812
{
2810-
int red = vehicle.Mods.TireSmokeColor.R;
2811-
int green = vehicle.Mods.NeonLightsColor.G;
2812-
int blue = vehicle.Mods.NeonLightsColor.B;
2813+
Color underglow = GetColorFromIndex(newIndex);
2814+
int red = underglow.R;
2815+
int green = underglow.G;
2816+
int blue = underglow.B;
28132817

28142818
redColour.BarColor = System.Drawing.Color.FromArgb(255, red, green, blue);
28152819
greenColour.BarColor = System.Drawing.Color.FromArgb(255, red, green, blue);
28162820
blueColour.BarColor = System.Drawing.Color.FromArgb(255, red, green, blue);
28172821

2818-
redColour.Text = $"Red Colour ({red})";
2822+
redColour.Text = $"Red Color ({red})";
28192823
redColour.Position = red;
28202824

2821-
greenColour.Text = $"Green Colour ({green})";
2825+
greenColour.Text = $"Green Color ({green})";
28222826
greenColour.Position = green;
28232827

2824-
blueColour.Text = $"Blue Colour ({blue})";
2828+
blueColour.Text = $"Blue Color ({blue})";
28252829
blueColour.Position = blue;
28262830
}
28272831
else if (type == RGBType.headlight)
28282832
{
2829-
2830-
int red = VehicleData.NeonLightColors[GetHeadlightsColorForVehicle(vehicle)][0];
2831-
int green = VehicleData.NeonLightColors[GetHeadlightsColorForVehicle(vehicle)][1];
2832-
int blue = VehicleData.NeonLightColors[GetHeadlightsColorForVehicle(vehicle)][2];
2833+
int headlight = GetHeadlightsColorForVehicle(vehicle) < 0 ? 0 : GetHeadlightsColorForVehicle(vehicle);
2834+
int red = VehicleData.NeonLightColors[headlight][0];
2835+
int green = VehicleData.NeonLightColors[headlight][1];
2836+
int blue = VehicleData.NeonLightColors[headlight][2];
28332837

28342838

28352839
redColour.BarColor = System.Drawing.Color.FromArgb(255, red, green, blue);
28362840
greenColour.BarColor = System.Drawing.Color.FromArgb(255, red, green, blue);
28372841
blueColour.BarColor = System.Drawing.Color.FromArgb(255, red, green, blue);
28382842

2839-
redColour.Text = $"Red Colour ({red})";
2843+
redColour.Text = $"Red Color ({red})";
28402844
redColour.Position = red;
28412845

2842-
greenColour.Text = $"Green Colour ({green})";
2846+
greenColour.Text = $"Green Color ({green})";
28432847
greenColour.Position = green;
28442848

2845-
blueColour.Text = $"Blue Colour ({blue})";
2849+
blueColour.Text = $"Blue Color ({blue})";
28462850
blueColour.Position = blue;
28472851
}
28482852
else if (type == RGBType.tiresmoke)
@@ -2855,13 +2859,13 @@ public static void CreateCustomColourMenu(Menu menu, RGBType type = RGBType.prim
28552859
greenColour.BarColor = System.Drawing.Color.FromArgb(255, red, green, blue);
28562860
blueColour.BarColor = System.Drawing.Color.FromArgb(255, red, green, blue);
28572861

2858-
redColour.Text = $"Red Colour ({red})";
2862+
redColour.Text = $"Red Color ({red})";
28592863
redColour.Position = red;
28602864

2861-
greenColour.Text = $"Green Colour ({green})";
2865+
greenColour.Text = $"Green Color ({green})";
28622866
greenColour.Position = green;
28632867

2864-
blueColour.Text = $"Blue Colour ({blue})";
2868+
blueColour.Text = $"Blue Color ({blue})";
28652869
blueColour.Position = blue;
28662870
}
28672871

0 commit comments

Comments
 (0)