Jump to content

Recommended Posts

Posted (edited)

MWEdit is an open source replacement for the Morrowind Construction set that was originally written by Dave Humphrey about twenty years and has since been updated by rfuzzo and NimrodPSI

I picked up the torch a few months ago and started doing work on it myself and my fork is hosted here while ongoing dev discussion has been occurring here

My primary focus initially is on cleaning up the code and modernizing it. With it being twenty years old, there are a lot of areas of it that can be improved based on current C++ practices and the current standard. Other areas of interest are on making it work cross-platform and general improvements. One such goal is I hope to eventually transition the GUI over to gtkmm, which will help with the cross-platform aim.

That said, we now have a release! After close to twenty years, I've just bundled up version 0.6.3, which includes various changes from all four projects that haven't been released thus far.

Here's the full changelog:

- Fix some encoding issues [deathssoul]
- Fix some special characters in Functions.dat and customfunctions.dat [deathssoul]
- Reformat the code for better consistency [deathssoul]
- Set up build automation on GitHub [deathssoul]
- Update README.md [deathssoul]
- Convert Features.txt to Markdown [deathssoul]
- Correct line endings [deathssoul]
- Windows API updates [rfuzzo]
- Update project to newer Visual Studio versions [rfuzzo, NimrodPSI]
- Fixed a bug in the magic effect's RGB data [NimrodPSI]
- Added missing magic effects from Bloodmoon and fixed Tribunal's effect [NimrodPSI]

As always, I welcome assistance! Any help would be appreciated but, in particular, my deficiencies lie in documentation, release engineering, and Windows development but, again, all are more than welcome :)

Discord: https://discord.gg/AAAnesEgJe

Edited by deaths_soul
  • 1 month later...
Posted

Been busy cleaning things up, as seen by the commit log. I've also attempted to implement a Meson build file. VS is still needed currently (support for other compilers will come in time) but it definitely needs testing. If anyone wants to give it a whirl and report back, it would be much appreciated :)

Both the build command and the install command could use testing. It's my first time working with Meson so there's a good chance something wasn't done properly.

Setting up a build script will make it much easier to manage the project and sets things up for future changes :)

  • 5 weeks later...
Posted

Work continues on overhauling the code. I've removed support for legacy systems and compilers (MSDOS, Borland, Windows CE, and Turbo C) and also updated the syntax of many of the preprocessor directives for the modern era. Right now, I'm working on fixing the

#include

paths, making sure the cases are consistent, and updating the file names to follow the general practice that's used throughout the codebase. The file names and directory structure may change down the line but all this needs to be done first as it'll be easier to update things once the build script is fully set up :)

It's also another step towards getting the program compatible with cross-compilers towards the eventual goal of a cross-platform program.

  • 2 weeks later...
Posted

Hey everyone,

If you've been watching the commit logs, you'll have noticed that progress is still being made on the Meson build script. During test runs using the CI, it became apparent that the old VS project file was using some switches to suppress some compatibility issues between the twenty year old code-base and modern APIs as the Meson script doesn't apply these by default. In lieu of suppressing them, work is currently being done to fix the issues for greater compatibility. Notably, these issues lie in changes to the MFC API and stuff that's changed in the C++ standard since the code was originally written twenty years back as I've set the standard to compile against to C++20. C++20 is much stricter than previous standards so it's helping to bring other stuff to light. It's a bit slow going as the MFC is foreign to me, however.

Once everything is properly set up, I'll be flipping on all of the warnings to help bring even more stuff to light as it's hard to catch everything with inspection in such a large code-base.

  • 3 weeks later...
Posted (edited)

Time for an update? Time for an update!

The code is now updated to C++20. Additionally, we now have a working build script. The project is currently set up with CMake as I realized that Meson was lacking features and was generally cumbersome to do stuff that wasn't relatively basic even if it is cleaner. That could very well change in the future after I review other projects that use Meson, such as the GNOME family of projects

Still working on the build infrastructure: GitHub's packaging script makes you keep the directory structure so I'm looking into getting an install script written.

And now for a big surprise: during the build script creation, it became apparent that MWEdit was bundling an incompatible 32-bit version of DevIL for 64-bit programs. The project is currently being updated to use a non-bundled version of the library. In fact, the CI script is set to grab the 64-bit version. What does this mean? We now have a 64-bit version of MWEdit with all the benefits that enables. So, once things are cleaned up I'll go ahead and do a release and bump the version to 0.7.0 as it's a pretty big change :)

Edited by deaths_soul
Posted (edited)

If anyone wants to give it a whirl, here's the link:
You'll need a GitHub account, though. It's still listed as 0.6.3 as there are still a few cleanup tasks that need doing and I want to test the MSI update functionality
Once all is complete, it'll be merged into the main repo :)

 

Edit:

Removed the link for now as it's not yet functional. Will keep at it!

Edited by deaths_soul
  • 2 weeks later...
Posted (edited)

I am pleased to announced that MWEdit 0.7.0 has been released.

Most of the changes are behind the scenes but the biggest user facing change is 64-bit support and all the benefits that brings.

The build system has been completely overhauled to work with CMake with an MSI file produced automatically and the code has been made C++20 compliant.

Here's the full changelog:

  • Add a CMake build script [deathssoul]
  • Update the GitHub CI to use CMake and CPack with WiX [deathssoul]
  • Update code for C++20 compatibility [deathssoul]
  • Update some includes [deathssoul]
  • Remove old project files [deathssoul]
  • Updates for Windows API changes [deathssoul]
  • Remove the bundled DevIL files [deathssoul]
  • Enable 64-bit builds [deathssoul]
  • Update readme for new build infrastructure [deathssoul]

I am currently unsure what the status is of Unicode support so any test reports regarding that would be greatly appreciated.

As always, you can post feedback, suggestions, and bug reports to the following sites:

Or even the Discord server

And development assistance is always appreciated if anyone would like to join in :)

Edited by deaths_soul
Posted

It became apparent that 0.7.0 was crashing after trying to open a file (its loading is weird and likely broke when I had to update the Windows API) so I went ahead and pulled it for now. You can still download it from the automated builds if you have a GitHub account from here but there's a good chance it won't work.

I'd recommend sticking with 0.6.3 for now.

I'll continue to overhaul the code but releases are probably on hold until more progress is made due to how unwieldy the current state of the code is. Automated builds will still be created, however, for those that want to give the bleeding edge a test run.

Overhauling the code will take a while as I'm just one person with limitations but bear with me :)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...