file command "chmod file mode"
-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;
- };
-
-
-
-
-
+-maybe allow changing the watching-screen &c layouts too?
-add commandline parameters to dgamelaunch:
dgamelaunch --chpasswd "nick" "newpass"
dgamelaunch --wall "message to mail everyone"