dgamelaunch/TODO

133 lines
5.3 KiB
Plaintext

-pass the correct terminal size to nethack. (dgl handles
term resizes correctly, but nethack doesn't see the new size)
-allow setting banners for the internal menus, with the same method
as normal user-defined menus, but only the banner is used from them.
if no such menu is defined, then uses the default banner file.
-update dgamelaunch.8
-occasionally dgl crashes, leaving the shmem semaphore in a state
where the shmem block has to be freed.
-configure option --ncurses and --ncursesw
< kerio> paxed: it would also be cool to have %g and %s work within a game definition too
< kerio> paxed: is this intended behavior? i can't set two different spooldirs for two different games
[22:45] < kerio> paxed: dgamelaunch bug! :D - you *need* a file called dgamelaunch in the root of the jail -
otherwise the shared memory craps out
[22:48] < kerio> anyway, /dgldir/shmkey would've been better
-when no banner file given, try to make a banner automagically?
(needs some way to name the options given as keys... maybe another
format for the keys that includes a string to be used as the name)
-cursor keys are not restored after watching a game of
curses-nethack.
-$MTIME(filename)
< Napkin> I'd suggest the default of DGL_MAILMSGLEN to be less
< Napkin> there are 4 digits in front of the prompt, paxed. having
it at 80, will cause display errors if someone types more than 75 letters
< Napkin> well, to be precise - not the writing - but deleting
will no longer work, because the cursor won't be moved to the previous
line again
-when exiting from watching a player, move the cursor to the last line
of the screen before enabling the ncurses mode; so when we exit dgl,
the watched player's game is all visible and the menu prompt doesn't
mess it up.
-watching menu will hilight the first matching username... what if we have
more than one game installed, and someone's playing more than one at the
same time? Should also save game#, not just the username.
-allow admin to disable the 'm' mail key in ttyplay.
-update README
-whenever config file has a dir, check that it ends with "/"
-in domailuser(), we need find_curr_player_game(username)
-for menu definitions, allow "default" commands (when user presses a
key not defined in other commands):
commands[default] = ...
-allow the admin to config the watching menu:
-top banner
-bottom banner
-set default sort method
-selectorchars:
watch_selectorchars = "abcdefghijklmn" (a-zA-Z, minus qQ)
-keys:
currently: qQ=return, '.'=sort++, ','=sort--, etc
-update virus to the newest version.
(virus is originally from busybox:
http://git.busybox.net/busybox/tree/editors/vi.c
but that version needs to be made secure)
-allow changing the name where the ttyrecs are saved, like
ttyrec_fn = "%rttyrec/%n/%g/%p.ttyrec"
-maybe save more stuff in the db, if we're using the sqlite
(last login timestamp, watch-menu sort-type, etc)
-Allow using a ttyrec (or similar screen capture) as the menu
text, instead of a text file.
maybe adding a bannertype={auto,txt,ttyrec,screendump}
into a menu def. auto=try to detect it from file extension.
would be useful to be able to define a program to run that
generates the banner? (eg. nethack hiscore list via nethack itself)
to output raw escape codes under ncurses, use write(1, "foo", strlen("foo"))
(must restore cursor position after printing or ncurses is confoosed)
-BUG: cannot quit watching until caught up with the stream.
-allow configuring the watching, new user registration,
email/passwd change, etc. screens.
-add config file command "chmod file mode"
-allow configuring the ttyrec dir location & file format.
-add commandline parameters to dgamelaunch:
dgamelaunch --chpasswd "nick" "newpass"
-some games (robotfindskitten?) are not worth saving into ttyrecs,
make it configurable. if no ttyrecs, then can't watch the game, which is
a pity. maybe rather just save the latest ttyrec, which ties into
having configurable ttyrec filenames...
-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.)
This must be per-game configs; maybe we're running nethack and crawl
on the same server. ...does ttyplay know what game we're watching?
charstrip "name" {
start_state = 0;
state = (0 and 0x0e), 0x00, 1;
state = (1 and 0x0f), 0x0f, 0;
state = (1 and 0x1b), 0x1b, 0;
state = (1 and gfxmap), gfxmap, 1;
# initializes the gfxmap from charstrip "name" gfxmap. could also have
# gfxmap_init = zero;
gfxmap_init = from "name";
# the following will replace characters 128-135 with the listed characters.
# accepts:
# 0xff (hexadecimal), 240 (decimal), 001 (octal), 'x' (character)
gfxmap = 128, (' ', '|', '#', 0xb3, 0x00, 240, 241);
}
in game definition:
char_strips = "name", "name", "name", ...
or maybe add a new command '' set_charstrip "name" ''
-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?
-allow users to run recover themselves
-configurable stuff: allowed chars in usernames,
allow char stripping, ...
- Localization of variables, code clean up
- Use /var/run/nologin and/or dgl-specific nologin file