7 if ( (dst && dst.GetParent() && !dst.GetParent().GetHierarchyRootPlayer()) || (src && src.GetParent() && !src.GetParent().GetHierarchyRootPlayer()) )
26 if ( invloc1.GetItem() && invloc1.GetItem().GetInventoryHandAnimation(invloc1,val) )
34 switch (invloc1.GetSlot())
38 if (invloc1.GetItem() && invloc1.GetItem().IsWeapon())
42 else if (invloc1.GetItem() && invloc1.GetItem().IsOneHandedBehaviour())
50 if (invloc1.GetItem() && invloc1.GetItem().IsWeapon())
54 else if (invloc1.GetItem() && invloc1.GetItem().IsOneHandedBehaviour())
62 EntityAI parent_item = invloc1.GetParent();
65 owner = parent_item.GetHierarchyRootPlayer();
70 EntityAI item2 = parent_item.GetHierarchyParent();
71 if (owner && item1 == item2)
98 if ( invloc1.GetItem() && (invloc1.GetItem().GetInventory().HasInventorySlot(
InventorySlots.SHOULDER) || invloc1.GetItem().GetInventory().HasInventorySlot(
InventorySlots.MELEE)) )
101 if (invloc1.GetItem() && invloc1.GetItem().IsWeapon())
105 else if (invloc1.GetItem() && invloc1.GetItem().IsOneHandedBehaviour())
119 if (player.IsInTransport())
124 if (src.GetItem().GetHierarchyRootPlayer() == player)
129 if (
LogManager.IsInventoryHFSMLogEnable())
hndDebugPrint(
"[hndfsm] SelectAnimationOfTakeToHands - selected animType=" + animType +
" for item=" + src.GetItem());
133 if (
LogManager.IsInventoryHFSMLogEnable())
hndDebugPrint(
"[hndfsm] SelectAnimationOfTakeToHands - no animation");
139 if (player.IsInTransport())
142 if (src.GetItem().GetHierarchyRootPlayer() == player)
147 if (
LogManager.IsInventoryHFSMLogEnable())
hndDebugPrint(
"[hndfsm] SelectAnimationOfMoveFromHands guard - selected animType=" + animType +
" for item=" + src.GetItem());
151 if (
LogManager.IsInventoryHFSMLogEnable())
hndDebugPrint(
"[hndfsm] SelectAnimationOfMoveFromHands - no animation");
157 if (player.IsInTransport())
162 if (old_src.GetItem().GetHierarchyRootPlayer() == player || new_src.GetItem().GetHierarchyRootPlayer() == player)
168 if (animType1 != -1 && animType2 != -1)
170 if (
LogManager.IsInventoryHFSMLogEnable())
hndDebugPrint(
"[hndfsm] SelectAnimationOfForceSwapInHands guard - selected animType1=" + animType1 +
" animType2=" + animType2 +
" for old_item=" + old_src.GetItem() +
" for new_item=" + new_src.GetItem());
180 if (
LogManager.IsInventoryHFSMLogEnable())
hndDebugPrint(
"[hndfsm] SelectAnimationOfForceSwapInHands - no animation");
185 class HandSelectAnimationOfTakeToHandsEvent
extends HandGuardBase
187 void HandSelectAnimationOfTakeToHandsEvent(Man p =
null) { }
194 e.m_AnimationID = animType;
201 class HandSelectAnimationOfMoveFromHandsEvent
extends HandGuardBase
205 void HandSelectAnimationOfMoveFromHandsEvent(Man p =
null)
216 if (eai.GetInventory().GetCurrentInventoryLocation(src))
218 if (e.m_IsJuncture ==
false && e.m_IsRemote ==
false)
224 hndDebugPrint(
"[hndfsm] HandSelectAnimationOfMoveFromHandsEvent - rejected");
234 e.m_AnimationID = animType;
250 bool ProcessSwapEvent(notnull
HandEventBase e, out
int animType1, out
int animType2)
255 Error(
"HandSelectAnimationOfForceSwapInHandsEvent - not an swap event");
261 HandEventForceSwap es = HandEventForceSwap.Cast(e);
266 hndDebugPrint(
"[hndfsm] HandSelectAnimationOfForceSwapInHandsEvent FSwap e=" + e.DumpToString());
269 if (!es.m_Src2.IsValid() || !es.m_Src.IsValid())
271 Error(
"[hndfsm] HandSelectAnimationOfForceSwapInHandsEvent - invalid item source");
275 bool allow = e.m_IsJuncture || e.m_IsRemote;
278 if (
GameInventory.CanSwapEntitiesEx(es.GetSrc().GetItem(), es.m_Src2.GetItem()))
284 if (
GameInventory.CanForceSwapEntitiesEx(es.GetSrc().GetItem(), es.m_Dst, es.m_Src2.GetItem(), es.m_Dst2) ==
false)
286 Error(
"[hndfsm] HandSelectAnimationOfForceSwapInHandsEvent - no room at dst=" +
InventoryLocation.DumpToStringNullSafe(es.m_Dst2));
299 if (ProcessSwapEvent(e, animType1, animType2))
301 e.m_AnimationID = animType1;
302 es.m_Animation2ID = animType2;
308 Error(
"[hndfsm] HandSelectAnimationOfForceSwapInHandsEvent - m_HasRoomGuard.GuardCondition failed");
313 Error(
"[hndfsm] HandSelectAnimationOfForceSwapInHandsEvent - not a swap event");
328 if (ProcessSwapEvent(e, animType1, animType2))
330 e.m_AnimationID = animType1;
331 es.m_Animation2ID = animType2;
336 Error(
"[hndfsm] HandSelectAnimationOfSwapInHandsEvent - not a swap event");