81 {
82 map<int, vector> ret_val = new map<int, vector>();
83
84 string type_name = entity.GetType();
86
87 string cfg_path;
88
90 {
92 }
94 {
96 }
98 {
100 }
101
102 g_Game.ConfigGetTextArray(cfg_path, cfg_attachments);
103
104 int child_count =
g_Game.ConfigGetChildrenCount(
"CfgNonAIVehicles");
105
106 for (
int x = 0;
x < child_count; ++
x )
107 {
108 string child_name;
109 g_Game.ConfigGetChildName(
"CfgNonAIVehicles",
x , child_name);
110
111 string inventory_slot_name;
112 g_Game.ConfigGetText(
"CfgNonAIVehicles "+ child_name +
" inventorySlot", inventory_slot_name);
113
114 if ( cfg_attachments.Find( inventory_slot_name ) > 0 )
115 {
116 string model_path;
117 g_Game.ConfigGetText(
"CfgNonAIVehicles "+ child_name +
" model", model_path);
118
119 if ( model_path.
Length() > 5 )
120 {
121 LOD lod = entity.GetLODByName(LOD.NAME_VIEW);
122
123 if ( lod )
124 {
127
128 array<Selection> selections = new array<Selection>();
130
131 for ( int i = 0; i < selections.Count(); ++i )
132 {
133 string selection = selections[i].GetName();
135
136 if ( selection.
Contains(model_path) )
137 {
138 ret_val.Set(InventorySlots.GetSlotIdFromString( inventory_slot_name ), selections[i].GetVertexPosition(lod, 0));
139 }
140 }
141 }
142 }
143 }
144 }
145
146 return ret_val;
147 }
proto native bool GetSelections(notnull out array< Selection > selections)
array< string > TStringArray
proto native int Length()
Returns length of string.
bool Contains(string sample)
Returns true if sample is substring of string.
proto string Substring(int start, int len)
Substring of 'str' from 'start' position 'len' number of characters.
proto int ToLower()
Changes string to lowercase. Returns length.