I might even be able to fix the physics bugs. Smile
Trust me, that is no piece of cake. I have a ph.d. in physics and have an interest in computational mathematics. The problem is not with big structure of the code and it's inherent instability to change. I've "fixed" the physics system many times, but it messes with some other game mechanic that is tuned to the current broken system...
[quite]So that you guys can keep developing and not spend your time looking for bugs, or at least fixing crucial bugs and not worrying about cosmetic ones.
We definitely need bug testers. If you even could download the code and try to track down bugs with a debugger that would be awesome. Trying to track down bugs is a tremendous time sink.[/quote]
Oh wow, what field did you do your Ph.D. in? I'm still not sure what I'll be specializing in, but I hear that's common.
Anyway, yeah, I'll sit down and take a better look at the code tomorrow to figure out how stuff works, and I can start with debugging the code. I've only had to debug small programs before, though, which involved stepping through each command to see where the program does something I wasn't expecting. Is there a better way to do it in this case? I've used gdb when I was getting a segfault from SDL_mixer, but that was because the program was crashing. And of course, if I try to pick up a spell book and it won't let me, it's kind of obvious that I'd look in the code for picking up objects and the code for spell books. But is there anything that would help me narrow it down or am I stuck doing it the hard way, searching line by line to see where something is wrong?
The thing that makes Egoboo coding so very hard, is as birdsey pointed out the instability (and not necessarily it's understandability). Egoboo is like a house of cards, where you try to modify one of the cards on the bottom and the whole thing comes falling down (well, not as extreme as that, but many other things you are unaware of is also affected by your seemingly harmless change).
Well that's what you get for using C.
Making it all object-oriented would make the thing a lot easier, except that overhauling all of that would be a lot easier said than done, huh?
So anyway, any tips on where to start in order to figure out the structure of the code and how things work? I've been going through all of the *.c files, but I've yet to go over any scripts.