7 if ( (dst && dst.GetParent() && !dst.GetParent().GetHierarchyRootPlayer()) || (src && src.GetParent() && !src.GetParent().GetHierarchyRootPlayer()) )
26 if ( invloc1.
GetItem() && invloc1.
GetItem().GetInventoryHandAnimation(invloc1,val) )
42 else if (invloc1.
GetItem() && invloc1.
GetItem().IsOneHandedBehaviour())
54 else if (invloc1.
GetItem() && invloc1.
GetItem().IsOneHandedBehaviour())
65 owner = parent_item.GetHierarchyRootPlayer();
70 EntityAI item2 = parent_item.GetHierarchyParent();
71 if (owner && item1 == item2)
109 else if (item.IsOneHandedBehaviour())
124 if (player.IsInTransport())
129 if (src.GetItem().GetHierarchyRootPlayer() == player)
144 if (player.IsInTransport())
147 if (src.GetItem().GetHierarchyRootPlayer() == player)
162 if (player.IsInTransport())
167 if (old_src.GetItem().GetHierarchyRootPlayer() == player || new_src.GetItem().GetHierarchyRootPlayer() == player)
173 if (animType1 != -1 && animType2 != -1)
175 if (
LogManager.
IsInventoryHFSMLogEnable())
hndDebugPrint(
"[hndfsm] SelectAnimationOfForceSwapInHands guard - selected animType1=" + animType1 +
" animType2=" + animType2 +
" for old_item=" + old_src.GetItem() +
" for new_item=" + new_src.GetItem());
190class HandSelectAnimationOfTakeToHandsEvent
extends HandGuardBase
199 e.m_AnimationID = animType;
206class HandSelectAnimationOfMoveFromHandsEvent
extends HandGuardBase
221 if (eai.GetInventory().GetCurrentInventoryLocation(src))
223 if (e.m_IsJuncture ==
false && e.m_IsRemote ==
false)
229 hndDebugPrint(
"[hndfsm] HandSelectAnimationOfMoveFromHandsEvent - rejected");
239 e.m_AnimationID = animType;
260 Error(
"HandSelectAnimationOfForceSwapInHandsEvent - not an swap event");
266 HandEventForceSwap es = HandEventForceSwap.Cast(e);
274 if (!es.m_Src2.IsValid() || !es.m_Src.IsValid())
276 Error(
"[hndfsm] HandSelectAnimationOfForceSwapInHandsEvent - invalid item source");
280 bool allow = e.m_IsJuncture || e.m_IsRemote;
306 e.m_AnimationID = animType1;
307 es.m_Animation2ID = animType2;
313 Error(
"[hndfsm] HandSelectAnimationOfForceSwapInHandsEvent - m_HasRoomGuard.GuardCondition failed");
318 Error(
"[hndfsm] HandSelectAnimationOfForceSwapInHandsEvent - not a swap event");
333 if (ProcessSwapEvent(e, animType1, animType2))
335 e.m_AnimationID = animType1;
336 es.m_Animation2ID = animType2;
341 Error(
"[hndfsm] HandSelectAnimationOfSwapInHandsEvent - not a swap event");
bool SelectAnimationOfMoveFromHands(notnull Man player, notnull InventoryLocation src, notnull InventoryLocation dst, out int animType)
int SlotToAnimType(notnull Man player, notnull InventoryLocation src, InventoryLocation dst=null)
bool SelectAnimationOfTakeToHands(notnull Man player, notnull InventoryLocation src, notnull InventoryLocation dst, out int animType)
bool SelectAnimationOfForceSwapInHands(notnull Man player, notnull InventoryLocation old_src, notnull InventoryLocation new_src, notnull InventoryLocation old_dst, notnull InventoryLocation new_dst, out int animType1, out int animType2)
void hndDebugPrint(string s)
InventoryLocationType
types of Inventory Location
proto native bool HasInventorySlot(int slotId)
static bool CanSwapEntitiesEx(notnull EntityAI item1, notnull EntityAI item2)
static proto native bool LocationCanMoveEntity(notnull InventoryLocation src, notnull InventoryLocation dst)
queries if the entity contained in inv_loc.m_item can be moved to another location This is a shorthan...
static bool CanForceSwapEntitiesEx(notnull EntityAI item1, InventoryLocation item1_dst, notnull EntityAI item2, out InventoryLocation item2_dst)
script counterpart to engine's class Inventory
override InventoryLocation GetDst()
override string DumpToString()
Abstracted event, not to be used, only inherited.
void HandSelectAnimationOfTakeToHandsEvent(Man p=null)
void HandSelectAnimationOfForceSwapInHandsEvent(Man p=NULL)
void HandSelectAnimationOfMoveFromHandsEvent(Man p=null)
bool ProcessSwapEvent(notnull HandEventBase e, out int animType1, out int animType2)
override bool GuardCondition(HandEventBase e)
TODO(kumarjac): This guard is unused but it has a fault and doesn't conform with maximimal/minimal ch...
override bool GuardCondition(HandEventBase e)
proto native EntityAI GetParent()
returns parent of current inventory location
static string DumpToStringNullSafe(InventoryLocation loc)
proto native int GetSlot()
returns slot id if current type is Attachment
proto native InventoryLocation Copy(notnull InventoryLocation rhs)
copies location data to another location
proto native int GetType()
returns type of InventoryLocation
proto native EntityAI GetItem()
returns item of current inventory location
provides access to slot configuration
static bool IsInventoryHFSMLogEnable()
void Error(string err)
Messagebox with error message.