Actually, it would be much better if a single function could modify everything: background/foreground colors and character. The way it is, most people are calling setFore/setBack/setChar (or putChar), sequentially -- which is a bit redundant.
Ok it's not the first time someone ask for it. Let's replace putChar by this almighty function

+ add color alpha channel ?
Sorry, can you elaborate a bit?
Add a "a" (for alpha) field in TCODColor (with all implications for functions using colors).
% Console background & foreground stored in TCODImage => TCODConsole::set/getForegroundImage
So it stores 2 images? Wouldn't it be easier to have a blit function that prints either to foreground or background? (Unless this already exists; this is one part of the library that I haven't used yet.)
Having actual TCODImage in the console makes it possible to use every image utilities (like loading from a file) on the console. Instead of having image->console utilities and image->image utilities, I can keep only the latter. I find this cleaner. The only image->console functions will be the sub-cell blit2x because they update every property of the console.
% replace TCODMap based functions by callback based functions (TCODMap encourages bad architecture)
Understandable, but just try calling back Python 500 times per frame and let me know if there's a performance hit compared to the current system...
I don't mind the maps, they're just data structures that sit there peacefully. The tiles' "blocked" state rarely needs to be updated.
Err yeah. I have to admit I never thought about python while writing this list down... Have to think a bit more about the impact of bresenham/fov/path stuff on python...
And FBM Simplex, right?
Yes, simple/fbm/turbulence simplex noise. Junk Perlin & wavelet.
Just asking: are the other noises that useless?
Well they're much slower and the difference is barely visible. Since I implemented simplex, I've never used any other noise (neither Umbrarum Regnum, which makes heavy usage of noise, so I'm pretty confident about junking the other ones)
- keep only one fov algorithm
- keep only simplex noise
please don't remove those niceties, having different fov algorithms and noise at hand
is a real boost for tcod. in my opinion those and the pathfinder make tcod a useful
library for roguelikes.
Concerning noise, see above. I don't think the slight difference justify to increase the library bloat...
Concerning fov, I admit it's a bit brutal. But what if the only remaining fov algorithm is proved to be the best ? I really think it would be better for everybody not to have to choose one. Moreover is the difference between 2 algo that important for the gameplay ? I have the feeling that it's rather a semi-religious thing.
% isKeyPressed(TCOD_keycode_t key, int asciiCode) to get status of TCODK_CHAR keys
Would this be like the SDL_GetKeyState function? I really like the way that one works.
No, the current isKeyPressed is like the SDL_GetKeyState. It can only check special keys. This version would allow to check any key on the keyboard including standard char keys.