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.
Because:
- Errors are incredibly confusing when non-fatal - there is no indicator that an error is happening
- The error is unknown without a try/catch block
- Errors cannot be tracked to a line, or file, and its location has to be figured out manually
- They can throw a game into an unexpected state with no indicator, confusing both players AND developers
The standard states that this must always be a valid pointer so these checks are optimized out anyway.
Sane compilers, such as clang, also complain about this and state that this is pointless.
Microsoft, in their infinite wisdom, decided to suffix some libraries with `.Lib` instead of `.lib`
This causes issues with cmake on Linux because it only looks for `.lib` which it won't be able to resolve because the file system is case sensitive.
Microsoft does this for backwards compatibility, in cmake this is a limitation so the best solution is to bite the bullet and lowercase all libraries which setups such as wine-msvc and xwin already do.
The use of sizeof is incorrect here since `this` is a pointer and sizeof is used on the pointer directly, instead of what the pointer points to.
It seems to work without issue due to padding but could cause issues if an instanced class like `std::string` gets nulled.
Bumps the vendored silver-bun library to the newest commit in upstream
Co-authored-by: F1F7Y <filip.bartos07@proton.me>
Co-authored-by: IcePixelx <41352111+IcePixelx@users.noreply.github.com>
- moves `WSockProxy` to `wsockproxy/CmakeLists`
- remove exepath stuff from dllmain
+ its still done in loader.cpp because its used when reporting failure
- Disabled any Thread Library calls
+ we don't need to know about threads at all in the proxy
- yoink `wsock32.asm` into outer space
+ turns out, we can just call the function in a void shim since that wont touch the registers
- stop copying `wsock32.dll` to the game directory
+ this should improve the state of things when using the EA App
Adds support for rendering navmeshes in-game using debug overlay
Cherry-picked from primedev, originally written by F1F7Y
Co-authored-by: F1F7Y <filip.bartos07@proton.me>
Co-authored-by: Maya <11448698+RoyalBlue1@users.noreply.github.com>
Replaces the current plugin api with source interfaces.
- backwards compatible
- no more json in binaries (wtf)
- does not rely on structs from third party libraries (wtf)
- actually initializes variables
- no more basically unused classes
The launcher exposes almost everything required by plugins in interfaces that allow for backwards compatibility.
The only thing that's passed to a plugin directly is the northstar dll HWND and a struct of data that's different for each plugin.