I'm curious if you've made the terminal/ASCII and SDL components interchangeable, or you're just moving all the way to SDL in time. It would be cool to have both options, but I know it can be taxing supporting that kind of modularity.
Initially, I worked on a display prototype to learn and evaluate SDL. Then I moved functions by groups to add functionaries to the prototype. Display functions are totally new. Functions dealing with user input went trough significant changes. Game logic functions are identical but the game state arrays are now global variables. Map files start with an array describing the background while in the ASCII version obstacles were fake units of type "x". This allows future background tiles to be rendered easily but breaks backward compatibility (on top of the map size change).
So I have two separated source codes built from the same game logic functions. ASCII and SDL are not interchangeable components in the current architecture. I don't want to spend the time making these components interchangeable and add the corresponding complexity to the code. I prefer to focus on improving the SDL version by adding new features and game elements.
The ASCII version will remain available from my locker (link in the initial post). The SDL version is now the standard game download.