Please don't lose focus.
Let's return to yaml lib migration.
This optimisation can be done separately.
Ok, I've also tested the embedded loader now. It seems to work fine.
To enable embedding in a windows build:
1. In the Project properties, go to C/C++ > Preprocessor, and edit Preprocessor Definitions and add
EMBED_ASSETS.
2. In the Project properties, go to Resources, and edit Preprocessor Definitions and add
EMBED_ASSETS. Yes, it has to be defined in two places.
3. The zip files need to be at
OpenXcom\common.zip and
OpenXcom\standard.zip. So above the project dir.
This will generate an exe file that is 4MB larger than usual.
What's next? Note that I can only do testing and building on Windows.
Current list of incompatibilities:
If a yaml line ends with ] or }, the trailing spaces need to be removed.
" - a: [1, 2, 3] " is bad
" - a: { b: 2, c: 3 } " is bad
" - a: [1, 2, 3]" is good
" - a: { b: 2, c: 3 }" is good
" - a: [1, 2, 3] #comment" is good
If a yaml line contains any (trailing) tabs, they need to be removed
" - a: 1 " is bad
" - a: 1 #comment" is bad
" - a: 1" is good
" - a: 1 #comment" is good
If a yaml line ends with a comment, the comment needs a preceeding space
" - a: 1#comment" is bad
" - a: 1 #comment" is good
damageAlter: FireThreshold no longer accepts float values
" FireThreshold: 10.0" is bad
" FireThreshold: 10" is good
strings starting with a single or double quote require a closing quote
- 'Akamu bad
- Akamu good
- '''Akamu' good
- "'Akamu" good