Aller au contenu

Photo

The speech bug[s]


  • Veuillez vous connecter pour répondre
Aucune réponse à ce sujet

#1
Lady Olivia

Lady Olivia
  • Members
  • 374 messages
You know the rallying speech Alistair gives before the assault on Denerim? Anora gives it in the case Loghain is in the party instead. Well, the whole thing is incredibly bugged, and in a weird sort of way.

It all starts in Redcliffe. The first sign of trouble is the messenger in front of the castle; after the battle, and if Alistair is not king, you can ask the messenger:

"Where are the Queen and Arl Eamon?"

And he says they are inside. But when you enter, Anora isn't there, and Alistair speaks as if he were king. Then he proceeds to give the speech, again even if he is not king. In fact, the only case when Anora shows up for any of it is if Loghain is the party and not Alistair.

Now this is different than the usual variety of the not-king-bug in that the word "king" isn't really mentioned; not in Redcliffe, and not in the speech. When I played the game, I didn't even think it a "bug"; it did sound a bit off, but I reckoned they made the king-thing vague so that they could recycle these voice-overs.

But even a cursory glance at the relevant conversations in the toolset shows that it wasn't intended that way.

Both the speech and the conversation with Riordan, the Arl and Tegan in Redcliffe castle (cli300_riordan.dlg) choose between Alistair and Anora or Alistair and Loghain, based on the value of a flag called cli_alistair_recruited_and_king (defined in clipt_main, I think) which should return true if Alistair is the party and Alistair is on the throne.

By the look of things, it seemed that the problem was in this flag. Somehow it always returned true, no matter if Alistair was king or not - as long as he was in the party, he was the one to speak in Redcliffe and give the speech after. So I tried changing the get event for this flag like so:

case CLI_ALISTAIR_RECRUITED_AND_KING:
nResult = FALSE;
break;
...
return nResult;

But even then Anora wouldn't appear or speak. It was a difficult puzzle, and I only solved it by accident: when I exported the relevant .dlgs - even though I didn't change them.

Exporting almost all of the climax-related things: cli300_riordan.dlg, cli300ar_redcliffe_castle.nss, cli400-the_speech.dlg, clipt_main.nss and cli420ar_city_gates_cutscn.nss did the trick. Some of those needed modifications, but not all:

In cli300_riordan.dlg, som branches between Alistair and Loghain are conditioned with cli_alistair_recruited_and_king, where in fact it should be genpt_party_alistair_recruited (otherwise, Loghain speaks even if Alistair is there, just not the king).

In cli420ar_city_gates_cutscn.nss, Anora must be activated in PRELOADEXIT under the same conditions like in cli300ar_redcliffe_castle.nss (otherwise she speaks but remains invisible).

And that's it.

The main point of this verbose report is the following: the versions of the mentioned files in vanilla game (v1.02) and the toolset (v1.0.1008.0, database v1.0.0.194) seem to be different.

This means that what you see in the toolset doesn't match what the game sees (unless you export) - even if you don't modify a thing. In this example, making changes to cli_alistair_recruited_and_king in clipt_main didn't cause any changes in, cli300_riordan.dlg because this dialog in vanilla game probably doesn't use this flag at all. So the dialog had to be exported in order to make the flag do its thing.

How this happened is anyone's guess. Perhaps whoever packed the database to go with the toolset forgot to bump these files to the version that shipped with the game? In any case, it's a pretty serious thing. It's not even a bug in the usual sense... just a "thing" we should be aware of in case such symptoms repeat on some other set of files. The lesson being: when your changes don't seem to apply whatever you do, try exporting not only the changed file, but also the one where you expect the change to manifest, even if you didn't touch it.