Recently I noticed that I couldn't open the looting dialog anymore in the Greenford abbey crypt, pressing the "Open dialog" key simply caused no reaction. This happened only if I entered the location through certain entries. Petros had the same problem in Oxbay canyon, and IIRC we had in the past occaisonal problems with questcharacters that flatly refused to talk.(Rad, didn't you encounter that with Danielle somewhere???)
I think that those problems are caused by the variable "dialogDisable". This section in program\dialog.c prevents the opening of a dialog if dialogDisable is set to true:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->void StartDialogWithMainCharacter()
{
// NK disable this to allow dlg in boarding 05-07-12 - if(LAi_IsBoardingProcess()) return;
if(dialogDisable) return;<!--c2--></div><!--ec2-->If you want to know if actually this causes your dialog problem add a tracer to that last command:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> if(dialogDisable) {Trace("dialogDisable true"); return;} // ccc Nov05 trace added<!--c2--></div><!--ec2-->That will write "dialogDisable true" into the compile.log file whenever this command prevents a dialog.
I solved my crypt dialog problems by "forcefully" setting dialogDisable = false for the crypt location:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> int locidx = FindLoadedLocation(); // ccc Nov05 enables Maltese ghosts dialog
if(Locations[locidx].id.label == "Abbey of the Maltese order") dialogDisable = false; // ccc Nov05
if(dialogDisable) {Trace("dialogDisable true"); return;} // ccc Nov05 trace added<!--c2--></div><!--ec2-->
Though that doesn't help if that dialogproblem happens elsewhere as well. My questions therefore:
-is the problem of not opening dialogs widespread?
-would anyone mind if I disable that "dialogDisable" check completely, for all locations? After all, what could such a check be good for? The only reason i can imagine is that the wellmeaning developers wanted to keep players from starting dialogs in awkward situations (during fights, boarding, reloads..).
I'll disable that check on my PC, I feel mature enough that I can live with the risk of a dialog at the wrong moment. But I won't do that for the public if anyone thinks ther could be a risk involved.
-Does anyone know why and where dialogDisable is set on? Maximus <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" /> (still around?), you worked with that in program\reload.c:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->int Reload(aref reload_group, string locator_name, string current_location)
{
SetReloadNextTipsImage();
// changed by MAXIMUS -->
if(bCabinStarted) dialogDisable = false;
else { if(bDeckStarted) dialogDisable = false;
else { if(bCrewStarted) dialogDisable = false; } }
else dialogDisable = true;
// changed by MAXIMUS <--<!--c2--></div><!--ec2-->
Do you know more about this?
I think that those problems are caused by the variable "dialogDisable". This section in program\dialog.c prevents the opening of a dialog if dialogDisable is set to true:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->void StartDialogWithMainCharacter()
{
// NK disable this to allow dlg in boarding 05-07-12 - if(LAi_IsBoardingProcess()) return;
if(dialogDisable) return;<!--c2--></div><!--ec2-->If you want to know if actually this causes your dialog problem add a tracer to that last command:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> if(dialogDisable) {Trace("dialogDisable true"); return;} // ccc Nov05 trace added<!--c2--></div><!--ec2-->That will write "dialogDisable true" into the compile.log file whenever this command prevents a dialog.
I solved my crypt dialog problems by "forcefully" setting dialogDisable = false for the crypt location:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> int locidx = FindLoadedLocation(); // ccc Nov05 enables Maltese ghosts dialog
if(Locations[locidx].id.label == "Abbey of the Maltese order") dialogDisable = false; // ccc Nov05
if(dialogDisable) {Trace("dialogDisable true"); return;} // ccc Nov05 trace added<!--c2--></div><!--ec2-->
Though that doesn't help if that dialogproblem happens elsewhere as well. My questions therefore:
-is the problem of not opening dialogs widespread?
-would anyone mind if I disable that "dialogDisable" check completely, for all locations? After all, what could such a check be good for? The only reason i can imagine is that the wellmeaning developers wanted to keep players from starting dialogs in awkward situations (during fights, boarding, reloads..).
I'll disable that check on my PC, I feel mature enough that I can live with the risk of a dialog at the wrong moment. But I won't do that for the public if anyone thinks ther could be a risk involved.
-Does anyone know why and where dialogDisable is set on? Maximus <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" /> (still around?), you worked with that in program\reload.c:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->int Reload(aref reload_group, string locator_name, string current_location)
{
SetReloadNextTipsImage();
// changed by MAXIMUS -->
if(bCabinStarted) dialogDisable = false;
else { if(bDeckStarted) dialogDisable = false;
else { if(bCrewStarted) dialogDisable = false; } }
else dialogDisable = true;
// changed by MAXIMUS <--<!--c2--></div><!--ec2-->
Do you know more about this?