13[
Obsolete(
"1.30: Use class FirearmActionDetachMagazine instead")];
48 Magazine mag = Magazine.Cast(action_data.
m_Target.GetObject());
53 if( !super.InventoryReservation( action_data) )
56 DetachMagActionData action_data_dm = DetachMagActionData.Cast(action_data);
57 if( !action_data.
m_Player.GetInventory().AddInventoryReservationEx(mag,il,10000) )
60 action_data_dm.m_ReservedInventoryLocations.Insert(il);
61 action_data_dm.m_ilMagazine = il;
68 ActionData action_data =
new DetachMagActionData;
74 super.WriteToContext(ctx, action_data);
76 DetachMagActionData action_data_dm;
77 DetachMagActionData.CastTo(action_data_dm, action_data);
79 action_data_dm.m_ilMagazine.WriteToContext(ctx);
84 if(!action_recive_data)
89 if(!super.ReadFromContext( ctx, action_recive_data ))
105 super.HandleReciveData(action_recive_data, action_data);
108 DetachMagActionData action_data_dm = DetachMagActionData.Cast(action_data);
110 action_data_dm.m_ilMagazine = recive_data_dm.
m_ilMagazine;
116 if (!super.ActionCondition( player, target, item ))
119 Magazine mag = Magazine.Cast(target.GetObject());
121 return mag && player.GetWeaponManager().CanDetachMagazine(wpn,mag);
131 super.Start( action_data );
132 DetachMagActionData action_data_dm = DetachMagActionData.Cast(action_data);
136 action_data.
m_Player.GetWeaponManager().DetachMagazine(action_data_dm.m_ilMagazine,
this);
155 ActionData action_data =
new AdvDetachMagActionData;
162 Magazine mag = Magazine.Cast(action_data.
m_Target.GetObject());
167 int ur_index = action_data.
m_Player.GetHumanInventory().FindUserReservedLocationIndex(wpn);
170 action_data.
m_Player.GetHumanInventory().GetUserReservedLocation(ur_index,ilWpn);
180 if(!super.InventoryReservation(action_data))
183 AdvDetachMagActionData action_data_dm = AdvDetachMagActionData.Cast(action_data);
184 if(!action_data.
m_Player.GetInventory().AddInventoryReservationEx(wpn,ilWpn,10000))
187 if(!action_data.
m_Player.GetInventory().AddInventoryReservationEx(mag,ilMag,10000))
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;
200 super.WriteToContext(ctx, action_data);
202 AdvDetachMagActionData action_data_dm;
203 AdvDetachMagActionData.CastTo(action_data_dm, action_data);
205 action_data_dm.m_ilWeapon.WriteToContext(ctx);
206 action_data_dm.m_ilMagazine.WriteToContext(ctx);
211 if(!action_recive_data)
216 if(!super.ReadFromContext( ctx, action_recive_data ))
236 super.HandleReciveData(action_recive_data, action_data);
239 AdvDetachMagActionData action_data_dm = AdvDetachMagActionData.Cast(action_data);
241 action_data_dm.m_ilWeapon.Copy(recive_data_dm.
m_ilWeapon);
242 action_data_dm.m_ilMagazine.Copy(recive_data_dm.
m_ilMagazine);
269 if (!super.ActionCondition(player, target, item))
273 int mi = wpn.GetCurrentMuzzle();
274 return wpn && wpn.GetMagazine(mi) == target.GetObject();
290 super.OnStageStart(action_data);
292 AdvDetachMagActionData action_data_dm = AdvDetachMagActionData.Cast(action_data);
297 action_data.
m_Player.GetWeaponManager().DetachMagazine(action_data_dm.m_ilMagazine,
this);
301 if (!action_data_dm.m_ilWeapon.IsValid())
308 Magazine mag = Magazine.Cast(action_data.
m_Target.GetObject());
310 if (!
g_Game.IsDedicatedServer() && !mag.GetHierarchyParent())
317 action_data.
m_Player.GetInventory().ForceSwapEntities(invMode, mag, wpn, action_data_dm.m_ilWeapon);
330 super.OnUpdate(action_data);
339 if ((!wpn || ad.
m_Player.GetItemInHands() != wpn || !ad.
m_Player.GetWeaponManager().IsRunning()) && !ad.
m_Player.IsJumpInProgress())
352 super.OnStartServer(action_data);
354 AdvDetachMagActionData action_data_dm = AdvDetachMagActionData.Cast(action_data);
360 super.OnEndServer(action_data);
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
ref CCIBase m_ConditionItem
ref CCTBase m_ConditionTarget
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
void SetStage(CodeLockStage stage)
DetachMagActionReciveData m_ilMagazine
OBSOLETE: Should be removed once we remove the whole FirearmActionDetachMagazine_Old class.
AdvDetachMagActionReciveData m_ilWeapon
FindInventoryLocationType
flags for searching locations in inventory
proto static native void End()
Finalizes the testing process.
ref ActionTarget m_Target
ref InventoryLocation m_ilWeapon
ref InventoryLocation m_ilMagazine
ref InventoryLocation m_ilMagazine
OBSOLETE: Should be removed once we remove the whole FirearmActionDetachMagazine_Old class.
override bool HasProgress()
override bool ActionConditionContinue(ActionData action_data)
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
override bool HasTarget()
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
void FirearmActionDetachMagazine_Old()
override bool CanBePerformedFromQuickbar()
override ActionData CreateActionData()
override bool InventoryReservation(ActionData action_data)
override void Start(ActionData action_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override void CreateConditionComponents()
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
override void OnEndServer(ActionData action_data)
override void OnUpdate(ActionData action_data)
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
override void OnStartServer(ActionData action_data)
override bool ActionConditionContinue(ActionData action_data)
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
override ActionData CreateActionData()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override bool InventoryReservation(ActionData action_data)
override bool CanBePerformedFromQuickbar()
override void CreateConditionComponents()
override bool CanBePerformedFromInventory()
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
override void OnStageStart(SequentialActionData action_data)
bool ReadFromContext(ParamsReadContext ctx)
Serializer ParamsReadContext
Serializer ParamsWriteContext
void Obsolete(string msg="")