I have learned a few things today :)
First thing... FwfStru and FwgStu are two different structures that have similar, but different members and are considerably different lengths. One holds fleet data as it pertains to the ships, and and the other holds fleet data as it pertains to the game. This wouldn't be bad, but the first 21 or so members have the same name and similar arrangement. One is declared as FwfPtr and the other FwsPtr.
When you are manually loading data from disk in byte order, make sure you are stuffing the data into the right object. least your data goes all over the place. I wasn't.
|
Well, at least it aligns now :) |
I have gotten to load lots of data now and I'm in the process of backing out and writing the loader with the proper object. I had to switch to a 9k save as opposed to a 6K one, but I can now see/mark out the data boundaries much better. I still have 39 bytes unaccounted for, but I can bump the read pointer up to the next block of known data. I was also missing some data members that I am filling in. (I didn't copy from the struct right). I was also originally using the "fleet load" code from mission builder. Turns out, that used a similar, but different stuct for fleets. The solar system data was fine, but I missed the letter change for the fleet data.
When using a function from another part of your code to do the same thing, it might behoove you to think why that code was sequestered off to another part of the application in the first place.
While working the the ship data, I honestly felt like Geordi La Forge on a task from Captain Picard.
"Geordi, why don't we have telemery data?"
"Sorry Captain, it seem to be corrupted due to isometric misalignment. I have temporally bypassed telemetry, and can get some of tactical, minus the photon torpedo inventory. The Misalignment is occurring again at personnel"
"Ok, keep me informed Geordi"
I kid you not that is where I am right now. I'm back up to 100% and I'll be working though the weekend to make up for lost time.
My online backup provider went offline today. I had to get that fixed up too. I should be pushing my code off to an external git server, but the free ones are only for open source. I'll be shopping for that too.