[BACK]Return to TODO CVS log [TXT][DIR] Up to [contributed] / dgamelaunch-openbsd

File: [contributed] / dgamelaunch-openbsd / TODO (download)

Revision 1.1, Tue Mar 9 14:36:00 2021 UTC (3 years, 1 month ago) by rubenllorente
Branch point for: MAIN

Initial revision

-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