DayZ 1.26
DayZ Explorer by KGB
Загрузка...
Поиск...
Не найдено
Файл QuickBarBase.c

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

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

class  QuickBarItem
 

Функции

void QuickBarBase (PlayerBase player)
 
void SetSize (int newSize)
 
int GetNonEmptyCount ()
 
EntityAI GetEntity (int index)
 
int GetSize ()
 
int FindEntityIndex (EntityAI entity)
 
bool OnInputUserDataProcess (int userDataType, ParamsReadContext ctx)
 
void UpdateShotcutVisibility (int index)
 
void SetShotcutEnable (int index, bool value)
 
bool CanAddAsShortcut (EntityAI entity)
 
void SetEntityShortcut (EntityAI entity, int index, bool force=false)
 
void OnSetEntityNoSync (EntityAI entity, int index, bool force=false)
 
void OnSetEntityRPC (ParamsReadContext ctx)
 Reaction on Rpc from server for set inicial state for quickbar.
 
void OnSetEntityRequest (ParamsReadContext ctx)
 Reaction on SetEntityShortcut from client.
 
void _SetEntityShortcut (EntityAI entity, int index, bool force=false)
 
void updateSlotsCount ()
 
void _RemoveEntity (int index)
 
void _SetEntity (EntityAI entity, int index, bool force=false)
 
void ~QuickBarBase ()
 
void CancelContinuousUse (int index)
 

Переменные

const int MAX_QUICKBAR_SLOTS_COUNT = 10
 
class QuickBarItem m_aQuickbarEnts [MAX_QUICKBAR_SLOTS_COUNT]
 
PlayerBase _player
 
int m_slotsCount
 

Функции

◆ _RemoveEntity()

void _RemoveEntity ( int index)
protected
243 {
244 if ( index >= 0 && index < MAX_QUICKBAR_SLOTS_COUNT )
245 {
247
248 m_aQuickbarEnts[index].m_entity = NULL;
249 m_aQuickbarEnts[index].m_enabled = false;
250
251 if (_player.m_Hud)
252 _player.m_Hud.RefreshQuickbar(true);
253 }
254 }
class QuickBarItem m_aQuickbarEnts[MAX_QUICKBAR_SLOTS_COUNT]
PlayerBase _player
Definition QuickBarBase.c:18
const int MAX_QUICKBAR_SLOTS_COUNT
Definition QuickBarBase.c:1
void CancelContinuousUse(int index)
Definition QuickBarBase.c:281
Definition EntityAI.c:95

Перекрестные ссылки _player, CancelContinuousUse(), m_aQuickbarEnts и MAX_QUICKBAR_SLOTS_COUNT.

Используется в _SetEntityShortcut().

◆ _SetEntity()

void _SetEntity ( EntityAI entity,
int index,
bool force = false )
protected
257 {
258 if ( index >= 0 && index < MAX_QUICKBAR_SLOTS_COUNT )
259 {
261 {
262 m_aQuickbarEnts[index].m_entity = entity;
263 m_aQuickbarEnts[index].m_enabled = true;
264 }
265 else
266 {
268 m_aQuickbarEnts[index].m_enabled = false;
269 }
270
271 if (_player.m_Hud)
272 _player.m_Hud.RefreshQuickbar(true);
273 }
274 }
bool CanAddAsShortcut(EntityAI entity)
Definition QuickBarBase.c:137

Перекрестные ссылки _player, CanAddAsShortcut(), CancelContinuousUse(), m_aQuickbarEnts и MAX_QUICKBAR_SLOTS_COUNT.

Используется в _SetEntityShortcut().

◆ _SetEntityShortcut()

void _SetEntityShortcut ( EntityAI entity,
int index,
bool force = false )
protected
210 {
211 //TODO Check, if is in inventory
212 //if(entity.GetLoca)
213 if ( entity == NULL )
214 {
216 return;
217 }
218
219 int i = FindEntityIndex(entity);
220
221 if ( i != -1 )
223
226 }
void _RemoveEntity(int index)
Definition QuickBarBase.c:242
void _SetEntity(EntityAI entity, int index, bool force=false)
Definition QuickBarBase.c:256
int FindEntityIndex(EntityAI entity)
Definition QuickBarBase.c:95

Перекрестные ссылки _RemoveEntity(), _SetEntity() и FindEntityIndex().

Используется в OnSetEntityNoSync(), OnSetEntityRequest(), OnSetEntityRPC() и SetEntityShortcut().

◆ CanAddAsShortcut()

bool CanAddAsShortcut ( EntityAI entity)
protected
138 {
140 entity.GetInventory().GetCurrentInventoryLocation(loc);
141 EntityAI parent = loc.GetParent();
142
143 return (entity && entity.GetHierarchyRootPlayer() == _player && parent.CanAssignAttachmentsToQuickbar() && entity.CanAssignToQuickbar());
144 }
Definition Building.c:6
InventoryLocation.
Definition InventoryLocation.c:29

Перекрестные ссылки _player.

Используется в _SetEntity(), SetShotcutEnable() и UpdateShotcutVisibility().

◆ CancelContinuousUse()

void CancelContinuousUse ( int index)
protected
282 {
283 if (_player.m_QuickBarHold)
284 {
285 HumanInputController hic = _player.GetInputController();
286 if (hic && hic.IsQuickBarSlot() == index + 1)
287 _player.OnQuickBarContinuousUseEnd(index + 1);
288 }
289 }
Definition human.c:18

Перекрестные ссылки _player.

Используется в _RemoveEntity(), _SetEntity(), SetShotcutEnable() и UpdateShotcutVisibility().

◆ FindEntityIndex()

int FindEntityIndex ( EntityAI entity)
protected
96 {
97 for (int i = 0; i < MAX_QUICKBAR_SLOTS_COUNT; i++)
98 {
99 if (m_aQuickbarEnts[i].m_entity == entity)
100 return i;
101 }
102
103 return -1;
104 }

Перекрестные ссылки m_aQuickbarEnts и MAX_QUICKBAR_SLOTS_COUNT.

Используется в _SetEntityShortcut().

◆ GetEntity()

EntityAI GetEntity ( int index)
protected
79 {
81 return NULL;
82
83 if (m_aQuickbarEnts[index].m_enabled)
84 return m_aQuickbarEnts[index].m_entity;
85
86 return NULL;
87 }
int m_slotsCount
Definition QuickBarBase.c:19

Перекрестные ссылки m_aQuickbarEnts и m_slotsCount.

◆ GetNonEmptyCount()

int GetNonEmptyCount ( )
protected
67 {
68 int count = 0;
69 for ( int i = 0; i < m_slotsCount; i++ )
70 {
71 if (m_aQuickbarEnts[i].m_enabled)
72 count++;
73 }
74
75 return count;
76 }

Перекрестные ссылки m_aQuickbarEnts и m_slotsCount.

◆ GetSize()

int GetSize ( )
protected
91 {
92 return m_slotsCount;
93 }

Перекрестные ссылки m_slotsCount.

◆ OnInputUserDataProcess()

bool OnInputUserDataProcess ( int userDataType,
ParamsReadContext ctx )
protected
107 {
109 {
111 return true;
112 }
113
114 return false;
115 }
const int INPUT_UDT_QUICKABARSHORTCUT
Definition _constants.c:5
void OnSetEntityRequest(ParamsReadContext ctx)
Reaction on SetEntityShortcut from client.
Definition QuickBarBase.c:192

Перекрестные ссылки INPUT_UDT_QUICKABARSHORTCUT и OnSetEntityRequest().

◆ OnSetEntityNoSync()

void OnSetEntityNoSync ( EntityAI entity,
int index,
bool force = false )
protected
176 {
178 }
void _SetEntityShortcut(EntityAI entity, int index, bool force=false)
Definition QuickBarBase.c:209

Перекрестные ссылки _SetEntityShortcut().

◆ OnSetEntityRequest()

void OnSetEntityRequest ( ParamsReadContext ctx)
protected

Reaction on SetEntityShortcut from client.

193 {
194 EntityAI eai = null;
195 if (!ctx.Read(eai))
196 return;
197
198 int index = -1;
199 if (!ctx.Read(index))
200 return;
201
202 bool force = false;
203 if (!ctx.Read(force))
204 return
205
207 }

Перекрестные ссылки _SetEntityShortcut().

Используется в OnInputUserDataProcess().

◆ OnSetEntityRPC()

void OnSetEntityRPC ( ParamsReadContext ctx)
protected

Reaction on Rpc from server for set inicial state for quickbar.

182 {
184 if (!ctx.Read(param))
185 return;
186
187 EntityAI entity1 = EntityAI.Cast(param.param1);
188 _SetEntityShortcut(entity1, param.param2, false);
189 }

Перекрестные ссылки _SetEntityShortcut().

◆ QuickBarBase()

void QuickBarBase ( PlayerBase player)
protected
22 {
23 for (int i = 0; i < MAX_QUICKBAR_SLOTS_COUNT; i++)
24 {
26 m_aQuickbarEnts[i].m_enabled = false;
27 m_aQuickbarEnts[i].m_entity = NULL;
28 }
29
31 m_slotsCount = 0;
32 }
Definition QuickBarBase.c:4

Перекрестные ссылки _player, m_aQuickbarEnts, m_slotsCount и MAX_QUICKBAR_SLOTS_COUNT.

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

◆ SetEntityShortcut()

void SetEntityShortcut ( EntityAI entity,
int index,
bool force = false )
protected
147 {
148 //Client
149 if (GetGame().IsClient())
150 {
152 {
155 ctx.Write(entity);
156 ctx.Write(index);
157 ctx.Write(force);
158 ctx.Send();
159
161 }
162 }
163 //Server
164 else if (GetGame().IsMultiplayer() && GetGame().IsServer())
165 {
167 }
168 else
169 {
170 // Single player
172 }
173 }
Definition DayZPlayerSyncJunctures.c:5
static void SendQuickbarSetShortcut(DayZPlayer pPlayer, EntityAI item, int index, bool force=false)
Definition DayZPlayerSyncJunctures.c:325
Definition gameplay.c:121
proto static native bool CanStoreInputUserData()
proto native CGame GetGame()

Перекрестные ссылки _player, _SetEntityShortcut(), ScriptInputUserData::CanStoreInputUserData(), GetGame(), INPUT_UDT_QUICKABARSHORTCUT и DayZPlayerSyncJunctures::SendQuickbarSetShortcut().

◆ SetShotcutEnable()

void SetShotcutEnable ( int index,
bool value )
protected
128 {
130 if (!m_aQuickbarEnts[index].m_enabled)
132
133 if (_player.m_Hud)
134 _player.m_Hud.RefreshQuickbar(true);
135 }

Перекрестные ссылки _player, CanAddAsShortcut(), CancelContinuousUse() и m_aQuickbarEnts.

◆ SetSize()

void SetSize ( int newSize)
protected
35 {
36 int i = m_slotsCount;
37 if ( newSize == m_slotsCount )
38 return;
39
42
43 if ( newSize > i )
44 {
45 for (; i < newSize; i++)
46 {
47 EntityAI entity = m_aQuickbarEnts[i].m_entity;
48 if ( entity != NULL && entity.GetHierarchyRootPlayer() == _player )
49 {
50 m_aQuickbarEnts[i].m_enabled = true;
51 }
52 }
53 }
54 else
55 {
56 for (i--; i >= newSize; i--)
57 m_aQuickbarEnts[i].m_enabled = false;
58 }
59
61
62 if (_player.m_Hud)
63 _player.m_Hud.RefreshQuickbar(true);
64 }

Перекрестные ссылки _player, m_aQuickbarEnts, m_slotsCount и MAX_QUICKBAR_SLOTS_COUNT.

◆ UpdateShotcutVisibility()

void UpdateShotcutVisibility ( int index)
protected
118 {
120 if (!m_aQuickbarEnts[index].m_enabled)
122
123 if (_player.m_Hud)
124 _player.m_Hud.RefreshQuickbar(true);
125 }

Перекрестные ссылки _player, CanAddAsShortcut(), CancelContinuousUse() и m_aQuickbarEnts.

◆ updateSlotsCount()

void updateSlotsCount ( )
protected
229 {
230 int slotsCount = _player.GetQuickBarBonus();
231 int attCount = _player.GetInventory().AttachmentCount();
232
233 for ( int i = 0; i < attCount; ++i)
234 {
235 slotsCount += _player.GetInventory().GetAttachmentFromIndex(i).GetQuickBarBonus();
236 }
237
238 //max slots is 10
240 }
void SetSize(int newSize)
Definition QuickBarBase.c:34
Definition EnMath.c:7
static proto float Min(float x, float y)
Returns smaller of two given values.

Перекрестные ссылки _player, Math::Min() и SetSize().

◆ ~QuickBarBase()

void ~QuickBarBase ( )
protected
277 {
278
279 }

Переменные

◆ _player

◆ m_aQuickbarEnts

◆ m_slotsCount

int m_slotsCount
protected

Используется в GetEntity(), GetNonEmptyCount(), GetSize(), QuickBarBase() и SetSize().

◆ MAX_QUICKBAR_SLOTS_COUNT

const int MAX_QUICKBAR_SLOTS_COUNT = 10