Here’s the problem…
You see, I’m not very good at programming. I’m actually shocked I have my own interpreter running. It’s actually Zarf’s+CheapGLK that I got somehow compiled under windows. It took me a day and a half to figure out how to even load a blorb file into it. (I hard-coded it, don’t ask me how the blorb stream thing works. I sort of guessed by context.) I just, finally, understood how a pointers worked about two weeks ago. Well, kind of, anyway. I’m still throwing unsigned chars into functions that require cont *char using ampersands and ignoring the warnings. I have no idea what an “opaque object” is, even though I’m evidently using them.
Because Zarf is awesome at documenting, I was able to to take control of the dispatcher… kind of… I can pass types back and forth, but mostly use it to call void functions that return nothing. That’s all I’m doing. My functions being dispatched are things like draw_an_x() and draw_her_here(). I’m not even loading my graphic files from the blorb because I have no idea how to use it. Though I know it’s some kind of archive file(?) I’m using allegro functions to load my graphics and have my resources in a different folder. As long as it can read my blorb, and as long as I can inline glk functions I’m happy. If I can’t do something on the inform side, I’ll just hardcode the function in C on the other side of the dispatcher.
That’s why assigning or registering glk opcodes are irrelevant. I don’t want to pollute Zarf’s code with my nonsense. I’m just forking it, and making my own mess. It’s also why I want it to be incompatible with everything else, so that no one can run it in another interpreter. I’m actively trying to keep that from happening.
One day I might learn how to return ALLEGRO BITMAP *mybitmap; into the VM so it can can use the library proper. Until then I’m happy punching out chunks of the dispatcher like the Incredible Hulk, and stepping over gestalts, rocks, and other bit of technology I don’t understand.
This is all a big project to make myself a better programmer. You have no idea how much I have learned in the last 4 months. I’m making a game I’ve always want to make, and I’m barreling down it. Yea, I make mistakes, and ho boy do I wish I had another programmer helping me. I admit I’m taking technologies and “breaking” them. But I have something cool here. Right now it looks like Legos mixed in cake batter, but I know I have something.
The core is I7 though. I need it to be. So I can write my prototype stuff in “pure” I7 and then run it in my interpreter and Spackle up the cracks. I love taking things and squishing them into someplace where it’s not supposed to go. I’m actually quite famous online for doing this.
So from time to time I’ll pop out form my lab with goggles on my forehead and as for a wrench, then go back into my workshop and use it as a hammer. I hope that when comes out id the coolest doomsday device ever made…
…or a puppy.
Puppies are cute.
======
On another note.
It seems that my code compiles in the Inform IDE, but it can’t run it (I knew this was going to happen anyway), but I didn’t expect it to just delete the .inf file when it was unsuccessful, and never make a blorb file. I take it the ni.exe file is the command-line inform compiler, is the documentation for that in Inform, or is it elsewhere?