Announcement: Be excellent to each other.


Caravel Forum : DROD Boards : Bugs : "Self" speech attributed to the wrong character
New Topic New Poll Post Reply
Poster Message
Tahnan
Level: Smitemaster
Avatar
Rank Points: 2459
Registered: 11-14-2005
IP: Logged

File: Speech.hold (2.1 KB)
Downloaded 44 times.
License: Public Domain
icon "Self" speech attributed to the wrong character (+2)  
For some reason, when a character speaks as "Self", it's showing up attributed wrong when you double-click on the portrait to see the room's speech history. If a character has a script to make another character talk, the attribution is correct.

See the attached hold, which consists of a single room. If you play it, there's a lot of speech--all of the NPCs, which I think cover all the actual NPCs except Beethro, sound off by saying their names, and then they go through a second time with most of them saying their names again. Everything looks normal. This is done by having each NPC have a "Speech Self" command with its name as the speech, followed by an invisible NPC (that moves last) having a series of "Speech ____" commands (Speech Aumtlich, Speech Brain, etc.) with the name of the monster as the speech.

But if you double-click on the Beethro portrait...everything in the second half looks normal. There's a whole series of "Aumtlich: Aumtlich" and "Brain: Brain" and so forth in the second half. But the first half is:

Click here to view the secret text


As you can see, no one is themselves: the dialogue from the 39th Slayer is attributed to "Tar Baby", the aumtlich's is attributed to "Roach", and so forth. Which is awfully incorrect.
11-12-2010 at 08:38 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
TFMurphy
Level: Smitemaster
Rank Points: 3118
Registered: 06-11-2007
IP: Logged
icon Re: "Self" speech attributed to the wrong character (+3)  
I think this is down to a particular lack of conversion in CCurrentGame::AmbientSoundTracking. As such, the fix should be as follows:

CCurrentGame::AmbientSoundTracking
Click here to view the secret text

Essentially, Monstertypes (M_ROACH, M_QROACH, M_REGG, etc) and Speakers (Speaker_Beethro, Speaker_Halph, Speaker_Slayer, etc) are defined as two different sets, each with their own individual IDs, and pSpeech->wCharacter expects it'll have a Speaker, not a Monstertype. So you had the Slayer character (M_SLAYER is ID 25) telling the script log that it was actually Speaker_TarBaby (ID 25), because it wasn't converting between the two lists.

EDIT: Actually, this looks to be a lot more entrenched then I first thought. I'm not sure what the code is expecting wCharacter to be at times, but it seems bad enough that it's converting Speaker_Self (a speaker ID) to a monstertype ID. The above fix has now been edited to work for custom characters.

EDIT 2: Upon further review, this bug is already fixed in Build 86. It's not fixed in Build 84 (which is the latest available source code), so I'm not sure exactly how it was fixed in the release. Messing about with it further on my end seems pointless for now.

[Last edited by TFMurphy at 11-12-2010 02:26 PM]
11-12-2010 at 12:48 PM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
Tahnan
Level: Smitemaster
Avatar
Rank Points: 2459
Registered: 11-14-2005
IP: Logged
icon Re: "Self" speech attributed to the wrong character (+1)  
EDIT 2: Upon further review, this bug is already fixed in Build 86. It's not fixed in Build 84 (which is the latest available source code), so I'm not sure exactly how it was fixed in the release. Messing about with it further on my end seems pointless for now.
Ah, huh. My version (and the latest on the downloads page) is 3.2.0.83. Is Build 86 actually available yet?
11-12-2010 at 05:57 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
TFMurphy
Level: Smitemaster
Rank Points: 3118
Registered: 06-11-2007
IP: Logged
icon Re: "Self" speech attributed to the wrong character (0)  
Build 86 is the latest beta release on the Bugs board. We're actually up to Build 89, but that's not available publicly.

EDIT: Actually, looks like Build 87 is the latest available. Build 86 is just what I use for normal play (though I keep several installations of varying versions to easily test some stuff). It's worth noting though that the beta release has some changes that make some holds impossible, but those holds won't be updated until the beta finally gets an official release. And no, I have no idea when that will be.

[Last edited by TFMurphy at 11-12-2010 07:10 PM]
11-12-2010 at 06:39 PM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
New Topic New Poll Post Reply
Caravel Forum : DROD Boards : Bugs : "Self" speech attributed to the wrong character
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.