dgamelaunch/TODO

151 lines
4.2 KiB
Plaintext
Raw Normal View History

-allow setting the new rcfile access rights.
-allow configuring the ttyrec dir location & file format.
-add new config file commands:
x -chpasswd (change user's password)
x -chmail (change user's email address)
x -watch_menu (go to the watching menu)
x -login (login user)
x -newuser (register new user)
x -quit (quit from dgl)
-game_menu "x" (go to game menu "x")
-return (return to main menu)
-start_game (start the selected game)
-maybe allow new menu options configurable in config file, like
commands['O', "Edit config file with foo"] = exec "foo" "rcfile"
OR:
menu "mainmenu_anon" {
option {
keys = 'l'
name = "l) Login"
commands = login
}
option {
keys = 'r'
name = "r) Register new user"
commands = newuser
flags = allow_new_nicks
}
option {
keys = 'w'
name = "w) Watch games in progress"
commands = watch_menu
}
emptyline
option {
keys = 'q', 'Q'
name = "q) Quit"
commands = quit
}
}
possibly adding a location = (x,y) key into menu option, allowing
absolute positioning of the option.
OR: (this looks nicer, but requires also editing the external text files)
menu "mainmenu_anon" {
banner = "dglmenu_main_anon.txt"
cursor = (x,y)
commands['l'] = login
commands['r'] = newuser
commands['w'] = watch_menu
commands['q'] = quit
}
menu "mainmenu_loggedin" {
banner = "dglmenu_main_loggedin.txt"
cursor = (x,y)
commands['c'] = chpasswd
commands['e'] = chmail
commands['w'] = watch_menu
commands['q', 'Q'] = quit
commands['1'] = game_menu "NH343"
commands['2'] = game_menu "Crxxx"
commands['3'] = game_menu "NhStb"
}
and the game submenus?
define {
blahblahblah game data here
short_name = "NH343"
menu {
banner = "dglmenu_game_nh343.txt"
cursor = (x,y)
commands['c'] = chpasswd
commands['e'] = chmail
commands['w'] = watch_menu
commands['o'] = exec "virus" "%rrcfiles/%n.nethackrc"
commands['q'] = return
commands['p'] = # back up savefile
commands = cp "/var/games/nethack/save/%u%n.gz" "/var/games/nethack/save/%u%n.gz.bak",
# set NETHACKOPTIONS to point to the rcfile
setenv "NETHACKOPTIONS" "@%rrcfiles/%n.nethackrc",
# set up nethack mail stuff, assuming it's compiled with it...
setenv "MAIL" "/var/mail/%n",
setenv "SIMPLEMAIL" "1",
# don't let the mail file grow
unlink "/var/mail/%n",
# aannnd we're off!
start_game
}
}
and maybe allow changing the watching-screen layout too?
struct dg_menuoption
{
char *keys;
struct dg_cmdpart *cmdqueue;
struct dg_menuoption *next;
};
struct dg_menu
{
char *banner_fn;
int cursor_x, cursor_y; /* coord to put cursor after drawing banner */
struct dg_menuoption *options;
};
-add commandline parameters to dgamelaunch:
dgamelaunch --chpasswd "nick" "newpass"
dgamelaunch --wall "message to mail everyone"
these are obviously only for the server admin...
-allow setting the default watch-screen sortmode in config file.
-some games (robotfindskitten?) are not worth saving into ttyrecs, make it configurable.
-allow configuring ttyplay.c; some games may use different clear-screen
commands. (see for example crawl)
-allow configuring the gfx stripping. (number of chars, types of stripping,
include unicode stripping from crawl dgl, etc)
-public (no-password) accounts? (a per-user flag) what happens when someone
is playing on the account and someone else logins and we start playing?
-change the watching screen not to show the 'press 'm' to mail user'
part, if spool isn't enabled.
-info screen (more than just the banner), for info about the game(s)
and the server, etc.
-allow more than one editor per dgl
-allow users to run recover themselves
-make dgl show # of watchers
-configurable stuff: allowed chars in usernames,
allow char stripping, ...
- Flags for operators/staff/admins or (optionally) user-bans.
- Localization of variables, code clean up
- Use /var/run/nologin and/or dgl-specific nologin file
- Honor window size changes (currently the player has to relogin if window
size changes)