Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Файл HandAnimated_Guards.c

См. исходные тексты.

Структуры данных

class  HandGuardBase
 TODO(kumarjac): This guard is unused but it has a fault and doesn't conform with maximimal/minimal checks on "Juncture"/"Remote". Подробнее...
 
class  HandSelectAnimationOfForceSwapInHandsEvent
 

Функции

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 SelectAnimationOfMoveFromHands (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)
 

Функции

◆ SelectAnimationOfForceSwapInHands()

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 )
156{
157 if (player.IsInTransport())
158 return false;
159
161
162 if (old_src.GetItem().GetHierarchyRootPlayer() == player || new_src.GetItem().GetHierarchyRootPlayer() == player)
163 {
166 //Print("animType1 = " + animType1);
167 //Print("animType2 = " + animType2);
168 if (animType1 != -1 && animType2 != -1)
169 {
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());
171 return true;
172 }
173 /*else if (animType1 != -1 || animType2 != -1) //HACK
174 {
175 animType1 = -1;
176 animType2 = -1;
177 return false;
178 }*/
179 }
180 if (LogManager.IsInventoryHFSMLogEnable()) hndDebugPrint("[hndfsm] SelectAnimationOfForceSwapInHands - no animation");
181 return false;
182}
int SlotToAnimType(notnull Man player, notnull InventoryLocation src, InventoryLocation dst=null)
Definition HandAnimated_Guards.c:1
void hndDebugPrint(string s)
Definition HandFSM.c:1
InventoryLocation.
Definition InventoryLocation.c:28
static string DumpToStringNullSafe(InventoryLocation loc)
Definition InventoryLocation.c:218
Definition Debug.c:735
static bool IsInventoryHFSMLogEnable()
Definition Debug.c:809
Definition EntityAI.c:95

Перекрестные ссылки InventoryLocation::DumpToStringNullSafe(), hndDebugPrint(), LogManager::IsInventoryHFSMLogEnable() и SlotToAnimType().

Используется в HandGuardBase::ProcessSwapEvent().

◆ SelectAnimationOfMoveFromHands()

bool SelectAnimationOfMoveFromHands ( notnull Man player,
notnull InventoryLocation src,
notnull InventoryLocation dst,
out int animType )
138{
139 if (player.IsInTransport())
140 return false;
141
142 if (src.GetItem().GetHierarchyRootPlayer() == player)
143 {
145 if (animType != -1)
146 {
147 if (LogManager.IsInventoryHFSMLogEnable()) hndDebugPrint("[hndfsm] SelectAnimationOfMoveFromHands guard - selected animType=" + animType + " for item=" + src.GetItem());
148 return true;
149 }
150 }
151 if (LogManager.IsInventoryHFSMLogEnable()) hndDebugPrint("[hndfsm] SelectAnimationOfMoveFromHands - no animation");
152 return false;
153}

Перекрестные ссылки hndDebugPrint(), LogManager::IsInventoryHFSMLogEnable() и SlotToAnimType().

Используется в HandGuardBase::GuardCondition().

◆ SelectAnimationOfTakeToHands()

bool SelectAnimationOfTakeToHands ( notnull Man player,
notnull InventoryLocation src,
notnull InventoryLocation dst,
out int animType )
118{
119 if (player.IsInTransport())
120 return false;
121 if (src.GetType() == InventoryLocationType.GROUND)
122 return false;
123
124 if (src.GetItem().GetHierarchyRootPlayer() == player)
125 {
127 if (animType != -1)
128 {
129 if (LogManager.IsInventoryHFSMLogEnable()) hndDebugPrint("[hndfsm] SelectAnimationOfTakeToHands - selected animType=" + animType + " for item=" + src.GetItem());
130 return true;
131 }
132 }
133 if (LogManager.IsInventoryHFSMLogEnable()) hndDebugPrint("[hndfsm] SelectAnimationOfTakeToHands - no animation");
134 return false;
135}
InventoryLocationType
types of Inventory Location
Definition InventoryLocation.c:4

Перекрестные ссылки hndDebugPrint(), LogManager::IsInventoryHFSMLogEnable() и SlotToAnimType().

Используется в HandGuardBase::GuardCondition().

◆ SlotToAnimType()

int SlotToAnimType ( notnull Man player,
notnull InventoryLocation src,
InventoryLocation dst = null )
2{
3 //Print("src.GetType() " + src.GetType());
5 //InventoryLocation invloc2 = new InventoryLocation;
6
7 if ( (dst && dst.GetParent() && !dst.GetParent().GetHierarchyRootPlayer()) || (src && src.GetParent() && !src.GetParent().GetHierarchyRootPlayer()) )
8 return -1;
9
10 if (dst && (dst.GetType() == InventoryLocationType.ATTACHMENT || dst.GetType() == InventoryLocationType.CARGO))
11 {
12 invloc1.Copy(dst);
13 //invloc2.Copy(src);
14 }
15 else if (src.GetType() == InventoryLocationType.ATTACHMENT || src.GetType() == InventoryLocationType.CARGO)
16 {
17 invloc1.Copy(src);
18 //invloc2.Copy(dst);
19 }
20 else
21 {
22 return -1;
23 }
24
25 int val = -1;
26 if ( invloc1.GetItem() && invloc1.GetItem().GetInventoryHandAnimation(invloc1,val) )
27 {
28 return val;
29 }
30
31 if (invloc1.GetType() == InventoryLocationType.ATTACHMENT /*|| src.GetType() == InventoryLocationType.HANDS*/)
32 {
33 //return WeaponHideShowTypes.HIDESHOW_SLOT_KNIFEBACK;
34 switch (invloc1.GetSlot())
35 {
36 case InventorySlots.SHOULDER:
37 {
38 if (invloc1.GetItem() && invloc1.GetItem().IsWeapon())
39 {
40 return WeaponHideShowTypes.HIDESHOW_SLOT_RFLLEFTBACK;
41 }
42 else if (invloc1.GetItem() && invloc1.GetItem().IsOneHandedBehaviour())
43 {
44 return WeaponHideShowTypes.HIDESHOW_SLOT_1HDLEFTBACK;
45 }
46 return WeaponHideShowTypes.HIDESHOW_SLOT_2HDLEFTBACK;
47 }
48 case InventorySlots.MELEE:
49 {
50 if (invloc1.GetItem() && invloc1.GetItem().IsWeapon())
51 {
52 return WeaponHideShowTypes.HIDESHOW_SLOT_RFLRIGHTBACK;
53 }
54 else if (invloc1.GetItem() && invloc1.GetItem().IsOneHandedBehaviour())
55 {
56 return WeaponHideShowTypes.HIDESHOW_SLOT_1HDRIGHTBACK;
57 }
58 return WeaponHideShowTypes.HIDESHOW_SLOT_2HDRIGHTBACK;
59 }
60 case InventorySlots.PISTOL:
61 {
62 EntityAI parent_item = invloc1.GetParent(); // belt
63 Man owner;
64 if (parent_item)
65 owner = parent_item.GetHierarchyRootPlayer(); // player
66 if (!owner)
67 return -1;
68
69 EntityAI item1 = owner.GetInventory().FindAttachment(InventorySlots.HIPS);
70 EntityAI item2 = parent_item.GetHierarchyParent();
71 if (owner && item1 == item2) // is the pistol in a belt holster?
72 {
73 return WeaponHideShowTypes.HIDESHOW_SLOT_PISTOLBELT;
74 }
75 return WeaponHideShowTypes.HIDESHOW_SLOT_PISTOLCHEST;
76 }
77 case InventorySlots.KNIFE:
78 return WeaponHideShowTypes.HIDESHOW_SLOT_KNIFEBACK;
79
80 /*case InventorySlots.VEST:
81 case InventorySlots.FEET:
82 case InventorySlots.BODY:
83 case InventorySlots.LEGS:
84 case InventorySlots.BACK:
85 case InventorySlots.HIPS:
86 case InventorySlots.HEADGEAR:
87 return WeaponHideShowTypes.HIDESHOW_SLOT_INVENTORY;*/
88
89 default:
90 return WeaponHideShowTypes.HIDESHOW_SLOT_INVENTORY;
91 //Print("[hndfsm] SlotToAnimType - not animated slot in src_loc=" + InventoryLocation.DumpToStringNullSafe(invloc1));
92 };
93 //
94 //if (InventorySlots.GetSlotIdFromString("Pistol"))
95 }
96 else if (invloc1.GetType() == InventoryLocationType.CARGO)
97 {
98 if ( invloc1.GetItem() && (invloc1.GetItem().GetInventory().HasInventorySlot(InventorySlots.SHOULDER) || invloc1.GetItem().GetInventory().HasInventorySlot(InventorySlots.MELEE)) )
99 {
100 //Print("Special inventory anim");
101 if (invloc1.GetItem() && invloc1.GetItem().IsWeapon())
102 {
103 return WeaponHideShowTypes.HIDESHOW_SLOT_RFLRIGHTBACK;
104 }
105 else if (invloc1.GetItem() && invloc1.GetItem().IsOneHandedBehaviour())
106 {
107 return WeaponHideShowTypes.HIDESHOW_SLOT_1HDRIGHTBACK;
108 }
109 return WeaponHideShowTypes.HIDESHOW_SLOT_2HDRIGHTBACK;
110 }
111 //Print("Default inventory anim");
112 return WeaponHideShowTypes.HIDESHOW_SLOT_INVENTORY; //default item animation
113 }
114 return -1;
115}
Definition Building.c:6
provides access to slot configuration
Definition InventorySlots.c:6
WeaponHideShowTypes
Definition human.c:923

Используется в SelectAnimationOfForceSwapInHands(), SelectAnimationOfMoveFromHands() и SelectAnimationOfTakeToHands().