Commit graph

45 commits

Author SHA1 Message Date
cat_or_not
e85910e9ac
Move core/convar/ to tier1/ 2 (#928) 2026-08-08 04:26:00 -04:00
cat_or_not
9f56306928
Add InitScript callback (#908)
* add init script callback

* fmt

* fix this

* use sqresult
2026-03-29 23:58:32 -04:00
cat_or_not
86e3d6987b
Remove unnecessary usage of AsyncCall in ModConCommandCallback_Internal (#904)
use sync call in squirrel conconmands
2026-03-24 13:53:59 -04:00
Jack
f18b920c24
Allow for appending to particles_manifest.txt (#878)
* it works?

* does it work? who knows

* some cleanup

* format cmake

* update for new filesystem stuff

---------

Co-authored-by: Rémy Raes <contact@remyraes.com>
2026-02-03 21:17:10 +00:00
Jack
6f748fc44e
fix: Allow for versioning MWS mods (#889) 2026-01-04 22:26:41 +01:00
Jack
44755cd2da
Reduce templating of squirrel managers (#863)
* Untemplate g_pSquirrel so intellisense and stuff actually works with it
* Remove unnecessary bitwise operations
* Don't use ScriptContext_COUNT and treat INVALID as a valid flag
2025-12-21 20:41:44 +01:00
Jack
dbca84a05a
Prevent mod downloading being used in vanilla (#881)
* Prevent mod downloading being used in vanilla
2025-12-10 00:28:01 +01:00
Jack
0ba23677d1
Keyvalues fix maybe? (#880)
* move compiled files to their own storage

* clear compiled files on mod reload

* allow functions to specify the sources that they wish to look for files in

* formatting
2025-12-03 23:06:29 +00:00
Rémy Raes
659725f671
fix: MAD race conditions (#874)
* fix: FetchModsListFromAPI sets mod state as done when... done

Previously, the state was set to DOWNLOADING, which conveniently
allowed DownloadMod to run; however, the DOWNLOADING state was
not assigned by DownloadMod, leading to nasty issues when calling
DownloadMod several times in a row.
2025-11-15 22:06:42 +01:00
Rémy Raes
c0ed69f795
feat: Add ModWorkshop support to MAD (#873)
* feat: add ModWorkshop support for MAD
2025-11-15 21:58:36 +01:00
Rémy Raes
69b9d6c53b
fix: Manifesto migration (#870)
* Use "Version" field to determine manifesto format version
* Remove old manifesto file if needed
* Export manifesto version to enabledmods.json on reload
2025-09-24 01:32:56 +02:00
Jack
814f36a25d
Preserve old mod files load order (#865)
Preserve old file loading order (highest LoadPriority -> lowest LoadPriority, mods loaded later get their files prioritised)
2025-08-05 18:04:30 +02:00
Jack
9d5cf82054
Fix dependency constant registration (#864)
Fix dependency constant registration
2025-08-05 15:28:54 +02:00
Rémy Raes
df72178964
fix: Do not enable remote mods on first load (#862)
* Remote mods are not loaded when booting the game
2025-07-17 00:57:10 +02:00
Jack
ede10e7cf1
Improve ModManager logic (#856)
* extract logic into functions

* dont stop loading all mods???

* refactor dependency constant logic

* some generic cleanup

* guard clauses

* stuff

* early out of mod load stuff

* github is being weird

* formatting

* Update primedev/mods/modmanager.cpp
2025-06-13 00:13:10 +01:00
Jack
7522240747
actually make disabling mods work (#857) 2025-06-08 20:22:27 +02:00
Rémy Raes
79e8790c4d
fix: Multiple versions of a same mod won't crash the client anymore (#852)
* If a mod is installed several times, all mod versions are disabled to prevent crashing


Co-authored-by: Jack <66967891+ASpoonPlaysGames@users.noreply.github.com>
2025-06-02 17:52:04 +02:00
Rémy Raes
3a8aa058bf
fix: Remove m_bEnabled duplicated assignment (#855)
fix: remove double m_bEnabled assignment
2025-05-27 17:21:21 +01:00
Rémy Raes
16788f4c98
fix: Mod versioning (#828)
* feat: NSSetModEnabled now takes mod version as argument
* feat: move enabledmods.json to enabledmods.json.old if old manifesto format is used
* feat: add manifest version field to JSON file
2025-05-24 15:38:13 +02:00
Rémy Raes
4112a7f07f
refactor: Mod information file export (#832)
* Deduplicate enabledmods.json path declaration
* Move mod info disk dump logic to dedicated method
2025-04-11 18:39:09 +02:00
Rémy Raes
feab262e44
Rework MAD cleanup handles (#817)
Mods are no longer marked as successfully installed when the process failed.
When mod downloading/extraction fails, the mod directory is removed again.
2024-12-06 09:05:05 +01:00
Rémy Raes
5e07df82e7
mods: Move collecting mods to own function (#830)
Moves the logic that goes through all the paths where mods can be installed to its own function as part of improving code maintainability and future refactoring.
2024-12-01 21:35:22 +01:00
Rémy Raes
21843eeb83
mods: Move mod content related logic to dedicated package (#829)
Moves the `Mod` class and related logic to its own source files
2024-11-27 10:55:12 +01:00
Jack
fad89b3536
Send all mods to Atlas that are enabled (#536)
Instead of just RequiredOnClient mods and mods that have pdiff

The idea here is that it gives clients a better overview of what mods are enabled on the server they are joining.
2024-11-22 15:27:48 +01:00
GeckoEidechse
db40260d57
mods(Safe I/O): Only allow creating files with whitelisted filetypes (#682)
Restricts file types that can be created via Safe I/O to a list of whitelisted file types
2024-11-22 15:20:03 +01:00
Rémy Raes
6585d629ca
mods(MAD): Make MAD process cancellable (#815)
Adds logic to make an active mod download via MAD cancellable.
2024-11-22 15:18:38 +01:00
Jack
10041ca495
mods: Remove uses of Autohook from modkeyvalues.cpp (#818)
Remove unused AUTOHOOK_INIT
2024-10-30 23:26:29 +01:00
Rémy Raes
8c546ed68c
Adjust for restructured verified-mods.json (#748)
Updates the launcher code to deal with adjusted verified mods JSON structure from the default manifest source
The idea here is to allow installing mods from other sources than Thunderstore.
2024-09-08 00:27:44 +02:00
Jack
160f503bc8
Big rpak loading refactor (#766)
This reworks how rpaks are loaded, unloaded and tracked.
It allows for rpak reloading between map loads, meaning that skins and map overhauls could be enabled and disabled on the fly.
Previous methods of loading rpaks still work.
2024-09-07 22:10:28 +02:00
F1F7Y
27f478e7a2
core: Remove use of SourceInterface for IFileSystem (#805)
`SourceInteface` class goes back to icepick and is not good. We have a replacement, let's use it.
2024-09-05 15:22:52 +02:00
F1F7Y
ce21abe9c4
vscript: Move squirrel types to their respective files (#788)
Refactor logic to move Squirrel types to their own respective files and extend existing layouts in the process where applicable.
Contains additional smaller fixes.
2024-09-02 17:50:37 +02:00
FourthVolt
a28c1cb10c
Fix postload crash from missing rpak.json (#762)
Missing `rpak.json` would previously crash the game due to faulty boolean logic in the `if` statement. This change ensures that a missing `rpak.json` is handled gracefully.
2024-08-09 20:28:26 +02:00
Rémy Raes
6551632861
Only fetch MAD manifesto on server join (#751)
Previously, the verified mods manifesto was fetched on game start without checking if the verified mod feature is enabled Squirrel-side; with this, the manifesto is only fetched when the user wants to download a mod (meaning they enabled the feature beforehand).
2024-07-30 00:40:59 +02:00
GeckoEidechse
2cd7829727
Define fs alias in source file where used (#747)
for filesystem namespace instead of relying on implicit include

Co-authored-by: Jan <sentrycraft123@gmail.com>
2024-07-10 15:13:52 +02:00
Rémy Raes
52b1102299
fix: Do not crash on unknown MAD manifesto format (#749)
Verify JSON has attributes before trying to access them
2024-07-10 01:21:40 +02:00
Rémy Raes
497945bbbd
Fix multiple audio file overrides (#677)
This basically prevents audio files from being loaded into memory if matching audio event has already been overriden by a previous mod, preventing a crash from occurring.

This means that audio mods now respect the load priority, i.e. mods with higher priority (= lower int value) will have priority over other mods on audio overrides.
2024-07-06 12:40:36 +02:00
Jan
d52aaadc9a
Add missing object check in mod manager (#731)
`HasMember` asserts `IsObject()` internally.
In release builds this is not an issue but this does not work on Debug builds.
2024-06-24 14:38:56 +02:00
Jan
75bb4143ce
Add default case for SquirrelContext switch (#716)
Add default case for SquirrelContext switch and logs errors so we can catch them if they do ever happen.
2024-06-16 17:57:52 +02:00
Jack
85a2fb9c56
Address C4100 compiler warnings (unused var) (#648)
Adds and uses a macro to avoid the warning
2024-03-04 01:12:05 +01:00
GeckoEidechse
fc63948e09
Update default mods list URL (#662)
The default branch for the VerifiedMods repo was renamed from `master` to `main`.
2024-02-06 23:03:10 +01:00
Jack
350e6b1463
Remove unused variable in mod concommands (#652)
Remove unused variable that was also leaking memory
2024-01-27 14:16:11 +01:00
Jack
7f84bdf8fd
Address C4267 compiler warnings (#647)
Implicit conversion from `size_t` to a smaller type
2024-01-21 20:34:19 +01:00
Rémy Raes
bf7b5e0a81
Add slow-speed timeout when downloading mod (#611)
Abort request if network connection is dropped or too slow.
2024-01-21 00:56:33 +01:00
Jack
447cace77f
Add and use ScopeGuard (#643)
Use a scope guard instead of `GOTO` statements for curl cleanup
2024-01-20 23:40:27 +01:00
Jack
f5ab6fb5e8
Folder restructuring from primedev (#624)
Copies of over the primedev folder structure for easier cherry-picking of further changes

Co-authored-by: F1F7Y <filip.bartos07@proton.me>
2023-12-27 01:32:01 +01:00