Commit Graph

1534 Commits

Author SHA1 Message Date
nick black
5239900ac8 notcurses-input: upgrade shared_ptr to unique_ptr 2020-04-03 05:51:02 -04:00
nick black
5e27499194 add notcurses-keyplot #430 2020-04-03 05:51:02 -04:00
nick black
d541cda306 independent variable 2020-04-03 05:51:02 -04:00
nick black
4afda7a625 float some geometry concepts 2020-04-03 05:51:02 -04:00
nick black
e87fbb3003 Throw up an ncplot unit test 2020-04-03 05:51:02 -04:00
nick black
5aedb3491d ncplot_plane(), ncplot_destroy() 2020-04-03 05:51:02 -04:00
nick black
69d6240741 ncplot_destroy, ncplot(3) man page 2020-04-03 05:51:02 -04:00
nick black
f29a5a7bd9 declare ncplot_create() 2020-04-03 05:51:02 -04:00
nick black
af478ccf95
README: book has been published, link it =] 2020-04-02 14:01:57 -04:00
nick black
d1724d6183
tetris: kill unnecessary return in MoveRight() 2020-04-02 12:40:38 -04:00
nick black
ac31bf3a12
awww fuck me in the ass #429 2020-03-29 06:52:13 -04:00
nick black
a45d888601
All fill-type functions return cells changed
Fill-type functions used to return 0 for success, and -1
on failure. They now return the number of cells written
on success, similarly to ncvisual_render(). Resolves #427.
2020-03-29 05:26:56 -04:00
nick black
a3323fb22c
Enforce UTF8 where necessary in unit tests #428
Certain unit tests required UTF8 encoding on the output
terminal to work (#428). This includes anything which does
any kind of fill. Add enforce_utf8() checks to all such
tests that were missing them. Unit tests once again pass in
a pure ASCII environment.
2020-03-29 04:46:30 -04:00
nick black
bd7bf65c62
colloquy: spin up a rust notcurses instance 2020-03-28 00:11:00 -04:00
nick black
8651486ad7
Don't say DirectColor when TrueColor is meant 2020-03-27 12:58:30 -04:00
nick black
6c81cb3b45
rust: use libnotcurses-sys, add test 2020-03-27 06:27:26 -04:00
nick black
cbacf006e5
libnotcurses-sys: update tests for new notcurses_options 2020-03-27 05:57:10 -04:00
nick black
ddf206462b
colloquy: branch on widget type 2020-03-27 05:51:52 -04:00
nick black
a64119931a
colloquy: flesh out options parser 2020-03-27 05:27:59 -04:00
nick black
a77774f4dc
notcurses_at_yx(): value-result u32+u64, not cell
Resolves #410. notcurses_at_yx() accepted a cell*, but the
gcluster of this cell was always set to 0. The EGC is instead
a heap-allocated copy, returned as the primary return value.
This is due to the absence of an egcpool to bind against.
Existing callers can be converted thus:

* instead of passing cell 'c', pass &(c)->attrword, &(c)->channels
* either initialize 'c' with CELL_TRIVIAL_INITIALIZER, or set its
   gcluster field to 0 following the call

I've updated all calls from tests/demos, updated the docs, and
updated the C++ and Python wrappers.
2020-03-27 03:49:13 -04:00
nick black
73b61f6a69 Add bound planes (#71) plus docs/tests
Add ncplane_bound(3). This allows a new plane N to be created in the
*bound* state relative to another ncplane B. If B moves, N moves the
same amount. If N is moved, the coordinates are taken relative to B
as opposed to the standard plane. If B is destroyed, N is destroyed.
Each plane can have many planes bound to it, but can only be bound to
a single plane. Add ncplane_reparent(3). This allows a plane to be
detached from any plane to which it is bound, and optionally rebound
to a new plane. The standard plane cannot be reparented.
Documentation and unit tests have been added for both.
2020-03-27 03:13:30 -04:00
nick black
5bcd643a68
tetris: increase gravity with level #421 2020-03-27 00:17:16 -04:00
nick black
4a02d7ed80
tetris: rewrite moveleft()/moveright() with invalidmove() #421 2020-03-27 00:04:12 -04:00
nick black
cb85e120e0
tetris: replace PieceStuck() with InvalidMove() #421 2020-03-26 23:59:13 -04:00
nick black
1665bbad8b
tetris: InvalidMove() for detecting bad rotations #421 2020-03-26 23:52:56 -04:00
nick black
ff71eda6a1
reels are a cylinder, not a torus 2020-03-26 23:31:28 -04:00
nick black
5955125921
Tetris: remove dead code #421 2020-03-26 20:40:03 -04:00
nick black
925e416b8d
tetris: different colors for different levels 2020-03-26 20:19:57 -04:00
nick black
5b7e2f574c
tetris: fix up PieceStuck() #421 2020-03-26 20:10:25 -04:00
nick black
91f907a184
gradient_sized (C++): fix parameter name 2020-03-26 18:19:01 -04:00
nick black
ae792bbd5c
tetris: ctrl+L for refresh 2020-03-26 15:39:58 -04:00
nick black
752c29e648
Tetris: fix line clearing of final column #421 2020-03-26 15:33:14 -04:00
nick black
e500d0f8f4
tetris: print user name above score #421 2020-03-26 00:49:32 -04:00
nick black
4f6275b738
tetris: tighten LockPiece() still further 2020-03-26 00:41:54 -04:00
nick black
e84b896835
tetris: tighten up LockPiece() 2020-03-26 00:38:41 -04:00
nick black
34e4a5dbb9
tetris: display score and level #421 2020-03-26 00:34:19 -04:00
nick black
4afa02a44f
Tetris: clear out lines #421 2020-03-26 00:10:22 -04:00
nick black
1cd9ec2b31
tetris: clear out lines #421 2020-03-25 23:23:02 -04:00
nick black
ee754ed241
Tetris: simplify MoveDown(), don't be stupid 2020-03-25 23:10:31 -04:00
nick black
fff9118e17
tetris: factor out LockPiece() 2020-03-25 23:03:56 -04:00
nick black
d120e74580
Tetris: end game at the correct failpoint #421 2020-03-25 22:28:36 -04:00
nick black
d491d532bb
Tetris: gradient stain on fixed pieces #421 2020-03-25 22:27:23 -04:00
nick black
5864b37d0a
Tetris: place new pieces on mults of 2 #421 2020-03-25 22:12:46 -04:00
nick black
b7c9746cf0
Tetris: always move in chunks of two columns #421 2020-03-25 22:09:56 -04:00
nick black
642741f2c9
Tetris: take upper halves into account for PieceStuck() 2020-03-25 22:05:29 -04:00
nick black
d5e0b24f01
Tetris: PieceStuck() learns of lower halves 2020-03-25 21:52:23 -04:00
nick black
25dd65a172
Tetris: render after creating a new piece 2020-03-25 21:44:53 -04:00
nick black
013e445209
add notcurses_multiselector(3) to notcurses(3) 2020-03-25 07:38:35 -04:00
Nick Black
f9c54761f5
Basic mandelbrot for normal demo #145 (#424)
normal: working mandelbrot, very basic #145
2020-03-25 07:19:56 -04:00
Nick Black
de9158bd7b
More tetris work for book #421 (#423)
* tetris: use NES gravities
* tetris: use NES grav multiplier of 50ms
* tetris: implement move down #421
* README: mention notcurses-tetris #421
* tetris: use double box for boundary #421
* tetris: extract background.h
* tetris: break up into chunks suitable for book
* tetris: do the rotations
2020-03-25 04:06:38 -04:00