Sometimes when looking at the source code everything seems a huge mess, but then there are moments of clear vision of how to proceed. I guess today was more of that clear minded side. I'm going through functions of Level class which is huge, possibly the biggest class in the project. Most of the problems come from the fact that stuff depends on other stuff. That's why I think it's essential to learn how to write modular code (as much as possible) because then different parts can be implemented without having to worry about how compatible they are or will be in the future (when some other part changes its shape).
It's not that hopeless. The source code is getting really solid actually and maybe some day everything will just fit together.