Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
serverbrowserfavoritestabconsolepages.c
Go to the documentation of this file.
1
class
ServerBrowserFavoritesTabConsolePages
extends
ServerBrowserTabConsolePages
2
{
3
protected
bool
m_IsFavoriteChanged
;
4
5
protected
override
void
Construct
(
Widget
parent, ServerBrowserMenuNew menu,
TabType
type)
6
{
7
super.Construct(parent, menu, type);
8
9
// disabling filter section
10
m_ResetFilters
.Show(
false
);
11
m_Root
.FindAnyWidget(
"filters_content"
).Show(
false
);
12
m_Root
.FindAnyWidget(
"show_details_button"
).Show(
false
);
13
m_Root
.FindAnyWidget(
"spacer"
).Show(
false
);
14
m_Root
.FindAnyWidget(
"spacer1"
).Show(
false
);
15
m_Root
.FindAnyWidget(
"spacer5"
).Show(
false
);
16
m_Root
.FindAnyWidget(
"server_list_root_nav_wrapper"
).Show(
false
);
17
m_RefreshList
.Show(m_MouseKeyboardControlled);
18
19
SwitchToDetails
(
false
);
20
21
m_Menu
.ShowYButton(
false
);
22
}
23
24
override
void
OnLoadServersAsyncFinished
()
25
{
26
// m_TotalLoadedServers for FAVORITES tab is determined by total number of favorited servers
27
TStringArray
favIds =
m_Menu
.GetFavoritedServerIds();
28
m_TotalLoadedServers
= favIds.Count();
29
super.OnLoadServersAsyncFinished();
30
SetFocusServers();
31
32
int
totalVisibleEntries = 0;
33
foreach
(
string
serverID, ServerBrowserEntry entry:
m_EntryWidgets
)
34
{
35
if
(entry.GetRoot().IsVisible())
36
totalVisibleEntries++;
37
}
38
39
if
(
GetTabType
() ==
TabType
.FAVORITE && totalVisibleEntries == 0)
40
GetGame
().GetCallQueue(
CALL_CATEGORY_GUI
).Call(
m_Menu
.SwitchToOfficalTab);
41
}
42
43
protected
override
void
LoadEntries
(
int
cur_page_index ,
GetServersResultRowArray
page_entries)
44
{
45
if
(cur_page_index == 1)
46
{
47
m_OnlineFavServers
.Clear();
48
}
49
50
super.LoadEntries(cur_page_index, page_entries);
51
}
52
53
protected
override
void
LoadExtraEntries
(
int
index)
54
{
55
if
( !
m_Menu
||
m_Menu
.GetServersLoadingTab() !=
m_TabType
)
56
{
57
return
;
58
}
59
60
// m_PagesCount for FAVORITES tab is determined by total number of favorited servers
61
TStringArray
favIds =
m_Menu
.GetFavoritedServerIds();
62
m_PagesCount =
Math
.
Ceil
((
float
)favIds.Count() /
SERVER_BROWSER_PAGE_SIZE
);
63
64
// offlineFavIds will always have same order, even across pages,
65
// to ensure we display only fav servers that HAVEN'T been displayed yet
66
TStringArray
offlineFavIds =
new
TStringArray
();
67
offlineFavIds.Reserve(favIds.Count() -
m_OnlineFavServers
.Count());
68
foreach
(
string
ipPort : favIds)
69
{
70
if
(
m_OnlineFavServers
.Find(ipPort) == -1)
71
{
72
offlineFavIds.Insert(ipPort);
73
}
74
}
75
76
// appending offline servers to server list
77
int
totalServersAlreadyShown = (
GetCurrentPage
() - 1) *
SERVER_BROWSER_PAGE_SIZE
+ index;
78
int
startingIndex = totalServersAlreadyShown -
m_OnlineFavServers
.Count();
79
for
(
int
i = startingIndex; i < offlineFavIds.Count(); ++i)
80
{
81
string
favServerId = offlineFavIds[i];
82
83
// only append server if there is a free entry left on the page
84
if
(index >=
SERVER_BROWSER_PAGE_SIZE
)
85
{
86
break
;
87
}
88
89
if
(
m_OnlineFavServers
.Find(favServerId) > -1)
90
{
91
continue
;
92
}
93
94
array<string>
parts =
new
array<string>
;
95
favServerId.
Split
(
":"
, parts);
96
97
// ensure server id has correct format
98
if
(parts.Count() != 2)
99
{
100
continue
;
101
}
102
103
GetServersResultRow
offlineRow =
new
GetServersResultRow
();
104
offlineRow.
m_Name
= favServerId;
105
offlineRow.
m_Id
= favServerId;
106
offlineRow.
m_HostIp
= parts[0];
107
offlineRow.
m_HostPort
= parts[1].ToInt();
108
offlineRow.
m_SteamQueryPort
= offlineRow.
m_HostPort
;
109
offlineRow.
m_Favorite
=
true
;
110
111
ServerBrowserEntry entry = GetServerEntryByIndex( index );
112
entry.SetIsOnline(
false
);
113
entry.FillInfo(offlineRow);
114
entry.UpdateEntry();
115
116
m_EntryWidgets
.Insert(favServerId, entry);
117
m_EntriesSorted
[
m_SortType
].Insert(offlineRow);
118
119
index++;
120
}
121
}
122
123
override
void
RefreshList
()
124
{
125
super.RefreshList();
126
#ifdef PLATFORM_WINDOWS
127
m_CurrentFilterInput
.SetFavorited(
true
);
128
#endif
129
AddFavoritesToFilter
(
m_CurrentFilterInput
);
130
OnlineServices
.
LoadServers
(
m_CurrentFilterInput
);
131
}
132
133
#ifdef DIAG_DEVELOPER
134
override
void
RefreshServerList
(
bool
forcePageChange =
false
)
135
#else
136
override
void
RefreshServerList
()
137
#endif
138
{
139
super.RefreshServerList();
140
141
#ifdef DIAG_DEVELOPER
142
if
(
m_IsFavoriteChanged
|| forcePageChange)
143
#else
144
if
(
m_IsFavoriteChanged
)
145
#endif
146
{
147
SetCurrentPage
(1);
148
m_IsFavoriteChanged
=
false
;
149
}
150
}
151
152
void
SetFavoriteChanged
(
bool
state)
153
{
154
m_IsFavoriteChanged
= state;
155
}
156
157
override
bool
PassFilter
(
GetServersResultRow
result)
158
{
159
if
(
m_TabType
==
TabType
.FAVORITE)
160
{
161
if
(!
m_Menu
.IsFavorited(result.
GetIpPort
()))
162
{
163
return
false
;
164
}
165
}
166
167
return
super.PassFilter(result);
168
}
169
170
override
void
PressThumbRight
()
171
{
172
switch
(
m_SelectedPanel
)
173
{
174
// filters are disabled for console FAVORITES tab, so do nothing
175
case
SelectedPanel.FILTERS:
176
{
177
break
;
178
}
179
default
:
180
{
181
super.PressThumbRight();
182
break
;
183
}
184
}
185
}
186
187
override
void
PressX
()
188
{
189
if
( (
g_Game
.GetTime() - m_TimeLastServerRefresh) > 1000 )
190
{
191
SetCurrentPage
(1);
192
super.PressX();
193
}
194
}
195
196
override
void
SetFocusFilters
()
197
{
198
super.SetFocusFilters();
199
200
UpdatePageButtons();
201
}
202
}
GetServersResultRowArray
array< ref GetServersResultRow > GetServersResultRowArray
Definition
bioslobbyservice.c:331
GetServersResultRow
GetServersResultRow the output structure of the GetServers operation that represents one game server.
Definition
bioslobbyservice.c:170
GetServersResultRow::GetIpPort
string GetIpPort()
Definition
bioslobbyservice.c:221
GetServersResultRow::m_Id
string m_Id
Definition
bioslobbyservice.c:171
GetServersResultRow::m_Name
string m_Name
Definition
bioslobbyservice.c:173
GetServersResultRow::m_Favorite
bool m_Favorite
Definition
bioslobbyservice.c:219
GetServersResultRow::m_HostPort
int m_HostPort
Definition
bioslobbyservice.c:176
GetServersResultRow::m_SteamQueryPort
int m_SteamQueryPort
Definition
bioslobbyservice.c:217
GetServersResultRow::m_HostIp
string m_HostIp
Definition
bioslobbyservice.c:175
Math
Definition
enmath.c:7
OnlineServices
Definition
onlineservices.c:2
OnlineServices::LoadServers
static void LoadServers(notnull GetServersInput inputValues)
Definition
onlineservices.c:96
ServerBrowserTabConsolePages
Definition
serverbrowserfavoritestabconsolepages.c:2
ServerBrowserTabConsolePages::PressX
override void PressX()
Definition
serverbrowserfavoritestabconsolepages.c:187
ServerBrowserTabConsolePages::SetFocusFilters
override void SetFocusFilters()
Definition
serverbrowserfavoritestabconsolepages.c:196
ServerBrowserTabConsolePages::SetFavoriteChanged
void SetFavoriteChanged(bool state)
Definition
serverbrowserfavoritestabconsolepages.c:152
ServerBrowserTabConsolePages::LoadExtraEntries
override void LoadExtraEntries(int index)
Definition
serverbrowserfavoritestabconsolepages.c:53
ServerBrowserTabConsolePages::LoadEntries
override void LoadEntries(int cur_page_index, GetServersResultRowArray page_entries)
Definition
serverbrowserfavoritestabconsolepages.c:43
ServerBrowserTabConsolePages::RefreshList
override void RefreshList()
Definition
serverbrowserfavoritestabconsolepages.c:123
ServerBrowserTabConsolePages::RefreshServerList
override void RefreshServerList()
Definition
serverbrowserfavoritestabconsolepages.c:136
ServerBrowserTabConsolePages::m_IsFavoriteChanged
bool m_IsFavoriteChanged
Definition
serverbrowserfavoritestabconsolepages.c:3
ServerBrowserTabConsolePages::PressThumbRight
override void PressThumbRight()
Definition
serverbrowserfavoritestabconsolepages.c:170
ServerBrowserTabConsolePages::OnLoadServersAsyncFinished
override void OnLoadServersAsyncFinished()
Definition
serverbrowserfavoritestabconsolepages.c:24
ServerBrowserTabConsolePages::PassFilter
override bool PassFilter(GetServersResultRow result)
Definition
serverbrowserfavoritestabconsolepages.c:157
ServerBrowserTabConsolePages::Construct
override void Construct(Widget parent, ServerBrowserMenuNew menu, TabType type)
Definition
serverbrowserfavoritestabconsolepages.c:5
Widget
Definition
enwidgets.c:190
array
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Definition
isboxcollidinggeometryproxyclasses.c:28
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
GetGame
DayZGame GetGame()
Definition
gameplay.c:636
TStringArray
array< string > TStringArray
Definition
enscript.c:712
Math::Ceil
static proto float Ceil(float f)
Returns ceil of value.
string::Split
void Split(string sample, out array< string > output)
Splits string into array of strings separated by 'sample'.
Definition
enstring.c:396
CALL_CATEGORY_GUI
const int CALL_CATEGORY_GUI
Definition
tools.c:9
SERVER_BROWSER_PAGE_SIZE
const int SERVER_BROWSER_PAGE_SIZE
Definition
serverbrowsermenunew.c:6
m_EntriesSorted
ref map< ESortType, ref array< ref GetServersResultRow > > m_EntriesSorted
Definition
serverbrowsertab.c:75
GetTabType
TabType GetTabType()
Definition
serverbrowsertab.c:639
m_TabType
TabType m_TabType
Definition
serverbrowsertab.c:40
m_CurrentFilterInput
ref GetServersInput m_CurrentFilterInput
Definition
serverbrowsertab.c:57
m_EntryWidgets
ref map< string, ref ServerBrowserEntry > m_EntryWidgets
Definition
serverbrowsertab.c:32
SwitchToDetails
void SwitchToDetails(bool focus=true)
TabType
TabType
Definition
serverbrowsertab.c:2
m_TotalLoadedServers
int m_TotalLoadedServers
Definition
serverbrowsertab.c:49
m_Menu
ServerBrowserMenuNew m_Menu
Definition
serverbrowsertab.c:37
m_SelectedPanel
SelectedPanel m_SelectedPanel
Definition
serverbrowsertab.c:44
m_SortType
ESortType m_SortType
Definition
serverbrowsertab.c:41
AddFavoritesToFilter
void AddFavoritesToFilter(GetServersInput input)
Definition
serverbrowsertab.c:452
GetCurrentPage
int GetCurrentPage()
Definition
serverbrowsertab.c:435
m_ResetFilters
Widget m_ResetFilters
Definition
serverbrowsertab.c:61
m_RefreshList
Widget m_RefreshList
Definition
serverbrowsertab.c:60
m_OnlineFavServers
ref set< string > m_OnlineFavServers
Definition
serverbrowsertab.c:77
SetCurrentPage
void SetCurrentPage(int page_num)
Definition
serverbrowsertab.c:430
m_Root
Widget m_Root
Definition
sizetochild.c:91
Games
Dayz
scripts
5_mission
gui
newui
serverbrowsermenu
serverbrowserfavoritestabconsolepages.c
Generated by
1.17.0