Commit graph

18 commits

Author SHA1 Message Date
845b0114bb Delay mod loading
The initial implementation of DML ended up loading mods quite late,
which did give it the benefit of all `Manager`s being available.
This change therefore moves mod loading until after those are
initialized.

But contrary to old DML, we still create a separate game state to make
sure the game doesn't advance until mods are loaded. This avoids race
conditions like the one where LogMeIn needs to come early in the load
order.
2023-11-24 11:52:47 +01:00
3af631348d Fix missing Mods.original_require 2023-11-24 11:52:47 +01:00
13e77a2097 Use template engine to build mod_data.lua
The string-building version became too complex to maintain properly.
2023-11-24 11:52:47 +01:00
70e22e1dfb
Assign mod loader as global manager 2023-08-30 01:36:46 +02:00
6ef4c2e094
refactor: Format Lua code 2023-07-22 14:39:51 +02:00
9b8f07d125
fix: Fix FFI import 2023-07-22 14:39:35 +02:00
707a3ead8b
feat(dtmm): Guard certain Lua libraries behind a setting
All checks were successful
lint/clippy Checking for common mistakes and opportunities for code improvement
build/msvc Build for the target platform: msvc
build/linux Build for the target platform: linux
Libraries like `io`, `os` and `ffi` allow practically unrestricted
access to the system's files and running arbitrary operations.
The base game removes them for this reason, and while we don't want to
disable them permanently, very few mods should ever have a need for
them.

So we hide them behind a setting, worded so that people only enable it
when absolutely needed.

Closes #112.
2023-04-24 16:45:49 +02:00
be1cff9f3c
feat(dtmm): Move class and require hooks into early loading
These need to be executed as early as possible if they're supposed to
capture all of their respective calls.
2023-03-01 00:20:45 +01:00
c5b2e136fa
feat(dtmm): Improve mod main logging 2023-02-25 19:33:38 +01:00
c9cfb7d415
fix(dtmm): Fix mod loader GUI
The final puzzle piece for mod loading, at least on DTMM's side.

Closes #28.
2023-02-25 19:33:31 +01:00
22d8ab05ab
feat(dtmm): Provide dt for loading state
Apparently Fatshark does not proxy `dt` in their boot loading sub
states. But we do need that for the mod manager.
2023-02-25 18:27:32 +01:00
8e9f26ed0c
feat(dtmm): Overwrite Crashify property
As requested by Fatshark.
2023-02-25 17:27:06 +01:00
d6ee6e9a10
fix(dtmm): Fix patching GameStateMachine
The monkey-pacthed function was still called multiple times.
2023-02-25 17:26:24 +01:00
974641b2ea
fix(dtmm): Fix infinite loop on game load 2023-02-25 17:25:55 +01:00
b20b3c4e66
WIP: mod_main logging and more DML specialication
DML's package needs to be added to the boot bundle as well. Current
issue: Adding any package file to the bundle breaks the game's loading.

But I don't know where this messes things up.
2023-02-23 21:38:57 +01:00
d9e6cc05a0
fix(dtmm): Add additional Lua globals to backup 2023-02-22 16:40:05 +01:00
0705430b95
refactor: Move mod loading to separate base mod 2023-02-22 16:40:04 +01:00
571ae9605a
wip: Add preliminary mod loading injection 2023-02-22 16:39:30 +01:00