Well, I'm back.
Before anything else, I want to apologize. I promised something for the very next day, and when I was about to show something, I made a mistake which erased the 'safer' changes and let me only with a slightly modified version I made to try to diminish the use of global variables. That probably introduced some bugs. Out of frustration, I left that work.
Last night, I restarted in a more systematic way.
First, I set up my IDE on Linux to allow for cross-compiling, so I don't have to reboot to Windows (my main OS is Ubuntu, so everything that is not games that requires me to reboot severely hurts my ability to procrastinate, and I don't like that). Then, I modified the makefile included in the original source so I can easily build on Linux, since my IDE doesn't build anyway.
Then, I learned how to setup a clone of the original author's git repository and started commiting gradual changes.
This is the git, with the restarted work, this is really far from becoming modular:
The source in that repository should build in any condition the original sources built, and I can assure it builds when cross-compiling on Linux.
However, I wanted to try my previous work. I undid the changes I could recall I made to the functions, but I'm not sure I undid all (that's why I set up a git, it makes it easier to keep track of changes if used properly), and then made a makefile and tried to build. I had to make a few changes, but I got it, starts up, in a fast test it seemed to work correctly. The only three things: I didn't update the windows makefile, because I'll redo all the work in the git anyway and was a loss of time (I just did this to check if my approach was correct, and to check the source of an error I was having in the repo version), and to check if it builded without having to deal with a kind of ugly way to add a function if it wasn't built with mingw, I just got it out of the way. So, it will only build on Linux via cross-compiling, right now. And the other thing, building throws A LOT of warnings, while the original throws a few to none. This has something to do with how I worked with the globals.
Anyway, here is the old source
, which should be considered like an sketch of what I intend to do, and the binary
from this source. Since I forgot to erase it, there is my old roadmap in spanish within the source code.