- Make the configuration file an optional command line parameter (
c=
<path>). - Change the
Module
constructor so that an optional module can define a symbol that allows it to be enabled. - Define an
OptionalModules
configuration parameter (a string) that specifies the optional modules to enable. - Enable optional modules at the bottom of
NbModule::Startup
. - Change
CreateModules
in main.cpp and rscapp.cpp to use the optional modules capability.
Warning
A module that is not required by another one must define a symbol when it invokes the base
Module
constructor, and that symbol must appear in theOptionalModules
parameter in the configuration file. Each module must also override theEnable
function 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 itsStartup
function to be invoked during initialization and restarts. See the comments in Module.h.
- Convert each
fn_name
function in a template header to aninline fn_name
(a C++17 capability). - Enhance the static analysis tool to support
inline
data. - Change how Diplomacy bot events and reconnect attempts are implemented.
- Rename
RscLauncher
toLauncher
.