Dragon Age 2

File information

Last updated

Original upload

Created by

sapphim

Uploaded by

starrarte

Virus scan

Safe to use

Tags for this mod

Documentation

Readme

View as plain text

===========================
ZEVRAN ROMANCE DIALOGUE FIX
===========================

So why did it take four years to fix such a minor issue anyway?
===============================================================
Supposition one: Bioware doesn't care about Zevran. (Everyone nods silently. We all know this to be true.)

Supposition two: Making mods without a toolset is difficult and nobody wanted to do the mind-numbing amount of work it takes to translate a conversation file into something understandable by humans. I don't blame them. You should see the state of the spreadsheet(s) I made while working on this.

Supposition three: DA2 just doesn't have as large and devoted a fanbase as Origins had. The poor dear didn't get the time and money it deserved, and now it must suffer for EA's sins.

Supposition four, and the most relevant one: The "Zevran bug" is actually at minimum three separate bugs all conspiring to ruin your game at the exact same time.

Bug Number One
==============
The first is the infamous import bug that wouldn't register your romance properly at all. There are a looooooot of issues with DA2's import script I'm sure we're mostly aware of at this point but the most notable concerns the buggy import of companion approval scores. While import of approval scores should be expected to fail outright on any save game imported after playing DLC - since the Origins cast won't be present in that save's party pool - approval import also fails on saves imported from the base game itself.

DA2, however, insists on checking imported approval in addition to checking to see if the romance flags have imported. No approval, no bf. Bugs of this sort were originally fixed across the board by Monochrome Wench's Import Fixes - a masterpiece of editing decompiled assembly code I'm not magical enough to match - but as of 2.0 this mod utilizes a custom plot script that reads values from the save game directly, bypassing all the issues in the game's own scripts entirely.

Bug Number Two
==============
The dead Warden bug is another plot flag bug. With approval bypassed, the romance with Zevran was registered properly by the game, but for whatever reason the plot flag used by that conversation to then check whether or not the warden was alive at the end of the game failed to ever return true.

Dragon Age's branching dialogue is enabled using conditions. If the condition on one line fails (in this case, warden alive = true) then it moves down the list to check the next possible line in the sequence, until it hits the last line which plays by default. So that's why Zevran was very very sad everyone's warden had apparently died a mysterious death sometime in the intervening six years.

While it's essentially impossible to tell why exactly the plot flag doesn't work without digging through more decompiled assembly (assuming it is in fact another error in a script somewhere) it is possible to replace it with one that is proven to work. While version 1.0 of this mod stole a working flag from an existing debug script, this has also been replaced with a custom script in 2.0.

Unfortunately, DA2 does not write a single "Warden lives" or "Warden died" flag into the save game during the import process. The logic used in 2.0 - and the logic I assume is used by the base game based on the variables that were imported - is to assume that the Warden is alive if they either did not slay the archdemon, or if they did slay the archdemon but Morrigan's ritual was performed. Mods that allow the Warden to survive in the scenario that the ritual was not completed should be relatively rare and can't really be helped.

Bug Number Three
================
So here is the part where we discover that, despite fixing the condition on three lines of dialogue, one still frequently failed to play in game. Welcome, my friends, to the pathing error.

Dialogues in Dragon Age conserve the effort that goes into writing, recording, and animating lines by recycling branches on the tree whenever possible. The dialogue branches, but in short order it wraps around to rejoin the rest of the branches again.

A link to each line that can be used on multiple branches has to be hand placed on each individually. As complicated as the dialogues in Dragon Age can get, it's easy to misplace lines or fail to account for the branching structure and end up with looping dialogue paths that can repeat forever without ending the conversation, or to neglect to place one line on one branch, or what have you. This is the sort of thing that should be caught with proofreading and playtesting but, well...

In this case, were Isabela not in the party, the line "I've a Warden to return to" would not play if Zevran was not turned in to Nuncio, because the branch containing it was not linked, despite the pathing being correct in the opposite situation. (This was clearly an error and not intended behavior because the romance branch was placed in such a way as to to prevent Zevran from soliciting sex from Hawke.)

The dialogue was amended to replace the missing link, and a branch of dialogue with Isabela was changed to also link to the romance line in place of the more neutral farewell that was originally present.