Page MenuHomeFeedback Tracker

Some CfgVehicles magazines[] values differ in case from CfgMagazine entries
New, WishlistPublic

Description

Some vehicles' magazines[] values within CfgVehicles have a (lower/upper) case that differs from the associated CfgMagazines entries. This usually goes unnoticed, since the '>>' operator is not case-sensitive, but checking array-membership via 'in' will fail.

Example (notice the "belt"/"Belt"):
CfgVehicles/MBT_01_base_F/Turrets/MainTurret/magazines[] = { "2000Rnd_65x39_belt", ... }
vs.
CfgMagazines/2000Rnd_65x39_Belt

Without this knowledge this takes a significant time to debug since 'in' fails for no apparent reason.

How to fix: Use case from CfgMagazines for CfgVehicles/**/magazines[]. {F25315}

Details

Legacy ID
84013614
Severity
None
Resolution
Open
Reproducibility
N/A
Category
Config
Steps To Reproduce
  1. Run attached script and look at its return value.
  2. If in doubt, check the config viewer.
Additional Information

Stripped output of attached script:
[
"CfgVehicles/GMG_TriPod/Turrets/MainTurret/magazines",["fakeMagazine","CfgMagazines/FakeMagazine"],
"CfgVehicles/GMG_01_base_F/Turrets/MainTurret/magazines",["40Rnd_20mm_g_belt","CfgMagazines/40Rnd_20mm_G_belt"],
"CfgVehicles/B_GMG_01_F/Turrets/MainTurret/magazines",["40Rnd_20mm_g_belt","CfgMagazines/40Rnd_20mm_G_belt"],
"CfgVehicles/O_GMG_01_F/Turrets/MainTurret/magazines",["40Rnd_20mm_g_belt","CfgMagazines/40Rnd_20mm_G_belt"],
"CfgVehicles/I_GMG_01_F/Turrets/MainTurret/magazines",["40Rnd_20mm_g_belt","CfgMagazines/40Rnd_20mm_G_belt"],
"CfgVehicles/GMG_01_high_base_F/Turrets/MainTurret/magazines",["40Rnd_20mm_g_belt","CfgMagazines/40Rnd_20mm_G_belt"],
"CfgVehicles/B_GMG_01_high_F/Turrets/MainTurret/magazines",["40Rnd_20mm_g_belt","CfgMagazines/40Rnd_20mm_G_belt"],
"CfgVehicles/O_GMG_01_high_F/Turrets/MainTurret/magazines",["40Rnd_20mm_g_belt","CfgMagazines/40Rnd_20mm_G_belt"],
"CfgVehicles/I_GMG_01_high_F/Turrets/MainTurret/magazines",["40Rnd_20mm_g_belt","CfgMagazines/40Rnd_20mm_G_belt"],
"CfgVehicles/GMG_01_A_base_F/Turrets/MainTurret/magazines",["40Rnd_20mm_g_belt","CfgMagazines/40Rnd_20mm_G_belt"],
"CfgVehicles/B_GMG_01_A_F/Turrets/MainTurret/magazines",["40Rnd_20mm_g_belt","CfgMagazines/40Rnd_20mm_G_belt"],
"CfgVehicles/O_GMG_01_A_F/Turrets/MainTurret/magazines",["40Rnd_20mm_g_belt","CfgMagazines/40Rnd_20mm_G_belt"],
"CfgVehicles/I_GMG_01_A_F/Turrets/MainTurret/magazines",["40Rnd_20mm_g_belt","CfgMagazines/40Rnd_20mm_G_belt"],
"CfgVehicles/APC_Tracked_01_base_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/B_APC_Tracked_01_base_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/B_APC_Tracked_01_CRV_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/APC_Tracked_02_base_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/O_APC_Tracked_02_base_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/MBT_01_base_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/B_MBT_01_base_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/B_MBT_01_cannon_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/Boat_Armed_01_minigun_base_F/Turrets/RearTurret/magazines",["2000Rnd_65x39_belt_Tracer_Red","CfgMagazines/2000Rnd_65x39_Belt_Tracer_Red"],
"CfgVehicles/B_Boat_Armed_01_minigun_F/Turrets/RearTurret/magazines",["2000Rnd_65x39_belt_Tracer_Red","CfgMagazines/2000Rnd_65x39_Belt_Tracer_Red"],
"CfgVehicles/I_Boat_Armed_01_minigun_F/Turrets/RearTurret/magazines",["2000Rnd_65x39_belt_Tracer_Red","CfgMagazines/2000Rnd_65x39_Belt_Tracer_Red"],
"CfgVehicles/APC_Wheeled_01_base_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/B_APC_Wheeled_01_base_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/B_APC_Wheeled_01_cannon_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/B_MBT_01_TUSK_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/APC_Wheeled_03_base_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"],
"CfgVehicles/I_APC_Wheeled_03_base_F/Turrets/MainTurret/magazines",["2000Rnd_65x39_belt","CfgMagazines/2000Rnd_65x39_Belt"]
]

Event Timeline

Actium edited Steps To Reproduce. (Show Details)Dec 27 2014, 9:39 AM
Actium edited Additional Information. (Show Details)
Actium set Category to Config.
Actium set Reproducibility to N/A.
Actium set Severity to None.
Actium set Resolution to Open.
Actium set Legacy ID to 84013614.May 7 2016, 8:01 PM

Safe coding would be toLower all strings where necessary.

Actium added a subscriber: Actium.May 7 2016, 8:01 PM

Or to rely on 'configName (configFile >> "CfgMagazines" >> _x)' instead of 'toLower _x' as I do, since I want to preserve the case for pretty printing purposes.
IMHO simply everything should have been case-sensitive from the start (including the '>>' operator), which would prevent issues like this one. Just one of the many rough edeges of SQF.