So little status update... After I got over my paralysis of getting started, and over thinking everything, I just dove in and started coding. And once I got started, I just flew through it, and within a week had re-created my progress in Think C! I'm now making great strides each day. Most of the times when I've been stuck and can't figure out what is wrong, it ends up being something stupid, like forgetting that an array with properties 0-4 needs to be declared with an array size of 5! That gets you some strange results when you write beyond the end of the array, and it just overwrites a different variable in memory!
But now I'm stuck on something that I truly can't figure out. When I run my app from within Think C, it works perfectly. However, when I compile it into an application and run it on any of my systems running System 7.5, the main portion of my window doesn't draw or update -- I can still move my character around and interact with the map, so it is just a drawing issue. What is strange is that if I take that same compiled application and run it on my Plus in 6.0.8, it works exactly as intended.
Here's what it looks like when running from within Think C:
And when compiled on a Mac Plus in 6.0.8:
On the same Mac Plus running 7.1:
And finally, on any of my Macs running 7.5.5:
These screenshots are all taken from emulators, but the behaviour on real hardware is identical.
I've been stuck on this for a week -- I've tried commenting out huge chunks of my code, but I can't seem to isolate what could be causing this. My best guess is that something is causing an issue with the section of memory which stores the array that holds my map tiles. The tiles are just an icon resource, and I have an array that stores the resource id for each x/y coordinate. I first started to notice this issue when my code started to grow in size. The weird first row that I see in System 7.1 is what used to happen in 7.5.5, but as my code grew, it just stopped drawing in 7.5.5. But for the life of me, I cannot figure out what the culprit is.
If anyone has thoughts on what might be causing this, I would be so grateful! I'm pulling my hair out!
My code is a bit of a mess, because I've been learning as I go, but if anyone wants to see it, let me know!