mrimer
Level: Legendary Smitemaster
Rank Points: 5058
Registered: 02-04-2003
IP: Logged
|
ATTN: Fixed export/import bugs (0)
(Some of this is copied from another thread that I'm afraid won't get the coverage a fresh topic will.)
Ok. I found and fixed Stuart's crash bug on restoring after importing a player. Also fixed the bug where you try to import a player you imported before and deleted previously, and it won't show up any more. I also found some other major import/export bugs that other people have posted and I've either fixed or am working them out right now. I think a lot of the trouble people have been having is related to these issues I'm dealing with presently (details below, for whoever's interested).
I hate to say it, but having bad export files floating around is a bad idea and should be thrown away. They might cause all kinds of trouble even after all the bugs get fixed. BUT! Don't just go deleting all your files in despair. They can be fixed. There is hope.
Actually, there should be a nice way to fix up the corrupted data files that anyone is interested in keeping, starting with the next build, #24. So listen up!
A way to remedy this with your personal holds is to import any "bad" (i.e. any hold exported/imported up to this point) holds you have, then copy the levels into a new, fresh hold that won't have any corrupted data associated with it, and then export this copied version from build 24. It should be clean. (It's not the rooms or levels that have the problem we've been looking at, just the hold they're in. So copying rooms/levels over to a fresh hold should get rid of some export/import problems.)
I also recommend for everyone, if they possibly can, to (1) not use any data they've imported. If possible, just re-upgrade data afresh from your drod1_5.dat records. (2) If that's not feasable for your situation, import your player using build #24 and re-export it. Then throw away all your old, buggy exported player records! (You might want to keep them around just long enough to make sure importing, exporting, deleting them, and re-importing them (all in build 24) retains all your data.
<Developer stuff follows - for whoever's interested>
Basically, Stuart's problem was trying to load the room from the new, empty continue saved slot (with a roomId==0). Added a check for this eventuality.
Also, fixed the export to also export *hidden* saved games (stupid filters, always ignoring the hidden records) by adding flags to CDbDemos and CDbSavedGames for whether loading filtered records would ignore hidden records or not. Now a player will also have their continue and end hold saved games exported, as they should be. This is needed for editing privileges on completed holds.
Thirdly, fixed some potential db access (filter) bugs. Recall how I replaced all the Cdb instances with a pointer to the one global CDb. You can probably quickly guess how not resetting the filters correctly could wreak havoc here. So I put back some local db instances where filtering is being done. For example, in the export code. this will guarantee all filters are set precisely right. I'm hoping it will clear up some more random export/import bugs. Such as the "I imported my player and it has some weird saved game data in it" bug.
____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
|