Dialog Cleanup Proposal
The way dialog is handled in the code can get very messy, very fast. The fact that dialog is just a bunch of if/else statements and recursive functions can make it very hard to read, debug, and add upon.
I would like to propose a new system where we implement some kind of tree-like data structure for dialog. Each node would be a string of dialog and children nodes would be dialog choices the player could make and the NPC's responses to those choices. You could also have nodes that link back to each other in case you need to loop back to a specific point in a conversation.
It would be a pretty big undertaking, but at some point all the dialog will have to be sifted through for localization efforts anyways.
One potential con I could see is that implementing a data structure to handle dialog isn't very RuneScript-like.