DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ RenderList()

void ScriptConsoleVicinityTab::RenderList ( )
inlineprotected

См. определение в файле ScriptConsoleVicinityTab.c строка 37

38 {
39 float radius = m_DistanceWidget.GetText().ToFloat();
40 if (!radius)
41 return;
42 array<Object> objects = new array<Object>();
43 array<CargoBase> cargo = new array<CargoBase>();
44
45 vector playerPos = g_Game.GetCurrentCameraPosition();
46 g_Game.GetObjectsAtPosition3D(playerPos, radius, objects,cargo);
47 m_VicinityListbox.ClearItems();
48 m_VicinityItems.Clear();
49
50 if (m_Selected && objects.Find(m_Selected) == -1)
51 {
52 objects.Insert(m_Selected);
53 }
54
55 map<int, Object> objectsMap = new map<int, Object>();
56 array<int> distances = new array<int>();
57
58 foreach (int x, Object obj:objects)
59 {
60 int dist = vector.Distance(playerPos, obj.GetPosition()) * 1000;
61
62 while (objectsMap.Contains(dist))//hacking for when multiple objects are at the same distance from the player, otherwise sorting using map will fail
63 dist++;
64 objectsMap.Insert(dist, obj);
65 distances.Insert(dist);
66 }
67
68 distances.Sort();
69
70 foreach (int dst:distances)
71 {
72 Object o = objectsMap.Get(dst);
73 if (!o)
74 continue;
75 int i = 0;
76 if (o.Type() != Object)
77 {
78 m_VicinityItems.Insert(o);//insert at the end
79 int indx = m_VicinityListbox.AddItem(o.GetType(),null,0,-1);
80 float distanceMeters = dst / 1000;
81 m_VicinityListbox.SetItem(indx, distanceMeters.ToString(),null,1);
82 i++;
83
84 if (m_Selected == o)
85 {
86 m_VicinityListbox.SelectRow(indx);
87 }
88 }
89 }
90
92 }
map
Определения ControlsXboxNew.c:4
DayZGame g_Game
Определения DayZGame.c:4074
Icon x
static Object m_Selected
Определения ScriptConsoleVicinityTab.c:4
ref array< Object > m_VicinityItems
Определения ScriptConsoleVicinityTab.c:9
TextListboxWidget m_VicinityListbox
Определения ScriptConsoleVicinityTab.c:6
EditBoxWidget m_DistanceWidget
Определения ScriptConsoleVicinityTab.c:8
proto string ToString(bool simple=true)
class LOD Object

Перекрестные ссылки vector::Distance(), g_Game, m_DistanceWidget, m_Selected, m_VicinityItems, m_VicinityListbox, float::ToString(), UpdateSelected() и x.

Используется в InitializeTab() и OnChange().