Changes relevant to the users of python-tcod are documented here.
This project adheres to Semantic Versioning since v2.0.0
11.7.2 - 2020-02-16¶
- Fixed regression in tcod.console_clear.
11.7.1 - 2020-02-16¶
- Fixed regression in Console.draw_frame.
- The wavelet noise generator now excludes -1.0f and 1.0f as return values.
- Fixed console fading color regression.
11.7.0 - 2020-02-14¶
- Using libtcod 1.16.0-alpha.2.
- When a renderer fails to load it will now fallback to a different one. The order is: OPENGL2 -> OPENGL -> SDL2.
- The default renderer is now SDL2.
- The SDL and OPENGL renderers are no longer deprecated, but they now point to slightly different backward compatible implementations.
- The use of libtcod.cfg and terminal.png is deprecated.
- tcod.sys_update_char now works with the newer renderers.
- Fixed buffer overflow in name generator.
- tcod.image_from_console now works with the newer renderers.
- New renderers now auto-load fonts from libtcod.cfg or terminal.png.
11.6.0 - 2019-12-05¶
- Console blit operations now perform per-cell alpha transparency.
11.5.1 - 2019-11-23¶
- Python 3.8 wheels failed to deploy.
11.5.0 - 2019-11-22¶
- Quarter block elements are now rendered using Unicode instead of a custom encoding.
- OPENGL and GLSL renderers were not properly clearing space characters.
11.4.1 - 2019-10-15¶
- Uploaded Python 3.8 wheels to PyPI.
11.4.0 - 2019-09-20¶
- Added __array_interface__ to the Image class.
- Added Console.draw_semigraphics as a replacement for blit_2x functions. draw_semigraphics can handle array-like objects.
- Image.from_array class method creates an Image from an array-like object.
- tcod.image.load loads a PNG file as an RGBA array.
- Console.tiles is now named Console.buffer.
- Console.tiles behavior will be changed to be like Console.tiles2.
11.3.0 - 2019-09-06¶
- New attribute Console.tiles2 is similar to Console.tiles but without an alpha channel.
11.2.2 - 2019-08-25¶
- Fixed a regression preventing PyInstaller distributions from loading SDL2.
11.2.1 - 2019-08-25¶
11.2.0 - 2019-08-24¶
- tcod.path.dijkstra2d: Computes Dijkstra from an arbitrary initial state.
- tcod.path.hillclimb2d: Returns a path from a distance array.
- tcod.path.maxarray: Creates arrays filled with maximum finite values.
- Changing the tiles of an active tileset on OPENGL2 will no longer leave temporary artifact tiles.
- It’s now harder to accidentally import tcod’s internal modules.
11.1.2 - 2019-08-02¶
- Now bundles SDL 2.0.10 for Windows/MacOS.
- Can now parse SDL 2.0.10 headers during installation without crashing.
11.1.1 - 2019-08-01¶
- Using an out-of-bounds index for field-of-view operations now raises a warning, which will later become an error.
- Changing the tiles of an active tileset will now work correctly.
11.1.0 - 2019-07-05¶
- You can now set the TCOD_RENDERER and TCOD_VSYNC environment variables to
force specific options to be used.
- You can now set the TCOD_RENDERER and TCOD_VSYNC environment variables to force specific options to be used. Example:
- tcod.sys_set_renderer now raises an exception if it fails.
- tcod.console_map_ascii_code_to_font functions will now work when called before tcod.console_init_root.
11.0.2 - 2019-06-21¶
- You no longer need OpenGL to build python-tcod.
11.0.1 - 2019-06-21¶
- Better runtime checks for Windows dependencies should now give distinct errors depending on if the issue is SDL2 or missing redistributables.
- Changed NumPy type hints from np.array to np.ndarray which should resolve issues.
11.0.0 - 2019-06-14¶
- tcod.map.compute_fov now takes a 2-item tuple instead of separate x and y parameters. This causes less confusion over how axes are aligned.
10.1.1 - 2019-06-02¶
- Better string representations for tcod.event.Event subclasses.
- Fixed regressions in text alignment for non-rectangle print functions.
10.1.0 - 2019-05-24¶
- tcod.console_init_root now has an optional vsync parameter.
10.0.5 - 2019-05-17¶
- Fixed shader compilation issues in the OPENGL2 renderer.
- Fallback fonts should fail less on Linux.
10.0.4 - 2019-05-17¶
- Now depends on cffi 0.12 or later.
- tcod.console_init_root and tcod.console_set_custom_font will raise exceptions instead of terminating.
- Fixed issues preventing tcod.event from working on 32-bit Windows.
10.0.3 - 2019-05-10¶
- Corrected bounding box issues with the Console.print_box method.
10.0.2 - 2019-04-26¶
- Resolved Color warnings when importing tcod.
- When compiling, fixed a name conflict with endianness macros on FreeBSD.
10.0.1 - 2019-04-19¶
- Fixed horizontal alignment for TrueType fonts.
- Fixed taking screenshots with the older SDL renderer.
10.0.0 - 2019-03-29¶
- New Console.tiles array attribute.
- Console.DTYPE changed to add alpha to its color types.
- Console printing was ignoring color codes at the beginning of a string.
9.3.0 - 2019-03-15¶
- The SDL2/OPENGL2 renderers can potentially use a fall-back font when none are provided.
- New function tcod.event.get_mouse_state.
- New function tcod.map.compute_fov lets you get a visibility array directly from a transparency array.
- The following functions and classes have been deprecated. - tcod.Key - tcod.Mouse - tcod.mouse_get_status - tcod.console_is_window_closed - tcod.console_check_for_keypress - tcod.console_wait_for_keypress - tcod.console_delete - tcod.sys_check_for_event - tcod.sys_wait_for_event
- The SDL, OPENGL, and GLSL renderers have been deprecated.
- Many libtcodpy functions have been marked with PendingDeprecationWarning’s.
- To be more compatible with libtcodpy tcod.console_init_root will default to the SDL render, but will raise warnings when an old renderer is used.
9.2.5 - 2019-03-04¶
- Fixed tcod.namegen_generate_custom.
9.2.4 - 2019-03-02¶
- The tcod package is has been marked as typed and will now work with MyPy.
9.2.3 - 2019-03-01¶
- The behavior for negative indexes on the new print functions may change in the future.
- Methods and functionality preventing tcod.Color from behaving like a tuple have been deprecated.
9.2.2 - 2019-02-26¶
- Console.print_box wasn’t setting the background color by default.
9.2.1 - 2019-02-25¶
- tcod.sys_get_char_size fixed on the new renderers.
9.2.0 - 2019-02-24¶
- New tcod.console.get_height_rect function, which can be used to get the height of a print call without an existing console.
- New tcod.tileset module, with a set_truetype_font function.
- The new print methods now handle alignment according to how they were documented.
- SDL2 and OPENGL2 now support screenshots.
- Windows and MacOS builds now restrict exported SDL2 symbols to only SDL 2.0.5; This will avoid hard to debug import errors when the wrong version of SDL is dynamically linked.
- The root console now starts with a white foreground.
9.1.0 - 2019-02-23¶
- Added the tcod.random.MULTIPLY_WITH_CARRY constant.
- The overhead for warnings has been reduced when running Python with the optimize -O flag.
- tcod.random.Random now provides a default algorithm.
9.0.0 - 2019-02-17¶
- New console methods now default to an fg and bg of None instead of white-on-black.
8.5.0 - 2019-02-15¶
- tcod.console.Console now supports str and repr.
- Added new Console methods which are independent from the console defaults.
- You can now give an array when initializing a tcod.console.Console instance.
- Console.clear can now take ch, fg, and bg parameters.
- Updated libtcod to 1.10.6
- Printing generates more compact layouts.
- Most libtcodpy console functions have been replaced by the tcod.console module.
- Deprecated the set_key_color functions. You can pass key colors to Console.blit instead.
- Console.clear should be given the colors to clear with as parameters, rather than by using default_fg or default_bg.
- Most functions which depend on console default values have been deprecated. The new deprecation warnings will give details on how to make default values explicit.
- tcod.console.Console.blit was ignoring the key color set by Console.set_key_color.
- The SDL2 and OPENGL2 renders can now large numbers of tiles.
8.4.3 - 2019-02-06¶
- Updated libtcod to 1.10.5
- The SDL2/OPENGL2 renderers will now auto-detect a custom fonts key-color.
8.4.2 - 2019-02-05¶
- The tdl module has been deprecated.
- The libtcodpy parser functions have been deprecated.
- tcod.image_is_pixel_transparent and tcod.image_get_alpha now return values.
- Console.print_frame was clearing tiles outside if its bounds.
- The FONT_LAYOUT_CP437 layout was incorrect.
8.4.1 - 2019-02-01¶
- Window event types were not upper-case.
- Fixed regression where libtcodpy mouse wheel events unset mouse coordinates.
8.4.0 - 2019-01-31¶
- Added tcod.event module, based off of the sdlevent.py shim.
- Updated libtcod to 1.10.3
- Fixed libtcodpy struct_add_value_list function.
- Use correct math for tile-based delta in mouse events.
- New renderers now support tile-based mouse coordinates.
- SDL2 renderer will now properly refresh after the window is resized.
8.3.2 - 2018-12-28¶
- Fixed rare access violations for some functions which took strings as parameters, such as tcod.console_init_root.
8.3.1 - 2018-12-28¶
- libtcodpy key and mouse functions will no longer accept the wrong types.
- The new_struct method was not being called for libtcodpy’s custom parsers.
8.3.0 - 2018-12-08¶
- Added BSP traversal methods in tcod.bsp for parity with libtcodpy.
- Already deprecated bsp functions are now even more deprecated.
8.2.0 - 2018-11-27¶
- New layout tcod.FONT_LAYOUT_CP437.
- Updated libtcod to 1.10.2
- tcod.console_print_frame and Console.print_frame now support Unicode strings.
- Deprecated using bytes strings for all printing functions.
- Console objects are now initialized with spaces. This fixes some blit operations.
- Unicode code-points above U+FFFF will now work on all platforms.
8.1.1 - 2018-11-16¶
- Printing a frame with an empty string no longer displays a title bar.
8.1.0 - 2018-11-15¶
- Heightmap functions now support ‘F_CONTIGUOUS’ arrays.
- tcod.heightmap_new now has an order parameter.
- Updated SDL to 2.0.9
- Deprecated heightmap functions which sample noise grids, this can be done using the Noise.sample_ogrid method.
8.0.0 - 2018-11-02¶
- The default renderer can now be anything if not set manually.
- Better error message for when a font file isn’t found.
7.0.1 - 2018-10-27¶
- Building from source was failing because console_2tris.glsl* was missing from source distributions.
7.0.0 - 2018-10-25¶
- New RENDERER_SDL2 and RENDERER_OPENGL2 renderers.
- Updated libtcod to 1.9.0
- Now requires SDL 2.0.5, which is not trivially installable on Ubuntu 16.04 LTS.
- Dropped support for Python versions before 3.5
- Dropped support for MacOS versions before 10.9 Mavericks.
6.0.7 - 2018-10-24¶
- The root console no longer loses track of buffers and console defaults on a renderer change.
6.0.6 - 2018-10-01¶
- Replaced missing wheels for older and 32-bit versions of MacOS.
6.0.5 - 2018-09-28¶
- Resolved CDefError error during source installs.
6.0.4 - 2018-09-11¶
- tcod.Key right-hand modifiers are now set independently at initialization, instead of mirroring the left-hand modifier value.
6.0.3 - 2018-09-05¶
- tcod.Key and tcod.Mouse no longer ignore initiation parameters.
6.0.2 - 2018-08-28¶
- Fixed color constants missing at build-time.
6.0.1 - 2018-08-24¶
- Source distributions were missing C++ source files.
6.0.0 - 2018-08-23¶
- Project renamed to tcod on PyPI.
- Passing bytes strings to libtcodpy print functions is deprecated.
- Fixed libtcodpy print functions not accepting bytes strings.
- libtcod constants are now generated at build-time fixing static analysis tools.
5.0.1 - 2018-07-08¶
- tdl.event no longer crashes with StopIteration on Python 3.7
5.0.0 - 2018-07-05¶
- tcod.path: all classes now use shape instead of width and height.
- tcod.path now respects NumPy array shape, instead of assuming that arrays need to be transposed from C memory order. From now on x and y mean 1st and 2nd axis. This doesn’t affect non-NumPy code.
- tcod.path now has full support of non-contiguous memory.
4.6.1 - 2018-06-30¶
- New function tcod.line_where for indexing NumPy arrays using a Bresenham line.
- Python 2.7 support will be dropped in the near future.
4.5.2 - 2018-06-29¶
- New wheels for Python3.7 on Windows.
- Arrays from tcod.heightmap_new are now properly zeroed out.
4.5.1 - 2018-06-23¶
- Deprecated all libtcodpy map functions.
- tcod.map_copy could break the tcod.map.Map class.
- tcod.map_clear transparent and walkable parameters were reversed.
- When multiple SDL2 headers were installed, the wrong ones would be used when the library is built.
- Fails to build via pip unless Numpy is installed first.
4.5.0 - 2018-06-12¶
- Updated libtcod to v1.7.0
- Updated SDL to v2.0.8
- Error messages when failing to create an SDL window should be a less vague.
- You no longer need to initialize libtcod before you can print to an off-screen console.
- Avoid crashes if the root console has a character code higher than expected.
- No more debug output when loading fonts.
4.4.0 - 2018-05-02¶
- Added the libtcodpy module as an alias for tcod. Actual use of it is deprecated, it exists primarily for backward compatibility.
- Adding missing libtcodpy functions console_has_mouse_focus and console_is_active.
- Updated libtcod to v1.6.6
4.3.2 - 2018-03-18¶
- Deprecated the use of falsy console parameters with libtcodpy functions.
- Fixed libtcodpy image functions not supporting falsy console parameters.
- Fixed tdl Window.get_char method. (Kaczor2704)
4.3.1 - 2018-03-07¶
- Fixed cffi.api.FFIError “unsupported expression: expected a simple numeric constant” error when building on platforms with an older cffi module and newer SDL headers.
- tcod/tdl Map and Console objects were not saving stride data when pickled.
4.3.0 - 2018-02-01¶
- You can now set the numpy memory order on tcod.console.Console, tcod.map.Map, and tdl.map.Map objects well as from the tcod.console_init_root function.
- The console_init_root title parameter is now optional.
- OpenGL renderer alpha blending is now consistent with all other render modes.
4.2.3 - 2018-01-06¶
- Fixed setup.py regression that could prevent building outside of the git repository.
4.2.2 - 2018-01-06¶
- The Windows dynamic linker will now prefer the bundled version of SDL. This fixes: “ImportError: DLL load failed: The specified procedure could not be found.”
- key.c is no longer set when key.vk == KEY_TEXT, this fixes a regression which was causing events to be heard twice in the libtcod/Python tutorial.
4.2.0 - 2018-01-02¶
- Updated libtcod backend to v1.6.4
- Updated SDL to v2.0.7 for Windows/MacOS.
- Source distributions no longer include tests, examples, or fonts. Find these on GitHub.
- Fixed “final link failed: Nonrepresentable section on output” error when compiling for Linux.
- tcod.console_init_root defaults to the SDL renderer, other renderers cause issues with mouse movement events.
4.1.1 - 2017-11-02¶
- Fixed ConsoleBuffer.blit regression.
- Console defaults corrected, the root console’s blend mode and alignment is the default value for newly made Console’s.
- You can give a byte string as a filename to load parsers.
4.1.0 - 2017-07-19¶
- tdl Map class can now be pickled.
- Added protection to the transparent, walkable, and fov attributes in tcod and tdl Map classes, to prevent them from being accidentally overridden.
- tcod and tdl Map classes now use numpy arrays as their attributes.
4.0.1 - 2017-07-12¶
- tdl: Fixed NameError in set_fps.
4.0.0 - 2017-07-08¶
- tcod.bsp: BSP.split_recursive parameter random is now seed.
- tcod.console: Console.blit parameters have been rearranged. Most of the parameters are now optional.
- tcod.noise: Noise.__init__ parameter rand is now named seed.
- tdl: Changed set_fps paramter name to fps.
- tcod.bsp: Corrected spelling of max_vertical_ratio.
3.2.0 - 2017-07-04¶
- Merged libtcod-cffi dependency with TDL.
- Fixed boolean related crashes with Key ‘text’ events.
- tdl.noise: Fixed crash when given a negative seed. As well as cases where an instance could lose its seed being pickled.
3.1.0 - 2017-05-28¶
- You can now pass tdl Console instances as parameters to libtcod-cffi functions expecting a tcod Console.
- Dependencies updated: libtcod-cffi>=2.5.0,<3
- The Console.tcod_console attribute is being renamed to Console.console_c.
- The tdl.noise and tdl.map modules will be deprecated in the future.
- Resolved crash-on-exit issues for Windows platforms.
3.0.2 - 2017-04-13¶
- Dependencies updated: libtcod-cffi>=2.4.3,<3
- You can now create Console instances before a call to tdl.init.
- Dropped support for Python 3.3
- Resolved issues with MacOS builds.
- ‘OpenGL’ and ‘GLSL’ renderers work again.
3.0.1 - 2017-03-22¶
- KeyEvent’s with text now have all their modifier keys set to False.
- Undefined behaviour in text events caused crashes on 32-bit builds.
3.0.0 - 2017-03-21¶
- KeyEvent supports libtcod text and meta keys.
- KeyEvent parameters have been moved.
- This version requires libtcod-cffi>=2.3.0.
- KeyEvent camel capped attribute names are deprecated.
- Crashes with key-codes undefined by libtcod.
- tdl.map typedef issues with libtcod-cffi.
2.0.1 - 2017-02-22¶
- tdl.init renderer was defaulted to OpenGL which is not supported in the current version of libtcod.
2.0.0 - 2017-02-15¶
- Dependencies updated, tdl now requires libtcod-cffi 2.x.x
- Some event behaviours have changed with SDL2, event keys might be different than what you expect.
- Key repeat functions were removed from SDL2. set_key_repeat is now stubbed, and does nothing.
1.6.0 - 2016-11-18¶
- Console.blit methods can now take fg_alpha and bg_alpha parameters.
1.5.3 - 2016-06-04¶
- set_font no longer crashes when loading a file without the implied font size in its name
1.5.2 - 2016-03-11¶
- Fixed non-square Map instances
1.5.1 - 2015-12-20¶
- Fixed errors with Unicode and non-Unicode literals on Python 2
- Fixed attribute error in compute_fov
1.5.0 - 2015-07-13¶
- python-tdl distributions are now universal builds
- New Map class
- map.bresenham now returns a list
- This release will require libtcod-cffi v0.2.3 or later
1.4.0 - 2015-06-22¶
- The DLL’s have been moved into another library which you can find at https://github.com/HexDecimal/libtcod-cffi You can use this library to have some raw access to libtcod if you want. Plus it can be used alongside TDL.
- The libtocd console objects in Console instances have been made public.
- Added tdl.event.wait function. This function can called with a timeout and can automatically call tdl.flush.
1.3.1 - 2015-06-19¶
- Fixed pathfinding regressions.
1.3.0 - 2015-06-19¶
- Updated backend to use python-cffi instead of ctypes. This gives decent boost to speed in CPython and a drastic to boost in speed in PyPy.
1.2.0 - 2015-06-06¶
- The set_colors method now changes the default colors used by the draw_* methods. You can use Python’s Ellipsis to explicitly select default colors this way.
- Functions and Methods renamed to match Python’s style-guide PEP 8, the old function names still exist and are depreciated.
- The fgcolor and bgcolor parameters have been shortened to fg and bg.
1.1.7 - 2015-03-19¶
- Noise generator now seeds properly.
- The OS event queue will now be handled during a call to tdl.flush. This prevents a common newbie programmer hang where events are handled infrequently during long animations, simulations, or early development.
- Fixed a major bug that would cause a crash in later versions of Python 3
1.1.6 - 2014-06-27¶
- Fixed a race condition when importing on some platforms.
- Fixed a type issue with quickFOV on Linux.
- Added a bresenham function to the tdl.map module.
1.1.5 - 2013-11-10¶
- A for loop can iterate over all coordinates of a Console.
- drawStr can be configured to scroll or raise an error.
- You can now configure or disable key repeating with tdl.event.setKeyRepeat
- Typewriter class removed, use a Window instance for the same functionality.
- setColors method fixed.
1.1.4 - 2013-03-06¶
- Merged the Typewriter and MetaConsole classes, You now have a virtual cursor with Console and Window objects.
- Fixed the clear method on the Window class.
- Fixed screenshot function.
- Fixed some drawing operations with unchanging backgrounds.
- Instances of Console and Noise can be pickled and copied.
- Added KeyEvent.keychar
- Fixed event.keyWait, and now converts window closed events into Alt+F4.
1.1.3 - 2012-12-17¶
- Some of the setFont parameters were incorrectly labeled and documented.
- setFont can auto-detect tilesets if the font sizes are in the filenames.
- Added some X11 unicode tilesets, including unifont.
1.1.2 - 2012-12-13¶
- Window title now defaults to the running scripts filename.
- Fixed incorrect deltaTime for App.update
- App will no longer call tdl.flush on its own, you’ll need to call this yourself.
- tdl.noise module added.
- clear method now defaults to black on black.
1.1.1 - 2012-12-05¶
- Map submodule added with AStar class and quickFOV function.
- New Typewriter class.
- Most console functions can use Python-style negative indexes now.
- New App.runOnce method.
- Rectangle geometry is less strict.
1.1.0 - 2012-10-04¶
- KeyEvent.keyname is now KeyEvent.key
- MouseButtonEvent.button now behaves like KeyEvent.keyname does.
- event.App class added.
- Drawing methods no longer have a default for the character parameter.
- KeyEvent.ctrl is now KeyEvent.control
1.0.8 - 2010-04-07¶
- No longer works in Python 2.5 but now works in 3.x and has been partly tested.
- Many bug fixes.
1.0.5 - 2010-04-06¶
- Got rid of setuptools dependency, this will make it much more compatible with Python 3.x
- Fixed a typo with the MacOS library import.
1.0.4 - 2010-04-06¶
- All constant colors (C_*) have been removed, they may be put back in later.
- Made some type assertion failures show the value they received to help in general debugging. Still working on it.
- Added MacOS and 64-bit Linux support.
1.0.0 - 2009-01-31¶
- First public release.