Add a first-party MDL mod-build system and reorganize modding/ under src/
modding/mods/ holds message edits as plain JSON (type, index, language, plus only the changed fields - a long body can live in a sibling .txt to avoid escaping in JSON), so mod authoring is reviewable in git instead of living only in hacked's GUI. mdlp (modding/src/mdlp/, its own Docker image mdlp-image/) turns them into the same mod folder/zip hacked's own Save produces, reusing hacked's ss1/edit, ss1/world and ss1/content/text packages via a go.mod replace - no GUI/GLFW/GTK needed. `make mods` builds every mod into dist/mods/<name>/, scoped per-mod so it never touches hacked's own build output; `make` (no target) now builds both. Fixes a bug this surfaced: hacked's FileLocation.AbsolutePathFrom silently writes into the current directory instead of the given output folder when passed a relative path (the GUI never hits this since its folder picker is always absolute) - mdlp now resolves its own paths up front. res/run-mods.sh/.bat are new companion launchers to run.sh/.bat: they pass every dist/mods/*/mod folder to the engine as a separate absolute argument, since ProcessModDirectory() only scans one directory level deep. Wired into `make dist`/`dist-win` only, not the release archives. modding/hacked/, its patches, sqweek-dialog/, its patches, and the new mdlp/ move under modding/src/, separating source from the surrounding Docker/script scaffolding; all path references updated to match. NOTICE.txt gains a section for hacked's distributed build, listing hacked (New BSD), sqweek/dialog (ISC - corrected from a wrong "New BSD" note), and hacked's other direct Go dependencies.
This commit is contained in:
+14
@@ -35,3 +35,17 @@ cross-build") additionally bundles:
|
||||
statically into systemshock.exe instead of shipped as a DLL, under the
|
||||
GCC Runtime Library Exception - this doesn't subject the rest of the
|
||||
binary to the GPL.)
|
||||
|
||||
The modding tools' `hacked` build (see modding/README.md; output under
|
||||
modding/dist/*.tgz and *.zip) additionally bundles:
|
||||
|
||||
- InkyBlackness HackEd (https://github.com/inkyblackness/hacked), vendored
|
||||
unmodified as modding/src/hacked/. It is New BSD-licensed.
|
||||
- github.com/sqweek/dialog, vendored and patched (see
|
||||
modding/src/sqweek-dialog-patches/) as modding/src/sqweek-dialog/. It is
|
||||
ISC-licensed.
|
||||
- hacked's further direct Go dependencies (fetched at build time, not
|
||||
vendored in this repository): github.com/inkyblackness/imgui-go (New BSD);
|
||||
github.com/go-gl/glfw, github.com/go-gl/mathgl, and golang.org/x/image
|
||||
(BSD 3-Clause); github.com/go-gl/gl, github.com/asticode/go-astisub, and
|
||||
github.com/lucasb-eyer/go-colorful (MIT).
|
||||
|
||||
Reference in New Issue
Block a user