Annotation of dgamelaunch-openbsd/TODO, Revision 1.1
1.1 ! rubenllo 1:
! 2: -pass the correct terminal size to nethack. (dgl handles
! 3: term resizes correctly, but nethack doesn't see the new size)
! 4:
! 5: -allow setting banners for the internal menus, with the same method
! 6: as normal user-defined menus, but only the banner is used from them.
! 7: if no such menu is defined, then uses the default banner file.
! 8:
! 9: -update dgamelaunch.8
! 10:
! 11: -occasionally dgl crashes, leaving the shmem semaphore in a state
! 12: where the shmem block has to be freed.
! 13:
! 14: -configure option --ncurses and --ncursesw
! 15:
! 16: < kerio> paxed: it would also be cool to have %g and %s work within a game definition too
! 17:
! 18: < kerio> paxed: is this intended behavior? i can't set two different spooldirs for two different games
! 19:
! 20:
! 21: [22:45] < kerio> paxed: dgamelaunch bug! :D - you *need* a file called dgamelaunch in the root of the jail -
! 22: otherwise the shared memory craps out
! 23: [22:48] < kerio> anyway, /dgldir/shmkey would've been better
! 24:
! 25:
! 26:
! 27: -when no banner file given, try to make a banner automagically?
! 28: (needs some way to name the options given as keys... maybe another
! 29: format for the keys that includes a string to be used as the name)
! 30:
! 31: -cursor keys are not restored after watching a game of
! 32: curses-nethack.
! 33:
! 34: -$MTIME(filename)
! 35:
! 36: < Napkin> I'd suggest the default of DGL_MAILMSGLEN to be less
! 37: < Napkin> there are 4 digits in front of the prompt, paxed. having
! 38: it at 80, will cause display errors if someone types more than 75 letters
! 39: < Napkin> well, to be precise - not the writing - but deleting
! 40: will no longer work, because the cursor won't be moved to the previous
! 41: line again
! 42:
! 43: -when exiting from watching a player, move the cursor to the last line
! 44: of the screen before enabling the ncurses mode; so when we exit dgl,
! 45: the watched player's game is all visible and the menu prompt doesn't
! 46: mess it up.
! 47: -watching menu will hilight the first matching username... what if we have
! 48: more than one game installed, and someone's playing more than one at the
! 49: same time? Should also save game#, not just the username.
! 50: -allow admin to disable the 'm' mail key in ttyplay.
! 51: -update README
! 52: -whenever config file has a dir, check that it ends with "/"
! 53: -in domailuser(), we need find_curr_player_game(username)
! 54: -for menu definitions, allow "default" commands (when user presses a
! 55: key not defined in other commands):
! 56: commands[default] = ...
! 57:
! 58: -allow the admin to config the watching menu:
! 59: -top banner
! 60: -bottom banner
! 61: -set default sort method
! 62: -selectorchars:
! 63: watch_selectorchars = "abcdefghijklmn" (a-zA-Z, minus qQ)
! 64: -keys:
! 65: currently: qQ=return, '.'=sort++, ','=sort--, etc
! 66:
! 67: -update virus to the newest version.
! 68: (virus is originally from busybox:
! 69: http://git.busybox.net/busybox/tree/editors/vi.c
! 70: but that version needs to be made secure)
! 71: -allow changing the name where the ttyrecs are saved, like
! 72: ttyrec_fn = "%rttyrec/%n/%g/%p.ttyrec"
! 73: -maybe save more stuff in the db, if we're using the sqlite
! 74: (last login timestamp, watch-menu sort-type, etc)
! 75: -Allow using a ttyrec (or similar screen capture) as the menu
! 76: text, instead of a text file.
! 77: maybe adding a bannertype={auto,txt,ttyrec,screendump}
! 78: into a menu def. auto=try to detect it from file extension.
! 79: would be useful to be able to define a program to run that
! 80: generates the banner? (eg. nethack hiscore list via nethack itself)
! 81: to output raw escape codes under ncurses, use write(1, "foo", strlen("foo"))
! 82: (must restore cursor position after printing or ncurses is confoosed)
! 83: -BUG: cannot quit watching until caught up with the stream.
! 84: -allow configuring the watching, new user registration,
! 85: email/passwd change, etc. screens.
! 86: -add config file command "chmod file mode"
! 87: -allow configuring the ttyrec dir location & file format.
! 88: -add commandline parameters to dgamelaunch:
! 89: dgamelaunch --chpasswd "nick" "newpass"
! 90: -some games (robotfindskitten?) are not worth saving into ttyrecs,
! 91: make it configurable. if no ttyrecs, then can't watch the game, which is
! 92: a pity. maybe rather just save the latest ttyrec, which ties into
! 93: having configurable ttyrec filenames...
! 94: -allow configuring ttyplay.c; some games may use different clear-screen
! 95: commands. (see for example crawl)
! 96: -allow configuring the gfx stripping. (number of chars, types of stripping,
! 97: include unicode stripping from crawl dgl, etc.)
! 98: This must be per-game configs; maybe we're running nethack and crawl
! 99: on the same server. ...does ttyplay know what game we're watching?
! 100:
! 101: charstrip "name" {
! 102: start_state = 0;
! 103: state = (0 and 0x0e), 0x00, 1;
! 104: state = (1 and 0x0f), 0x0f, 0;
! 105: state = (1 and 0x1b), 0x1b, 0;
! 106: state = (1 and gfxmap), gfxmap, 1;
! 107:
! 108: # initializes the gfxmap from charstrip "name" gfxmap. could also have
! 109: # gfxmap_init = zero;
! 110: gfxmap_init = from "name";
! 111:
! 112: # the following will replace characters 128-135 with the listed characters.
! 113: # accepts:
! 114: # 0xff (hexadecimal), 240 (decimal), 001 (octal), 'x' (character)
! 115: gfxmap = 128, (' ', '|', '#', 0xb3, 0x00, 240, 241);
! 116: }
! 117:
! 118:
! 119: in game definition:
! 120: char_strips = "name", "name", "name", ...
! 121: or maybe add a new command '' set_charstrip "name" ''
! 122:
! 123:
! 124: -public (no-password) accounts? (a per-user flag) what happens when someone
! 125: is playing on the account and someone else logins and we start playing?
! 126: -allow users to run recover themselves
! 127: -configurable stuff: allowed chars in usernames,
! 128: allow char stripping, ...
! 129:
! 130: - Localization of variables, code clean up
! 131:
! 132: - Use /var/run/nologin and/or dgl-specific nologin file
CVSweb