Welcome to the MQ2 development model


Welcome to the MQ2 development model

Top  Next

MQ2 is developed with ease of use, customizability, and ease of development in mind. The major improvements in MQ2 over old MQ are in the customizability and development areas. Because development has so radically changed from the original path, new and old MQ developers alike are going to need a kickstart with the new system.

Adding commands, macro parameters, aliases, and detours has never been easier. The MQ2 API provides functions to add and remove any of these dynamically, at any time. Instead of maintaining cumbersome arrays, the API automatically maintains its own cumbersome linked lists! More info in... somewhere that will be made soon.

eqgame.ini has been shortened quite a bit by hardcoding many offsets into eqgame.h. More specifically, offsets of class instances and class member functions have all been moved there. At the same time, most of the EQADDR_XXXXX variables have been removed completely. This may cause some confusion at first, but once you realize what's going on the lightbulb over your head will come on and all is well. You can find the list of replacements here EQADDR_* Replacement Index

All EQ classes, at least those from the leaked .map file, are declared in EQClasses.h. Now, every class member function from that time is available to us directly. We use a neat trick to take those function declarations, along with their offset, to tell the compiler how to call them directly. At this time, most classes do not have the data members, although they certainly could. To get the data from a class pointer, simply cast to the struct. More on this here EQ Classes