From d2f3abae3b49c641e91845f50e42f7cf7faf118a Mon Sep 17 00:00:00 2001 From: znajder Date: Mon, 19 Feb 2024 21:51:58 +0100 Subject: [PATCH 1/5] Add vehicle upgrades list --- Client/mods/deathmatch/premake5.lua | 1 + Shared/gta/VehicleUpgrades.h | 223 ++++++++++++++++++++++++++++ 2 files changed, 224 insertions(+) create mode 100644 Shared/gta/VehicleUpgrades.h diff --git a/Client/mods/deathmatch/premake5.lua b/Client/mods/deathmatch/premake5.lua index c8fdfd2ed88..5a0133bae77 100644 --- a/Client/mods/deathmatch/premake5.lua +++ b/Client/mods/deathmatch/premake5.lua @@ -29,6 +29,7 @@ project "Client Deathmatch" filter {} includedirs { "../../../Shared/sdk", + "../../../Shared/gta", ".", "./logic", "../../sdk/", diff --git a/Shared/gta/VehicleUpgrades.h b/Shared/gta/VehicleUpgrades.h new file mode 100644 index 00000000000..b92b9bfe94b --- /dev/null +++ b/Shared/gta/VehicleUpgrades.h @@ -0,0 +1,223 @@ +/***************************************************************************** + * + * PROJECT: Multi Theft Auto + * LICENSE: See LICENSE in the top level directory + * PURPOSE: Data file containing nodes positions for default train tracks + * + * Multi Theft Auto is available from http://www.multitheftauto.com/ + * + *****************************************************************************/ + +#pragma once + +#include +#include + +using UpgradeList = std::vector; + +static const std::unordered_map g_upgradesCompatiblityList = { + {400, {1086, 1018, 1019, 1020, 1021, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, + 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1013, 1024, 1087, 1008, 1009, 1010}}, + {401, {1142, 1143, 1144, 1000, 1001, 1002, 1003, 1014, 1015, 1016, 1023, 1049, 1050, 1058, 1060, 1138, 1139, 1146, + 1147, 1158, 1162, 1163, 1164, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, + 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1004, 1005, 1006, 1019, 1020, 1013, 1086, 1007, 1017}}, + {402, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {403, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {404, {1007, 1017, 1000, 1001, 1002, 1003, 1014, 1015, 1016, 1023, 1049, 1050, 1058, 1060, 1138, 1139, 1146, 1147, 1158, 1162, 1163, 1164, 1025, 1073, + 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1019, 1020, 1021, 1013, 1086}}, + {405, {1000, 1001, 1002, 1003, 1014, 1015, 1016, 1023, 1049, 1050, 1058, 1060, 1138, 1139, 1146, 1147, 1158, 1162, 1163, 1164, 1018, 1019, 1020, + 1021, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1086}}, + {407, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {408, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {409, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {410, {1007, 1017, 1001, 1003, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1019, 1020, 1021, 1013, 1024, 1086}}, + {411, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {412, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {413, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {414, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {415, {1007, 1017, 1001, 1003, 1023, 1018, 1019, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, + 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1086}}, + {416, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {418, {1006, 1002, 1016, 1020, 1021, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, + 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1086}}, + {419, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {420, {1004, 1005, 1001, 1003, 1019, 1021, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, + 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1086}}, + {421, {1000, 1014, 1016, 1023, 1018, 1019, 1020, 1021, 1025, 1073, 1074, 1075, 1076, 1077, 1078, + 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1086}}, + {422, {1007, 1017, 1086, 1019, 1020, 1021, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, + 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1013, 1087, 1008, 1009, 1010}}, + {423, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {424, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {426, {1001, 1003, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, + 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1004, 1005, 1006, 1019, 1021, 1086}}, + {427, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {428, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {429, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {431, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {432, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {433, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {434, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {436, {1007, 1017, 1001, 1003, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1006, 1019, 1020, 1021, 1022, 1013, 1086}}, + {437, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {438, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {439, {1142, 1143, 1144, 1145, 1001, 1003, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, + 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1013, 1086, 1007, 1017}}, + {440, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {441, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {442, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {443, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {445, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {451, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {455, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {456, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {457, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {458, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {459, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {466, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {467, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {470, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {474, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {475, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {477, {1006, 1086, 1018, 1019, 1020, 1021, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, + 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1007, 1017}}, + {478, {1012, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, + 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1004, 1005, 1020, 1021, 1022, 1013, 1024, 1086}}, + {479, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {480, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {482, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {483, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {485, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {486, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {489, {1000, 1002, 1016, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, + 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1004, 1005, 1006, 1018, 1019, 1020, 1013, 1024, 1086}}, + {490, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {491, {1007, 1017, 1003, 1014, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, + 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1018, 1019, 1020, 1021, 1086, 1142, 1143, 1144, 1145}}, + {492, {1004, 1005, 1006, 1000, 1016, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, + 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1086}}, + {494, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {495, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {496, {1011, 1142, 1143, 1001, 1002, 1003, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, + 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1006, 1019, 1020, 1086, 1007, 1017}}, + {498, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {499, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {500, {1086, 1019, 1020, 1021, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, + 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1013, 1024, 1087, 1008, 1009, 1010}}, + + {502, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {503, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {504, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {505, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {506, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {507, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {508, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {514, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {515, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {516, {1007, 1017, 1000, 1002, 1015, 1016, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1004, 1018, 1019, 1020, 1021, 1086}}, + {517, {1007, 1017, 1002, 1003, 1016, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1018, 1019, 1020, 1086, 1142, 1143, 1144, 1145}}, + {518, {1142, 1143, 1144, 1145, 1001, 1003, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1005, 1006, 1018, 1020, 1013, 1086, 1007, 1017}}, + {524, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {525, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {526, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {527, {1007, 1017, 1001, 1014, 1015, 1018, 1020, 1021, 1025, 1073, 1074, 1075, 1076, 1077, 1078, + 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1086}}, + {528, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {529, {1011, 1012, 1001, 1003, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1006, 1018, 1019, 1020, 1086, 1007, 1017}}, + {530, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {531, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {532, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {533, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {534, {1100, 1123, 1125, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, + 1097, 1098, 1008, 1009, 1010, 1087, 1179, 1185, 1126, 1127, 1178, 1180, 1086, 1101, 1106, 1122, 1124}}, + {535, {1118, 1119, 1120, 1121, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, + 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1115, 1116, 1117, 1113, 1114, 1086, 1109, 1110}}, + {536, {1107, 1108, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, + 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1181, 1182, 1103, 1128, 1104, 1105, 1183, 1184, 1086}}, + {540, {1142, 1143, 1144, 1145, 1001, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1004, 1006, 1018, 1019, 1020, 1024, 1086, 1007, 1017}}, + {541, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {542, {1144, 1145, 1014, 1015, 1018, 1019, 1020, 1021, 1025, 1073, 1074, 1075, 1076, 1077, 1078, + 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1086}}, + {543, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {545, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {546, {1142, 1143, 1144, 1145, 1001, 1002, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1004, 1006, 1018, 1019, 1024, 1086, 1007, 1017}}, + {547, {1142, 1143, 1000, 1003, 1016, 1018, 1019, 1020, 1021, 1025, 1073, 1074, 1075, 1076, 1077, 1078, + 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1086}}, + {549, {1007, 1017, 1001, 1003, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, + 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1018, 1019, 1020, 1086, 1011, 1012, 1142, 1143, 1144, 1145}}, + {550, {1142, 1143, 1144, 1145, 1001, 1003, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1004, 1005, 1006, 1018, 1019, 1020, 1086}}, + {551, {1002, 1003, 1016, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1005, 1006, 1018, 1019, 1020, 1021, 1086}}, + {552, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {554, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {555, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {558, {1090, 1093, 1094, 1095, 1163, 1164, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1165, 1166, 1088, 1091, 1089, 1092, 1167, 1168, 1086}}, + {559, {1069, 1070, 1071, 1072, 1158, 1162, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1160, 1173, 1067, 1068, 1065, 1066, 1159, 1161, 1086}}, + {560, {1026, 1027, 1030, 1031, 1138, 1139, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1169, 1170, 1032, 1033, 1028, 1029, 1140, 1141, 1086}}, + {561, {1056, 1057, 1062, 1063, 1058, 1060, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1155, 1157, 1055, 1061, 1059, 1064, 1154, 1156, 1086}}, + {562, {1036, 1039, 1040, 1041, 1146, 1147, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1171, 1172, 1035, 1038, 1034, 1037, 1148, 1149, 1086}}, + {564, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {565, {1047, 1048, 1051, 1052, 1049, 1050, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1152, 1153, 1053, 1054, 1045, 1046, 1150, 1151, 1086}}, + {566, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {567, {1102, 1133, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, + 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1188, 1189, 1130, 1131, 1129, 1132, 1186, 1187, 1086}}, + {568, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {571, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {572, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {574, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {575, {1042, 1099, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, + 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1174, 1175, 1043, 1044, 1176, 1177, 1086}}, + {576, {1134, 1137, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, + 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1190, 1191, 1135, 1136, 1192, 1193, 1086}}, + {578, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {579, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {580, {1007, 1017, 1001, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1006, 1018, 1020, 1086}}, + {582, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {583, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {585, {1142, 1143, 1144, 1145, 1001, 1003, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1006, 1018, 1019, 1020, 1013, 1086, 1007, 1017}}, + {587, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {588, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {589, {1144, 1145, 1000, 1016, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, + 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1004, 1005, 1006, 1018, 1020, 1013, 1024, 1086, 1007, 1017}}, + {594, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {596, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {597, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {598, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {599, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {600, {1007, 1017, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, + 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1004, 1005, 1006, 1018, 1020, 1022, 1013, 1086}}, + {601, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {602, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {603, {1142, 1143, 1144, 1145, 1001, 1023, 1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1087, 1006, 1018, 1019, 1020, 1024, 1086, 1007, 1017}}, + {604, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {605, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, + {609, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, +}; + +bool isUpgradeCompatibleWithModel(unsigned short model, unsigned short upgrade) +{ + if (const auto it = g_upgradesCompatiblityList.find(model); it != g_upgradesCompatiblityList.end()) + { + const UpgradeList& upgrades = it->second; + return std::any_of(upgrades.begin(), upgrades.end(), [&](unsigned short us) { return us == upgrade; }); + } + return false; +} From 38d96308148ce50c1aeb358896b0657052efafa8 Mon Sep 17 00:00:00 2001 From: znajder Date: Mon, 19 Feb 2024 21:52:40 +0100 Subject: [PATCH 2/5] Reimplement IsUpgradeCompatible function --- .../deathmatch/logic/CVehicleUpgrades.cpp | 312 +----------------- .../deathmatch/logic/CVehicleUpgrades.cpp | 237 +------------ 2 files changed, 15 insertions(+), 534 deletions(-) diff --git a/Client/mods/deathmatch/logic/CVehicleUpgrades.cpp b/Client/mods/deathmatch/logic/CVehicleUpgrades.cpp index da592b41ef1..16dbf63532f 100644 --- a/Client/mods/deathmatch/logic/CVehicleUpgrades.cpp +++ b/Client/mods/deathmatch/logic/CVehicleUpgrades.cpp @@ -10,6 +10,8 @@ #include +#include "VehicleUpgrades.h" + char szUpgradeNameEmpty[] = ""; struct SUpgradeName @@ -50,314 +52,18 @@ bool CVehicleUpgrades::IsUpgrade(unsigned short usModel) bool CVehicleUpgrades::IsUpgradeCompatible(unsigned short usUpgrade) { unsigned short us = usUpgrade; - eClientVehicleType vehicleType = m_pVehicle->GetVehicleType(); - - // No upgrades for trains/boats - if (vehicleType == CLIENTVEHICLE_TRAIN || vehicleType == CLIENTVEHICLE_BOAT) - return false; - - // In MTA every vehicle has a radio... - if (us == 1086) - return true; - - if (vehicleType == CLIENTVEHICLE_BIKE || vehicleType == CLIENTVEHICLE_BMX || vehicleType == CLIENTVEHICLE_HELI) - return false; - unsigned short usModel = m_pVehicle->GetModel(); - // Wheels should be compatible with any vehicle which have wheels, except - // bike/bmx (they're buggy). Vortex is technically a car, but it has no - // wheels. - if ((us == 1025 || us == 1073 || us == 1074 || us == 1075 || us == 1076 || us == 1077 || us == 1078 || us == 1079 || us == 1080 || us == 1081 || - us == 1082 || us == 1083 || us == 1084 || us == 1085 || us == 1096 || us == 1097 || us == 1098) && - usModel != 539) - return true; + eClientVehicleType vehicleType = m_pVehicle->GetVehicleType(); - // No nitro or other upgrades for planes - if (vehicleType == CLIENTVEHICLE_PLANE) + // No upgrades for trains/boats/bike/bmx/heli/plane + if (vehicleType == CLIENTVEHICLE_TRAIN || vehicleType == CLIENTVEHICLE_BOAT || vehicleType == CLIENTVEHICLE_BIKE || + vehicleType == CLIENTVEHICLE_BMX || vehicleType == CLIENTVEHICLE_HELI || vehicleType == CLIENTVEHICLE_PLANE) return false; - if (us == VEHICLEUPGRADE_NITRO_5X || us == VEHICLEUPGRADE_NITRO_2X || us == VEHICLEUPGRADE_NITRO_10X || us == VEHICLEUPGRADE_HYDRAULICS) - return true; - - bool bReturn = false; - switch (usModel) - { - case 400: - bReturn = (us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1013 || us == 1024 || us == 1008 || us == 1009 || us == 1010); - break; - case 401: - bReturn = (us == 1005 || us == 1004 || us == 1142 || us == 1143 || us == 1144 || us == 114 || us == 1020 || us == 1019 || us == 1013 || - us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1003 || us == 1017 || us == 1007); - break; - case 402: - bReturn = (us == 1009 || us == 1010); - break; - case 404: - bReturn = (us == 1020 || us == 1021 || us == 1019 || us == 1013 || us == 1008 || us == 1009 || us == 1010 || us == 1002 || us == 1016 || - us == 1000 || us == 1017 || us == 1007); - break; - case 405: - bReturn = (us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1001 || us == 1014 || - us == 1023 || us == 1000); - break; - case 409: - bReturn = (us == 1009); - break; - case 410: - bReturn = (us == 1019 || us == 1021 || us == 1020 || us == 1013 || us == 1024 || us == 1008 || us == 1009 || us == 1010 || us == 1001 || - us == 1023 || us == 1003 || us == 1017 || us == 1007); - break; - case 411: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 412: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 415: - bReturn = - (us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1001 || us == 1023 || us == 1003 || us == 1017 || us == 1007); - break; - case 418: - bReturn = (us == 1020 || us == 1021 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1002 || us == 1016); - break; - case 419: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 420: - bReturn = (us == 1005 || us == 1004 || us == 1021 || us == 1019 || us == 1008 || us == 1009 || us == 1010 || us == 1001 || us == 1003); - break; - case 421: - bReturn = (us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1014 || us == 1023 || - us == 1016 || us == 1000); - break; - case 422: - bReturn = (us == 1020 || us == 1021 || us == 1019 || us == 1013 || us == 1008 || us == 1009 || us == 1010 || us == 1017 || us == 1007); - break; - case 426: - bReturn = - (us == 1005 || us == 1004 || us == 1021 || us == 1019 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1003); - break; - case 429: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 436: - bReturn = (us == 1020 || us == 1021 || us == 1022 || us == 1019 || us == 1013 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || - us == 1001 || us == 1003 || us == 1017 || us == 1007); - break; - case 438: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 439: - bReturn = (us == 1003 || us == 1023 || us == 1001 || us == 1008 || us == 1009 || us == 1010 || us == 1017 || us == 1007 || us == 1142 || - us == 1143 || us == 1144 || us == 1145 || us == 1013); - break; - case 442: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 445: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 451: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 458: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 466: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 467: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 474: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 475: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 477: - bReturn = - (us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1017 || us == 1007); - break; - case 478: - bReturn = (us == 1005 || us == 1004 || us == 1012 || us == 1020 || us == 1021 || us == 1022 || us == 1013 || us == 1024 || us == 1008 || - us == 1009 || us == 1010); - break; - case 479: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 480: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 489: - bReturn = (us == 1005 || us == 1004 || us == 1020 || us == 1019 || us == 1018 || us == 1013 || us == 1024 || us == 1008 || us == 1009 || - us == 1010 || us == 1006 || us == 1002 || us == 1016 || us == 1000); - break; - case 491: - bReturn = (us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || - us == 1009 || us == 1010 || us == 1014 || us == 1023 || us == 1003 || us == 1017 || us == 1007); - break; - case 492: - bReturn = (us == 1005 || us == 1004 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1016 || us == 1000); - break; - case 496: - bReturn = (us == 1006 || us == 1017 || us == 1007 || us == 1011 || us == 1019 || us == 1023 || us == 1001 || us == 1008 || us == 1009 || - us == 1010 || us == 1003 || us == 1002 || us == 1142 || us == 1143 || us == 1020); - break; - case 500: - bReturn = (us == 1020 || us == 1021 || us == 1019 || us == 1013 || us == 1024 || us == 1008 || us == 1009 || us == 1010); - break; - case 506: - bReturn = (us == 1009); - break; - case 507: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 516: - bReturn = (us == 1004 || us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1002 || - us == 1015 || us == 1016 || us == 1000 || us == 1017 || us == 1007); - break; - case 517: - bReturn = (us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || - us == 1010 || us == 1002 || us == 1023 || us == 1016 || us == 1003 || us == 1017 || us == 1007); - break; - case 518: - bReturn = (us == 1005 || us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1018 || us == 1013 || us == 1008 || - us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1023 || us == 1003 || us == 1017 || us == 1007); - break; - case 526: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 527: - bReturn = (us == 1021 || us == 1020 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1001 || us == 1014 || us == 1015 || - us == 1017 || us == 1007); - break; - case 529: - bReturn = (us == 1012 || us == 1011 || us == 1020 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || - us == 1001 || us == 1023 || us == 1003 || us == 1017 || us == 1007); - break; - case 533: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 534: - bReturn = (us == 1126 || us == 1127 || us == 1179 || us == 1185 || us == 1100 || us == 1123 || us == 1125 || us == 1008 || us == 1009 || - us == 1010 || us == 1180 || us == 1178 || us == 1101 || us == 1122 || us == 1124 || us == 1106); - break; - case 535: - bReturn = (us == 1109 || us == 1110 || us == 1113 || us == 1114 || us == 1115 || us == 1116 || us == 1117 || us == 1008 || us == 1009 || - us == 1010 || us == 1120 || us == 1118 || us == 1121 || us == 1119); - break; - case 536: - bReturn = (us == 1104 || us == 1105 || us == 1182 || us == 1181 || us == 1008 || us == 1009 || us == 1010 || us == 1184 || us == 1183 || - us == 1128 || us == 1103 || us == 1107 || us == 1108); - break; - case 540: - bReturn = (us == 1004 || us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1019 || us == 1018 || us == 1024 || - us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1023 || us == 1017 || us == 1007); - break; - case 541: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 542: - bReturn = (us == 1144 || us == 1145 || us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || - us == 1014 || us == 1015); - break; - case 545: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 546: - bReturn = (us == 1004 || us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1019 || us == 1018 || us == 1024 || us == 1008 || - us == 1009 || us == 1010 || us == 1006 || us == 1002 || us == 1001 || us == 1023 || us == 1017 || us == 1007); - break; - case 547: - bReturn = (us == 1142 || us == 1143 || us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || - us == 1016 || us == 1003 || us == 1000); - break; - case 549: - bReturn = (us == 1012 || us == 1011 || us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1019 || us == 1018 || - us == 1008 || us == 1009 || us == 1010 || us == 1001 || us == 1023 || us == 1003 || us == 1017 || us == 1007); - break; - case 550: - bReturn = (us == 1005 || us == 1004 || us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1019 || us == 1018 || - us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1023 || us == 1003); - break; - case 551: - bReturn = (us == 1005 || us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || - us == 1002 || us == 1023 || us == 1016 || us == 1003); - break; - case 555: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 558: - bReturn = (us == 1092 || us == 1089 || us == 1166 || us == 1165 || us == 1008 || us == 1009 || us == 1010 || us == 1168 || us == 1167 || - us == 1088 || us == 1091 || us == 1164 || us == 1163 || us == 1094 || us == 1090 || us == 1095 || us == 1093); - break; - case 559: - bReturn = (us == 1065 || us == 1066 || us == 1160 || us == 1173 || us == 1008 || us == 1009 || us == 1010 || us == 1159 || us == 1161 || - us == 1162 || us == 1158 || us == 1067 || us == 1068 || us == 1071 || us == 1069 || us == 1072 || us == 1070); - break; - case 560: - bReturn = (us == 1028 || us == 1029 || us == 1169 || us == 1170 || us == 1008 || us == 1009 || us == 1010 || us == 1141 || us == 1140 || - us == 1032 || us == 1033 || us == 1138 || us == 1139 || us == 1027 || us == 1026 || us == 1030 || us == 1031); - break; - case 561: - bReturn = (us == 1064 || us == 1059 || us == 1155 || us == 1157 || us == 1008 || us == 1009 || us == 1010 || us == 1154 || us == 1156 || - us == 1055 || us == 1061 || us == 1058 || us == 1060 || us == 1062 || us == 1056 || us == 1063 || us == 1057); - break; - case 562: - bReturn = (us == 1034 || us == 1037 || us == 1171 || us == 1172 || us == 1008 || us == 1009 || us == 1010 || us == 1149 || us == 1148 || - us == 1038 || us == 1035 || us == 1147 || us == 1146 || us == 1040 || us == 1036 || us == 1041 || us == 1039); - break; - case 565: - bReturn = (us == 1046 || us == 1045 || us == 1153 || us == 1152 || us == 1008 || us == 1009 || us == 1010 || us == 1150 || us == 1151 || - us == 1054 || us == 1053 || us == 1049 || us == 1050 || us == 1051 || us == 1047 || us == 1052 || us == 1048); - break; - case 566: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 567: - bReturn = (us == 1129 || us == 1132 || us == 1189 || us == 1188 || us == 1008 || us == 1009 || us == 1010 || us == 1187 || us == 1186 || - us == 1130 || us == 1131 || us == 1102 || us == 1133); - break; - case 575: - bReturn = (us == 1044 || us == 1043 || us == 1174 || us == 1175 || us == 1008 || us == 1009 || us == 1010 || us == 1176 || us == 1177 || - us == 1099 || us == 1042); - break; - case 576: - bReturn = (us == 1136 || us == 1135 || us == 1191 || us == 1190 || us == 1008 || us == 1009 || us == 1010 || us == 1192 || us == 1193 || - us == 1137 || us == 1134); - break; - case 579: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 580: - bReturn = - (us == 1020 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1023 || us == 1017 || us == 1007); - break; - case 585: - bReturn = (us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1019 || us == 1018 || us == 1013 || us == 1008 || - us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1023 || us == 1003 || us == 1017 || us == 1007); - break; - case 587: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 589: - bReturn = (us == 1005 || us == 1004 || us == 1144 || us == 1145 || us == 1020 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || - us == 1024 || us == 1013 || us == 1006 || us == 1016 || us == 1000 || us == 1017 || us == 1007); - break; - case 600: - bReturn = (us == 1005 || us == 1004 || us == 1020 || us == 1022 || us == 1018 || us == 1013 || us == 1008 || us == 1009 || us == 1010 || - us == 1006 || us == 1017 || us == 1007); - break; - case 602: - bReturn = (us == 1008 || us == 1009 || us == 1010); - break; - case 603: - bReturn = (us == 1144 || us == 1145 || us == 1142 || us == 1143 || us == 1020 || us == 1019 || us == 1018 || us == 1024 || us == 1008 || - us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1023 || us == 1017 || us == 1007); - break; - } + bool bReturn = isUpgradeCompatibleWithModel(m_pVehicle->GetModel(), us); + unsigned char ucSlot = 0; + // Allow slot 2 to be upgraded regardless of ID and then check it has the required part if (GetSlotFromUpgrade(us, ucSlot) && (bReturn || ucSlot == 2)) { diff --git a/Server/mods/deathmatch/logic/CVehicleUpgrades.cpp b/Server/mods/deathmatch/logic/CVehicleUpgrades.cpp index 812afb12a11..740e8cecf5d 100644 --- a/Server/mods/deathmatch/logic/CVehicleUpgrades.cpp +++ b/Server/mods/deathmatch/logic/CVehicleUpgrades.cpp @@ -11,6 +11,7 @@ #include "StdInc.h" #include "CVehicleUpgrades.h" +#include "VehicleUpgrades.h" char szUpgradeNameEmpty[] = ""; @@ -55,240 +56,14 @@ CVehicleUpgrades::CVehicleUpgrades(CVehicle* pVehicle, CVehicleUpgrades* pUpgrad bool CVehicleUpgrades::IsUpgradeCompatible(unsigned short usUpgrade) { - unsigned short us = usUpgrade; - eVehicleType vehicleType = m_pVehicle->GetVehicleType(); + eVehicleType vehicleType = m_pVehicle->GetVehicleType(); - // No upgrades for trains/boats - if (vehicleType == VEHICLE_TRAIN || vehicleType == VEHICLE_BOAT) + // No upgrades for trains/boats/bike/bmx/heli/plane + if (vehicleType == VEHICLE_TRAIN || vehicleType == VEHICLE_BOAT || vehicleType == VEHICLE_BIKE || + vehicleType == VEHICLE_BMX || vehicleType == VEHICLE_HELI || vehicleType == VEHICLE_PLANE) return false; - // In MTA every vehicle has a radio... - if (us == 1086) - return true; - - if (vehicleType == VEHICLE_BIKE || vehicleType == VEHICLE_BMX || vehicleType == VEHICLE_HELI) - return false; - - unsigned short usModel = m_pVehicle->GetModel(); - // Wheels should be compatible with any vehicle which have wheels, except - // bike/bmx (they're buggy). Vortex is technically a car, but it has no - // wheels. - if ((us == 1025 || us == 1073 || us == 1074 || us == 1075 || us == 1076 || us == 1077 || us == 1078 || us == 1079 || us == 1080 || us == 1081 || - us == 1082 || us == 1083 || us == 1084 || us == 1085 || us == 1096 || us == 1097 || us == 1098) && - usModel != 539) - return true; - - // No nitro or other upgrades for planes/helicopters - if (vehicleType == VEHICLE_PLANE) - return false; - - if (us == VEHICLEUPGRADE_NITRO_5X || us == VEHICLEUPGRADE_NITRO_2X || us == VEHICLEUPGRADE_NITRO_10X || us == VEHICLEUPGRADE_HYDRAULICS) - return true; - - if (us == 1000 || us == 1001 || us == 1002 || us == 1003 || us == 1014 || /* spoiler */ - us == 1015 || us == 1016 || us == 1023 || us == 1049 || us == 1050 || us == 1058 || us == 1060 || us == 1138 || us == 1139 || us == 1146 || - us == 1147 || us == 1158 || us == 1162 || us == 1163 || us == 116) - { - return true; - } - - switch (usModel) - { - case 400: - return (us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1013 || us == 1024 || us == 1008 || us == 1009 || us == 1010); - case 401: - return (us == 1005 || us == 1004 || us == 1142 || us == 1143 || us == 1144 || us == 114 || us == 1020 || us == 1019 || us == 1013 || us == 1008 || - us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1003 || us == 1017 || us == 1007); - case 402: - return (us == 1009 || us == 1010); - case 404: - return (us == 1020 || us == 1021 || us == 1019 || us == 1013 || us == 1008 || us == 1009 || us == 1010 || us == 1002 || us == 1016 || us == 1000 || - us == 1017 || us == 1007); - case 405: - return (us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1001 || us == 1014 || us == 1023 || - us == 1000); - case 409: - return (us == 1009); - case 410: - return (us == 1019 || us == 1021 || us == 1020 || us == 1013 || us == 1024 || us == 1008 || us == 1009 || us == 1010 || us == 1001 || us == 1023 || - us == 1003 || us == 1017 || us == 1007); - case 411: - return (us == 1008 || us == 1009 || us == 1010); - case 412: - return (us == 1008 || us == 1009 || us == 1010); - case 415: - return (us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1001 || us == 1023 || us == 1003 || us == 1017 || us == 1007); - case 418: - return (us == 1020 || us == 1021 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1002 || us == 1016); - case 419: - return (us == 1008 || us == 1009 || us == 1010); - case 420: - return (us == 1005 || us == 1004 || us == 1021 || us == 1019 || us == 1008 || us == 1009 || us == 1010 || us == 1001 || us == 1003); - case 421: - return (us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1014 || us == 1023 || us == 1016 || - us == 1000); - case 422: - return (us == 1020 || us == 1021 || us == 1019 || us == 1013 || us == 1008 || us == 1009 || us == 1010 || us == 1017 || us == 1007); - case 426: - return (us == 1005 || us == 1004 || us == 1021 || us == 1019 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1003); - case 429: - return (us == 1008 || us == 1009 || us == 1010); - case 436: - return (us == 1020 || us == 1021 || us == 1022 || us == 1019 || us == 1013 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1001 || - us == 1003 || us == 1017 || us == 1007); - case 438: - return (us == 1008 || us == 1009 || us == 1010); - case 439: - return (us == 1003 || us == 1023 || us == 1001 || us == 1008 || us == 1009 || us == 1010 || us == 1017 || us == 1007 || us == 1142 || us == 1143 || - us == 1144 || us == 1145 || us == 1013); - case 442: - return (us == 1008 || us == 1009 || us == 1010); - case 445: - return (us == 1008 || us == 1009 || us == 1010); - case 451: - return (us == 1008 || us == 1009 || us == 1010); - case 458: - return (us == 1008 || us == 1009 || us == 1010); - case 466: - return (us == 1008 || us == 1009 || us == 1010); - case 467: - return (us == 1008 || us == 1009 || us == 1010); - case 474: - return (us == 1008 || us == 1009 || us == 1010); - case 475: - return (us == 1008 || us == 1009 || us == 1010); - case 477: - return (us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1017 || us == 1007); - case 478: - return (us == 1005 || us == 1004 || us == 1012 || us == 1020 || us == 1021 || us == 1022 || us == 1013 || us == 1024 || us == 1008 || us == 1009 || - us == 1010); - case 479: - return (us == 1008 || us == 1009 || us == 1010); - case 480: - return (us == 1008 || us == 1009 || us == 1010); - case 489: - return (us == 1005 || us == 1004 || us == 1020 || us == 1019 || us == 1018 || us == 1013 || us == 1024 || us == 1008 || us == 1009 || us == 1010 || - us == 1006 || us == 1002 || us == 1016 || us == 1000); - case 491: - return (us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || - us == 1010 || us == 1014 || us == 1023 || us == 1003 || us == 1017 || us == 1007); - case 492: - return (us == 1005 || us == 1004 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1016 || us == 1000); - case 496: - return (us == 1006 || us == 1017 || us == 1007 || us == 1011 || us == 1019 || us == 1023 || us == 1001 || us == 1008 || us == 1009 || us == 1010 || - us == 1003 || us == 1002 || us == 1142 || us == 1143 || us == 1020); - case 500: - return (us == 1020 || us == 1021 || us == 1019 || us == 1013 || us == 1024 || us == 1008 || us == 1009 || us == 1010); - case 506: - return (us == 1009); - case 507: - return (us == 1008 || us == 1009 || us == 1010); - case 516: - return (us == 1004 || us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1002 || us == 1015 || - us == 1016 || us == 1000 || us == 1017 || us == 1007); - case 517: - return (us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || - us == 1002 || us == 1023 || us == 1016 || us == 1003 || us == 1017 || us == 1007); - case 518: - return (us == 1005 || us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1018 || us == 1013 || us == 1008 || us == 1009 || - us == 1010 || us == 1006 || us == 1001 || us == 1023 || us == 1003 || us == 1017 || us == 1007); - case 526: - return (us == 1008 || us == 1009 || us == 1010); - case 527: - return (us == 1021 || us == 1020 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1001 || us == 1014 || us == 1015 || us == 1017 || - us == 1007); - case 529: - return (us == 1012 || us == 1011 || us == 1020 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1001 || - us == 1023 || us == 1003 || us == 1017 || us == 1007); - case 533: - return (us == 1008 || us == 1009 || us == 1010); - case 534: - return (us == 1126 || us == 1127 || us == 1179 || us == 1185 || us == 1100 || us == 1123 || us == 1125 || us == 1008 || us == 1009 || us == 1010 || - us == 1180 || us == 1178 || us == 1101 || us == 1122 || us == 1124 || us == 1106); - case 535: - return (us == 1109 || us == 1110 || us == 1113 || us == 1114 || us == 1115 || us == 1116 || us == 1117 || us == 1008 || us == 1009 || us == 1010 || - us == 1120 || us == 1118 || us == 1121 || us == 1119); - case 536: - return (us == 1104 || us == 1105 || us == 1182 || us == 1181 || us == 1008 || us == 1009 || us == 1010 || us == 1184 || us == 1183 || us == 1128 || - us == 1103 || us == 1107 || us == 1108); - case 540: - return (us == 1004 || us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1019 || us == 1018 || us == 1024 || us == 1008 || - us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1023 || us == 1017 || us == 1007); - case 541: - return (us == 1008 || us == 1009 || us == 1010); - case 542: - return (us == 1144 || us == 1145 || us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1014 || - us == 1015); - case 545: - return (us == 1008 || us == 1009 || us == 1010); - case 546: - return (us == 1004 || us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1019 || us == 1018 || us == 1024 || us == 1008 || us == 1009 || - us == 1010 || us == 1006 || us == 1002 || us == 1001 || us == 1023 || us == 1017 || us == 1007); - case 547: - return (us == 1142 || us == 1143 || us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1016 || - us == 1003 || us == 1000); - case 549: - return (us == 1012 || us == 1011 || us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1019 || us == 1018 || us == 1008 || - us == 1009 || us == 1010 || us == 1001 || us == 1023 || us == 1003 || us == 1017 || us == 1007); - case 550: - return (us == 1005 || us == 1004 || us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1019 || us == 1018 || us == 1008 || - us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1023 || us == 1003); - case 551: - return (us == 1005 || us == 1020 || us == 1021 || us == 1019 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1002 || - us == 1023 || us == 1016 || us == 1003); - case 555: - return (us == 1008 || us == 1009 || us == 1010); - case 558: - return (us == 1092 || us == 1089 || us == 1166 || us == 1165 || us == 1008 || us == 1009 || us == 1010 || us == 1168 || us == 1167 || us == 1088 || - us == 1091 || us == 1164 || us == 1163 || us == 1094 || us == 1090 || us == 1095 || us == 1093); - case 559: - return (us == 1065 || us == 1066 || us == 1160 || us == 1173 || us == 1008 || us == 1009 || us == 1010 || us == 1159 || us == 1161 || us == 1162 || - us == 1158 || us == 1067 || us == 1068 || us == 1071 || us == 1069 || us == 1072 || us == 1070); - case 560: - return (us == 1028 || us == 1029 || us == 1169 || us == 1170 || us == 1008 || us == 1009 || us == 1010 || us == 1141 || us == 1140 || us == 1032 || - us == 1033 || us == 1138 || us == 1139 || us == 1027 || us == 1026 || us == 1030 || us == 1031); - case 561: - return (us == 1064 || us == 1059 || us == 1155 || us == 1157 || us == 1008 || us == 1009 || us == 1010 || us == 1154 || us == 1156 || us == 1055 || - us == 1061 || us == 1058 || us == 1060 || us == 1062 || us == 1056 || us == 1063 || us == 1057); - case 562: - return (us == 1034 || us == 1037 || us == 1171 || us == 1172 || us == 1008 || us == 1009 || us == 1010 || us == 1149 || us == 1148 || us == 1038 || - us == 1035 || us == 1147 || us == 1146 || us == 1040 || us == 1036 || us == 1041 || us == 1039); - case 565: - return (us == 1046 || us == 1045 || us == 1153 || us == 1152 || us == 1008 || us == 1009 || us == 1010 || us == 1150 || us == 1151 || us == 1054 || - us == 1053 || us == 1049 || us == 1050 || us == 1051 || us == 1047 || us == 1052 || us == 1048); - case 566: - return (us == 1008 || us == 1009 || us == 1010); - case 567: - return (us == 1129 || us == 1132 || us == 1189 || us == 1188 || us == 1008 || us == 1009 || us == 1010 || us == 1187 || us == 1186 || us == 1130 || - us == 1131 || us == 1102 || us == 1133); - case 575: - return (us == 1044 || us == 1043 || us == 1174 || us == 1175 || us == 1008 || us == 1009 || us == 1010 || us == 1176 || us == 1177 || us == 1099 || - us == 1042); - case 576: - return (us == 1136 || us == 1135 || us == 1191 || us == 1190 || us == 1008 || us == 1009 || us == 1010 || us == 1192 || us == 1193 || us == 1137 || - us == 1134); - case 579: - return (us == 1008 || us == 1009 || us == 1010); - case 580: - return (us == 1020 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || us == 1001 || us == 1023 || us == 1017 || us == 1007); - case 585: - return (us == 1142 || us == 1143 || us == 1144 || us == 1145 || us == 1020 || us == 1019 || us == 1018 || us == 1013 || us == 1008 || us == 1009 || - us == 1010 || us == 1006 || us == 1001 || us == 1023 || us == 1003 || us == 1017 || us == 1007); - case 587: - return (us == 1008 || us == 1009 || us == 1010); - case 589: - return (us == 1005 || us == 1004 || us == 1144 || us == 1145 || us == 1020 || us == 1018 || us == 1008 || us == 1009 || us == 1010 || us == 1024 || - us == 1013 || us == 1006 || us == 1016 || us == 1000 || us == 1017 || us == 1007); - case 600: - return (us == 1005 || us == 1004 || us == 1020 || us == 1022 || us == 1018 || us == 1013 || us == 1008 || us == 1009 || us == 1010 || us == 1006 || - us == 1017 || us == 1007); - case 602: - return (us == 1008 || us == 1009 || us == 1010); - case 603: - return (us == 1144 || us == 1145 || us == 1142 || us == 1143 || us == 1020 || us == 1019 || us == 1018 || us == 1024 || us == 1008 || us == 1009 || - us == 1010 || us == 1006 || us == 1001 || us == 1023 || us == 1017 || us == 1007); - } - return false; + return isUpgradeCompatibleWithModel(m_pVehicle->GetModel(), usUpgrade); } bool CVehicleUpgrades::GetSlotFromUpgrade(unsigned short us, unsigned char& ucSlot) From 5685b1f0fa909d419fee7a3fe2e800ff70ea3657 Mon Sep 17 00:00:00 2001 From: Kamil Schneider Date: Mon, 19 Feb 2024 22:01:36 +0100 Subject: [PATCH 3/5] Update VehicleUpgrades.h Addenum to 38d9630 --- Shared/gta/VehicleUpgrades.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Shared/gta/VehicleUpgrades.h b/Shared/gta/VehicleUpgrades.h index b92b9bfe94b..b8d592c561a 100644 --- a/Shared/gta/VehicleUpgrades.h +++ b/Shared/gta/VehicleUpgrades.h @@ -2,7 +2,7 @@ * * PROJECT: Multi Theft Auto * LICENSE: See LICENSE in the top level directory - * PURPOSE: Data file containing nodes positions for default train tracks + * PURPOSE: Data file containing vehicle upgrades * * Multi Theft Auto is available from http://www.multitheftauto.com/ * From e8addd11512893a5fed1ada3af464bbc500a23ae Mon Sep 17 00:00:00 2001 From: znajder Date: Tue, 20 Feb 2024 18:39:48 +0100 Subject: [PATCH 4/5] Rename file extension to hpp --- Shared/gta/{VehicleUpgrades.h => VehicleUpgrades.hpp} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename Shared/gta/{VehicleUpgrades.h => VehicleUpgrades.hpp} (99%) diff --git a/Shared/gta/VehicleUpgrades.h b/Shared/gta/VehicleUpgrades.hpp similarity index 99% rename from Shared/gta/VehicleUpgrades.h rename to Shared/gta/VehicleUpgrades.hpp index b8d592c561a..29ce313255c 100644 --- a/Shared/gta/VehicleUpgrades.h +++ b/Shared/gta/VehicleUpgrades.hpp @@ -212,7 +212,7 @@ static const std::unordered_map g_upgradesCompatibl {609, {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098, 1008, 1009, 1010, 1086, 1087}}, }; -bool isUpgradeCompatibleWithModel(unsigned short model, unsigned short upgrade) +inline bool IsUpgradeCompatibleWithModel(unsigned short model, unsigned short upgrade) { if (const auto it = g_upgradesCompatiblityList.find(model); it != g_upgradesCompatiblityList.end()) { From 5fca8e19b87a07b5aae0f2dc929eec090781f55c Mon Sep 17 00:00:00 2001 From: znajder Date: Tue, 20 Feb 2024 18:42:50 +0100 Subject: [PATCH 5/5] Uppercase function names, 'us' to 'usupgrade' renaming --- Client/mods/deathmatch/logic/CVehicleUpgrades.cpp | 13 +++++-------- Server/mods/deathmatch/logic/CVehicleUpgrades.cpp | 4 ++-- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/Client/mods/deathmatch/logic/CVehicleUpgrades.cpp b/Client/mods/deathmatch/logic/CVehicleUpgrades.cpp index 16dbf63532f..79221376a51 100644 --- a/Client/mods/deathmatch/logic/CVehicleUpgrades.cpp +++ b/Client/mods/deathmatch/logic/CVehicleUpgrades.cpp @@ -9,8 +9,7 @@ *****************************************************************************/ #include - -#include "VehicleUpgrades.h" +#include "VehicleUpgrades.hpp" char szUpgradeNameEmpty[] = ""; @@ -51,8 +50,6 @@ bool CVehicleUpgrades::IsUpgrade(unsigned short usModel) bool CVehicleUpgrades::IsUpgradeCompatible(unsigned short usUpgrade) { - unsigned short us = usUpgrade; - eClientVehicleType vehicleType = m_pVehicle->GetVehicleType(); // No upgrades for trains/boats/bike/bmx/heli/plane @@ -60,12 +57,12 @@ bool CVehicleUpgrades::IsUpgradeCompatible(unsigned short usUpgrade) vehicleType == CLIENTVEHICLE_BMX || vehicleType == CLIENTVEHICLE_HELI || vehicleType == CLIENTVEHICLE_PLANE) return false; - bool bReturn = isUpgradeCompatibleWithModel(m_pVehicle->GetModel(), us); + bool bReturn = IsUpgradeCompatibleWithModel(m_pVehicle->GetModel(), usUpgrade); unsigned char ucSlot = 0; // Allow slot 2 to be upgraded regardless of ID and then check it has the required part - if (GetSlotFromUpgrade(us, ucSlot) && (bReturn || ucSlot == 2)) + if (GetSlotFromUpgrade(usUpgrade, ucSlot) && (bReturn || ucSlot == 2)) { // Get our model supported upgrades SVehicleSupportedUpgrades supportedUpgrades = m_pVehicle->GetModelInfo()->GetVehicleSupportedUpgrades(); @@ -77,7 +74,7 @@ bool CVehicleUpgrades::IsUpgradeCompatible(unsigned short usUpgrade) { if (supportedUpgrades.m_bBonnet == true) { - if (us == 1142 || us == 1144) + if (usUpgrade == 1142 || usUpgrade == 1144) { // We add both left and right for some reason seems to be SA doing it bReturn &= supportedUpgrades.m_bBonnet_Left; @@ -86,7 +83,7 @@ bool CVehicleUpgrades::IsUpgradeCompatible(unsigned short usUpgrade) bReturn &= supportedUpgrades.m_bBonnet_Right; bReturn &= supportedUpgrades.m_bBonnet_Right_dam; } - else if (us == 1004 || us == 1005 || us == 1011 || us == 1012) + else if (usUpgrade == 1004 || usUpgrade == 1005 || usUpgrade == 1011 || usUpgrade == 1012) { // Just needs m_bBonnet bReturn = true; diff --git a/Server/mods/deathmatch/logic/CVehicleUpgrades.cpp b/Server/mods/deathmatch/logic/CVehicleUpgrades.cpp index 740e8cecf5d..53d3f702508 100644 --- a/Server/mods/deathmatch/logic/CVehicleUpgrades.cpp +++ b/Server/mods/deathmatch/logic/CVehicleUpgrades.cpp @@ -11,7 +11,7 @@ #include "StdInc.h" #include "CVehicleUpgrades.h" -#include "VehicleUpgrades.h" +#include "VehicleUpgrades.hpp" char szUpgradeNameEmpty[] = ""; @@ -63,7 +63,7 @@ bool CVehicleUpgrades::IsUpgradeCompatible(unsigned short usUpgrade) vehicleType == VEHICLE_BMX || vehicleType == VEHICLE_HELI || vehicleType == VEHICLE_PLANE) return false; - return isUpgradeCompatibleWithModel(m_pVehicle->GetModel(), usUpgrade); + return IsUpgradeCompatibleWithModel(m_pVehicle->GetModel(), usUpgrade); } bool CVehicleUpgrades::GetSlotFromUpgrade(unsigned short us, unsigned char& ucSlot)