Sorry guys I was busy with furry shit and TF2!!!!!
Check it:
Do you see that title bar?
that is IMPORTANT debug information that you guys JUST WOULDN'T UNDERSTAND.
You can now move. Also super basic collision detection is in, by which I mean when you try to walk into something it checks if it's classified as WALKABLE, SOLID, or INTERACTION.
So solid/normal/breakable walls are SOLID as touching them does nothing. Fakes are walkable since nothing happens but you walking on them. Lions are INTERACTION since you get mauled by them in a visceral fight for the death.
More peculiar is the timing situation. I pretty much have no idea how these "timers" work, they just magically make the game run at the proper speed.
So my logic was as follows, there are 10 cycles in a second. If I ran the game at 60 frames per second there would be a cycle every 6 frames, or since it's fucking ZZT and there's no reason to redraw the screen that many times I could cut it down to 30 fps and have a cycle every 3 frames.
Then on each frame I would calculate the current cycle, and if it divided evenly into the element's cycle it would allow it to move or do whatever it needed.
Except this is too fast!
So just for the hell of it I tried 10fps which would mean a cycle every frame which is what ZZT does anyway now that I think about it (why did I think I needed 30 fps?) but even that is slightly faster than ZZT itself in tests of running the player from one end of the board to the other.
But I'm more inclined to believe that's ZZT on windows XP running slower than it should. It certainlly seems playable at least.
The horrible incorrect oop bug is still hanging around. Also the under tile thing ZZT does isn't actually implemented, those normals that disappear are actually fake walls.
Other features I started to add that didn't immediately work so I put off for the time being include:
* Custom fonts/palettes
* Custom walls/fakes by giving them stats