PDA

View Full Version : [EXE] SOConverter



LJ Sonic
May 13th, 2015, 22:50
Presentation
As its name implies, SOConverter is a SOC converter...
To be exact it can port a 2.0 configuration script to 2.1 without any manual intervention (at least in most cases).
Note that the extension doesn't actually matter, you could convert a file called "something.txt" or even "trolololol.bmp" if you wanted to (but that would be stupid, hu). However the file has to be in text format, it won't work with WAD archives so if you need to convert your MAINCFG lump or some compatible text lump you'll have to export it then importing once it is converted.
It can handle level headers, things (now called objects), frames (states), and probably more in later releases. Other parts are kept intact.
A last thing, this program focuses on making the file work more than making it easy-to-read, even though some simple syntax improvements are made.

How to use
There are several ways to use it: you can just drag-and-drop your file to the converter, or you can directly execute it. In this second case it'll ask you the name of the 2.0 file (you have to include the extension) then the name of the file to create. If you decide to drag-and-drop it the ported file will be added "-21" at the end of the name.
If another file with the same already exists, it will ask you before overriding.

Features
It can currently convert the following blocks:


Thing
Frame
Level
Sound

Player properties, cutscenes and others aren't modified in the current version, but some, if not all, will be in the future.

Compatibility problems
Due to srb2 v2.1 not always providing backward-compatibily, in some particular cases the ported file won't behave correctly so don't remove the 2.0 file. This happends for instance if the SOC attends to change springs properties, which are now handled in another way, or if it used sprites that have been removed in 2.1.
Note that not all vanilla sounds are supported in the current version, especially with s3k sounds that have been renamed. This is because some sound names have been removed/renamed. That isn't a definitive problem and will probably be (for most part) fixed in later releases.

To-do
...well, many things -_-


Handle removed and renamed sounds
Handle sprites and sounds (partially done)
Handle more vanilla stuff
Handle Var1 and Var2 that are set before Action
Handle springs (SeeState is now replaced by RaiseState, and Mass now replace Speed, also reversed springs are now handled in a different way)
Use a global prefix for custom names
Use extended names in level headers?
Handle endline comments?
And more, obviously...

Demnyx Onyxfur
May 14th, 2015, 20:02
Welcome to releases!