Skip to content

Latest commit

 

History

History
1893 lines (1118 loc) · 44.4 KB

CHANGELOG.md

File metadata and controls

1893 lines (1118 loc) · 44.4 KB

Changelog

Changes relevant to the users of python-tcod are documented here.

This project adheres to Semantic Versioning since version 2.0.0.

[Unreleased]

Changed

  • EventDispatch's on event methods are now defined as positional parameters, so renaming the event parameter is now valid in subclasses.

Deprecated

  • Keyboard bitmask modifiers tcod.event.KMOD_* have been replaced by tcod.event.Modifier.

Fixed

  • Suppressed internal mouse.tile_motion deprecation warning.

[16.2.3] - 2024-07-16

Fixed

  • Fixed access violation when events are polled before SDL is initialized.
  • Fixed access violation when libtcod images fail to load.
  • Verify input files exist when calling libtcodpy.parser_run, libtcodpy.namegen_parse, tcod.image.load.

[16.2.2] - 2024-01-16

Fixed

  • Ignore the locale when encoding file paths outside of Windows.
  • Fix performance when calling joystick functions.

[16.2.1] - 2023-09-24

Fixed

  • Fixed errors loading files on Windows where their paths are non-ASCII and the locale is not UTF-8.

[16.2.0] - 2023-09-20

Changed

  • Renamed gauss methods to fix typos.

[16.1.1] - 2023-07-10

Changed

  • Added an empty __slots__ to EventDispatch.
  • Bundle SDL 2.28.1 on Windows and MacOS.

Fixed

  • Fixed "SDL failed to get a vertex buffer for this Direct3D 9 rendering batch!" #131

Removed

  • Dropped support for Python 3.7.

[16.1.0] - 2023-06-23

Added

  • Added the enums tcod.event.MouseButton and tcod.event.MouseButtonMask.

Changed

  • Using libtcod 1.24.0.

Deprecated

  • Mouse button and mask constants have been replaced by enums.

Fixed

  • WindowResized literal annotations were in the wrong case.

[16.0.3] - 2023-06-04

Changed

  • Enabled logging for libtcod and SDL.

Deprecated

  • Deprecated using tcod as an implicit alias for libtcodpy. You should use from tcod import libtcodpy if you want to access this module.
  • Deprecated constants being held directly in tcod, get these from tcod.libtcodpy instead.
  • Deprecated tcod.Console which should be accessed from tcod.console.Console instead.

[16.0.2] - 2023-06-02

Fixed

  • Joystick/controller device events would raise RuntimeError when accessed after removal.

[16.0.1] - 2023-05-28

Fixed

  • AudioDevice.stopped was inverted.
  • Fixed the audio mixer stop and fadeout methods.
  • Exceptions raised in the audio mixer callback no longer cause a messy crash, they now go to sys.unraisablehook.

[16.0.0] - 2023-05-27

Added

  • Added PathLike support to more libtcodpy functions.
  • New tcod.sdl.mouse.show function for querying or setting mouse visibility.
  • New class method tcod.image.Image.from_file to load images with. This replaces tcod.image_load.
  • tcod.sdl.audio.AudioDevice is now a context manager.

Changed

  • SDL audio conversion will now pass unconvertible floating types as float32 instead of raising.

Deprecated

  • Deprecated the libtcodpy functions for images and noise generators.

Removed

  • tcod.console_set_custom_font can no longer take bytes as the file path.

Fixed

  • Fix tcod.sdl.mouse.warp_in_window function.
  • Fix TypeError: '_AudioCallbackUserdata' object is not callable when using an SDL audio device callback. #128

[15.0.3] - 2023-05-25

Deprecated

  • Deprecated all libtcod color constants. Replace these with your own manually defined colors. Using a color will tell you the color values of the deprecated color in the warning.
  • Deprecated older scancode and keysym constants. These were replaced with the Scancode and KeySym enums.

Fixed

  • DLL loader could fail to load SDL2.dll when other tcod namespace packages were installed.

[15.0.1] - 2023-03-30

Added

  • Added support for tcod.sdl namespace packages.

Fixed

  • Renderer.read_pixels method was completely broken.

[15.0.0] - 2023-01-04

Changed

  • Modified the letter case of window event types to match their type annotations. This may cause regressions. Run Mypy to check for [comparison-overlap] errors.
  • Mouse event attributes have been changed .pixel -> .position and .pixel_motion -> .motion.
  • Context.convert_event now returns copies of events with mouse coordinates converted into tile positions.

Deprecated

  • Mouse event pixel and tile attributes have been deprecated.

[14.0.0] - 2022-12-09

Added

  • Added explicit support for namespace packages.

Changed

  • Using libtcod 1.23.1.
  • Bundle SDL 2.26.0 on Windows and MacOS.
  • Code Page 437: Character 0x7F is now assigned to 0x2302 (HOUSE).
  • Forced all renderers to RENDERER_SDL2 to fix rare graphical artifacts with OpenGL.

Deprecated

  • The renderer parameter of new contexts is now deprecated.

[13.8.1] - 2022-09-23

Fixed

  • EventDispatch was missing new event names.

[13.8.0] - 2022-09-22

Added

  • Ported SDL2 joystick handing as tcod.sdl.joystick.
  • New joystick related events.

Changed

  • Using libtcod 1.22.3.
  • Bundle SDL 2.24.0 on Windows and MacOS.

Deprecated

  • Renderers other than tcod.RENDERER_SDL2 are now discouraged.

Fixed

  • Fixed double present bug in non-context flush functions. This was affecting performance and also caused a screen flicker whenever the global fade color was active.
  • Fixed the parsing of SDL 2.24.0 headers on Windows.

[13.7.0] - 2022-08-07

Added

  • You can new use SDLConsoleRender.atlas to access the SDLTilesetAtlas used to create it. #121

Fixed

  • Fixed the parsing of SDL 2.0.22 headers. Specifically SDL_FLT_EPSILON.

[13.6.2] - 2022-05-02

Fixed

  • SDL renderers were ignoring tiles where only the background red channel was changed.

[13.6.1] - 2022-03-29

Changed

  • The SDL2 renderer has had a major performance update when compiled with SDL 2.0.18.
  • SDL2 is now the default renderer to avoid rare issues with the OpenGL 2 renderer.

[13.6.0] - 2022-02-19

Added

  • BasicMixer and Channel classes added to tcod.sdl.audio. These handle simple audio mixing.
  • AudioDevice.convert added to handle simple conversions to the active devices format.
  • tcod.sdl.audio.convert_audio added to handle any other conversions needed.

[13.5.0] - 2022-02-11

Added

  • tcod.sdl.audio, a new module exposing SDL audio devices. This does not include an audio mixer yet.
  • tcod.sdl.mouse, for SDL mouse and cursor handing.
  • Context.sdl_atlas, which provides the relevant SDLTilesetAtlas when one is being used by the context.
  • Several missing features were added to tcod.sdl.render.
  • Window.mouse_rect added to SDL windows to set the mouse confinement area.

Changed

  • Texture.access and Texture.blend_mode properties now return enum instances. You can still set blend_mode with int but Mypy will complain.

[13.4.0] - 2022-02-04

Added

  • Adds sdl_window and sdl_renderer properties to tcod contexts.
  • Adds tcod.event.add_watch and tcod.event.remove_watch to handle SDL events via callback.
  • Adds the tcod.sdl.video module to handle SDL windows.
  • Adds the tcod.sdl.render module to handle SDL renderers.
  • Adds the tcod.render module which gives more control over the rendering of consoles and tilesets.

Fixed

  • Fixed handling of non-Path PathLike parameters and filepath encodings.

[13.3.0] - 2022-01-07

Added

  • New experimental renderer tcod.context.RENDERER_XTERM.

Changed

  • Using libtcod 1.20.1.

Fixed

  • Functions accepting Path-like parameters now accept the more correct os.PathLike type.
  • BDF files with blank lines no longer fail to load with an "Unknown keyword" error.

[13.2.0] - 2021-12-24

Added

  • New console parameter in tcod.context.new which sets parameters from an existing Console.

Changed

  • Using libtcod 1.20.0.

Fixed

  • Fixed segfault when an OpenGL2 context fails to load.
  • Gaussian number generation no longer affects the results of unrelated RNG's.
  • Gaussian number generation is now reentrant and thread-safe.
  • Fixed potential crash in PNG image loading.

[13.1.0] - 2021-10-22

Added

  • Added the tcod.tileset.procedural_block_elements function.

Removed

  • Python 3.6 is no longer supported.

[13.0.0] - 2021-09-20

Changed

  • Console print and drawing functions now always use absolute coordinates for negative numbers.

[12.7.3] - 2021-08-13

Deprecated

  • tcod.console_is_key_pressed was replaced with tcod.event.get_keyboard_state.
  • tcod.console_from_file is deprecated.
  • The .asc and .apf formats are no longer actively supported.

Fixed

  • Fixed the parsing of SDL 2.0.16 headers.

[12.7.2] - 2021-07-01

Fixed

  • Scancode and KeySym enums no longer crash when SDL returns an unexpected value.

[12.7.1] - 2021-06-30

Added

  • Started uploading wheels for ARM64 macOS.

[12.7.0] - 2021-06-29

Added

  • tcod.image and tcod.tileset now support pathlib.

Fixed

  • Wheels for 32-bit Windows now deploy again.

[12.6.2] - 2021-06-15

Fixed

  • Git is no longer required to install from source.

[12.6.1] - 2021-06-09

Fixed

  • Fixed version mismatch when building from sources.

[12.6.0] - 2021-06-09

Added

  • Added the decoration parameter to Console.draw_frame. You may use this parameter to designate custom glyphs as the frame border.

Deprecated

  • The handling of negative indexes given to console drawing and printing functions will be changed to be used as absolute coordinates in the future.

[12.5.1] - 2021-05-30

Fixed

  • The setup script should no longer fail silently when cffi is unavailable.

[12.5.0] - 2021-05-21

Changed

  • KeyboardEvent's 'scancode, sym, and mod attributes now use their respective enums.

[12.4.0] - 2021-05-21

Added

  • Added modernized REXPaint saving/loading functions.
    • tcod.console.load_xp
    • tcod.console.save_xp

Changed

  • Using libtcod 1.18.1.
  • tcod.event.KeySym and tcod.event.Scancode can now be hashed.

[12.3.2] - 2021-05-15

Changed

  • Using libtcod 1.17.1.

Fixed

  • Fixed regression with loading PNG images.

[12.3.1] - 2021-05-13

Fixed

  • Fix Windows deployment.

[12.3.0] - 2021-05-13

Added

  • New keyboard enums:
    • tcod.event.KeySym
    • tcod.event.Scancode
    • tcod.event.Modifier
  • New functions:
    • tcod.event.get_keyboard_state
    • tcod.event.get_modifier_state
  • Added tcod.console.rgb_graphic and tcod.console.rgba_graphic dtypes.
  • Another name for the Console array attributes: Console.rgb and Console.rgba.

Changed

  • Using libtcod 1.17.0.

Deprecated

  • Console_tiles_rgb is being renamed to Console.rgb.
  • Console_tiles being renamed to Console.rgba.

Fixed

  • Contexts now give a more useful error when pickled.
  • Fixed regressions with tcod.console_print_frame and Console.print_frame when given empty strings as the banner.

[12.2.0] - 2021-04-09

Added

  • Added tcod.noise.Algorithm and tcod.noise.Implementation enums.
  • Added tcod.noise.grid helper function.

Deprecated

  • The non-enum noise implementation names have been deprecated.

Fixed

  • Indexing Noise classes now works with the FBM implementation.

[12.1.0] - 2021-04-01

Added

  • Added package-level PyInstaller hook.

Changed

  • Using libtcod 1.16.7.
  • tcod.path.dijkstra2d now returns the output and accepts an out parameter.

Deprecated

  • In the future tcod.path.dijkstra2d will no longer modify the input by default. Until then an out parameter must be given.

Fixed

  • Fixed crashes from loading tilesets with non-square tile sizes.
  • Tilesets with a size of 0 should no longer crash when used.
  • Prevent division by zero from recommended-console-size functions.

[12.0.0] - 2021-03-05

Added

  • Now includes PyInstaller hooks within the package itself.

Deprecated

  • The Random class will now warn if the seed it's given will not used deterministically. It will no longer accept non-integer seeds in the future.

Changed

  • Now bundles SDL 2.0.14 for MacOS.
  • tcod.event can now detect and will warn about uninitialized tile attributes on mouse events.

Removed

  • Python 3.5 is no longer supported.
  • The tdl module has been dropped.

[11.19.3] - 2021-01-07

Fixed

  • Some wheels had broken version metadata.

[11.19.2] - 2020-12-30

Changed

  • Now bundles SDL 2.0.10 for MacOS and SDL 2.0.14 for Windows.

Fixed

  • MacOS wheels were failing to bundle dependencies for SDL2.

[11.19.1] - 2020-12-29

Fixed

  • MacOS wheels failed to deploy for the previous version.

[11.19.0] - 2020-12-29

Added

  • Added the important order parameter to Context.new_console.

[11.18.3] - 2020-12-28

Changed

  • Now bundles SDL 2.0.14 for Windows/MacOS.

Deprecated

  • Support for Python 3.5 will be dropped.
  • tcod.console_load_xp has been deprecated, tcod.console_from_xp can load these files without modifying an existing console.

Fixed

  • tcod.console_from_xp now has better error handling (instead of crashing.)
  • Can now compile with SDL 2.0.14 headers.

[11.18.2] - 2020-12-03

Fixed

  • Fixed missing tcod.FOV_SYMMETRIC_SHADOWCAST constant.
  • Fixed regression in tcod.sys_get_current_resolution behavior. This function now returns the monitor resolution as was previously expected.

[11.18.1] - 2020-11-30

Fixed

  • Code points from the Private Use Area will now print correctly.

[11.18.0] - 2020-11-13

Added

  • New context method Context.new_console.

Changed

  • Using libtcod 1.16.0-alpha.15.

[11.17.0] - 2020-10-30

Added

  • New FOV implementation: tcod.FOV_SYMMETRIC_SHADOWCAST.

Changed

  • Using libtcod 1.16.0-alpha.14.

[11.16.1] - 2020-10-28

Deprecated

  • Changed context deprecations to PendingDeprecationWarning to reduce mass panic from tutorial followers.

Fixed

  • Fixed garbled titles and crashing on some platforms.

[11.16.0] - 2020-10-23

Added

  • Added tcod.context.new function.
  • Contexts now support a CLI.
  • You can now provide the window x,y position when making contexts.
  • tcod.noise.Noise instances can now be indexed to generate noise maps.

Changed

  • Using libtcod 1.16.0-alpha.13.
  • The OpenGL 2 renderer can now use SDL_HINT_RENDER_SCALE_QUALITY to determine the tileset upscaling filter.
  • Improved performance of the FOV_BASIC algorithm.

Deprecated

  • tcod.context.new_window and tcod.context.new_terminal have been replaced by tcod.context.new.

Fixed

  • Pathfinders will now work with boolean arrays.
  • Console blits now ignore alpha compositing which would result in division by zero.
  • tcod.console_is_key_pressed should work even if libtcod events are ignored.
  • The TCOD_RENDERER and TCOD_VSYNC environment variables should work now.
  • FOV_PERMISSIVE algorithm is now reentrant.

[11.15.3] - 2020-07-30

Fixed

  • tcod.tileset.Tileset.remap, codepoint and index were swapped.

[11.15.2] - 2020-07-27

Fixed

  • tcod.path.dijkstra2d, fixed corrupted output with int8 arrays.

[11.15.1] - 2020-07-26

Changed

  • tcod.event.EventDispatch now uses the absolute names for event type hints so that IDE's can better auto-complete method overrides.

Fixed

  • Fixed libtcodpy heightmap data alignment issues on non-square maps.

[11.15.0] - 2020-06-29

Added

  • tcod.path.SimpleGraph for pathfinding on simple 2D arrays.

Changed

  • tcod.path.CustomGraph now accepts an order parameter.

[11.14.0] - 2020-06-23

Added

  • New tcod.los module for NumPy-based line-of-sight algorithms. Includes tcod.los.bresenham.

Deprecated

  • tcod.line_where and tcod.line_iter have been deprecated.

[11.13.6] - 2020-06-19

Deprecated

  • console_init_root and console_set_custom_font have been replaced by the modern API.
  • All functions which handle SDL windows without a context are deprecated.
  • All functions which modify a globally active tileset are deprecated.
  • tcod.map.Map is deprecated, NumPy arrays should be passed to functions directly instead of through this class.

[11.13.5] - 2020-06-15

Fixed

  • Install requirements will no longer try to downgrade cffi.

[11.13.4] - 2020-06-15

[11.13.3] - 2020-06-13

Fixed

  • cffi requirement has been updated to version 1.13.0. The older versions raise TypeError's.

[11.13.2] - 2020-06-12

Fixed

  • SDL related errors during package installation are now more readable.

[11.13.1] - 2020-05-30

Fixed

  • tcod.event.EventDispatch: ev_* methods now allow Optional[T] return types.

[11.13.0] - 2020-05-22

Added

  • tcod.path: New Pathfinder and CustomGraph classes.

Changed

  • Added edge_map parameter to tcod.path.dijkstra2d and tcod.path.hillclimb2d.

Fixed

  • tcod.console_init_root` and context initializing functions were not raising exceptions on failure.

[11.12.1] - 2020-05-02

Fixed

  • Prevent adding non-existent 2nd halves to potential double-wide charterers.

[11.12.0] - 2020-04-30

Added

  • Added tcod.context module. You now have more options for making libtcod controlled contexts.
  • tcod.tileset.load_tilesheet: Load a simple tilesheet as a Tileset.
  • Tileset.remap: Reassign codepoints to tiles on a Tileset.
  • tcod.tileset.CHARMAP_CP437: Character mapping for load_tilesheet.
  • tcod.tileset.CHARMAP_TCOD: Older libtcod layout.

Changed

  • EventDispatch.dispatch can now return the values returned by the ev_* methods. The class is now generic to support type checking these values.
  • Event mouse coordinates are now strictly int types.
  • Submodules are now implicitly imported.

[11.11.4] - 2020-04-26

Changed

  • Using libtcod 1.16.0-alpha.10.

Fixed

  • Fixed characters being dropped when color codes were used.

[11.11.3] - 2020-04-24

Changed

  • Using libtcod 1.16.0-alpha.9.

Fixed

  • FOV_DIAMOND and FOV_RESTRICTIVE algorithms are now reentrant. libtcod#48
  • The TCOD_VSYNC environment variable was being ignored.

[11.11.2] - 2020-04-22

[11.11.1] - 2020-04-03

Changed

  • Using libtcod 1.16.0-alpha.8.

Fixed

  • Changing the active tileset now redraws tiles correctly on the next frame.

[11.11.0] - 2020-04-02

Added

  • Added Console.close as a more obvious way to close the active window of a root console.

Changed

  • GCC is no longer needed to compile the library on Windows.
  • Using libtcod 1.16.0-alpha.7.
  • tcod.console_flush will now accept an RGB tuple as a clear_color.

Fixed

  • Changing the active tileset will now properly show it on the next render.

[11.10.0] - 2020-03-26

Added

  • Added tcod.tileset.load_bdf, you can now load BDF fonts.
  • tcod.tileset.set_default and tcod.tileset.get_default are now stable.

Changed

  • Using libtcod 1.16.0-alpha.6.

Deprecated

  • The snap_to_integer parameter in tcod.console_flush has been deprecated since it can cause minor scaling issues which don't exist when using integer_scaling instead.

[11.9.2] - 2020-03-17

Fixed

  • Fixed segfault after the Tileset returned by tcod.tileset.get_default goes out of scope.

[11.9.1] - 2020-02-28

Changed

  • Using libtcod 1.16.0-alpha.5.
  • Mouse tile coordinates are now always zero before the first call to tcod.console_flush.

[11.9.0] - 2020-02-22

Added

  • New method Tileset.render renders an RGBA NumPy array from a tileset and a console.

[11.8.2] - 2020-02-22

Fixed

  • Prevent KeyError when representing unusual keyboard symbol constants.

[11.8.1] - 2020-02-22

Changed

  • Using libtcod 1.16.0-alpha.4.

Fixed

  • Mouse tile coordinates are now correct on any resized window.

[11.8.0] - 2020-02-21

Added

  • Added tcod.console.recommended_size for when you want to change your main console size at runtime.
  • Added Console.tiles_rgb as a replacement for Console.tiles2.

Changed

  • Using libtcod 1.16.0-alpha.3.
  • Added parameters to tcod.console_flush, you can now manually provide a console and adjust how it is presented.

Deprecated

  • Console.tiles2 is deprecated in favour of Console.tiles_rgb.
  • Console.buffer is now deprecated in favour of Console.tiles, instead of the other way around.

Fixed

  • Fixed keyboard state and mouse state functions losing state when events were flushed.

[11.7.2] - 2020-02-16

Fixed

  • Fixed regression in tcod.console_clear.

[11.7.1] - 2020-02-16

Fixed

  • 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

Changed

  • 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.

Deprecated

  • The use of libtcod.cfg and terminal.png is deprecated.

Fixed

  • 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

Changed

  • Console blit operations now perform per-cell alpha transparency.

[11.5.1] - 2019-11-23

Fixed

  • Python 3.8 wheels failed to deploy.

[11.5.0] - 2019-11-22

Changed

  • Quarter block elements are now rendered using Unicode instead of a custom encoding.

Fixed

  • OPENGL and GLSL renderers were not properly clearing space characters.

[11.4.1] - 2019-10-15

Added

  • Uploaded Python 3.8 wheels to PyPI.

[11.4.0] - 2019-09-20

Added

  • 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.

Changed

  • Console.tiles is now named Console.buffer.

[11.3.0] - 2019-09-06

Added

  • New attribute Console.tiles2 is similar to Console.tiles but without an alpha channel.

[11.2.2] - 2019-08-25

Fixed

  • Fixed a regression preventing PyInstaller distributions from loading SDL2.

[11.2.1] - 2019-08-25

[11.2.0] - 2019-08-24

Added

  • 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.

Fixed

  • 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

Changed

  • Now bundles SDL 2.0.10 for Windows/MacOS.

Fixed

  • Can now parse SDL 2.0.10 headers during installation without crashing.

[11.1.1] - 2019-08-01

Deprecated

  • Using an out-of-bounds index for field-of-view operations now raises a warning, which will later become an error.

Fixed

  • Changing the tiles of an active tileset will now work correctly.

[11.1.0] - 2019-07-05

Added

  • You can now set the TCOD_RENDERER and TCOD_VSYNC environment variables to force specific options to be used. Example: TCOD_RENDERER=sdl2 TCOD_VSYNC=1

Changed

  • tcod.sys_set_renderer now raises an exception if it fails.

Fixed

  • tcod.console_map_ascii_code_to_font functions will now work when called before tcod.console_init_root.

[11.0.2] - 2019-06-21

Changed

  • You no longer need OpenGL to build python-tcod.

[11.0.1] - 2019-06-21

Changed

  • Better runtime checks for Windows dependencies should now give distinct errors depending on if the issue is SDL2 or missing redistributables.

Fixed

  • Changed NumPy type hints from np.array to np.ndarray which should resolve issues.

[11.0.0] - 2019-06-14

Changed

  • 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

Changed

  • Better string representations for tcod.event.Event subclasses.

Fixed

  • Fixed regressions in text alignment for non-rectangle print functions.

[10.1.0] - 2019-05-24

Added

  • tcod.console_init_root now has an optional vsync parameter.

[10.0.5] - 2019-05-17

Fixed

  • Fixed shader compilation issues in the OPENGL2 renderer.
  • Fallback fonts should fail less on Linux.

[10.0.4] - 2019-05-17

Changed

  • Now depends on cffi 0.12 or later.

Fixed

  • 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

Fixed

  • Corrected bounding box issues with the Console.print_box method.

[10.0.2] - 2019-04-26

Fixed

  • Resolved Color warnings when importing tcod.
  • When compiling, fixed a name conflict with endianness macros on FreeBSD.

[10.0.1] - 2019-04-19

Fixed

  • Fixed horizontal alignment for TrueType fonts.
  • Fixed taking screenshots with the older SDL renderer.

[10.0.0] - 2019-03-29

Added

  • New Console.tiles array attribute.

Changed

  • Console.DTYPE changed to add alpha to its color types.

Fixed

  • Console printing was ignoring color codes at the beginning of a string.

[9.3.0] - 2019-03-15

Added

  • 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.

Deprecated

  • 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.

Fixed

  • 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

  • Fixed tcod.namegen_generate_custom.

[9.2.4] - 2019-03-02

Fixed

  • The tcod package is has been marked as typed and will now work with MyPy.

[9.2.3] - 2019-03-01

Deprecated

  • 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

Fixed

  • Console.print_box wasn't setting the background color by default.

[9.2.1] - 2019-02-25

Fixed

  • tcod.sys_get_char_size fixed on the new renderers.

[9.2.0] - 2019-02-24

Added

  • 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.

Fixed

  • 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

  • Added the tcod.random.MULTIPLY_WITH_CARRY constant.

Changed

  • 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

Changed

  • New console methods now default to an fg and bg of None instead of white-on-black.

[8.5.0] - 2019-02-15

Added

  • 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.

Changed

  • Updated libtcod to 1.10.6
  • Printing generates more compact layouts.

Deprecated

  • 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.

Fixed

  • 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

Changed

  • 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

Deprecated

  • The tdl module has been deprecated.
  • The libtcodpy parser functions have been deprecated.

Fixed

  • 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

Fixed

  • Window event types were not upper-case.
  • Fixed regression where libtcodpy mouse wheel events unset mouse coordinates.

[8.4.0] - 2019-01-31

Added

  • Added tcod.event module, based off of the sdlevent.py shim.

Changed

  • Updated libtcod to 1.10.3

Fixed

  • 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

  • Fixed rare access violations for some functions which took strings as parameters, such as tcod.console_init_root.

[8.3.1] - 2018-12-28

Fixed

  • 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

  • Added BSP traversal methods in tcod.bsp for parity with libtcodpy.

Deprecated

  • Already deprecated bsp functions are now even more deprecated.

[8.2.0] - 2018-11-27

Added

  • New layout tcod.FONT_LAYOUT_CP437.

Changed

  • Updated libtcod to 1.10.2
  • tcod.console_print_frame and Console.print_frame now support Unicode strings.

Deprecated

  • Deprecated using bytes strings for all printing functions.

Fixed

  • 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

Fixed

  • Printing a frame with an empty string no longer displays a title bar.

[8.1.0] - 2018-11-15

Changed

  • Heightmap functions now support 'F_CONTIGUOUS' arrays.
  • tcod.heightmap_new now has an order parameter.
  • Updated SDL to 2.0.9

Deprecated

  • Deprecated heightmap functions which sample noise grids, this can be done using the Noise.sample_ogrid method.

[8.0.0] - 2018-11-02

Changed

  • 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

Fixed

  • Building from source was failing because console_2tris.glsl* was missing from source distributions.

[7.0.0] - 2018-10-25

Added

  • New RENDERER_SDL2 and RENDERER_OPENGL2 renderers.

Changed

  • Updated libtcod to 1.9.0
  • Now requires SDL 2.0.5, which is not trivially installable on Ubuntu 16.04 LTS.

Removed

  • Dropped support for Python versions before 3.5
  • Dropped support for MacOS versions before 10.9 Mavericks.

[6.0.7] - 2018-10-24

Fixed

  • The root console no longer loses track of buffers and console defaults on a renderer change.

[6.0.6] - 2018-10-01

Fixed

  • Replaced missing wheels for older and 32-bit versions of MacOS.

[6.0.5] - 2018-09-28

Fixed

  • Resolved CDefError error during source installs.

[6.0.4] - 2018-09-11

Fixed

  • 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

Fixed

  • tcod.Key and tcod.Mouse no longer ignore initiation parameters.

[6.0.2] - 2018-08-28

Fixed

  • Fixed color constants missing at build-time.

[6.0.1] - 2018-08-24

Fixed

  • Source distributions were missing C++ source files.

[6.0.0] - 2018-08-23

Changed

  • Project renamed to tcod on PyPI.

Deprecated

  • Passing bytes strings to libtcodpy print functions is deprecated.

Fixed

  • 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

Fixed

  • tdl.event no longer crashes with StopIteration on Python 3.7

[5.0.0] - 2018-07-05

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.

[4.6.1] - 2018-06-30

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.

[4.5.2] - 2018-06-29

Added

  • New wheels for Python3.7 on Windows.

Fixed

  • Arrays from tcod.heightmap_new are now properly zeroed out.

[4.5.1] - 2018-06-23

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.

[4.5.0] - 2018-06-12

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.

[4.4.0] - 2018-05-02

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

[4.3.2] - 2018-03-18

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)

[4.3.1] - 2018-03-07

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.

[4.3.0] - 2018-02-01

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.

[4.2.3] - 2018-01-06

Fixed

  • Fixed setup.py regression that could prevent building outside of the git repository.

[4.2.2] - 2018-01-06

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.

[4.2.0] - 2018-01-02

Changed

  • Updated libtcod backend to v1.6.4
  • Updated SDL to v2.0.7 for Windows/MacOS.

Removed

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.

[4.1.1] - 2017-11-02

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.

[4.1.0] - 2017-07-19

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.

[4.0.1] - 2017-07-12

Fixed

  • tdl: Fixed NameError in set_fps.

[4.0.0] - 2017-07-08

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 parameter name to fps.

Fixed

  • tcod.bsp: Corrected spelling of max_vertical_ratio.

[3.2.0] - 2017-07-04

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.

[3.1.0] - 2017-05-28

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.

[3.0.2] - 2017-04-13

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.

[3.0.1] - 2017-03-22

Changed

  • KeyEvent's with text now have all their modifier keys set to False.

Fixed

  • Undefined behavior in text events caused crashes on 32-bit builds.

[3.0.0] - 2017-03-21

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.

[2.0.1] - 2017-02-22

Fixed

  • tdl.init renderer was defaulted to OpenGL which is not supported in the current version of libtcod.

[2.0.0] - 2017-02-15

Changed

  • Dependencies updated, tdl now requires libtcod-cffi 2.x.x
  • Some event behaviors 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.

[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 libtcod 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 setcolors 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.