160 {
161 Weapon_Base wpn = Weapon_Base.Cast(action_data.
m_MainItem);
162 Magazine mag = Magazine.Cast(action_data.
m_Target.GetObject());
163
164 InventoryLocation ilWpn = new InventoryLocation();
165 InventoryLocation ilMag = new InventoryLocation();
166
167 int ur_index = action_data.
m_Player.GetHumanInventory().FindUserReservedLocationIndex(wpn);
168 if(ur_index > -1)
169 {
170 action_data.
m_Player.GetHumanInventory().GetUserReservedLocation(ur_index,ilWpn);
171 }
172 else
173 {
175 }
176
178 return false;
179
180 if(!super.InventoryReservation(action_data))
181 return false;
182
183 AdvDetachMagActionData action_data_dm = AdvDetachMagActionData.Cast(action_data);
184 if(!action_data.
m_Player.GetInventory().AddInventoryReservationEx(wpn,ilWpn,10000))
185 return false;
186
187 if(!action_data.
m_Player.GetInventory().AddInventoryReservationEx(mag,ilMag,10000))
188 return false;
189
190 action_data_dm.m_ReservedInventoryLocations.Insert(ilWpn);
191 action_data_dm.m_ReservedInventoryLocations.Insert(ilMag);
192 action_data_dm.m_ilWeapon = ilWpn;
193 action_data_dm.m_ilMagazine = ilMag;
194
195 return true;
196 }
FindInventoryLocationType
flags for searching locations in inventory
ref ActionTarget m_Target