Go Back doesn't seem to work in dialogue
This is an item logged from the To-Do and was originally reported by ADoS. If you are familiar with or can recreate this bug, please provide details here.
On my system the 'Go Back' works after clicking command buttons at bottom (Name, Job) but not after clicking on hilighted text.
This appears to be handled in "game/boe.dlgutil.cpp" in static void update_last_talk(int new_node)
Talk actions are handled in "game/boe.dlgutil.cpp" in void handle_talk_event(location p).
Clicking 'Job' seems to set which_talk_entry to -12 correctly (defined in boe.newgraph.hpp). Clicking hilighted text seems to set which_talk_entry to a small positive integer corresponding to word.node.
The non-working 'Go Back' click triggers switch(which_talk_entry) case
case TALK_BACK: // only if there's nothing to go back to
return; // so, there's nothing to do here
Should this actually draw previous dialogue string here? .
Original behaviour is for Go Back to return to the previous string shown. Since clicking "Go Back" also sets the previous string, that means that clicking it repeatedly will toggle between the two most recent strings.
Would it make sense to initialize a history stack when a new dialogue is opened, push for each string, pop to go back and clear it on dialog exit?
Would it make sense? Yes. Would it be the same behaviour as the original game? Pretty sure it wouldn't. The game never had a history you could navigate back through.
Doesn't seem like something that would break compatibility with existing modules. In the few discussions I've been in I suppose I never asked if the goal of this repo was for maintenance or preservation.
I'm not making any attempt to keep it identical the original game, but part of the purpose of this is indeed preservation - preserving the ability to play Blades of Exile scenarios made with the original engine.
But I've also added new features, and invented an entire new scenario format, so…
I think implementing a history stack might be a reasonable change.