Releases: J-N-R/My-Level-Mod
My Level Mod v4.5
This update:
- Fixes a critical bug introduced by 4.4 that causes the game to crash for Chao gardens.
- Implements proper resource freeing for Chao gardens.
- Cleans up the existing README and debugging info text files to be shorter, and hopefully more helpful.
It has also come to my attention that the game will crash upon reentering a custom level. I am currently looking into it.
My Level Mod v4.4
My Level Mod v4.4!!!
This version makes massive changes to the import code, making importing multiple levels much easier.
Please note the format level_options.ini has changed. See the new default included in the zip file for more information.
What's new in this version?
- 100x better memory management, with new manual memory freeing code.
- Levels are now only imported when a level is loaded, saving memory.
- My Level Mod features are now supported for multi-level imports.
- IniReader.cpp has been greatly simplified, reimplemented using X-Hax's IniFile library.
- New level_options format to better support multi-level imports.
- Add new spline_file_names option to explicitly declare spline files (auto detection still works for single import)
- Much better exception handling code, import errors will no longer cause game crashes.
- Greatly improved debug messages to help modders.
What are you waiting for?? Go enjoy the update!!
LevelHeader.Init overloading coming soon! (This means less in-game crashes)
My Level Mod v4.3
This update adds two bugfixes:
- Fixes a critical bug introduced by 4.2 that causes the game to crash on startup (Forgot to append a file extension, sorry!)
- Fixes a long time bug that caused the game to crash when exiting a custom level.
My Level Mod v4.2
This is a minor update to the API layer which makes the code cleaner and easier to use :D
The biggest changes are:
- My Level Mod now uses git submodules instead of copying dependencies (except for libcurl)
- This makes dependencies capable of updating automatically, while also simplifying the repository.
- Improved code comments and public API surface.
- One example of an improvement was the importLevel function, which now uses overloaded functions instead of optional function parameters.
- Fixes a bug where auto update would fail (libcurl needed an update for Windows 11)
While I normally wouldn't ping autoupdate for API changes, since this version updates debug messages I will make an exception, sending a notification to users to update. I'm excited to see if it will work after this long! (2 years)
A major restructuring is coming soon! There is a known bug involving the game crashing once a custom level has been complete. This is due to the fact that there is no unload function (nor regular load function) as these are level-specific, and My Level Mod works with all levels. Fixing this will require finding all the hard-coded memory addresses for level headers containing pointers to load and unload functions, which requires reading decompiled source code. It's going to be a fun couple of months for sure 😅
My Level Mod v4.1
Small update to the API layer, adds a 'readSpline(string filepath)' function to the IniReader library which allows people making their own mods load spline files when they want to. This update also removes many truncation warnings that would pop up when you would build the mod for yourself in visual studio.
Also included is the ability to put your splines in a "paths" folder! I'm aware that this is how SATools organizes spline files when it rips game content so I wanted to include the option to organize your splines in that way, and still be supported.
My Level Mod v4
Big update! A vast majority of the codebase has been rewritten and overhauled to be cleaner, safer, and more efficient. A majority of the level importing code has now been refactored into a "LevelImporter" utility that anyone can use! The main.cpp file has also been cleaned up a lot, meaning anyone wishing to create a mod but keep My Level Mod features can just add their code there!
- New "LevelImporter" utility class
- Chao Garden support
- Multiple level import support!
- New option: ImportLevel (allows you to import over a specific level, with specific files)
- All code has been written to follow a standard < 80 character line length. Hopefully cleaner for new and experienced devs!
The project has also been moved into its own repository! Previously hosted at: https://github.com/X-Hax/SA2BModdingGuide