Releases: OutpostUniverse/op2ext
Version 3.0.0
Outpost 2 Extension Modules (op2ext) Version 3.0.0
Outpost 2 extension module loader (op2ext) allows modifying and extending Outpost 2 through loading of alternate game resources or injecting independently compiled DLLs. Read more about Outpost 2 and the Outpost Universe Community at https://www.outpost2.net/.
Version 3.0.0
This version introduces breaking changes from 2.2.0 by removing the public functions IsConsoleModuleLoaded & IsIniModuleLoaded. Additionally, the format of data in the Outpost2.ini file has been updated. A user must reformat 2 sections of the .ini file to incorporate this version of op2ext. See instructions below the change log.
- Remove public functions IsConsoleModuleLoaded & IsIniModuleLoaded
- Breaking change from version 2.2.0
- Allow loading multiple console modules
- Allow GetConsoleModDir_s to also return the directory of an ini module
- Allow Logging error and debug messages from modules
- LogError
- LogDebug
- Add function hook for "Run" in ini modules
- Matches corresponding Run function hook in console modules
- Add concept of Built in Modules within op2ext
- Repackage IPDropDown as a Built in Module
- Add Earthworker Proximity Tasking as a Built in Module
- Allow toggling modules on and off using the Outpost2.ini file
- NOTICE: The INI file must be updated to new format when switching to this version of op2ext
- Improve logging framework
- Full support of mingw for compiling on Linux for Windows/Wine
- Significant backend archicture improvements
- Unify console and ini module loading
- Improve memory patching techniques
- Improve support of ini files
- Improve coverage of unit tests and support gmock
- Use continuous integration results to autopopulate release builds
How to update the Outpost2.ini file to be compatible with op2ext 3.0.0
Remove the LoadAddons line from the Game section (it is now replaced by the ExternalModules section)
[Game]
LoadAddons = "NetFix, NetHelper"
Add the following sections to the ini file:
[BuiltInModules]
EarthworkerProximityTasking = yes
IPDropDown = yes
[ExternalModules]
NetFix = yes
NetHelper = yes
Version 2.2.0
Outpost 2 Extension Modules (op2ext) Version 2.2.0
Outpost 2 Extension Modules allows modifying and extending Outpost 2 through loading of alternate game resources or injecting compiled C/C++ DLLs. The current version of Outpost 2 is maintained by the Outpost 2 community and may be found at https://www.outpost2.net/.
Usage
To use, add to the directory containing Outpost 2.exe. op2ext.dll is included standard with Outpost 2 releases. op2ext.pdb (MSVC debug file) is included below to assist in debugging.
Version 2.2.0
- Add functions allowing external modules to detect which ini and console modules have been loaded. (See op2ext.h for new function declarations). May be called from external modules written in C or C++.
- Make sure log file is created in the game directory when the working environment is not the game directory (in situations like attaching a debugger)
- Provide details to user if a module DLL fails to load for any reason
- Fix bug in GetGameDir_s that may throw an exception if a buffer length of 0 is passed in as an argument
- Split project into a DLL and static sub-projects to facilitate unit tests
- Add partial unit test coverage using gtest framework
- Update post build event to use an environment variable to locate Outpost 2's directory for auto-injecting new builds of op2ext for testing
- Allow selecting non-experimental filesystem include if C++17 available
- Add limited mingw project support for Linux compilations
Version 2.2.0-beta
This is a beta release of version 2.2.0, provided to allow testing new external module detection functions before final release.
Usage
To use, add to the directory containing Outpost 2.exe. op2ext.dll is included standard with Outpost 2 releases. op2ext.pdb (MSVC debug file) is included below to assist in debugging.
Version 2.2.0-beta
- Add functions allowing external modules to detect which ini and console modules have been loaded. (See op2ext.h for new function declarations). May be called from external modules written in C or C++.
- Make sure log file is created in the game directory when the working environment is not the game directory (in situations like attaching a debugger)
- Provide details to user if a module DLL fails to load for any reason
- Fix bug in GetGameDir_s that may throw an exception if a buffer length of 0 is passed in as an argument
- Split project into a DLL and static sub-projects to facilitate unit tests
- Add partial unit test coverage using gtest framework
- Update post build event to use an environment variable to locate Outpost 2's directory for auto-injecting new builds of op2ext for testing
- Allow selecting non-experimental filesystem include if C++17 available
- Add limited mingw project support for Linux compilations
Version 2.1.0
To use, add to the directory containing Outpost 2.exe. op2ext.dll is included standard with Outpost 2 releases. op2ext.pdb (MSVC debug file) is included below to assist in debugging.
Change Log
Version 2.1.0
- Add message logger usable by op2ext and external modules.
- Deprecate GetCurrentModDir due to improper memory management across DLL boundaries.
- Add external API function GetConsoleModDir_s to replace deprecated GetCurrentModDir.
- Mark argument volName from function AddVolToList argument as const. This allows passing const values into the function.
- Lift 31 volume load restriction. Outpost 2 will be able to load effectively a limitless number of volumes.
Version 2.0.1
To use, add to the directory containing Outpost 2.exe. op2ext.dll is included standard with Outpost 2 releases. op2ext.pdb (MSVC debug file) is included below to assit in debugging.
Change Log
Version 2.0.1
- Fix bug in Console Mod Loader that separated the executable's path into multiple arguments if the path included a space.
Version 2.0.0
- Add ability to load vol files with any name into Outpost 2 from the root directory.
- Deprecated function GetGameDir(char* buffer).
- Change public callable function InitMod to have a const char* variable - void InitMod(const char* iniSectionName)
- Allow retrieving data from Outpost2.ini that is greater in size than 1024 characters.
- Fix bug in SetSerialNumber function.
- Improve error messages when Outpost 2 has difficulty loading a module or vol files.
- Add an ini module sample.
- Fix errors in console switch module sample.
- Move external callable functions from public.h to op2ext.h.
- Write a TestModule that is included with the project.
- Introduce C++11/14 practices into code base.
Version 1.0.0
- Several releases of op2ext were made prior to 2.0.0 which are not currently documented.
OP2Ext Ver1.0.0
Outpost 2 Extension Module Initial Release.
The Outpost 2 extension module is used to implement various extensions to the game Outpost 2. The most current version of Outpost 2 is maintained by the Outpost 2 community and may be found at https://www.outpost2.net/.
The following extensions are implemented for Outpost 2:
- IP dropdown box for net play
- Extra VOL file loading
- Addon modules using /loadmod
- Addon modules using ini file
See ReadMe.txt for more information.