Added
- Added `TCOD_context_convert_event_coordinates` and `TCOD_Context::convert_event_coordinates` as an easier way to convert mouse pixel coordinates to tile coordinates.
- Added `tcod::print`, `tcod::print_rect`, and `tcod::get_height_rect` to replace the older C++ functions.
- Added `tcod::Tileset`, `tcod::load_tilesheet`, and `tcod::load_bdf` for working with tilesets in C++ along with the character maps `tcod::CHARMAP_CP437` and `tcod::CHARMAP_TCOD`.
- `TCOD_Context`, `TCOD_ContextParams`, `TCOD_ViewportOptions`, and `tcod::new_context` are now public.
- Added vprintf-like console printing functions: `TCOD_console_vprintf` and `TCOD_console_vprintf_rect`.
- Added the `tcod::Timer` class. A way of handing frame limiting and delta time without depending on libtcod's internals.
- Added `TCOD_sys_get_internal_context`. An easy way to get a `TCOD_Context` from the old API.
- Added `TCOD_sys_get_internal_console`. This returns a pointer to the root console used by the old API.
- Added `tcod::ColorRGB` and `tcod::ColorRGBA` to help with color type conversions.
- Added libtcod logging functions, for debugging and internal use.
- Added `tcod::draw_quartergraphics` to replace older C++ blit2x functions.
- Added `tcod::blit` to replace older C++ blit functions.
- Added `tcod::stringf` to encapsulate printf formatted strings so that other C++ functions won't have to deal with them.
A library like [fmt](https://fmt.dev/latest/index.html) is safer and faster if you have access to it.
Changed
- Initializing libtcod with the old API will now enable VSync by default.
You can set the environment variable `TCOD_VSYNC=0` to disable this or use the new API where VSync is a setting.
- `TCODConsole::get_data` now returns a non-NULL pointer to the root console.
- Fixes to Gaussian number generation will have changed the resulting numbers and any subsequent random numbers.
- `TCOD_Random` now points to a union type.
- Libtcod now uses the C++17 standard.
- The newer C++ printing functions now take `std::string_view` instead of `std::string`.
- `TCODConsole`, `TCODBsp`, `TCODPath`, `TCODDijkstra`, `TCODNoise`, `TCODImage`, and `TCODMap` can now handle move operations.
Their copy operators have been deleted. This makes them safe to use as a value instead of using `new`/`delete`.
Deprecated
- Deprecate `TCOD_chars_t` enum values because they are non-Unicode.
- Deprecated C++ color constants because of class `static const` initialization issues.
- Deprecated libtcod's older timing functions.
- Deprecated older font loading functions.
- Deprecated `TCOD_random_t` type.
- Console defaults have been deprecated.
- Root console initiation has been deprecated.
Fixed
- Gaussian number generation no longer affects the results of unrelated RNG's.
- Gaussian number generation is now reentrant and thread-safe.
Removed
- Dropped support for C++14.