Announcement: Be excellent to each other.


Caravel Forum : DROD Boards : Bugs : Importing speech (buggy for holds exported from 3.0.2 rev2)
New Topic New Poll Post Reply
Poster Message
Insane
Level: Master Delver
Avatar
Rank Points: 154
Registered: 08-06-2005
IP: Logged
icon Importing speech (+1)  
Hey,

Since I have the 3.0.2 patch, whenever I export a hold, all the lines of speech are reset to "?".
This is a major problem with our Final release for DROD: The RPG, which makes us unable to participate.

See my hold if you want any more details.
Does anybody have any ideas on this?

-Insane

[Last edited by mrimer at 06-06-2007 07:58 AM]
04-30-2007 at 02:01 PM
View Profile Send Private Message to User Visit Homepage Show all user's posts This architect's holds Quote Reply
vittro
Level: Smiter
Avatar
Rank Points: 479
Registered: 04-17-2005
IP: Logged
icon Re: Exporting speech (0)  
This bug is the worst and serious bug ever!!!

Steps :

1) Create a hold.
2) Create a npc.
3) Add line : Speech Beethro "ABC"
4) Try it.
5) Export.
6) Delete the hold from TCB.
7) Import it.
8) Ta-da, crash!

____________________________
http://vittorioromeo.info
04-30-2007 at 02:38 PM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts This architect's holds Quote Reply
Insane
Level: Master Delver
Avatar
Rank Points: 154
Registered: 08-06-2005
IP: Logged

File: Some Random Gibberish.hold (1 KB)
Downloaded 46 times.
License: Public Domain
icon Re: Exporting speech (0)  
This is a really serious problem.
See attached hold for an example, it was made just normally without any grand special effects.

How soon will this be fixed?
If it makes it into rev3, how fast is that coming?

-Insane

Note: Do not play my hold.
It will only crash DROD.
Rather, open the npc in the editor.

[Last edited by Insane at 04-30-2007 05:17 PM]
04-30-2007 at 05:15 PM
View Profile Send Private Message to User Visit Homepage Show all user's posts This architect's holds Quote Reply
schep
Level: Smitemaster
Avatar
Rank Points: 865
Registered: 03-01-2005
IP: Logged
icon Re: Exporting speech (0)  
I can't really tell whether that hold is corrupted or not (remember, the bug could be on export or import), but looking into it has made me curious about a few things. I see a new SerializedCommands variable in place of the (0c,0x,0y,...) variables which represented scripts up till now. The one command it contains is represented by 29 bytes-- suspicious, since the data portions of a 3.0.0 script command take a total of 30 bytes. I wonder, is this SerializedCommands something that will make it impossible to import 3.0.2 holds using 3.0.0?
05-01-2007 at 01:22 AM
View Profile Send Private Message to User Send Email to User Show all user's posts This architect's holds Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5058
Registered: 02-04-2003
IP: Logged
icon Re: Exporting speech (0)  
schep wrote:
I can't really tell whether that hold is corrupted or not (remember, the bug could be on export or import), but looking into it has made me curious about a few things. I see a new SerializedCommands variable in place of the (0c,0x,0y,...) variables which represented scripts up till now. The one command it contains is represented by 29 bytes-- suspicious, since the data portions of a 3.0.0 script command take a total of 30 bytes. I wonder, is this SerializedCommands something that will make it impossible to import 3.0.2 holds using 3.0.0?
Mmm...that's true...and that would be a problem, wouldn't it. Sigh...what to do... I'll think about this a bit more before trying to do anything.

____________________________
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.
05-04-2007 at 04:51 AM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
Tahnan
Level: Smitemaster
Avatar
Rank Points: 2459
Registered: 11-14-2005
IP: Logged
icon Re: Exporting speech (0)  
I'm having this problem with a hold as well. drod.err turns up:

Assertion error in line 2256 of .\CharacterDialogWidget.cpp: "pSpeech"

Assertion error in line 2203 of .\Character.cpp: "command.pSpeech"

(repeat as necessary)
05-05-2007 at 09:34 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Tahnan
Level: Smitemaster
Avatar
Rank Points: 2459
Registered: 11-14-2005
IP: Logged
icon Re: Exporting speech (0)  
Stefan suggests over here that this is related to problems importing scripts over a certain size from 2.0 holds. I've utterly lost track at this point; all I know is that the sooner it becomes possible to import holds with speech, the happier I'll be. (I recently lost a fair amount of speech by accidentally deleting an NPC from a hold I'm working on. Of course I had backed up the hold...except that if I import my backup, all the speech has been lost.)
05-06-2007 at 10:43 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
schep
Level: Smitemaster
Avatar
Rank Points: 865
Registered: 03-01-2005
IP: Logged
icon Re: Exporting speech (+1)  
Okay, now that I can look at the source code, I think the hold attached above is correct. It looks like the problem is CCharacter::ImportSpeech() doesn't handle the "new" way of storing scripts.

So the good news is, your holds which currently break on import will be usable again at some point. If Mike decides to keep and fix the new way, it will likely be possible to import holds you exported from 3.0.2r2 without these problems. If scripts go back to the old way, or the format of the new way changes a bit, it will be possible to write something that will convert holds exported from 3.0.2r2 so you can re-import them.
05-07-2007 at 04:22 AM
View Profile Send Private Message to User Send Email to User Show all user's posts This architect's holds Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5058
Registered: 02-04-2003
IP: Logged
icon Re: Exporting speech (0)  
schep wrote:
Okay, now that I can look at the source code, I think the hold attached above is correct. It looks like the problem is CCharacter::ImportSpeech() doesn't handle the "new" way of storing scripts.

So the good news is, your holds which currently break on import will be usable again at some point. If Mike decides to keep and fix the new way, it will likely be possible to import holds you exported from 3.0.2r2 without these problems. If scripts go back to the old way, or the format of the new way changes a bit, it will be possible to write something that will convert holds exported from 3.0.2r2 so you can re-import them.
Getting my script update to work properly sounds like a mess, but you're right that this is fixable. The options are:

* Have 3.0.2 mark a new version of DROD .hold files. That is, holds made with this version or later would not be importable into DROD 3.0.0. This would make script loads and saves much faster, not to mention hold files will be a bit smaller. And who would want to stick with 3.0.0 once we get a stable 3.0.2 patch out there anyway?
* Go back to using the same, old scripting format. If it's not fixed, don't break it, like my grand-pappy always used to say, right? ;)

Personally, I'm for making 3.0.2 a new version hold format.

____________________________
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.
05-10-2007 at 07:58 AM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
Briareos
Level: Smitemaster
Avatar
Rank Points: 3516
Registered: 08-07-2005
IP: Logged
icon Re: Exporting speech (0)  
mrimer wrote:
Personally, I'm for making 3.0.2 a new version hold format.
Same here.

____________________________
"I'm not anti-anything, I'm anti-everything, it fits better." - Sole
R.I.P. Robert Feldhoff (1962-2009) :(
05-10-2007 at 08:19 AM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts Quote Reply
Insane
Level: Master Delver
Avatar
Rank Points: 154
Registered: 08-06-2005
IP: Logged
icon Re: Exporting speech (+1)  
If it's not fixed, don't break it, like my grand-pappy always used to say, right? ;)

That strikes me strangely odd.

-Insane
05-10-2007 at 12:01 PM
View Profile Send Private Message to User Visit Homepage Show all user's posts This architect's holds Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5058
Registered: 02-04-2003
IP: Logged
icon Re: Exporting speech (0)  
schep wrote:
Okay, now that I can look at the source code, I think the hold attached above is correct. It looks like the problem is CCharacter::ImportSpeech() doesn't handle the "new" way of storing scripts.

So the good news is, your holds which currently break on import will be usable again at some point. If Mike decides to keep and fix the new way, it will likely be possible to import holds you exported from 3.0.2r2 without these problems. If scripts go back to the old way, or the format of the new way changes a bit, it will be possible to write something that will convert holds exported from 3.0.2r2 so you can re-import them.
Kudos to Stefan for writing the missing ImportSpeech code for the 3.0.2 rev3 patch! :) Once the next patch revision is out, his fix should allow you to successfully import your exported 3.0.2 holds, as Schep states.

Also, Stefan has further improved the script serialization format to get script sizes reduced another 50% or so. :thumbsup Scripts in the pre-3.0.2 and 3.0.2 rev2 internal formats will be supported as usual, but whenever rooms with NPCs are saved in the editor or exported to a .hold file, the NPC scripts will be saved in this newest format. This means holds exported in 3.0.2 rev3 must be played with a 3.0.2 rev3 client or later.

____________________________
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.

[Last edited by mrimer at 06-06-2007 07:57 AM]
06-06-2007 at 07:56 AM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
Briareos
Level: Smitemaster
Avatar
Rank Points: 3516
Registered: 08-07-2005
IP: Logged
icon Re: Exporting speech (0)  
mrimer wrote:
This means holds exported in 3.0.2 rev3 must be played with a 3.0.2 rev3 client or later.
I wonder - is there some version information stored in the hold file so that either the post on the Holds board or the in-game download screen could show, a la "This hold needs at least 3.0.2rev3"? Or at least "This hold was created with 3.0.2rev3"?

____________________________
"I'm not anti-anything, I'm anti-everything, it fits better." - Sole
R.I.P. Robert Feldhoff (1962-2009) :(
06-06-2007 at 12:44 PM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts Quote Reply
schep
Level: Smitemaster
Avatar
Rank Points: 865
Registered: 03-01-2005
IP: Logged
icon Re: Exporting speech (0)  
I assume the rev3 format also gets around the limitation that was breaking really big scripts which used up the maximum variable size?

Briareos wrote:
I wonder - is there some version information stored in the hold file so that either the post on the Holds board or the in-game download screen could show, a la "This hold needs at least 3.0.2rev3"? Or at least "This hold was created with 3.0.2rev3"?
There is information about data version in each hold, yes. Data versions don't map exactly to software versions, but most of the time we should be able to point out the minimum software version required for a given hold. Unfortunately, holds exported from rev2 lie and say they have the same data version 3.0.0 used, so anything like this would be wrong about those files, unless it does a more complicated special case for these characters.
06-06-2007 at 02:22 PM
View Profile Send Private Message to User Send Email to User Show all user's posts This architect's holds Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5058
Registered: 02-04-2003
IP: Logged
icon Re: Exporting speech (0)  
schep wrote:
I assume the rev3 format also gets around the limitation that was breaking really big scripts which used up the maximum variable size?
Yes, Stefan also fixed that. Actually, I just took that limitation out completely. It's a silly heuristic to include at this point.
Briareos wrote:
I wonder - is there some version information stored in the hold file so that either the post on the Holds board or the in-game download screen could show, a la "This hold needs at least 3.0.2rev3"? Or at least "This hold was created with 3.0.2rev3"?
There is information about data version in each hold, yes. Data versions don't map exactly to software versions, but most of the time we should be able to point out the minimum software version required for a given hold. Unfortunately, holds exported from rev2 lie and say they have the same data version 3.0.0 used, so anything like this would be wrong about those files, unless it does a more complicated special case for these characters.
Hmm...where is that hold version info stored again?

____________________________
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.
06-06-2007 at 02:50 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
coppro
Level: Smitemaster
Rank Points: 1308
Registered: 11-24-2005
IP: Logged
icon Re: Importing speech (0)  
In the <drod> tag.
06-06-2007 at 03:29 PM
View Profile Show all user's posts Quote Reply
Stefan
Level: Smitemaster
Avatar
Rank Points: 2119
Registered: 05-25-2004
IP: Logged
icon Re: Importing speech (+1)  
coppro wrote:
In the <drod> tag.
If I've understood correctly, that only shows the major file format version, and does not change when only smaller changes are made (For example, there was a slight change in the player file format between 2.0.9 and 2.0.10* (and some general structural changes with 2.0.15), but the version attribute remained unchanged). However, it would perhaps be a good place to start including some sort of format version, especially considering that patches may start including new elements in the future...

On a related note, why is the file format version 201 and 301? Why not 200 and 300?

* IIRC, player files prior to 2.0.10 did not include any SavedGames of type 10.

____________________________
0.099³

[Last edited by Stefan at 06-06-2007 10:52 PM : footnote]
06-06-2007 at 10:47 PM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5058
Registered: 02-04-2003
IP: Logged
icon Re: Importing speech (0)  
Stefan wrote:
coppro wrote:
In the <drod> tag.
If I've understood correctly, that only shows the major file format version, and does not change when only smaller changes are made (For example, there was a slight change in the player file format between 2.0.9 and 2.0.10* (and some general structural changes with 2.0.15), but the version attribute remained unchanged). However, it would perhaps be a good place to start including some sort of format version, especially considering that patches may start including new elements in the future...
Good idea. I just didn't realize this value should be incremented for 3.0.2. I've updated VERSION_NUMBER to be 302 in 3.0.2.rev3.
On a related note, why is the file format version 201 and 301? Why not 200 and 300?
I had to upgrade the export format for 2.0 and 3.0 during development, so the numbers had been incremented at that time. They did initially begin at 200 and 300.

____________________________
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.
06-26-2007 at 06:38 AM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
New Topic New Poll Post Reply
Caravel Forum : DROD Boards : Bugs : Importing speech (buggy for holds exported from 3.0.2 rev2)
Surf To:


Forum Rules:
Can I post a new topic? No
Can I reply? No
Can I read? Yes
HTML Enabled? No
UBBC Enabled? Yes
Words Filter Enable? No

Contact Us | CaravelGames.com

Powered by: tForum tForumHacks Edition b0.98.8
Originally created by Toan Huynh (Copyright © 2000)
Enhanced by the tForumHacks team and the Caravel team.