jdoran
09-24-2014, 06:12 PM
I am porting my quest generator to the newest code base, and see some changes in the last couple of years :)
The event handlers now accept a vector of EQEmu::Any pointers (modified Boost::Any), and I have no experience with these objects.
What I need: I need to pass in a couple of extra parameters to EventNPC et al. such as a quest-id which would be used to load the quest script. Previously I just added a couple of extra parameters and let EventCommon load the script if necessary. This worked fine for my purposes.
In order to allow the potential sharing of this code later, I would like to do things properly this time around. These "extra_pointers" sounds like they might be useful, but then I see that ExportEventVariables uses the entire vector as variables to export.
I'll look into ways of preloading the scripts elsewhere. But the package name is quest-specific. GetQuestPackageName is not going to be able to figure out the proper package name, since I base it on a quest-id. I really want to keep each quest in its own package.
Events for *my* quests know what quest-id they correspond to. I'm able to have the PERL parser load my package when a non-zero quest-id is used, which allows the pre-existing events to work without modification.
The Lua and PERL parsers do their own package-name logic, which assumes a different organization than I'm using.
Edit: I should add that I was previously using loadQuest to perform the loading, and that is now gone.
What is going to cause the least amount of disturbance?
The event handlers now accept a vector of EQEmu::Any pointers (modified Boost::Any), and I have no experience with these objects.
What I need: I need to pass in a couple of extra parameters to EventNPC et al. such as a quest-id which would be used to load the quest script. Previously I just added a couple of extra parameters and let EventCommon load the script if necessary. This worked fine for my purposes.
In order to allow the potential sharing of this code later, I would like to do things properly this time around. These "extra_pointers" sounds like they might be useful, but then I see that ExportEventVariables uses the entire vector as variables to export.
I'll look into ways of preloading the scripts elsewhere. But the package name is quest-specific. GetQuestPackageName is not going to be able to figure out the proper package name, since I base it on a quest-id. I really want to keep each quest in its own package.
Events for *my* quests know what quest-id they correspond to. I'm able to have the PERL parser load my package when a non-zero quest-id is used, which allows the pre-existing events to work without modification.
The Lua and PERL parsers do their own package-name logic, which assumes a different organization than I'm using.
Edit: I should add that I was previously using loadQuest to perform the loading, and that is now gone.
What is going to cause the least amount of disturbance?