v0.8: 2007-03-04
- * gravity off by default
- * code cleanup
- * revert stupid whitespace changes in 0.7.A2
- * only use tabs for block indenting
- * cleanup Configure script, rename to more customary ./configure
- * only use ascii drawstyles with --ascii
- * help shows default values
- * fix --dropmode without specified value
- * customizable chat key
- * translatable messages
+ * gravity off by default
+ * code cleanup
+ * revert stupid whitespace changes in 0.7.A2
+ * only use tabs for block indenting
+ * cleanup Configure script, rename to more customary ./configure
+ * only use ascii drawstyles with --ascii
+ * help shows default values
+ * fix --dropmode without specified value
+ * customizable chat key
+ * translatable messages
v0.7.A27
- * clientspecific playerdata seperated from general playerdata (PlayerDisp[])
- * player names printed over top field grid
+ * clientspecific playerdata seperated from general playerdata (PlayerDisp[])
+ * player names printed over top field grid
v0.7.A21
- * used curses to invert pause text instead of stdout() so it works in screen
- * some code cleaned up
+ * used curses to invert pause text instead of stdout() so it works in screen
+ * some code cleaned up
v0.7.A20
- * last gcc warning fixed
- * messages now scroll bottom to top
- * your own input is echoed on screen, _ marks cursor in typing mode
- * long messages can be displayed over multiple lines
- * typing messages longer than message window moves cursor over old text
- * empty messages are escaped
- * key and network handling in main loop in functions
- * started moving messages to seperate file
+ * last gcc warning fixed
+ * messages now scroll bottom to top
+ * your own input is echoed on screen, _ marks cursor in typing mode
+ * long messages can be displayed over multiple lines
+ * typing messages longer than message window moves cursor over old text
+ * empty messages are escaped
+ * key and network handling in main loop in functions
+ * started moving messages to seperate file
v0.7.A19
- * Sets struct for settings
- * dropmode settings in single var, cleaned up
+ * Sets struct for settings
+ * dropmode settings in single var, cleaned up
v0.7.A5
- * all robot-stuff removed
- * standard includefiles for each file instead of generated proto.h
+ * all robot-stuff removed
+ * standard includefiles for each file instead of generated proto.h
v0.7.A2
- * different source identing, tabs of 8 chars
- * a couple of botcalls removed
- * server switches quadra mode with --quadra parameter
+ * different source identing, tabs of 8 chars
+ * a couple of botcalls removed
+ * server switches quadra mode with --quadra parameter
v0.7.96
- * field messages were slightly corrupted sometimes, somehow :P
- * handler which redraws when window resizes :)
+ * field messages were slightly corrupted sometimes, somehow :P
+ * handler which redraws when window resizes :)
v0.7.91
- * buffered message history, can be redrawn
- * you can send messages, enter key toggles chat mode
- * messages can contain multiple color tags
- * in chat mode, backspace backspaces, escape cancels message
+ * buffered message history, can be redrawn
+ * you can send messages, enter key toggles chat mode
+ * messages can contain multiple color tags
+ * in chat mode, backspace backspaces, escape cancels message
v0.7.831
- * fix bugs in free blocks detection routine
- * correct J stickiness
- * players' names displayed in teamcolor
- * correct Z stickiness, correct check below mask
- * client reports winner+time and player stats (ppm+apm), calc client-side
+ * fix bugs in free blocks detection routine
+ * correct J stickiness
+ * players' names displayed in teamcolor
+ * correct Z stickiness, correct check below mask
+ * client reports winner+time and player stats (ppm+apm), calc client-side
v0.7.830
- * shapes stick vertically as well (not physically visible yet though)
- * quadra style gravity (shape falls down when possible)
- * alternate scoring method used in gravity mode
- * junklines stick horizontally so they don't drop into each other
+ * shapes stick vertically as well (not physically visible yet though)
+ * quadra style gravity (shape falls down when possible)
+ * alternate scoring method used in gravity mode
+ * junklines stick horizontally so they don't drop into each other
v0.7.828
- * server places unteamed players in first unused team
- * fields are resized to half width if they don't fit on screen
- * instadrop is default (as in $any::decent::tetris)
- * dropmodes as options --slidedrop and --dropmode (-d and -D)
+ * server places unteamed players in first unused team
+ * fields are resized to half width if they don't fit on screen
+ * instadrop is default (as in $any::decent::tetris)
+ * dropmodes as options --slidedrop and --dropmode (-d and -D)
v0.7.826
- * new pieces appear near middle again
- * junklines have the color of the player/team that added them
- * fix bug causing wrong number of junklines being sent after 1st game
- * --nick parameter changes nick from default login name
- * can turn field spying back on on redraw
- * new messages on top, old messages scroll down
+ * new pieces appear near middle again
+ * junklines have the color of the player/team that added them
+ * fix bug causing wrong number of junklines being sent after 1st game
+ * --nick parameter changes nick from default login name
+ * can turn field spying back on on redraw
+ * new messages on top, old messages scroll down
v0.7.825
- * shapes are now stored as bitmaps, and slightly altered to match quadra
- * extensive simplification of many routines because of this
- (binary just ~1500 bytes smaller)
- * next piece indicator aligns piece to the right
- * blocks of a piece are grouped horizontally
- displays 1 block as [], 2 blocks [[]], 3 blocks [[[]]], stick [[[[]]]]
- * falling blocks not stored differently from frozen blocks
- (might cause problems with robot, but i'll deal with that later)
- * if piece can't be rotated (ie near the edge) it tries to slide it right
- * fix multiplay transmission of (new) pieces
- * field reset to 'empty' when player leaves (not 'ready')
+ * shapes are now stored as bitmaps, and slightly altered to match quadra
+ * extensive simplification of many routines because of this
+ (binary just ~1500 bytes smaller)
+ * next piece indicator aligns piece to the right
+ * blocks of a piece are grouped horizontally
+ displays 1 block as [], 2 blocks [[]], 3 blocks [[[]]], stick [[[[]]]]
+ * falling blocks not stored differently from frozen blocks
+ (might cause problems with robot, but i'll deal with that later)
+ * if piece can't be rotated (ie near the edge) it tries to slide it right
+ * fix multiplay transmission of (new) pieces
+ * field reset to 'empty' when player leaves (not 'ready')
v0.7.821
- * colorcoding altered a bit (server messages white, player stuff colored)
- * when no team specified, server assigns a team and sends it to player
- * client displays teamname of joining players
- * client disconnects also transmitted to g/o players
- * lag could delay changes to another game, desyncing clients
- now game info is not transmitted when game has stopped
+ * colorcoding altered a bit (server messages white, player stuff colored)
+ * when no team specified, server assigns a team and sends it to player
+ * client displays teamname of joining players
+ * client disconnects also transmitted to g/o players
+ * lag could delay changes to another game, desyncing clients
+ now game info is not transmitted when game has stopped
v0.7.820
- * server doesn't quit, but just stops game when 1 player/team left
- * when a game stops, all players are paused and their fields reset
- * server handles disconnecting clients correctly again
- * 'player quit' displayed when a client disconnects from server
- * game ended messages not displayed when a game was ready but not yet started
- * server sends new game seed at game stop
- * players' scores and (next) pieces and stuff are reset at new game
- * scores are erased instead of not drawn (apm/ppm remained at new game)
+ * server doesn't quit, but just stops game when 1 player/team left
+ * when a game stops, all players are paused and their fields reset
+ * server handles disconnecting clients correctly again
+ * 'player quit' displayed when a client disconnects from server
+ * game ended messages not displayed when a game was ready but not yet started
+ * server sends new game seed at game stop
+ * players' scores and (next) pieces and stuff are reset at new game
+ * scores are erased instead of not drawn (apm/ppm remained at new game)
v0.7.819
- * shadow piece (preview current piece dropped down)
- * new players' fields are cleared at start
- * players are now 'fragged' by the player last adding them lines
- * ^ when that last player was himself(m/f) (s)he just 'died'
- * 'Close connection' message no longer displayed
- * players in teams are displayed in their teamcolor
+ * shadow piece (preview current piece dropped down)
+ * new players' fields are cleared at start
+ * players are now 'fragged' by the player last adding them lines
+ * ^ when that last player was himself(m/f) (s)he just 'died'
+ * 'Close connection' message no longer displayed
+ * players in teams are displayed in their teamcolor
v0.7.817
- * went g/o when one player of a team went g/o instead of all of 'em
- * improved handling of closing connections in server
- * naw player's name refreshed on join
- * clients don't receive death signal from rejected player anymore
+ * went g/o when one player of a team went g/o instead of all of 'em
+ * improved handling of closing connections in server
+ * naw player's name refreshed on join
+ * clients don't receive death signal from rejected player anymore
v0.7.815
- * server started w/o --continuous exits when just 1 player or team left
- * players can't join a started non-continuous game
- * game starts if non-ready player leaves and everybody else is ready
- * message when you or enemies add junklines
+ * server started w/o --continuous exits when just 1 player or team left
+ * players can't join a started non-continuous game
+ * game starts if non-ready player leaves and everybody else is ready
+ * message when you or enemies add junklines
v0.7.814
- * show (paused) game right after receiving game data, before receiving players
- * server starts game after receiving minimum number of players (--min-players)
- * client altered to receive players during game loop
- * server has --max-players option for player limit (default is 8)
- * (empty) fields are drawn for maximum number of players
- * server quits correctly, client quits only when no players are left
- * players join paused when game hasn't started yet
- * player's pause state is transmitted by server
- * server does not keep repeating goahead on every join
- * ^l (by default) redraws screen (doesn't work correctly on all terms yet)
- * before game has started, '(not) ready' is displayed instead of 'pause'
- * 'empty' message over empty fields, 'game over' over dead players
- * player rejoin fixed
+ * show (paused) game right after receiving game data, before receiving players
+ * server starts game after receiving minimum number of players (--min-players)
+ * client altered to receive players during game loop
+ * server has --max-players option for player limit (default is 8)
+ * (empty) fields are drawn for maximum number of players
+ * server quits correctly, client quits only when no players are left
+ * players join paused when game hasn't started yet
+ * player's pause state is transmitted by server
+ * server does not keep repeating goahead on every join
+ * ^l (by default) redraws screen (doesn't work correctly on all terms yet)
+ * before game has started, '(not) ready' is displayed instead of 'pause'
+ * 'empty' message over empty fields, 'game over' over dead players
+ * player rejoin fixed
v0.7.813
- * blocks are normal text in !curses (not bold or anything)
- * server handles incoming connections as events too (continuously)
+ * blocks are normal text in !curses (not bold or anything)
+ * server handles incoming connections as events too (continuously)
v0.7.811
- * title bar inverted
- * scorebar less wide (now 3 fields take 82 chars)
+ * title bar inverted
+ * scorebar less wide (now 3 fields take 82 chars)
v0.7: 2002-08-10
- * display game over over dead player's field
- * number of connections can be set with server -c
- * exiting client automatically goes game over
- * dead players can't pause the game
- * -t sets team. players in same team don't get junklines from each other
- * client no longer displays seed
- * doesn't display fields which don't fit on screen automatically
- * quit key (q by default)
+ * display game over over dead player's field
+ * number of connections can be set with server -c
+ * exiting client automatically goes game over
+ * dead players can't pause the game
+ * -t sets team. players in same team don't get junklines from each other
+ * client no longer displays seed
+ * doesn't display fields which don't fit on screen automatically
+ * quit key (q by default)
v0.6.810
- * seed and initspeed given by server
- * exits when only 1 player left (or 0 in singleplayer)
- * version_string in netris.h
- * fixed pause for multiple players
- * paused message displayed over pausing player's field
- * all players start paused in multiplayer
- * your own hostname isn't displayed
+ * seed and initspeed given by server
+ * exits when only 1 player left (or 0 in singleplayer)
+ * version_string in netris.h
+ * fixed pause for multiple players
+ * paused message displayed over pausing player's field
+ * all players start paused in multiplayer
+ * your own hostname isn't displayed
v0.6.89
- * server receive fixed (checked nonexisting sock)
- * host generates and distributes player's host string
- * handle sigint correctly (not just exit(0))
- * fix multiplay g/o (close connection at g/o or server signal)
- * spy=n0 in configfile disables spying for player n
+ * server receive fixed (checked nonexisting sock)
+ * host generates and distributes player's host string
+ * handle sigint correctly (not just exit(0))
+ * fix multiplay g/o (close connection at g/o or server signal)
+ * spy=n0 in configfile disables spying for player n
v0.6.88
- * player 1 always leftmost
- * server seperate program
+ * player 1 always leftmost
+ * server seperate program
v0.6.87
- * multiplay can handle over 2 players!
+ * multiplay can handle over 2 players!
v0.6.86
- * server doesn't play
+ * server doesn't play
v0.6.85
- * titlebar somewhat improved
- * pause stops time
- * junklines doesn't move pieces up (unless inside ground)
- * improved (insta)drop handling
- * drop/down at bottom forces drop
- * updated help messages (-[hH])
+ * titlebar somewhat improved
+ * pause stops time
+ * junklines doesn't move pieces up (unless inside ground)
+ * improved (insta)drop handling
+ * drop/down at bottom forces drop
+ * updated help messages (-[hH])
v0.6.84
- * same handler for configfile/parameters
- * linedraw characters unless --ascii specified
- * levelup handeled correctly
- * handicap with --level (affects yourself only, unlike --speed)
- * some variables moved and altered
- * displays name+host above opponent field
+ * same handler for configfile/parameters
+ * linedraw characters unless --ascii specified
+ * levelup handeled correctly
+ * handicap with --level (affects yourself only, unlike --speed)
+ * some variables moved and altered
+ * displays name+host above opponent field
v0.6.83
- * conffile can have comments (#) and tabs instead of spaces
- * level up every 10 lines (speed x1.2)
+ * conffile can have comments (#) and tabs instead of spaces
+ * level up every 10 lines (speed x1.2)
v0.6.82
- * counts score (as in gameboy version)
- * reads default parameters from netris.conf (or other file specified with -f)
+ * counts score (as in gameboy version)
+ * reads default parameters from netris.conf (or other file specified with -f)
v0.6.81
- * shows next piece
- * displays elapsed time instead of clock
- * shows ppm, apm and yield
- * uses arrow keys by default (linux workaround, doesn't work on all systems)
+ * shows next piece
+ * displays elapsed time instead of clock
+ * shows ppm, apm and yield
+ * uses arrow keys by default (linux workaround, doesn't work on all systems)
v0.6: 2002-07-31
- * -D enables instant-drop (classic drop), original -D is now -d
- * addition key for rotating pieces counterclockwise
- * displays number of pieces dropped and lines made
+ * -D enables instant-drop (classic drop), original -D is now -d
+ * addition key for rotating pieces counterclockwise
+ * displays number of pieces dropped and lines made
possible bugs
- * fail on insufficient space
+ * fail on insufficient space
near-future
- * 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
+ * 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
asap
- * 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
+ * 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
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
+ * 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
+ * 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 (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
- * 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:
- 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
+ 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