code duplication
[netris.git] / TODO
diff --git a/TODO b/TODO
index 6ba9539a1dadc0ed4157418881af31b9753e3789..3a9411f61110f415bfac9f694eaabea8bbb78a31 100644 (file)
--- a/TODO
+++ b/TODO
- * check out quadra gravity: single block over multiplayer junkhole
-   -> piece falls down
+possible bugs
 
----- near-future: ------------------------------------------------------------
+       * fail on insufficient space
 
- * only global pause (handled by server in mp)
-   every client still has readiness flag
- * piece seperation when middle cleared away? (check quadra -> piece split)
- * correct cursorposition at quit
- * echo \r
- * transmit player fields of game in progress to new player
-       * server has to maintain copy of player fields
-       * server also handles endgame stats
- * completely fix redraw
- * server should deny duplicate nicks
- * display total frags for players (by server?)
- * spacebar toggles readiness as well
- * wrong time after first match at second player
 
+near-future
 
----- asap: -------------------------------------------------------------------
+       * only global pause (handled by server in mp)
+         every client still has readiness flag
+       * correct cursorposition at quit
+       * echo \r
+       * transmit player fields of game in progress to new player
+               * server has to maintain copy of player fields
+               * server also handles endgame stats
+       * completely fix redraw
+       * server should deny duplicate nicks
+       * display total frags for players (by server?)
+       * spacebar toggles readiness as well
+               * seperate set of key bindings during pause?
+       * wrong time after first match at second player
+       * toggleable message window
 
- * MENUTHINGY :)
-       * write options to file
- * all messages in single include file
- * timestamps
-       * backtrace...
-               * multiple players using a single (larger) field
- * wrap multiline messages at word end
- * commands (/team)
- * observers (join as g/o player)
- * bot as seperate client
- * time-based singleplayer leveling?
- * fix -f (both client+server)
- * more server options (field size..)
 
+asap
 
----- distant future: ---------------------------------------------------------
+       * MENUTHINGY :)
+               * write options to file
+       * all messages in single include file
+       * timestamps
+               * backtrace...
+                       * multiple players using a single (larger) field
+       * wrap multiline messages at word end
+       * commands
+               * basic irc / tetrinet client: /me, /msg
+               * basic tetrinet client: /move
+               * server info: /who (also in tetrinet), /version, /whois
+               * /nick, /team (requires server passing)
+               * remaining tetrinet: /join, /list, /op, /kick,
+                 /winlist, /setwinlist, /start, /stats, /tstats,
+                 /rules, /news, /faqs, /features, /motd
+       * observers (join as g/o player)
+       * bot as seperate client
+       * time-based singleplayer leveling?
+       * fix -f (both client+server)
+       * more server options (field size..)
+       * save hiscores
 
- * different key procedure? (allowing for multiple keys simoultaniously?)
- * vertical shrinking of enemy fields (merging two lines into one!)
- * server can add lines after specified time
- * sounds
- * graphics.... (or at least x version for keys)
- * extra alarm event for effects
-       * line clear animations (flash)
- * multiple next pieces
- * hold
- * special blocks
-       * inventory
-       * player keys
-       * delete key?
-       * blocks+actions
-               abcd.fgHi..LmnoPqrsTUvWx..
+
+distant future
+
+       * server can rate players (skill ranking)
+               * persistent data (retain info if players quit)
+               * store data when server quits (and prolly at interval)
+                       * reliably identify players (login? identd?)
+               * inter-server exchange? (global rank)
+       * different key procedure? (allowing for multiple keys simoultaniously?)
+       * vertical cropping of enemy fields (merging two lines into one!)
+       * server can add lines after specified time
+       * sounds
+       * graphics.... (or at least x version for keys)
+       * extra alarm event for effects
+               * line clear animations (flash)
+       * multiple next pieces
+       * hold
+       * special blocks
+               * inventory
+               * player keys
+               * delete key?
+               * blocks+actions
+                       abcd.fg_i..lmnopqrs__v_x.z
+                       * tetrinet:
+                               * a: add (junk)line
+                               * b: remove specials on field
+                               * c: clear (bottom) line
+                               * g: gravity (move all blocks down)
+                               * n: nuke field
+                               * o: block bomb (3x3 blocks around any bombs on field are cleared)
+                               * q: quake (shift lines left or right)
+                               * r: remove 10 blocks at random
+                               * s: swap fields
+                       * suggested:
+                               * d (w): donate (next inv block given to other player)
+                               * f (u): flip (symetric vertical inversion)
+                               * h: hide (replaces inventory blocks by ?)
+                                               (one block restored per line added?)
+                               * l: lower (all specials from field going down (g))
+                               * p: purge (half remove special blocks from inventory)
+                               * t: take (take 2 specials from target player field)
+                               * ?: mystery (block only revealed in inventory)
+                       * tetrinet 2:
+                               * d: darkness (temporarily blackens your field except
+                                              around current piece)
+                               * f: confusion (temporarily rearranges controls)
+                               * i: attack immunity (invincible to attacks)
+                               * m: mutated pieces (gives several difficult pieces)
+                               * v: clear column (erases vertical line)
+                               * blocktrix:
+                                       * l: left gravity (pulls all blocks to the left)
+                                       * p: piece change (randomly changes player's currently falling piece)
+                                       * z: zebra field (clear every second column)
+                       * ideas:
+                               * x: seperate blocks (cut all shared pieces in quadra)
+       * quadra compatible?
+       * tetrinet compatible? (prolly not)
+       * new+better bot?
+       * ipv6
+       * replay ability? (tspec replay and/or quadra rec compatible?)
+               * demo playable as intro
+                       * create record spelling out netris logo
+       * completely customizable window layout
+       * adjustable player order (maybe even in config by nick/hostname)
+       * multiple channels per server
+               * /join and /part
+       * hold piece
+       * multiple level block preview
+       * customizable colors
+               * netris:
+                   BT_I=BLUE, O=MAGENTA, T=WHITE, L=CYAN, J=YELLOW, S=GREEN, Z=RED
+               * original:
+                   BT_I=RED, O=BLUE, T=ORANGE, L=MAGENTA, J=WHITE, S=GREEN, Z=CYAN
+               * sega:
+                   BT_I=RED, O=YELLOW, T=CYAN, L=ORANGE, J=BLUE, S=MAGENTA, Z=GREEN
+               * atari:
+                   BT_I=RED, O=BLUE, T=GREEN, L=MAGENTA, J=YELLOW, S=CYAN, Z=ORANGE
+               * quadra:
+                   BT_I=GREEN, O=ORANGE, T=BLUE, L=MAGENTA, J=YELLOW, S=CYAN, Z=RED
                * tetrinet:
-                       * a: add (junk)line
-                       * b: remove specials on field
-                       * c: clear (bottom) line
-                       * g: gravity (move all blocks down)
-                       * n: nuke field
-                       * o: block bomb (blocks around any bombs on field are moved)
-                       * q: quake (shift lines left or right)
-                       * r: remove 10 blocks at random
-                       * s: swap fields
-               * suggested:
-                       * d (w): donate (next inv block given to other player)
-                       * f (u): flip (symetric vertical inversion)
-                       * h: hide (replaces inventory blocks by ?)
-                                       (one block restored per line added?)
-                       * l: lower (all specials from field going down (g))
-                       * p: purge (half remove special blocks from inventory)
-                       * t: take (take 2 specials from target player field)
-                       * ?: mystery (block only revealed in inventory)
-               * tetrinet 2:
-                       * d: darkness (temporarily blackens your field except
-                                       around current piece)
-                       * f: confusion (temporarily rearranges controls)
-                       * i: attack immunity (invincible to attacks)
-                       * m: mutated pieces (gives several difficult pieces)
-                       * v: clear column (erases vertical line)
-               * ideas:
-                       * x: seperate blocks (cut all shared pieces in quadra)
- * quadra compatible?
- * tetrinet compatible? (prolly not)
- * new+better bot?
- * ipv6
- * replay ability? (tspec replay and/or quadra rec compatible?)
+                   BT_I=BLUE, O=YELLOW, T=YELLOW, L=MAGENTA, J=GREEN, S=RED, Z=BLUE
+               * guideline:
+                   BT_I=CYAN, O=YELLOW, T=MAGENTA, L=ORANGE, J=BLUE, S=GREEN, Z=RED
 
 
----- consider: ---------------------------------------------------------------
+consider
 
  * colored shadows
+