Tcod

Latest version: v17.1.0

Safety actively analyzes 723158 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 41 of 45

1.4.2

Added
- added possibility to use SDL drawing functions on top of the root console with TCODSystem::registerSDLRenderer
- added Mingos' restrictive precise angle shadow casting fov algorithm as FOV_RESTRICTIVE
- heightmap: added missing `TCOD_heightmap_set_value` function
- new consolas, dejavu, lucida and prestige fonts from Mingos

Changed
- `TCODConsole::blit` now takes 2 float parameters:
`static void blit(const TCODConsole *src,int xSrc, int ySrc, int wSrc, int hSrc, TCODConsole *dst, int xDst, int yDst, float foreground_alpha=1.0f, float background_alpha=1.0f)`

Fixed
- fixed R/B inversion in color operations in Python
- fixed a crash when saving a TCODImage before initializing the root console
- fixed a crash when destroying an empty TCODZip (file not found)
- fixed torch effect in C++ sample
- fixed ASCII_IN_ROW flag not working
- fixed path_new_using_function not working in Python wrapper
- fixed alignment issues in `TCOD_console_print_*` with strings containing
ascii codes > 127
- fixed color controls not working with autowrap
- fixed fov post-processing step to handle opaque walkable cells (for example bush)

1.4.1

Added
- added Python wrapper
- added arial, courier fonts courtesy of Mingos
- added some non portable filesystem utilities in TCODSystem :
- bool TCODSystem::createDirectory(const char *path);
- bool TCODSystem::deleteDirectory(const char *path);
- bool TCODSystem::deleteFile(const char *path);
- added multithread utilities in TCODSystem :
- static TCOD_thread_t TCODSystem::newThread(int (*func)(void *), void *data);
- static void TCODSystem::deleteThread(TCOD_thread_t th);
- static TCOD_mutex_t TCODSystem::newMutex();
- static void TCODSystem::mutexIn(TCOD_mutex_t mut);
- static void TCODSystem::mutexOut(TCOD_mutex_t mut);
- static void TCODSystem::deleteMutex(TCOD_mutex_t mut);
- static TCOD_semaphore_t TCODSystem::newSemaphore(int initVal);
- static void TCODSystem::lockSemaphore(TCOD_semaphore_t sem);
- static void TCODSystem::unlockSemaphore(TCOD_semaphore_t sem);
- static void TCODSystem::deleteSemaphore( TCOD_semaphore_t sem);
- added some image utilities :
- void TCODImage::clear(const TCODColor col)
- void TCODImage::invert()
- void TCODImage::hflip()
- void TCODImage::vflip()
- void TCODImage::scale(int neww, int newh)
- void TCODImage::setKeyColor(const TCODColor keyColor)
- int TCODImage::getAlpha(int x,int y) const
- bool TCODImage::isPixelTransparent(int x, int y) const
- can now dynamically modify the content of the font bitmap:
`static void TCODSystem::updateChar(int asciiCode, int fontx, int fonty,const TCODImage *img,int x,int y)`
- added C and Python code generation in the heightmap tool
- added function to calculate the height of a printed string
(with autowrapping) without actually printing it:
- `int TCODConsole::getHeightLeftRect(int x, int y, int w, int h, const char *fmt, ...)`
- `int TCODConsole::getHeightRightRect(int x, int y, int w, int h, const char *fmt, ...)`
- `int TCODConsole::getHeightCenterRect(int x, int y, int w, int h, const char *fmt, ...)`
- parser : now strings properties can be split. The parser concatenates them:
c
myProperty = "string value can use "
"multi line layout"

- parser: added missing `getCharProperty` when using default listener
- heightmap: added missing `TCOD_heightmap_get_value` function
- now support fonts with unlimited number of characters
(was limited to 1024 in 1.4.0)
- added callback-based atomic bresenham function
`static bool TCODLine::line(int xFrom, int yFrom, int xTo, int yTo, TCODLineListener *listener)`
- added `TCODMap::copy` function
- added TCODList fast remove functions (don't preserve the list order)
- `template<class T> void TCODList::removeFast(const T elt)`
- `template<class T> T * TCODList::removeFast(T *elt)`

Changed
- Default colors have been changed/added.
- `TCODMap::computeFov` changed to support several algorithms:
`void computeFov(int playerX,int playerY, int maxRadius,bool light_walls = true, TCOD_fov_algorithm_t algo = FOV_BASIC)`
available algorithms :
- FOV_BASIC: classic libtcod fov
- FOV_DIAMOND: http://www.geocities.com/temerra/los_rays.html
- FOV_SHADOW: http://roguebasin.roguelikedevelopment.org/index.php?title=FOV_using_recursive_shadowcasting
- FOV_PERMISSIVE: http://roguebasin.roguelikedevelopment.org/index.php?title=Precise_Permissive_Field_of_View
- light_walls: if false, wall cells are not put in the fov
- `setCustomFont` changed:
defines the font number of characters instead of character size.
if not specified, it is deduced from the layout flag
(16x16 for ascii, 32x8 for tcod)
`setCustomFont(const char *fontFile, int flags=TCOD_FONT_LAYOUT_ASCII_INCOL,int nbCharHoriz=0, int nbCharVertic=0)`
The flag values have changed too:
- TCOD_FONT_LAYOUT_ASCII_INCOL=1
- TCOD_FONT_LAYOUT_ASCII_INROW=2
- TCOD_FONT_TYPE_GREYSCALE=4
- TCOD_FONT_TYPE_GRAYSCALE=4
- TCOD_FONT_LAYOUT_TCOD=8
- pathfinding: you don't need to provide coordinates in x,y parameters of
`Path::walk`
- improved double/simple walls special characters in tcod layout fonts

Fixed
- fixed SDL dependent features not being available before initRoot is called.
If you want to draw on an offscreen console without calling initRoot, you
need to call at least setCustomFont to initialize the font. Else characters won't be rendered.
- fixed standalone credits page erasing previously fps limit
- fixed special characters TCOD_CHAR_DTEE* and TCOD_CHAR_DCROSS not printing correctly
- fixed heightmap tool generated code not compiling
- fixed parser C++ error function not prepending file name & line number to the error message
- fixed memory leak in pathfinding
- fixed fov issue with walkable, non transparent cells
- fixed numerical stability issues with heightmap rain erosion
- fixed calculation error in heightmap kernel transformation function
- fixed TCODConsole::renderCredits being able to render the credits only once
- fixed mouse cx,cy coordinates in "padded" fullscreen modes
- fixed mouse cursor hidden when switching fullscreen
- fixed mouse coordinates when going fullscreen->windowed

1.4.0

Added
- added pathfinding module
- added BSP module
- added heightmap module + heightmap tool
- added compression toolkit
- added possibility to pre-allocate TCODList's memory
- added support for PNG images + antialiased fonts from PNG with alpha channel or greyscale
- added ASCII mapping functions to map an ascii code to any character in your font:
- `static void TCODConsole::mapAsciiCodeToFont(int asciiCode, int fontCharX, int fontCharY);`
- `static void TCODConsole::mapAsciiCodesToFont(int firstAsciiCode, int nbCodes, int fontCharX, int fontCharY);`
- `static void TCODConsole::mapStringToFont(const char *s, int fontCharX, int fontCharY);`
- parser : now strings can contain octal/hexadecimal ascii values
- myStringProperty1 = "embedded hex value : \x80"
- myStringProperty2 = "embedded octal value : \200"
- parser : now can handle list properties.
c
myStruct {
myProperty = [1, 2, 3]
}

to declare: `struct.addListProperty("myProperty",TCOD_TYPE_INT,true);`
to read (default parser): `TCODList<int> prop(parser.getListProperty("myStruct.myProperty", TCOD_TYPE_INT));`
- added color map generator. Interpolate colors from an array of key colors :
`TCODColor::genMap(TCODColor *map, int nbKey, TCODColor const *keyColor, int const *keyIndex)`
- added random generator backup function. You can save the state of a generator
with `TCODRandom *TCODRandom::save()` and restore it with
`void TCODRandom::restore(const TCODRandom *backup)`
- added simplex noise, similar to perlin but faster,
especially in 4 dimensions and has better contrast:
- `TCODNoise::getSimplex`
- `TCODNoise::getFbmSimplex`
- `TCODNoise::getTurbulenceSimplex`
Simplex should be preferred over Perlin for most usages.
- added wavelet noise, similar to perlin, much slower but doesn't blur at high scales. Doesn't work in 4D :
- `TCODNoise::getWavelet`
- `TCODNoise::getFbmWavelet`
- `TCODNoise::getTurbulenceWavelet`
Noise functions relative times:

| |2D|3D|4D|
|:------|-:|-:|-:|
|simplex| 1| 1| 1|
|perlin | 4| 5|17|
|wavelet|32|14| X|
- you can capture a console to an existing image without creating a new image
with `TCODImage::refreshConsole`
- non rectangular offscreen consoles:
you can define a key color on offscreen consoles.
Cells for which background color = key color are not blitted
- added libtcod credits function. You can either call:
`TCODConsole::credits()` to print the credits page at the start of your game
(just after `initRoot`) or
`bool TCODConsole::renderCredits(int x, int y, bool alpha)` to print the
credits on top of one of your existing page (your game menu for example).
Call it until it returns true.

Changed
- Noise functions renamed:
- `TCODNoise::getNoise` -> `TCODNoise::getPerlin`
- `TCODNoise::getFbm` -> `TCODNoise::getFbmPerlin`
- `TCODNoise::getTurbulence` -> `TCODNoise::getTurbulencePerlin`
- Some special char constants `TCOD_CHAR_x` added/removed
- `setCustomFont` changed:
`setCustomFont(const char *fontFile,int charWidth=8, int charHeight=8, int flags=0)`
flags:
- TCOD_FONT_LAYOUT_ASCII_INROW=1
- TCOD_FONT_TYPE_GREYSCALE=2
- TCOD_FONT_LAYOUT_TCOD=4
- improved `TCODConsole::flush` performances:
frames per second for sample "True colors" (terminal.png font) on my
reference computer (windowed mode):
- libtcod 1.3.2: 130
- libtcod 1.4.0: 300
- `TCODNoise::getTurbulence` is twice faster
- improved mouse click detection. Even with a low framerate, mouse clicks will
always be detected and reported in the `Xbutton_pressed` fields of
`TCOD_mouse_t`
- you don't need anymore to provide values in `TCODLine::step` parameters

Fixed
- fixed memory leak in image module
- fixed DELETE and INSERT keys not detected
- fixed a rendering bug when using a white background color before any other
background color

1.3.2

Added
- added documentation for the generic container module `TCODList`

Fixed
- fixed not being able to open and close the root console more than once
- fixed parser not being able to attach a sub-structure to more than one structure
- fixed TCOD_image_from_console not working with root console on C version
- fixed TCODParser::newStruct, addFlag, addProperty handling only static names
- fixed web color parser (rrggbb) in the parser module
- fixed TCODImage constructor / TCOD_image_new crashing if root console not initialized
- fixed mouse status not updated if the keyboard events are not read with checkForKeypress/waitForKeypress
- fixed fbm, turbulence functions returning NaN for high octaves values

1.3.1

Added
- added default parser listener for basic config files.
- added fields in `TCOD_mouse_t` to easily detect button press events:
- `lbutton_pressed`: left button pressed event
- `rbutton_pressed`: right button pressed event
- `mbutton_pressed`: middle button pressed event

and to get the mouse movement in cell coordinates (instead of pixels)
- added functions to retrieve data from TCODMap

Changed
- now TCODConsole::putChar/setChar can use ascii code > 255 (ok, it's no more an ascii code, then)
this allows you to use fonts with more than 255 characters.

Fixed
- fixed const correctness in `TCODConsole::print*Rect` functions
- fixed a bug in fov toolkit if TCODMap width < height
- fixed `TCOD_struct_get_type` returning `TCOD_TYPE_NONE` instead of
`TCOD_TYPE_BOOL` for flags.

1.3

Added
- added mouse support
- added the file parser module
- added TCODColor::setHSV(float h, float s, float v) and TCODColor::getHSV(float *h, float *s, float *v)
- added TCODColor addition and scalar multiplication. All r,g,b values are clamped to [0-255] :
- C++: `color1 = color2 * 3.5f;`
`color1 = color1 + color2;`
- C : `color1 = TCOD_color_multiply_scalar(color2, 3.5f);`
`color1 = TCOD_color_add(color1, color2);`
- added `TCODConsole::setKeyboardRepeat(int initialDelay, int interval)` and
`TCODConsole::disableKeyboardRepeat()`
- added `TCODSystem::getCurrentResolution(int *w, int *h)`

Changed
- C++ : colors must be initialized by constructor:
- 1.2.2 : `TCODColor mycol={r,g,b};`
- 1.3 : `TCODColor mycol(r,g,b);`
- TCOD_console_check_for_keypress now has a parameter that indicates which events are tracked
- 1.2.2 : `key = TCOD_console_check_for_keypress();`
- 1.3 : `key = TCOD_console_check_for_keypress(TCOD_KEY_PRESSED);`
- now `TCODFov::computeFov` takes a maxRadius parameter.
Use 0 for unlimited range (default)
- the mouse cursor is now automatically hidden when using fullscreen
- fixed closing the window resulting in a fake 'Q' keyboard event
- fixed `TCODConsole::print*` and `TCODConsole::rect` functions crashing when
printing out of the console
- fixed `f` parameter modified when calling fbm and turbulence noise functions.
Now `f` is no more modified.
- fixed wrong ascii code in `TCOD_key_t.c` when pressing Control and a letter
key.

Page 41 of 45

Links

Releases

Has known vulnerabilities

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.