389abd7de7
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.
21 lines
662 B
Batchfile
21 lines
662 B
Batchfile
@echo off
|
|
setlocal enabledelayedexpansion
|
|
REM Launches System Shock with every mod built under modding\dist\mods\
|
|
REM applied (see modding/README.md section 4). Each mod's own
|
|
REM modding\dist\mods\<name>\mod\ folder is passed to systemshock.exe as a
|
|
REM separate, absolute argument - see run-mods.sh's comment for why (same
|
|
REM engine, same one-level directory scan and same relative-path pitfall).
|
|
cd /d "%~dp0"
|
|
|
|
set "MODS_DIR=%~dp0..\modding\dist\mods"
|
|
set "MOD_ARGS="
|
|
|
|
if exist "%MODS_DIR%" (
|
|
for /d %%M in ("%MODS_DIR%\*") do (
|
|
if exist "%%M\mod" set "MOD_ARGS=!MOD_ARGS! "%%~fM\mod""
|
|
)
|
|
)
|
|
|
|
systemshock.exe !MOD_ARGS! %*
|
|
exit /b %errorlevel%
|