hi Tribble, funny you address me that way here but well,
if there's partially really a difference I agree it should be made clear, and I also understand you want them accessible by browser search function.
duplicates of completely same data however isn't much of use in my opinion and only lessening the overview, that's why I removed parts and I also incorporated some stuff to the savegame listing that's been missing over there and most likely in there even if eventually unread.
Not all of my research has ever been confirmed anyway so if there's a false one just fix it, that's the intent of a wiki.
But as you noted, some difference made me cautious not to simply remove all the gameInfo. I'm fine if we keep all the previous dynamic variables in boxes like with gameInfo, and if you have disproof, simply revert my changes of the savegame listing.
Though I already thought if we shouldn't split all these file infos like gameInfo,... into seperate topics, link there from dynamic key variables as well as from the savegame listing and just note differences in there.
This would help to preserve overview AND consistency.
What ya think?
Btw, I'm not claiming lead on the wiki, don't hesitate to correct me,
actually cause you're working on that area most actively I'd be happy to give you the lead.
Oh, and a note on what got me to take a look in that area, and also cause I think this fits well to the dynamic key variable topic, today I figured how to dynamicly access and probably also change all of the key variables during runtime. I'd just wish you learn some C++ Tribble.
In a dll loaded by trek.exe, it can simply be achieved using a reinterpret_cast on one of those dynamic key variables.
Edit: now I also figured how to pass functions to trek.exe and call them using asm code, allowing for unlimited additional code space, so if you need some, you know where to go *haha*
therefore I reuse an old key variable or empty space, store a pointer to a function pointer array and call any of the functions with the corresponding function pointer offset in the array like this:
Code: Select all
// get function pointer array
MOV EAX,DWORD PTR DS:[5CD658]
//get 2nd function
MOV EAX,DWORD PTR DS:[EAX+4]
// call it
5CD658 is just a random address in data segment of trek.exe
of cause also parameters could be added and a return value retrieved,
and cause C++ also supports embedding asm code you could even move some code from trek.exe to whatever dll got wrapped for the job, eventually even without adjustment
I always thought it would be lots more complicated than this. I didn't even get the idea to access a key variable that directly till today.
Hey, now I also found the subroutines for loading a game, saving a game, starting a new one and ending turn!
Well hasn't been that hard and I wouldn't wonder if you already knew them. They've been missing in the wiki though, so I added them.
I don't have to tell ya what this could be used for in combination with above, do I?