Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
inspectmenunew.c
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2class InspectMenuNew extends UIScriptedMenu
3{
4 private ItemPreviewWidget m_item_widget;
5 private ItemPreviewWidget m_slot_widget;
6 private int m_characterRotationX;
7 private int m_characterRotationY;
8 private int m_characterScaleDelta;
9 private vector m_characterOrientation;
10
11
12 void InspectMenuNew()
13 {
14 GetGame().GetMission().AddActiveInputExcludes({"inspect"});
15 }
16
17 //--------------------------------------------------------------------------
18 void ~InspectMenuNew()
19 {
20 GetGame().GetDragQueue().RemoveCalls(this);
21 Mission mis = GetGame().GetMission();
22 if (mis)
23 {
24 mis.GetHud().ShowHudUI(true);
25 mis.GetHud().ShowQuickbarUI(true);
26 mis.RemoveActiveInputExcludes({"inspect"});
27 }
28 }
29
30 //--------------------------------------------------------------------------
31 override Widget Init()
32 {
33 layoutRoot = GetGame().GetWorkspace().CreateWidgets("gui/layouts/inventory_new/day_z_inventory_new_inspect.layout");
34
35
36 return layoutRoot;
37 }
38
39 //--------------------------------------------------------------------------
40 override bool OnClick(Widget w, int x, int y, int button)
41 {
42 super.OnClick(w, x, y, button);
43
44 switch (w.GetUserID())
45 {
46 case IDC_CANCEL:
47 Close();
48 return true;
49 }
50
51 return false;
52 }
53
54 //--------------------------------------------------------------------------
55 void SetItem(EntityAI item)
56 {
57 if (item)
58 {
59 InspectMenuNew.UpdateItemInfo(layoutRoot, item);
60
61 if (!m_item_widget)
62 {
63 Widget preview_frame = layoutRoot.FindAnyWidget("ItemFrameWidget");
64 if (preview_frame)
65 {
66 m_item_widget = ItemPreviewWidget.Cast( preview_frame );
67 }
68 }
69
70 m_item_widget.SetItem(item);
71 m_item_widget.SetView( item.GetViewIndex() );
72 m_item_widget.SetModelPosition(Vector(0,0,1));
73 PPERequesterBank.GetRequester(PPERequester_InventoryBlur).Start();
74 }
75 }
76
77 //--------------------------------------------------------------------------
78 override bool OnMouseButtonDown(Widget w, int x, int y, int button)
79 {
80 super.OnMouseButtonDown(w, x, y, button);
81
82 if (w == m_item_widget)
83 {
84 GetGame().GetDragQueue().Call(this, "UpdateRotation");
85 GetMousePos(m_characterRotationX, m_characterRotationY);
86 return true;
87 }
88 return false;
89 }
90
91 //--------------------------------------------------------------------------
92 void UpdateRotation(int mouse_x, int mouse_y, bool is_dragging)
93 {
94 vector o = m_characterOrientation;
95 o[0] = o[0] + (m_characterRotationY - mouse_y);
96 o[1] = o[1] - (m_characterRotationX - mouse_x);
97
98 m_item_widget.SetModelOrientation( o );
99
100 if (!is_dragging)
101 {
102 m_characterOrientation = o;
103 }
104 }
105
106 //--------------------------------------------------------------------------
107 override bool OnMouseWheel(Widget w, int x, int y, int wheel)
108 {
109 super.OnMouseWheel(w, x, y, wheel);
110
111 if ( w == m_item_widget )
112 {
113 m_characterScaleDelta = wheel;
114 UpdateScale();
115 }
116 return false;
117 }
118
119 //--------------------------------------------------------------------------
120 void UpdateScale()
121 {
122 float w, h, x, y;
123 m_item_widget.GetPos(x, y);
124 m_item_widget.GetSize(w,h);
125 w = w + ( m_characterScaleDelta / 4);
126 h = h + ( m_characterScaleDelta / 4 );
127 if ( w > 0.5 && w < 3 )
128 {
129 m_item_widget.SetSize( w, h );
130
131 // align to center
132 int screen_w, screen_h;
133 GetScreenSize(screen_w, screen_h);
134 float new_x = x - ( m_characterScaleDelta / 8 );
135 float new_y = y - ( m_characterScaleDelta / 8 );
136 m_item_widget.SetPos( new_x, new_y );
137 }
138 }
139 //--------------------------------------------------------------------------
140 static void UpdateItemInfo(Widget root_widget, EntityAI item)
141 {
142 if (!root_widget || !item) return;
143
144 Widget panelInfo = root_widget.FindAnyWidget("InventoryInfoPanelWidget");
145 if ( panelInfo )
146 {
147 if ( item.IsInherited( ZombieBase ) || item.IsInherited( Car ) )
148 {
149 panelInfo.Show( false );
150 }
151 else
152 {
153 panelInfo.Show( true );
154 }
155 }
156
157 if ( !item.IsInherited( ZombieBase ) && !item.IsInherited( Car ) )
158 {
159 InventoryItem iItem = InventoryItem.Cast( item );
160 string tooltip = iItem.GetTooltip();
161 if (iItem.IsMeleeFinisher())
162 tooltip = tooltip + "\n" + "#inv_inspect_stealth_tooltip";
163
164 WidgetTrySetText(root_widget, "ItemDescWidget", tooltip);
165
166 }
167
168 WidgetTrySetText(root_widget, "ItemNameWidget", item.GetDisplayName());
169 InspectMenuNew.UpdateItemInfoDamage(root_widget, item);
170 InspectMenuNew.UpdateItemInfoLiquidType(root_widget, item);
171 InspectMenuNew.UpdateItemInfoTemperature(root_widget, item);
172 InspectMenuNew.UpdateItemInfoWetness(root_widget, item);
173 InspectMenuNew.UpdateItemInfoQuantity(root_widget, item);
174 InspectMenuNew.UpdateItemInfoWeight(root_widget, item);
175 InspectMenuNew.UpdateItemInfoFoodStage(root_widget, item);
176 InspectMenuNew.UpdateItemInfoCleanness(root_widget, item);
177
178 Widget content = root_widget.FindAnyWidget("InventoryInfoPanelWidget");
179 }
180
181 //--------------------------------------------------------------------------
182 static void UpdateSlotInfo(Widget root_widget, string name, string desc = "")
183 {
184 if (!root_widget ) return;
185
186 WidgetTrySetText(root_widget, "ItemNameWidget", name);
187 }
188
189 //--------------------------------------------------------------------------
190 static void UpdateItemInfoDamage(Widget root_widget, EntityAI item)
191 {
192 if ( item.IsInherited( ZombieBase ) || item.IsInherited( Car ) ) return;
193
194 int damageLevel = item.GetHealthLevel();
195
196 switch(damageLevel)
197 {
198 case GameConstants.STATE_RUINED:
199 {
200 WidgetTrySetText(root_widget, "ItemDamageWidget", "#inv_inspect_ruined", Colors.COLOR_RUINED);
201 break;
202 }
203 case GameConstants.STATE_BADLY_DAMAGED:
204 {
205 WidgetTrySetText(root_widget, "ItemDamageWidget", "#inv_inspect_badly", Colors.COLOR_BADLY_DAMAGED);
206 break;
207 }
208
209 case GameConstants.STATE_DAMAGED:
210 {
211 WidgetTrySetText(root_widget, "ItemDamageWidget", "#inv_inspect_damaged", Colors.COLOR_DAMAGED);
212 break;
213 }
214
215 case GameConstants.STATE_WORN:
216 {
217 WidgetTrySetText(root_widget, "ItemDamageWidget", "#inv_inspect_worn", Colors.COLOR_WORN);
218 break;
219 }
220
221 case GameConstants.STATE_PRISTINE:
222 {
223 WidgetTrySetText(root_widget, "ItemDamageWidget", "#inv_inspect_pristine", Colors.COLOR_PRISTINE);
224 break;
225 }
226
227 default:
228 {
229 WidgetTrySetText(root_widget, "ItemDamageWidget", "ERROR", Colors.COLOR_PRISTINE);
230 break;
231 }
232 }
233
234 }
235
236 //--------------------------------------------------------------------------
237 static void UpdateItemInfoLiquidType(Widget root_widget, EntityAI item)
238 {
239 if ( item.IsInherited( ZombieBase ) || item.IsInherited( Car ) ) return;
240
241 ItemBase item_base = ItemBase.Cast( item );
242
243 if( item_base && item_base.GetQuantity() > 0 && item_base.IsBloodContainer() )
244 {
245 BloodContainerBase blood_container = BloodContainerBase.Cast( item_base );
246
247 if( blood_container.GetBloodTypeVisible() )
248 {
249 string type;
250 bool positive;
251 string blood_type_name = BloodTypes.GetBloodTypeName(blood_container.GetLiquidType(), type, positive);
252 WidgetTrySetText(root_widget, "ItemLiquidTypeWidget", "#inv_inspect_blood: " + blood_type_name, Colors.COLOR_LIQUID);
253 }
254 else
255 {
256 WidgetTrySetText(root_widget, "ItemLiquidTypeWidget", "#inv_inspect_blood", Colors.COLOR_LIQUID);
257 }
258 }
259 else if( item_base && item_base.GetQuantity() > 0 && item_base.IsLiquidContainer() )
260 {
261 int liquid_type = item_base.GetLiquidType();
262
263 switch(liquid_type)
264 {
265 case LIQUID_WATER:
266 {
267 WidgetTrySetText(root_widget, "ItemLiquidTypeWidget", "#inv_inspect_water", Colors.COLOR_LIQUID);
268 break;
269 }
270
272 {
273 WidgetTrySetText(root_widget, "ItemLiquidTypeWidget", "#inv_inspect_river_water", Colors.COLOR_LIQUID);
274 break;
275 }
276
277 case LIQUID_VODKA:
278 {
279 WidgetTrySetText(root_widget, "ItemLiquidTypeWidget", "#inv_inspect_vodka", Colors.COLOR_LIQUID);
280 break;
281 }
282
283 case LIQUID_BEER:
284 {
285 WidgetTrySetText(root_widget, "ItemLiquidTypeWidget", "#inv_inspect_beer", Colors.COLOR_LIQUID);
286 break;
287 }
288
289 case LIQUID_GASOLINE:
290 {
291 WidgetTrySetText(root_widget, "ItemLiquidTypeWidget", "#inv_inspect_gasoline", Colors.COLOR_LIQUID);
292 break;
293 }
294
295 case LIQUID_DIESEL:
296 {
297 WidgetTrySetText(root_widget, "ItemLiquidTypeWidget", "#inv_inspect_diesel", Colors.COLOR_LIQUID);
298 break;
299 }
300
302 {
303 WidgetTrySetText(root_widget, "ItemLiquidTypeWidget", "#inv_inspect_disinfectant", Colors.COLOR_LIQUID);
304 break;
305 }
306
307 case LIQUID_SALINE:
308 {
309 WidgetTrySetText(root_widget, "ItemLiquidTypeWidget", "#inv_inspect_saline", Colors.COLOR_LIQUID);
310 break;
311 }
312
313 default:
314 {
315 WidgetTrySetText(root_widget, "ItemLiquidTypeWidget", "ERROR", Colors.COLOR_LIQUID);
316 break;
317 }
318 }
319 }
320 else
321 {
322 WidgetTrySetText(root_widget, "ItemLiquidTypeWidget", "");
323 }
324 }
325
326 //--------------------------------------------------------------------------
327 static void UpdateItemInfoTemperature(Widget root_widget, EntityAI item)
328 {
329 if ( item.IsInherited( ZombieBase ) || item.IsInherited( Car ) ) return;
330
331 float temperature;
332 ObjectTemperatureState temperatureState;
333 ItemBase item_base = ItemBase.Cast(item);
334
335 if (item_base && item.CanHaveTemperature())
336 {
337 temperature = item_base.GetTemperature();
338 temperatureState = ObjectTemperatureState.GetStateData(temperature);
339 }
340
341 if (!temperatureState || temperatureState.m_State == EObjectTemperatureState.NEUTRAL)
342 WidgetTrySetText(root_widget, "ItemTemperatureWidget", "");
343 else
344 WidgetTrySetText(root_widget, "ItemTemperatureWidget", temperatureState.m_LocalizedName, temperatureState.m_Color);
345 }
346
347 //--------------------------------------------------------------------------
348 static void UpdateItemInfoWetness(Widget root_widget, EntityAI item)
349 {
350 if ( item.IsInherited( ZombieBase ) || item.IsInherited( Car ) ) return;
351 float wetness = 0;
352
353 if ( item.IsInherited(ItemBase) )
354 {
355 ItemBase item_IB = ItemBase.Cast( item );
356 wetness = item_IB.GetWet();
357 }
358
359 if (item.GetIsFrozen())
360 {
361 WidgetTrySetText(root_widget, "ItemWetnessWidget", "#inv_inspect_frozen", Colors.COLOR_FROZEN);
362 }
363 else if ( wetness < GameConstants.STATE_DAMP )
364 {
365 WidgetTrySetText(root_widget, "ItemWetnessWidget", "");
366 }
367 else if( wetness >= GameConstants.STATE_DAMP && wetness < GameConstants.STATE_WET )
368 {
369 WidgetTrySetText(root_widget, "ItemWetnessWidget", "#inv_inspcet_damp", Colors.COLOR_DAMP);
370 }
371 else if( wetness >= GameConstants.STATE_WET && wetness < GameConstants.STATE_SOAKING_WET )
372 {
373 WidgetTrySetText( root_widget, "ItemWetnessWidget", "#inv_inspect_wet", Colors.COLOR_WET );
374 }
375 else if( wetness >= GameConstants.STATE_SOAKING_WET && wetness < GameConstants.STATE_DRENCHED )
376 {
377 WidgetTrySetText( root_widget, "ItemWetnessWidget", "#inv_inspect_soaking_wet", Colors.COLOR_SOAKING_WET );
378 }
379 else
380 {
381 WidgetTrySetText( root_widget, "ItemWetnessWidget", "#inv_inspect_drenched", Colors.COLOR_DRENCHED );
382 }
383 }
384
385 //--------------------------------------------------------------------------
386 static void UpdateItemInfoQuantity(Widget root_widget, EntityAI item)
387 {
388 if ( item.IsInherited( ZombieBase ) || item.IsInherited( Car ) ) return;
389
390 ItemBase item_base = ItemBase.Cast( item );
391 if( item_base )
392 {
393 float item_quantity = item_base.GetQuantity();
394 int max_quantity = item.GetQuantityMax();
395
396 float quantity_ratio;
397
398 if( max_quantity > 0 && !item.IsInherited( ClothingBase )) // Some items, like books, have max_quantity set to 0 => division by ZERO error in quantity_ratio
399 {
400 string quantity_str;
401 if( item.ConfigGetString("stackedUnit") == "pc." )
402 {
403 if( item_quantity == 1 )
404 {
405 WidgetTrySetText( root_widget, "ItemQuantityWidget", item_quantity.ToString() + " " + "#inv_inspect_piece", Colors.COLOR_DEFAULT );
406 }
407 else
408 {
409 WidgetTrySetText( root_widget, "ItemQuantityWidget", item_quantity.ToString() + " " + "#inv_inspect_pieces", Colors.COLOR_DEFAULT );
410 }
411 }
412 else if( item.ConfigGetString("stackedUnit") == "percentage" )
413 {
414 quantity_ratio = Math.Round( ( item_quantity / max_quantity ) * 100 );
415
416 quantity_str = "#inv_inspect_remaining " + quantity_ratio.ToString() + "#inv_inspect_percent";
417 WidgetTrySetText( root_widget, "ItemQuantityWidget", quantity_str, Colors.COLOR_DEFAULT );
418 }
419 else if( item.ConfigGetString("stackedUnit") == "g" )
420 {
421 quantity_ratio = Math.Round( ( item_quantity / max_quantity ) * 100 );
422
423 quantity_str = "#inv_inspect_remaining " + quantity_ratio.ToString() + "#inv_inspect_percent";
424 WidgetTrySetText( root_widget, "ItemQuantityWidget", quantity_str, Colors.COLOR_DEFAULT );
425 }
426 else if( item.ConfigGetString("stackedUnit") == "ml" )
427 {
428 quantity_ratio = Math.Round( ( item_quantity / max_quantity ) * 100 );
429
430 quantity_str = "#inv_inspect_remaining " + quantity_ratio.ToString() + "#inv_inspect_percent";
431 WidgetTrySetText( root_widget, "ItemQuantityWidget", quantity_str, Colors.COLOR_DEFAULT );
432 }
433 else if( item.IsInherited( Magazine ) )
434 {
435 Magazine magazine_item;
436 Class.CastTo(magazine_item, item);
437
438 if( magazine_item.GetAmmoCount() == 1 )
439 {
440 WidgetTrySetText( root_widget, "ItemQuantityWidget", magazine_item.GetAmmoCount().ToString() + " " + "#inv_inspect_piece", Colors.COLOR_DEFAULT );
441 }
442 else
443 {
444 WidgetTrySetText( root_widget, "ItemQuantityWidget", magazine_item.GetAmmoCount().ToString() + " " + "#inv_inspect_pieces", Colors.COLOR_DEFAULT );
445 }
446 }
447 else
448 {
449 WidgetTrySetText( root_widget, "ItemQuantityWidget", "" );
450 }
451 }
452 else
453 {
454 if ( item.IsInherited( ClothingBase ) )
455 {
456 float heatIsolation = MiscGameplayFunctions.GetCurrentItemHeatIsolation( item_base );
457 if ( heatIsolation <= GameConstants.HEATISO_THRESHOLD_BAD )
458 {
459 WidgetTrySetText( root_widget, "ItemQuantityWidget", "#inv_inspect_iso_worst", GetTemperatureColor( 10 ) );
460 }
461 else if ( ( heatIsolation > GameConstants.HEATISO_THRESHOLD_BAD ) && ( heatIsolation <= GameConstants.HEATISO_THRESHOLD_LOW ) )
462 {
463 WidgetTrySetText( root_widget, "ItemQuantityWidget", "#inv_inspect_iso_low", GetTemperatureColor( 20 ) );
464 }
465 else if ( ( heatIsolation > GameConstants.HEATISO_THRESHOLD_LOW ) && ( heatIsolation <= GameConstants.HEATISO_THRESHOLD_MEDIUM ) )
466 {
467 WidgetTrySetText( root_widget, "ItemQuantityWidget", "#inv_inspect_iso_medium", GetTemperatureColor( 30 ) );
468 }
469 else if ( ( heatIsolation > GameConstants.HEATISO_THRESHOLD_MEDIUM ) && ( heatIsolation <= GameConstants.HEATISO_THRESHOLD_HIGH ) )
470 {
471 WidgetTrySetText( root_widget, "ItemQuantityWidget", "#inv_inspect_iso_high", GetTemperatureColor( 50 ) );
472 }
473 else
474 {
475 WidgetTrySetText( root_widget, "ItemQuantityWidget", "#inv_inspect_iso_excel", GetTemperatureColor( 70 ) );
476 }
477 }
478 else
479 {
480 WidgetTrySetText( root_widget, "ItemQuantityWidget", "" );
481 }
482 }
483 }
484 }
485
486 //--------------------------------------------------------------------------
487 static void UpdateItemInfoWeight(Widget root_widget, EntityAI item)
488 {
489 if (!item.CanDisplayWeight())
490 {
491 WidgetTrySetText(root_widget, "ItemWeightWidget", "", Colors.COLOR_DEFAULT);
492 return;
493 }
494
495 ItemBase item_IB = ItemBase.Cast( item );
496 if( item_IB )
497 {
498 int weight = item_IB.GetWeightEx();
499
500 if (root_widget.GetName() != "BackPanelWidget")
501 {
502 weight = item_IB.GetSingleInventoryItemWeightEx();
503 }
504
505 if (weight >= 1000)
506 {
507 int kilos = Math.Round(weight / 1000.0);
508 WidgetTrySetText(root_widget, "ItemWeightWidget", "#inv_inspect_about" + " " + kilos.ToString() + " " + "#inv_inspect_kg", Colors.COLOR_DEFAULT);
509 }
510 else if (weight >= 500)
511 {
512 WidgetTrySetText(root_widget, "ItemWeightWidget", "#inv_inspect_under_1", Colors.COLOR_DEFAULT);
513 }
514 else if (weight >= 250)
515 {
516 WidgetTrySetText(root_widget, "ItemWeightWidget", "#inv_inspect_under_05", Colors.COLOR_DEFAULT);
517 }
518 else
519 {
520 WidgetTrySetText(root_widget, "ItemWeightWidget", "#inv_inspect_under_025", Colors.COLOR_DEFAULT);
521 }
522 }
523 }
524
525 //--------------------------------------------------------------------------
526 static void UpdateItemInfoFoodStage(Widget root_widget, EntityAI item)
527 {
528 Edible_Base food_item = Edible_Base.Cast( item );
529 if ( food_item && food_item.GetFoodStage() )
530 {
531 FoodStage food_stage = food_item.GetFoodStage();
532 FoodStageType food_stage_type = food_stage.GetFoodStageType();
533
534 switch( food_stage_type )
535 {
536 case FoodStageType.RAW:
537 {
538 WidgetTrySetText( root_widget, "ItemFoodStageWidget", "#inv_inspect_raw", Colors.COLOR_RAW );
539 break;
540 }
541 case FoodStageType.BAKED:
542 {
543 WidgetTrySetText( root_widget, "ItemFoodStageWidget", "#inv_inspect_baked", Colors.COLOR_BAKED );
544 break;
545 }
546 case FoodStageType.BOILED:
547 {
548 WidgetTrySetText( root_widget, "ItemFoodStageWidget", "#inv_inspect_boiled", Colors.COLOR_BOILED );
549 break;
550 }
551 case FoodStageType.DRIED:
552 {
553 WidgetTrySetText( root_widget, "ItemFoodStageWidget", "#inv_inspect_dried", Colors.COLOR_DRIED );
554 break;
555 }
556 case FoodStageType.BURNED:
557 {
558 WidgetTrySetText( root_widget, "ItemFoodStageWidget", "#inv_inspect_burned", Colors.COLOR_BURNED );
559 break;
560 }
561 case FoodStageType.ROTTEN:
562 {
563 WidgetTrySetText( root_widget, "ItemFoodStageWidget", "#inv_inspect_rotten", Colors.COLOR_ROTTEN );
564 break;
565 }
566 }
567 }
568 else
569 {
570 WidgetTrySetText( root_widget, "ItemFoodStageWidget", "" );
571 }
572 }
573
574
575 //--------------------------------------------------------------------------
576 static void UpdateItemInfoCleanness(Widget root_widget, EntityAI item)
577 {
578 ItemBase ib = ItemBase.Cast(item);
579 if(ib && ib.m_Cleanness==1)
580 {
581 WidgetTrySetText( root_widget, "ItemCleannessWidget", "#inv_inspect_cleaned", Colors.WHITEGRAY );
582 }
583 else
584 {
585 WidgetTrySetText( root_widget, "ItemCleannessWidget", "" );
586 }
587 }
588
589
590
591 //--------------------------------------------------------------------------
592 static void WidgetTrySetText(Widget root_widget, string widget_name, string text, int color = 0)
593 {
594 TextWidget widget = TextWidget.Cast( root_widget.FindAnyWidget(widget_name) );
595 RichTextWidget rt_widget = RichTextWidget.Cast( root_widget.FindAnyWidget(widget_name) );
596 if (widget)
597 {
598 widget.SetText(text);
599 Widget widget_background = root_widget.FindAnyWidget(widget_name+"Background");
600 if (widget_background)
601 {
602 if (color != 0)
603 {
604 widget_background.Show( true );
605 widget_background.SetColor(color | 0x7F000000);
606 }
607 else
608 {
609 widget_background.Show( false );
610 }
611 }
612 }
613 if( rt_widget )
614 {
615 rt_widget.Update();
616 }
617 }
618
619 override void OnPlayerDeath()
620 {
621 super.OnPlayerDeath();
622
623 // Close inventory menu when this menu got closed by the character death event as player could be inspecting a item from the inventory
624 // in the moment he dies and the inventory menu is opened too.
625 MissionGameplay missionGameplay = MissionGameplay.Cast(g_Game.GetMission());
626 if (missionGameplay && missionGameplay.GetInventory())
627 {
628 missionGameplay.HideInventory();
629 }
630 }
631};
#define LIQUID_FRESHWATER
#define LIQUID_BEER
#define LIQUID_VODKA
#define LIQUID_GASOLINE
#define LIQUID_SALINE
#define LIQUID_DISINFECTANT
#define LIQUID_WATER
#define LIQUID_DIESEL
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
Super root of all classes in Enforce script.
Definition enscript.c:11
Definition colors.c:4
override FoodStage GetFoodStage()
Definition enmath.c:7
Mission class.
Definition gameplay.c:687
override bool OnMouseButtonDown(Widget w, int x, int y, int button)
override Widget Init()
Definition bookmenu.c:11
override bool OnClick(Widget w, int x, int y, int button)
Definition bookmenu.c:34
DayZGame g_Game
Definition dayzgame.c:3868
FoodStageType
Definition foodstage.c:2
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
proto void GetScreenSize(out int x, out int y)
proto void GetMousePos(out int x, out int y)
int GetTemperatureColor(int temperature)
Definition tools.c:992
const int IDC_CANCEL
Definition constants.c:136
Icon x
Icon y
override void OnPlayerDeath()
void Close()
void SetItem(EntityAI item)