247 int MenuActiveItem = 0;
248 time_t startTime = time(0);
251 Window* menuWindow =
MakeWindow(MenuItems + 2, 19, 1 + sOregonLogoRows + 1, COLS / 2 - 10 - 2);
252 Window* infoWindow =
MakeWindow(4, sOregonLogoCols, 5 + sOregonLogoRows + MenuItems, COLS / 2 - sOregonLogoCols / 2);
256 wattron(menuWindow, A_BOLD |
TermColor(COLOR_CYAN));
257 wborder(menuWindow,
'|',
'|',
'-',
'-',
'+',
'+',
'+',
'+');
258 wattroff(menuWindow, A_BOLD |
TermColor(COLOR_CYAN));
265 for (
int i = 0; i < MenuItems; i++)
267 if (MenuActiveItem == i)
269 wattron(menuWindow, A_BOLD |
TermColor(COLOR_GREEN));
270 mvwprintw(menuWindow, i + 1, 1,
"* %s *", Menu[i]);
271 wattroff(menuWindow, A_BOLD |
TermColor(COLOR_GREEN));
273 else if (Menu[i][0] ==
'-')
274 mvwprintw(menuWindow, i + 1, 1,
"--%s--", Menu[i]);
276 mvwprintw(menuWindow, i + 1, 1,
" %s ", Menu[i]);
303 { 0, 0,
"Players:", INFO_PLAYERS_ONLINE },
304 { 1, 0,
" ", INFO_PLAYERS_QUEUED },
305 { 2, 0,
" ", INFO_PLAYERS_MAX, },
306 { 3, 0,
" ", INFO_EMPTY, },
308 { 0, 34,
"Revision:", INFO_REVISION, },
309 { 1, 34,
"LogMask:", INFO_LOGMASK, },
310 { 2, 34,
"Uptime: ", INFO_UPTIME, },
311 { 3, 34,
"Tickets: ", INFO_TICKETS, }
314 for (
uint32 i = 0; i <
sizeof(InfoTable) /
sizeof(*InfoTable); i++)
316 wmove(infoWindow, InfoTable[i].y, InfoTable[i].x);
317 wattron(infoWindow, A_BOLD |
TermColor(COLOR_GREEN));
318 wprintw(infoWindow,
"%s", InfoTable[i].type);
319 wattroff(infoWindow, A_BOLD |
TermColor(COLOR_GREEN));
320 switch (InfoTable[i].
value)
322 case INFO_PLAYERS_ONLINE:
323 wprintw(infoWindow,
" %u (online)",
sWorld.GetActiveSessionCount());
325 case INFO_PLAYERS_QUEUED:
326 wprintw(infoWindow,
" %u (queued)",
sWorld.GetQueuedSessionCount());
328 case INFO_PLAYERS_MAX:
329 wprintw(infoWindow,
" %u (max)",
sWorld.GetMaxActiveSessionCount() +
sWorld.GetMaxQueuedSessionCount());
332 wprintw(infoWindow,
" %s", _REVISION);
335 wprintw(infoWindow,
" %lu",
sLog.GetLogMask());
339 time_t diff = time(0) - startTime;
343 wprintw(infoWindow,
" %ud %uh %um", days, hours % 24, mins % 60);
347 wprintw(infoWindow,
" %lu",
ticketmgr.GM_TicketList.size());
354 wrefresh(menuWindow);
355 wrefresh(infoWindow);
360 timeout((60 - ((time(0) - startTime) % 60)) * 1000);
366 MenuActiveItem = (MenuActiveItem == 0) ? MenuItems - 1 : (MenuActiveItem - 1);
367 if (Menu[MenuActiveItem][0] ==
'-')
371 MenuActiveItem = (MenuActiveItem >= MenuItems - 1) ? 0 : (MenuActiveItem + 1);
372 if (Menu[MenuActiveItem][0] ==
'-')
379 switch (MenuActiveItem)
400 ResizeWindow(menuWindow, MenuItems + 2, 19, 1 + sOregonLogoRows + 1, std::max<int>(0, COLS / 2 - 10 - 2));
401 ResizeWindow(infoWindow, 4, sOregonLogoCols, 5 + sOregonLogoRows + MenuItems, COLS / 2 - sOregonLogoCols / 2);
403 wattron(menuWindow, A_BOLD |
TermColor(COLOR_CYAN));
404 wborder(menuWindow,
'|',
'|',
'-',
'-',
'+',
'+',
'+',
'+');
405 wattroff(menuWindow, A_BOLD |
TermColor(COLOR_CYAN));
void DestroyWindow(Window *win)
#define sLog
Log class singleton.
Window * MakeWindow(int h, int w, int y, int x)
etc mysql my cnf *Then change max_allowed_packet to a bigger value
void ResizeWindow(Window *win, int h, int w, int y, int x)