Author Topic: op2ext 2.0.0 testing and review  (Read 4224 times)

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1013
op2ext 2.0.0 testing and review
« on: January 09, 2018, 01:09:01 AM »
Hey everyone,

I finished my goals and work with op2ext. Attached are current release compilations of op2ext and the TestModule (for testing the external DLL interface of op2ext). The PDB file for op2ext is too large to attach to the forums (it is just over 2MBs compressed). If you are interested in this PDB, message me and we will arrange other distribution methods.)

At this point, I'm freezing my own work in the modules except for implementing suggestions/problems that others find. Please feel free to review the source code for improvements, security holes, compatibility with existing mods, etc. I'm not looking to add major new features though.

I'm calling this op2ext release 2.0.0 since there are changes to source code compatibility. It shouldn't affect already compiled DLLs though (unless they are attempting to change the value of the sectionName passed by the exported function InitMod.)

Thank you to both Arklon and Hooman for the assistance and expertise they provided through the update.

op2ext 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.

Source Code: https://github.com/OutpostUniverse/op2ext
Background Thread for changes: https://forum.outpost2.net/index.php/topic,6045.0.html

Thanks,

-Brett
« Last Edit: January 09, 2018, 01:33:27 AM by Vagabond »

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1013
Re: op2ext 2.0.0 testing and review
« Reply #1 on: January 13, 2018, 02:09:17 AM »
Attached is op2ext 2.0.0-rc2.

Hooman and Arklon provided some feedback in the other forum thread that is now implemented.

Additionally, I noticed that op2ext.dll was about 550 kb in size, which seemed too large. After updating the build property Runtime Library from Multi-Threaded (/MT) to Multi-Threaded DLL (/MD), the file size dropped to about 54kb. Additionally, this dropped the size of the PDB file so that everything can be posted in the same zip file.

The only public change made is SetSerialNumber's arguments were changes to major, minor, patch, to standardize with https://semver.org/ versioning system. This doesn't affect compatibility with the external interface though since the number and type of arguments on SetSerialNumber were not changed.

-Brett

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1013
Re: op2ext 2.0.0 testing and review
« Reply #2 on: January 24, 2018, 09:01:53 PM »
Attached is op2ext 2.0.0-rc3.

Includes an update to GetGameDir_s. It now returns size_t of 0 for success and the length of the buffer if the buffer is too small.

I'm dropping op2ext 2.0.0-rc3 into the GameDownload folder on the subversion repository. If anyone wants to play with the module, please provide feedback.

-Brett