"Remember, Grasshopper, software is never complete. It is only released."
- Make the configuration file an optional command line parameter (
c=<path>). - Change the
Moduleconstructor so that an optional module can define a symbol that allows it to be enabled. - Define an
OptionalModulesconfiguration parameter (a string) that specifies the optional modules to enable. - Enable optional modules at the bottom of
NbModule::Startup. - Change
CreateModulesin main.cpp and rscapp.cpp to use the optional modules capability.
⚠️ WarningA module that is not required by another one must define a symbol when it invokes the base
Moduleconstructor, and that symbol must appear in theOptionalModulesparameter in the configuration file. Each module must also override theEnablefunction to enable the modules that it requires, plus itself (Module::Enable). Instantiating a module is no longer sufficient to make its capabilities available; it must also be enabled for itsStartupfunction to be invoked during initialization and restarts. See the comments in Module.h.
- Convert each
fn_namefunction in a template header to aninline fn_name(a C++17 capability). - Enhance the static analysis tool to support
inlinedata. - Change how Diplomacy bot events and reconnect attempts are implemented.
- Rename
RscLaunchertoLauncher.