I wanted to make sure to cover this with an announcement to keep everyone in the loop. We have now rearranged the backend to the compiler so that it now uses Protocol Buffers directly. EnigmaStruct is now deprecated and should not be used for building new command line or frontend tools that integrate with ENIGMA.
https://github.com/enigma-dev/enigma-dev/commit/a1aa34d57d91e438bf937a39d902a6556932eaecWe also had to come back and address a few regressions from this change in several games. With this, there have been no other new regressions discovered.
https://github.com/enigma-dev/enigma-dev/commit/090d1a92fa377e0f9a851ebdaa3daa325b76a497https://github.com/enigma-dev/enigma-dev/commit/36de74c8d44871ea260506a8f8e27d684aee4253EnigmaStruct is deprecated rather than obsolete because it is still used by LateralGM. It will likely remain that way as my development attention is staying focused at RadialGM now which uses the new Protocol Buffers directly for its data model. One advantage to the new Protocol Buffers interface is that binary compatibility can be maintained when changing the protos. This is not true of the old EnigmaStruct, and thus, tools that use it will be subject to frequent breakage as a result of the lack of binary compatibility.
Long story short, you will now need to install Google Protocol Buffers when setting up ENIGMA or the next time you update an existing installation.
# MSYS2 64-bit
pacboy -S protobuf:x
# MSYS2 32-bit
pacboy -S protobuf:i
I have also updated the Ubuntu/Linux installation instructions as well as the easy method script with the help of TKG. You will need a newer protobuf version which is why we recommend installing the dependency from Maarten Fonville's PPA which is where our Travis CI build obtains it.
https://enigma-dev.org/docs/Wiki/Install:Linuxhttps://github.com/enigma-dev/enigma-dev/issues/1527sudo add-apt-repository ppa:maarten-fonville/protobuf
sudo apt-get update
sudo apt-get install libprotobuf-dev protobuf-compiler
You will also need to do a clean build of the compiler.
make clean
make -j4