Move watching-menu column info into struct.
git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@549 db0b04b0-f4d1-0310-9a6d-de3e77497b0e
This commit is contained in:
parent
082c777fe8
commit
124161588a
|
@ -614,6 +614,24 @@ inprogressmenu (int gameid)
|
||||||
|
|
||||||
int di;
|
int di;
|
||||||
|
|
||||||
|
struct dg_watchcols {
|
||||||
|
int dat;
|
||||||
|
int sortmode;
|
||||||
|
int x;
|
||||||
|
char *colname;
|
||||||
|
char *fmt;
|
||||||
|
} watchcols[] = {
|
||||||
|
{0, SORTMODE_NONE, 1, "", "%s)"},
|
||||||
|
{1, SORTMODE_USERNAME, 4, "Username", "%-15s"},
|
||||||
|
{2, SORTMODE_GAMENUM, 21, "Game", "%-5s"},
|
||||||
|
{3, SORTMODE_WINDOWSIZE, 29, "Size", "%s"},
|
||||||
|
{4, SORTMODE_STARTTIME, 37, "Start date & time", "%s"},
|
||||||
|
{5, SORTMODE_IDLETIME, 58, "Idle time", "%-10s"},
|
||||||
|
#ifdef USE_SHMEM
|
||||||
|
{6, SORTMODE_WATCHERS, 70, "Watchers", "%s"},
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
struct dg_shm *shm_dg_data = NULL;
|
struct dg_shm *shm_dg_data = NULL;
|
||||||
struct dg_shm_game *shm_dg_game = NULL;
|
struct dg_shm_game *shm_dg_game = NULL;
|
||||||
|
|
||||||
|
@ -654,23 +672,11 @@ inprogressmenu (int gameid)
|
||||||
if (len > 0) {
|
if (len > 0) {
|
||||||
mvaddstr (3, 1, "The following games are in progress:");
|
mvaddstr (3, 1, "The following games are in progress:");
|
||||||
|
|
||||||
#define dgl_sortprintw(mode, x, str) \
|
for (di = 0; di < ARRAY_SIZE(watchcols); di++) {
|
||||||
if (sortmode == mode) attron(title_attr); \
|
if (sortmode == watchcols[di].sortmode) attron(title_attr);
|
||||||
mvprintw(top_banner_hei,x,str); \
|
mvprintw(top_banner_hei, watchcols[di].x, watchcols[di].colname);
|
||||||
if (sortmode == mode) attroff(title_attr);
|
if (sortmode == watchcols[di].sortmode) attroff(title_attr);
|
||||||
|
}
|
||||||
mvprintw(top_banner_hei,1," ");
|
|
||||||
|
|
||||||
dgl_sortprintw(SORTMODE_USERNAME, 4, "Username")
|
|
||||||
dgl_sortprintw(SORTMODE_GAMENUM, 21, "Game")
|
|
||||||
dgl_sortprintw(SORTMODE_WINDOWSIZE, 29, "Size")
|
|
||||||
dgl_sortprintw(SORTMODE_STARTTIME, 37, "Start date & time")
|
|
||||||
dgl_sortprintw(SORTMODE_IDLETIME, 58, "Idle time")
|
|
||||||
#ifdef USE_SHMEM
|
|
||||||
dgl_sortprintw(SORTMODE_WATCHERS, 70, "Watchers")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef dgl_sortprintw
|
|
||||||
}
|
}
|
||||||
|
|
||||||
shm_sem_wait(shm_dg_data);
|
shm_sem_wait(shm_dg_data);
|
||||||
|
@ -690,11 +696,6 @@ inprogressmenu (int gameid)
|
||||||
snprintf (gametype, sizeof gametype, "%3dx%3d",
|
snprintf (gametype, sizeof gametype, "%3dx%3d",
|
||||||
games[i + offset]->ws_col, games[i + offset]->ws_row);
|
games[i + offset]->ws_col, games[i + offset]->ws_row);
|
||||||
|
|
||||||
#ifdef USE_SHMEM
|
|
||||||
# define WATCH_LINE_FORMAT "%c) %-15s %-5s %s %s %s %-10s %i"
|
|
||||||
#else
|
|
||||||
# define WATCH_LINE_FORMAT "%c) %-15s %-5s %s %s %s %-10s"
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
time_t ctime;
|
time_t ctime;
|
||||||
long secs, mins, hours;
|
long secs, mins, hours;
|
||||||
|
@ -711,16 +712,23 @@ inprogressmenu (int gameid)
|
||||||
snprintf(idletime, 10, "%ldm %lds", mins, secs);
|
snprintf(idletime, 10, "%ldm %lds", mins, secs);
|
||||||
}
|
}
|
||||||
|
|
||||||
mvprintw (top_banner_hei + 1 + i, 1, WATCH_LINE_FORMAT,
|
for (di = 0; di < ARRAY_SIZE(watchcols); di++) {
|
||||||
selectorchars[i], games[i + offset]->name, myconfig[games[i + offset]->gamenum]->shortname, gametype,
|
char tmpbuf[80];
|
||||||
games[i + offset]->date, games[i + offset]->time,
|
switch (watchcols[di].dat) {
|
||||||
idletime,
|
default: break;
|
||||||
|
case 0: tmpbuf[0] = selectorchars[i]; tmpbuf[1] = '\0'; break;
|
||||||
|
case 1: snprintf(tmpbuf, 80, "%s", games[i + offset]->name); break;
|
||||||
|
case 2: snprintf(tmpbuf, 80, "%s", myconfig[games[i + offset]->gamenum]->shortname); break;
|
||||||
|
case 3: snprintf(tmpbuf, 80, "%s", gametype); break;
|
||||||
|
case 4: snprintf(tmpbuf, 80, "%s %s", games[i + offset]->date, games[i + offset]->time); break;
|
||||||
|
case 5: snprintf(tmpbuf, 80, "%s", idletime); break;
|
||||||
#ifdef USE_SHMEM
|
#ifdef USE_SHMEM
|
||||||
(games[i+offset]->is_in_shm ? shm_dg_game[games[i+offset]->shm_idx].nwatchers : -1)
|
case 6: snprintf(tmpbuf, 80, "%li", (games[i+offset]->is_in_shm ? shm_dg_game[games[i+offset]->shm_idx].nwatchers : -1)); break;
|
||||||
#else
|
|
||||||
0
|
|
||||||
#endif
|
#endif
|
||||||
);
|
}
|
||||||
|
tmpbuf[79] = '\0';
|
||||||
|
mvprintw(top_banner_hei + 1 + i, watchcols[di].x, watchcols[di].fmt, tmpbuf);
|
||||||
|
}
|
||||||
|
|
||||||
if (i + offset == selected) attroff(selected_attr);
|
if (i + offset == selected) attroff(selected_attr);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue