It seems like the inventory system has a bug when trying to fetch the object's inventory pictures.
It appears it uses some hardcoded naming schema, instead of using purely the path defined in the picture config definition. {F19016} {F19017} {F19018} {F19019} {F19020}
Description
Details
- Legacy ID
- 241748460
- Severity
- None
- Resolution
- Not A Bug
- Reproducibility
- Always
- Category
- Inventory
1 Editor
2 Stratis
3 Load attached mission
4 Start
5 Check content of ammo box below player
6 On screen error/errors in logs
To test with A2/OA content run AiA alongside:
https://dev-heaven.net/projects/all-in-arma/wiki
Samples for A3:
Warning Message: Picture \a3\characters_f\data\ui\icon_h_cap_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_h_pilothelmetfighter_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_chestrig_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_harnesso_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_harnessogl_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_plate_carrier_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_tacvest_x_ca.paa not found
Warning Message: Picture \a3\weapons_f\data\ui\gear_acca_snds_x_ca.paa not found
Warning Message: Picture \a3\weapons_f\data\ui\gear_acca_snds_x_mg.paa not found
Warning Message: Picture \a3\weapons_f\data\ui\gear_acco_x_ca.paa not found
Warning Message: Picture \a3\weapons_f\data\ui\gear_item_x_ca.paa not found
Warning Message: Picture \a3\weapons_f\data\ui\gear_x_ca.paa not found
The paa are present, the picture definitions are correct.
The _x indicate a failed search/generic search pattern.
Event Timeline
well it is not a bug, but the feature ;-) The motivation for implementing specific name schema was the fact, the we also have to show items linked on a weapon. So we decided to implementing a filename rule for weapons. Here is the copy-pasted documentation from code:
// we have to split "\A3\weapons_F\Data\UI\gear_mk20_x_CA.paa" // // to "\A3\weapons_F\Data\UI\gear_mk20_" and "_CA.paa" // and after that we have to add addition flags // based on weapon linked items // // e.g. mk20 has optics and muzzle // // so we will add 'T' - top and 'M' - muzzle // // and final string will be // // "\A3\weapons_F\Data\UI\gear_mk20_MT_CA.paa" // // order of flags is MST // M - muzzle item // S - flashlight item // T - optics item // X - show weapon only
so it means that you have to create all graphical combinations of weapons with linked items _X_ _M_ _MS_ _MST_ _S_ _ST_ _T_ and or _X_ only if you do not need to show weapon icon with linked items
Thanks a lot japapatramtara!
Still a bit confused - from what I understand the WeaponSlotsInfo definition is the deciding factor (in normal cases?).
- Yet for A3 core content there is also warnings for uniforms/vests/helmets and for others not - how so/what's the naming schema there?
Warning Message: Picture \a3\characters_f\data\ui\icon_h_cap_khaki_specops_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_h_cap_patrol_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_h_cap_tan_specops_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_h_cap_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_h_crew_helmet_heli_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_h_pilot_helmet_heli_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_h_pilothelmetfighter_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_u_ir_officer_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_bandollier_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_chestrig_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_fchestrig_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_harnesso_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_harnessogl_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_plate_carrier_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_tacvest_x_ca.paa not found
Warning Message: Picture \a3\characters_f\data\ui\icon_v_tacvestir_x_ca.paa not found
Warning Message: Picture \a3\characters_f_beta\data\ui\icon_v_bandolier_x_ca.paa not found
Warning Message: Picture \a3\characters_f_beta\data\ui\icon_v_i_vest_x_ca.paa not found
Warning Message: Picture \a3\characters_f_gamma\guerrilla\data\ui\icon_u_g_guerrilla1_x_ca.paa not found
Warning Message: Picture \a3\characters_f_gamma\guerrilla\data\ui\icon_u_g_guerrilla2_x_ca.paa not found
Warning Message: Picture \a3\characters_f_gamma\guerrilla\data\ui\icon_u_g_guerrilla3_x_ca.paa not found
Warning Message: Picture \a3\drones_f\weapons_f_gamma\items\data\ui\gear_uav_controller_x_ca.paa not found
- Also _x_ seems required as part of the picture file definition - however A3 has some exceptions:
class DetectorCore: Default
picture = "\A3\Weapons_F\Data\UI\m_satchel_CA.paa";
class MineDetector: DetectorCore
picture = "\A3\Weapons_F\Items\data\UI\gear_MineDetector_CA.paa";
class ItemCore: Default
picture = "\A3\Weapons_F\Data\clear_empty.paa";
class ItemWatch: ItemCore
picture = "\A3\Weapons_F\Data\UI\gear_item_watch_ca.paa";
class ItemCompass: ItemCore
picture = "\A3\Weapons_F\Data\UI\gear_item_compass_ca.paa";
class ItemGPS: ItemCore
picture = "\A3\Weapons_F\Data\UI\gear_item_gps_CA.paa";
class ItemRadio: ItemCore
picture = "\A3\Weapons_F\Data\UI\gear_item_radio_ca.paa";
class ItemMap: ItemCore
picture = "\A3\Weapons_F\Data\UI\gear_item_map_ca.paa";
class FirstAidKit: ItemCore
picture = "\A3\Weapons_F\Items\data\UI\gear_FirstAidKit_CA.paa";
class Medikit: ItemCore
picture = "\A3\Weapons_F\Items\data\UI\gear_Medikit_CA.paa";
class ToolKit: ItemCore
picture = "\A3\Weapons_F\Items\data\UI\gear_Toolkit_CA.paa";
class Binocular: Default
picture = "\A3\Weapons_F\Data\UI\gear_binoculars_CA.paa";
class Rangefinder: Binocular
picture = "\A3\Weapons_F\Data\UI\gear_rangefinder_CA.paa";
class NVGoggles: Binocular
picture = "\A3\Weapons_F\Data\UI\gear_nvg_CA.paa";
class launch_NLAW_F: Launcher_Base_F
picture = "\A3\weapons_f\launchers\nlaw\data\UI\gear_nlaw_ca.paa";
class Laserdesignator: Binocular
picture = "\A3\Weapons_F\Data\UI\gear_lasermarker_CA.paa";
class launch_Titan_base: Launcher_Base_F
picture = "\A3\Weapons_F_Beta\Launchers\Titan\Data\UI\gear_titan_CA.paa";
class launch_Titan_short_base: launch_Titan_base
picture = "\A3\Weapons_F_Beta\Launchers\Titan\Data\UI\gear_titan_short_CA.paa";
Why is that so?
- There are also warnings for optics, and for most not - why is that?
Warning Message: Picture \a3\weapons_f\data\ui\gear_acca_snds_x_ca.paa not found
Warning Message: Picture \a3\weapons_f\data\ui\gear_acca_snds_x_mg.paa not found
Warning Message: Picture \a3\weapons_f\data\ui\gear_acco_x_ca.paa not found
Warning Message: Picture \a3\weapons_f\data\ui\gear_item_x_ca.paa not found
Warning Message: Picture \a3\weapons_f\data\ui\gear_x_ca.paa not found
Warning Message: Picture \a3\weapons_f_epa\acc\data\ui\gear_acco_x_ca.paa not found
- Would it be possible to add the class naming to the warning message please.
This would speed up locating the faulty definition a good deal.
The other problem I have with non A3 content the behavior seems inconsistent to me, or more correct something else WeaponSlotsInfo seems to also trigger the naming schema, while most pre A3 content works fine.
For example I get (only) these for IronFront:
Warning Message: Picture \lib\weapons\binoculars\data\equip\w_binocular_x_ca.paa not found
Warning Message: Picture \lib\weapons\k98\data\equip\w_x_ca.paa not found
Warning Message: Picture \lib\weapons\p38\data\equip\w_x_ca.paa not found
And these for CO:
Warning Message: Picture \ca\weapons\ak\data\equip\w_ak107_gl_x_ca.paa not found
Warning Message: Picture \ca\weapons\ak\data\equip\w_ak107_x_ca.paa not found
Warning Message: Picture \ca\weapons\ak\data\equip\w_rpk_x_ca.paa not found
Warning Message: Picture \ca\weapons\ak\data\equip\w_x_ca.paa not found
Warning Message: Picture \ca\weapons\data\equip\w_hkm5_x_ca.paa not found
Warning Message: Picture \ca\weapons\data\equip\w_m16a4_acg_x_ca.paa not found
Warning Message: Picture \ca\weapons\data\equip\w_m16a4_x_ca.paa not found
Warning Message: Picture \ca\weapons\data\equip\w_m4a1_aim_x_camo.paa not found
Warning Message: Picture \ca\weapons\data\equip\w_m4a1_x_camo.paa not found
Warning Message: Picture \ca\weapons\data\equip\w_pecheneg_x_ca.paa not found
Warning Message: Picture \ca\weapons\data\equip\w_us_x_ca.paa not found
Warning Message: Picture \ca\weapons\data\equip\w_x_ca.paa not found
Warning Message: Picture \ca\weapons\g36\data\equip\w_x_ca.paa not found
Warning Message: Picture \ca\weapons_baf\data\ui\as50_x_ca.paa not found
Warning Message: Picture \ca\weapons_baf\data\ui\l110a1_x_ca.paa not found
Warning Message: Picture \ca\weapons_baf\data\ui\l85a2_ris_x_ca.paa not found
Warning Message: Picture \ca\weapons_e\data\icons\m107_x_ca.paa not found
Warning Message: Picture \ca\weapons_e\data\icons\m110_x_ca.paa not found
Warning Message: Picture \ca\weapons_e\data\icons\m24_x_ca.paa not found
Warning Message: Picture \ca\weapons_e\data\icons\m249_x_ca.paa not found
Warning Message: Picture \ca\weapons_e\data\icons\m4a3_rco_x_ca.paa not found
Warning Message: Picture \ca\weapons_e\data\icons\m4a3_x_ca.paa not found
Warning Message: Picture \ca\weapons_pmc\data\ui\as50_x_ca.paa not found
Warning Message: Picture \ca\weapons_pmc\data\ui\w_x_ca.paa not found
Warning Message: Picture \ca\weapons_pmc\data\ui\w_xm8_compact_x_ca.paa not found
Warning Message: Picture \ca\weapons_pmc\data\ui\w_xm8_x_ca.paa not found
Could it be about muzzles[] definitions?
As I said, it is depend on item which is currently linked to the weapon. So WeaponSlotsInfo affects nothing in this case.
It is so easy>
imagine a situation when you currently have an empty linked gun like mk20
so gear code will try to find this icon:
"\A3\weapons_F\Data\UI\gear_mk20_X_CA.paa"
then you link some accessory e.g. optics and the result is that now gear code will get icon file for empty prototype
"\A3\weapons_F\Data\UI\gear_mk20_X_CA.paa"
then will cutoff "_X_" by replacing with "_T_" and final filename which should be present on disk will be
"\A3\weapons_F\Data\UI\gear_mk20_T_CA.paa"
about Warning messages, could you post a concrete repro like put soldierXY into editor, link vestYX or something like that?
and about map, radio, compass, etc.. these are common items not weapons so you do not have to apply same name schema as with weapons
currently linked
Ok got it.
these are common items
so it depends on simulation of the given weapon class?
could you post a concrete repro
hm these are in the top.
dont let yourself confused with the AiA part - to see the issues for A3 only, just load the given mission (#testWeaponsMagazines.Stratis.7z) in the editor and check rpt
well common items with special simulation like
Watch,MineDetector,Compass,GPS,Radio,Map,Goggles,NVG, Binocular have been configured as a weapon because of a historical reason(these items are weapons even in A2,OA,..) but code works with them as an item like optics, muzzle, .. that's why you do not have to keep any special naming schema
going to try your repro
well the problem in your mission is in [fillThisCreate.sqf] where you're using addWeaponCargo which makes WEAPONS, so by using that command code will create even common items as a weapons which causes a serious problem and inconsistency. Please use AddItemCargo instead. AddItemCargo is universal command which tries to recognize className and create proper object like item, weapon, magazine, etc..
yep.. I have just tried to change AddWeaponCargo to AddItemCargo and now your missions gets work properly ;-)
That was it!
For the record there is an improved test mission attached that differentiates between weapons and itemCore/Binocular type of weapon classes (to prove the point).
Thanks a lot for the information japapatramtara :)