Changes relevant for users of the the tdl and tcod packages are documented here.
This project adheres to Semantic Versioning since v2.0.0
- Fixed
- tdl.event no longer crashes with StopIteration on Python 3.7
- Changed
- 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.
- Added
- New function tcod.line_where for indexing NumPy arrays using a Bresenham line.
- Deprecated
- Python 2.7 support will be dropped in the near future.
- Added
- New wheels for Python3.7 on Windows.
- Fixed
- Arrays from tcod.heightmap_new are now properly zeroed out.
- Deprecated
- Deprecated all libtcodpy map functions.
- Fixed
- 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.
- Changed
- 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.
- Fixed
- Avoid crashes if the root console has a character code higher than expected.
- Removed
- No more debug output when loading fonts.
- Added
- 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.
- Changed
- Updated libtcod to v1.6.6
- Deprecated
- Deprecated the use of falsy console parameters with libtcodpy functions.
- Fixed
- Fixed libtcodpy image functions not supporting falsy console parameters.
- Fixed tdl Window.get_char method. (Kaczor2704)
- Fixed
- 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.
- Added
- 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.
- Changed
- The console_init_root title parameter is now optional.
- Fixed
- OpenGL renderer alpha blending is now consistent with all other render modes.
- Fixed
- Fixed setup.py regression that could prevent building outside of the git repository.
- Fixed
- 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.
- Changed
- Updated libtcod backend to v1.6.4
- Updated SDL to v2.0.7 for Windows/MacOS.
- Removed
- Source distributions no longer include tests, examples, or fonts. Find these on GitHub.
- Fixed
- 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.
- Fixed
- 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.
- Added
- tdl Map class can now be pickled.
- Changed
- 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.
- Fixed
- tdl: Fixed NameError in set_fps.
- Changed
- 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.
- Fixed
- tcod.bsp: Corrected spelling of max_vertical_ratio.
- Changed
- Merged libtcod-cffi dependency with TDL.
- Fixed
- 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.
- Added
- You can now pass tdl Console instances as parameters to libtcod-cffi functions expecting a tcod Console.
- Changed
- Dependencies updated: libtcod-cffi>=2.5.0,<3
- The Console.tcod_console attribute is being renamed to Console.console_c.
- Deprecated
- The tdl.noise and tdl.map modules will be deprecated in the future.
- Fixed
- Resolved crash-on-exit issues for Windows platforms.
- Changed
- Dependencies updated: libtcod-cffi>=2.4.3,<3
- You can now create Console instances before a call to tdl.init.
- Removed
- Dropped support for Python 3.3
- Fixed
- Resolved issues with MacOS builds.
- 'OpenGL' and 'GLSL' renderers work again.
- Changed
- KeyEvent's with text now have all their modifier keys set to False.
- Fixed
- Undefined behaviour in text events caused crashes on 32-bit builds.
- Added
- KeyEvent supports libtcod text and meta keys.
- Changed
- KeyEvent parameters have been moved.
- This version requires libtcod-cffi>=2.3.0.
- Deprecated
- KeyEvent camel capped attribute names are deprecated.
- Fixed
- Crashes with key-codes undefined by libtcod.
- tdl.map typedef issues with libtcod-cffi.
- Fixed
- tdl.init renderer was defaulted to OpenGL which is not supported in the current version of libtcod.
- Changed
- 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.
- Removed
- Key repeat functions were removed from SDL2. set_key_repeat is now stubbed, and does nothing.
- Console.blit methods can now take fg_alpha and bg_alpha parameters.
- set_font no longer crashes when loading a file without the implied font size in its name
- Fixed non-square Map instances
- Fixed errors with Unicode and non-Unicode literals on Python 2
- Fixed attribute error in compute_fov
- 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
- 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.
- Fixed pathfinding regressions.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- No longer works in Python 2.5 but now works in 3.x and has been partly tested.
- Many bug fixes.
- Got rid of setuptools dependency, this will make it much more compatible with Python 3.x
- Fixed a typo with the MacOS library import.
- 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.
- First public release.